Commit 5227c2ee authored by Tzu-En Huang's avatar Tzu-En Huang Committed by Kalle Valo

rtw88: 8822c: add SW DPK support

Power amplifiers are not linear components, and require DPK to
reduce its nonlinearity. DPK is called Digital Pre-distortion
Calibration, can be used to compensate the output of power.

DPK tracking is in charge of tracking the thermal changes. And
it then shifts the power curve accordingly, which makes the
power output remains linear even if the PA works in different
temperature.

To perform DPK, the parameter table should also be updated.
And the table will be applied when device is powered on.
Then DPK will reference the values to calibrate.
Signed-off-by: default avatarTzu-En Huang <tehuang@realtek.com>
Signed-off-by: default avatarYan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 1ac3294b
......@@ -721,7 +721,7 @@ static void rtw_coex_set_rf_para(struct rtw_dev *rtwdev,
rtw_coex_set_bt_rx_gain(rtwdev, para.bt_lna_lvl);
}
static u32 rtw_coex_read_indirect_reg(struct rtw_dev *rtwdev, u16 addr)
u32 rtw_coex_read_indirect_reg(struct rtw_dev *rtwdev, u16 addr)
{
u32 val;
......
......@@ -346,6 +346,7 @@ void rtw_coex_set_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
}
void rtw_coex_info_response(struct rtw_dev *rtwdev, struct sk_buff *skb);
u32 rtw_coex_read_indirect_reg(struct rtw_dev *rtwdev, u16 addr);
void rtw_coex_write_indirect_reg(struct rtw_dev *rtwdev, u16 addr,
u32 mask, u32 val);
void rtw_coex_write_scbd(struct rtw_dev *rtwdev, u16 bitpos, bool set);
......
......@@ -641,6 +641,8 @@ struct rtw_chip_ops {
void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable);
void (*false_alarm_statistics)(struct rtw_dev *rtwdev);
void (*do_iqk)(struct rtw_dev *rtwdev);
void (*dpk_track)(struct rtw_dev *rtwdev);
void (*do_dpk)(struct rtw_dev *rtwdev);
/* for coex */
void (*coex_set_init)(struct rtw_dev *rtwdev);
......@@ -864,6 +866,9 @@ struct rtw_chip_info {
const struct rtw_rfe_def *rfe_defs;
u32 rfe_defs_size;
bool en_dis_dpd;
u16 dpd_ratemask;
/* coex paras */
u32 coex_para_ver;
u8 bt_desired_ver;
......@@ -1075,6 +1080,37 @@ struct rtw_coex {
struct delayed_work defreeze_work;
};
#define DPK_RF_REG_NUM 7
#define DPK_RF_PATH_NUM 2
#define DPK_BB_REG_NUM 18
#define DPK_CHANNEL_WIDTH_80 1
DECLARE_EWMA(thermal, 10, 4);
struct rtw_dpk_info {
bool is_dpk_pwr_on;
bool is_reload;
DECLARE_BITMAP(dpk_path_ok, DPK_RF_PATH_NUM);
u8 thermal_dpk[DPK_RF_PATH_NUM];
struct ewma_thermal avg_thermal[DPK_RF_PATH_NUM];
u32 gnt_control;
u32 gnt_value;
u8 result[RTW_RF_PATH_MAX];
u8 dpk_txagc[RTW_RF_PATH_MAX];
u32 coef[RTW_RF_PATH_MAX][20];
u16 dpk_gs[RTW_RF_PATH_MAX];
u8 thermal_dpk_delta[RTW_RF_PATH_MAX];
u8 pre_pwsf[RTW_RF_PATH_MAX];
u8 dpk_band;
u8 dpk_ch;
u8 dpk_bw;
};
#define DACK_MSBK_BACKUP_NUM 0xf
#define DACK_DCK_BACKUP_NUM 0x2
......@@ -1108,6 +1144,8 @@ struct rtw_dm_info {
u32 dack_adck[RTW_RF_PATH_MAX];
u16 dack_msbk[RTW_RF_PATH_MAX][2][DACK_MSBK_BACKUP_NUM];
u8 dack_dck[RTW_RF_PATH_MAX][2][DACK_DCK_BACKUP_NUM];
struct rtw_dpk_info dpk_info;
};
struct rtw_efuse {
......
......@@ -439,12 +439,21 @@ static void rtw_phy_ra_info_update(struct rtw_dev *rtwdev)
rtw_iterate_stas_atomic(rtwdev, rtw_phy_ra_info_update_iter, rtwdev);
}
static void rtw_phy_dpk_track(struct rtw_dev *rtwdev)
{
struct rtw_chip_info *chip = rtwdev->chip;
if (chip->ops->dpk_track)
chip->ops->dpk_track(rtwdev);
}
void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev)
{
/* for further calculation */
rtw_phy_statistics(rtwdev);
rtw_phy_dig(rtwdev);
rtw_phy_ra_info_update(rtwdev);
rtw_phy_dpk_track(rtwdev);
}
#define FRAC_BITS 3
......@@ -1316,11 +1325,20 @@ void rtw_phy_cfg_rf(struct rtw_dev *rtwdev, const struct rtw_table *tbl,
static void rtw_load_rfk_table(struct rtw_dev *rtwdev)
{
struct rtw_chip_info *chip = rtwdev->chip;
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
if (!chip->rfk_init_tbl)
return;
rtw_write32_mask(rtwdev, 0x1e24, BIT(17), 0x1);
rtw_write32_mask(rtwdev, 0x1cd0, BIT(28), 0x1);
rtw_write32_mask(rtwdev, 0x1cd0, BIT(29), 0x1);
rtw_write32_mask(rtwdev, 0x1cd0, BIT(30), 0x1);
rtw_write32_mask(rtwdev, 0x1cd0, BIT(31), 0x0);
rtw_load_table(rtwdev, chip->rfk_init_tbl);
dpk_info->is_dpk_pwr_on = 1;
}
void rtw_phy_load_tables(struct rtw_dev *rtwdev)
......@@ -1430,6 +1448,37 @@ static u8 rtw_get_channel_group(u8 channel)
}
}
static s8 rtw_phy_get_dis_dpd_by_rate_diff(struct rtw_dev *rtwdev, u16 rate)
{
struct rtw_chip_info *chip = rtwdev->chip;
s8 dpd_diff = 0;
if (!chip->en_dis_dpd)
return 0;
#define RTW_DPD_RATE_CHECK(_rate) \
case DESC_RATE ## _rate: \
if (DIS_DPD_RATE ## _rate & chip->dpd_ratemask) \
dpd_diff = -6 * chip->txgi_factor; \
break
switch (rate) {
RTW_DPD_RATE_CHECK(6M);
RTW_DPD_RATE_CHECK(9M);
RTW_DPD_RATE_CHECK(MCS0);
RTW_DPD_RATE_CHECK(MCS1);
RTW_DPD_RATE_CHECK(MCS8);
RTW_DPD_RATE_CHECK(MCS9);
RTW_DPD_RATE_CHECK(VHT1SS_MCS0);
RTW_DPD_RATE_CHECK(VHT1SS_MCS1);
RTW_DPD_RATE_CHECK(VHT2SS_MCS0);
RTW_DPD_RATE_CHECK(VHT2SS_MCS1);
}
#undef RTW_DPD_RATE_CHECK
return dpd_diff;
}
static u8 rtw_phy_get_2g_tx_power_index(struct rtw_dev *rtwdev,
struct rtw_2g_txpwr_idx *pwr_idx_2g,
enum rtw_bandwidth bandwidth,
......@@ -1638,6 +1687,9 @@ rtw_phy_get_tx_power_index(struct rtw_dev *rtwdev, u8 rf_path, u8 rate,
tx_power = pwr_param.pwr_base;
offset = min_t(s8, pwr_param.pwr_offset, pwr_param.pwr_limit);
if (rtwdev->chip->en_dis_dpd)
offset += rtw_phy_get_dis_dpd_by_rate_diff(rtwdev, rate);
tx_power += offset;
if (tx_power > rtwdev->chip->max_power_index)
......
......@@ -341,6 +341,20 @@
#define REG_RFE_CTRL_E 0x0974
#define REG_DIS_DPD 0x0a70
#define DIS_DPD_MASK GENMASK(9, 0)
#define DIS_DPD_RATE6M BIT(0)
#define DIS_DPD_RATE9M BIT(1)
#define DIS_DPD_RATEMCS0 BIT(2)
#define DIS_DPD_RATEMCS1 BIT(3)
#define DIS_DPD_RATEMCS8 BIT(4)
#define DIS_DPD_RATEMCS9 BIT(5)
#define DIS_DPD_RATEVHT1SS_MCS0 BIT(6)
#define DIS_DPD_RATEVHT1SS_MCS1 BIT(7)
#define DIS_DPD_RATEVHT2SS_MCS0 BIT(8)
#define DIS_DPD_RATEVHT2SS_MCS1 BIT(9)
#define DIS_DPD_RATEALL GENMASK(9, 0)
#define REG_RFE_CTRL8 0x0cb4
#define BIT_MASK_RFE_SEL89 GENMASK(7, 0)
#define REG_RFE_INV8 0x0cbd
......@@ -471,6 +485,7 @@
#define RF_LUTWA 0x33
#define RF_LUTWD1 0x3e
#define RF_LUTWD0 0x3f
#define RF_T_METER 0x42
#define RF_XTALX2 0xb8
#define RF_MALSEL 0xbe
#define RF_RCKD 0xde
......
......@@ -1001,6 +1001,10 @@ static void rtw8822b_do_iqk(struct rtw_dev *rtwdev)
counter, reload, ++do_iqk_cnt, iqk_fail_mask);
}
static void rtw8822b_do_dpk(struct rtw_dev *rtwdev)
{
}
static void rtw8822b_coex_cfg_init(struct rtw_dev *rtwdev)
{
/* enable TBTT nterrupt */
......@@ -1795,6 +1799,7 @@ static struct rtw_chip_ops rtw8822b_ops = {
.cfg_ldo25 = rtw8822b_cfg_ldo25,
.false_alarm_statistics = rtw8822b_false_alarm_statistics,
.do_iqk = rtw8822b_do_iqk,
.do_dpk = rtw8822b_do_dpk,
.coex_set_init = rtw8822b_coex_cfg_init,
.coex_set_ant_switch = rtw8822b_coex_cfg_ant_switch,
......
......@@ -13,6 +13,7 @@
#include "mac.h"
#include "reg.h"
#include "debug.h"
#include "util.h"
static void rtw8822c_config_trx_mode(struct rtw_dev *rtwdev, u8 tx_path,
u8 rx_path, bool is_tx2_path);
......@@ -1017,6 +1018,9 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
BIT_RF_EN | BIT_RF_RSTB | BIT_RF_SDM_RSTB);
rtw_write32_set(rtwdev, REG_WLRF1, BIT_WLRF1_BBRF_EN);
/* disable low rate DPD */
rtw_write32_mask(rtwdev, REG_DIS_DPD, DIS_DPD_MASK, DIS_DPD_RATEALL);
/* pre init before header files config */
rtw8822c_header_file_init(rtwdev, true);
......@@ -2049,6 +2053,1063 @@ static void rtw8822c_coex_cfg_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
}
}
struct dpk_cfg_pair {
u32 addr;
u32 bitmask;
u32 data;
};
void rtw8822c_parse_tbl_dpk(struct rtw_dev *rtwdev,
const struct rtw_table *tbl)
{
const struct dpk_cfg_pair *p = tbl->data;
const struct dpk_cfg_pair *end = p + tbl->size / 3;
BUILD_BUG_ON(sizeof(struct dpk_cfg_pair) != sizeof(u32) * 3);
for (; p < end; p++)
rtw_write32_mask(rtwdev, p->addr, p->bitmask, p->data);
}
static void rtw8822c_dpk_set_gnt_wl(struct rtw_dev *rtwdev, bool is_before_k)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
if (is_before_k) {
dpk_info->gnt_control = rtw_read32(rtwdev, 0x70);
dpk_info->gnt_value = rtw_coex_read_indirect_reg(rtwdev, 0x38);
rtw_write32_mask(rtwdev, 0x70, BIT(26), 0x1);
rtw_coex_write_indirect_reg(rtwdev, 0x38, MASKBYTE1, 0x77);
} else {
rtw_coex_write_indirect_reg(rtwdev, 0x38, MASKDWORD,
dpk_info->gnt_value);
rtw_write32(rtwdev, 0x70, dpk_info->gnt_control);
}
}
static void
rtw8822c_dpk_restore_registers(struct rtw_dev *rtwdev, u32 reg_num,
struct rtw_backup_info *bckp)
{
rtw_restore_reg(rtwdev, bckp, reg_num);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
rtw_write32_mask(rtwdev, REG_RXSRAM_CTL, BIT_DPD_CLK, 0x4);
}
static void
rtw8822c_dpk_backup_registers(struct rtw_dev *rtwdev, u32 *reg,
u32 reg_num, struct rtw_backup_info *bckp)
{
u32 i;
for (i = 0; i < reg_num; i++) {
bckp[i].len = 4;
bckp[i].reg = reg[i];
bckp[i].val = rtw_read32(rtwdev, reg[i]);
}
}
static void rtw8822c_dpk_backup_rf_registers(struct rtw_dev *rtwdev,
u32 *rf_reg,
u32 rf_reg_bak[][2])
{
u32 i;
for (i = 0; i < DPK_RF_REG_NUM; i++) {
rf_reg_bak[i][RF_PATH_A] = rtw_read_rf(rtwdev, RF_PATH_A,
rf_reg[i], RFREG_MASK);
rf_reg_bak[i][RF_PATH_B] = rtw_read_rf(rtwdev, RF_PATH_B,
rf_reg[i], RFREG_MASK);
}
}
static void rtw8822c_dpk_reload_rf_registers(struct rtw_dev *rtwdev,
u32 *rf_reg,
u32 rf_reg_bak[][2])
{
u32 i;
for (i = 0; i < DPK_RF_REG_NUM; i++) {
rtw_write_rf(rtwdev, RF_PATH_A, rf_reg[i], RFREG_MASK,
rf_reg_bak[i][RF_PATH_A]);
rtw_write_rf(rtwdev, RF_PATH_B, rf_reg[i], RFREG_MASK,
rf_reg_bak[i][RF_PATH_B]);
}
}
static void rtw8822c_dpk_information(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u32 reg;
u8 band_shift;
reg = rtw_read_rf(rtwdev, RF_PATH_A, 0x18, RFREG_MASK);
band_shift = FIELD_GET(BIT(16), reg);
dpk_info->dpk_band = 1 << band_shift;
dpk_info->dpk_ch = FIELD_GET(0xff, reg);
dpk_info->dpk_bw = FIELD_GET(0x3000, reg);
}
static void rtw8822c_dpk_rxbb_dc_cal(struct rtw_dev *rtwdev, u8 path)
{
rtw_write_rf(rtwdev, path, 0x92, RFREG_MASK, 0x84800);
udelay(5);
rtw_write_rf(rtwdev, path, 0x92, RFREG_MASK, 0x84801);
usleep_range(600, 610);
rtw_write_rf(rtwdev, path, 0x92, RFREG_MASK, 0x84800);
}
static u8 rtw8822c_dpk_dc_corr_check(struct rtw_dev *rtwdev, u8 path)
{
u16 dc_i, dc_q;
u8 corr_val, corr_idx;
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x000900f0);
dc_i = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, GENMASK(27, 16));
dc_q = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, GENMASK(11, 0));
if (dc_i & BIT(11))
dc_i = 0x1000 - dc_i;
if (dc_q & BIT(11))
dc_q = 0x1000 - dc_q;
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x000000f0);
corr_idx = (u8)rtw_read32_mask(rtwdev, REG_STAT_RPT, GENMASK(7, 0));
corr_val = (u8)rtw_read32_mask(rtwdev, REG_STAT_RPT, GENMASK(15, 8));
if (dc_i > 200 || dc_q > 200 || corr_idx < 40 || corr_idx > 65)
return 1;
else
return 0;
}
static void rtw8822c_dpk_tx_pause(struct rtw_dev *rtwdev)
{
u8 reg_a, reg_b;
u16 count = 0;
rtw_write8(rtwdev, 0x522, 0xff);
rtw_write32_mask(rtwdev, 0x1e70, 0xf, 0x2);
do {
reg_a = (u8)rtw_read_rf(rtwdev, RF_PATH_A, 0x00, 0xf0000);
reg_b = (u8)rtw_read_rf(rtwdev, RF_PATH_B, 0x00, 0xf0000);
udelay(2);
count++;
} while ((reg_a == 2 || reg_b == 2) && count < 2500);
}
static void rtw8822c_dpk_mac_bb_setting(struct rtw_dev *rtwdev)
{
rtw8822c_dpk_tx_pause(rtwdev);
rtw_load_table(rtwdev, &rtw8822c_dpk_mac_bb_tbl);
}
static void rtw8822c_dpk_afe_setting(struct rtw_dev *rtwdev, bool is_do_dpk)
{
if (is_do_dpk)
rtw_load_table(rtwdev, &rtw8822c_dpk_afe_is_dpk_tbl);
else
rtw_load_table(rtwdev, &rtw8822c_dpk_afe_no_dpk_tbl);
}
static void rtw8822c_dpk_pre_setting(struct rtw_dev *rtwdev)
{
u8 path;
for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
rtw_write_rf(rtwdev, path, RF_RXAGC_OFFSET, RFREG_MASK, 0x0);
rtw_write32(rtwdev, REG_NCTL0, 0x8 | (path << 1));
if (rtwdev->dm_info.dpk_info.dpk_band == RTW_BAND_2G)
rtw_write32(rtwdev, REG_DPD_LUT3, 0x1f100000);
else
rtw_write32(rtwdev, REG_DPD_LUT3, 0x1f0d0000);
rtw_write32_mask(rtwdev, REG_DPD_LUT0, BIT_GLOSS_DB, 0x4);
rtw_write32_mask(rtwdev, REG_IQK_CTL1, BIT_TX_CFIR, 0x3);
}
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
rtw_write32(rtwdev, REG_DPD_CTL11, 0x3b23170b);
rtw_write32(rtwdev, REG_DPD_CTL12, 0x775f5347);
}
static u32 rtw8822c_dpk_rf_setting(struct rtw_dev *rtwdev, u8 path)
{
u32 ori_txbb;
rtw_write_rf(rtwdev, path, RF_MODE_TRXAGC, RFREG_MASK, 0x50017);
ori_txbb = rtw_read_rf(rtwdev, path, RF_TX_GAIN, RFREG_MASK);
rtw_write_rf(rtwdev, path, RF_DEBUG, BIT_DE_TX_GAIN, 0x1);
rtw_write_rf(rtwdev, path, RF_DEBUG, BIT_DE_PWR_TRIM, 0x1);
rtw_write_rf(rtwdev, path, RF_TX_GAIN_OFFSET, BIT_TX_OFFSET_VAL, 0x0);
rtw_write_rf(rtwdev, path, RF_TX_GAIN, RFREG_MASK, ori_txbb);
if (rtwdev->dm_info.dpk_info.dpk_band == RTW_BAND_2G) {
rtw_write_rf(rtwdev, path, RF_TX_GAIN_OFFSET, BIT_LB_ATT, 0x1);
rtw_write_rf(rtwdev, path, RF_RXG_GAIN, BIT_RXG_GAIN, 0x0);
} else {
rtw_write_rf(rtwdev, path, RF_TXA_LB_SW, BIT_TXA_LB_ATT, 0x0);
rtw_write_rf(rtwdev, path, RF_TXA_LB_SW, BIT_LB_ATT, 0x6);
rtw_write_rf(rtwdev, path, RF_TXA_LB_SW, BIT_LB_SW, 0x1);
rtw_write_rf(rtwdev, path, RF_RXA_MIX_GAIN, BIT_RXA_MIX_GAIN, 0);
}
rtw_write_rf(rtwdev, path, RF_MODE_TRXAGC, BIT_RXAGC, 0xf);
rtw_write_rf(rtwdev, path, RF_DEBUG, BIT_DE_TRXBW, 0x1);
rtw_write_rf(rtwdev, path, RF_BW_TRXBB, BIT_BW_RXBB, 0x0);
if (rtwdev->dm_info.dpk_info.dpk_bw == DPK_CHANNEL_WIDTH_80)
rtw_write_rf(rtwdev, path, RF_BW_TRXBB, BIT_BW_TXBB, 0x2);
else
rtw_write_rf(rtwdev, path, RF_BW_TRXBB, BIT_BW_TXBB, 0x1);
rtw_write_rf(rtwdev, path, RF_EXT_TIA_BW, BIT(1), 0x1);
usleep_range(100, 110);
return ori_txbb & 0x1f;
}
static u16 rtw8822c_dpk_get_cmd(struct rtw_dev *rtwdev, u8 action, u8 path)
{
u16 cmd;
u8 bw = rtwdev->dm_info.dpk_info.dpk_bw == DPK_CHANNEL_WIDTH_80 ? 2 : 0;
switch (action) {
case RTW_DPK_GAIN_LOSS:
cmd = 0x14 + path;
break;
case RTW_DPK_DO_DPK:
cmd = 0x16 + path + bw;
break;
case RTW_DPK_DPK_ON:
cmd = 0x1a + path;
break;
case RTW_DPK_DAGC:
cmd = 0x1c + path + bw;
break;
default:
return 0;
}
return (cmd << 8) | 0x48;
}
static u8 rtw8822c_dpk_one_shot(struct rtw_dev *rtwdev, u8 path, u8 action)
{
u16 dpk_cmd;
u8 result = 0;
rtw8822c_dpk_set_gnt_wl(rtwdev, true);
if (action == RTW_DPK_CAL_PWR) {
rtw_write32_mask(rtwdev, REG_DPD_CTL0, BIT(12), 0x1);
rtw_write32_mask(rtwdev, REG_DPD_CTL0, BIT(12), 0x0);
rtw_write32_mask(rtwdev, REG_RXSRAM_CTL, BIT_RPT_SEL, 0x0);
msleep(10);
if (!check_hw_ready(rtwdev, REG_STAT_RPT, BIT(31), 0x1)) {
result = 1;
rtw_dbg(rtwdev, RTW_DBG_RFK, "[DPK] one-shot over 20ms\n");
}
} else {
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE,
0x8 | (path << 1));
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_IQ_SWITCH, 0x9);
dpk_cmd = rtw8822c_dpk_get_cmd(rtwdev, action, path);
rtw_write32(rtwdev, REG_NCTL0, dpk_cmd);
rtw_write32(rtwdev, REG_NCTL0, dpk_cmd + 1);
msleep(10);
if (!check_hw_ready(rtwdev, 0x2d9c, 0xff, 0x55)) {
result = 1;
rtw_dbg(rtwdev, RTW_DBG_RFK, "[DPK] one-shot over 20ms\n");
}
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE,
0x8 | (path << 1));
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_IQ_SWITCH, 0x0);
}
rtw8822c_dpk_set_gnt_wl(rtwdev, false);
rtw_write8(rtwdev, 0x1b10, 0x0);
return result;
}
static u16 rtw8822c_dpk_dgain_read(struct rtw_dev *rtwdev, u8 path)
{
u16 dgain;
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
rtw_write32_mask(rtwdev, REG_RXSRAM_CTL, 0x00ff0000, 0x0);
dgain = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, GENMASK(27, 16));
return dgain;
}
static u8 rtw8822c_dpk_thermal_read(struct rtw_dev *rtwdev, u8 path)
{
rtw_write_rf(rtwdev, path, RF_T_METER, BIT(19), 0x1);
rtw_write_rf(rtwdev, path, RF_T_METER, BIT(19), 0x0);
rtw_write_rf(rtwdev, path, RF_T_METER, BIT(19), 0x1);
udelay(15);
return (u8)rtw_read_rf(rtwdev, path, RF_T_METER, 0x0007e);
}
static u32 rtw8822c_dpk_pas_read(struct rtw_dev *rtwdev, u8 path)
{
u32 i_val, q_val;
rtw_write32(rtwdev, REG_NCTL0, 0x8 | (path << 1));
rtw_write32_mask(rtwdev, 0x1b48, BIT(14), 0x0);
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x00060001);
rtw_write32(rtwdev, 0x1b4c, 0x00000000);
rtw_write32(rtwdev, 0x1b4c, 0x00080000);
q_val = rtw_read32_mask(rtwdev, REG_STAT_RPT, MASKHWORD);
i_val = rtw_read32_mask(rtwdev, REG_STAT_RPT, MASKLWORD);
if (i_val & BIT(15))
i_val = 0x10000 - i_val;
if (q_val & BIT(15))
q_val = 0x10000 - q_val;
rtw_write32(rtwdev, 0x1b4c, 0x00000000);
return i_val * i_val + q_val * q_val;
}
static u32 rtw8822c_psd_log2base(u32 val)
{
u32 tmp, val_integerd_b, tindex;
u32 result, val_fractiond_b;
u32 table_fraction[21] = {0, 432, 332, 274, 232, 200, 174,
151, 132, 115, 100, 86, 74, 62, 51,
42, 32, 23, 15, 7, 0};
if (val == 0)
return 0;
val_integerd_b = __fls(val) + 1;
tmp = (val * 100) / (1 << val_integerd_b);
tindex = tmp / 5;
if (tindex >= ARRAY_SIZE(table_fraction))
tindex = ARRAY_SIZE(table_fraction) - 1;
val_fractiond_b = table_fraction[tindex];
result = val_integerd_b * 100 - val_fractiond_b;
return result;
}
static u8 rtw8822c_dpk_gainloss_result(struct rtw_dev *rtwdev, u8 path)
{
u8 result;
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
rtw_write32_mask(rtwdev, 0x1b48, BIT(14), 0x1);
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x00060000);
result = (u8)rtw_read32_mask(rtwdev, REG_STAT_RPT, 0x000000f0);
rtw_write32_mask(rtwdev, 0x1b48, BIT(14), 0x0);
return result;
}
static u8 rtw8822c_dpk_agc_gain_chk(struct rtw_dev *rtwdev, u8 path,
u8 limited_pga)
{
u8 result = 0;
u16 dgain;
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DAGC);
dgain = rtw8822c_dpk_dgain_read(rtwdev, path);
if (dgain > 1535 && !limited_pga)
return RTW_DPK_GAIN_LESS;
else if (dgain < 768 && !limited_pga)
return RTW_DPK_GAIN_LARGE;
else
return result;
}
static u8 rtw8822c_dpk_agc_loss_chk(struct rtw_dev *rtwdev, u8 path)
{
u32 loss, loss_db;
loss = rtw8822c_dpk_pas_read(rtwdev, path);
if (loss < 0x4000000)
return RTW_DPK_GL_LESS;
loss_db = 3 * rtw8822c_psd_log2base(loss >> 13) - 3870;
if (loss_db > 1000)
return RTW_DPK_GL_LARGE;
else if (loss_db < 250)
return RTW_DPK_GL_LESS;
else
return RTW_DPK_AGC_OUT;
}
struct rtw8822c_dpk_data {
u8 txbb;
u8 pga;
u8 limited_pga;
u8 agc_cnt;
bool loss_only;
bool gain_only;
u8 path;
};
static u8 rtw8822c_gain_check_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
u8 state;
data->txbb = (u8)rtw_read_rf(rtwdev, data->path, RF_TX_GAIN,
BIT_GAIN_TXBB);
data->pga = (u8)rtw_read_rf(rtwdev, data->path, RF_MODE_TRXAGC,
BIT_RXAGC);
if (data->loss_only) {
state = RTW_DPK_LOSS_CHECK;
goto check_end;
}
state = rtw8822c_dpk_agc_gain_chk(rtwdev, data->path,
data->limited_pga);
if (state == RTW_DPK_GAIN_CHECK && data->gain_only)
state = RTW_DPK_AGC_OUT;
else if (state == RTW_DPK_GAIN_CHECK)
state = RTW_DPK_LOSS_CHECK;
check_end:
data->agc_cnt++;
if (data->agc_cnt >= 6)
state = RTW_DPK_AGC_OUT;
return state;
}
static u8 rtw8822c_gain_large_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
u8 pga = data->pga;
if (pga > 0xe)
rtw_write_rf(rtwdev, data->path, RF_MODE_TRXAGC, BIT_RXAGC, 0xc);
else if (pga > 0xb && pga < 0xf)
rtw_write_rf(rtwdev, data->path, RF_MODE_TRXAGC, BIT_RXAGC, 0x0);
else if (pga < 0xc)
data->limited_pga = 1;
return RTW_DPK_GAIN_CHECK;
}
static u8 rtw8822c_gain_less_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
u8 pga = data->pga;
if (pga < 0xc)
rtw_write_rf(rtwdev, data->path, RF_MODE_TRXAGC, BIT_RXAGC, 0xc);
else if (pga > 0xb && pga < 0xf)
rtw_write_rf(rtwdev, data->path, RF_MODE_TRXAGC, BIT_RXAGC, 0xf);
else if (pga > 0xe)
data->limited_pga = 1;
return RTW_DPK_GAIN_CHECK;
}
static u8 rtw8822c_gl_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data, u8 is_large)
{
u8 txbb_bound[] = {0x1f, 0};
if (data->txbb == txbb_bound[is_large])
return RTW_DPK_AGC_OUT;
if (is_large == 1)
data->txbb -= 2;
else
data->txbb += 3;
rtw_write_rf(rtwdev, data->path, RF_TX_GAIN, BIT_GAIN_TXBB, data->txbb);
data->limited_pga = 0;
return RTW_DPK_GAIN_CHECK;
}
static u8 rtw8822c_gl_large_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
return rtw8822c_gl_state(rtwdev, data, 1);
}
static u8 rtw8822c_gl_less_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
return rtw8822c_gl_state(rtwdev, data, 0);
}
static u8 rtw8822c_loss_check_state(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data)
{
u8 path = data->path;
u8 state;
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_GAIN_LOSS);
state = rtw8822c_dpk_agc_loss_chk(rtwdev, path);
return state;
}
static u8 (*dpk_state[])(struct rtw_dev *rtwdev,
struct rtw8822c_dpk_data *data) = {
rtw8822c_gain_check_state, rtw8822c_gain_large_state,
rtw8822c_gain_less_state, rtw8822c_gl_large_state,
rtw8822c_gl_less_state, rtw8822c_loss_check_state };
static u8 rtw8822c_dpk_pas_agc(struct rtw_dev *rtwdev, u8 path,
bool gain_only, bool loss_only)
{
struct rtw8822c_dpk_data data = {0};
u8 (*func)(struct rtw_dev *rtwdev, struct rtw8822c_dpk_data *data);
u8 state = RTW_DPK_GAIN_CHECK;
data.loss_only = loss_only;
data.gain_only = gain_only;
data.path = path;
for (;;) {
func = dpk_state[state];
state = func(rtwdev, &data);
if (state == RTW_DPK_AGC_OUT)
break;
}
return data.txbb;
}
static bool rtw8822c_dpk_coef_iq_check(struct rtw_dev *rtwdev,
u16 coef_i, u16 coef_q)
{
if (coef_i == 0x1000 || coef_i == 0x0fff ||
coef_q == 0x1000 || coef_q == 0x0fff)
return 1;
else
return 0;
}
static u32 rtw8822c_dpk_coef_transfer(struct rtw_dev *rtwdev)
{
u32 reg = 0;
u16 coef_i = 0, coef_q = 0;
reg = rtw_read32(rtwdev, REG_STAT_RPT);
coef_i = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, MASKHWORD) & 0x1fff;
coef_q = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, MASKLWORD) & 0x1fff;
coef_q = ((0x2000 - coef_q) & 0x1fff) - 1;
reg = (coef_i << 16) | coef_q;
return reg;
}
static const u32 rtw8822c_dpk_get_coef_tbl[] = {
0x000400f0, 0x040400f0, 0x080400f0, 0x010400f0, 0x050400f0,
0x090400f0, 0x020400f0, 0x060400f0, 0x0a0400f0, 0x030400f0,
0x070400f0, 0x0b0400f0, 0x0c0400f0, 0x100400f0, 0x0d0400f0,
0x110400f0, 0x0e0400f0, 0x120400f0, 0x0f0400f0, 0x130400f0,
};
static void rtw8822c_dpk_coef_tbl_apply(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
int i;
for (i = 0; i < 20; i++) {
rtw_write32(rtwdev, REG_RXSRAM_CTL,
rtw8822c_dpk_get_coef_tbl[i]);
dpk_info->coef[path][i] = rtw8822c_dpk_coef_transfer(rtwdev);
}
}
static void rtw8822c_dpk_get_coef(struct rtw_dev *rtwdev, u8 path)
{
rtw_write32(rtwdev, REG_NCTL0, 0x0000000c);
if (path == RF_PATH_A) {
rtw_write32_mask(rtwdev, REG_DPD_CTL0, BIT(24), 0x0);
rtw_write32(rtwdev, REG_DPD_CTL0_S0, 0x30000080);
} else if (path == RF_PATH_B) {
rtw_write32_mask(rtwdev, REG_DPD_CTL0, BIT(24), 0x1);
rtw_write32(rtwdev, REG_DPD_CTL0_S1, 0x30000080);
}
rtw8822c_dpk_coef_tbl_apply(rtwdev, path);
}
static u8 rtw8822c_dpk_coef_read(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 addr, result = 1;
u16 coef_i, coef_q;
for (addr = 0; addr < 20; addr++) {
coef_i = FIELD_GET(0x1fff0000, dpk_info->coef[path][addr]);
coef_q = FIELD_GET(0x1fff, dpk_info->coef[path][addr]);
if (rtw8822c_dpk_coef_iq_check(rtwdev, coef_i, coef_q)) {
result = 0;
break;
}
}
return result;
}
static void rtw8822c_dpk_coef_write(struct rtw_dev *rtwdev, u8 path, u8 result)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u16 reg[DPK_RF_PATH_NUM] = {0x1b0c, 0x1b64};
u32 coef;
u8 addr;
rtw_write32(rtwdev, REG_NCTL0, 0x0000000c);
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x000000f0);
for (addr = 0; addr < 20; addr++) {
if (result == 0) {
if (addr == 3)
coef = 0x04001fff;
else
coef = 0x00001fff;
} else {
coef = dpk_info->coef[path][addr];
}
rtw_write32(rtwdev, reg[path] + addr * 4, coef);
}
}
static void rtw8822c_dpk_fill_result(struct rtw_dev *rtwdev, u32 dpk_txagc,
u8 path, u8 result)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
if (result)
rtw_write8(rtwdev, REG_DPD_AGC, (u8)(dpk_txagc - 6));
else
rtw_write8(rtwdev, REG_DPD_AGC, 0x00);
dpk_info->result[path] = result;
dpk_info->dpk_txagc[path] = rtw_read8(rtwdev, REG_DPD_AGC);
rtw8822c_dpk_coef_write(rtwdev, path, result);
}
static u32 rtw8822c_dpk_gainloss(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 tx_agc, tx_bb, ori_txbb, ori_txagc, tx_agc_search, t1, t2;
ori_txbb = rtw8822c_dpk_rf_setting(rtwdev, path);
ori_txagc = (u8)rtw_read_rf(rtwdev, path, RF_MODE_TRXAGC, BIT_TXAGC);
rtw8822c_dpk_rxbb_dc_cal(rtwdev, path);
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DAGC);
rtw8822c_dpk_dgain_read(rtwdev, path);
if (rtw8822c_dpk_dc_corr_check(rtwdev, path)) {
rtw8822c_dpk_rxbb_dc_cal(rtwdev, path);
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DAGC);
rtw8822c_dpk_dc_corr_check(rtwdev, path);
}
t1 = rtw8822c_dpk_thermal_read(rtwdev, path);
tx_bb = rtw8822c_dpk_pas_agc(rtwdev, path, false, true);
tx_agc_search = rtw8822c_dpk_gainloss_result(rtwdev, path);
if (tx_bb < tx_agc_search)
tx_bb = 0;
else
tx_bb = tx_bb - tx_agc_search;
rtw_write_rf(rtwdev, path, RF_TX_GAIN, BIT_GAIN_TXBB, tx_bb);
tx_agc = ori_txagc - (ori_txbb - tx_bb);
t2 = rtw8822c_dpk_thermal_read(rtwdev, path);
dpk_info->thermal_dpk_delta[path] = abs(t2 - t1);
return tx_agc;
}
static u8 rtw8822c_dpk_by_path(struct rtw_dev *rtwdev, u32 tx_agc, u8 path)
{
u8 result;
result = rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DO_DPK);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
result = result | (u8)rtw_read32_mask(rtwdev, REG_DPD_CTL1_S0, BIT(26));
rtw_write_rf(rtwdev, path, RF_MODE_TRXAGC, RFREG_MASK, 0x33e14);
rtw8822c_dpk_get_coef(rtwdev, path);
return result;
}
static void rtw8822c_dpk_cal_gs(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u32 tmp_gs = 0;
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
rtw_write32_mask(rtwdev, REG_IQK_CTL1, BIT_BYPASS_DPD, 0x0);
rtw_write32_mask(rtwdev, REG_IQK_CTL1, BIT_TX_CFIR, 0x0);
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_IQ_SWITCH, 0x9);
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_INNER_LB, 0x1);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
rtw_write32_mask(rtwdev, REG_RXSRAM_CTL, BIT_DPD_CLK, 0xf);
if (path == RF_PATH_A) {
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0, BIT_GS_PWSF,
0x1066680);
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S0, BIT_DPD_EN, 0x1);
} else {
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S1, BIT_GS_PWSF,
0x1066680);
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S1, BIT_DPD_EN, 0x1);
}
if (dpk_info->dpk_bw == DPK_CHANNEL_WIDTH_80) {
rtw_write32(rtwdev, REG_DPD_CTL16, 0x80001310);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x00001310);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x810000db);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x010000db);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x0000b428);
rtw_write32(rtwdev, REG_DPD_CTL15,
0x05020000 | (BIT(path) << 28));
} else {
rtw_write32(rtwdev, REG_DPD_CTL16, 0x8200190c);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x0200190c);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x8301ee14);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x0301ee14);
rtw_write32(rtwdev, REG_DPD_CTL16, 0x0000b428);
rtw_write32(rtwdev, REG_DPD_CTL15,
0x05020008 | (BIT(path) << 28));
}
rtw_write32_mask(rtwdev, REG_DPD_CTL0, MASKBYTE3, 0x8 | path);
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_CAL_PWR);
rtw_write32_mask(rtwdev, REG_DPD_CTL15, MASKBYTE3, 0x0);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_IQ_SWITCH, 0x0);
rtw_write32_mask(rtwdev, REG_R_CONFIG, BIT_INNER_LB, 0x0);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
if (path == RF_PATH_A)
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0, BIT_GS_PWSF, 0x5b);
else
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S1, BIT_GS_PWSF, 0x5b);
rtw_write32_mask(rtwdev, REG_RXSRAM_CTL, BIT_RPT_SEL, 0x0);
tmp_gs = (u16)rtw_read32_mask(rtwdev, REG_STAT_RPT, BIT_RPT_DGAIN);
tmp_gs = (tmp_gs * 910) >> 10;
tmp_gs = DIV_ROUND_CLOSEST(tmp_gs, 10);
if (path == RF_PATH_A)
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0, BIT_GS_PWSF, tmp_gs);
else
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S1, BIT_GS_PWSF, tmp_gs);
dpk_info->dpk_gs[path] = tmp_gs;
}
void rtw8822c_dpk_cal_coef1(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u32 offset[DPK_RF_PATH_NUM] = {0, 0x58};
u32 i_scaling;
u8 path;
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x0000000c);
rtw_write32(rtwdev, REG_RXSRAM_CTL, 0x000000f0);
rtw_write32(rtwdev, REG_NCTL0, 0x00001148);
rtw_write32(rtwdev, REG_NCTL0, 0x00001149);
check_hw_ready(rtwdev, 0x2d9c, MASKBYTE0, 0x55);
rtw_write8(rtwdev, 0x1b10, 0x0);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x0000000c);
for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
i_scaling = 0x16c00 / dpk_info->dpk_gs[path];
rtw_write32_mask(rtwdev, 0x1b18 + offset[path], MASKHWORD,
i_scaling);
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0 + offset[path],
GENMASK(31, 28), 0x9);
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0 + offset[path],
GENMASK(31, 28), 0x1);
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0 + offset[path],
GENMASK(31, 28), 0x0);
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S0 + offset[path],
BIT(14), 0x0);
}
}
static void rtw8822c_dpk_on(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DPK_ON);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x8 | (path << 1));
rtw_write32_mask(rtwdev, REG_IQK_CTL1, BIT_TX_CFIR, 0x0);
if (test_bit(path, dpk_info->dpk_path_ok))
rtw8822c_dpk_cal_gs(rtwdev, path);
}
static bool rtw8822c_dpk_check_pass(struct rtw_dev *rtwdev, bool is_fail,
u32 dpk_txagc, u8 path)
{
bool result;
if (!is_fail) {
if (rtw8822c_dpk_coef_read(rtwdev, path))
result = true;
else
result = false;
} else {
result = false;
}
rtw8822c_dpk_fill_result(rtwdev, dpk_txagc, path, result);
return result;
}
static void rtw8822c_dpk_result_reset(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 path;
for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
clear_bit(path, dpk_info->dpk_path_ok);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE,
0x8 | (path << 1));
rtw_write32_mask(rtwdev, 0x1b58, 0x0000007f, 0x0);
dpk_info->dpk_txagc[path] = 0;
dpk_info->result[path] = 0;
dpk_info->dpk_gs[path] = 0x5b;
dpk_info->pre_pwsf[path] = 0;
dpk_info->thermal_dpk[path] = rtw8822c_dpk_thermal_read(rtwdev,
path);
}
}
static void rtw8822c_dpk_calibrate(struct rtw_dev *rtwdev, u8 path)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u32 dpk_txagc;
u8 dpk_fail;
rtw_dbg(rtwdev, RTW_DBG_RFK, "[DPK] s%d dpk start\n", path);
dpk_txagc = rtw8822c_dpk_gainloss(rtwdev, path);
dpk_fail = rtw8822c_dpk_by_path(rtwdev, dpk_txagc, path);
if (!rtw8822c_dpk_check_pass(rtwdev, dpk_fail, dpk_txagc, path))
rtw_err(rtwdev, "failed to do dpk calibration\n");
rtw_dbg(rtwdev, RTW_DBG_RFK, "[DPK] s%d dpk finish\n", path);
if (dpk_info->result[path])
set_bit(path, dpk_info->dpk_path_ok);
}
static void rtw8822c_dpk_path_select(struct rtw_dev *rtwdev)
{
rtw8822c_dpk_calibrate(rtwdev, RF_PATH_A);
rtw8822c_dpk_calibrate(rtwdev, RF_PATH_B);
rtw8822c_dpk_on(rtwdev, RF_PATH_A);
rtw8822c_dpk_on(rtwdev, RF_PATH_B);
rtw8822c_dpk_cal_coef1(rtwdev);
}
static void rtw8822c_dpk_enable_disable(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u32 mask = BIT(15) | BIT(14);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S0, BIT_DPD_EN,
dpk_info->is_dpk_pwr_on);
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S1, BIT_DPD_EN,
dpk_info->is_dpk_pwr_on);
if (test_bit(RF_PATH_A, dpk_info->dpk_path_ok)) {
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S0, mask, 0x0);
rtw_write8(rtwdev, REG_DPD_CTL0_S0, dpk_info->dpk_gs[RF_PATH_A]);
}
if (test_bit(RF_PATH_B, dpk_info->dpk_path_ok)) {
rtw_write32_mask(rtwdev, REG_DPD_CTL1_S1, mask, 0x0);
rtw_write8(rtwdev, REG_DPD_CTL0_S1, dpk_info->dpk_gs[RF_PATH_B]);
}
}
static void rtw8822c_dpk_reload_data(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 path;
if (!test_bit(RF_PATH_A, dpk_info->dpk_path_ok) &&
!test_bit(RF_PATH_B, dpk_info->dpk_path_ok) &&
dpk_info->dpk_ch == 0)
return;
for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE,
0x8 | (path << 1));
if (dpk_info->dpk_band == RTW_BAND_2G)
rtw_write32(rtwdev, REG_DPD_LUT3, 0x1f100000);
else
rtw_write32(rtwdev, REG_DPD_LUT3, 0x1f0d0000);
rtw_write8(rtwdev, REG_DPD_AGC, dpk_info->dpk_txagc[path]);
rtw8822c_dpk_coef_write(rtwdev, path,
test_bit(path, dpk_info->dpk_path_ok));
rtw8822c_dpk_one_shot(rtwdev, path, RTW_DPK_DPK_ON);
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0xc);
if (path == RF_PATH_A)
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S0, BIT_GS_PWSF,
dpk_info->dpk_gs[path]);
else
rtw_write32_mask(rtwdev, REG_DPD_CTL0_S1, BIT_GS_PWSF,
dpk_info->dpk_gs[path]);
}
rtw8822c_dpk_cal_coef1(rtwdev);
}
static bool rtw8822c_dpk_reload(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 channel;
dpk_info->is_reload = false;
channel = (u8)(rtw_read_rf(rtwdev, RF_PATH_A, 0x18, RFREG_MASK) & 0xff);
if (channel == dpk_info->dpk_ch) {
rtw_dbg(rtwdev, RTW_DBG_RFK,
"[DPK] DPK reload for CH%d!!\n", dpk_info->dpk_ch);
rtw8822c_dpk_reload_data(rtwdev);
dpk_info->is_reload = true;
}
return dpk_info->is_reload;
}
static void rtw8822c_do_dpk(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
struct rtw_backup_info bckp[DPK_BB_REG_NUM];
u32 rf_reg_backup[DPK_RF_REG_NUM][DPK_RF_PATH_NUM];
u32 bb_reg[DPK_BB_REG_NUM] = {
0x520, 0x820, 0x824, 0x1c3c, 0x1d58, 0x1864,
0x4164, 0x180c, 0x410c, 0x186c, 0x416c,
0x1a14, 0x1e70, 0x80c, 0x1d70, 0x1e7c, 0x18a4, 0x41a4};
u32 rf_reg[DPK_RF_REG_NUM] = {
0x0, 0x1a, 0x55, 0x63, 0x87, 0x8f, 0xde};
u8 path;
if (!dpk_info->is_dpk_pwr_on) {
rtw_dbg(rtwdev, RTW_DBG_RFK, "[DPK] Skip DPK due to DPD PWR off\n");
return;
} else if (rtw8822c_dpk_reload(rtwdev)) {
return;
}
for (path = RF_PATH_A; path < DPK_RF_PATH_NUM; path++)
ewma_thermal_init(&dpk_info->avg_thermal[path]);
rtw8822c_dpk_information(rtwdev);
rtw8822c_dpk_backup_registers(rtwdev, bb_reg, DPK_BB_REG_NUM, bckp);
rtw8822c_dpk_backup_rf_registers(rtwdev, rf_reg, rf_reg_backup);
rtw8822c_dpk_mac_bb_setting(rtwdev);
rtw8822c_dpk_afe_setting(rtwdev, true);
rtw8822c_dpk_pre_setting(rtwdev);
rtw8822c_dpk_result_reset(rtwdev);
rtw8822c_dpk_path_select(rtwdev);
rtw8822c_dpk_afe_setting(rtwdev, false);
rtw8822c_dpk_enable_disable(rtwdev);
rtw8822c_dpk_reload_rf_registers(rtwdev, rf_reg, rf_reg_backup);
for (path = 0; path < rtwdev->hal.rf_path_num; path++)
rtw8822c_dpk_rxbb_dc_cal(rtwdev, path);
rtw8822c_dpk_restore_registers(rtwdev, DPK_BB_REG_NUM, bckp);
}
void rtw8822c_dpk_track(struct rtw_dev *rtwdev)
{
struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info;
u8 path;
u8 thermal_value[DPK_RF_PATH_NUM] = {0};
s8 offset[DPK_RF_PATH_NUM], delta_dpk[DPK_RF_PATH_NUM];
if (dpk_info->thermal_dpk[0] == 0 && dpk_info->thermal_dpk[1] == 0)
return;
for (path = 0; path < DPK_RF_PATH_NUM; path++) {
thermal_value[path] = rtw8822c_dpk_thermal_read(rtwdev, path);
ewma_thermal_add(&dpk_info->avg_thermal[path],
thermal_value[path]);
thermal_value[path] =
ewma_thermal_read(&dpk_info->avg_thermal[path]);
delta_dpk[path] = dpk_info->thermal_dpk[path] -
thermal_value[path];
offset[path] = delta_dpk[path] -
dpk_info->thermal_dpk_delta[path];
offset[path] &= 0x7f;
if (offset[path] != dpk_info->pre_pwsf[path]) {
rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE,
0x8 | (path << 1));
rtw_write32_mask(rtwdev, 0x1b58, GENMASK(6, 0),
offset[path]);
dpk_info->pre_pwsf[path] = offset[path];
}
}
}
static struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8822c[] = {
{0x0086,
RTW_PWR_CUT_ALL_MSK,
......@@ -2427,6 +3488,8 @@ static struct rtw_chip_ops rtw8822c_ops = {
.cfg_ldo25 = rtw8822c_cfg_ldo25,
.false_alarm_statistics = rtw8822c_false_alarm_statistics,
.do_iqk = rtw8822c_do_iqk,
.do_dpk = rtw8822c_do_dpk,
.dpk_track = rtw8822c_dpk_track,
.coex_set_init = rtw8822c_coex_cfg_init,
.coex_set_ant_switch = NULL,
......@@ -2619,6 +3682,8 @@ struct rtw_chip_info rtw8822c_hw_spec = {
.rf_tbl = {&rtw8822c_rf_a_tbl, &rtw8822c_rf_b_tbl},
.rfe_defs = rtw8822c_rfe_defs,
.rfe_defs_size = ARRAY_SIZE(rtw8822c_rfe_defs),
.en_dis_dpd = true,
.dpd_ratemask = DIS_DPD_RATEALL,
.coex_para_ver = 0x19062706,
.bt_desired_ver = 0x6,
......
......@@ -96,6 +96,35 @@ struct rtw8822c_efuse {
};
};
enum rtw8822c_dpk_agc_phase {
RTW_DPK_GAIN_CHECK,
RTW_DPK_GAIN_LARGE,
RTW_DPK_GAIN_LESS,
RTW_DPK_GL_LARGE,
RTW_DPK_GL_LESS,
RTW_DPK_LOSS_CHECK,
RTW_DPK_AGC_OUT,
};
enum rtw8822c_dpk_one_shot_action {
RTW_DPK_CAL_PWR,
RTW_DPK_GAIN_LOSS,
RTW_DPK_DO_DPK,
RTW_DPK_DPK_ON,
RTW_DPK_DAGC,
RTW_DPK_ACTION_MAX
};
void rtw8822c_parse_tbl_dpk(struct rtw_dev *rtwdev,
const struct rtw_table *tbl);
#define RTW_DECL_TABLE_DPK(name) \
const struct rtw_table name ## _tbl = { \
.data = name, \
.size = ARRAY_SIZE(name), \
.parse = rtw8822c_parse_tbl_dpk, \
}
#define DACK_PATH_8822C 2
#define DACK_REG_8822C 16
#define DACK_RF_8822C 1
......@@ -208,4 +237,59 @@ struct rtw8822c_efuse {
#define REG_DCKB_Q_0 0x41d8
#define REG_DCKB_Q_1 0x41dc
#define RF_MODE_TRXAGC 0x00
#define RF_RXAGC_OFFSET 0x19
#define RF_BW_TRXBB 0x1a
#define RF_TX_GAIN_OFFSET 0x55
#define RF_TX_GAIN 0x56
#define RF_TXA_LB_SW 0x63
#define RF_RXG_GAIN 0x87
#define RF_RXA_MIX_GAIN 0x8a
#define RF_EXT_TIA_BW 0x8f
#define RF_DEBUG 0xde
#define REG_NCTL0 0x1b00
#define REG_DPD_CTL0_S0 0x1b04
#define REG_DPD_CTL1_S0 0x1b08
#define REG_IQK_CTL1 0x1b20
#define REG_DPD_LUT0 0x1b44
#define REG_DPD_CTL0_S1 0x1b5c
#define REG_DPD_LUT3 0x1b60
#define REG_DPD_CTL1_S1 0x1b60
#define REG_DPD_AGC 0x1b67
#define REG_DPD_CTL0 0x1bb4
#define REG_R_CONFIG 0x1bcc
#define REG_RXSRAM_CTL 0x1bd4
#define REG_DPD_CTL11 0x1be4
#define REG_DPD_CTL12 0x1be8
#define REG_DPD_CTL15 0x1bf4
#define REG_DPD_CTL16 0x1bf8
#define REG_STAT_RPT 0x1bfc
#define BIT_EXT_TIA_BW BIT(1)
#define BIT_DE_TRXBW BIT(2)
#define BIT_DE_TX_GAIN BIT(16)
#define BIT_RXG_GAIN BIT(18)
#define BIT_DE_PWR_TRIM BIT(19)
#define BIT_INNER_LB BIT(21)
#define BIT_BYPASS_DPD BIT(25)
#define BIT_DPD_EN BIT(31)
#define BIT_SUBPAGE GENMASK(3, 0)
#define BIT_TXAGC GENMASK(4, 0)
#define BIT_GAIN_TXBB GENMASK(4, 0)
#define BIT_LB_ATT GENMASK(4, 2)
#define BIT_RXA_MIX_GAIN GENMASK(4, 3)
#define BIT_IQ_SWITCH GENMASK(5, 0)
#define BIT_DPD_CLK GENMASK(7, 4)
#define BIT_RXAGC GENMASK(9, 5)
#define BIT_BW_RXBB GENMASK(11, 10)
#define BIT_LB_SW GENMASK(13, 12)
#define BIT_BW_TXBB GENMASK(14, 12)
#define BIT_GLOSS_DB GENMASK(14, 12)
#define BIT_TXA_LB_ATT GENMASK(15, 14)
#define BIT_TX_OFFSET_VAL GENMASK(18, 14)
#define BIT_RPT_SEL GENMASK(20, 16)
#define BIT_GS_PWSF GENMASK(27, 0)
#define BIT_RPT_DGAIN GENMASK(27, 16)
#define BIT_TX_CFIR GENMASK(31, 30)
#endif
......@@ -4,6 +4,7 @@
#include "main.h"
#include "phy.h"
#include "rtw8822c.h"
#include "rtw8822c_table.h"
static const u32 rtw8822c_mac[] = {
......@@ -13473,6 +13474,109 @@ static const struct rtw_txpwr_lmt_cfg_pair rtw8822c_txpwr_lmt_type0[] = {
RTW_DECL_TABLE_TXPWR_LMT(rtw8822c_txpwr_lmt_type0);
static const u32 rtw8822c_dpk_afe_no_dpk[] = {
0x18a4, BIT(7), 0,
0x41a4, BIT(7), 0,
0x1c38, MASKDWORD, 0xffa1005e,
0x1830, MASKDWORD, 0x700b8041,
0x1830, MASKDWORD, 0x70144041,
0x1830, MASKDWORD, 0x70244041,
0x1830, MASKDWORD, 0x70344041,
0x1830, MASKDWORD, 0x70444041,
0x1830, MASKDWORD, 0x705b8041,
0x1830, MASKDWORD, 0x70644041,
0x4130, MASKDWORD, 0x700b8041,
0x4130, MASKDWORD, 0x70144041,
0x4130, MASKDWORD, 0x70244041,
0x4130, MASKDWORD, 0x70344041,
0x4130, MASKDWORD, 0x70444041,
0x4130, MASKDWORD, 0x705b8041,
0x4130, MASKDWORD, 0x70644041,
0x1830, MASKDWORD, 0x707b8041,
0x1830, MASKDWORD, 0x708b8041,
0x1830, MASKDWORD, 0x709b8041,
0x1830, MASKDWORD, 0x70ab8041,
0x1830, MASKDWORD, 0x70bb8041,
0x1830, MASKDWORD, 0x70cb8041,
0x1830, MASKDWORD, 0x70db8041,
0x1830, MASKDWORD, 0x70eb8041,
0x1830, MASKDWORD, 0x70fb8041,
0x4130, MASKDWORD, 0x707b8041,
0x4130, MASKDWORD, 0x708b8041,
0x4130, MASKDWORD, 0x709b8041,
0x4130, MASKDWORD, 0x70ab8041,
0x4130, MASKDWORD, 0x70bb8041,
0x4130, MASKDWORD, 0x70cb8041,
0x4130, MASKDWORD, 0x70db8041,
0x4130, MASKDWORD, 0x70eb8041,
0x4130, MASKDWORD, 0x70fb8041,
};
RTW_DECL_TABLE_DPK(rtw8822c_dpk_afe_no_dpk);
static const u32 rtw8822c_dpk_afe_is_dpk[] = {
0x1c38, MASKDWORD, 0xFFFFFFFF,
0x1830, MASKDWORD, 0x700f0001,
0x1830, MASKDWORD, 0x700f0001,
0x1830, MASKDWORD, 0x701f0001,
0x1830, MASKDWORD, 0x702f0001,
0x1830, MASKDWORD, 0x703f0001,
0x1830, MASKDWORD, 0x704f0001,
0x1830, MASKDWORD, 0x705f0001,
0x1830, MASKDWORD, 0x706f0001,
0x1830, MASKDWORD, 0x707f0001,
0x1830, MASKDWORD, 0x708f0001,
0x1830, MASKDWORD, 0x709f0001,
0x1830, MASKDWORD, 0x70af0001,
0x1830, MASKDWORD, 0x70bf0001,
0x1830, MASKDWORD, 0x70cf0001,
0x1830, MASKDWORD, 0x70df0001,
0x1830, MASKDWORD, 0x70ef0001,
0x1830, MASKDWORD, 0x70ff0001,
0x1830, MASKDWORD, 0x70ff0001,
0x4130, MASKDWORD, 0x700f0001,
0x4130, MASKDWORD, 0x700f0001,
0x4130, MASKDWORD, 0x701f0001,
0x4130, MASKDWORD, 0x702f0001,
0x4130, MASKDWORD, 0x703f0001,
0x4130, MASKDWORD, 0x704f0001,
0x4130, MASKDWORD, 0x705f0001,
0x4130, MASKDWORD, 0x706f0001,
0x4130, MASKDWORD, 0x707f0001,
0x4130, MASKDWORD, 0x708f0001,
0x4130, MASKDWORD, 0x709f0001,
0x4130, MASKDWORD, 0x70af0001,
0x4130, MASKDWORD, 0x70bf0001,
0x4130, MASKDWORD, 0x70cf0001,
0x4130, MASKDWORD, 0x70df0001,
0x4130, MASKDWORD, 0x70ef0001,
0x4130, MASKDWORD, 0x70ff0001,
0x4130, MASKDWORD, 0x70ff0001,
0x18a4, BIT(7), 1,
0x41a4, BIT(7), 1,
};
RTW_DECL_TABLE_DPK(rtw8822c_dpk_afe_is_dpk);
static const u32 rtw8822c_dpk_mac_bb[] = {
0x1e24, BIT(17), 0x1,
0x1d58, GENMASK(11, 3), 0x1ff,
0x1864, BIT(31), 0x1,
0x4164, BIT(31), 0x1,
0x180c, BIT(27), 0x1,
0x410c, BIT(27), 0x1,
0x186c, BIT(7), 0x1,
0x416c, BIT(7), 0x1,
0x180c, GENMASK(1, 0), 0x0,
0x410c, GENMASK(1, 0), 0x0,
0x1a14, GENMASK(9, 8), 0x3,
0x80c, GENMASK(3, 0), 0x8,
0x824, GENMASK(19, 16), 0x3,
0x824, GENMASK(27, 24), 0x3,
};
RTW_DECL_TABLE_DPK(rtw8822c_dpk_mac_bb);
static const u32 rtw8822c_array_mp_cal_init[] = {
0x1b00, 0x00000008,
0x1b00, 0x00A70008,
......@@ -13497,6 +13601,7 @@ static const u32 rtw8822c_array_mp_cal_init[] = {
0x1b9c, 0x00000000,
0x1bc0, 0x01000000,
0x1bcc, 0x00000000,
0x1bd8, 0xe0000001,
0x1be4, 0x00000000,
0x1bec, 0x40000000,
0x1b40, 0x40000000,
......@@ -13760,6 +13865,7 @@ static const u32 rtw8822c_array_mp_cal_init[] = {
0x1b9c, 0x00000000,
0x1bc0, 0x01000000,
0x1bcc, 0x00000000,
0x1bd8, 0xe0000001,
0x1be4, 0x00000000,
0x1bec, 0x40000000,
0x1b60, 0x1F100000,
......@@ -13966,1656 +14072,1970 @@ static const u32 rtw8822c_array_mp_cal_init[] = {
0x1b80, 0x00020257,
0x1b80, 0x30000265,
0x1b80, 0x30000267,
0x1b80, 0xa5100275,
0x1b80, 0xa5100277,
0x1b80, 0xe3520285,
0x1b80, 0xe3520287,
0x1b80, 0xf01d0295,
0x1b80, 0xf01d0297,
0x1b80, 0xf11d02a5,
0x1b80, 0xf11d02a7,
0x1b80, 0xf21d02b5,
0x1b80, 0xf21d02b7,
0x1b80, 0xf31d02c5,
0x1b80, 0xf31d02c7,
0x1b80, 0xf41d02d5,
0x1b80, 0xf41d02d7,
0x1b80, 0xf51d02e5,
0x1b80, 0xf51d02e7,
0x1b80, 0xf61d02f5,
0x1b80, 0xf61d02f7,
0x1b80, 0xf71d0305,
0x1b80, 0xf71d0307,
0x1b80, 0xf81d0315,
0x1b80, 0xf81d0317,
0x1b80, 0xf91d0325,
0x1b80, 0xf91d0327,
0x1b80, 0xfa1d0335,
0x1b80, 0xfa1d0337,
0x1b80, 0xfb1d0345,
0x1b80, 0xfb1d0347,
0x1b80, 0xfc1d0355,
0x1b80, 0xfc1d0357,
0x1b80, 0xfd1d0365,
0x1b80, 0xfd1d0367,
0x1b80, 0xf21d0375,
0x1b80, 0xf21d0377,
0x1b80, 0xf31d0385,
0x1b80, 0xf31d0387,
0x1b80, 0xf41d0395,
0x1b80, 0xf41d0397,
0x1b80, 0xf51d03a5,
0x1b80, 0xf51d03a7,
0x1b80, 0xf61d03b5,
0x1b80, 0xf61d03b7,
0x1b80, 0xf71d03c5,
0x1b80, 0xf71d03c7,
0x1b80, 0xf81d03d5,
0x1b80, 0xf81d03d7,
0x1b80, 0xf91d03e5,
0x1b80, 0xf91d03e7,
0x1b80, 0xfa1d03f5,
0x1b80, 0xfa1d03f7,
0x1b80, 0xfb1d0405,
0x1b80, 0xfb1d0407,
0x1b80, 0xfc1d0415,
0x1b80, 0xfc1d0417,
0x1b80, 0xfd1d0425,
0x1b80, 0xfd1d0427,
0x1b80, 0xfe1d0435,
0x1b80, 0xfe1d0437,
0x1b80, 0xff1d0445,
0x1b80, 0xff1d0447,
0x1b80, 0x00010455,
0x1b80, 0x00010457,
0x1b80, 0x30620465,
0x1b80, 0x30620467,
0x1b80, 0x307a0475,
0x1b80, 0x307a0477,
0x1b80, 0x307c0485,
0x1b80, 0x307c0487,
0x1b80, 0x30eb0495,
0x1b80, 0x30eb0497,
0x1b80, 0x308004a5,
0x1b80, 0x308004a7,
0x1b80, 0x308c04b5,
0x1b80, 0x308c04b7,
0x1b80, 0x309804c5,
0x1b80, 0x309804c7,
0x1b80, 0x307f04d5,
0x1b80, 0x307f04d7,
0x1b80, 0x308b04e5,
0x1b80, 0x308b04e7,
0x1b80, 0x309704f5,
0x1b80, 0x309704f7,
0x1b80, 0x30ef0505,
0x1b80, 0x30ef0507,
0x1b80, 0x30fa0515,
0x1b80, 0x30fa0517,
0x1b80, 0x31050525,
0x1b80, 0x31050527,
0x1b80, 0x316a0535,
0x1b80, 0x316a0537,
0x1b80, 0x307a0545,
0x1b80, 0x307a0547,
0x1b80, 0x30e90555,
0x1b80, 0x30e90557,
0x1b80, 0x31870565,
0x1b80, 0x31870567,
0x1b80, 0x31a00575,
0x1b80, 0x31a00577,
0x1b80, 0x31ba0585,
0x1b80, 0x31ba0587,
0x1b80, 0x31c20595,
0x1b80, 0x31c20597,
0x1b80, 0x31ca05a5,
0x1b80, 0x31ca05a7,
0x1b80, 0x31d205b5,
0x1b80, 0x31d205b7,
0x1b80, 0x31da05c5,
0x1b80, 0x31da05c7,
0x1b80, 0x31e905d5,
0x1b80, 0x31e905d7,
0x1b80, 0x31f805e5,
0x1b80, 0x31f805e7,
0x1b80, 0x31fe05f5,
0x1b80, 0x31fe05f7,
0x1b80, 0x32040605,
0x1b80, 0x32040607,
0x1b80, 0x320a0615,
0x1b80, 0x320a0617,
0x1b80, 0xe2eb0625,
0x1b80, 0xe2eb0627,
0x1b80, 0x4d040635,
0x1b80, 0x4d040637,
0x1b80, 0x20800645,
0x1b80, 0x20800647,
0x1b80, 0x00000655,
0x1b80, 0x00000657,
0x1b80, 0x4d000665,
0x1b80, 0x4d000667,
0x1b80, 0x55070675,
0x1b80, 0x55070677,
0x1b80, 0xe2e30685,
0x1b80, 0xe2e30687,
0x1b80, 0xe2e30695,
0x1b80, 0xe2e30697,
0x1b80, 0x4d0406a5,
0x1b80, 0x4d0406a7,
0x1b80, 0x208806b5,
0x1b80, 0x208806b7,
0x1b80, 0x020006c5,
0x1b80, 0x020006c7,
0x1b80, 0x4d0006d5,
0x1b80, 0x4d0006d7,
0x1b80, 0x550f06e5,
0x1b80, 0x550f06e7,
0x1b80, 0xe2e306f5,
0x1b80, 0xe2e306f7,
0x1b80, 0x4f020705,
0x1b80, 0x4f020707,
0x1b80, 0x4e000715,
0x1b80, 0x4e000717,
0x1b80, 0x53020725,
0x1b80, 0x53020727,
0x1b80, 0x52010735,
0x1b80, 0x52010737,
0x1b80, 0xe2e70745,
0x1b80, 0xe2e70747,
0x1b80, 0x4d080755,
0x1b80, 0x4d080757,
0x1b80, 0x57100765,
0x1b80, 0x57100767,
0x1b80, 0x57000775,
0x1b80, 0x57000777,
0x1b80, 0x4d000785,
0x1b80, 0x4d000787,
0x1b80, 0x00010795,
0x1b80, 0x00010797,
0x1b80, 0xe2eb07a5,
0x1b80, 0xe2eb07a7,
0x1b80, 0x000107b5,
0x1b80, 0x000107b7,
0x1b80, 0x620607c5,
0x1b80, 0x620607c7,
0x1b80, 0xe2eb07d5,
0x1b80, 0xe2eb07d7,
0x1b80, 0x000107e5,
0x1b80, 0x000107e7,
0x1b80, 0x620607f5,
0x1b80, 0x620607f7,
0x1b80, 0x30ad0805,
0x1b80, 0x30ad0807,
0x1b80, 0x00260815,
0x1b80, 0x00260817,
0x1b80, 0xe3450825,
0x1b80, 0xe3450827,
0x1b80, 0x00020835,
0x1b80, 0x00020837,
0x1b80, 0x54ec0845,
0x1b80, 0x54ec0847,
0x1b80, 0x0ba60855,
0x1b80, 0x0ba60857,
0x1b80, 0x00260865,
0x1b80, 0x00260867,
0x1b80, 0xe3450875,
0x1b80, 0xe3450877,
0x1b80, 0x00020885,
0x1b80, 0x00020887,
0x1b80, 0x63c30895,
0x1b80, 0x63c30897,
0x1b80, 0x30d908a5,
0x1b80, 0x30d908a7,
0x1b80, 0x620608b5,
0x1b80, 0x620608b7,
0x1b80, 0x30a508c5,
0x1b80, 0x30a508c7,
0x1b80, 0x002408d5,
0x1b80, 0x002408d7,
0x1b80, 0xe34508e5,
0x1b80, 0xe34508e7,
0x1b80, 0x000208f5,
0x1b80, 0x000208f7,
0x1b80, 0x54ea0905,
0x1b80, 0x54ea0907,
0x1b80, 0x0ba60915,
0x1b80, 0x0ba60917,
0x1b80, 0x00240925,
0x1b80, 0x00240927,
0x1b80, 0xe3450935,
0x1b80, 0xe3450937,
0x1b80, 0x00020945,
0x1b80, 0x00020947,
0x1b80, 0x63c30955,
0x1b80, 0x63c30957,
0x1b80, 0x30d90965,
0x1b80, 0x30d90967,
0x1b80, 0xa5110275,
0x1b80, 0xa5110277,
0x1b80, 0xe3ef0285,
0x1b80, 0xe3ef0287,
0x1b80, 0xf01f0295,
0x1b80, 0xf01f0297,
0x1b80, 0xf11f02a5,
0x1b80, 0xf11f02a7,
0x1b80, 0xf21f02b5,
0x1b80, 0xf21f02b7,
0x1b80, 0xf31f02c5,
0x1b80, 0xf31f02c7,
0x1b80, 0xf41f02d5,
0x1b80, 0xf41f02d7,
0x1b80, 0xf51f02e5,
0x1b80, 0xf51f02e7,
0x1b80, 0xf61f02f5,
0x1b80, 0xf61f02f7,
0x1b80, 0xf71f0305,
0x1b80, 0xf71f0307,
0x1b80, 0xf81f0315,
0x1b80, 0xf81f0317,
0x1b80, 0xf91f0325,
0x1b80, 0xf91f0327,
0x1b80, 0xfa1f0335,
0x1b80, 0xfa1f0337,
0x1b80, 0xfb1f0345,
0x1b80, 0xfb1f0347,
0x1b80, 0xfc1f0355,
0x1b80, 0xfc1f0357,
0x1b80, 0xfd1f0365,
0x1b80, 0xfd1f0367,
0x1b80, 0xfe1f0375,
0x1b80, 0xfe1f0377,
0x1b80, 0xf11f0385,
0x1b80, 0xf11f0387,
0x1b80, 0xf21f0395,
0x1b80, 0xf21f0397,
0x1b80, 0xf31f03a5,
0x1b80, 0xf31f03a7,
0x1b80, 0xf41f03b5,
0x1b80, 0xf41f03b7,
0x1b80, 0xf51f03c5,
0x1b80, 0xf51f03c7,
0x1b80, 0xf61f03d5,
0x1b80, 0xf61f03d7,
0x1b80, 0xf71f03e5,
0x1b80, 0xf71f03e7,
0x1b80, 0xf81f03f5,
0x1b80, 0xf81f03f7,
0x1b80, 0xf91f0405,
0x1b80, 0xf91f0407,
0x1b80, 0xfa1f0415,
0x1b80, 0xfa1f0417,
0x1b80, 0xfb1f0425,
0x1b80, 0xfb1f0427,
0x1b80, 0xfc1f0435,
0x1b80, 0xfc1f0437,
0x1b80, 0xfd1f0445,
0x1b80, 0xfd1f0447,
0x1b80, 0xfe1f0455,
0x1b80, 0xfe1f0457,
0x1b80, 0xff1f0465,
0x1b80, 0xff1f0467,
0x1b80, 0x00010475,
0x1b80, 0x00010477,
0x1b80, 0x30660485,
0x1b80, 0x30660487,
0x1b80, 0x307e0495,
0x1b80, 0x307e0497,
0x1b80, 0x308204a5,
0x1b80, 0x308204a7,
0x1b80, 0x310c04b5,
0x1b80, 0x310c04b7,
0x1b80, 0x308904c5,
0x1b80, 0x308904c7,
0x1b80, 0x309804d5,
0x1b80, 0x309804d7,
0x1b80, 0x30a704e5,
0x1b80, 0x30a704e7,
0x1b80, 0x308804f5,
0x1b80, 0x308804f7,
0x1b80, 0x30970505,
0x1b80, 0x30970507,
0x1b80, 0x30a60515,
0x1b80, 0x30a60517,
0x1b80, 0x31100525,
0x1b80, 0x31100527,
0x1b80, 0x311b0535,
0x1b80, 0x311b0537,
0x1b80, 0x31260545,
0x1b80, 0x31260547,
0x1b80, 0x31ae0555,
0x1b80, 0x31ae0557,
0x1b80, 0x318b0565,
0x1b80, 0x318b0567,
0x1b80, 0x31cb0575,
0x1b80, 0x31cb0577,
0x1b80, 0x307e0585,
0x1b80, 0x307e0587,
0x1b80, 0x310a0595,
0x1b80, 0x310a0597,
0x1b80, 0x31db05a5,
0x1b80, 0x31db05a7,
0x1b80, 0x31f405b5,
0x1b80, 0x31f405b7,
0x1b80, 0x320e05c5,
0x1b80, 0x320e05c7,
0x1b80, 0x321605d5,
0x1b80, 0x321605d7,
0x1b80, 0x321e05e5,
0x1b80, 0x321e05e7,
0x1b80, 0x322605f5,
0x1b80, 0x322605f7,
0x1b80, 0x322e0605,
0x1b80, 0x322e0607,
0x1b80, 0x323d0615,
0x1b80, 0x323d0617,
0x1b80, 0x324c0625,
0x1b80, 0x324c0627,
0x1b80, 0x32520635,
0x1b80, 0x32520637,
0x1b80, 0x32580645,
0x1b80, 0x32580647,
0x1b80, 0x325e0655,
0x1b80, 0x325e0657,
0x1b80, 0xe3880665,
0x1b80, 0xe3880667,
0x1b80, 0x4d040675,
0x1b80, 0x4d040677,
0x1b80, 0x20800685,
0x1b80, 0x20800687,
0x1b80, 0x00000695,
0x1b80, 0x00000697,
0x1b80, 0x4d0006a5,
0x1b80, 0x4d0006a7,
0x1b80, 0x550706b5,
0x1b80, 0x550706b7,
0x1b80, 0xe38006c5,
0x1b80, 0xe38006c7,
0x1b80, 0xe38006d5,
0x1b80, 0xe38006d7,
0x1b80, 0x4d0406e5,
0x1b80, 0x4d0406e7,
0x1b80, 0x208806f5,
0x1b80, 0x208806f7,
0x1b80, 0x02000705,
0x1b80, 0x02000707,
0x1b80, 0x4d000715,
0x1b80, 0x4d000717,
0x1b80, 0x550f0725,
0x1b80, 0x550f0727,
0x1b80, 0xe3800735,
0x1b80, 0xe3800737,
0x1b80, 0x4f020745,
0x1b80, 0x4f020747,
0x1b80, 0x4e000755,
0x1b80, 0x4e000757,
0x1b80, 0x53020765,
0x1b80, 0x53020767,
0x1b80, 0x52010775,
0x1b80, 0x52010777,
0x1b80, 0xe3840785,
0x1b80, 0xe3840787,
0x1b80, 0x4d080795,
0x1b80, 0x4d080797,
0x1b80, 0x571007a5,
0x1b80, 0x571007a7,
0x1b80, 0x570007b5,
0x1b80, 0x570007b7,
0x1b80, 0x4d0007c5,
0x1b80, 0x4d0007c7,
0x1b80, 0x000107d5,
0x1b80, 0x000107d7,
0x1b80, 0xe38807e5,
0x1b80, 0xe38807e7,
0x1b80, 0x0bbd07f5,
0x1b80, 0x0bbd07f7,
0x1b80, 0xe3e20805,
0x1b80, 0xe3e20807,
0x1b80, 0x00010815,
0x1b80, 0x00010817,
0x1b80, 0x62060825,
0x1b80, 0x62060827,
0x1b80, 0xe3880835,
0x1b80, 0xe3880837,
0x1b80, 0x0bbd0845,
0x1b80, 0x0bbd0847,
0x1b80, 0xe3e20855,
0x1b80, 0xe3e20857,
0x1b80, 0x00010865,
0x1b80, 0x00010867,
0x1b80, 0x00010875,
0x1b80, 0x00010877,
0x1b80, 0x62060885,
0x1b80, 0x62060887,
0x1b80, 0x30bc0895,
0x1b80, 0x30bc0897,
0x1b80, 0x002608a5,
0x1b80, 0x002608a7,
0x1b80, 0xe3e208b5,
0x1b80, 0xe3e208b7,
0x1b80, 0x000208c5,
0x1b80, 0x000208c7,
0x1b80, 0x54ec08d5,
0x1b80, 0x54ec08d7,
0x1b80, 0x0ba608e5,
0x1b80, 0x0ba608e7,
0x1b80, 0x002608f5,
0x1b80, 0x002608f7,
0x1b80, 0xe3e20905,
0x1b80, 0xe3e20907,
0x1b80, 0x00020915,
0x1b80, 0x00020917,
0x1b80, 0xf7f50925,
0x1b80, 0xf7f50927,
0x1b80, 0x00300935,
0x1b80, 0x00300937,
0x1b80, 0x63c30945,
0x1b80, 0x63c30947,
0x1b80, 0x00020955,
0x1b80, 0x00020957,
0x1b80, 0x318b0965,
0x1b80, 0x318b0967,
0x1b80, 0x62060975,
0x1b80, 0x62060977,
0x1b80, 0x6c100985,
0x1b80, 0x6c100987,
0x1b80, 0x6d0f0995,
0x1b80, 0x6d0f0997,
0x1b80, 0xe2eb09a5,
0x1b80, 0xe2eb09a7,
0x1b80, 0xe34509b5,
0x1b80, 0xe34509b7,
0x1b80, 0x6c2409c5,
0x1b80, 0x6c2409c7,
0x1b80, 0xe2eb09d5,
0x1b80, 0xe2eb09d7,
0x1b80, 0xe34509e5,
0x1b80, 0xe34509e7,
0x1b80, 0x6c4409f5,
0x1b80, 0x6c4409f7,
0x1b80, 0xe2eb0a05,
0x1b80, 0xe2eb0a07,
0x1b80, 0xe3450a15,
0x1b80, 0xe3450a17,
0x1b80, 0x6c640a25,
0x1b80, 0x6c640a27,
0x1b80, 0xe2eb0a35,
0x1b80, 0xe2eb0a37,
0x1b80, 0xe3450a45,
0x1b80, 0xe3450a47,
0x1b80, 0x0baa0a55,
0x1b80, 0x0baa0a57,
0x1b80, 0x6c840a65,
0x1b80, 0x6c840a67,
0x1b80, 0x6d0f0a75,
0x1b80, 0x6d0f0a77,
0x1b80, 0xe2eb0a85,
0x1b80, 0xe2eb0a87,
0x1b80, 0xe3450a95,
0x1b80, 0xe3450a97,
0x1b80, 0x6ca40aa5,
0x1b80, 0x6ca40aa7,
0x1b80, 0xe2eb0ab5,
0x1b80, 0xe2eb0ab7,
0x1b80, 0xe3450ac5,
0x1b80, 0xe3450ac7,
0x1b80, 0x0bac0ad5,
0x1b80, 0x0bac0ad7,
0x1b80, 0x6cc40ae5,
0x1b80, 0x6cc40ae7,
0x1b80, 0x6d0f0af5,
0x1b80, 0x6d0f0af7,
0x1b80, 0xe2eb0b05,
0x1b80, 0xe2eb0b07,
0x1b80, 0xe3450b15,
0x1b80, 0xe3450b17,
0x1b80, 0x6ce40b25,
0x1b80, 0x6ce40b27,
0x1b80, 0xe2eb0b35,
0x1b80, 0xe2eb0b37,
0x1b80, 0xe3450b45,
0x1b80, 0xe3450b47,
0x1b80, 0x6cf40b55,
0x1b80, 0x6cf40b57,
0x1b80, 0xe2eb0b65,
0x1b80, 0xe2eb0b67,
0x1b80, 0xe3450b75,
0x1b80, 0xe3450b77,
0x1b80, 0x6c0c0b85,
0x1b80, 0x6c0c0b87,
0x1b80, 0x6d000b95,
0x1b80, 0x6d000b97,
0x1b80, 0xe2eb0ba5,
0x1b80, 0xe2eb0ba7,
0x1b80, 0xe3450bb5,
0x1b80, 0xe3450bb7,
0x1b80, 0x6c1c0bc5,
0x1b80, 0x6c1c0bc7,
0x1b80, 0xe2eb0bd5,
0x1b80, 0xe2eb0bd7,
0x1b80, 0xe3450be5,
0x1b80, 0xe3450be7,
0x1b80, 0x6c3c0bf5,
0x1b80, 0x6c3c0bf7,
0x1b80, 0xe2eb0c05,
0x1b80, 0xe2eb0c07,
0x1b80, 0xe3450c15,
0x1b80, 0xe3450c17,
0x1b80, 0xf4bf0c25,
0x1b80, 0xf4bf0c27,
0x1b80, 0xf7be0c35,
0x1b80, 0xf7be0c37,
0x1b80, 0x6c5c0c45,
0x1b80, 0x6c5c0c47,
0x1b80, 0xe2eb0c55,
0x1b80, 0xe2eb0c57,
0x1b80, 0xe3450c65,
0x1b80, 0xe3450c67,
0x1b80, 0x6c7c0c75,
0x1b80, 0x6c7c0c77,
0x1b80, 0xe2eb0c85,
0x1b80, 0xe2eb0c87,
0x1b80, 0xe3450c95,
0x1b80, 0xe3450c97,
0x1b80, 0xf5c30ca5,
0x1b80, 0xf5c30ca7,
0x1b80, 0xf8c20cb5,
0x1b80, 0xf8c20cb7,
0x1b80, 0x6c9c0cc5,
0x1b80, 0x6c9c0cc7,
0x1b80, 0xe2eb0cd5,
0x1b80, 0xe2eb0cd7,
0x1b80, 0xe3450ce5,
0x1b80, 0xe3450ce7,
0x1b80, 0x6cbc0cf5,
0x1b80, 0x6cbc0cf7,
0x1b80, 0xe2eb0d05,
0x1b80, 0xe2eb0d07,
0x1b80, 0xe3450d15,
0x1b80, 0xe3450d17,
0x1b80, 0x6cdc0d25,
0x1b80, 0x6cdc0d27,
0x1b80, 0xe2eb0d35,
0x1b80, 0xe2eb0d37,
0x1b80, 0xe3450d45,
0x1b80, 0xe3450d47,
0x1b80, 0x6cf00d55,
0x1b80, 0x6cf00d57,
0x1b80, 0xe2eb0d65,
0x1b80, 0xe2eb0d67,
0x1b80, 0xe3450d75,
0x1b80, 0xe3450d77,
0x1b80, 0x63c30d85,
0x1b80, 0x63c30d87,
0x1b80, 0x55010d95,
0x1b80, 0x55010d97,
0x1b80, 0x57040da5,
0x1b80, 0x57040da7,
0x1b80, 0x57000db5,
0x1b80, 0x57000db7,
0x1b80, 0x96000dc5,
0x1b80, 0x96000dc7,
0x1b80, 0x57080dd5,
0x1b80, 0x57080dd7,
0x1b80, 0x57000de5,
0x1b80, 0x57000de7,
0x1b80, 0x95000df5,
0x1b80, 0x95000df7,
0x1b80, 0x4d000e05,
0x1b80, 0x4d000e07,
0x1b80, 0x63050e15,
0x1b80, 0x63050e17,
0x1b80, 0x7b400e25,
0x1b80, 0x7b400e27,
0x1b80, 0x7a000e35,
0x1b80, 0x7a000e37,
0x1b80, 0x79000e45,
0x1b80, 0x79000e47,
0x1b80, 0x7f400e55,
0x1b80, 0x7f400e57,
0x1b80, 0x7e000e65,
0x1b80, 0x7e000e67,
0x1b80, 0x7d000e75,
0x1b80, 0x7d000e77,
0x1b80, 0x00010e85,
0x1b80, 0x00010e87,
0x1b80, 0xe3170e95,
0x1b80, 0xe3170e97,
0x1b80, 0x00010ea5,
0x1b80, 0x00010ea7,
0x1b80, 0x5c320eb5,
0x1b80, 0x5c320eb7,
0x1b80, 0xe3410ec5,
0x1b80, 0xe3410ec7,
0x1b80, 0xe3170ed5,
0x1b80, 0xe3170ed7,
0x1b80, 0x00010ee5,
0x1b80, 0x00010ee7,
0x1b80, 0x31260ef5,
0x1b80, 0x31260ef7,
0x1b80, 0x00260f05,
0x1b80, 0x00260f07,
0x1b80, 0xe34a0f15,
0x1b80, 0xe34a0f17,
0x1b80, 0x00020f25,
0x1b80, 0x00020f27,
0x1b80, 0x54ec0f35,
0x1b80, 0x54ec0f37,
0x1b80, 0x0ba60f45,
0x1b80, 0x0ba60f47,
0x1b80, 0x00260f55,
0x1b80, 0x00260f57,
0x1b80, 0xe34a0f65,
0x1b80, 0xe34a0f67,
0x1b80, 0x00020f75,
0x1b80, 0x00020f77,
0x1b80, 0x63830f85,
0x1b80, 0x63830f87,
0x1b80, 0x30d90f95,
0x1b80, 0x30d90f97,
0x1b80, 0x311a0fa5,
0x1b80, 0x311a0fa7,
0x1b80, 0x00240fb5,
0x1b80, 0x00240fb7,
0x1b80, 0xe34a0fc5,
0x1b80, 0xe34a0fc7,
0x1b80, 0x00020fd5,
0x1b80, 0x00020fd7,
0x1b80, 0x54ea0fe5,
0x1b80, 0x54ea0fe7,
0x1b80, 0x0ba60ff5,
0x1b80, 0x0ba60ff7,
0x1b80, 0x00241005,
0x1b80, 0x00241007,
0x1b80, 0xe34a1015,
0x1b80, 0xe34a1017,
0x1b80, 0x00021025,
0x1b80, 0x00021027,
0x1b80, 0x63831035,
0x1b80, 0x63831037,
0x1b80, 0x30d91045,
0x1b80, 0x30d91047,
0x1b80, 0x5c321055,
0x1b80, 0x5c321057,
0x1b80, 0x54e61065,
0x1b80, 0x54e61067,
0x1b80, 0x6e101075,
0x1b80, 0x6e101077,
0x1b80, 0x6f0f1085,
0x1b80, 0x6f0f1087,
0x1b80, 0xe3171095,
0x1b80, 0xe3171097,
0x1b80, 0xe34a10a5,
0x1b80, 0xe34a10a7,
0x1b80, 0x5c3210b5,
0x1b80, 0x5c3210b7,
0x1b80, 0x54e710c5,
0x1b80, 0x54e710c7,
0x1b80, 0x6e2410d5,
0x1b80, 0x6e2410d7,
0x1b80, 0xe31710e5,
0x1b80, 0xe31710e7,
0x1b80, 0xe34a10f5,
0x1b80, 0xe34a10f7,
0x1b80, 0x5c321105,
0x1b80, 0x5c321107,
0x1b80, 0x54e81115,
0x1b80, 0x54e81117,
0x1b80, 0x6e441125,
0x1b80, 0x6e441127,
0x1b80, 0xe3171135,
0x1b80, 0xe3171137,
0x1b80, 0xe34a1145,
0x1b80, 0xe34a1147,
0x1b80, 0x5c321155,
0x1b80, 0x5c321157,
0x1b80, 0x54e91165,
0x1b80, 0x54e91167,
0x1b80, 0x6e641175,
0x1b80, 0x6e641177,
0x1b80, 0xe3171185,
0x1b80, 0xe3171187,
0x1b80, 0xe34a1195,
0x1b80, 0xe34a1197,
0x1b80, 0x5c3211a5,
0x1b80, 0x5c3211a7,
0x1b80, 0x54ea11b5,
0x1b80, 0x54ea11b7,
0x1b80, 0x0baa11c5,
0x1b80, 0x0baa11c7,
0x1b80, 0x6e8411d5,
0x1b80, 0x6e8411d7,
0x1b80, 0x6f0f11e5,
0x1b80, 0x6f0f11e7,
0x1b80, 0xe31711f5,
0x1b80, 0xe31711f7,
0x1b80, 0xe34a1205,
0x1b80, 0xe34a1207,
0x1b80, 0x5c321215,
0x1b80, 0x5c321217,
0x1b80, 0x54eb1225,
0x1b80, 0x54eb1227,
0x1b80, 0x6ea41235,
0x1b80, 0x6ea41237,
0x1b80, 0xe3171245,
0x1b80, 0xe3171247,
0x1b80, 0xe34a1255,
0x1b80, 0xe34a1257,
0x1b80, 0x30b40985,
0x1b80, 0x30b40987,
0x1b80, 0x00240995,
0x1b80, 0x00240997,
0x1b80, 0xe3e209a5,
0x1b80, 0xe3e209a7,
0x1b80, 0x000209b5,
0x1b80, 0x000209b7,
0x1b80, 0x54ea09c5,
0x1b80, 0x54ea09c7,
0x1b80, 0x0ba609d5,
0x1b80, 0x0ba609d7,
0x1b80, 0x002409e5,
0x1b80, 0x002409e7,
0x1b80, 0xe3e209f5,
0x1b80, 0xe3e209f7,
0x1b80, 0x00020a05,
0x1b80, 0x00020a07,
0x1b80, 0xf8e60a15,
0x1b80, 0xf8e60a17,
0x1b80, 0x00300a25,
0x1b80, 0x00300a27,
0x1b80, 0x63c30a35,
0x1b80, 0x63c30a37,
0x1b80, 0x00020a45,
0x1b80, 0x00020a47,
0x1b80, 0x318b0a55,
0x1b80, 0x318b0a57,
0x1b80, 0x62060a65,
0x1b80, 0x62060a67,
0x1b80, 0x6c100a75,
0x1b80, 0x6c100a77,
0x1b80, 0x6d0f0a85,
0x1b80, 0x6d0f0a87,
0x1b80, 0xe3880a95,
0x1b80, 0xe3880a97,
0x1b80, 0xe3e20aa5,
0x1b80, 0xe3e20aa7,
0x1b80, 0x6c240ab5,
0x1b80, 0x6c240ab7,
0x1b80, 0xe3880ac5,
0x1b80, 0xe3880ac7,
0x1b80, 0xe3e20ad5,
0x1b80, 0xe3e20ad7,
0x1b80, 0x6c440ae5,
0x1b80, 0x6c440ae7,
0x1b80, 0xe3880af5,
0x1b80, 0xe3880af7,
0x1b80, 0xe3e20b05,
0x1b80, 0xe3e20b07,
0x1b80, 0x6c640b15,
0x1b80, 0x6c640b17,
0x1b80, 0xe3880b25,
0x1b80, 0xe3880b27,
0x1b80, 0xe3e20b35,
0x1b80, 0xe3e20b37,
0x1b80, 0x0baa0b45,
0x1b80, 0x0baa0b47,
0x1b80, 0x6c840b55,
0x1b80, 0x6c840b57,
0x1b80, 0x6d0f0b65,
0x1b80, 0x6d0f0b67,
0x1b80, 0xe3880b75,
0x1b80, 0xe3880b77,
0x1b80, 0xe3e20b85,
0x1b80, 0xe3e20b87,
0x1b80, 0x6ca40b95,
0x1b80, 0x6ca40b97,
0x1b80, 0xe3880ba5,
0x1b80, 0xe3880ba7,
0x1b80, 0xe3e20bb5,
0x1b80, 0xe3e20bb7,
0x1b80, 0x0bac0bc5,
0x1b80, 0x0bac0bc7,
0x1b80, 0x6cc40bd5,
0x1b80, 0x6cc40bd7,
0x1b80, 0x6d0f0be5,
0x1b80, 0x6d0f0be7,
0x1b80, 0xe3880bf5,
0x1b80, 0xe3880bf7,
0x1b80, 0xe3e20c05,
0x1b80, 0xe3e20c07,
0x1b80, 0x6ce40c15,
0x1b80, 0x6ce40c17,
0x1b80, 0xe3880c25,
0x1b80, 0xe3880c27,
0x1b80, 0xe3e20c35,
0x1b80, 0xe3e20c37,
0x1b80, 0x6cf40c45,
0x1b80, 0x6cf40c47,
0x1b80, 0xe3880c55,
0x1b80, 0xe3880c57,
0x1b80, 0xe3e20c65,
0x1b80, 0xe3e20c67,
0x1b80, 0x6c0c0c75,
0x1b80, 0x6c0c0c77,
0x1b80, 0x6d000c85,
0x1b80, 0x6d000c87,
0x1b80, 0xe3880c95,
0x1b80, 0xe3880c97,
0x1b80, 0xe3e20ca5,
0x1b80, 0xe3e20ca7,
0x1b80, 0x6c1c0cb5,
0x1b80, 0x6c1c0cb7,
0x1b80, 0xe3880cc5,
0x1b80, 0xe3880cc7,
0x1b80, 0xe3e20cd5,
0x1b80, 0xe3e20cd7,
0x1b80, 0x6c3c0ce5,
0x1b80, 0x6c3c0ce7,
0x1b80, 0xe3880cf5,
0x1b80, 0xe3880cf7,
0x1b80, 0xe3e20d05,
0x1b80, 0xe3e20d07,
0x1b80, 0xf4b90d15,
0x1b80, 0xf4b90d17,
0x1b80, 0xf7b80d25,
0x1b80, 0xf7b80d27,
0x1b80, 0x6c5c0d35,
0x1b80, 0x6c5c0d37,
0x1b80, 0xe3880d45,
0x1b80, 0xe3880d47,
0x1b80, 0xe3e20d55,
0x1b80, 0xe3e20d57,
0x1b80, 0x6c7c0d65,
0x1b80, 0x6c7c0d67,
0x1b80, 0xe3880d75,
0x1b80, 0xe3880d77,
0x1b80, 0xe3e20d85,
0x1b80, 0xe3e20d87,
0x1b80, 0xf5c00d95,
0x1b80, 0xf5c00d97,
0x1b80, 0xf8bf0da5,
0x1b80, 0xf8bf0da7,
0x1b80, 0x6c9c0db5,
0x1b80, 0x6c9c0db7,
0x1b80, 0xe3880dc5,
0x1b80, 0xe3880dc7,
0x1b80, 0xe3e20dd5,
0x1b80, 0xe3e20dd7,
0x1b80, 0x6cbc0de5,
0x1b80, 0x6cbc0de7,
0x1b80, 0xe3880df5,
0x1b80, 0xe3880df7,
0x1b80, 0xe3e20e05,
0x1b80, 0xe3e20e07,
0x1b80, 0x6cdc0e15,
0x1b80, 0x6cdc0e17,
0x1b80, 0xe3880e25,
0x1b80, 0xe3880e27,
0x1b80, 0xe3e20e35,
0x1b80, 0xe3e20e37,
0x1b80, 0x6cf00e45,
0x1b80, 0x6cf00e47,
0x1b80, 0xe3880e55,
0x1b80, 0xe3880e57,
0x1b80, 0xe3e20e65,
0x1b80, 0xe3e20e67,
0x1b80, 0xf9a00e75,
0x1b80, 0xf9a00e77,
0x1b80, 0x00300e85,
0x1b80, 0x00300e87,
0x1b80, 0x63c30e95,
0x1b80, 0x63c30e97,
0x1b80, 0x00020ea5,
0x1b80, 0x00020ea7,
0x1b80, 0x318b0eb5,
0x1b80, 0x318b0eb7,
0x1b80, 0x00300ec5,
0x1b80, 0x00300ec7,
0x1b80, 0x00000ed5,
0x1b80, 0x00000ed7,
0x1b80, 0x00020ee5,
0x1b80, 0x00020ee7,
0x1b80, 0x55010ef5,
0x1b80, 0x55010ef7,
0x1b80, 0x57040f05,
0x1b80, 0x57040f07,
0x1b80, 0x57000f15,
0x1b80, 0x57000f17,
0x1b80, 0x96000f25,
0x1b80, 0x96000f27,
0x1b80, 0x00070f35,
0x1b80, 0x00070f37,
0x1b80, 0x5be00f45,
0x1b80, 0x5be00f47,
0x1b80, 0x5a000f55,
0x1b80, 0x5a000f57,
0x1b80, 0x59000f65,
0x1b80, 0x59000f67,
0x1b80, 0x58000f75,
0x1b80, 0x58000f77,
0x1b80, 0x00040f85,
0x1b80, 0x00040f87,
0x1b80, 0x57080f95,
0x1b80, 0x57080f97,
0x1b80, 0x57000fa5,
0x1b80, 0x57000fa7,
0x1b80, 0x95000fb5,
0x1b80, 0x95000fb7,
0x1b80, 0x00070fc5,
0x1b80, 0x00070fc7,
0x1b80, 0x58010fd5,
0x1b80, 0x58010fd7,
0x1b80, 0x00040fe5,
0x1b80, 0x00040fe7,
0x1b80, 0x00300ff5,
0x1b80, 0x00300ff7,
0x1b80, 0x00001005,
0x1b80, 0x00001007,
0x1b80, 0x00021015,
0x1b80, 0x00021017,
0x1b80, 0x63051025,
0x1b80, 0x63051027,
0x1b80, 0x7b401035,
0x1b80, 0x7b401037,
0x1b80, 0x7a001045,
0x1b80, 0x7a001047,
0x1b80, 0x79001055,
0x1b80, 0x79001057,
0x1b80, 0x7f401065,
0x1b80, 0x7f401067,
0x1b80, 0x7e001075,
0x1b80, 0x7e001077,
0x1b80, 0x7d001085,
0x1b80, 0x7d001087,
0x1b80, 0x00011095,
0x1b80, 0x00011097,
0x1b80, 0xe3b410a5,
0x1b80, 0xe3b410a7,
0x1b80, 0x000110b5,
0x1b80, 0x000110b7,
0x1b80, 0x5c3210c5,
0x1b80, 0x5c3210c7,
0x1b80, 0x54fd10d5,
0x1b80, 0x54fd10d7,
0x1b80, 0xe3b410e5,
0x1b80, 0xe3b410e7,
0x1b80, 0x000110f5,
0x1b80, 0x000110f7,
0x1b80, 0x31471105,
0x1b80, 0x31471107,
0x1b80, 0x00261115,
0x1b80, 0x00261117,
0x1b80, 0xe3e71125,
0x1b80, 0xe3e71127,
0x1b80, 0x00021135,
0x1b80, 0x00021137,
0x1b80, 0x54ec1145,
0x1b80, 0x54ec1147,
0x1b80, 0x0ba61155,
0x1b80, 0x0ba61157,
0x1b80, 0x00261165,
0x1b80, 0x00261167,
0x1b80, 0xe3e71175,
0x1b80, 0xe3e71177,
0x1b80, 0x00021185,
0x1b80, 0x00021187,
0x1b80, 0x63431195,
0x1b80, 0x63431197,
0x1b80, 0x30ec11a5,
0x1b80, 0x30ec11a7,
0x1b80, 0x313b11b5,
0x1b80, 0x313b11b7,
0x1b80, 0x002411c5,
0x1b80, 0x002411c7,
0x1b80, 0xe3e711d5,
0x1b80, 0xe3e711d7,
0x1b80, 0x000211e5,
0x1b80, 0x000211e7,
0x1b80, 0x54ea11f5,
0x1b80, 0x54ea11f7,
0x1b80, 0x0ba61205,
0x1b80, 0x0ba61207,
0x1b80, 0x00241215,
0x1b80, 0x00241217,
0x1b80, 0xe3e71225,
0x1b80, 0xe3e71227,
0x1b80, 0x00021235,
0x1b80, 0x00021237,
0x1b80, 0x63431245,
0x1b80, 0x63431247,
0x1b80, 0x30ec1255,
0x1b80, 0x30ec1257,
0x1b80, 0x5c321265,
0x1b80, 0x5c321267,
0x1b80, 0x54ec1275,
0x1b80, 0x54ec1277,
0x1b80, 0x0bac1285,
0x1b80, 0x0bac1287,
0x1b80, 0x6ec41295,
0x1b80, 0x6ec41297,
0x1b80, 0x6f0f12a5,
0x1b80, 0x6f0f12a7,
0x1b80, 0xe31712b5,
0x1b80, 0xe31712b7,
0x1b80, 0xe34a12c5,
0x1b80, 0xe34a12c7,
0x1b80, 0x5c3212d5,
0x1b80, 0x5c3212d7,
0x1b80, 0x54ed12e5,
0x1b80, 0x54ed12e7,
0x1b80, 0x6ee412f5,
0x1b80, 0x6ee412f7,
0x1b80, 0xe3171305,
0x1b80, 0xe3171307,
0x1b80, 0xe34a1315,
0x1b80, 0xe34a1317,
0x1b80, 0x5c321325,
0x1b80, 0x5c321327,
0x1b80, 0x54ee1335,
0x1b80, 0x54ee1337,
0x1b80, 0x6ef41345,
0x1b80, 0x6ef41347,
0x1b80, 0xe3171355,
0x1b80, 0xe3171357,
0x1b80, 0xe34a1365,
0x1b80, 0xe34a1367,
0x1b80, 0x5c321375,
0x1b80, 0x5c321377,
0x1b80, 0x54ef1385,
0x1b80, 0x54ef1387,
0x1b80, 0x6e0c1395,
0x1b80, 0x6e0c1397,
0x1b80, 0x6f0013a5,
0x1b80, 0x6f0013a7,
0x1b80, 0xe31713b5,
0x1b80, 0xe31713b7,
0x1b80, 0xe34a13c5,
0x1b80, 0xe34a13c7,
0x1b80, 0x5c3213d5,
0x1b80, 0x5c3213d7,
0x1b80, 0x54f013e5,
0x1b80, 0x54f013e7,
0x1b80, 0x6e1c13f5,
0x1b80, 0x6e1c13f7,
0x1b80, 0xe3171405,
0x1b80, 0xe3171407,
0x1b80, 0xe34a1415,
0x1b80, 0xe34a1417,
0x1b80, 0x54e61275,
0x1b80, 0x54e61277,
0x1b80, 0x6e101285,
0x1b80, 0x6e101287,
0x1b80, 0x6f0f1295,
0x1b80, 0x6f0f1297,
0x1b80, 0xe3b412a5,
0x1b80, 0xe3b412a7,
0x1b80, 0xe3e712b5,
0x1b80, 0xe3e712b7,
0x1b80, 0x5c3212c5,
0x1b80, 0x5c3212c7,
0x1b80, 0x54e712d5,
0x1b80, 0x54e712d7,
0x1b80, 0x6e2412e5,
0x1b80, 0x6e2412e7,
0x1b80, 0xe3b412f5,
0x1b80, 0xe3b412f7,
0x1b80, 0xe3e71305,
0x1b80, 0xe3e71307,
0x1b80, 0x5c321315,
0x1b80, 0x5c321317,
0x1b80, 0x54e81325,
0x1b80, 0x54e81327,
0x1b80, 0x6e441335,
0x1b80, 0x6e441337,
0x1b80, 0xe3b41345,
0x1b80, 0xe3b41347,
0x1b80, 0xe3e71355,
0x1b80, 0xe3e71357,
0x1b80, 0x5c321365,
0x1b80, 0x5c321367,
0x1b80, 0x54e91375,
0x1b80, 0x54e91377,
0x1b80, 0x6e641385,
0x1b80, 0x6e641387,
0x1b80, 0xe3b41395,
0x1b80, 0xe3b41397,
0x1b80, 0xe3e713a5,
0x1b80, 0xe3e713a7,
0x1b80, 0x5c3213b5,
0x1b80, 0x5c3213b7,
0x1b80, 0x54ea13c5,
0x1b80, 0x54ea13c7,
0x1b80, 0x0baa13d5,
0x1b80, 0x0baa13d7,
0x1b80, 0x6e8413e5,
0x1b80, 0x6e8413e7,
0x1b80, 0x6f0f13f5,
0x1b80, 0x6f0f13f7,
0x1b80, 0xe3b41405,
0x1b80, 0xe3b41407,
0x1b80, 0xe3e71415,
0x1b80, 0xe3e71417,
0x1b80, 0x5c321425,
0x1b80, 0x5c321427,
0x1b80, 0x54f11435,
0x1b80, 0x54f11437,
0x1b80, 0x6e3c1445,
0x1b80, 0x6e3c1447,
0x1b80, 0xe3171455,
0x1b80, 0xe3171457,
0x1b80, 0xe34a1465,
0x1b80, 0xe34a1467,
0x1b80, 0xfaa91475,
0x1b80, 0xfaa91477,
0x1b80, 0x5c321485,
0x1b80, 0x5c321487,
0x1b80, 0x54f21495,
0x1b80, 0x54f21497,
0x1b80, 0x6e5c14a5,
0x1b80, 0x6e5c14a7,
0x1b80, 0xe31714b5,
0x1b80, 0xe31714b7,
0x1b80, 0xe34a14c5,
0x1b80, 0xe34a14c7,
0x1b80, 0x5c3214d5,
0x1b80, 0x5c3214d7,
0x1b80, 0x54f314e5,
0x1b80, 0x54f314e7,
0x1b80, 0x6e7c14f5,
0x1b80, 0x6e7c14f7,
0x1b80, 0xe3171505,
0x1b80, 0xe3171507,
0x1b80, 0xe34a1515,
0x1b80, 0xe34a1517,
0x1b80, 0xfba91525,
0x1b80, 0xfba91527,
0x1b80, 0x54eb1435,
0x1b80, 0x54eb1437,
0x1b80, 0x6ea41445,
0x1b80, 0x6ea41447,
0x1b80, 0xe3b41455,
0x1b80, 0xe3b41457,
0x1b80, 0xe3e71465,
0x1b80, 0xe3e71467,
0x1b80, 0x5c321475,
0x1b80, 0x5c321477,
0x1b80, 0x54ec1485,
0x1b80, 0x54ec1487,
0x1b80, 0x0bac1495,
0x1b80, 0x0bac1497,
0x1b80, 0x6ec414a5,
0x1b80, 0x6ec414a7,
0x1b80, 0x6f0f14b5,
0x1b80, 0x6f0f14b7,
0x1b80, 0xe3b414c5,
0x1b80, 0xe3b414c7,
0x1b80, 0xe3e714d5,
0x1b80, 0xe3e714d7,
0x1b80, 0x5c3214e5,
0x1b80, 0x5c3214e7,
0x1b80, 0x54ed14f5,
0x1b80, 0x54ed14f7,
0x1b80, 0x6ee41505,
0x1b80, 0x6ee41507,
0x1b80, 0xe3b41515,
0x1b80, 0xe3b41517,
0x1b80, 0xe3e71525,
0x1b80, 0xe3e71527,
0x1b80, 0x5c321535,
0x1b80, 0x5c321537,
0x1b80, 0x54f41545,
0x1b80, 0x54f41547,
0x1b80, 0x6e9c1555,
0x1b80, 0x6e9c1557,
0x1b80, 0xe3171565,
0x1b80, 0xe3171567,
0x1b80, 0xe34a1575,
0x1b80, 0xe34a1577,
0x1b80, 0x54ee1545,
0x1b80, 0x54ee1547,
0x1b80, 0x6ef41555,
0x1b80, 0x6ef41557,
0x1b80, 0xe3b41565,
0x1b80, 0xe3b41567,
0x1b80, 0xe3e71575,
0x1b80, 0xe3e71577,
0x1b80, 0x5c321585,
0x1b80, 0x5c321587,
0x1b80, 0x54f51595,
0x1b80, 0x54f51597,
0x1b80, 0x6ebc15a5,
0x1b80, 0x6ebc15a7,
0x1b80, 0xe31715b5,
0x1b80, 0xe31715b7,
0x1b80, 0xe34a15c5,
0x1b80, 0xe34a15c7,
0x1b80, 0x5c3215d5,
0x1b80, 0x5c3215d7,
0x1b80, 0x54f615e5,
0x1b80, 0x54f615e7,
0x1b80, 0x6edc15f5,
0x1b80, 0x6edc15f7,
0x1b80, 0xe3171605,
0x1b80, 0xe3171607,
0x1b80, 0xe34a1615,
0x1b80, 0xe34a1617,
0x1b80, 0x5c321625,
0x1b80, 0x5c321627,
0x1b80, 0x54f71635,
0x1b80, 0x54f71637,
0x1b80, 0x6ef01645,
0x1b80, 0x6ef01647,
0x1b80, 0xe3171655,
0x1b80, 0xe3171657,
0x1b80, 0xe34a1665,
0x1b80, 0xe34a1667,
0x1b80, 0x63831675,
0x1b80, 0x63831677,
0x1b80, 0x30d91685,
0x1b80, 0x30d91687,
0x1b80, 0x00011695,
0x1b80, 0x00011697,
0x1b80, 0x000416a5,
0x1b80, 0x000416a7,
0x1b80, 0x550116b5,
0x1b80, 0x550116b7,
0x1b80, 0x5c3116c5,
0x1b80, 0x5c3116c7,
0x1b80, 0x5f8216d5,
0x1b80, 0x5f8216d7,
0x1b80, 0x660516e5,
0x1b80, 0x660516e7,
0x1b80, 0x000616f5,
0x1b80, 0x000616f7,
0x1b80, 0x5d801705,
0x1b80, 0x5d801707,
0x1b80, 0x09001715,
0x1b80, 0x09001717,
0x1b80, 0x0a011725,
0x1b80, 0x0a011727,
0x1b80, 0x0b401735,
0x1b80, 0x0b401737,
0x1b80, 0x0d001745,
0x1b80, 0x0d001747,
0x1b80, 0x0f011755,
0x1b80, 0x0f011757,
0x1b80, 0x002a1765,
0x1b80, 0x002a1767,
0x1b80, 0x055a1775,
0x1b80, 0x055a1777,
0x1b80, 0x05db1785,
0x1b80, 0x05db1787,
0x1b80, 0xe3351795,
0x1b80, 0xe3351797,
0x1b80, 0xe2e317a5,
0x1b80, 0xe2e317a7,
0x1b80, 0x000617b5,
0x1b80, 0x000617b7,
0x1b80, 0x06da17c5,
0x1b80, 0x06da17c7,
0x1b80, 0x07db17d5,
0x1b80, 0x07db17d7,
0x1b80, 0xe33517e5,
0x1b80, 0xe33517e7,
0x1b80, 0xe2e317f5,
0x1b80, 0xe2e317f7,
0x1b80, 0xe32c1805,
0x1b80, 0xe32c1807,
0x1b80, 0x00021815,
0x1b80, 0x00021817,
0x1b80, 0xe3311825,
0x1b80, 0xe3311827,
0x1b80, 0x5d001835,
0x1b80, 0x5d001837,
0x1b80, 0x00041845,
0x1b80, 0x00041847,
0x1b80, 0x5fa21855,
0x1b80, 0x5fa21857,
0x1b80, 0x00011865,
0x1b80, 0x00011867,
0x1b80, 0xe2571875,
0x1b80, 0xe2571877,
0x1b80, 0x74081885,
0x1b80, 0x74081887,
0x1b80, 0xe2a11895,
0x1b80, 0xe2a11897,
0x1b80, 0xe28318a5,
0x1b80, 0xe28318a7,
0x1b80, 0xe2c118b5,
0x1b80, 0xe2c118b7,
0x1b80, 0xb90018c5,
0x1b80, 0xb90018c7,
0x1b80, 0x990018d5,
0x1b80, 0x990018d7,
0x1b80, 0x000618e5,
0x1b80, 0x000618e7,
0x1b80, 0x770018f5,
0x1b80, 0x770018f7,
0x1b80, 0x00041905,
0x1b80, 0x00041907,
0x1b80, 0x49041915,
0x1b80, 0x49041917,
0x1b80, 0x4bb01925,
0x1b80, 0x4bb01927,
0x1b80, 0x00061935,
0x1b80, 0x00061937,
0x1b80, 0x75041945,
0x1b80, 0x75041947,
0x1b80, 0x77081955,
0x1b80, 0x77081957,
0x1b80, 0x00071965,
0x1b80, 0x00071967,
0x1b80, 0x77101975,
0x1b80, 0x77101977,
0x1b80, 0x00041985,
0x1b80, 0x00041987,
0x1b80, 0x44801995,
0x1b80, 0x44801997,
0x1b80, 0x45ff19a5,
0x1b80, 0x45ff19a7,
0x1b80, 0x463f19b5,
0x1b80, 0x463f19b7,
0x1b80, 0x473119c5,
0x1b80, 0x473119c7,
0x1b80, 0x400819d5,
0x1b80, 0x400819d7,
0x1b80, 0xe23e19e5,
0x1b80, 0xe23e19e7,
0x1b80, 0x000119f5,
0x1b80, 0x000119f7,
0x1b80, 0xe2571a05,
0x1b80, 0xe2571a07,
0x1b80, 0x74081a15,
0x1b80, 0x74081a17,
0x1b80, 0xe2b11a25,
0x1b80, 0xe2b11a27,
0x1b80, 0xe2831a35,
0x1b80, 0xe2831a37,
0x1b80, 0xe2c71a45,
0x1b80, 0xe2c71a47,
0x1b80, 0xb9001a55,
0x1b80, 0xb9001a57,
0x1b80, 0x99001a65,
0x1b80, 0x99001a67,
0x1b80, 0x00061a75,
0x1b80, 0x00061a77,
0x1b80, 0x77001a85,
0x1b80, 0x77001a87,
0x1b80, 0x00051a95,
0x1b80, 0x00051a97,
0x1b80, 0x61041aa5,
0x1b80, 0x61041aa7,
0x1b80, 0x63b01ab5,
0x1b80, 0x63b01ab7,
0x1b80, 0x00061ac5,
0x1b80, 0x00061ac7,
0x1b80, 0x75081ad5,
0x1b80, 0x75081ad7,
0x1b80, 0x77081ae5,
0x1b80, 0x77081ae7,
0x1b80, 0x00071af5,
0x1b80, 0x00071af7,
0x1b80, 0x77201b05,
0x1b80, 0x77201b07,
0x1b80, 0x00051b15,
0x1b80, 0x00051b17,
0x1b80, 0x5c801b25,
0x1b80, 0x5c801b27,
0x1b80, 0x5dff1b35,
0x1b80, 0x5dff1b37,
0x1b80, 0x5e3f1b45,
0x1b80, 0x5e3f1b47,
0x1b80, 0x5f311b55,
0x1b80, 0x5f311b57,
0x1b80, 0x00041b65,
0x1b80, 0x00041b67,
0x1b80, 0x400a1b75,
0x1b80, 0x400a1b77,
0x1b80, 0xe23e1b85,
0x1b80, 0xe23e1b87,
0x1b80, 0x00011b95,
0x1b80, 0x00011b97,
0x1b80, 0xe2571ba5,
0x1b80, 0xe2571ba7,
0x1b80, 0x74081bb5,
0x1b80, 0x74081bb7,
0x1b80, 0xe2a11bc5,
0x1b80, 0xe2a11bc7,
0x1b80, 0xe2831bd5,
0x1b80, 0xe2831bd7,
0x1b80, 0xe2c11be5,
0x1b80, 0xe2c11be7,
0x1b80, 0xe2cd1bf5,
0x1b80, 0xe2cd1bf7,
0x1b80, 0xe2101c05,
0x1b80, 0xe2101c07,
0x1b80, 0x00011c15,
0x1b80, 0x00011c17,
0x1b80, 0xe2571c25,
0x1b80, 0xe2571c27,
0x1b80, 0x74081c35,
0x1b80, 0x74081c37,
0x1b80, 0xe2b11c45,
0x1b80, 0xe2b11c47,
0x1b80, 0xe2831c55,
0x1b80, 0xe2831c57,
0x1b80, 0xe2c71c65,
0x1b80, 0xe2c71c67,
0x1b80, 0xe2cd1c75,
0x1b80, 0xe2cd1c77,
0x1b80, 0xe2261c85,
0x1b80, 0xe2261c87,
0x1b80, 0x00011c95,
0x1b80, 0x00011c97,
0x1b80, 0xe26d1ca5,
0x1b80, 0xe26d1ca7,
0x1b80, 0x74001cb5,
0x1b80, 0x74001cb7,
0x1b80, 0xe2a11cc5,
0x1b80, 0xe2a11cc7,
0x1b80, 0xe2921cd5,
0x1b80, 0xe2921cd7,
0x1b80, 0xe2c11ce5,
0x1b80, 0xe2c11ce7,
0x1b80, 0xe2cd1cf5,
0x1b80, 0xe2cd1cf7,
0x1b80, 0xe2101d05,
0x1b80, 0xe2101d07,
0x1b80, 0x00011d15,
0x1b80, 0x00011d17,
0x1b80, 0xe26d1d25,
0x1b80, 0xe26d1d27,
0x1b80, 0x74001d35,
0x1b80, 0x74001d37,
0x1b80, 0xe2b11d45,
0x1b80, 0xe2b11d47,
0x1b80, 0xe2921d55,
0x1b80, 0xe2921d57,
0x1b80, 0xe2c71d65,
0x1b80, 0xe2c71d67,
0x1b80, 0xe2cd1d75,
0x1b80, 0xe2cd1d77,
0x1b80, 0xe2261d85,
0x1b80, 0xe2261d87,
0x1b80, 0x00011d95,
0x1b80, 0x00011d97,
0x1b80, 0x00041da5,
0x1b80, 0x00041da7,
0x1b80, 0x445b1db5,
0x1b80, 0x445b1db7,
0x1b80, 0x47b01dc5,
0x1b80, 0x47b01dc7,
0x1b80, 0x47301dd5,
0x1b80, 0x47301dd7,
0x1b80, 0x47001de5,
0x1b80, 0x47001de7,
0x1b80, 0x00061df5,
0x1b80, 0x00061df7,
0x1b80, 0x77081e05,
0x1b80, 0x77081e07,
0x1b80, 0x00041e15,
0x1b80, 0x00041e17,
0x1b80, 0x49401e25,
0x1b80, 0x49401e27,
0x1b80, 0x4bb01e35,
0x1b80, 0x4bb01e37,
0x1b80, 0x00071e45,
0x1b80, 0x00071e47,
0x1b80, 0x54401e55,
0x1b80, 0x54401e57,
0x1b80, 0x00041e65,
0x1b80, 0x00041e67,
0x1b80, 0x40081e75,
0x1b80, 0x40081e77,
0x1b80, 0x00011e85,
0x1b80, 0x00011e87,
0x1b80, 0x00051e95,
0x1b80, 0x00051e97,
0x1b80, 0x5c5b1ea5,
0x1b80, 0x5c5b1ea7,
0x1b80, 0x5fb01eb5,
0x1b80, 0x5fb01eb7,
0x1b80, 0x5f301ec5,
0x1b80, 0x5f301ec7,
0x1b80, 0x5f001ed5,
0x1b80, 0x5f001ed7,
0x1b80, 0x00061ee5,
0x1b80, 0x00061ee7,
0x1b80, 0x77081ef5,
0x1b80, 0x77081ef7,
0x1b80, 0x00051f05,
0x1b80, 0x00051f07,
0x1b80, 0x61401f15,
0x1b80, 0x61401f17,
0x1b80, 0x63b01f25,
0x1b80, 0x63b01f27,
0x1b80, 0x00071f35,
0x1b80, 0x00071f37,
0x1b80, 0x54401f45,
0x1b80, 0x54401f47,
0x1b80, 0x00041f55,
0x1b80, 0x00041f57,
0x1b80, 0x40081f65,
0x1b80, 0x40081f67,
0x1b80, 0x00011f75,
0x1b80, 0x00011f77,
0x1b80, 0xe2571f85,
0x1b80, 0xe2571f87,
0x1b80, 0x74081f95,
0x1b80, 0x74081f97,
0x1b80, 0xe2a11fa5,
0x1b80, 0xe2a11fa7,
0x1b80, 0x00041fb5,
0x1b80, 0x00041fb7,
0x1b80, 0x40081fc5,
0x1b80, 0x40081fc7,
0x1b80, 0x00011fd5,
0x1b80, 0x00011fd7,
0x1b80, 0xe2571fe5,
0x1b80, 0xe2571fe7,
0x1b80, 0x74081ff5,
0x1b80, 0x74081ff7,
0x1b80, 0xe2b12005,
0x1b80, 0xe2b12007,
0x1b80, 0x00042015,
0x1b80, 0x00042017,
0x1b80, 0x40082025,
0x1b80, 0x40082027,
0x1b80, 0x00012035,
0x1b80, 0x00012037,
0x1b80, 0xe26d2045,
0x1b80, 0xe26d2047,
0x1b80, 0x74002055,
0x1b80, 0x74002057,
0x1b80, 0xe2a12065,
0x1b80, 0xe2a12067,
0x1b80, 0x00042075,
0x1b80, 0x00042077,
0x1b80, 0x40082085,
0x1b80, 0x40082087,
0x1b80, 0x00012095,
0x1b80, 0x00012097,
0x1b80, 0xe26d20a5,
0x1b80, 0xe26d20a7,
0x1b80, 0x740020b5,
0x1b80, 0x740020b7,
0x1b80, 0xe2b120c5,
0x1b80, 0xe2b120c7,
0x1b80, 0x000420d5,
0x1b80, 0x000420d7,
0x1b80, 0x400820e5,
0x1b80, 0x400820e7,
0x1b80, 0x000120f5,
0x1b80, 0x000120f7,
0x1b80, 0x00042105,
0x1b80, 0x00042107,
0x1b80, 0x49042115,
0x1b80, 0x49042117,
0x1b80, 0x4bb02125,
0x1b80, 0x4bb02127,
0x1b80, 0x00062135,
0x1b80, 0x00062137,
0x1b80, 0x75042145,
0x1b80, 0x75042147,
0x1b80, 0x77082155,
0x1b80, 0x77082157,
0x1b80, 0x00042165,
0x1b80, 0x00042167,
0x1b80, 0x44802175,
0x1b80, 0x44802177,
0x1b80, 0x45ff2185,
0x1b80, 0x45ff2187,
0x1b80, 0x463f2195,
0x1b80, 0x463f2197,
0x1b80, 0x473121a5,
0x1b80, 0x473121a7,
0x1b80, 0x400821b5,
0x1b80, 0x400821b7,
0x1b80, 0xe23e21c5,
0x1b80, 0xe23e21c7,
0x1b80, 0x000421d5,
0x1b80, 0x000421d7,
0x1b80, 0x400c21e5,
0x1b80, 0x400c21e7,
0x1b80, 0x000621f5,
0x1b80, 0x000621f7,
0x1b80, 0x75002205,
0x1b80, 0x75002207,
0x1b80, 0x00042215,
0x1b80, 0x00042217,
0x1b80, 0x445b2225,
0x1b80, 0x445b2227,
0x1b80, 0x47002235,
0x1b80, 0x47002237,
0x1b80, 0x40082245,
0x1b80, 0x40082247,
0x1b80, 0x54ef1595,
0x1b80, 0x54ef1597,
0x1b80, 0x6e0c15a5,
0x1b80, 0x6e0c15a7,
0x1b80, 0x6f0015b5,
0x1b80, 0x6f0015b7,
0x1b80, 0xe3b415c5,
0x1b80, 0xe3b415c7,
0x1b80, 0xe3e715d5,
0x1b80, 0xe3e715d7,
0x1b80, 0x5c3215e5,
0x1b80, 0x5c3215e7,
0x1b80, 0x54f015f5,
0x1b80, 0x54f015f7,
0x1b80, 0x6e1c1605,
0x1b80, 0x6e1c1607,
0x1b80, 0xe3b41615,
0x1b80, 0xe3b41617,
0x1b80, 0xe3e71625,
0x1b80, 0xe3e71627,
0x1b80, 0x5c321635,
0x1b80, 0x5c321637,
0x1b80, 0x54f11645,
0x1b80, 0x54f11647,
0x1b80, 0x6e3c1655,
0x1b80, 0x6e3c1657,
0x1b80, 0xe3b41665,
0x1b80, 0xe3b41667,
0x1b80, 0xe3e71675,
0x1b80, 0xe3e71677,
0x1b80, 0xfaa91685,
0x1b80, 0xfaa91687,
0x1b80, 0x5c321695,
0x1b80, 0x5c321697,
0x1b80, 0x54f216a5,
0x1b80, 0x54f216a7,
0x1b80, 0x6e5c16b5,
0x1b80, 0x6e5c16b7,
0x1b80, 0xe3b416c5,
0x1b80, 0xe3b416c7,
0x1b80, 0xe3e716d5,
0x1b80, 0xe3e716d7,
0x1b80, 0x5c3216e5,
0x1b80, 0x5c3216e7,
0x1b80, 0x54f316f5,
0x1b80, 0x54f316f7,
0x1b80, 0x6e7c1705,
0x1b80, 0x6e7c1707,
0x1b80, 0xe3b41715,
0x1b80, 0xe3b41717,
0x1b80, 0xe3e71725,
0x1b80, 0xe3e71727,
0x1b80, 0xfba91735,
0x1b80, 0xfba91737,
0x1b80, 0x5c321745,
0x1b80, 0x5c321747,
0x1b80, 0x54f41755,
0x1b80, 0x54f41757,
0x1b80, 0x6e9c1765,
0x1b80, 0x6e9c1767,
0x1b80, 0xe3b41775,
0x1b80, 0xe3b41777,
0x1b80, 0xe3e71785,
0x1b80, 0xe3e71787,
0x1b80, 0x5c321795,
0x1b80, 0x5c321797,
0x1b80, 0x54f517a5,
0x1b80, 0x54f517a7,
0x1b80, 0x6ebc17b5,
0x1b80, 0x6ebc17b7,
0x1b80, 0xe3b417c5,
0x1b80, 0xe3b417c7,
0x1b80, 0xe3e717d5,
0x1b80, 0xe3e717d7,
0x1b80, 0x5c3217e5,
0x1b80, 0x5c3217e7,
0x1b80, 0x54f617f5,
0x1b80, 0x54f617f7,
0x1b80, 0x6edc1805,
0x1b80, 0x6edc1807,
0x1b80, 0xe3b41815,
0x1b80, 0xe3b41817,
0x1b80, 0xe3e71825,
0x1b80, 0xe3e71827,
0x1b80, 0x5c321835,
0x1b80, 0x5c321837,
0x1b80, 0x54f71845,
0x1b80, 0x54f71847,
0x1b80, 0x6ef01855,
0x1b80, 0x6ef01857,
0x1b80, 0xe3b41865,
0x1b80, 0xe3b41867,
0x1b80, 0xe3e71875,
0x1b80, 0xe3e71877,
0x1b80, 0x63431885,
0x1b80, 0x63431887,
0x1b80, 0x30ec1895,
0x1b80, 0x30ec1897,
0x1b80, 0x000118a5,
0x1b80, 0x000118a7,
0x1b80, 0x63c318b5,
0x1b80, 0x63c318b7,
0x1b80, 0x003018c5,
0x1b80, 0x003018c7,
0x1b80, 0x000018d5,
0x1b80, 0x000018d7,
0x1b80, 0x000218e5,
0x1b80, 0x000218e7,
0x1b80, 0x550118f5,
0x1b80, 0x550118f7,
0x1b80, 0x57041905,
0x1b80, 0x57041907,
0x1b80, 0x57001915,
0x1b80, 0x57001917,
0x1b80, 0x96001925,
0x1b80, 0x96001927,
0x1b80, 0x00301935,
0x1b80, 0x00301937,
0x1b80, 0x00071945,
0x1b80, 0x00071947,
0x1b80, 0x5be01955,
0x1b80, 0x5be01957,
0x1b80, 0x5a001965,
0x1b80, 0x5a001967,
0x1b80, 0x59001975,
0x1b80, 0x59001977,
0x1b80, 0x58001985,
0x1b80, 0x58001987,
0x1b80, 0x00041995,
0x1b80, 0x00041997,
0x1b80, 0x000219a5,
0x1b80, 0x000219a7,
0x1b80, 0x570819b5,
0x1b80, 0x570819b7,
0x1b80, 0x570019c5,
0x1b80, 0x570019c7,
0x1b80, 0x950019d5,
0x1b80, 0x950019d7,
0x1b80, 0x003019e5,
0x1b80, 0x003019e7,
0x1b80, 0x000719f5,
0x1b80, 0x000719f7,
0x1b80, 0x58011a05,
0x1b80, 0x58011a07,
0x1b80, 0x00041a15,
0x1b80, 0x00041a17,
0x1b80, 0x00021a25,
0x1b80, 0x00021a27,
0x1b80, 0x00301a35,
0x1b80, 0x00301a37,
0x1b80, 0x00001a45,
0x1b80, 0x00001a47,
0x1b80, 0x00021a55,
0x1b80, 0x00021a57,
0x1b80, 0x63051a65,
0x1b80, 0x63051a67,
0x1b80, 0x7b401a75,
0x1b80, 0x7b401a77,
0x1b80, 0x7a001a85,
0x1b80, 0x7a001a87,
0x1b80, 0x79001a95,
0x1b80, 0x79001a97,
0x1b80, 0x7f401aa5,
0x1b80, 0x7f401aa7,
0x1b80, 0x7e001ab5,
0x1b80, 0x7e001ab7,
0x1b80, 0x7d001ac5,
0x1b80, 0x7d001ac7,
0x1b80, 0x00011ad5,
0x1b80, 0x00011ad7,
0x1b80, 0x00041ae5,
0x1b80, 0x00041ae7,
0x1b80, 0x55011af5,
0x1b80, 0x55011af7,
0x1b80, 0x5c311b05,
0x1b80, 0x5c311b07,
0x1b80, 0x5f821b15,
0x1b80, 0x5f821b17,
0x1b80, 0x66051b25,
0x1b80, 0x66051b27,
0x1b80, 0x00061b35,
0x1b80, 0x00061b37,
0x1b80, 0x5d801b45,
0x1b80, 0x5d801b47,
0x1b80, 0x09001b55,
0x1b80, 0x09001b57,
0x1b80, 0x0a011b65,
0x1b80, 0x0a011b67,
0x1b80, 0x0b401b75,
0x1b80, 0x0b401b77,
0x1b80, 0x0d001b85,
0x1b80, 0x0d001b87,
0x1b80, 0x0f011b95,
0x1b80, 0x0f011b97,
0x1b80, 0x002a1ba5,
0x1b80, 0x002a1ba7,
0x1b80, 0x055a1bb5,
0x1b80, 0x055a1bb7,
0x1b80, 0x05db1bc5,
0x1b80, 0x05db1bc7,
0x1b80, 0xe3d21bd5,
0x1b80, 0xe3d21bd7,
0x1b80, 0xe3801be5,
0x1b80, 0xe3801be7,
0x1b80, 0x00061bf5,
0x1b80, 0x00061bf7,
0x1b80, 0x06da1c05,
0x1b80, 0x06da1c07,
0x1b80, 0x07db1c15,
0x1b80, 0x07db1c17,
0x1b80, 0xe3d21c25,
0x1b80, 0xe3d21c27,
0x1b80, 0xe3801c35,
0x1b80, 0xe3801c37,
0x1b80, 0xe3c91c45,
0x1b80, 0xe3c91c47,
0x1b80, 0x00021c55,
0x1b80, 0x00021c57,
0x1b80, 0xe3ce1c65,
0x1b80, 0xe3ce1c67,
0x1b80, 0x5d001c75,
0x1b80, 0x5d001c77,
0x1b80, 0x00041c85,
0x1b80, 0x00041c87,
0x1b80, 0x5fa21c95,
0x1b80, 0x5fa21c97,
0x1b80, 0x00011ca5,
0x1b80, 0x00011ca7,
0x1b80, 0x00041cb5,
0x1b80, 0x00041cb7,
0x1b80, 0xe2711cc5,
0x1b80, 0xe2711cc7,
0x1b80, 0xe2821cd5,
0x1b80, 0xe2821cd7,
0x1b80, 0xe28b1ce5,
0x1b80, 0xe28b1ce7,
0x1b80, 0xe29c1cf5,
0x1b80, 0xe29c1cf7,
0x1b80, 0x00051d05,
0x1b80, 0x00051d07,
0x1b80, 0xe2641d15,
0x1b80, 0xe2641d17,
0x1b80, 0xe2711d25,
0x1b80, 0xe2711d27,
0x1b80, 0xe28b1d35,
0x1b80, 0xe28b1d37,
0x1b80, 0xe29c1d45,
0x1b80, 0xe29c1d47,
0x1b80, 0x00061d55,
0x1b80, 0x00061d57,
0x1b80, 0xe2641d65,
0x1b80, 0xe2641d67,
0x1b80, 0xe2711d75,
0x1b80, 0xe2711d77,
0x1b80, 0xe2821d85,
0x1b80, 0xe2821d87,
0x1b80, 0xe28b1d95,
0x1b80, 0xe28b1d97,
0x1b80, 0x00011da5,
0x1b80, 0x00011da7,
0x1b80, 0xe2f41db5,
0x1b80, 0xe2f41db7,
0x1b80, 0x74081dc5,
0x1b80, 0x74081dc7,
0x1b80, 0xe33e1dd5,
0x1b80, 0xe33e1dd7,
0x1b80, 0xe3201de5,
0x1b80, 0xe3201de7,
0x1b80, 0xe35e1df5,
0x1b80, 0xe35e1df7,
0x1b80, 0xb9001e05,
0x1b80, 0xb9001e07,
0x1b80, 0x99001e15,
0x1b80, 0x99001e17,
0x1b80, 0x00061e25,
0x1b80, 0x00061e27,
0x1b80, 0x77001e35,
0x1b80, 0x77001e37,
0x1b80, 0x00041e45,
0x1b80, 0x00041e47,
0x1b80, 0x49041e55,
0x1b80, 0x49041e57,
0x1b80, 0x4bb01e65,
0x1b80, 0x4bb01e67,
0x1b80, 0x00061e75,
0x1b80, 0x00061e77,
0x1b80, 0x75041e85,
0x1b80, 0x75041e87,
0x1b80, 0x77081e95,
0x1b80, 0x77081e97,
0x1b80, 0x00071ea5,
0x1b80, 0x00071ea7,
0x1b80, 0x77101eb5,
0x1b80, 0x77101eb7,
0x1b80, 0x00041ec5,
0x1b80, 0x00041ec7,
0x1b80, 0x44801ed5,
0x1b80, 0x44801ed7,
0x1b80, 0x45ff1ee5,
0x1b80, 0x45ff1ee7,
0x1b80, 0x463f1ef5,
0x1b80, 0x463f1ef7,
0x1b80, 0x47311f05,
0x1b80, 0x47311f07,
0x1b80, 0x40081f15,
0x1b80, 0x40081f17,
0x1b80, 0xe2db1f25,
0x1b80, 0xe2db1f27,
0x1b80, 0x00011f35,
0x1b80, 0x00011f37,
0x1b80, 0xe2f41f45,
0x1b80, 0xe2f41f47,
0x1b80, 0x74081f55,
0x1b80, 0x74081f57,
0x1b80, 0xe34e1f65,
0x1b80, 0xe34e1f67,
0x1b80, 0xe3201f75,
0x1b80, 0xe3201f77,
0x1b80, 0xe3641f85,
0x1b80, 0xe3641f87,
0x1b80, 0xb9001f95,
0x1b80, 0xb9001f97,
0x1b80, 0x99001fa5,
0x1b80, 0x99001fa7,
0x1b80, 0x00061fb5,
0x1b80, 0x00061fb7,
0x1b80, 0x77001fc5,
0x1b80, 0x77001fc7,
0x1b80, 0x00051fd5,
0x1b80, 0x00051fd7,
0x1b80, 0x61041fe5,
0x1b80, 0x61041fe7,
0x1b80, 0x63b01ff5,
0x1b80, 0x63b01ff7,
0x1b80, 0x00062005,
0x1b80, 0x00062007,
0x1b80, 0x75082015,
0x1b80, 0x75082017,
0x1b80, 0x77082025,
0x1b80, 0x77082027,
0x1b80, 0x00072035,
0x1b80, 0x00072037,
0x1b80, 0x77202045,
0x1b80, 0x77202047,
0x1b80, 0x00052055,
0x1b80, 0x00052057,
0x1b80, 0x5c802065,
0x1b80, 0x5c802067,
0x1b80, 0x5dff2075,
0x1b80, 0x5dff2077,
0x1b80, 0x5e3f2085,
0x1b80, 0x5e3f2087,
0x1b80, 0x5f312095,
0x1b80, 0x5f312097,
0x1b80, 0x000420a5,
0x1b80, 0x000420a7,
0x1b80, 0x400a20b5,
0x1b80, 0x400a20b7,
0x1b80, 0xe2db20c5,
0x1b80, 0xe2db20c7,
0x1b80, 0x000120d5,
0x1b80, 0x000120d7,
0x1b80, 0xe2f420e5,
0x1b80, 0xe2f420e7,
0x1b80, 0x740820f5,
0x1b80, 0x740820f7,
0x1b80, 0xe33e2105,
0x1b80, 0xe33e2107,
0x1b80, 0xe3202115,
0x1b80, 0xe3202117,
0x1b80, 0xe35e2125,
0x1b80, 0xe35e2127,
0x1b80, 0xe36a2135,
0x1b80, 0xe36a2137,
0x1b80, 0xe2ad2145,
0x1b80, 0xe2ad2147,
0x1b80, 0x00012155,
0x1b80, 0x00012157,
0x1b80, 0xe2f42165,
0x1b80, 0xe2f42167,
0x1b80, 0x74082175,
0x1b80, 0x74082177,
0x1b80, 0xe34e2185,
0x1b80, 0xe34e2187,
0x1b80, 0xe3202195,
0x1b80, 0xe3202197,
0x1b80, 0xe36421a5,
0x1b80, 0xe36421a7,
0x1b80, 0xe36a21b5,
0x1b80, 0xe36a21b7,
0x1b80, 0xe2c321c5,
0x1b80, 0xe2c321c7,
0x1b80, 0x000121d5,
0x1b80, 0x000121d7,
0x1b80, 0xe30a21e5,
0x1b80, 0xe30a21e7,
0x1b80, 0x740021f5,
0x1b80, 0x740021f7,
0x1b80, 0xe33e2205,
0x1b80, 0xe33e2207,
0x1b80, 0xe32f2215,
0x1b80, 0xe32f2217,
0x1b80, 0xe35e2225,
0x1b80, 0xe35e2227,
0x1b80, 0xe36a2235,
0x1b80, 0xe36a2237,
0x1b80, 0xe2ad2245,
0x1b80, 0xe2ad2247,
0x1b80, 0x00012255,
0x1b80, 0x00012257,
0x1b80, 0x00052265,
0x1b80, 0x00052267,
0x1b80, 0x61042275,
0x1b80, 0x61042277,
0x1b80, 0x63b02285,
0x1b80, 0x63b02287,
0x1b80, 0x00062295,
0x1b80, 0x00062297,
0x1b80, 0x750822a5,
0x1b80, 0x750822a7,
0x1b80, 0x770822b5,
0x1b80, 0x770822b7,
0x1b80, 0x000522c5,
0x1b80, 0x000522c7,
0x1b80, 0x5c8022d5,
0x1b80, 0x5c8022d7,
0x1b80, 0x5dff22e5,
0x1b80, 0x5dff22e7,
0x1b80, 0x5e3f22f5,
0x1b80, 0x5e3f22f7,
0x1b80, 0x5f312305,
0x1b80, 0x5f312307,
0x1b80, 0x00042315,
0x1b80, 0x00042317,
0x1b80, 0x400a2325,
0x1b80, 0x400a2327,
0x1b80, 0xe23e2335,
0x1b80, 0xe23e2337,
0x1b80, 0x00042345,
0x1b80, 0x00042347,
0x1b80, 0x400c2355,
0x1b80, 0x400c2357,
0x1b80, 0x00062365,
0x1b80, 0x00062367,
0x1b80, 0x75002375,
0x1b80, 0x75002377,
0x1b80, 0x00052385,
0x1b80, 0x00052387,
0x1b80, 0x5c5b2395,
0x1b80, 0x5c5b2397,
0x1b80, 0x5f0023a5,
0x1b80, 0x5f0023a7,
0x1b80, 0x000423b5,
0x1b80, 0x000423b7,
0x1b80, 0x400823c5,
0x1b80, 0x400823c7,
0x1b80, 0x000123d5,
0x1b80, 0x000123d7,
0x1b80, 0x000723e5,
0x1b80, 0x000723e7,
0x1b80, 0x4c1223f5,
0x1b80, 0x4c1223f7,
0x1b80, 0x4e202405,
0x1b80, 0x4e202407,
0x1b80, 0x00052415,
0x1b80, 0x00052417,
0x1b80, 0x598f2425,
0x1b80, 0x598f2427,
0x1b80, 0x40022435,
0x1b80, 0x40022437,
0x1b80, 0x4c012445,
0x1b80, 0x4c012447,
0x1b80, 0x4c002455,
0x1b80, 0x4c002457,
0x1b80, 0xab002465,
0x1b80, 0xab002467,
0x1b80, 0x40032475,
0x1b80, 0x40032477,
0x1b80, 0x49802485,
0x1b80, 0x49802487,
0x1b80, 0x56c02495,
0x1b80, 0x56c02497,
0x1b80, 0x540224a5,
0x1b80, 0x540224a7,
0x1b80, 0x4c0124b5,
0x1b80, 0x4c0124b7,
0x1b80, 0x4c0024c5,
0x1b80, 0x4c0024c7,
0x1b80, 0xab0024d5,
0x1b80, 0xab0024d7,
0x1b80, 0x540024e5,
0x1b80, 0x540024e7,
0x1b80, 0x000724f5,
0x1b80, 0x000724f7,
0x1b80, 0x4c002505,
0x1b80, 0x4c002507,
0x1b80, 0x4e002515,
0x1b80, 0x4e002517,
0x1b80, 0x00052525,
0x1b80, 0x00052527,
0x1b80, 0x40042535,
0x1b80, 0x40042537,
0x1b80, 0x4c012545,
0x1b80, 0x4c012547,
0x1b80, 0x4c002555,
0x1b80, 0x4c002557,
0x1b80, 0x00012565,
0x1b80, 0x00012567,
0x1b80, 0x00042575,
0x1b80, 0x00042577,
0x1b80, 0x44802585,
0x1b80, 0x44802587,
0x1b80, 0x4b002595,
0x1b80, 0x4b002597,
0x1b80, 0x000525a5,
0x1b80, 0x000525a7,
0x1b80, 0x5c8025b5,
0x1b80, 0x5c8025b7,
0x1b80, 0x630025c5,
0x1b80, 0x630025c7,
0x1b80, 0x000725d5,
0x1b80, 0x000725d7,
0x1b80, 0x780c25e5,
0x1b80, 0x780c25e7,
0x1b80, 0x791925f5,
0x1b80, 0x791925f7,
0x1b80, 0x7a002605,
0x1b80, 0x7a002607,
0x1b80, 0x7b822615,
0x1b80, 0x7b822617,
0x1b80, 0x7b022625,
0x1b80, 0x7b022627,
0x1b80, 0x78142635,
0x1b80, 0x78142637,
0x1b80, 0x79ee2645,
0x1b80, 0x79ee2647,
0x1b80, 0x7a012655,
0x1b80, 0x7a012657,
0x1b80, 0x7b832665,
0x1b80, 0x7b832667,
0x1b80, 0x7b032675,
0x1b80, 0x7b032677,
0x1b80, 0x78282685,
0x1b80, 0x78282687,
0x1b80, 0x79b42695,
0x1b80, 0x79b42697,
0x1b80, 0x7a0026a5,
0x1b80, 0x7a0026a7,
0x1b80, 0x7b0026b5,
0x1b80, 0x7b0026b7,
0x1b80, 0x000126c5,
0x1b80, 0x000126c7,
0x1b80, 0x000426d5,
0x1b80, 0x000426d7,
0x1b80, 0x448026e5,
0x1b80, 0x448026e7,
0x1b80, 0xe30a2265,
0x1b80, 0xe30a2267,
0x1b80, 0x74002275,
0x1b80, 0x74002277,
0x1b80, 0xe34e2285,
0x1b80, 0xe34e2287,
0x1b80, 0xe32f2295,
0x1b80, 0xe32f2297,
0x1b80, 0xe36422a5,
0x1b80, 0xe36422a7,
0x1b80, 0xe36a22b5,
0x1b80, 0xe36a22b7,
0x1b80, 0xe2c322c5,
0x1b80, 0xe2c322c7,
0x1b80, 0x000122d5,
0x1b80, 0x000122d7,
0x1b80, 0x000422e5,
0x1b80, 0x000422e7,
0x1b80, 0x445b22f5,
0x1b80, 0x445b22f7,
0x1b80, 0x47b02305,
0x1b80, 0x47b02307,
0x1b80, 0x47302315,
0x1b80, 0x47302317,
0x1b80, 0x47002325,
0x1b80, 0x47002327,
0x1b80, 0x00062335,
0x1b80, 0x00062337,
0x1b80, 0x77082345,
0x1b80, 0x77082347,
0x1b80, 0x00042355,
0x1b80, 0x00042357,
0x1b80, 0x49402365,
0x1b80, 0x49402367,
0x1b80, 0x4bb02375,
0x1b80, 0x4bb02377,
0x1b80, 0x00072385,
0x1b80, 0x00072387,
0x1b80, 0x54402395,
0x1b80, 0x54402397,
0x1b80, 0x000423a5,
0x1b80, 0x000423a7,
0x1b80, 0x400823b5,
0x1b80, 0x400823b7,
0x1b80, 0x000123c5,
0x1b80, 0x000123c7,
0x1b80, 0x000523d5,
0x1b80, 0x000523d7,
0x1b80, 0x5c5b23e5,
0x1b80, 0x5c5b23e7,
0x1b80, 0x5fb023f5,
0x1b80, 0x5fb023f7,
0x1b80, 0x5f302405,
0x1b80, 0x5f302407,
0x1b80, 0x5f002415,
0x1b80, 0x5f002417,
0x1b80, 0x00062425,
0x1b80, 0x00062427,
0x1b80, 0x77082435,
0x1b80, 0x77082437,
0x1b80, 0x00052445,
0x1b80, 0x00052447,
0x1b80, 0x61402455,
0x1b80, 0x61402457,
0x1b80, 0x63b02465,
0x1b80, 0x63b02467,
0x1b80, 0x00072475,
0x1b80, 0x00072477,
0x1b80, 0x54402485,
0x1b80, 0x54402487,
0x1b80, 0x00042495,
0x1b80, 0x00042497,
0x1b80, 0x400824a5,
0x1b80, 0x400824a7,
0x1b80, 0x000124b5,
0x1b80, 0x000124b7,
0x1b80, 0xe2f424c5,
0x1b80, 0xe2f424c7,
0x1b80, 0x740824d5,
0x1b80, 0x740824d7,
0x1b80, 0xe33e24e5,
0x1b80, 0xe33e24e7,
0x1b80, 0x000424f5,
0x1b80, 0x000424f7,
0x1b80, 0x40082505,
0x1b80, 0x40082507,
0x1b80, 0x00012515,
0x1b80, 0x00012517,
0x1b80, 0xe2f42525,
0x1b80, 0xe2f42527,
0x1b80, 0x74082535,
0x1b80, 0x74082537,
0x1b80, 0xe34e2545,
0x1b80, 0xe34e2547,
0x1b80, 0x00042555,
0x1b80, 0x00042557,
0x1b80, 0x40082565,
0x1b80, 0x40082567,
0x1b80, 0x00012575,
0x1b80, 0x00012577,
0x1b80, 0xe30a2585,
0x1b80, 0xe30a2587,
0x1b80, 0x74002595,
0x1b80, 0x74002597,
0x1b80, 0xe33e25a5,
0x1b80, 0xe33e25a7,
0x1b80, 0x000425b5,
0x1b80, 0x000425b7,
0x1b80, 0x400825c5,
0x1b80, 0x400825c7,
0x1b80, 0x000125d5,
0x1b80, 0x000125d7,
0x1b80, 0xe30a25e5,
0x1b80, 0xe30a25e7,
0x1b80, 0x740025f5,
0x1b80, 0x740025f7,
0x1b80, 0xe34e2605,
0x1b80, 0xe34e2607,
0x1b80, 0x00042615,
0x1b80, 0x00042617,
0x1b80, 0x40082625,
0x1b80, 0x40082627,
0x1b80, 0x00012635,
0x1b80, 0x00012637,
0x1b80, 0x40ff2645,
0x1b80, 0x40ff2647,
0x1b80, 0x411f2655,
0x1b80, 0x411f2657,
0x1b80, 0x42002665,
0x1b80, 0x42002667,
0x1b80, 0x43002675,
0x1b80, 0x43002677,
0x1b80, 0x44ff2685,
0x1b80, 0x44ff2687,
0x1b80, 0x451f2695,
0x1b80, 0x451f2697,
0x1b80, 0x460026a5,
0x1b80, 0x460026a7,
0x1b80, 0x470026b5,
0x1b80, 0x470026b7,
0x1b80, 0x48ff26c5,
0x1b80, 0x48ff26c7,
0x1b80, 0x491f26d5,
0x1b80, 0x491f26d7,
0x1b80, 0x4a0026e5,
0x1b80, 0x4a0026e7,
0x1b80, 0x4b0026f5,
0x1b80, 0x4b0026f7,
0x1b80, 0x00052705,
0x1b80, 0x00052707,
0x1b80, 0x5c802715,
0x1b80, 0x5c802717,
0x1b80, 0x63002725,
0x1b80, 0x63002727,
0x1b80, 0x00072735,
0x1b80, 0x00072737,
0x1b80, 0x78102745,
0x1b80, 0x78102747,
0x1b80, 0x79132755,
0x1b80, 0x79132757,
0x1b80, 0x7a002765,
0x1b80, 0x7a002767,
0x1b80, 0x7b802775,
0x1b80, 0x7b802777,
0x1b80, 0x7b002785,
0x1b80, 0x7b002787,
0x1b80, 0x78db2795,
0x1b80, 0x78db2797,
0x1b80, 0x790027a5,
0x1b80, 0x790027a7,
0x1b80, 0x7a0027b5,
0x1b80, 0x7a0027b7,
0x1b80, 0x7b8127c5,
0x1b80, 0x7b8127c7,
0x1b80, 0x7b0127d5,
0x1b80, 0x7b0127d7,
0x1b80, 0x782827e5,
0x1b80, 0x782827e7,
0x1b80, 0x79b427f5,
0x1b80, 0x79b427f7,
0x1b80, 0x7a002805,
0x1b80, 0x7a002807,
0x1b80, 0x7b002815,
0x1b80, 0x7b002817,
0x1b80, 0x00012825,
0x1b80, 0x00012827,
0x1b80, 0x00072835,
0x1b80, 0x00072837,
0x1b80, 0x783e2845,
0x1b80, 0x783e2847,
0x1b80, 0x79f92855,
0x1b80, 0x79f92857,
0x1b80, 0x7a012865,
0x1b80, 0x7a012867,
0x1b80, 0x7b822875,
0x1b80, 0x7b822877,
0x1b80, 0x7b022885,
0x1b80, 0x7b022887,
0x1b80, 0x78a92895,
0x1b80, 0x78a92897,
0x1b80, 0x79ed28a5,
0x1b80, 0x79ed28a7,
0x1b80, 0x7b8328b5,
0x1b80, 0x7b8328b7,
0x1b80, 0x7b0328c5,
0x1b80, 0x7b0328c7,
0x1b80, 0x782828d5,
0x1b80, 0x782828d7,
0x1b80, 0x79b428e5,
0x1b80, 0x79b428e7,
0x1b80, 0x7a0028f5,
0x1b80, 0x7a0028f7,
0x1b80, 0x7b002905,
0x1b80, 0x7b002907,
0x1b80, 0x00012915,
0x1b80, 0x00012917,
0x1b80, 0x00072925,
0x1b80, 0x00072927,
0x1b80, 0x78ae2935,
0x1b80, 0x78ae2937,
0x1b80, 0x79fa2945,
0x1b80, 0x79fa2947,
0x1b80, 0x7a012955,
0x1b80, 0x7a012957,
0x1b80, 0x7b802965,
0x1b80, 0x7b802967,
0x1b80, 0x7b002975,
0x1b80, 0x7b002977,
0x1b80, 0x787a2985,
0x1b80, 0x787a2987,
0x1b80, 0x79f12995,
0x1b80, 0x79f12997,
0x1b80, 0x7b8129a5,
0x1b80, 0x7b8129a7,
0x1b80, 0x7b0129b5,
0x1b80, 0x7b0129b7,
0x1b80, 0x782829c5,
0x1b80, 0x782829c7,
0x1b80, 0x79b429d5,
0x1b80, 0x79b429d7,
0x1b80, 0x7a0029e5,
0x1b80, 0x7a0029e7,
0x1b80, 0x7b0029f5,
0x1b80, 0x7b0029f7,
0x1b80, 0x00012a05,
0x1b80, 0x00012a07,
0x1b80, 0x00072a15,
0x1b80, 0x00072a17,
0x1b80, 0x75002a25,
0x1b80, 0x75002a27,
0x1b80, 0x76022a35,
0x1b80, 0x76022a37,
0x1b80, 0x77152a45,
0x1b80, 0x77152a47,
0x1b80, 0x00062a55,
0x1b80, 0x00062a57,
0x1b80, 0x74002a65,
0x1b80, 0x74002a67,
0x1b80, 0x76002a75,
0x1b80, 0x76002a77,
0x1b80, 0x77002a85,
0x1b80, 0x77002a87,
0x1b80, 0x75102a95,
0x1b80, 0x75102a97,
0x1b80, 0x75002aa5,
0x1b80, 0x75002aa7,
0x1b80, 0xb3002ab5,
0x1b80, 0xb3002ab7,
0x1b80, 0x93002ac5,
0x1b80, 0x93002ac7,
0x1b80, 0x00072ad5,
0x1b80, 0x00072ad7,
0x1b80, 0x76002ae5,
0x1b80, 0x76002ae7,
0x1b80, 0x77002af5,
0x1b80, 0x77002af7,
0x1b80, 0x00012b05,
0x1b80, 0x00012b07,
0x1b80, 0x00072b15,
0x1b80, 0x00072b17,
0x1b80, 0x75002b25,
0x1b80, 0x75002b27,
0x1b80, 0x76022b35,
0x1b80, 0x76022b37,
0x1b80, 0x77252b45,
0x1b80, 0x77252b47,
0x1b80, 0x00062b55,
0x1b80, 0x00062b57,
0x1b80, 0x74002b65,
0x1b80, 0x74002b67,
0x1b80, 0x76002b75,
0x1b80, 0x76002b77,
0x1b80, 0x77012b85,
0x1b80, 0x77012b87,
0x1b80, 0x75102b95,
0x1b80, 0x75102b97,
0x1b80, 0x75002ba5,
0x1b80, 0x75002ba7,
0x1b80, 0xb3002bb5,
0x1b80, 0xb3002bb7,
0x1b80, 0x93002bc5,
0x1b80, 0x93002bc7,
0x1b80, 0x00072bd5,
0x1b80, 0x00072bd7,
0x1b80, 0x76002be5,
0x1b80, 0x76002be7,
0x1b80, 0x77002bf5,
0x1b80, 0x77002bf7,
0x1b80, 0x00012c05,
0x1b80, 0x00012c07,
0x1b80, 0x00042c15,
0x1b80, 0x00042c17,
0x1b80, 0x44802c25,
0x1b80, 0x44802c27,
0x1b80, 0x47302c35,
0x1b80, 0x47302c37,
0x1b80, 0x00062c45,
0x1b80, 0x00062c47,
0x1b80, 0x776c2c55,
0x1b80, 0x776c2c57,
0x1b80, 0x00012c65,
0x1b80, 0x00012c67,
0x1b80, 0x00052c75,
0x1b80, 0x00052c77,
0x1b80, 0x5c802c85,
0x1b80, 0x5c802c87,
0x1b80, 0x5f302c95,
0x1b80, 0x5f302c97,
0x1b80, 0x00062ca5,
0x1b80, 0x00062ca7,
0x1b80, 0x776d2cb5,
0x1b80, 0x776d2cb7,
0x1b80, 0x00012cc5,
0x1b80, 0x00012cc7,
0x1b80, 0xb9002cd5,
0x1b80, 0xb9002cd7,
0x1b80, 0x99002ce5,
0x1b80, 0x99002ce7,
0x1b80, 0x00062cf5,
0x1b80, 0x00062cf7,
0x1b80, 0x77002d05,
0x1b80, 0x77002d07,
0x1b80, 0x98052d15,
0x1b80, 0x98052d17,
0x1b80, 0x00042d25,
0x1b80, 0x00042d27,
0x1b80, 0x40082d35,
0x1b80, 0x40082d37,
0x1b80, 0x4a022d45,
0x1b80, 0x4a022d47,
0x1b80, 0x30192d55,
0x1b80, 0x30192d57,
0x1b80, 0x00012d65,
0x1b80, 0x00012d67,
0x1b80, 0x7b482d75,
0x1b80, 0x7b482d77,
0x1b80, 0x7a902d85,
0x1b80, 0x7a902d87,
0x1b80, 0x79002d95,
0x1b80, 0x79002d97,
0x1b80, 0x55032da5,
0x1b80, 0x55032da7,
0x1b80, 0x32e32db5,
0x1b80, 0x32e32db7,
0x1b80, 0x7b382dc5,
0x1b80, 0x7b382dc7,
0x1b80, 0x7a802dd5,
0x1b80, 0x7a802dd7,
0x1b80, 0x550b2de5,
0x1b80, 0x550b2de7,
0x1b80, 0x32e32df5,
0x1b80, 0x32e32df7,
0x1b80, 0x7b402e05,
0x1b80, 0x7b402e07,
0x1b80, 0x7a002e15,
0x1b80, 0x7a002e17,
0x1b80, 0x55132e25,
0x1b80, 0x55132e27,
0x1b80, 0x74012e35,
0x1b80, 0x74012e37,
0x1b80, 0x74002e45,
0x1b80, 0x74002e47,
0x1b80, 0x8e002e55,
0x1b80, 0x8e002e57,
0x1b80, 0x00012e65,
0x1b80, 0x00012e67,
0x1b80, 0x57022e75,
0x1b80, 0x57022e77,
0x1b80, 0x57002e85,
0x1b80, 0x57002e87,
0x1b80, 0x97002e95,
0x1b80, 0x97002e97,
0x1b80, 0x00012ea5,
0x1b80, 0x00012ea7,
0x1b80, 0x4f782eb5,
0x1b80, 0x4f782eb7,
0x1b80, 0x53882ec5,
0x1b80, 0x53882ec7,
0x1b80, 0xe2f72ed5,
0x1b80, 0xe2f72ed7,
0x1b80, 0x54802ee5,
0x1b80, 0x54802ee7,
0x1b80, 0x54002ef5,
0x1b80, 0x54002ef7,
0x1b80, 0x54812f05,
0x1b80, 0x54812f07,
0x1b80, 0x54002f15,
0x1b80, 0x54002f17,
0x1b80, 0x54822f25,
0x1b80, 0x54822f27,
0x1b80, 0x54002f35,
0x1b80, 0x54002f37,
0x1b80, 0xe3022f45,
0x1b80, 0xe3022f47,
0x1b80, 0xbf1d2f55,
0x1b80, 0xbf1d2f57,
0x1b80, 0x30192f65,
0x1b80, 0x30192f67,
0x1b80, 0xe2d72f75,
0x1b80, 0xe2d72f77,
0x1b80, 0xe2dc2f85,
0x1b80, 0xe2dc2f87,
0x1b80, 0xe2e02f95,
0x1b80, 0xe2e02f97,
0x1b80, 0xe2e72fa5,
0x1b80, 0xe2e72fa7,
0x1b80, 0xe3412fb5,
0x1b80, 0xe3412fb7,
0x1b80, 0x55132fc5,
0x1b80, 0x55132fc7,
0x1b80, 0xe2e32fd5,
0x1b80, 0xe2e32fd7,
0x1b80, 0x55152fe5,
0x1b80, 0x55152fe7,
0x1b80, 0xe2e72ff5,
0x1b80, 0xe2e72ff7,
0x1b80, 0xe3413005,
0x1b80, 0xe3413007,
0x1b80, 0x00013015,
0x1b80, 0x00013017,
0x1b80, 0x54bf3025,
0x1b80, 0x54bf3027,
0x1b80, 0x54c03035,
0x1b80, 0x54c03037,
0x1b80, 0x54a33045,
0x1b80, 0x54a33047,
0x1b80, 0x54c13055,
0x1b80, 0x54c13057,
0x1b80, 0x54a43065,
0x1b80, 0x54a43067,
0x1b80, 0x4c183075,
0x1b80, 0x4c183077,
0x1b80, 0xbf073085,
0x1b80, 0xbf073087,
0x1b80, 0x54c23095,
0x1b80, 0x54c23097,
0x1b80, 0x54a430a5,
0x1b80, 0x54a430a7,
0x1b80, 0xbf0430b5,
0x1b80, 0xbf0430b7,
0x1b80, 0x54c130c5,
0x1b80, 0x54c130c7,
0x1b80, 0x54a330d5,
0x1b80, 0x54a330d7,
0x1b80, 0xbf0130e5,
0x1b80, 0xbf0130e7,
0x1b80, 0xe34f30f5,
0x1b80, 0xe34f30f7,
0x1b80, 0x54df3105,
0x1b80, 0x54df3107,
0x1b80, 0x00013115,
0x1b80, 0x00013117,
0x1b80, 0x54bf3125,
0x1b80, 0x54bf3127,
0x1b80, 0x54e53135,
0x1b80, 0x54e53137,
0x1b80, 0x050a3145,
0x1b80, 0x050a3147,
0x1b80, 0x54df3155,
0x1b80, 0x54df3157,
0x1b80, 0x00013165,
0x1b80, 0x00013167,
0x1b80, 0x7f403175,
0x1b80, 0x7f403177,
0x1b80, 0x7e003185,
0x1b80, 0x7e003187,
0x1b80, 0x7d003195,
0x1b80, 0x7d003197,
0x1b80, 0x550131a5,
0x1b80, 0x550131a7,
0x1b80, 0x5c3131b5,
0x1b80, 0x5c3131b7,
0x1b80, 0xe2e331c5,
0x1b80, 0xe2e331c7,
0x1b80, 0xe2e731d5,
0x1b80, 0xe2e731d7,
0x1b80, 0x548031e5,
0x1b80, 0x548031e7,
0x1b80, 0x540031f5,
0x1b80, 0x540031f7,
0x1b80, 0x54813205,
0x1b80, 0x54813207,
0x1b80, 0x54003215,
0x1b80, 0x54003217,
0x1b80, 0x54823225,
0x1b80, 0x54823227,
0x1b80, 0x54003235,
0x1b80, 0x54003237,
0x1b80, 0xe3023245,
0x1b80, 0xe3023247,
0x1b80, 0xbfed3255,
0x1b80, 0xbfed3257,
0x1b80, 0x30193265,
0x1b80, 0x30193267,
0x1b80, 0x74023275,
0x1b80, 0x74023277,
0x1b80, 0x003f3285,
0x1b80, 0x003f3287,
0x1b80, 0x74003295,
0x1b80, 0x74003297,
0x1b80, 0x000232a5,
0x1b80, 0x000232a7,
0x1b80, 0x000132b5,
0x1b80, 0x000132b7,
0x1b80, 0x000632c5,
0x1b80, 0x000632c7,
0x1b80, 0x5a8032d5,
0x1b80, 0x5a8032d7,
0x1b80, 0x5a0032e5,
0x1b80, 0x5a0032e7,
0x1b80, 0x920032f5,
0x1b80, 0x920032f7,
0x1b80, 0x00013305,
0x1b80, 0x00013307,
0x1b80, 0x5b8f3315,
0x1b80, 0x5b8f3317,
0x1b80, 0x5b0f3325,
0x1b80, 0x5b0f3327,
0x1b80, 0x91003335,
0x1b80, 0x91003337,
0x1b80, 0x00013345,
0x1b80, 0x00013347,
0x1b80, 0x00063355,
0x1b80, 0x00063357,
0x1b80, 0x5d803365,
0x1b80, 0x5d803367,
0x1b80, 0x5e563375,
0x1b80, 0x5e563377,
0x1b80, 0x00043385,
0x1b80, 0x00043387,
0x1b80, 0x4d083395,
0x1b80, 0x4d083397,
0x1b80, 0x571033a5,
0x1b80, 0x571033a7,
0x1b80, 0x570033b5,
0x1b80, 0x570033b7,
0x1b80, 0x4d0033c5,
0x1b80, 0x4d0033c7,
0x1b80, 0x000633d5,
0x1b80, 0x000633d7,
0x1b80, 0x5d0033e5,
0x1b80, 0x5d0033e7,
0x1b80, 0x000433f5,
0x1b80, 0x000433f7,
0x1b80, 0x00013405,
0x1b80, 0x00013407,
0x1b80, 0x549f3415,
0x1b80, 0x549f3417,
0x1b80, 0x54ff3425,
0x1b80, 0x54ff3427,
0x1b80, 0x54003435,
0x1b80, 0x54003437,
0x1b80, 0x00013445,
0x1b80, 0x00013447,
0x1b80, 0x5c313455,
0x1b80, 0x5c313457,
0x1b80, 0x07143465,
0x1b80, 0x07143467,
0x1b80, 0x54003475,
0x1b80, 0x54003477,
0x1b80, 0x5c323485,
0x1b80, 0x5c323487,
0x1b80, 0x00013495,
0x1b80, 0x00013497,
0x1b80, 0x5c3234a5,
0x1b80, 0x5c3234a7,
0x1b80, 0x071434b5,
0x1b80, 0x071434b7,
0x1b80, 0x540034c5,
0x1b80, 0x540034c7,
0x1b80, 0x5c3134d5,
0x1b80, 0x5c3134d7,
0x1b80, 0x000134e5,
0x1b80, 0x000134e7,
0x1b80, 0x4c9834f5,
0x1b80, 0x4c9834f7,
0x1b80, 0x4c183505,
0x1b80, 0x4c183507,
0x1b80, 0x00013515,
0x1b80, 0x00013517,
0x1b80, 0x5c323525,
0x1b80, 0x5c323527,
0x1b80, 0x62043535,
0x1b80, 0x62043537,
0x1b80, 0x63033545,
0x1b80, 0x63033547,
0x1b80, 0x66073555,
0x1b80, 0x66073557,
0x1b80, 0x7b403565,
0x1b80, 0x7b403567,
0x1b80, 0x7a003575,
0x1b80, 0x7a003577,
0x1b80, 0x79003585,
0x1b80, 0x79003587,
0x1b80, 0x7f403595,
0x1b80, 0x7f403597,
0x1b80, 0x7e0035a5,
0x1b80, 0x7e0035a7,
0x1b80, 0x7d0035b5,
0x1b80, 0x7d0035b7,
0x1b80, 0x090135c5,
0x1b80, 0x090135c7,
0x1b80, 0x0c0135d5,
0x1b80, 0x0c0135d7,
0x1b80, 0x0ba635e5,
0x1b80, 0x0ba635e7,
0x1b80, 0x000135f5,
0x1b80, 0x000135f7,
0x1b80, 0x00012705,
0x1b80, 0x00012707,
0x1b80, 0x4cff2715,
0x1b80, 0x4cff2717,
0x1b80, 0x4d1f2725,
0x1b80, 0x4d1f2727,
0x1b80, 0x4e002735,
0x1b80, 0x4e002737,
0x1b80, 0x4f002745,
0x1b80, 0x4f002747,
0x1b80, 0x50ff2755,
0x1b80, 0x50ff2757,
0x1b80, 0x511f2765,
0x1b80, 0x511f2767,
0x1b80, 0x52002775,
0x1b80, 0x52002777,
0x1b80, 0x53002785,
0x1b80, 0x53002787,
0x1b80, 0x54ff2795,
0x1b80, 0x54ff2797,
0x1b80, 0x551f27a5,
0x1b80, 0x551f27a7,
0x1b80, 0x560027b5,
0x1b80, 0x560027b7,
0x1b80, 0x570027c5,
0x1b80, 0x570027c7,
0x1b80, 0x58ff27d5,
0x1b80, 0x58ff27d7,
0x1b80, 0x591f27e5,
0x1b80, 0x591f27e7,
0x1b80, 0x5a0027f5,
0x1b80, 0x5a0027f7,
0x1b80, 0x5b002805,
0x1b80, 0x5b002807,
0x1b80, 0x00012815,
0x1b80, 0x00012817,
0x1b80, 0x5cff2825,
0x1b80, 0x5cff2827,
0x1b80, 0x5d1f2835,
0x1b80, 0x5d1f2837,
0x1b80, 0x5e002845,
0x1b80, 0x5e002847,
0x1b80, 0x5f002855,
0x1b80, 0x5f002857,
0x1b80, 0x60ff2865,
0x1b80, 0x60ff2867,
0x1b80, 0x611f2875,
0x1b80, 0x611f2877,
0x1b80, 0x62002885,
0x1b80, 0x62002887,
0x1b80, 0x63002895,
0x1b80, 0x63002897,
0x1b80, 0x000128a5,
0x1b80, 0x000128a7,
0x1b80, 0x64ff28b5,
0x1b80, 0x64ff28b7,
0x1b80, 0x651f28c5,
0x1b80, 0x651f28c7,
0x1b80, 0x660028d5,
0x1b80, 0x660028d7,
0x1b80, 0x670028e5,
0x1b80, 0x670028e7,
0x1b80, 0x68ff28f5,
0x1b80, 0x68ff28f7,
0x1b80, 0x691f2905,
0x1b80, 0x691f2907,
0x1b80, 0x6a002915,
0x1b80, 0x6a002917,
0x1b80, 0x6b002925,
0x1b80, 0x6b002927,
0x1b80, 0x6cff2935,
0x1b80, 0x6cff2937,
0x1b80, 0x6d1f2945,
0x1b80, 0x6d1f2947,
0x1b80, 0x6e002955,
0x1b80, 0x6e002957,
0x1b80, 0x6f002965,
0x1b80, 0x6f002967,
0x1b80, 0x70ff2975,
0x1b80, 0x70ff2977,
0x1b80, 0x711f2985,
0x1b80, 0x711f2987,
0x1b80, 0x72002995,
0x1b80, 0x72002997,
0x1b80, 0x730029a5,
0x1b80, 0x730029a7,
0x1b80, 0x000129b5,
0x1b80, 0x000129b7,
0x1b80, 0x70ff29c5,
0x1b80, 0x70ff29c7,
0x1b80, 0x711f29d5,
0x1b80, 0x711f29d7,
0x1b80, 0x720029e5,
0x1b80, 0x720029e7,
0x1b80, 0x730029f5,
0x1b80, 0x730029f7,
0x1b80, 0x74ff2a05,
0x1b80, 0x74ff2a07,
0x1b80, 0x751f2a15,
0x1b80, 0x751f2a17,
0x1b80, 0x76002a25,
0x1b80, 0x76002a27,
0x1b80, 0x77002a35,
0x1b80, 0x77002a37,
0x1b80, 0x78ff2a45,
0x1b80, 0x78ff2a47,
0x1b80, 0x791f2a55,
0x1b80, 0x791f2a57,
0x1b80, 0x7a002a65,
0x1b80, 0x7a002a67,
0x1b80, 0x7b002a75,
0x1b80, 0x7b002a77,
0x1b80, 0x7cff2a85,
0x1b80, 0x7cff2a87,
0x1b80, 0x7d1f2a95,
0x1b80, 0x7d1f2a97,
0x1b80, 0x7e002aa5,
0x1b80, 0x7e002aa7,
0x1b80, 0x7f002ab5,
0x1b80, 0x7f002ab7,
0x1b80, 0x00012ac5,
0x1b80, 0x00012ac7,
0x1b80, 0x00042ad5,
0x1b80, 0x00042ad7,
0x1b80, 0x49042ae5,
0x1b80, 0x49042ae7,
0x1b80, 0x4bb02af5,
0x1b80, 0x4bb02af7,
0x1b80, 0x00062b05,
0x1b80, 0x00062b07,
0x1b80, 0x75042b15,
0x1b80, 0x75042b17,
0x1b80, 0x77082b25,
0x1b80, 0x77082b27,
0x1b80, 0x00042b35,
0x1b80, 0x00042b37,
0x1b80, 0x44802b45,
0x1b80, 0x44802b47,
0x1b80, 0x45ff2b55,
0x1b80, 0x45ff2b57,
0x1b80, 0x463f2b65,
0x1b80, 0x463f2b67,
0x1b80, 0x47312b75,
0x1b80, 0x47312b77,
0x1b80, 0x40082b85,
0x1b80, 0x40082b87,
0x1b80, 0xe2db2b95,
0x1b80, 0xe2db2b97,
0x1b80, 0x00042ba5,
0x1b80, 0x00042ba7,
0x1b80, 0x400c2bb5,
0x1b80, 0x400c2bb7,
0x1b80, 0x00062bc5,
0x1b80, 0x00062bc7,
0x1b80, 0x75002bd5,
0x1b80, 0x75002bd7,
0x1b80, 0x00042be5,
0x1b80, 0x00042be7,
0x1b80, 0x445b2bf5,
0x1b80, 0x445b2bf7,
0x1b80, 0x47002c05,
0x1b80, 0x47002c07,
0x1b80, 0x40082c15,
0x1b80, 0x40082c17,
0x1b80, 0x00012c25,
0x1b80, 0x00012c27,
0x1b80, 0x00052c35,
0x1b80, 0x00052c37,
0x1b80, 0x61042c45,
0x1b80, 0x61042c47,
0x1b80, 0x63b02c55,
0x1b80, 0x63b02c57,
0x1b80, 0x00062c65,
0x1b80, 0x00062c67,
0x1b80, 0x75082c75,
0x1b80, 0x75082c77,
0x1b80, 0x77082c85,
0x1b80, 0x77082c87,
0x1b80, 0x00052c95,
0x1b80, 0x00052c97,
0x1b80, 0x5c802ca5,
0x1b80, 0x5c802ca7,
0x1b80, 0x5dff2cb5,
0x1b80, 0x5dff2cb7,
0x1b80, 0x5e3f2cc5,
0x1b80, 0x5e3f2cc7,
0x1b80, 0x5f312cd5,
0x1b80, 0x5f312cd7,
0x1b80, 0x00042ce5,
0x1b80, 0x00042ce7,
0x1b80, 0x400a2cf5,
0x1b80, 0x400a2cf7,
0x1b80, 0xe2db2d05,
0x1b80, 0xe2db2d07,
0x1b80, 0x00042d15,
0x1b80, 0x00042d17,
0x1b80, 0x400c2d25,
0x1b80, 0x400c2d27,
0x1b80, 0x00062d35,
0x1b80, 0x00062d37,
0x1b80, 0x75002d45,
0x1b80, 0x75002d47,
0x1b80, 0x00052d55,
0x1b80, 0x00052d57,
0x1b80, 0x5c5b2d65,
0x1b80, 0x5c5b2d67,
0x1b80, 0x5f002d75,
0x1b80, 0x5f002d77,
0x1b80, 0x00042d85,
0x1b80, 0x00042d87,
0x1b80, 0x40082d95,
0x1b80, 0x40082d97,
0x1b80, 0x00012da5,
0x1b80, 0x00012da7,
0x1b80, 0x00072db5,
0x1b80, 0x00072db7,
0x1b80, 0x4c122dc5,
0x1b80, 0x4c122dc7,
0x1b80, 0x4e202dd5,
0x1b80, 0x4e202dd7,
0x1b80, 0x00052de5,
0x1b80, 0x00052de7,
0x1b80, 0x598f2df5,
0x1b80, 0x598f2df7,
0x1b80, 0x40022e05,
0x1b80, 0x40022e07,
0x1b80, 0x4c012e15,
0x1b80, 0x4c012e17,
0x1b80, 0x4c002e25,
0x1b80, 0x4c002e27,
0x1b80, 0xab002e35,
0x1b80, 0xab002e37,
0x1b80, 0x40032e45,
0x1b80, 0x40032e47,
0x1b80, 0x49802e55,
0x1b80, 0x49802e57,
0x1b80, 0x56c02e65,
0x1b80, 0x56c02e67,
0x1b80, 0x54022e75,
0x1b80, 0x54022e77,
0x1b80, 0x4c012e85,
0x1b80, 0x4c012e87,
0x1b80, 0x4c002e95,
0x1b80, 0x4c002e97,
0x1b80, 0xab002ea5,
0x1b80, 0xab002ea7,
0x1b80, 0x54002eb5,
0x1b80, 0x54002eb7,
0x1b80, 0x00072ec5,
0x1b80, 0x00072ec7,
0x1b80, 0x4c002ed5,
0x1b80, 0x4c002ed7,
0x1b80, 0x4e002ee5,
0x1b80, 0x4e002ee7,
0x1b80, 0x00052ef5,
0x1b80, 0x00052ef7,
0x1b80, 0x40042f05,
0x1b80, 0x40042f07,
0x1b80, 0x4c012f15,
0x1b80, 0x4c012f17,
0x1b80, 0x4c002f25,
0x1b80, 0x4c002f27,
0x1b80, 0x00012f35,
0x1b80, 0x00012f37,
0x1b80, 0x00042f45,
0x1b80, 0x00042f47,
0x1b80, 0x44802f55,
0x1b80, 0x44802f57,
0x1b80, 0x4b002f65,
0x1b80, 0x4b002f67,
0x1b80, 0x00052f75,
0x1b80, 0x00052f77,
0x1b80, 0x5c802f85,
0x1b80, 0x5c802f87,
0x1b80, 0x63002f95,
0x1b80, 0x63002f97,
0x1b80, 0x00072fa5,
0x1b80, 0x00072fa7,
0x1b80, 0x780c2fb5,
0x1b80, 0x780c2fb7,
0x1b80, 0x79192fc5,
0x1b80, 0x79192fc7,
0x1b80, 0x7a002fd5,
0x1b80, 0x7a002fd7,
0x1b80, 0x7b822fe5,
0x1b80, 0x7b822fe7,
0x1b80, 0x7b022ff5,
0x1b80, 0x7b022ff7,
0x1b80, 0x78143005,
0x1b80, 0x78143007,
0x1b80, 0x79ee3015,
0x1b80, 0x79ee3017,
0x1b80, 0x7a013025,
0x1b80, 0x7a013027,
0x1b80, 0x7b833035,
0x1b80, 0x7b833037,
0x1b80, 0x7b033045,
0x1b80, 0x7b033047,
0x1b80, 0x78283055,
0x1b80, 0x78283057,
0x1b80, 0x79b43065,
0x1b80, 0x79b43067,
0x1b80, 0x7a003075,
0x1b80, 0x7a003077,
0x1b80, 0x7b003085,
0x1b80, 0x7b003087,
0x1b80, 0x00013095,
0x1b80, 0x00013097,
0x1b80, 0x000430a5,
0x1b80, 0x000430a7,
0x1b80, 0x448030b5,
0x1b80, 0x448030b7,
0x1b80, 0x4b0030c5,
0x1b80, 0x4b0030c7,
0x1b80, 0x000530d5,
0x1b80, 0x000530d7,
0x1b80, 0x5c8030e5,
0x1b80, 0x5c8030e7,
0x1b80, 0x630030f5,
0x1b80, 0x630030f7,
0x1b80, 0x00073105,
0x1b80, 0x00073107,
0x1b80, 0x78103115,
0x1b80, 0x78103117,
0x1b80, 0x79133125,
0x1b80, 0x79133127,
0x1b80, 0x7a003135,
0x1b80, 0x7a003137,
0x1b80, 0x7b803145,
0x1b80, 0x7b803147,
0x1b80, 0x7b003155,
0x1b80, 0x7b003157,
0x1b80, 0x78db3165,
0x1b80, 0x78db3167,
0x1b80, 0x79003175,
0x1b80, 0x79003177,
0x1b80, 0x7a003185,
0x1b80, 0x7a003187,
0x1b80, 0x7b813195,
0x1b80, 0x7b813197,
0x1b80, 0x7b0131a5,
0x1b80, 0x7b0131a7,
0x1b80, 0x782831b5,
0x1b80, 0x782831b7,
0x1b80, 0x79b431c5,
0x1b80, 0x79b431c7,
0x1b80, 0x7a0031d5,
0x1b80, 0x7a0031d7,
0x1b80, 0x7b0031e5,
0x1b80, 0x7b0031e7,
0x1b80, 0x000131f5,
0x1b80, 0x000131f7,
0x1b80, 0x00073205,
0x1b80, 0x00073207,
0x1b80, 0x783e3215,
0x1b80, 0x783e3217,
0x1b80, 0x79f93225,
0x1b80, 0x79f93227,
0x1b80, 0x7a013235,
0x1b80, 0x7a013237,
0x1b80, 0x7b823245,
0x1b80, 0x7b823247,
0x1b80, 0x7b023255,
0x1b80, 0x7b023257,
0x1b80, 0x78a93265,
0x1b80, 0x78a93267,
0x1b80, 0x79ed3275,
0x1b80, 0x79ed3277,
0x1b80, 0x7b833285,
0x1b80, 0x7b833287,
0x1b80, 0x7b033295,
0x1b80, 0x7b033297,
0x1b80, 0x782832a5,
0x1b80, 0x782832a7,
0x1b80, 0x79b432b5,
0x1b80, 0x79b432b7,
0x1b80, 0x7a0032c5,
0x1b80, 0x7a0032c7,
0x1b80, 0x7b0032d5,
0x1b80, 0x7b0032d7,
0x1b80, 0x000132e5,
0x1b80, 0x000132e7,
0x1b80, 0x000732f5,
0x1b80, 0x000732f7,
0x1b80, 0x78ae3305,
0x1b80, 0x78ae3307,
0x1b80, 0x79fa3315,
0x1b80, 0x79fa3317,
0x1b80, 0x7a013325,
0x1b80, 0x7a013327,
0x1b80, 0x7b803335,
0x1b80, 0x7b803337,
0x1b80, 0x7b003345,
0x1b80, 0x7b003347,
0x1b80, 0x787a3355,
0x1b80, 0x787a3357,
0x1b80, 0x79f13365,
0x1b80, 0x79f13367,
0x1b80, 0x7b813375,
0x1b80, 0x7b813377,
0x1b80, 0x7b013385,
0x1b80, 0x7b013387,
0x1b80, 0x78283395,
0x1b80, 0x78283397,
0x1b80, 0x79b433a5,
0x1b80, 0x79b433a7,
0x1b80, 0x7a0033b5,
0x1b80, 0x7a0033b7,
0x1b80, 0x7b0033c5,
0x1b80, 0x7b0033c7,
0x1b80, 0x000133d5,
0x1b80, 0x000133d7,
0x1b80, 0x000733e5,
0x1b80, 0x000733e7,
0x1b80, 0x750033f5,
0x1b80, 0x750033f7,
0x1b80, 0x76023405,
0x1b80, 0x76023407,
0x1b80, 0x77153415,
0x1b80, 0x77153417,
0x1b80, 0x00063425,
0x1b80, 0x00063427,
0x1b80, 0x74003435,
0x1b80, 0x74003437,
0x1b80, 0x76003445,
0x1b80, 0x76003447,
0x1b80, 0x77003455,
0x1b80, 0x77003457,
0x1b80, 0x75103465,
0x1b80, 0x75103467,
0x1b80, 0x75003475,
0x1b80, 0x75003477,
0x1b80, 0xb3003485,
0x1b80, 0xb3003487,
0x1b80, 0x93003495,
0x1b80, 0x93003497,
0x1b80, 0x000734a5,
0x1b80, 0x000734a7,
0x1b80, 0x760034b5,
0x1b80, 0x760034b7,
0x1b80, 0x770034c5,
0x1b80, 0x770034c7,
0x1b80, 0x000134d5,
0x1b80, 0x000134d7,
0x1b80, 0x000734e5,
0x1b80, 0x000734e7,
0x1b80, 0x750034f5,
0x1b80, 0x750034f7,
0x1b80, 0x76023505,
0x1b80, 0x76023507,
0x1b80, 0x77253515,
0x1b80, 0x77253517,
0x1b80, 0x00063525,
0x1b80, 0x00063527,
0x1b80, 0x74003535,
0x1b80, 0x74003537,
0x1b80, 0x76003545,
0x1b80, 0x76003547,
0x1b80, 0x77013555,
0x1b80, 0x77013557,
0x1b80, 0x75103565,
0x1b80, 0x75103567,
0x1b80, 0x75003575,
0x1b80, 0x75003577,
0x1b80, 0xb3003585,
0x1b80, 0xb3003587,
0x1b80, 0x93003595,
0x1b80, 0x93003597,
0x1b80, 0x000735a5,
0x1b80, 0x000735a7,
0x1b80, 0x760035b5,
0x1b80, 0x760035b7,
0x1b80, 0x770035c5,
0x1b80, 0x770035c7,
0x1b80, 0x000135d5,
0x1b80, 0x000135d7,
0x1b80, 0x000435e5,
0x1b80, 0x000435e7,
0x1b80, 0x448035f5,
0x1b80, 0x448035f7,
0x1b80, 0x47303605,
0x1b80, 0x47303607,
0x1b80, 0x00063615,
0x1b80, 0x00063617,
0x1b80, 0x776c3625,
0x1b80, 0x776c3627,
0x1b80, 0x00013635,
0x1b80, 0x00013637,
0x1b80, 0x00053645,
0x1b80, 0x00053647,
0x1b80, 0x5c803655,
0x1b80, 0x5c803657,
0x1b80, 0x5f303665,
0x1b80, 0x5f303667,
0x1b80, 0x00063675,
0x1b80, 0x00063677,
0x1b80, 0x776d3685,
0x1b80, 0x776d3687,
0x1b80, 0x00013695,
0x1b80, 0x00013697,
0x1b80, 0xb90036a5,
0x1b80, 0xb90036a7,
0x1b80, 0x990036b5,
0x1b80, 0x990036b7,
0x1b80, 0x000636c5,
0x1b80, 0x000636c7,
0x1b80, 0x770036d5,
0x1b80, 0x770036d7,
0x1b80, 0x980536e5,
0x1b80, 0x980536e7,
0x1b80, 0x000436f5,
0x1b80, 0x000436f7,
0x1b80, 0x40083705,
0x1b80, 0x40083707,
0x1b80, 0x4a023715,
0x1b80, 0x4a023717,
0x1b80, 0x30193725,
0x1b80, 0x30193727,
0x1b80, 0x00013735,
0x1b80, 0x00013737,
0x1b80, 0x7b483745,
0x1b80, 0x7b483747,
0x1b80, 0x7a903755,
0x1b80, 0x7a903757,
0x1b80, 0x79003765,
0x1b80, 0x79003767,
0x1b80, 0x55033775,
0x1b80, 0x55033777,
0x1b80, 0x33803785,
0x1b80, 0x33803787,
0x1b80, 0x7b383795,
0x1b80, 0x7b383797,
0x1b80, 0x7a8037a5,
0x1b80, 0x7a8037a7,
0x1b80, 0x550b37b5,
0x1b80, 0x550b37b7,
0x1b80, 0x338037c5,
0x1b80, 0x338037c7,
0x1b80, 0x7b4037d5,
0x1b80, 0x7b4037d7,
0x1b80, 0x7a0037e5,
0x1b80, 0x7a0037e7,
0x1b80, 0x551337f5,
0x1b80, 0x551337f7,
0x1b80, 0x74013805,
0x1b80, 0x74013807,
0x1b80, 0x74003815,
0x1b80, 0x74003817,
0x1b80, 0x8e003825,
0x1b80, 0x8e003827,
0x1b80, 0x00013835,
0x1b80, 0x00013837,
0x1b80, 0x57023845,
0x1b80, 0x57023847,
0x1b80, 0x57003855,
0x1b80, 0x57003857,
0x1b80, 0x97003865,
0x1b80, 0x97003867,
0x1b80, 0x00013875,
0x1b80, 0x00013877,
0x1b80, 0x4f783885,
0x1b80, 0x4f783887,
0x1b80, 0x53883895,
0x1b80, 0x53883897,
0x1b80, 0xe39438a5,
0x1b80, 0xe39438a7,
0x1b80, 0x548038b5,
0x1b80, 0x548038b7,
0x1b80, 0x540038c5,
0x1b80, 0x540038c7,
0x1b80, 0x548138d5,
0x1b80, 0x548138d7,
0x1b80, 0x540038e5,
0x1b80, 0x540038e7,
0x1b80, 0x548238f5,
0x1b80, 0x548238f7,
0x1b80, 0x54003905,
0x1b80, 0x54003907,
0x1b80, 0xe39f3915,
0x1b80, 0xe39f3917,
0x1b80, 0xbf1d3925,
0x1b80, 0xbf1d3927,
0x1b80, 0x30193935,
0x1b80, 0x30193937,
0x1b80, 0xe3743945,
0x1b80, 0xe3743947,
0x1b80, 0xe3793955,
0x1b80, 0xe3793957,
0x1b80, 0xe37d3965,
0x1b80, 0xe37d3967,
0x1b80, 0xe3843975,
0x1b80, 0xe3843977,
0x1b80, 0xe3de3985,
0x1b80, 0xe3de3987,
0x1b80, 0x55133995,
0x1b80, 0x55133997,
0x1b80, 0xe38039a5,
0x1b80, 0xe38039a7,
0x1b80, 0x551539b5,
0x1b80, 0x551539b7,
0x1b80, 0xe38439c5,
0x1b80, 0xe38439c7,
0x1b80, 0xe3de39d5,
0x1b80, 0xe3de39d7,
0x1b80, 0x000139e5,
0x1b80, 0x000139e7,
0x1b80, 0x54bf39f5,
0x1b80, 0x54bf39f7,
0x1b80, 0x54c03a05,
0x1b80, 0x54c03a07,
0x1b80, 0x54a33a15,
0x1b80, 0x54a33a17,
0x1b80, 0x54c13a25,
0x1b80, 0x54c13a27,
0x1b80, 0x54a43a35,
0x1b80, 0x54a43a37,
0x1b80, 0x4c183a45,
0x1b80, 0x4c183a47,
0x1b80, 0xbf073a55,
0x1b80, 0xbf073a57,
0x1b80, 0x54c23a65,
0x1b80, 0x54c23a67,
0x1b80, 0x54a43a75,
0x1b80, 0x54a43a77,
0x1b80, 0xbf043a85,
0x1b80, 0xbf043a87,
0x1b80, 0x54c13a95,
0x1b80, 0x54c13a97,
0x1b80, 0x54a33aa5,
0x1b80, 0x54a33aa7,
0x1b80, 0xbf013ab5,
0x1b80, 0xbf013ab7,
0x1b80, 0xe3ec3ac5,
0x1b80, 0xe3ec3ac7,
0x1b80, 0x54df3ad5,
0x1b80, 0x54df3ad7,
0x1b80, 0x00013ae5,
0x1b80, 0x00013ae7,
0x1b80, 0x54bf3af5,
0x1b80, 0x54bf3af7,
0x1b80, 0x54e53b05,
0x1b80, 0x54e53b07,
0x1b80, 0x050a3b15,
0x1b80, 0x050a3b17,
0x1b80, 0x54df3b25,
0x1b80, 0x54df3b27,
0x1b80, 0x00013b35,
0x1b80, 0x00013b37,
0x1b80, 0x7f403b45,
0x1b80, 0x7f403b47,
0x1b80, 0x7e003b55,
0x1b80, 0x7e003b57,
0x1b80, 0x7d003b65,
0x1b80, 0x7d003b67,
0x1b80, 0x55013b75,
0x1b80, 0x55013b77,
0x1b80, 0x5c313b85,
0x1b80, 0x5c313b87,
0x1b80, 0xe3803b95,
0x1b80, 0xe3803b97,
0x1b80, 0xe3843ba5,
0x1b80, 0xe3843ba7,
0x1b80, 0x54803bb5,
0x1b80, 0x54803bb7,
0x1b80, 0x54003bc5,
0x1b80, 0x54003bc7,
0x1b80, 0x54813bd5,
0x1b80, 0x54813bd7,
0x1b80, 0x54003be5,
0x1b80, 0x54003be7,
0x1b80, 0x54823bf5,
0x1b80, 0x54823bf7,
0x1b80, 0x54003c05,
0x1b80, 0x54003c07,
0x1b80, 0xe39f3c15,
0x1b80, 0xe39f3c17,
0x1b80, 0xbfed3c25,
0x1b80, 0xbfed3c27,
0x1b80, 0x30193c35,
0x1b80, 0x30193c37,
0x1b80, 0x74023c45,
0x1b80, 0x74023c47,
0x1b80, 0x003f3c55,
0x1b80, 0x003f3c57,
0x1b80, 0x74003c65,
0x1b80, 0x74003c67,
0x1b80, 0x00023c75,
0x1b80, 0x00023c77,
0x1b80, 0x00013c85,
0x1b80, 0x00013c87,
0x1b80, 0x00063c95,
0x1b80, 0x00063c97,
0x1b80, 0x5a803ca5,
0x1b80, 0x5a803ca7,
0x1b80, 0x5a003cb5,
0x1b80, 0x5a003cb7,
0x1b80, 0x92003cc5,
0x1b80, 0x92003cc7,
0x1b80, 0x00013cd5,
0x1b80, 0x00013cd7,
0x1b80, 0x5b8f3ce5,
0x1b80, 0x5b8f3ce7,
0x1b80, 0x5b0f3cf5,
0x1b80, 0x5b0f3cf7,
0x1b80, 0x91003d05,
0x1b80, 0x91003d07,
0x1b80, 0x00013d15,
0x1b80, 0x00013d17,
0x1b80, 0x00063d25,
0x1b80, 0x00063d27,
0x1b80, 0x5d803d35,
0x1b80, 0x5d803d37,
0x1b80, 0x5e563d45,
0x1b80, 0x5e563d47,
0x1b80, 0x00043d55,
0x1b80, 0x00043d57,
0x1b80, 0x4d083d65,
0x1b80, 0x4d083d67,
0x1b80, 0x57103d75,
0x1b80, 0x57103d77,
0x1b80, 0x57003d85,
0x1b80, 0x57003d87,
0x1b80, 0x4d003d95,
0x1b80, 0x4d003d97,
0x1b80, 0x00063da5,
0x1b80, 0x00063da7,
0x1b80, 0x5d003db5,
0x1b80, 0x5d003db7,
0x1b80, 0x00043dc5,
0x1b80, 0x00043dc7,
0x1b80, 0x00013dd5,
0x1b80, 0x00013dd7,
0x1b80, 0x549f3de5,
0x1b80, 0x549f3de7,
0x1b80, 0x54ff3df5,
0x1b80, 0x54ff3df7,
0x1b80, 0x54003e05,
0x1b80, 0x54003e07,
0x1b80, 0x00013e15,
0x1b80, 0x00013e17,
0x1b80, 0x5c313e25,
0x1b80, 0x5c313e27,
0x1b80, 0x07143e35,
0x1b80, 0x07143e37,
0x1b80, 0x54003e45,
0x1b80, 0x54003e47,
0x1b80, 0x5c323e55,
0x1b80, 0x5c323e57,
0x1b80, 0x00013e65,
0x1b80, 0x00013e67,
0x1b80, 0x5c323e75,
0x1b80, 0x5c323e77,
0x1b80, 0x07143e85,
0x1b80, 0x07143e87,
0x1b80, 0x54003e95,
0x1b80, 0x54003e97,
0x1b80, 0x5c313ea5,
0x1b80, 0x5c313ea7,
0x1b80, 0x00013eb5,
0x1b80, 0x00013eb7,
0x1b80, 0x4c983ec5,
0x1b80, 0x4c983ec7,
0x1b80, 0x4c183ed5,
0x1b80, 0x4c183ed7,
0x1b80, 0x00013ee5,
0x1b80, 0x00013ee7,
0x1b80, 0x5c323ef5,
0x1b80, 0x5c323ef7,
0x1b80, 0x62043f05,
0x1b80, 0x62043f07,
0x1b80, 0x63033f15,
0x1b80, 0x63033f17,
0x1b80, 0x66073f25,
0x1b80, 0x66073f27,
0x1b80, 0x7b403f35,
0x1b80, 0x7b403f37,
0x1b80, 0x7a003f45,
0x1b80, 0x7a003f47,
0x1b80, 0x79003f55,
0x1b80, 0x79003f57,
0x1b80, 0x7f403f65,
0x1b80, 0x7f403f67,
0x1b80, 0x7e003f75,
0x1b80, 0x7e003f77,
0x1b80, 0x7d003f85,
0x1b80, 0x7d003f87,
0x1b80, 0x09013f95,
0x1b80, 0x09013f97,
0x1b80, 0x0c013fa5,
0x1b80, 0x0c013fa7,
0x1b80, 0x0ba63fb5,
0x1b80, 0x0ba63fb7,
0x1b80, 0x00013fc5,
0x1b80, 0x00013fc7,
0x1b80, 0x00000006,
0x1b80, 0x00000002,
};
......
......@@ -12,6 +12,9 @@ extern const struct rtw_table rtw8822c_bb_pg_type0_tbl;
extern const struct rtw_table rtw8822c_rf_a_tbl;
extern const struct rtw_table rtw8822c_rf_b_tbl;
extern const struct rtw_table rtw8822c_txpwr_lmt_type0_tbl;
extern const struct rtw_table rtw8822c_dpk_afe_no_dpk_tbl;
extern const struct rtw_table rtw8822c_dpk_afe_is_dpk_tbl;
extern const struct rtw_table rtw8822c_dpk_mac_bb_tbl;
extern const struct rtw_table rtw8822c_array_mp_cal_init_tbl;
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment