summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarty Jones2025-06-07 23:02:25 +0000
committerHauke Mehrtens2025-06-08 14:10:40 +0000
commit4a1aca53761643404a81f8023eb16b53142423df (patch)
tree157f6d560fcf32b7f5b783f976fff727323e5271
parentb44f85f51cbe63d1994917d543d998fccf826dce (diff)
downloadopenwrt-4a1aca53761643404a81f8023eb16b53142423df.tar.gz
mac80211: realtek: rtw88: sync with v6.16
Renamed 046..051 pending patches with the merged tag/hash. Two patches were skipped, they make use of WQ_BH present since v6.14: https://github.com/torvalds/linux/commit/13221be72034d1c34630ab124c43438aefe7e656 https://github.com/torvalds/linux/commit/3e3aa566dd1803f1697530de6c8489a8350765b3 Manually refreshed 062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch Manually refreshed 063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch Manually backported 090-v6.15-wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch git log --no-merges --pretty=oneline --abbrev-commit 4c2c372de...0daa521a drivers/net/wireless/realtek/rtw88: 4c2c372de2e1 wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds f24d0d8c3cd7 wifi: rtw88: Fix the random "error beacon valid" messages for USB 80fe0bc1659c wifi: rtw88: usb: Upload the firmware in bigger chunks 490340faddea wifi: rtw88: usb: Reduce control message timeout to 500 ms b7f0cc647e52 wifi: rtw88: rtw8822bu VID/PID for BUFFALO WI-U2-866DM 2c17afde9ff6 wifi: rtw88: Handle RTL8723D(S) with blank efuse 0ffa1ba81b35 wifi: rtw88: Fix RX aggregation settings for RTL8723DS 20d3c19bd8f9 wifi: rtw88: do not ignore hardware read error during DPK fc5f5a0ec463 wifi: rtw88: sdio: call rtw_sdio_indicate_tx_status unconditionally b2effcdc2379 wifi: rtw88: sdio: map mgmt frames to queue TX_DESC_QSEL_MGMT 581cf3a9cb61 wifi: rtw88: Fix the module names printed in dmesg b8d49bb8d16a wifi: rtw88: Don't set SUPPORTS_AMSDU_IN_AMPDU for RTL8814AU 0d2a88690e58 wifi: rtw88: Set AMPDU factor to hardware for RTL8814A dcbb7bb3a364 wifi: rtw88: usb: Enable RX aggregation for RTL8814AU bf1103654df9 wifi: rtw88: usb: Enable switching the RTL8814AU to USB 3 625fbc16524a wifi: rtw88: usb: Remove redundant 'flush_workqueue()' calls 5c4cf36c538b wifi: rtw88: sdio: Remove redundant 'flush_workqueue()' calls d58ad77d5cc2 wifi: rtw88: Add __nonstring annotations for unterminated strings deb3ddeb1865 wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers bad060e8a425 wifi: rtw88: Add rtw8814au.c dad8e8793102 wifi: rtw88: Add rtw8814ae.c 1a7545784642 wifi: rtw88: Add rtw8814a.{c,h} e38246889cc9 wifi: rtw88: Add rtw8814a_table.c (part 2/2) f4debfcb1b3c wifi: rtw88: Add rtw8814a_table.c (part 1/2) 679ec431477c wifi: rtw88: Add some definitions for RTL8814AU c374281f8285 wifi: rtw88: Extend rtw_debugfs_get_tx_pwr_tbl() for RTL8814AU cfebabdd351e wifi: rtw88: Extend rtw_debugfs_get_phy_info() for RTL8814AU 8b42c46cf665 wifi: rtw88: Extend rtw_phy_config_swing_table() for RTL8814AU 053a7aace020 wifi: rtw88: Fix rtw_rx_phy_stat() for RTL8814AU 6be7544d19fc wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU c7eea1ba05ca wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU 86d04f8f991a wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 e66bca16638e wifi: rtw88: Fix rtw_mac_power_switch() for RTL8814AU 80c4668d024f wifi: rtw88: Add support for Mercusys MA30N and D-Link DWA-T185 rev. A1 9f00e2218e15 wifi: rtw88: Fix rtw_update_sta_info() for RTL8814AU 0f98a5959657 wifi: rtw88: Extend TX power stuff for 3-4 spatial streams ad815f392003 wifi: rtw88: Rename RTW_RATE_SECTION_MAX to RTW_RATE_SECTION_NUM e66f3b5c7535 wifi: rtw88: Constify some more structs and arrays 8f0076726b66 wifi: rtw88: Extend rtw_fw_send_ra_info() for RTL8814AU d80e7d9b6ba3 wifi: rtw88: Extend rf_base_addr and rf_sipi_addr for RTL8814AU 62f726848da4 wifi: rtw88: Extend struct rtw_pwr_track_tbl for RTL8814AU 9e8243025cc0 wifi: rtw88: Fix download_firmware_validate() for RTL8814AU 8425f5c8f04d wifi: rtw88: Fix __rtw_download_firmware() for RTL8814AU 105dc94233e4 wifi: rtw88: Fix a typo of debug message in rtw8723d_iqk_check_tx_failed() 0d1d165eff9d wifi: rtw88: Don't use static local variable in rtw8821c_set_tx_power_index_by_rate 00451eb3bec7 wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate b4bfbc50b1b9 wifi: rtw88: add RTW88_LEDS depends on LEDS_CLASS to Kconfig 4b6652bc6d8d wifi: rtw88: Add support for LED blinking fb2fcfbe5eef wifi: rtw88: sdio: Fix disconnection after beacon loss a806a8160a0f wifi: rtw88: 8703b: Fix RX/TX issues 5ad483955acc wifi: rtw88: Delete rf_type member of struct rtw_sta_info 5b1b9545262b wifi: rtw88: Add USB PHY configuration not backported (3e3aa566dd18 wifi: rtw88: usb: Preallocate and reuse the RX skbs) not backported (13221be72034 wifi: rtw88: Handle C2H_ADAPTIVITY in rtw_fw_c2h_cmd_handle() ) e9048e2935f7 wifi: rtw88: usb: Copy instead of cloning the RX skb 74a72c367573 wifi: rtw88: 8821a/8812a: Set ptct_efuse_size to 0 59ab27a9f20f wifi: rtw88: 8812a: Support RFE type 2 Signed-off-by: Marty Jones <mj8263788@gmail.com> Link: https://github.com/openwrt/openwrt/pull/19052 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/kernel/mac80211/patches/rtl/046-v6.14-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch (renamed from package/kernel/mac80211/patches/rtl/046-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch)10
-rw-r--r--package/kernel/mac80211/patches/rtl/047-v6.14-wifi-rtw88-8812au-Add-more-device-IDs.patch (renamed from package/kernel/mac80211/patches/rtl/047-wifi-rtw88-8812au-Add-more-device-IDs.patch)6
-rw-r--r--package/kernel/mac80211/patches/rtl/048-v6.14-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch (renamed from package/kernel/mac80211/patches/rtl/051-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch)8
-rw-r--r--package/kernel/mac80211/patches/rtl/049-v6.14-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch (renamed from package/kernel/mac80211/patches/rtl/048-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch)38
-rw-r--r--package/kernel/mac80211/patches/rtl/050-v6.14-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch (renamed from package/kernel/mac80211/patches/rtl/050-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch)8
-rw-r--r--package/kernel/mac80211/patches/rtl/051-v6.14-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch (renamed from package/kernel/mac80211/patches/rtl/049-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch)26
-rw-r--r--package/kernel/mac80211/patches/rtl/052-v6.14-wifi-rtw88-add-__packed-attribute-to-efuse-layout-st.patch195
-rw-r--r--package/kernel/mac80211/patches/rtl/053-v6.14-wifi-rtw88-8812a-Support-RFE-type-2.patch28
-rw-r--r--package/kernel/mac80211/patches/rtl/054-v6.14-wifi-rtw88-8821a-8812a-Set-ptct_efuse_size-to-0.patch51
-rw-r--r--package/kernel/mac80211/patches/rtl/055-v6.14-wifi-rtw88-usb-Copy-instead-of-cloning-the-RX-skb.patch130
-rw-r--r--package/kernel/mac80211/patches/rtl/058-v6.14-wifi-rtw88-Add-USB-PHY-configuration.patch141
-rw-r--r--package/kernel/mac80211/patches/rtl/059-v6.14-wifi-rtw88-Delete-rf_type-member-of-struct-rtw_sta_i.patch60
-rw-r--r--package/kernel/mac80211/patches/rtl/060-v6.14-wifi-rtw88-8703b-Fix-RX-TX-issues.patch59
-rw-r--r--package/kernel/mac80211/patches/rtl/061-v6.14-wifi-rtw88-sdio-Fix-disconnection-after-beacon-loss.patch31
-rw-r--r--package/kernel/mac80211/patches/rtl/062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch424
-rw-r--r--package/kernel/mac80211/patches/rtl/063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch73
-rw-r--r--package/kernel/mac80211/patches/rtl/064-v6.14.9-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch68
-rw-r--r--package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch71
-rw-r--r--package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch39
-rw-r--r--package/kernel/mac80211/patches/rtl/067-v6.14.9-wifi-rtw88-Fix-__rtw_download_firmware-for-RTL8814AU.patch39
-rw-r--r--package/kernel/mac80211/patches/rtl/068-v6.14.9-wifi-rtw88-Fix-download_firmware_validate-for-RTL881.patch39
-rw-r--r--package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch46
-rw-r--r--package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch32
-rw-r--r--package/kernel/mac80211/patches/rtl/071-v6.14.9-wifi-rtw88-Extend-rtw_fw_send_ra_info-for-RTL8814AU.patch70
-rw-r--r--package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch213
-rw-r--r--package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch227
-rw-r--r--package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch369
-rw-r--r--package/kernel/mac80211/patches/rtl/075-v6.14.9-wifi-rtw88-Fix-rtw_update_sta_info-for-RTL8814AU.patch61
-rw-r--r--package/kernel/mac80211/patches/rtl/076-v6.14-wifi-rtw88-Add-support-for-Mercusys-MA30N-and-D-Link.patch31
-rw-r--r--package/kernel/mac80211/patches/rtl/077-v6.14.9-wifi-rtw88-Fix-rtw_mac_power_switch-for-RTL8814AU.patch27
-rw-r--r--package/kernel/mac80211/patches/rtl/078-v6.14.9-wifi-rtw88-Fix-rtw_desc_to_mcsrate-to-handle-MCS16-3.patch32
-rw-r--r--package/kernel/mac80211/patches/rtl/079-v6.14.9-wifi-rtw88-Fix-rtw_init_ht_cap-for-RTL8814AU.patch49
-rw-r--r--package/kernel/mac80211/patches/rtl/080-v6.14.9-wifi-rtw88-Fix-rtw_init_vht_cap-for-RTL8814AU.patch58
-rw-r--r--package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch54
-rw-r--r--package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch75
-rw-r--r--package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch86
-rw-r--r--package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch65
-rw-r--r--package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch200
-rw-r--r--package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch12573
-rw-r--r--package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch11450
-rw-r--r--package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch2343
-rw-r--r--package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch50
-rw-r--r--package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch73
-rw-r--r--package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch34
-rw-r--r--package/kernel/mac80211/patches/rtl/091-v6.15wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch147
-rw-r--r--package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch36
-rw-r--r--package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch44
-rw-r--r--package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch32
-rw-r--r--package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch28
-rw-r--r--package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch192
-rw-r--r--package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch169
-rw-r--r--package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch230
-rw-r--r--package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch36
-rw-r--r--package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch37
-rw-r--r--package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch32
-rw-r--r--package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch44
-rw-r--r--package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch198
-rw-r--r--package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch27
-rw-r--r--package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch52
-rw-r--r--package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch214
-rw-r--r--package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch73
-rw-r--r--package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch38
62 files changed, 31355 insertions, 36 deletions
diff --git a/package/kernel/mac80211/patches/rtl/046-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch b/package/kernel/mac80211/patches/rtl/046-v6.14-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch
index a83094b3c3..d1e268c79b 100644
--- a/package/kernel/mac80211/patches/rtl/046-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch
+++ b/package/kernel/mac80211/patches/rtl/046-v6.14-wifi-rtw88-8821au-Add-additional-devices-to-the-USB_.patch
@@ -1,14 +1,16 @@
-From ff5a1c94e53c0d24f610c2c30add82f75b728737 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger@gmail.com>
+From 7b5ce65d90187f0944e70dc5741aa0edfac926f4 Mon Sep 17 00:00:00 2001
+From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Wed, 6 Nov 2024 15:55:31 +0200
-Subject: [PATCH 1/6] wifi: rtw88: 8821au: Add additional devices to the
- USB_DEVICE list
+Subject: [PATCH] wifi: rtw88: 8821au: Add additional devices to the USB_DEVICE
+ list
These are the entries that Nick Morrow provided. From
https://github.com/morrownr/8821au-20210708
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/da05b866-a9ff-428c-a008-35e8cf200a98@gmail.com
---
.../net/wireless/realtek/rtw88/rtw8821au.c | 52 ++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/package/kernel/mac80211/patches/rtl/047-wifi-rtw88-8812au-Add-more-device-IDs.patch b/package/kernel/mac80211/patches/rtl/047-v6.14-wifi-rtw88-8812au-Add-more-device-IDs.patch
index a93f9219d9..e03f246164 100644
--- a/package/kernel/mac80211/patches/rtl/047-wifi-rtw88-8812au-Add-more-device-IDs.patch
+++ b/package/kernel/mac80211/patches/rtl/047-v6.14-wifi-rtw88-8812au-Add-more-device-IDs.patch
@@ -1,12 +1,14 @@
-From d21ad2e4edfb64d3f32685607a457576eea3c5cd Mon Sep 17 00:00:00 2001
+From 1ee6ff9ae3c1a9eda9081f9db04f85d3a7352d38 Mon Sep 17 00:00:00 2001
From: Nick Morrow <usbwifi2024@gmail.com>
Date: Wed, 6 Nov 2024 15:57:10 +0200
-Subject: [PATCH 2/6] wifi: rtw88: 8812au: Add more device IDs
+Subject: [PATCH] wifi: rtw88: 8812au: Add more device IDs
From https://github.com/morrownr/8812au-20210820.
Signed-off-by: Nick Morrow <usbwifi2024@gmail.com>
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/31b7ee6b-f96d-43e0-a32f-a9eb1174a0c1@gmail.com
---
.../net/wireless/realtek/rtw88/rtw8812au.c | 68 ++++++++++++++++++-
1 file changed, 67 insertions(+), 1 deletion(-)
diff --git a/package/kernel/mac80211/patches/rtl/051-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch b/package/kernel/mac80211/patches/rtl/048-v6.14-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch
index e4e26c7975..bf0bcbf189 100644
--- a/package/kernel/mac80211/patches/rtl/051-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch
+++ b/package/kernel/mac80211/patches/rtl/048-v6.14-wifi-rtw88-Add-additional-USB-IDs-for-RTL8812BU.patch
@@ -1,7 +1,7 @@
-From acadf3a63b39ad03167a633fa3cea8c0fc2ab87f Mon Sep 17 00:00:00 2001
+From d4c4903508f9e1b2bfec88f777718484e27343fb Mon Sep 17 00:00:00 2001
From: Nick Morrow <usbwifi2024@gmail.com>
Date: Thu, 7 Nov 2024 08:28:46 +0800
-Subject: [PATCH 6/6] wifi: rtw88: Add additional USB IDs for RTL8812BU
+Subject: [PATCH] wifi: rtw88: Add additional USB IDs for RTL8812BU
Add three additional USB IDs found in
https://github.com/morrownr/88x2bu-20210702
@@ -9,7 +9,9 @@ to support more RTL8812BU devices.
Signed-off-by: Nick Morrow <usbwifi2024@gmail.com>
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
-Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
+Reviewed-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20241107002846.13748-1-zenmchen@gmail.com
---
drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/package/kernel/mac80211/patches/rtl/048-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch b/package/kernel/mac80211/patches/rtl/049-v6.14-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch
index 33ca91d77d..694c32f79d 100644
--- a/package/kernel/mac80211/patches/rtl/048-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch
+++ b/package/kernel/mac80211/patches/rtl/049-v6.14-wifi-rtw88-usb-Support-USB-3-with-RTL8812AU.patch
@@ -1,14 +1,16 @@
-From 213dfa630285bb0241f3eaeb778db8ff128f10ba Mon Sep 17 00:00:00 2001
+From 82a35723a67c29f685d7b518962154a73b7163a2 Mon Sep 17 00:00:00 2001
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
-Date: Fri, 8 Nov 2024 01:41:08 +0200
-Subject: [PATCH 3/6] wifi: rtw88: usb: Support USB 3 with RTL8812AU
+Date: Thu, 14 Nov 2024 17:46:08 +0200
+Subject: [PATCH] wifi: rtw88: usb: Support USB 3 with RTL8812AU
Add the function to automatically switch the RTL8812AU into USB 3 mode.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/19cda72b-f1f1-4b69-8369-0e4376b646bf@gmail.com
---
- drivers/net/wireless/realtek/rtw88/usb.c | 34 ++++++++++++++++++++++--
- 1 file changed, 32 insertions(+), 2 deletions(-)
+ drivers/net/wireless/realtek/rtw88/usb.c | 44 ++++++++++++++++++++++--
+ 1 file changed, 42 insertions(+), 2 deletions(-)
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -45,24 +47,38 @@ Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
static int rtw_usb_switch_mode_new(struct rtw_dev *rtwdev)
{
enum usb_device_speed cur_speed;
-@@ -983,7 +1009,8 @@ static int rtw_usb_switch_mode(struct rt
+@@ -979,11 +1005,22 @@ static int rtw_usb_switch_mode_new(struc
+ return 1;
+ }
+
++static bool rtw_usb3_chip_old(u8 chip_id)
++{
++ return chip_id == RTW_CHIP_TYPE_8812A;
++}
++
++static bool rtw_usb3_chip_new(u8 chip_id)
++{
++ return chip_id == RTW_CHIP_TYPE_8822C ||
++ chip_id == RTW_CHIP_TYPE_8822B;
++}
++
+ static int rtw_usb_switch_mode(struct rtw_dev *rtwdev)
{
u8 id = rtwdev->chip->id;
- if (id != RTW_CHIP_TYPE_8822C && id != RTW_CHIP_TYPE_8822B)
-+ if (id != RTW_CHIP_TYPE_8822C && id != RTW_CHIP_TYPE_8822B &&
-+ id != RTW_CHIP_TYPE_8812A)
++ if (!rtw_usb3_chip_new(id) && !rtw_usb3_chip_old(id))
return 0;
if (!rtwdev->efuse.usb_mode_switch) {
-@@ -998,7 +1025,10 @@ static int rtw_usb_switch_mode(struct rt
+@@ -998,7 +1035,10 @@ static int rtw_usb_switch_mode(struct rt
return 0;
}
- return rtw_usb_switch_mode_new(rtwdev);
-+ if (id == RTW_CHIP_TYPE_8812A)
++ if (rtw_usb3_chip_old(id))
+ return rtw_usb_switch_mode_old(rtwdev);
-+ else /* RTL8822CU, RTL8822BU */
++ else
+ return rtw_usb_switch_mode_new(rtwdev);
}
diff --git a/package/kernel/mac80211/patches/rtl/050-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch b/package/kernel/mac80211/patches/rtl/050-v6.14-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch
index 798a59351f..3e66f5b249 100644
--- a/package/kernel/mac80211/patches/rtl/050-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch
+++ b/package/kernel/mac80211/patches/rtl/050-v6.14-wifi-rtlwifi-rtl8821ae-phy-restore-removed-code-to-f.patch
@@ -1,8 +1,8 @@
-From 927dcd0ab53f39ee00a2d1f204b5aac77e28fcf9 Mon Sep 17 00:00:00 2001
+From 5e5903a442bb889a62a0f5d89ac33e53ab08592c Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.i.king@gmail.com>
Date: Wed, 6 Nov 2024 15:46:42 +0000
-Subject: [PATCH 5/6] wifi: rtlwifi: rtl8821ae: phy: restore removed code to
- fix infinite loop
+Subject: [PATCH] wifi: rtlwifi: rtl8821ae: phy: restore removed code to fix
+ infinite loop
A previous clean-up fix removed the assignment of v2 inside a while loop
that turned it into an infinite loop. Fix this by restoring the assignment
@@ -12,6 +12,8 @@ Fixes: cda37445718d ("wifi: rtlwifi: rtl8821ae: phy: remove some useless code")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Tested-by: Ping-Ke Shih <pkshih@realtek.com>
Reviewed-by: Su Hui <suhui@nfschina.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20241106154642.1627886-1-colin.i.king@gmail.com
---
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/package/kernel/mac80211/patches/rtl/049-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch b/package/kernel/mac80211/patches/rtl/051-v6.14-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch
index d4c3ef3495..1debe2dc73 100644
--- a/package/kernel/mac80211/patches/rtl/049-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch
+++ b/package/kernel/mac80211/patches/rtl/051-v6.14-wifi-rtw88-usb-Enable-RX-aggregation-for-8821au-8812.patch
@@ -1,7 +1,7 @@
-From 2b38362bd3b8e0a3691f0a8e82444a54f702e384 Mon Sep 17 00:00:00 2001
+From ce5dea83ee8f945203144fb891fdcb978216e45a Mon Sep 17 00:00:00 2001
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
-Date: Fri, 8 Nov 2024 01:43:50 +0200
-Subject: [PATCH 4/6] wifi: rtw88: usb: Enable RX aggregation for 8821au/8812au
+Date: Thu, 14 Nov 2024 17:48:09 +0200
+Subject: [PATCH] wifi: rtw88: usb: Enable RX aggregation for 8821au/8812au
USB RX aggregation improves the RX speed on certain ARM systems, like
the NanoPi NEO Core2. With RTL8811AU, before: 30 Mbps, after: 224 Mbps.
@@ -13,13 +13,15 @@ of 7 RTL8812AU frequently tries to aggregate more frames than will fit
in 32768 bytes. Use a size of 6 instead.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/63012163-a425-4b15-b830-43f279c06b73@gmail.com
---
- drivers/net/wireless/realtek/rtw88/usb.c | 30 ++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
+ drivers/net/wireless/realtek/rtw88/usb.c | 28 ++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
-@@ -789,6 +789,32 @@ static void rtw_usb_dynamic_rx_agg_v1(st
+@@ -789,6 +789,30 @@ static void rtw_usb_dynamic_rx_agg_v1(st
rtw_write16(rtwdev, REG_RXDMA_AGG_PG_TH, val16);
}
@@ -29,7 +31,10 @@ Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+ u8 size, timeout;
+ u16 val16;
+
-+ if (rtwusb->udev->speed == USB_SPEED_SUPER) {
++ if (!enable) {
++ size = 0x0;
++ timeout = 0x1;
++ } else if (rtwusb->udev->speed == USB_SPEED_SUPER) {
+ size = 0x6;
+ timeout = 0x1a;
+ } else {
@@ -37,11 +42,6 @@ Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+ timeout = 0x20;
+ }
+
-+ if (!enable) {
-+ size = 0x0;
-+ timeout = 0x1;
-+ }
-+
+ val16 = u16_encode_bits(size, BIT_RXDMA_AGG_PG_TH) |
+ u16_encode_bits(timeout, BIT_DMA_AGG_TO_V1);
+
@@ -52,7 +52,7 @@ Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
static void rtw_usb_dynamic_rx_agg(struct rtw_dev *rtwdev, bool enable)
{
switch (rtwdev->chip->id) {
-@@ -797,6 +823,10 @@ static void rtw_usb_dynamic_rx_agg(struc
+@@ -797,6 +821,10 @@ static void rtw_usb_dynamic_rx_agg(struc
case RTW_CHIP_TYPE_8821C:
rtw_usb_dynamic_rx_agg_v1(rtwdev, enable);
break;
diff --git a/package/kernel/mac80211/patches/rtl/052-v6.14-wifi-rtw88-add-__packed-attribute-to-efuse-layout-st.patch b/package/kernel/mac80211/patches/rtl/052-v6.14-wifi-rtw88-add-__packed-attribute-to-efuse-layout-st.patch
new file mode 100644
index 0000000000..6132bb7d41
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/052-v6.14-wifi-rtw88-add-__packed-attribute-to-efuse-layout-st.patch
@@ -0,0 +1,195 @@
+From 0daa521a1c8c29ffbefe6530f0d276e74e2749d0 Mon Sep 17 00:00:00 2001
+From: Ping-Ke Shih <pkshih@realtek.com>
+Date: Thu, 12 Dec 2024 13:42:03 +0800
+Subject: [PATCH] wifi: rtw88: add __packed attribute to efuse layout struct
+
+The layout struct of efuse should not do address alignment by compiler.
+Otherwise it leads unexpected layout and size for certain arch suc as arm.
+In x86-64, the results are identical before and after this patch.
+
+Also adjust bit-field to prevent over adjacent byte to avoid warning:
+ rtw88/rtw8822b.h:66:1: note: offset of packed bit-field `res2` has changed in GCC 4.4
+ 66 | } __packed;
+ | ^
+
+Reported-by: kernel test robot <lkp@intel.com>
+Closes: https://lore.kernel.org/oe-kbuild-all/202412120131.qk0x6OhE-lkp@intel.com/
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20241212054203.135046-1-pkshih@realtek.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 4 ++--
+ drivers/net/wireless/realtek/rtw88/rtw8723x.h | 8 ++++----
+ drivers/net/wireless/realtek/rtw88/rtw8821c.h | 9 +++++----
+ drivers/net/wireless/realtek/rtw88/rtw8822b.h | 9 +++++----
+ drivers/net/wireless/realtek/rtw88/rtw8822c.h | 9 +++++----
+ 5 files changed, 21 insertions(+), 18 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -510,12 +510,12 @@ struct rtw_5g_txpwr_idx {
+ struct rtw_5g_vht_ns_pwr_idx_diff vht_2s_diff;
+ struct rtw_5g_vht_ns_pwr_idx_diff vht_3s_diff;
+ struct rtw_5g_vht_ns_pwr_idx_diff vht_4s_diff;
+-};
++} __packed;
+
+ struct rtw_txpwr_idx {
+ struct rtw_2g_txpwr_idx pwr_idx_2g;
+ struct rtw_5g_txpwr_idx pwr_idx_5g;
+-};
++} __packed;
+
+ struct rtw_channel_params {
+ u8 center_chan;
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
+@@ -47,7 +47,7 @@ struct rtw8723xe_efuse {
+ u8 device_id[2];
+ u8 sub_vendor_id[2];
+ u8 sub_device_id[2];
+-};
++} __packed;
+
+ struct rtw8723xu_efuse {
+ u8 res4[48]; /* 0xd0 */
+@@ -56,12 +56,12 @@ struct rtw8723xu_efuse {
+ u8 usb_option; /* 0x104 */
+ u8 res5[2]; /* 0x105 */
+ u8 mac_addr[ETH_ALEN]; /* 0x107 */
+-};
++} __packed;
+
+ struct rtw8723xs_efuse {
+ u8 res4[0x4a]; /* 0xd0 */
+ u8 mac_addr[ETH_ALEN]; /* 0x11a */
+-};
++} __packed;
+
+ struct rtw8723x_efuse {
+ __le16 rtl_id;
+@@ -96,7 +96,7 @@ struct rtw8723x_efuse {
+ struct rtw8723xu_efuse u;
+ struct rtw8723xs_efuse s;
+ };
+-};
++} __packed;
+
+ #define RTW8723X_IQK_ADDA_REG_NUM 16
+ #define RTW8723X_IQK_MAC8_REG_NUM 3
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
+@@ -27,7 +27,7 @@ struct rtw8821cu_efuse {
+ u8 res11[0xcf];
+ u8 package_type; /* 0x1fb */
+ u8 res12[0x4];
+-};
++} __packed;
+
+ struct rtw8821ce_efuse {
+ u8 mac_addr[ETH_ALEN]; /* 0xd0 */
+@@ -47,7 +47,8 @@ struct rtw8821ce_efuse {
+ u8 ltr_en:1;
+ u8 res1:2;
+ u8 obff:2;
+- u8 res2:3;
++ u8 res2_1:1;
++ u8 res2_2:2;
+ u8 obff_cap:2;
+ u8 res3:4;
+ u8 res4[3];
+@@ -63,7 +64,7 @@ struct rtw8821ce_efuse {
+ u8 res6:1;
+ u8 port_t_power_on_value:5;
+ u8 res7;
+-};
++} __packed;
+
+ struct rtw8821cs_efuse {
+ u8 res4[0x4a]; /* 0xd0 */
+@@ -101,7 +102,7 @@ struct rtw8821c_efuse {
+ struct rtw8821cu_efuse u;
+ struct rtw8821cs_efuse s;
+ };
+-};
++} __packed;
+
+ static inline void
+ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.h
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
+@@ -27,7 +27,7 @@ struct rtw8822bu_efuse {
+ u8 res11[0xcf];
+ u8 package_type; /* 0x1fb */
+ u8 res12[0x4];
+-};
++} __packed;
+
+ struct rtw8822be_efuse {
+ u8 mac_addr[ETH_ALEN]; /* 0xd0 */
+@@ -47,7 +47,8 @@ struct rtw8822be_efuse {
+ u8 ltr_en:1;
+ u8 res1:2;
+ u8 obff:2;
+- u8 res2:3;
++ u8 res2_1:1;
++ u8 res2_2:2;
+ u8 obff_cap:2;
+ u8 res3:4;
+ u8 res4[3];
+@@ -63,7 +64,7 @@ struct rtw8822be_efuse {
+ u8 res6:1;
+ u8 port_t_power_on_value:5;
+ u8 res7;
+-};
++} __packed;
+
+ struct rtw8822bs_efuse {
+ u8 res4[0x4a]; /* 0xd0 */
+@@ -103,7 +104,7 @@ struct rtw8822b_efuse {
+ struct rtw8822bu_efuse u;
+ struct rtw8822bs_efuse s;
+ };
+-};
++} __packed;
+
+ static inline void
+ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.h
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
+@@ -14,7 +14,7 @@ struct rtw8822cu_efuse {
+ u8 res1[3];
+ u8 mac_addr[ETH_ALEN]; /* 0x157 */
+ u8 res2[0x3d];
+-};
++} __packed;
+
+ struct rtw8822cs_efuse {
+ u8 res0[0x4a]; /* 0x120 */
+@@ -39,7 +39,8 @@ struct rtw8822ce_efuse {
+ u8 ltr_en:1;
+ u8 res1:2;
+ u8 obff:2;
+- u8 res2:3;
++ u8 res2_1:1;
++ u8 res2_2:2;
+ u8 obff_cap:2;
+ u8 res3:4;
+ u8 class_code[3];
+@@ -55,7 +56,7 @@ struct rtw8822ce_efuse {
+ u8 res6:1;
+ u8 port_t_power_on_value:5;
+ u8 res7;
+-};
++} __packed;
+
+ struct rtw8822c_efuse {
+ __le16 rtl_id;
+@@ -102,7 +103,7 @@ struct rtw8822c_efuse {
+ struct rtw8822cu_efuse u;
+ struct rtw8822cs_efuse s;
+ };
+-};
++} __packed;
+
+ enum rtw8822c_dpk_agc_phase {
+ RTW_DPK_GAIN_CHECK,
diff --git a/package/kernel/mac80211/patches/rtl/053-v6.14-wifi-rtw88-8812a-Support-RFE-type-2.patch b/package/kernel/mac80211/patches/rtl/053-v6.14-wifi-rtw88-8812a-Support-RFE-type-2.patch
new file mode 100644
index 0000000000..d59facb3f9
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/053-v6.14-wifi-rtw88-8812a-Support-RFE-type-2.patch
@@ -0,0 +1,28 @@
+From 59ab27a9f20f8de6f7989e8a8c3d97c04ed8199c Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 18 Dec 2024 02:13:22 +0200
+Subject: [PATCH] wifi: rtw88: 8812a: Support RFE type 2
+
+RF front end type 2 exists in the wild and can be treated like types
+0 and 1.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/2917c7fc-6d88-4007-b6a6-9130bd1991e5@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8812a.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
+@@ -985,6 +985,9 @@ static const struct rtw_rfe_def rtw8812a
+ [1] = { .phy_pg_tbl = &rtw8812a_bb_pg_tbl,
+ .txpwr_lmt_tbl = &rtw8812a_txpwr_lmt_tbl,
+ .pwr_track_tbl = &rtw8812a_rtw_pwr_track_tbl, },
++ [2] = { .phy_pg_tbl = &rtw8812a_bb_pg_tbl,
++ .txpwr_lmt_tbl = &rtw8812a_txpwr_lmt_tbl,
++ .pwr_track_tbl = &rtw8812a_rtw_pwr_track_tbl, },
+ [3] = { .phy_pg_tbl = &rtw8812a_bb_pg_rfe3_tbl,
+ .txpwr_lmt_tbl = &rtw8812a_txpwr_lmt_tbl,
+ .pwr_track_tbl = &rtw8812a_rtw_pwr_track_rfe3_tbl, },
diff --git a/package/kernel/mac80211/patches/rtl/054-v6.14-wifi-rtw88-8821a-8812a-Set-ptct_efuse_size-to-0.patch b/package/kernel/mac80211/patches/rtl/054-v6.14-wifi-rtw88-8821a-8812a-Set-ptct_efuse_size-to-0.patch
new file mode 100644
index 0000000000..3b5dea793a
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/054-v6.14-wifi-rtw88-8821a-8812a-Set-ptct_efuse_size-to-0.patch
@@ -0,0 +1,51 @@
+From 74a72c367573ad521becf6cc4d649e14387b3c64 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 18 Dec 2024 02:16:11 +0200
+Subject: [PATCH] wifi: rtw88: 8821a/8812a: Set ptct_efuse_size to 0
+
+Some RTL8812AU devices fail to probe:
+
+[ 12.478774] rtw_8812au 1-1.3:1.0: failed to dump efuse logical map
+[ 12.487712] rtw_8812au 1-1.3:1.0: failed to setup chip efuse info
+[ 12.487742] rtw_8812au 1-1.3:1.0: failed to setup chip information
+[ 12.491077] rtw_8812au: probe of 1-1.3:1.0 failed with error -22
+
+It turns out these chips don't need to "protect" any bytes at the end of
+the efuse.
+
+The original value of 96 was copied from rtw8821c.c.
+
+No one reported any failures with RTL8821AU yet, but the vendor driver
+uses the same efuse reading code for both chips.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/1a477adb-60c3-463c-b158-3f86c94cb821@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8812a.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8821a.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
+@@ -1027,7 +1027,7 @@ const struct rtw_chip_info rtw8812a_hw_s
+ .rx_buf_desc_sz = 8,
+ .phy_efuse_size = 512,
+ .log_efuse_size = 512,
+- .ptct_efuse_size = 96 + 1, /* TODO or just 18? */
++ .ptct_efuse_size = 0,
+ .txff_size = 131072,
+ .rxff_size = 16128,
+ .rsvd_drv_pg_num = 9,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
+@@ -1118,7 +1118,7 @@ const struct rtw_chip_info rtw8821a_hw_s
+ .rx_buf_desc_sz = 8,
+ .phy_efuse_size = 512,
+ .log_efuse_size = 512,
+- .ptct_efuse_size = 96 + 1, /* TODO or just 18? */
++ .ptct_efuse_size = 0,
+ .txff_size = 65536,
+ .rxff_size = 16128,
+ .rsvd_drv_pg_num = 8,
diff --git a/package/kernel/mac80211/patches/rtl/055-v6.14-wifi-rtw88-usb-Copy-instead-of-cloning-the-RX-skb.patch b/package/kernel/mac80211/patches/rtl/055-v6.14-wifi-rtw88-usb-Copy-instead-of-cloning-the-RX-skb.patch
new file mode 100644
index 0000000000..30f13f9d38
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/055-v6.14-wifi-rtw88-usb-Copy-instead-of-cloning-the-RX-skb.patch
@@ -0,0 +1,130 @@
+From e9048e2935f7d797c2ba047c15b705b57c2fa99a Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Thu, 19 Dec 2024 00:33:20 +0200
+Subject: [PATCH] wifi: rtw88: usb: Copy instead of cloning the RX skb
+
+"iperf3 -c 192.168.0.1 -R --udp -b 0" shows about 40% of datagrams
+are lost. Many torrents don't download faster than 3 MiB/s, probably
+because the Bittorrent protocol uses UDP. This is somehow related to
+the use of skb_clone() in the RX path.
+
+Don't use skb_clone(). Instead allocate a new skb for each 802.11 frame
+received and copy the data from the big (32768 byte) skb.
+
+With this patch, "iperf3 -c 192.168.0.1 -R --udp -b 0" shows only 1-2%
+of datagrams are lost, and torrents can reach download speeds of 36
+MiB/s.
+
+Tested with RTL8812AU and RTL8822CU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/8c9d4f9d-ebd8-4dc0-a0c4-9ebe430521dd@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 52 ++++++++++++++----------
+ 1 file changed, 31 insertions(+), 21 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -7,6 +7,7 @@
+ #include <linux/mutex.h>
+ #include "main.h"
+ #include "debug.h"
++#include "mac.h"
+ #include "reg.h"
+ #include "tx.h"
+ #include "rx.h"
+@@ -547,49 +548,58 @@ static void rtw_usb_rx_handler(struct wo
+ {
+ struct rtw_usb *rtwusb = container_of(work, struct rtw_usb, rx_work);
+ struct rtw_dev *rtwdev = rtwusb->rtwdev;
+- const struct rtw_chip_info *chip = rtwdev->chip;
+- u32 pkt_desc_sz = chip->rx_pkt_desc_sz;
+ struct ieee80211_rx_status rx_status;
+- u32 pkt_offset, next_pkt, urb_len;
+ struct rtw_rx_pkt_stat pkt_stat;
+- struct sk_buff *next_skb;
++ struct sk_buff *rx_skb;
+ struct sk_buff *skb;
++ u32 pkt_desc_sz = rtwdev->chip->rx_pkt_desc_sz;
++ u32 max_skb_len = pkt_desc_sz + PHY_STATUS_SIZE * 8 +
++ IEEE80211_MAX_MPDU_LEN_VHT_11454;
++ u32 pkt_offset, next_pkt, skb_len;
+ u8 *rx_desc;
+ int limit;
+
+ for (limit = 0; limit < 200; limit++) {
+- skb = skb_dequeue(&rtwusb->rx_queue);
+- if (!skb)
++ rx_skb = skb_dequeue(&rtwusb->rx_queue);
++ if (!rx_skb)
+ break;
+
+ if (skb_queue_len(&rtwusb->rx_queue) >= RTW_USB_MAX_RXQ_LEN) {
+ dev_dbg_ratelimited(rtwdev->dev, "failed to get rx_queue, overflow\n");
+- dev_kfree_skb_any(skb);
++ dev_kfree_skb_any(rx_skb);
+ continue;
+ }
+
+- urb_len = skb->len;
++ rx_desc = rx_skb->data;
+
+ do {
+- rx_desc = skb->data;
+ rtw_rx_query_rx_desc(rtwdev, rx_desc, &pkt_stat,
+ &rx_status);
+ pkt_offset = pkt_desc_sz + pkt_stat.drv_info_sz +
+ pkt_stat.shift;
+
+- next_pkt = round_up(pkt_stat.pkt_len + pkt_offset, 8);
++ skb_len = pkt_stat.pkt_len + pkt_offset;
++ if (skb_len > max_skb_len) {
++ rtw_dbg(rtwdev, RTW_DBG_USB,
++ "skipping too big packet: %u\n",
++ skb_len);
++ goto skip_packet;
++ }
++
++ skb = alloc_skb(skb_len, GFP_KERNEL);
++ if (!skb) {
++ rtw_dbg(rtwdev, RTW_DBG_USB,
++ "failed to allocate RX skb of size %u\n",
++ skb_len);
++ goto skip_packet;
++ }
+
+- if (urb_len >= next_pkt + pkt_desc_sz)
+- next_skb = skb_clone(skb, GFP_KERNEL);
+- else
+- next_skb = NULL;
++ skb_put_data(skb, rx_desc, skb_len);
+
+ if (pkt_stat.is_c2h) {
+- skb_trim(skb, pkt_stat.pkt_len + pkt_offset);
+ rtw_fw_c2h_cmd_rx_irqsafe(rtwdev, pkt_offset, skb);
+ } else {
+ skb_pull(skb, pkt_offset);
+- skb_trim(skb, pkt_stat.pkt_len);
+ rtw_update_rx_freq_for_invalid(rtwdev, skb,
+ &rx_status,
+ &pkt_stat);
+@@ -598,12 +608,12 @@ static void rtw_usb_rx_handler(struct wo
+ ieee80211_rx_irqsafe(rtwdev->hw, skb);
+ }
+
+- skb = next_skb;
+- if (skb)
+- skb_pull(skb, next_pkt);
++skip_packet:
++ next_pkt = round_up(skb_len, 8);
++ rx_desc += next_pkt;
++ } while (rx_desc + pkt_desc_sz < rx_skb->data + rx_skb->len);
+
+- urb_len -= next_pkt;
+- } while (skb);
++ dev_kfree_skb_any(rx_skb);
+ }
+ }
+
diff --git a/package/kernel/mac80211/patches/rtl/058-v6.14-wifi-rtw88-Add-USB-PHY-configuration.patch b/package/kernel/mac80211/patches/rtl/058-v6.14-wifi-rtw88-Add-USB-PHY-configuration.patch
new file mode 100644
index 0000000000..606c0fd6fc
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/058-v6.14-wifi-rtw88-Add-USB-PHY-configuration.patch
@@ -0,0 +1,141 @@
+From 5b1b9545262b5126a3c2776e7e64ff29765cbe6e Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 1 Jan 2025 18:16:32 +0200
+Subject: [PATCH] wifi: rtw88: Add USB PHY configuration
+
+Add some extra configuration for USB devices. Currently only RTL8822BU
+version (cut) D needs this. The new code makes use of the existing
+usb3_param_8822b array from rtw8822b.c.
+
+A user reported that TP-Link Archer T3U in USB 3 mode was randomly
+disconnecting from USB:
+
+[ 26.036502] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
+...
+[ 27.576491] usb 2-2: USB disconnect, device number 3
+[ 28.621528] usb 2-2: new SuperSpeed USB device number 4 using xhci_hcd
+...
+[ 45.984521] usb 2-2: USB disconnect, device number 4
+...
+[ 46.845585] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
+...
+[ 94.400380] usb 2-2: USB disconnect, device number 5
+...
+[ 95.590421] usb 2-2: new SuperSpeed USB device number 6 using xhci_hcd
+
+This patch fixes that.
+
+Link: https://github.com/lwfinger/rtw88/issues/262
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/9d312b14-0146-4be8-9c50-ef432234db50@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/reg.h | 10 ++++
+ drivers/net/wireless/realtek/rtw88/usb.c | 68 ++++++++++++++++++++++++
+ 2 files changed, 78 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/reg.h
++++ b/drivers/net/wireless/realtek/rtw88/reg.h
+@@ -871,7 +871,17 @@
+
+ #define REG_USB_MOD 0xf008
+ #define REG_USB3_RXITV 0xf050
++#define REG_USB2_PHY_ADR 0xfe40
++#define REG_USB2_PHY_DAT 0xfe41
++#define REG_USB2_PHY_CMD 0xfe42
++#define BIT_USB2_PHY_CMD_TRG 0x81
+ #define REG_USB_HRPWM 0xfe58
++#define REG_USB3_PHY_ADR 0xff0c
++#define REG_USB3_PHY_DAT_L 0xff0d
++#define REG_USB3_PHY_DAT_H 0xff0e
++#define BIT_USB3_PHY_ADR_WR BIT(7)
++#define BIT_USB3_PHY_ADR_RD BIT(6)
++#define BIT_USB3_PHY_ADR_MASK GENMASK(5, 0)
+
+ #define RF_MODE 0x00
+ #define RF_MODOPT 0x01
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -1079,6 +1079,71 @@ static int rtw_usb_switch_mode(struct rt
+ return rtw_usb_switch_mode_new(rtwdev);
+ }
+
++#define USB_REG_PAGE 0xf4
++#define USB_PHY_PAGE0 0x9b
++#define USB_PHY_PAGE1 0xbb
++
++static void rtw_usb_phy_write(struct rtw_dev *rtwdev, u8 addr, u16 data,
++ enum usb_device_speed speed)
++{
++ if (speed == USB_SPEED_SUPER) {
++ rtw_write8(rtwdev, REG_USB3_PHY_DAT_L, data & 0xff);
++ rtw_write8(rtwdev, REG_USB3_PHY_DAT_H, data >> 8);
++ rtw_write8(rtwdev, REG_USB3_PHY_ADR, addr | BIT_USB3_PHY_ADR_WR);
++ } else if (speed == USB_SPEED_HIGH) {
++ rtw_write8(rtwdev, REG_USB2_PHY_DAT, data);
++ rtw_write8(rtwdev, REG_USB2_PHY_ADR, addr);
++ rtw_write8(rtwdev, REG_USB2_PHY_CMD, BIT_USB2_PHY_CMD_TRG);
++ }
++}
++
++static void rtw_usb_page_switch(struct rtw_dev *rtwdev,
++ enum usb_device_speed speed, u8 page)
++{
++ if (speed == USB_SPEED_SUPER)
++ return;
++
++ rtw_usb_phy_write(rtwdev, USB_REG_PAGE, page, speed);
++}
++
++static void rtw_usb_phy_cfg(struct rtw_dev *rtwdev,
++ enum usb_device_speed speed)
++{
++ const struct rtw_intf_phy_para *para = NULL;
++ u16 offset;
++
++ if (!rtwdev->chip->intf_table)
++ return;
++
++ if (speed == USB_SPEED_SUPER)
++ para = rtwdev->chip->intf_table->usb3_para;
++ else if (speed == USB_SPEED_HIGH)
++ para = rtwdev->chip->intf_table->usb2_para;
++
++ if (!para)
++ return;
++
++ for ( ; para->offset != 0xffff; para++) {
++ if (!(para->cut_mask & BIT(rtwdev->hal.cut_version)))
++ continue;
++
++ offset = para->offset;
++
++ if (para->ip_sel == RTW_IP_SEL_MAC) {
++ rtw_write8(rtwdev, offset, para->value);
++ } else {
++ if (offset > 0x100)
++ rtw_usb_page_switch(rtwdev, speed, USB_PHY_PAGE1);
++ else
++ rtw_usb_page_switch(rtwdev, speed, USB_PHY_PAGE0);
++
++ offset &= 0xff;
++
++ rtw_usb_phy_write(rtwdev, offset, para->value, speed);
++ }
++ }
++}
++
+ int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
+ {
+ struct rtw_dev *rtwdev;
+@@ -1134,6 +1199,9 @@ int rtw_usb_probe(struct usb_interface *
+ goto err_destroy_rxwq;
+ }
+
++ rtw_usb_phy_cfg(rtwdev, USB_SPEED_HIGH);
++ rtw_usb_phy_cfg(rtwdev, USB_SPEED_SUPER);
++
+ ret = rtw_usb_switch_mode(rtwdev);
+ if (ret) {
+ /* Not a fail, but we do need to skip rtw_register_hw. */
diff --git a/package/kernel/mac80211/patches/rtl/059-v6.14-wifi-rtw88-Delete-rf_type-member-of-struct-rtw_sta_i.patch b/package/kernel/mac80211/patches/rtl/059-v6.14-wifi-rtw88-Delete-rf_type-member-of-struct-rtw_sta_i.patch
new file mode 100644
index 0000000000..6a4998e783
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/059-v6.14-wifi-rtw88-Delete-rf_type-member-of-struct-rtw_sta_i.patch
@@ -0,0 +1,60 @@
+From 5ad483955acc85dc91b88c7b76dc1429e8ba33bc Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 1 Jan 2025 18:27:35 +0200
+Subject: [PATCH] wifi: rtw88: Delete rf_type member of struct rtw_sta_info
+
+It's not used for anything.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/b80f7904-c6b4-4d12-a5f9-69ab9b965732@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 9 ++-------
+ drivers/net/wireless/realtek/rtw88/main.h | 1 -
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -1217,7 +1217,6 @@ void rtw_update_sta_info(struct rtw_dev
+ u8 wireless_set;
+ u8 bw_mode;
+ u8 rate_id;
+- u8 rf_type = RF_1T1R;
+ u8 stbc_en = 0;
+ u8 ldpc_en = 0;
+ u8 tx_num = 1;
+@@ -1302,13 +1301,10 @@ void rtw_update_sta_info(struct rtw_dev
+ break;
+ }
+
+- if (sta->deflink.vht_cap.vht_supported && ra_mask & 0xffc00000) {
++ if (sta->deflink.vht_cap.vht_supported && ra_mask & 0xffc00000)
+ tx_num = 2;
+- rf_type = RF_2T2R;
+- } else if (sta->deflink.ht_cap.ht_supported && ra_mask & 0xfff00000) {
++ else if (sta->deflink.ht_cap.ht_supported && ra_mask & 0xfff00000)
+ tx_num = 2;
+- rf_type = RF_2T2R;
+- }
+
+ rate_id = get_rate_id(wireless_set, bw_mode, tx_num);
+
+@@ -1319,7 +1315,6 @@ void rtw_update_sta_info(struct rtw_dev
+ si->bw_mode = bw_mode;
+ si->stbc_en = stbc_en;
+ si->ldpc_en = ldpc_en;
+- si->rf_type = rf_type;
+ si->sgi_enable = is_support_sgi;
+ si->vht_enable = is_vht_enable;
+ si->ra_mask = ra_mask;
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -757,7 +757,6 @@ struct rtw_sta_info {
+ u8 mac_id;
+ u8 rate_id;
+ enum rtw_bandwidth bw_mode;
+- enum rtw_rf_type rf_type;
+ u8 stbc_en:2;
+ u8 ldpc_en:2;
+ bool sgi_enable;
diff --git a/package/kernel/mac80211/patches/rtl/060-v6.14-wifi-rtw88-8703b-Fix-RX-TX-issues.patch b/package/kernel/mac80211/patches/rtl/060-v6.14-wifi-rtw88-8703b-Fix-RX-TX-issues.patch
new file mode 100644
index 0000000000..0a512a3859
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/060-v6.14-wifi-rtw88-8703b-Fix-RX-TX-issues.patch
@@ -0,0 +1,59 @@
+From a806a8160a0fcaff368bb510c8a52eff37faf727 Mon Sep 17 00:00:00 2001
+From: Vasily Khoruzhick <anarsoul@gmail.com>
+Date: Thu, 2 Jan 2025 23:50:53 -0800
+Subject: [PATCH] wifi: rtw88: 8703b: Fix RX/TX issues
+
+Fix 3 typos in 8703b driver. 2 typos in calibration routines are not
+fatal and do not seem to have any impact, just fix them to match vendor
+driver.
+
+However the last one in rtw8703b_set_channel_bb() clears too many bits
+in REG_OFDM0_TX_PSD_NOISE, causing TX and RX issues (neither rate goes
+above MCS0-MCS1). Vendor driver clears only 2 most significant bits.
+
+With the last typo fixed, the driver is able to reach MCS7 on Pinebook
+
+Cc: stable@vger.kernel.org
+Fixes: 9bb762b3a957 ("wifi: rtw88: Add definitions for 8703b chip")
+Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Tested-by: Fiona Klute <fiona.klute@gmx.de>
+Tested-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250103075107.1337533-1-anarsoul@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8703b.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
+@@ -903,7 +903,7 @@ static void rtw8703b_set_channel_bb(stru
+ rtw_write32_mask(rtwdev, REG_FPGA0_RFMOD, BIT_MASK_RFMOD, 0x0);
+ rtw_write32_mask(rtwdev, REG_FPGA1_RFMOD, BIT_MASK_RFMOD, 0x0);
+ rtw_write32_mask(rtwdev, REG_OFDM0_TX_PSD_NOISE,
+- GENMASK(31, 20), 0x0);
++ GENMASK(31, 30), 0x0);
+ rtw_write32(rtwdev, REG_BBRX_DFIR, 0x4A880000);
+ rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x19F60000);
+ break;
+@@ -1198,9 +1198,9 @@ static u8 rtw8703b_iqk_rx_path(struct rt
+ rtw_write32(rtwdev, REG_RXIQK_TONE_A_11N, 0x38008c1c);
+ rtw_write32(rtwdev, REG_TX_IQK_TONE_B, 0x38008c1c);
+ rtw_write32(rtwdev, REG_RX_IQK_TONE_B, 0x38008c1c);
+- rtw_write32(rtwdev, REG_TXIQK_PI_A_11N, 0x8216000f);
++ rtw_write32(rtwdev, REG_TXIQK_PI_A_11N, 0x8214030f);
+ rtw_write32(rtwdev, REG_RXIQK_PI_A_11N, 0x28110000);
+- rtw_write32(rtwdev, REG_TXIQK_PI_B, 0x28110000);
++ rtw_write32(rtwdev, REG_TXIQK_PI_B, 0x82110000);
+ rtw_write32(rtwdev, REG_RXIQK_PI_B, 0x28110000);
+
+ /* LOK setting */
+@@ -1372,7 +1372,7 @@ void rtw8703b_iqk_fill_a_matrix(struct r
+ return;
+
+ tmp_rx_iqi |= FIELD_PREP(BIT_MASK_RXIQ_S1_X, result[IQK_S1_RX_X]);
+- tmp_rx_iqi |= FIELD_PREP(BIT_MASK_RXIQ_S1_Y1, result[IQK_S1_RX_X]);
++ tmp_rx_iqi |= FIELD_PREP(BIT_MASK_RXIQ_S1_Y1, result[IQK_S1_RX_Y]);
+ rtw_write32(rtwdev, REG_A_RXIQI, tmp_rx_iqi);
+ rtw_write32_mask(rtwdev, REG_RXIQK_MATRIX_LSB_11N, BIT_MASK_RXIQ_S1_Y2,
+ BIT_SET_RXIQ_S1_Y2(result[IQK_S1_RX_Y]));
diff --git a/package/kernel/mac80211/patches/rtl/061-v6.14-wifi-rtw88-sdio-Fix-disconnection-after-beacon-loss.patch b/package/kernel/mac80211/patches/rtl/061-v6.14-wifi-rtw88-sdio-Fix-disconnection-after-beacon-loss.patch
new file mode 100644
index 0000000000..790dfe0420
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/061-v6.14-wifi-rtw88-sdio-Fix-disconnection-after-beacon-loss.patch
@@ -0,0 +1,31 @@
+From fb2fcfbe5eef9ae26b0425978435ae1308951e51 Mon Sep 17 00:00:00 2001
+From: Fiona Klute <fiona.klute@gmx.de>
+Date: Mon, 6 Jan 2025 15:54:34 +0200
+Subject: [PATCH] wifi: rtw88: sdio: Fix disconnection after beacon loss
+
+This is the equivalent of commit 28818b4d871b ("wifi: rtw88: usb: Fix
+disconnection after beacon loss") for SDIO chips.
+Tested on Pinephone (RTL8723CS), random disconnections became rare,
+instead of a frequent nuisance.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
+Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> # Tested on Pinebook
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250106135434.35936-1-fiona.klute@gmx.de
+---
+ drivers/net/wireless/realtek/rtw88/sdio.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -1192,6 +1192,8 @@ static void rtw_sdio_indicate_tx_status(
+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ struct ieee80211_hw *hw = rtwdev->hw;
+
++ skb_pull(skb, rtwdev->chip->tx_pkt_desc_sz);
++
+ /* enqueue to wait for tx report */
+ if (info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS) {
+ rtw_tx_report_enqueue(rtwdev, skb, tx_data->sn);
diff --git a/package/kernel/mac80211/patches/rtl/062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch b/package/kernel/mac80211/patches/rtl/062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch
new file mode 100644
index 0000000000..b261d02e3f
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/062-v6.14-wifi-rtw88-Add-support-for-LED-blinking.patch
@@ -0,0 +1,424 @@
+From 4b6652bc6d8d5fb0648b3a7a16ef8af4e0345bcd Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 8 Jan 2025 13:41:23 +0200
+Subject: [PATCH] wifi: rtw88: Add support for LED blinking
+
+Register a struct led_classdev with the kernel's LED subsystem and
+create a throughput-based trigger for it. Then mac80211 makes the LED
+blink.
+
+Tested with Tenda U12 (RTL8812AU), Tenda U9 (RTL8811CU), TP-Link Archer
+T2U Nano (RTL8811AU), TP-Link Archer T3U Plus (RTL8812BU), Edimax
+EW-7611UCB (RTL8821AU), LM842 (RTL8822CU).
+
+Also tested with devices which don't have LEDs: the laptop's internal
+RTL8822CE and a no-name RTL8723DU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/6c43451f-ab2f-4e76-ac6e-ff5a18dd981d@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/Makefile | 2 +
+ drivers/net/wireless/realtek/rtw88/led.c | 73 +++++++++++++++++++
+ drivers/net/wireless/realtek/rtw88/led.h | 25 +++++++
+ drivers/net/wireless/realtek/rtw88/main.c | 12 ++-
+ drivers/net/wireless/realtek/rtw88/main.h | 5 ++
+ drivers/net/wireless/realtek/rtw88/reg.h | 12 +++
+ drivers/net/wireless/realtek/rtw88/rtw8812a.c | 17 +++++
+ drivers/net/wireless/realtek/rtw88/rtw8821a.c | 26 +++++++
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 19 +++++
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 19 +++++
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 19 +++++
+ 11 files changed, 227 insertions(+), 2 deletions(-)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/led.c
+ create mode 100644 drivers/net/wireless/realtek/rtw88/led.h
+
+--- a/drivers/net/wireless/realtek/rtw88/Makefile
++++ b/drivers/net/wireless/realtek/rtw88/Makefile
+@@ -20,6 +20,8 @@ rtw88_core-y += main.o \
+
+ rtw88_core-$(CONFIG_PM) += wow.o
+
++rtw88_core-$(CONFIG_LEDS_CLASS) += led.o
++
+ obj-$(CPTCFG_RTW88_8822B) += rtw88_8822b.o
+ rtw88_8822b-objs := rtw8822b.o rtw8822b_table.o
+
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/led.c
+@@ -0,0 +1,73 @@
++// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#include "main.h"
++#include "debug.h"
++#include "led.h"
++
++static int rtw_led_set_blocking(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++
++ rtwdev->chip->ops->led_set(led, brightness);
++
++ return 0;
++}
++
++void rtw_led_init(struct rtw_dev *rtwdev)
++{
++ static const struct ieee80211_tpt_blink rtw_tpt_blink[] = {
++ { .throughput = 0 * 1024, .blink_time = 334 },
++ { .throughput = 1 * 1024, .blink_time = 260 },
++ { .throughput = 5 * 1024, .blink_time = 220 },
++ { .throughput = 10 * 1024, .blink_time = 190 },
++ { .throughput = 20 * 1024, .blink_time = 170 },
++ { .throughput = 50 * 1024, .blink_time = 150 },
++ { .throughput = 70 * 1024, .blink_time = 130 },
++ { .throughput = 100 * 1024, .blink_time = 110 },
++ { .throughput = 200 * 1024, .blink_time = 80 },
++ { .throughput = 300 * 1024, .blink_time = 50 },
++ };
++ struct led_classdev *led = &rtwdev->led_cdev;
++ int err;
++
++ if (!rtwdev->chip->ops->led_set)
++ return;
++
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
++ led->brightness_set = rtwdev->chip->ops->led_set;
++ else
++ led->brightness_set_blocking = rtw_led_set_blocking;
++
++ snprintf(rtwdev->led_name, sizeof(rtwdev->led_name),
++ "rtw88-%s", dev_name(rtwdev->dev));
++
++ led->name = rtwdev->led_name;
++ led->max_brightness = LED_ON;
++ led->default_trigger =
++ ieee80211_create_tpt_led_trigger(rtwdev->hw,
++ IEEE80211_TPT_LEDTRIG_FL_RADIO,
++ rtw_tpt_blink,
++ ARRAY_SIZE(rtw_tpt_blink));
++
++ err = led_classdev_register(rtwdev->dev, led);
++ if (err) {
++ rtw_warn(rtwdev, "Failed to register the LED, error %d\n", err);
++ return;
++ }
++
++ rtwdev->led_registered = true;
++}
++
++void rtw_led_deinit(struct rtw_dev *rtwdev)
++{
++ struct led_classdev *led = &rtwdev->led_cdev;
++
++ if (!rtwdev->led_registered)
++ return;
++
++ rtwdev->chip->ops->led_set(led, LED_OFF);
++ led_classdev_unregister(led);
++}
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/led.h
+@@ -0,0 +1,25 @@
++/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#ifndef __RTW_LED_H
++#define __RTW_LED_H
++
++#ifdef CONFIG_LEDS_CLASS
++
++void rtw_led_init(struct rtw_dev *rtwdev);
++void rtw_led_deinit(struct rtw_dev *rtwdev);
++
++#else
++
++static inline void rtw_led_init(struct rtw_dev *rtwdev)
++{
++}
++
++static inline void rtw_led_deinit(struct rtw_dev *rtwdev)
++{
++}
++
++#endif
++
++#endif
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -19,6 +19,7 @@
+ #include "bf.h"
+ #include "sar.h"
+ #include "sdio.h"
++#include "led.h"
+
+ bool rtw_disable_lps_deep_mode;
+ EXPORT_SYMBOL(rtw_disable_lps_deep_mode);
+@@ -2292,16 +2293,18 @@ int rtw_register_hw(struct rtw_dev *rtwd
+ return ret;
+ }
+
++ rtw_led_init(rtwdev);
++
+ ret = ieee80211_register_hw(hw);
+ if (ret) {
+ rtw_err(rtwdev, "failed to register hw\n");
+- return ret;
++ goto led_deinit;
+ }
+
+ ret = rtw_regd_hint(rtwdev);
+ if (ret) {
+ rtw_err(rtwdev, "failed to hint regd\n");
+- return ret;
++ goto led_deinit;
+ }
+
+ rtw_debugfs_init(rtwdev);
+@@ -2310,6 +2313,10 @@ int rtw_register_hw(struct rtw_dev *rtwd
+ rtwdev->bf_info.bfer_su_cnt = 0;
+
+ return 0;
++
++led_deinit:
++ rtw_led_deinit(rtwdev);
++ return ret;
+ }
+ EXPORT_SYMBOL(rtw_register_hw);
+
+@@ -2320,6 +2327,7 @@ void rtw_unregister_hw(struct rtw_dev *r
+ ieee80211_unregister_hw(hw);
+ rtw_unset_supported_band(hw, chip);
+ rtw_debugfs_deinit(rtwdev);
++ rtw_led_deinit(rtwdev);
+ }
+ EXPORT_SYMBOL(rtw_unregister_hw);
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -887,6 +887,7 @@ struct rtw_chip_ops {
+ bool is_tx2_path);
+ void (*config_txrx_mode)(struct rtw_dev *rtwdev, u8 tx_path,
+ u8 rx_path, bool is_tx2_path);
++ void (*led_set)(struct led_classdev *led, enum led_brightness brightness);
+ /* for USB/SDIO only */
+ void (*fill_txdesc_checksum)(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+@@ -2097,6 +2098,10 @@ struct rtw_dev {
+ struct completion fw_scan_density;
+ bool ap_active;
+
++ bool led_registered;
++ char led_name[32];
++ struct led_classdev led_cdev;
++
+ /* hci related data, must be last */
+ u8 priv[] __aligned(sizeof(void *));
+ };
+--- a/drivers/net/wireless/realtek/rtw88/reg.h
++++ b/drivers/net/wireless/realtek/rtw88/reg.h
+@@ -78,7 +78,19 @@
+ #define BIT_PAPE_SEL_EN BIT(25)
+ #define BIT_DPDT_WL_SEL BIT(24)
+ #define BIT_DPDT_SEL_EN BIT(23)
++#define BIT_GPIO13_14_WL_CTRL_EN BIT(22)
++#define BIT_LED2_SV BIT(19)
++#define BIT_LED2_CM GENMASK(18, 16)
++#define BIT_LED1_SV BIT(11)
++#define BIT_LED1_CM GENMASK(10, 8)
++#define BIT_LED0_SV BIT(3)
++#define BIT_LED0_CM GENMASK(2, 0)
++#define BIT_LED_MODE_SW_CTRL 0
++#define BIT_LED_MODE_RX 6
++#define BIT_LED_MODE_TX 4
++#define BIT_LED_MODE_TRX 2
+ #define REG_LEDCFG2 0x004E
++#define REG_GPIO_PIN_CTRL_2 0x0060
+ #define REG_PAD_CTRL1 0x0064
+ #define BIT_BT_BTG_SEL BIT(31)
+ #define BIT_PAPE_WLBT_SEL BIT(29)
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
+@@ -868,6 +868,22 @@ static void rtw8812a_pwr_track(struct rt
+ dm_info->pwr_trk_triggered = false;
+ }
+
++static void rtw8812a_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u8 ledcfg;
++
++ ledcfg = rtw_read8(rtwdev, REG_LED_CFG);
++ ledcfg &= BIT(6) | BIT(4);
++ ledcfg |= BIT(5);
++
++ if (brightness == LED_OFF)
++ ledcfg |= BIT(3);
++
++ rtw_write8(rtwdev, REG_LED_CFG, ledcfg);
++}
++
+ static void rtw8812a_fill_txdesc_checksum(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+ u8 *txdesc)
+@@ -916,6 +932,7 @@ static const struct rtw_chip_ops rtw8812
+ .config_bfee = NULL,
+ .set_gid_table = NULL,
+ .cfg_csi_rate = NULL,
++ .led_set = rtw8812a_led_set,
+ .fill_txdesc_checksum = rtw8812a_fill_txdesc_checksum,
+ .coex_set_init = rtw8812a_coex_cfg_init,
+ .coex_set_ant_switch = NULL,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
+@@ -706,6 +706,31 @@ static void rtw8821a_pwr_track(struct rt
+ dm_info->pwr_trk_triggered = false;
+ }
+
++static void rtw8821a_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u32 gpio8_cfg;
++ u8 ledcfg;
++
++ if (brightness == LED_OFF) {
++ gpio8_cfg = rtw_read32(rtwdev, REG_GPIO_PIN_CTRL_2);
++ gpio8_cfg &= ~BIT(24);
++ gpio8_cfg |= BIT(16) | BIT(8);
++ rtw_write32(rtwdev, REG_GPIO_PIN_CTRL_2, gpio8_cfg);
++ } else {
++ ledcfg = rtw_read8(rtwdev, REG_LED_CFG + 2);
++ gpio8_cfg = rtw_read32(rtwdev, REG_GPIO_PIN_CTRL_2);
++
++ ledcfg &= BIT(7) | BIT(6);
++ rtw_write8(rtwdev, REG_LED_CFG + 2, ledcfg);
++
++ gpio8_cfg &= ~(BIT(24) | BIT(8));
++ gpio8_cfg |= BIT(16);
++ rtw_write32(rtwdev, REG_GPIO_PIN_CTRL_2, gpio8_cfg);
++ }
++}
++
+ static void rtw8821a_fill_txdesc_checksum(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+ u8 *txdesc)
+@@ -853,6 +878,7 @@ static const struct rtw_chip_ops rtw8821
+ .config_bfee = NULL,
+ .set_gid_table = NULL,
+ .cfg_csi_rate = NULL,
++ .led_set = rtw8821a_led_set,
+ .fill_txdesc_checksum = rtw8821a_fill_txdesc_checksum,
+ .coex_set_init = rtw8821a_coex_cfg_init,
+ .coex_set_ant_switch = rtw8821a_coex_cfg_ant_switch,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -1206,6 +1206,24 @@ static void rtw8821c_phy_cck_pd_set(stru
+ dm_info->cck_pd_default + new_lvl * 2);
+ }
+
++static void rtw8821c_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u32 ledcfg;
++
++ ledcfg = rtw_read32(rtwdev, REG_LED_CFG);
++ u32p_replace_bits(&ledcfg, BIT_LED_MODE_SW_CTRL, BIT_LED2_CM);
++ ledcfg &= ~BIT_GPIO13_14_WL_CTRL_EN;
++
++ if (brightness == LED_OFF)
++ ledcfg |= BIT_LED2_SV;
++ else
++ ledcfg &= ~BIT_LED2_SV;
++
++ rtw_write32(rtwdev, REG_LED_CFG, ledcfg);
++}
++
+ static void rtw8821c_fill_txdesc_checksum(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+ u8 *txdesc)
+@@ -1655,6 +1673,7 @@ static const struct rtw_chip_ops rtw8821
+ .config_bfee = rtw8821c_bf_config_bfee,
+ .set_gid_table = rtw_bf_set_gid_table,
+ .cfg_csi_rate = rtw_bf_cfg_csi_rate,
++ .led_set = rtw8821c_led_set,
+ .fill_txdesc_checksum = rtw8821c_fill_txdesc_checksum,
+
+ .coex_set_init = rtw8821c_coex_cfg_init,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -1566,6 +1566,24 @@ static void rtw8822b_adaptivity(struct r
+ rtw_phy_set_edcca_th(rtwdev, l2h, h2l);
+ }
+
++static void rtw8822b_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u32 ledcfg;
++
++ ledcfg = rtw_read32(rtwdev, REG_LED_CFG);
++ u32p_replace_bits(&ledcfg, BIT_LED_MODE_SW_CTRL, BIT_LED2_CM);
++ ledcfg &= ~BIT_GPIO13_14_WL_CTRL_EN;
++
++ if (brightness == LED_OFF)
++ ledcfg |= BIT_LED2_SV;
++ else
++ ledcfg &= ~BIT_LED2_SV;
++
++ rtw_write32(rtwdev, REG_LED_CFG, ledcfg);
++}
++
+ static void rtw8822b_fill_txdesc_checksum(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+ u8 *txdesc)
+@@ -2146,6 +2164,7 @@ static const struct rtw_chip_ops rtw8822
+ .cfg_csi_rate = rtw_bf_cfg_csi_rate,
+ .adaptivity_init = rtw8822b_adaptivity_init,
+ .adaptivity = rtw8822b_adaptivity,
++ .led_set = rtw8822b_led_set,
+ .fill_txdesc_checksum = rtw8822b_fill_txdesc_checksum,
+
+ .coex_set_init = rtw8822b_coex_cfg_init,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -4537,6 +4537,24 @@ static void rtw8822c_adaptivity(struct r
+ rtw_phy_set_edcca_th(rtwdev, l2h, h2l);
+ }
+
++static void rtw8822c_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u32 ledcfg;
++
++ ledcfg = rtw_read32(rtwdev, REG_LED_CFG);
++ u32p_replace_bits(&ledcfg, BIT_LED_MODE_SW_CTRL, BIT_LED2_CM);
++ ledcfg &= ~BIT_GPIO13_14_WL_CTRL_EN;
++
++ if (brightness == LED_OFF)
++ ledcfg |= BIT_LED2_SV;
++ else
++ ledcfg &= ~BIT_LED2_SV;
++
++ rtw_write32(rtwdev, REG_LED_CFG, ledcfg);
++}
++
+ static void rtw8822c_fill_txdesc_checksum(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info,
+ u8 *txdesc)
+@@ -4964,6 +4982,7 @@ static const struct rtw_chip_ops rtw8822
+ .cfo_track = rtw8822c_cfo_track,
+ .config_tx_path = rtw8822c_config_tx_path,
+ .config_txrx_mode = rtw8822c_config_trx_mode,
++ .led_set = rtw8822c_led_set,
+ .fill_txdesc_checksum = rtw8822c_fill_txdesc_checksum,
+
+ .coex_set_init = rtw8822c_coex_cfg_init,
diff --git a/package/kernel/mac80211/patches/rtl/063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch b/package/kernel/mac80211/patches/rtl/063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch
new file mode 100644
index 0000000000..f1f09fde1a
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/063-v6.14-wifi-rtw88-add-RTW88_LEDS-depends-on-LEDS_CLASS-to-K.patch
@@ -0,0 +1,73 @@
+From b4bfbc50b1b92a0815800eb1231f73bfc917af03 Mon Sep 17 00:00:00 2001
+From: Ping-Ke Shih <pkshih@realtek.com>
+Date: Thu, 16 Jan 2025 20:04:24 +0800
+Subject: [PATCH] wifi: rtw88: add RTW88_LEDS depends on LEDS_CLASS to Kconfig
+
+When using allmodconfig, .config has CONFIG_LEDS_CLASS=m but
+autoconf.h has CONFIG_LEDS_CLASS_MODULE (additional suffix _MODULE)
+instead of CONFIG_LEDS_CLASS, which condition CONFIG_LEDS_CLASS in
+rtw88/led.h can't work properly.
+
+Add RTW88_LEDS to Kconfig, and use it as condition to fix this problem.
+
+drivers/net/wireless/realtek/rtw88/led.c:19:6: error: redefinition of 'rtw_led_init'
+ 19 | void rtw_led_init(struct rtw_dev *rtwdev)
+ | ^~~~~~~~~~~~
+In file included from drivers/net/wireless/realtek/rtw88/led.c:7:
+drivers/net/wireless/realtek/rtw88/led.h:15:20: note: previous definition of 'rtw_led_init' with type 'void(struct rtw_dev *)'
+ 15 | static inline void rtw_led_init(struct rtw_dev *rtwdev)
+ | ^~~~~~~~~~~~
+drivers/net/wireless/realtek/rtw88/led.c:64:6: error: redefinition of 'rtw_led_deinit'
+ 64 | void rtw_led_deinit(struct rtw_dev *rtwdev)
+ | ^~~~~~~~~~~~~~
+drivers/net/wireless/realtek/rtw88/led.h:19:20: note: previous definition of 'rtw_led_deinit' with type 'void(struct rtw_dev *)'
+ 19 | static inline void rtw_led_deinit(struct rtw_dev *rtwdev)
+ | ^~~~~~~~~~~~~~
+
+Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Closes: https://lore.kernel.org/linux-wireless/e19a87ad9cd54bfa9907f3a043b25d30@realtek.com/T/#me407832de1040ce22e53517bcb18e322ad0e2260
+Fixes: 4b6652bc6d8d ("wifi: rtw88: Add support for LED blinking")
+Cc: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://patch.msgid.link/20250116120424.13174-1-pkshih@realtek.com
+---
+ drivers/net/wireless/realtek/rtw88/Kconfig | 5 +++++
+ drivers/net/wireless/realtek/rtw88/Makefile | 2 +-
+ drivers/net/wireless/realtek/rtw88/led.h | 2 +-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/Kconfig
++++ b/drivers/net/wireless/realtek/rtw88/Kconfig
+@@ -267,4 +267,9 @@ config RTW88_DEBUGFS
+
+ If unsure, say Y to simplify debug problems
+
++config RTW88_LEDS
++ bool
++ depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
++ default y
++
+ endif
+--- a/drivers/net/wireless/realtek/rtw88/Makefile
++++ b/drivers/net/wireless/realtek/rtw88/Makefile
+@@ -20,7 +20,7 @@ rtw88_core-y += main.o \
+
+ rtw88_core-$(CONFIG_PM) += wow.o
+
+-rtw88_core-$(CONFIG_LEDS_CLASS) += led.o
++rtw88_core-$(CPTCFG_RTW88_LEDS) += led.o
+
+ obj-$(CPTCFG_RTW88_8822B) += rtw88_8822b.o
+ rtw88_8822b-objs := rtw8822b.o rtw8822b_table.o
+--- a/drivers/net/wireless/realtek/rtw88/led.h
++++ b/drivers/net/wireless/realtek/rtw88/led.h
+@@ -5,7 +5,7 @@
+ #ifndef __RTW_LED_H
+ #define __RTW_LED_H
+
+-#ifdef CONFIG_LEDS_CLASS
++#ifdef CPTCFG_RTW88_LEDS
+
+ void rtw_led_init(struct rtw_dev *rtwdev);
+ void rtw_led_deinit(struct rtw_dev *rtwdev);
diff --git a/package/kernel/mac80211/patches/rtl/064-v6.14.9-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch b/package/kernel/mac80211/patches/rtl/064-v6.14.9-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch
new file mode 100644
index 0000000000..3b3550d9be
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/064-v6.14.9-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch
@@ -0,0 +1,68 @@
+From 00451eb3bec763f708e7e58326468c1e575e5a66 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Sun, 26 Jan 2025 16:03:11 +0200
+Subject: [PATCH] wifi: rtw88: Don't use static local variable in
+ rtw8822b_set_tx_power_index_by_rate
+
+Some users want to plug two identical USB devices at the same time.
+This static variable could theoretically cause them to use incorrect
+TX power values.
+
+Move the variable to the caller and pass a pointer to it to
+rtw8822b_set_tx_power_index_by_rate().
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/8a60f581-0ab5-4d98-a97d-dd83b605008f@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -935,11 +935,11 @@ static void query_phy_status(struct rtw_
+ }
+
+ static void
+-rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
++rtw8822b_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path,
++ u8 rs, u32 *phy_pwr_idx)
+ {
+ struct rtw_hal *hal = &rtwdev->hal;
+ static const u32 offset_txagc[2] = {0x1d00, 0x1d80};
+- static u32 phy_pwr_idx;
+ u8 rate, rate_idx, pwr_index, shift;
+ int j;
+
+@@ -947,12 +947,12 @@ rtw8822b_set_tx_power_index_by_rate(stru
+ rate = rtw_rate_section[rs][j];
+ pwr_index = hal->tx_pwr_tbl[path][rate];
+ shift = rate & 0x3;
+- phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
++ *phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
+ if (shift == 0x3) {
+ rate_idx = rate & 0xfc;
+ rtw_write32(rtwdev, offset_txagc[path] + rate_idx,
+- phy_pwr_idx);
+- phy_pwr_idx = 0;
++ *phy_pwr_idx);
++ *phy_pwr_idx = 0;
+ }
+ }
+ }
+@@ -960,11 +960,13 @@ rtw8822b_set_tx_power_index_by_rate(stru
+ static void rtw8822b_set_tx_power_index(struct rtw_dev *rtwdev)
+ {
+ struct rtw_hal *hal = &rtwdev->hal;
++ u32 phy_pwr_idx = 0;
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+ for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
+- rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs);
++ rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs,
++ &phy_pwr_idx);
+ }
+ }
+
diff --git a/package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch b/package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch
new file mode 100644
index 0000000000..ff04eead91
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/065-v6.15-wifi-rtw88-Don-t-use-static-local-variable-in-rtw882.patch
@@ -0,0 +1,71 @@
+From 0d1d165eff9d6cfad51113e18d9d8c9a8de27d6d Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Sun, 26 Jan 2025 16:04:21 +0200
+Subject: [PATCH] wifi: rtw88: Don't use static local variable in
+ rtw8821c_set_tx_power_index_by_rate
+
+Some users want to plug two identical USB devices at the same time.
+This static variable could theoretically cause them to use incorrect
+TX power values.
+
+Move the variable to the caller and pass a pointer to it to
+rtw8821c_set_tx_power_index_by_rate().
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/fe42858c-9b9f-4f03-9aaa-737472c2cd90@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -680,11 +680,11 @@ static void query_phy_status(struct rtw_
+ }
+
+ static void
+-rtw8821c_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
++rtw8821c_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path,
++ u8 rs, u32 *phy_pwr_idx)
+ {
+ struct rtw_hal *hal = &rtwdev->hal;
+ static const u32 offset_txagc[2] = {0x1d00, 0x1d80};
+- static u32 phy_pwr_idx;
+ u8 rate, rate_idx, pwr_index, shift;
+ int j;
+
+@@ -692,12 +692,12 @@ rtw8821c_set_tx_power_index_by_rate(stru
+ rate = rtw_rate_section[rs][j];
+ pwr_index = hal->tx_pwr_tbl[path][rate];
+ shift = rate & 0x3;
+- phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
++ *phy_pwr_idx |= ((u32)pwr_index << (shift * 8));
+ if (shift == 0x3 || rate == DESC_RATEVHT1SS_MCS9) {
+ rate_idx = rate & 0xfc;
+ rtw_write32(rtwdev, offset_txagc[path] + rate_idx,
+- phy_pwr_idx);
+- phy_pwr_idx = 0;
++ *phy_pwr_idx);
++ *phy_pwr_idx = 0;
+ }
+ }
+ }
+@@ -705,6 +705,7 @@ rtw8821c_set_tx_power_index_by_rate(stru
+ static void rtw8821c_set_tx_power_index(struct rtw_dev *rtwdev)
+ {
+ struct rtw_hal *hal = &rtwdev->hal;
++ u32 phy_pwr_idx = 0;
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+@@ -712,7 +713,8 @@ static void rtw8821c_set_tx_power_index(
+ if (rs == RTW_RATE_SECTION_HT_2S ||
+ rs == RTW_RATE_SECTION_VHT_2S)
+ continue;
+- rtw8821c_set_tx_power_index_by_rate(rtwdev, path, rs);
++ rtw8821c_set_tx_power_index_by_rate(rtwdev, path, rs,
++ &phy_pwr_idx);
+ }
+ }
+ }
diff --git a/package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch b/package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch
new file mode 100644
index 0000000000..a2404bafe8
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/066-v6.15-wifi-rtw88-Fix-a-typo-of-debug-message-in-rtw8723d_i.patch
@@ -0,0 +1,39 @@
+From 105dc94233e48ff30e572a50fb39d7e3dec810fa Mon Sep 17 00:00:00 2001
+From: Andrew Kreimer <algonell@gmail.com>
+Date: Mon, 3 Feb 2025 20:08:27 +0200
+Subject: [PATCH] wifi: rtw88: Fix a typo of debug message in
+ rtw8723d_iqk_check_tx_failed()
+
+There is a typo in debug messages:
+ - afer -> after
+
+Fix it via codespell.
+
+Signed-off-by: Andrew Kreimer <algonell@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250203180913.5435-1-algonell@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8723d.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
+@@ -444,7 +444,7 @@ static u8 rtw8723d_iqk_check_tx_failed(s
+ rtw_read32(rtwdev, REG_IQK_RES_TX),
+ rtw_read32(rtwdev, REG_IQK_RES_TY));
+ rtw_dbg(rtwdev, RTW_DBG_RFK,
+- "[IQK] 0xe90(before IQK)= 0x%x, 0xe98(afer IQK) = 0x%x\n",
++ "[IQK] 0xe90(before IQK)= 0x%x, 0xe98(after IQK) = 0x%x\n",
+ rtw_read32(rtwdev, 0xe90),
+ rtw_read32(rtwdev, 0xe98));
+
+@@ -472,7 +472,7 @@ static u8 rtw8723d_iqk_check_rx_failed(s
+ rtw_read32(rtwdev, REG_IQK_RES_RY));
+
+ rtw_dbg(rtwdev, RTW_DBG_RFK,
+- "[IQK] 0xea0(before IQK)= 0x%x, 0xea8(afer IQK) = 0x%x\n",
++ "[IQK] 0xea0(before IQK)= 0x%x, 0xea8(after IQK) = 0x%x\n",
+ rtw_read32(rtwdev, 0xea0),
+ rtw_read32(rtwdev, 0xea8));
+
diff --git a/package/kernel/mac80211/patches/rtl/067-v6.14.9-wifi-rtw88-Fix-__rtw_download_firmware-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/067-v6.14.9-wifi-rtw88-Fix-__rtw_download_firmware-for-RTL8814AU.patch
new file mode 100644
index 0000000000..4de1255764
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/067-v6.14.9-wifi-rtw88-Fix-__rtw_download_firmware-for-RTL8814AU.patch
@@ -0,0 +1,39 @@
+From 8425f5c8f04dbcf11ade78f984a494fc0b90e7a0 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:36:56 +0200
+Subject: [PATCH] wifi: rtw88: Fix __rtw_download_firmware() for RTL8814AU
+
+Don't call ltecoex_read_reg() and ltecoex_reg_write() when the
+ltecoex_addr member of struct rtw_chip_info is NULL. The RTL8814AU
+doesn't have this feature.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/55b5641f-094e-4f94-9f79-ac053733f2cf@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/mac.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/mac.c
++++ b/drivers/net/wireless/realtek/rtw88/mac.c
+@@ -784,7 +784,8 @@ static int __rtw_download_firmware(struc
+ if (!check_firmware_size(data, size))
+ return -EINVAL;
+
+- if (!ltecoex_read_reg(rtwdev, 0x38, &ltecoex_bckp))
++ if (rtwdev->chip->ltecoex_addr &&
++ !ltecoex_read_reg(rtwdev, 0x38, &ltecoex_bckp))
+ return -EBUSY;
+
+ wlan_cpu_enable(rtwdev, false);
+@@ -802,7 +803,8 @@ static int __rtw_download_firmware(struc
+
+ wlan_cpu_enable(rtwdev, true);
+
+- if (!ltecoex_reg_write(rtwdev, 0x38, ltecoex_bckp)) {
++ if (rtwdev->chip->ltecoex_addr &&
++ !ltecoex_reg_write(rtwdev, 0x38, ltecoex_bckp)) {
+ ret = -EBUSY;
+ goto dlfw_fail;
+ }
diff --git a/package/kernel/mac80211/patches/rtl/068-v6.14.9-wifi-rtw88-Fix-download_firmware_validate-for-RTL881.patch b/package/kernel/mac80211/patches/rtl/068-v6.14.9-wifi-rtw88-Fix-download_firmware_validate-for-RTL881.patch
new file mode 100644
index 0000000000..8ff1dc4e3e
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/068-v6.14.9-wifi-rtw88-Fix-download_firmware_validate-for-RTL881.patch
@@ -0,0 +1,39 @@
+From 9e8243025cc06abc975c876dffda052073207ab3 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:37:36 +0200
+Subject: [PATCH] wifi: rtw88: Fix download_firmware_validate() for RTL8814AU
+
+After the firmware is uploaded, download_firmware_validate() checks some
+bits in REG_MCUFW_CTRL to see if everything went okay. The
+RTL8814AU power on sequence sets bits 13 and 12 to 2, which this
+function does not expect, so it thinks the firmware upload failed.
+
+Make download_firmware_validate() ignore bits 13 and 12.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/049d2887-22fc-47b7-9e59-62627cb525f8@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/reg.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/reg.h
++++ b/drivers/net/wireless/realtek/rtw88/reg.h
+@@ -130,6 +130,7 @@
+ #define BIT_SHIFT_ROM_PGE 16
+ #define BIT_FW_INIT_RDY BIT(15)
+ #define BIT_FW_DW_RDY BIT(14)
++#define BIT_CPU_CLK_SEL (BIT(12) | BIT(13))
+ #define BIT_RPWM_TOGGLE BIT(7)
+ #define BIT_RAM_DL_SEL BIT(7) /* legacy only */
+ #define BIT_DMEM_CHKSUM_OK BIT(6)
+@@ -147,7 +148,7 @@
+ BIT_CHECK_SUM_OK)
+ #define FW_READY_LEGACY (BIT_MCUFWDL_RDY | BIT_FWDL_CHK_RPT | \
+ BIT_WINTINI_RDY | BIT_RAM_DL_SEL)
+-#define FW_READY_MASK 0xffff
++#define FW_READY_MASK (0xffff & ~BIT_CPU_CLK_SEL)
+
+ #define REG_MCU_TST_CFG 0x84
+ #define VAL_FW_TRIGGER 0x1
diff --git a/package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch b/package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch
new file mode 100644
index 0000000000..c6ac2818dd
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/069-v6.15-wifi-rtw88-Extend-struct-rtw_pwr_track_tbl-for-RTL88.patch
@@ -0,0 +1,46 @@
+From 62f726848da42554e6d270dfda17ed19bfa3456f Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:38:17 +0200
+Subject: [PATCH] wifi: rtw88: Extend struct rtw_pwr_track_tbl for RTL8814AU
+
+Currently this struct has the members required for chips with 2 RF
+paths. Add more members to support chips with 4 RF paths, like the
+RTL8814AU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/be5a73f4-a0fe-43d6-9457-930cde199284@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -1130,14 +1130,26 @@ struct rtw_rfe_def {
+ * For 2G there are cck rate and ofdm rate with different settings.
+ */
+ struct rtw_pwr_track_tbl {
++ const u8 *pwrtrk_5gd_n[RTW_PWR_TRK_5G_NUM];
++ const u8 *pwrtrk_5gd_p[RTW_PWR_TRK_5G_NUM];
++ const u8 *pwrtrk_5gc_n[RTW_PWR_TRK_5G_NUM];
++ const u8 *pwrtrk_5gc_p[RTW_PWR_TRK_5G_NUM];
+ const u8 *pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM];
+ const u8 *pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM];
+ const u8 *pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM];
+ const u8 *pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM];
++ const u8 *pwrtrk_2gd_n;
++ const u8 *pwrtrk_2gd_p;
++ const u8 *pwrtrk_2gc_n;
++ const u8 *pwrtrk_2gc_p;
+ const u8 *pwrtrk_2gb_n;
+ const u8 *pwrtrk_2gb_p;
+ const u8 *pwrtrk_2ga_n;
+ const u8 *pwrtrk_2ga_p;
++ const u8 *pwrtrk_2g_cckd_n;
++ const u8 *pwrtrk_2g_cckd_p;
++ const u8 *pwrtrk_2g_cckc_n;
++ const u8 *pwrtrk_2g_cckc_p;
+ const u8 *pwrtrk_2g_cckb_n;
+ const u8 *pwrtrk_2g_cckb_p;
+ const u8 *pwrtrk_2g_ccka_n;
diff --git a/package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch b/package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch
new file mode 100644
index 0000000000..ad80a275f1
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/070-v6.15-wifi-rtw88-Extend-rf_base_addr-and-rf_sipi_addr-for-.patch
@@ -0,0 +1,32 @@
+From d80e7d9b6ba38102f92559dbb647330216ea290b Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:38:43 +0200
+Subject: [PATCH] wifi: rtw88: Extend rf_base_addr and rf_sipi_addr for
+ RTL8814AU
+
+These members of struct rtw_chip_info each have a size of 2. Increase
+their size to 4, which is the number of RF paths the RTL8814AU has.
+
+This is required to read and write the RF registers of the RTL8814AU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/7a4d8209-b8af-4943-b5de-f53d6edf591a@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -1239,8 +1239,8 @@ struct rtw_chip_info {
+
+ const struct rtw_hw_reg *dig;
+ const struct rtw_hw_reg *dig_cck;
+- u32 rf_base_addr[2];
+- u32 rf_sipi_addr[2];
++ u32 rf_base_addr[RTW_RF_PATH_MAX];
++ u32 rf_sipi_addr[RTW_RF_PATH_MAX];
+ const struct rtw_rf_sipi_addr *rf_sipi_read_addr;
+ u8 fix_rf_phy_num;
+ const struct rtw_ltecoex_addr *ltecoex_addr;
diff --git a/package/kernel/mac80211/patches/rtl/071-v6.14.9-wifi-rtw88-Extend-rtw_fw_send_ra_info-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/071-v6.14.9-wifi-rtw88-Extend-rtw_fw_send_ra_info-for-RTL8814AU.patch
new file mode 100644
index 0000000000..9366a54cb5
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/071-v6.14.9-wifi-rtw88-Extend-rtw_fw_send_ra_info-for-RTL8814AU.patch
@@ -0,0 +1,70 @@
+From 8f0076726b66a70727a1bef5c087c60291e90ad8 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:39:29 +0200
+Subject: [PATCH] wifi: rtw88: Extend rtw_fw_send_ra_info() for RTL8814AU
+
+The existing code is suitable for chips with up to 2 spatial streams.
+Inform the firmware about the rates it's allowed to use when
+transmitting 3 spatial streams.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/08e2f328-1aab-4e50-93ac-c1e5dd9541ac@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/fw.c | 15 +++++++++++++++
+ drivers/net/wireless/realtek/rtw88/fw.h | 1 +
+ drivers/net/wireless/realtek/rtw88/main.h | 1 +
+ 3 files changed, 17 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/fw.c
++++ b/drivers/net/wireless/realtek/rtw88/fw.c
+@@ -736,6 +736,7 @@ void rtw_fw_send_ra_info(struct rtw_dev
+ {
+ u8 h2c_pkt[H2C_PKT_SIZE] = {0};
+ bool disable_pt = true;
++ u32 mask_hi;
+
+ SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_RA_INFO);
+
+@@ -756,6 +757,20 @@ void rtw_fw_send_ra_info(struct rtw_dev
+ si->init_ra_lv = 0;
+
+ rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
++
++ if (rtwdev->chip->id != RTW_CHIP_TYPE_8814A)
++ return;
++
++ SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_RA_INFO_HI);
++
++ mask_hi = si->ra_mask >> 32;
++
++ SET_RA_INFO_RA_MASK0(h2c_pkt, (mask_hi & 0xff));
++ SET_RA_INFO_RA_MASK1(h2c_pkt, (mask_hi & 0xff00) >> 8);
++ SET_RA_INFO_RA_MASK2(h2c_pkt, (mask_hi & 0xff0000) >> 16);
++ SET_RA_INFO_RA_MASK3(h2c_pkt, (mask_hi & 0xff000000) >> 24);
++
++ rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
+ }
+
+ void rtw_fw_media_status_report(struct rtw_dev *rtwdev, u8 mac_id, bool connect)
+--- a/drivers/net/wireless/realtek/rtw88/fw.h
++++ b/drivers/net/wireless/realtek/rtw88/fw.h
+@@ -557,6 +557,7 @@ static inline void rtw_h2c_pkt_set_heade
+ #define H2C_CMD_DEFAULT_PORT 0x2c
+ #define H2C_CMD_RA_INFO 0x40
+ #define H2C_CMD_RSSI_MONITOR 0x42
++#define H2C_CMD_RA_INFO_HI 0x46
+ #define H2C_CMD_BCN_FILTER_OFFLOAD_P0 0x56
+ #define H2C_CMD_BCN_FILTER_OFFLOAD_P1 0x57
+ #define H2C_CMD_WL_PHY_INFO 0x58
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -191,6 +191,7 @@ enum rtw_chip_type {
+ RTW_CHIP_TYPE_8703B,
+ RTW_CHIP_TYPE_8821A,
+ RTW_CHIP_TYPE_8812A,
++ RTW_CHIP_TYPE_8814A,
+ };
+
+ enum rtw_tx_queue_type {
diff --git a/package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch b/package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch
new file mode 100644
index 0000000000..6d3b4e61f9
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/072-v6.15-wifi-rtw88-Constify-some-more-structs-and-arrays.patch
@@ -0,0 +1,213 @@
+From e66f3b5c7535bb508e9c561a047b32de4ddc1cda Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:40:22 +0200
+Subject: [PATCH] wifi: rtw88: Constify some more structs and arrays
+
+These structs and arrays are never modified, so make them const:
+
+rtw_band_2ghz
+rtw_band_5ghz
+rtw_pci_tx_queue_idx_addr
+rtw_pci_ops
+rtw_cck_rates
+rtw_ofdm_rates
+rtw_ht_1s_rates
+rtw_ht_2s_rates
+rtw_vht_1s_rates
+rtw_vht_2s_rates
+rtw_rate_section
+rtw_rate_size
+rtw_sdio_ops
+rtw_usb_ops
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/502f124e-ccf3-4c09-80a4-1e5c5304822b@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 4 ++--
+ drivers/net/wireless/realtek/rtw88/main.h | 2 +-
+ drivers/net/wireless/realtek/rtw88/pci.c | 4 ++--
+ drivers/net/wireless/realtek/rtw88/phy.c | 26 ++++++++++++++---------
+ drivers/net/wireless/realtek/rtw88/phy.h | 16 +++++++-------
+ drivers/net/wireless/realtek/rtw88/sdio.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
+ 7 files changed, 31 insertions(+), 25 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -136,7 +136,7 @@ u16 rtw_desc_to_bitrate(u8 desc_rate)
+ return rate.bitrate;
+ }
+
+-static struct ieee80211_supported_band rtw_band_2ghz = {
++static const struct ieee80211_supported_band rtw_band_2ghz = {
+ .band = NL80211_BAND_2GHZ,
+
+ .channels = rtw_channeltable_2g,
+@@ -149,7 +149,7 @@ static struct ieee80211_supported_band r
+ .vht_cap = {0},
+ };
+
+-static struct ieee80211_supported_band rtw_band_5ghz = {
++static const struct ieee80211_supported_band rtw_band_5ghz = {
+ .band = NL80211_BAND_5GHZ,
+
+ .channels = rtw_channeltable_5g,
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -61,7 +61,7 @@ enum rtw_hci_type {
+ };
+
+ struct rtw_hci {
+- struct rtw_hci_ops *ops;
++ const struct rtw_hci_ops *ops;
+ enum rtw_hci_type type;
+
+ u32 rpwm_addr;
+--- a/drivers/net/wireless/realtek/rtw88/pci.c
++++ b/drivers/net/wireless/realtek/rtw88/pci.c
+@@ -20,7 +20,7 @@ module_param_named(disable_aspm, rtw_pci
+ MODULE_PARM_DESC(disable_msi, "Set Y to disable MSI interrupt support");
+ MODULE_PARM_DESC(disable_aspm, "Set Y to disable PCI ASPM support");
+
+-static u32 rtw_pci_tx_queue_idx_addr[] = {
++static const u32 rtw_pci_tx_queue_idx_addr[] = {
+ [RTW_TX_QUEUE_BK] = RTK_PCI_TXBD_IDX_BKQ,
+ [RTW_TX_QUEUE_BE] = RTK_PCI_TXBD_IDX_BEQ,
+ [RTW_TX_QUEUE_VI] = RTK_PCI_TXBD_IDX_VIQ,
+@@ -1591,7 +1591,7 @@ static void rtw_pci_destroy(struct rtw_d
+ rtw_pci_io_unmapping(rtwdev, pdev);
+ }
+
+-static struct rtw_hci_ops rtw_pci_ops = {
++static const struct rtw_hci_ops rtw_pci_ops = {
+ .tx_write = rtw_pci_tx_write,
+ .tx_kick_off = rtw_pci_tx_kick_off,
+ .flush_queues = rtw_pci_flush_queues,
+--- a/drivers/net/wireless/realtek/rtw88/phy.c
++++ b/drivers/net/wireless/realtek/rtw88/phy.c
+@@ -52,44 +52,50 @@ static const u32 db_invert_table[12][8]
+ 1995262315, 2511886432U, 3162277660U, 3981071706U}
+ };
+
+-u8 rtw_cck_rates[] = { DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M };
+-u8 rtw_ofdm_rates[] = {
++const u8 rtw_cck_rates[] = { DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M };
++
++const u8 rtw_ofdm_rates[] = {
+ DESC_RATE6M, DESC_RATE9M, DESC_RATE12M,
+ DESC_RATE18M, DESC_RATE24M, DESC_RATE36M,
+ DESC_RATE48M, DESC_RATE54M
+ };
+-u8 rtw_ht_1s_rates[] = {
++
++const u8 rtw_ht_1s_rates[] = {
+ DESC_RATEMCS0, DESC_RATEMCS1, DESC_RATEMCS2,
+ DESC_RATEMCS3, DESC_RATEMCS4, DESC_RATEMCS5,
+ DESC_RATEMCS6, DESC_RATEMCS7
+ };
+-u8 rtw_ht_2s_rates[] = {
++
++const u8 rtw_ht_2s_rates[] = {
+ DESC_RATEMCS8, DESC_RATEMCS9, DESC_RATEMCS10,
+ DESC_RATEMCS11, DESC_RATEMCS12, DESC_RATEMCS13,
+ DESC_RATEMCS14, DESC_RATEMCS15
+ };
+-u8 rtw_vht_1s_rates[] = {
++
++const u8 rtw_vht_1s_rates[] = {
+ DESC_RATEVHT1SS_MCS0, DESC_RATEVHT1SS_MCS1,
+ DESC_RATEVHT1SS_MCS2, DESC_RATEVHT1SS_MCS3,
+ DESC_RATEVHT1SS_MCS4, DESC_RATEVHT1SS_MCS5,
+ DESC_RATEVHT1SS_MCS6, DESC_RATEVHT1SS_MCS7,
+ DESC_RATEVHT1SS_MCS8, DESC_RATEVHT1SS_MCS9
+ };
+-u8 rtw_vht_2s_rates[] = {
++
++const u8 rtw_vht_2s_rates[] = {
+ DESC_RATEVHT2SS_MCS0, DESC_RATEVHT2SS_MCS1,
+ DESC_RATEVHT2SS_MCS2, DESC_RATEVHT2SS_MCS3,
+ DESC_RATEVHT2SS_MCS4, DESC_RATEVHT2SS_MCS5,
+ DESC_RATEVHT2SS_MCS6, DESC_RATEVHT2SS_MCS7,
+ DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
+ };
+-u8 *rtw_rate_section[RTW_RATE_SECTION_MAX] = {
++
++const u8 * const rtw_rate_section[RTW_RATE_SECTION_MAX] = {
+ rtw_cck_rates, rtw_ofdm_rates,
+ rtw_ht_1s_rates, rtw_ht_2s_rates,
+ rtw_vht_1s_rates, rtw_vht_2s_rates
+ };
+ EXPORT_SYMBOL(rtw_rate_section);
+
+-u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
++const u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
+ ARRAY_SIZE(rtw_cck_rates),
+ ARRAY_SIZE(rtw_ofdm_rates),
+ ARRAY_SIZE(rtw_ht_1s_rates),
+@@ -2214,7 +2220,7 @@ static void rtw_phy_set_tx_power_index_b
+ {
+ struct rtw_hal *hal = &rtwdev->hal;
+ u8 regd = rtw_regd_get(rtwdev);
+- u8 *rates;
++ const u8 *rates;
+ u8 size;
+ u8 rate;
+ u8 pwr_idx;
+@@ -2274,7 +2280,7 @@ EXPORT_SYMBOL(rtw_phy_set_tx_power_level
+
+ static void
+ rtw_phy_tx_power_by_rate_config_by_path(struct rtw_hal *hal, u8 path,
+- u8 rs, u8 size, u8 *rates)
++ u8 rs, u8 size, const u8 *rates)
+ {
+ u8 rate;
+ u8 base_idx, rate_idx;
+--- a/drivers/net/wireless/realtek/rtw88/phy.h
++++ b/drivers/net/wireless/realtek/rtw88/phy.h
+@@ -7,14 +7,14 @@
+
+ #include "debug.h"
+
+-extern u8 rtw_cck_rates[];
+-extern u8 rtw_ofdm_rates[];
+-extern u8 rtw_ht_1s_rates[];
+-extern u8 rtw_ht_2s_rates[];
+-extern u8 rtw_vht_1s_rates[];
+-extern u8 rtw_vht_2s_rates[];
+-extern u8 *rtw_rate_section[];
+-extern u8 rtw_rate_size[];
++extern const u8 rtw_cck_rates[];
++extern const u8 rtw_ofdm_rates[];
++extern const u8 rtw_ht_1s_rates[];
++extern const u8 rtw_ht_2s_rates[];
++extern const u8 rtw_vht_1s_rates[];
++extern const u8 rtw_vht_2s_rates[];
++extern const u8 * const rtw_rate_section[];
++extern const u8 rtw_rate_size[];
+
+ void rtw_phy_init(struct rtw_dev *rtwdev);
+ void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev);
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -1147,7 +1147,7 @@ static void rtw_sdio_declaim(struct rtw_
+ sdio_release_host(sdio_func);
+ }
+
+-static struct rtw_hci_ops rtw_sdio_ops = {
++static const struct rtw_hci_ops rtw_sdio_ops = {
+ .tx_write = rtw_sdio_tx_write,
+ .tx_kick_off = rtw_sdio_tx_kick_off,
+ .setup = rtw_sdio_setup,
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -844,7 +844,7 @@ static void rtw_usb_dynamic_rx_agg(struc
+ }
+ }
+
+-static struct rtw_hci_ops rtw_usb_ops = {
++static const struct rtw_hci_ops rtw_usb_ops = {
+ .tx_write = rtw_usb_tx_write,
+ .tx_kick_off = rtw_usb_tx_kick_off,
+ .setup = rtw_usb_setup,
diff --git a/package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch b/package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch
new file mode 100644
index 0000000000..4a6d512154
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/073-v6.15-wifi-rtw88-Rename-RTW_RATE_SECTION_MAX-to-RTW_RATE_S.patch
@@ -0,0 +1,227 @@
+From ad815f3920035a0c5b6ffe45bddc9fb308194b49 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:40:58 +0200
+Subject: [PATCH] wifi: rtw88: Rename RTW_RATE_SECTION_MAX to
+ RTW_RATE_SECTION_NUM
+
+It fits the meaning of the enum better.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/5a1c5a46-8ebb-43b0-9ab1-b78e2a22b3d2@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 12 +++++-----
+ drivers/net/wireless/realtek/rtw88/phy.c | 24 +++++++++----------
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw88xxa.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/sar.c | 2 +-
+ 7 files changed, 23 insertions(+), 23 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -168,7 +168,7 @@ enum rtw_rate_section {
+ RTW_RATE_SECTION_VHT_2S,
+
+ /* keep last */
+- RTW_RATE_SECTION_MAX,
++ RTW_RATE_SECTION_NUM,
+ };
+
+ enum rtw_wireless_set {
+@@ -1937,7 +1937,7 @@ union rtw_sar_cfg {
+
+ struct rtw_sar {
+ enum rtw_sar_sources src;
+- union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_MAX];
++ union rtw_sar_cfg cfg[RTW_RF_PATH_MAX][RTW_RATE_SECTION_NUM];
+ };
+
+ struct rtw_hal {
+@@ -1981,16 +1981,16 @@ struct rtw_hal {
+ s8 tx_pwr_by_rate_offset_5g[RTW_RF_PATH_MAX]
+ [DESC_RATE_MAX];
+ s8 tx_pwr_by_rate_base_2g[RTW_RF_PATH_MAX]
+- [RTW_RATE_SECTION_MAX];
++ [RTW_RATE_SECTION_NUM];
+ s8 tx_pwr_by_rate_base_5g[RTW_RF_PATH_MAX]
+- [RTW_RATE_SECTION_MAX];
++ [RTW_RATE_SECTION_NUM];
+ s8 tx_pwr_limit_2g[RTW_REGD_MAX]
+ [RTW_CHANNEL_WIDTH_MAX]
+- [RTW_RATE_SECTION_MAX]
++ [RTW_RATE_SECTION_NUM]
+ [RTW_MAX_CHANNEL_NUM_2G];
+ s8 tx_pwr_limit_5g[RTW_REGD_MAX]
+ [RTW_CHANNEL_WIDTH_MAX]
+- [RTW_RATE_SECTION_MAX]
++ [RTW_RATE_SECTION_NUM]
+ [RTW_MAX_CHANNEL_NUM_5G];
+ s8 tx_pwr_tbl[RTW_RF_PATH_MAX]
+ [DESC_RATE_MAX];
+--- a/drivers/net/wireless/realtek/rtw88/phy.c
++++ b/drivers/net/wireless/realtek/rtw88/phy.c
+@@ -88,14 +88,14 @@ const u8 rtw_vht_2s_rates[] = {
+ DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
+ };
+
+-const u8 * const rtw_rate_section[RTW_RATE_SECTION_MAX] = {
++const u8 * const rtw_rate_section[RTW_RATE_SECTION_NUM] = {
+ rtw_cck_rates, rtw_ofdm_rates,
+ rtw_ht_1s_rates, rtw_ht_2s_rates,
+ rtw_vht_1s_rates, rtw_vht_2s_rates
+ };
+ EXPORT_SYMBOL(rtw_rate_section);
+
+-const u8 rtw_rate_size[RTW_RATE_SECTION_MAX] = {
++const u8 rtw_rate_size[RTW_RATE_SECTION_NUM] = {
+ ARRAY_SIZE(rtw_cck_rates),
+ ARRAY_SIZE(rtw_ofdm_rates),
+ ARRAY_SIZE(rtw_ht_1s_rates),
+@@ -1596,7 +1596,7 @@ static void rtw_phy_set_tx_power_limit(s
+ ch_idx = rtw_channel_to_idx(band, ch);
+
+ if (regd >= RTW_REGD_MAX || bw >= RTW_CHANNEL_WIDTH_MAX ||
+- rs >= RTW_RATE_SECTION_MAX || ch_idx < 0) {
++ rs >= RTW_RATE_SECTION_NUM || ch_idx < 0) {
+ WARN(1,
+ "wrong txpwr_lmt regd=%u, band=%u bw=%u, rs=%u, ch_idx=%u, pwr_limit=%d\n",
+ regd, band, bw, rs, ch_idx, pwr_limit);
+@@ -1701,7 +1701,7 @@ rtw_cfg_txpwr_lmt_by_alt(struct rtw_dev
+ u8 bw, rs;
+
+ for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
+ __cfg_txpwr_lmt_by_alt(&rtwdev->hal, regd, regd_alt,
+ bw, rs);
+ }
+@@ -2060,7 +2060,7 @@ static u8 rtw_phy_get_5g_tx_power_index(
+ return tx_power;
+ }
+
+-/* return RTW_RATE_SECTION_MAX to indicate rate is invalid */
++/* return RTW_RATE_SECTION_NUM to indicate rate is invalid */
+ static u8 rtw_phy_rate_to_rate_section(u8 rate)
+ {
+ if (rate >= DESC_RATE1M && rate <= DESC_RATE11M)
+@@ -2076,7 +2076,7 @@ static u8 rtw_phy_rate_to_rate_section(u
+ else if (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9)
+ return RTW_RATE_SECTION_VHT_2S;
+ else
+- return RTW_RATE_SECTION_MAX;
++ return RTW_RATE_SECTION_NUM;
+ }
+
+ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
+@@ -2094,7 +2094,7 @@ static s8 rtw_phy_get_tx_power_limit(str
+ if (regd > RTW_REGD_WW)
+ return power_limit;
+
+- if (rs == RTW_RATE_SECTION_MAX)
++ if (rs == RTW_RATE_SECTION_NUM)
+ goto err;
+
+ /* only 20M BW with cck and ofdm */
+@@ -2138,7 +2138,7 @@ static s8 rtw_phy_get_tx_power_sar(struc
+ .rs = rs,
+ };
+
+- if (rs == RTW_RATE_SECTION_MAX)
++ if (rs == RTW_RATE_SECTION_NUM)
+ goto err;
+
+ return rtw_query_sar(rtwdev, &arg);
+@@ -2227,7 +2227,7 @@ static void rtw_phy_set_tx_power_index_b
+ u8 bw;
+ int i;
+
+- if (rs >= RTW_RATE_SECTION_MAX)
++ if (rs >= RTW_RATE_SECTION_NUM)
+ return;
+
+ rates = rtw_rate_section[rs];
+@@ -2258,7 +2258,7 @@ static void rtw_phy_set_tx_power_level_b
+ else
+ rs = RTW_RATE_SECTION_OFDM;
+
+- for (; rs < RTW_RATE_SECTION_MAX; rs++)
++ for (; rs < RTW_RATE_SECTION_NUM; rs++)
+ rtw_phy_set_tx_power_index_by_rs(rtwdev, ch, path, rs);
+ }
+
+@@ -2353,7 +2353,7 @@ void rtw_phy_tx_power_limit_config(struc
+
+ for (regd = 0; regd < RTW_REGD_MAX; regd++)
+ for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
+ __rtw_phy_tx_power_limit_config(hal, regd, bw, rs);
+ }
+
+@@ -2389,7 +2389,7 @@ void rtw_phy_init_tx_power(struct rtw_de
+ /* init tx power limit */
+ for (regd = 0; regd < RTW_REGD_MAX; regd++)
+ for (bw = 0; bw < RTW_CHANNEL_WIDTH_MAX; bw++)
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
+ rtw_phy_init_tx_power_limit(rtwdev, regd, bw,
+ rs);
+ }
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -709,7 +709,7 @@ static void rtw8821c_set_tx_power_index(
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
+ if (rs == RTW_RATE_SECTION_HT_2S ||
+ rs == RTW_RATE_SECTION_VHT_2S)
+ continue;
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -964,7 +964,7 @@ static void rtw8822b_set_tx_power_index(
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++)
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
+ rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs,
+ &phy_pwr_idx);
+ }
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -2746,7 +2746,7 @@ static void rtw8822c_set_tx_power_index(
+ s8 diff_idx[4];
+
+ rtw8822c_set_write_tx_power_ref(rtwdev, pwr_ref_cck, pwr_ref_ofdm);
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
+ for (j = 0; j < rtw_rate_size[rs]; j++) {
+ rate = rtw_rate_section[rs][j];
+ pwr_a = hal->tx_pwr_tbl[RF_PATH_A][rate];
+--- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
+@@ -1637,7 +1637,7 @@ void rtw88xxa_set_tx_power_index(struct
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_MAX; rs++) {
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
+ if (hal->rf_path_num == 1 &&
+ (rs == RTW_RATE_SECTION_HT_2S ||
+ rs == RTW_RATE_SECTION_VHT_2S))
+--- a/drivers/net/wireless/realtek/rtw88/sar.c
++++ b/drivers/net/wireless/realtek/rtw88/sar.c
+@@ -97,7 +97,7 @@ int rtw_set_sar_specs(struct rtw_dev *rt
+ power, BIT(RTW_COMMON_SAR_FCT));
+
+ for (j = 0; j < RTW_RF_PATH_MAX; j++) {
+- for (k = 0; k < RTW_RATE_SECTION_MAX; k++) {
++ for (k = 0; k < RTW_RATE_SECTION_NUM; k++) {
+ arg = (struct rtw_sar_arg){
+ .sar_band = idx,
+ .path = j,
diff --git a/package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch b/package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch
new file mode 100644
index 0000000000..fc9aa3b971
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/074-v6.15-wifi-rtw88-Extend-TX-power-stuff-for-3-4-spatial-str.patch
@@ -0,0 +1,369 @@
+From 0f98a59596579b34932c06aec7d52c1e835fa1f0 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:41:43 +0200
+Subject: [PATCH] wifi: rtw88: Extend TX power stuff for 3-4 spatial streams
+
+Although the RTL8814AU only has 3 spatial streams, maybe some other chip
+has 4.
+
+Correct the TX power index and TX power limit calculations for 3SS and
+4SS HT/VHT rates.
+
+With this the RTL8814AU can set the TX power correctly.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/d0c0e126-0794-4c4e-9203-ea39a707b673@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 5 +
+ drivers/net/wireless/realtek/rtw88/phy.c | 145 ++++++++++++------
+ drivers/net/wireless/realtek/rtw88/phy.h | 4 +
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw88xxa.c | 2 +-
+ 7 files changed, 111 insertions(+), 51 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -166,6 +166,11 @@ enum rtw_rate_section {
+ RTW_RATE_SECTION_HT_2S,
+ RTW_RATE_SECTION_VHT_1S,
+ RTW_RATE_SECTION_VHT_2S,
++ __RTW_RATE_SECTION_2SS_MAX = RTW_RATE_SECTION_VHT_2S,
++ RTW_RATE_SECTION_HT_3S,
++ RTW_RATE_SECTION_HT_4S,
++ RTW_RATE_SECTION_VHT_3S,
++ RTW_RATE_SECTION_VHT_4S,
+
+ /* keep last */
+ RTW_RATE_SECTION_NUM,
+--- a/drivers/net/wireless/realtek/rtw88/phy.c
++++ b/drivers/net/wireless/realtek/rtw88/phy.c
+@@ -88,10 +88,40 @@ const u8 rtw_vht_2s_rates[] = {
+ DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9
+ };
+
++const u8 rtw_ht_3s_rates[] = {
++ DESC_RATEMCS16, DESC_RATEMCS17, DESC_RATEMCS18,
++ DESC_RATEMCS19, DESC_RATEMCS20, DESC_RATEMCS21,
++ DESC_RATEMCS22, DESC_RATEMCS23
++};
++
++const u8 rtw_ht_4s_rates[] = {
++ DESC_RATEMCS24, DESC_RATEMCS25, DESC_RATEMCS26,
++ DESC_RATEMCS27, DESC_RATEMCS28, DESC_RATEMCS29,
++ DESC_RATEMCS30, DESC_RATEMCS31
++};
++
++const u8 rtw_vht_3s_rates[] = {
++ DESC_RATEVHT3SS_MCS0, DESC_RATEVHT3SS_MCS1,
++ DESC_RATEVHT3SS_MCS2, DESC_RATEVHT3SS_MCS3,
++ DESC_RATEVHT3SS_MCS4, DESC_RATEVHT3SS_MCS5,
++ DESC_RATEVHT3SS_MCS6, DESC_RATEVHT3SS_MCS7,
++ DESC_RATEVHT3SS_MCS8, DESC_RATEVHT3SS_MCS9
++};
++
++const u8 rtw_vht_4s_rates[] = {
++ DESC_RATEVHT4SS_MCS0, DESC_RATEVHT4SS_MCS1,
++ DESC_RATEVHT4SS_MCS2, DESC_RATEVHT4SS_MCS3,
++ DESC_RATEVHT4SS_MCS4, DESC_RATEVHT4SS_MCS5,
++ DESC_RATEVHT4SS_MCS6, DESC_RATEVHT4SS_MCS7,
++ DESC_RATEVHT4SS_MCS8, DESC_RATEVHT4SS_MCS9
++};
++
+ const u8 * const rtw_rate_section[RTW_RATE_SECTION_NUM] = {
+ rtw_cck_rates, rtw_ofdm_rates,
+ rtw_ht_1s_rates, rtw_ht_2s_rates,
+- rtw_vht_1s_rates, rtw_vht_2s_rates
++ rtw_vht_1s_rates, rtw_vht_2s_rates,
++ rtw_ht_3s_rates, rtw_ht_4s_rates,
++ rtw_vht_3s_rates, rtw_vht_4s_rates
+ };
+ EXPORT_SYMBOL(rtw_rate_section);
+
+@@ -101,17 +131,14 @@ const u8 rtw_rate_size[RTW_RATE_SECTION_
+ ARRAY_SIZE(rtw_ht_1s_rates),
+ ARRAY_SIZE(rtw_ht_2s_rates),
+ ARRAY_SIZE(rtw_vht_1s_rates),
+- ARRAY_SIZE(rtw_vht_2s_rates)
++ ARRAY_SIZE(rtw_vht_2s_rates),
++ ARRAY_SIZE(rtw_ht_3s_rates),
++ ARRAY_SIZE(rtw_ht_4s_rates),
++ ARRAY_SIZE(rtw_vht_3s_rates),
++ ARRAY_SIZE(rtw_vht_4s_rates)
+ };
+ EXPORT_SYMBOL(rtw_rate_size);
+
+-static const u8 rtw_cck_size = ARRAY_SIZE(rtw_cck_rates);
+-static const u8 rtw_ofdm_size = ARRAY_SIZE(rtw_ofdm_rates);
+-static const u8 rtw_ht_1s_size = ARRAY_SIZE(rtw_ht_1s_rates);
+-static const u8 rtw_ht_2s_size = ARRAY_SIZE(rtw_ht_2s_rates);
+-static const u8 rtw_vht_1s_size = ARRAY_SIZE(rtw_vht_1s_rates);
+-static const u8 rtw_vht_2s_size = ARRAY_SIZE(rtw_vht_2s_rates);
+-
+ enum rtw_phy_band_type {
+ PHY_BAND_2G = 0,
+ PHY_BAND_5G = 1,
+@@ -1640,11 +1667,15 @@ rtw_xref_5g_txpwr_lmt(struct rtw_dev *rt
+ static void
+ rtw_xref_txpwr_lmt_by_rs(struct rtw_dev *rtwdev, u8 regd, u8 bw, u8 ch_idx)
+ {
++ static const u8 rs_cmp[4][2] = {
++ {RTW_RATE_SECTION_HT_1S, RTW_RATE_SECTION_VHT_1S},
++ {RTW_RATE_SECTION_HT_2S, RTW_RATE_SECTION_VHT_2S},
++ {RTW_RATE_SECTION_HT_3S, RTW_RATE_SECTION_VHT_3S},
++ {RTW_RATE_SECTION_HT_4S, RTW_RATE_SECTION_VHT_4S}
++ };
+ u8 rs_idx, rs_ht, rs_vht;
+- u8 rs_cmp[2][2] = {{RTW_RATE_SECTION_HT_1S, RTW_RATE_SECTION_VHT_1S},
+- {RTW_RATE_SECTION_HT_2S, RTW_RATE_SECTION_VHT_2S} };
+
+- for (rs_idx = 0; rs_idx < 2; rs_idx++) {
++ for (rs_idx = 0; rs_idx < 4; rs_idx++) {
+ rs_ht = rs_cmp[rs_idx][0];
+ rs_vht = rs_cmp[rs_idx][1];
+
+@@ -1965,10 +1996,10 @@ static u8 rtw_phy_get_2g_tx_power_index(
+ u8 rate, u8 group)
+ {
+ const struct rtw_chip_info *chip = rtwdev->chip;
+- u8 tx_power;
+- bool mcs_rate;
+- bool above_2ss;
++ bool above_2ss, above_3ss, above_4ss;
+ u8 factor = chip->txgi_factor;
++ bool mcs_rate;
++ u8 tx_power;
+
+ if (rate <= DESC_RATE11M)
+ tx_power = pwr_idx_2g->cck_base[group];
+@@ -1978,11 +2009,15 @@ static u8 rtw_phy_get_2g_tx_power_index(
+ if (rate >= DESC_RATE6M && rate <= DESC_RATE54M)
+ tx_power += pwr_idx_2g->ht_1s_diff.ofdm * factor;
+
+- mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
++ mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31) ||
+ (rate >= DESC_RATEVHT1SS_MCS0 &&
+- rate <= DESC_RATEVHT2SS_MCS9);
+- above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
++ rate <= DESC_RATEVHT4SS_MCS9);
++ above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS31) ||
+ (rate >= DESC_RATEVHT2SS_MCS0);
++ above_3ss = (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS31) ||
++ (rate >= DESC_RATEVHT3SS_MCS0);
++ above_4ss = (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31) ||
++ (rate >= DESC_RATEVHT4SS_MCS0);
+
+ if (!mcs_rate)
+ return tx_power;
+@@ -1995,11 +2030,19 @@ static u8 rtw_phy_get_2g_tx_power_index(
+ tx_power += pwr_idx_2g->ht_1s_diff.bw20 * factor;
+ if (above_2ss)
+ tx_power += pwr_idx_2g->ht_2s_diff.bw20 * factor;
++ if (above_3ss)
++ tx_power += pwr_idx_2g->ht_3s_diff.bw20 * factor;
++ if (above_4ss)
++ tx_power += pwr_idx_2g->ht_4s_diff.bw20 * factor;
+ break;
+ case RTW_CHANNEL_WIDTH_40:
+ /* bw40 is the base power */
+ if (above_2ss)
+ tx_power += pwr_idx_2g->ht_2s_diff.bw40 * factor;
++ if (above_3ss)
++ tx_power += pwr_idx_2g->ht_3s_diff.bw40 * factor;
++ if (above_4ss)
++ tx_power += pwr_idx_2g->ht_4s_diff.bw40 * factor;
+ break;
+ }
+
+@@ -2012,19 +2055,23 @@ static u8 rtw_phy_get_5g_tx_power_index(
+ u8 rate, u8 group)
+ {
+ const struct rtw_chip_info *chip = rtwdev->chip;
+- u8 tx_power;
++ bool above_2ss, above_3ss, above_4ss;
++ u8 factor = chip->txgi_factor;
+ u8 upper, lower;
+ bool mcs_rate;
+- bool above_2ss;
+- u8 factor = chip->txgi_factor;
++ u8 tx_power;
+
+ tx_power = pwr_idx_5g->bw40_base[group];
+
+- mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS15) ||
++ mcs_rate = (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31) ||
+ (rate >= DESC_RATEVHT1SS_MCS0 &&
+- rate <= DESC_RATEVHT2SS_MCS9);
+- above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15) ||
++ rate <= DESC_RATEVHT4SS_MCS9);
++ above_2ss = (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS31) ||
+ (rate >= DESC_RATEVHT2SS_MCS0);
++ above_3ss = (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS31) ||
++ (rate >= DESC_RATEVHT3SS_MCS0);
++ above_4ss = (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31) ||
++ (rate >= DESC_RATEVHT4SS_MCS0);
+
+ if (!mcs_rate) {
+ tx_power += pwr_idx_5g->ht_1s_diff.ofdm * factor;
+@@ -2039,11 +2086,19 @@ static u8 rtw_phy_get_5g_tx_power_index(
+ tx_power += pwr_idx_5g->ht_1s_diff.bw20 * factor;
+ if (above_2ss)
+ tx_power += pwr_idx_5g->ht_2s_diff.bw20 * factor;
++ if (above_3ss)
++ tx_power += pwr_idx_5g->ht_3s_diff.bw20 * factor;
++ if (above_4ss)
++ tx_power += pwr_idx_5g->ht_4s_diff.bw20 * factor;
+ break;
+ case RTW_CHANNEL_WIDTH_40:
+ /* bw40 is the base power */
+ if (above_2ss)
+ tx_power += pwr_idx_5g->ht_2s_diff.bw40 * factor;
++ if (above_3ss)
++ tx_power += pwr_idx_5g->ht_3s_diff.bw40 * factor;
++ if (above_4ss)
++ tx_power += pwr_idx_5g->ht_4s_diff.bw40 * factor;
+ break;
+ case RTW_CHANNEL_WIDTH_80:
+ /* the base idx of bw80 is the average of bw40+/bw40- */
+@@ -2054,6 +2109,10 @@ static u8 rtw_phy_get_5g_tx_power_index(
+ tx_power += pwr_idx_5g->vht_1s_diff.bw80 * factor;
+ if (above_2ss)
+ tx_power += pwr_idx_5g->vht_2s_diff.bw80 * factor;
++ if (above_3ss)
++ tx_power += pwr_idx_5g->vht_3s_diff.bw80 * factor;
++ if (above_4ss)
++ tx_power += pwr_idx_5g->vht_4s_diff.bw80 * factor;
+ break;
+ }
+
+@@ -2071,10 +2130,18 @@ static u8 rtw_phy_rate_to_rate_section(u
+ return RTW_RATE_SECTION_HT_1S;
+ else if (rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15)
+ return RTW_RATE_SECTION_HT_2S;
++ else if (rate >= DESC_RATEMCS16 && rate <= DESC_RATEMCS23)
++ return RTW_RATE_SECTION_HT_3S;
++ else if (rate >= DESC_RATEMCS24 && rate <= DESC_RATEMCS31)
++ return RTW_RATE_SECTION_HT_4S;
+ else if (rate >= DESC_RATEVHT1SS_MCS0 && rate <= DESC_RATEVHT1SS_MCS9)
+ return RTW_RATE_SECTION_VHT_1S;
+ else if (rate >= DESC_RATEVHT2SS_MCS0 && rate <= DESC_RATEVHT2SS_MCS9)
+ return RTW_RATE_SECTION_VHT_2S;
++ else if (rate >= DESC_RATEVHT3SS_MCS0 && rate <= DESC_RATEVHT3SS_MCS9)
++ return RTW_RATE_SECTION_VHT_3S;
++ else if (rate >= DESC_RATEVHT4SS_MCS0 && rate <= DESC_RATEVHT4SS_MCS9)
++ return RTW_RATE_SECTION_VHT_4S;
+ else
+ return RTW_RATE_SECTION_NUM;
+ }
+@@ -2102,7 +2169,7 @@ static s8 rtw_phy_get_tx_power_limit(str
+ bw = RTW_CHANNEL_WIDTH_20;
+
+ /* only 20/40M BW with ht */
+- if (rs == RTW_RATE_SECTION_HT_1S || rs == RTW_RATE_SECTION_HT_2S)
++ if (rate >= DESC_RATEMCS0 && rate <= DESC_RATEMCS31)
+ bw = min_t(u8, bw, RTW_CHANNEL_WIDTH_40);
+
+ /* select min power limit among [20M BW ~ current BW] */
+@@ -2286,7 +2353,7 @@ rtw_phy_tx_power_by_rate_config_by_path(
+ u8 base_idx, rate_idx;
+ s8 base_2g, base_5g;
+
+- if (rs >= RTW_RATE_SECTION_VHT_1S)
++ if (size == 10) /* VHT rates */
+ base_idx = rates[size - 3];
+ else
+ base_idx = rates[size - 1];
+@@ -2303,28 +2370,12 @@ rtw_phy_tx_power_by_rate_config_by_path(
+
+ void rtw_phy_tx_power_by_rate_config(struct rtw_hal *hal)
+ {
+- u8 path;
++ u8 path, rs;
+
+- for (path = 0; path < RTW_RF_PATH_MAX; path++) {
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_CCK,
+- rtw_cck_size, rtw_cck_rates);
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_OFDM,
+- rtw_ofdm_size, rtw_ofdm_rates);
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_HT_1S,
+- rtw_ht_1s_size, rtw_ht_1s_rates);
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_HT_2S,
+- rtw_ht_2s_size, rtw_ht_2s_rates);
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_VHT_1S,
+- rtw_vht_1s_size, rtw_vht_1s_rates);
+- rtw_phy_tx_power_by_rate_config_by_path(hal, path,
+- RTW_RATE_SECTION_VHT_2S,
+- rtw_vht_2s_size, rtw_vht_2s_rates);
+- }
++ for (path = 0; path < RTW_RF_PATH_MAX; path++)
++ for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
++ rtw_phy_tx_power_by_rate_config_by_path(hal, path, rs,
++ rtw_rate_size[rs], rtw_rate_section[rs]);
+ }
+
+ static void
+--- a/drivers/net/wireless/realtek/rtw88/phy.h
++++ b/drivers/net/wireless/realtek/rtw88/phy.h
+@@ -13,6 +13,10 @@ extern const u8 rtw_ht_1s_rates[];
+ extern const u8 rtw_ht_2s_rates[];
+ extern const u8 rtw_vht_1s_rates[];
+ extern const u8 rtw_vht_2s_rates[];
++extern const u8 rtw_ht_3s_rates[];
++extern const u8 rtw_ht_4s_rates[];
++extern const u8 rtw_vht_3s_rates[];
++extern const u8 rtw_vht_4s_rates[];
+ extern const u8 * const rtw_rate_section[];
+ extern const u8 rtw_rate_size[];
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -709,7 +709,7 @@ static void rtw8821c_set_tx_power_index(
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
++ for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
+ if (rs == RTW_RATE_SECTION_HT_2S ||
+ rs == RTW_RATE_SECTION_VHT_2S)
+ continue;
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -964,7 +964,7 @@ static void rtw8822b_set_tx_power_index(
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++)
++ for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++)
+ rtw8822b_set_tx_power_index_by_rate(rtwdev, path, rs,
+ &phy_pwr_idx);
+ }
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -2746,7 +2746,7 @@ static void rtw8822c_set_tx_power_index(
+ s8 diff_idx[4];
+
+ rtw8822c_set_write_tx_power_ref(rtwdev, pwr_ref_cck, pwr_ref_ofdm);
+- for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
++ for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
+ for (j = 0; j < rtw_rate_size[rs]; j++) {
+ rate = rtw_rate_section[rs][j];
+ pwr_a = hal->tx_pwr_tbl[RF_PATH_A][rate];
+--- a/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw88xxa.c
+@@ -1637,7 +1637,7 @@ void rtw88xxa_set_tx_power_index(struct
+ int rs, path;
+
+ for (path = 0; path < hal->rf_path_num; path++) {
+- for (rs = 0; rs < RTW_RATE_SECTION_NUM; rs++) {
++ for (rs = 0; rs <= __RTW_RATE_SECTION_2SS_MAX; rs++) {
+ if (hal->rf_path_num == 1 &&
+ (rs == RTW_RATE_SECTION_HT_2S ||
+ rs == RTW_RATE_SECTION_VHT_2S))
diff --git a/package/kernel/mac80211/patches/rtl/075-v6.14.9-wifi-rtw88-Fix-rtw_update_sta_info-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/075-v6.14.9-wifi-rtw88-Fix-rtw_update_sta_info-for-RTL8814AU.patch
new file mode 100644
index 0000000000..64bc7f8707
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/075-v6.14.9-wifi-rtw88-Fix-rtw_update_sta_info-for-RTL8814AU.patch
@@ -0,0 +1,61 @@
+From 9f00e2218e15a2ea3c284567424a100c10b6fb85 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 4 Feb 2025 20:42:08 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_update_sta_info() for RTL8814AU
+
+This function tells the firmware what rates it can use.
+
+Put the 3SS and 4SS HT rates supported by the other station into the
+rate mask.
+
+Remove the 3SS and 4SS rates from the rate mask if the hardware only has
+2 spatial streams.
+
+And finally, select the right rate ID (a parameter for the firmware)
+when the hardware has 3 spatial streams.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/48d1d90f-2aeb-4ec5-9a24-0980e10eae1e@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -1234,7 +1234,9 @@ void rtw_update_sta_info(struct rtw_dev
+ if (sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_RXLDPC)
+ ldpc_en = VHT_LDPC_EN;
+ } else if (sta->deflink.ht_cap.ht_supported) {
+- ra_mask |= (sta->deflink.ht_cap.mcs.rx_mask[1] << 20) |
++ ra_mask |= ((u64)sta->deflink.ht_cap.mcs.rx_mask[3] << 36) |
++ ((u64)sta->deflink.ht_cap.mcs.rx_mask[2] << 28) |
++ (sta->deflink.ht_cap.mcs.rx_mask[1] << 20) |
+ (sta->deflink.ht_cap.mcs.rx_mask[0] << 12);
+ if (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_RX_STBC)
+ stbc_en = HT_STBC_EN;
+@@ -1244,6 +1246,9 @@ void rtw_update_sta_info(struct rtw_dev
+
+ if (efuse->hw_cap.nss == 1 || rtwdev->hal.txrx_1ss)
+ ra_mask &= RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS;
++ else if (efuse->hw_cap.nss == 2)
++ ra_mask &= RA_MASK_VHT_RATES_2SS | RA_MASK_HT_RATES_2SS |
++ RA_MASK_VHT_RATES_1SS | RA_MASK_HT_RATES_1SS;
+
+ if (hal->current_band_type == RTW_BAND_5G) {
+ ra_mask |= (u64)sta->deflink.supp_rates[NL80211_BAND_5GHZ] << 4;
+@@ -1302,10 +1307,9 @@ void rtw_update_sta_info(struct rtw_dev
+ break;
+ }
+
+- if (sta->deflink.vht_cap.vht_supported && ra_mask & 0xffc00000)
+- tx_num = 2;
+- else if (sta->deflink.ht_cap.ht_supported && ra_mask & 0xfff00000)
+- tx_num = 2;
++ if (sta->deflink.vht_cap.vht_supported ||
++ sta->deflink.ht_cap.ht_supported)
++ tx_num = efuse->hw_cap.nss;
+
+ rate_id = get_rate_id(wireless_set, bw_mode, tx_num);
+
diff --git a/package/kernel/mac80211/patches/rtl/076-v6.14-wifi-rtw88-Add-support-for-Mercusys-MA30N-and-D-Link.patch b/package/kernel/mac80211/patches/rtl/076-v6.14-wifi-rtw88-Add-support-for-Mercusys-MA30N-and-D-Link.patch
new file mode 100644
index 0000000000..e281cf6ece
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/076-v6.14-wifi-rtw88-Add-support-for-Mercusys-MA30N-and-D-Link.patch
@@ -0,0 +1,31 @@
+From 80c4668d024ff7b5427d90b5fad655ce9461c7b1 Mon Sep 17 00:00:00 2001
+From: Zenm Chen <zenmchen@gmail.com>
+Date: Mon, 10 Feb 2025 15:36:10 +0800
+Subject: [PATCH] wifi: rtw88: Add support for Mercusys MA30N and D-Link
+ DWA-T185 rev. A1
+
+Add two more USB IDs found in
+https://github.com/RinCat/RTL88x2BU-Linux-Driver
+to support Mercusys MA30N and D-Link DWA-T185 rev. A1.
+
+Signed-off-by: Zenm Chen <zenmchen@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250210073610.4174-1-zenmchen@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
+@@ -73,6 +73,10 @@ static const struct usb_device_id rtw_88
+ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* ELECOM WDB-867DU3S */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x0107, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* Mercusys MA30H */
++ { USB_DEVICE_AND_INTERFACE_INFO(0x2c4e, 0x010a, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* Mercusys MA30N */
++ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3322, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* D-Link DWA-T185 rev. A1 */
+ {},
+ };
+ MODULE_DEVICE_TABLE(usb, rtw_8822bu_id_table);
diff --git a/package/kernel/mac80211/patches/rtl/077-v6.14.9-wifi-rtw88-Fix-rtw_mac_power_switch-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/077-v6.14.9-wifi-rtw88-Fix-rtw_mac_power_switch-for-RTL8814AU.patch
new file mode 100644
index 0000000000..092a7677bd
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/077-v6.14.9-wifi-rtw88-Fix-rtw_mac_power_switch-for-RTL8814AU.patch
@@ -0,0 +1,27 @@
+From e66bca16638ee59e997f9d9a3711b3ae587d04d9 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:28:59 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_mac_power_switch() for RTL8814AU
+
+rtw_mac_power_switch() checks bit 8 of REG_SYS_STATUS1 to see if the
+chip is powered on. This bit appears to be always on in the RTL8814AU,
+so ignore it.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/2f0fcffb-3067-4d95-a68c-f2f3a5a47921@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/mac.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/mac.c
++++ b/drivers/net/wireless/realtek/rtw88/mac.c
+@@ -291,6 +291,7 @@ static int rtw_mac_power_switch(struct r
+ if (rtw_read8(rtwdev, REG_CR) == 0xea)
+ cur_pwr = false;
+ else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB &&
++ chip->id != RTW_CHIP_TYPE_8814A &&
+ (rtw_read8(rtwdev, REG_SYS_STATUS1 + 1) & BIT(0)))
+ cur_pwr = false;
+ else
diff --git a/package/kernel/mac80211/patches/rtl/078-v6.14.9-wifi-rtw88-Fix-rtw_desc_to_mcsrate-to-handle-MCS16-3.patch b/package/kernel/mac80211/patches/rtl/078-v6.14.9-wifi-rtw88-Fix-rtw_desc_to_mcsrate-to-handle-MCS16-3.patch
new file mode 100644
index 0000000000..c9588ad545
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/078-v6.14.9-wifi-rtw88-Fix-rtw_desc_to_mcsrate-to-handle-MCS16-3.patch
@@ -0,0 +1,32 @@
+From 86d04f8f991a0509e318fe886d5a1cf795736c7d Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:29:52 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31
+
+This function translates the rate number reported by the hardware into
+something mac80211 can understand. It was ignoring the 3SS and 4SS HT
+rates. Translate them too.
+
+Also set *nss to 0 for the HT rates, just to make sure it's
+initialised.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/d0a5a86b-4869-47f6-a5a7-01c0f987cc7f@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/util.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/util.c
++++ b/drivers/net/wireless/realtek/rtw88/util.c
+@@ -101,7 +101,8 @@ void rtw_desc_to_mcsrate(u16 rate, u8 *m
+ *nss = 4;
+ *mcs = rate - DESC_RATEVHT4SS_MCS0;
+ } else if (rate >= DESC_RATEMCS0 &&
+- rate <= DESC_RATEMCS15) {
++ rate <= DESC_RATEMCS31) {
++ *nss = 0;
+ *mcs = rate - DESC_RATEMCS0;
+ }
+ }
diff --git a/package/kernel/mac80211/patches/rtl/079-v6.14.9-wifi-rtw88-Fix-rtw_init_ht_cap-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/079-v6.14.9-wifi-rtw88-Fix-rtw_init_ht_cap-for-RTL8814AU.patch
new file mode 100644
index 0000000000..78014f898b
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/079-v6.14.9-wifi-rtw88-Fix-rtw_init_ht_cap-for-RTL8814AU.patch
@@ -0,0 +1,49 @@
+From c7eea1ba05ca5b0dbf77a27cf2e1e6e2fb3c0043 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:30:22 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_init_ht_cap() for RTL8814AU
+
+Set the RX mask and the highest RX rate according to the number of
+spatial streams the chip can receive. For RTL8814AU that is 3.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/4e786f50-ed1c-4387-8b28-e6ff00e35e81@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 17 ++++++-----------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -1565,6 +1565,7 @@ static void rtw_init_ht_cap(struct rtw_d
+ {
+ const struct rtw_chip_info *chip = rtwdev->chip;
+ struct rtw_efuse *efuse = &rtwdev->efuse;
++ int i;
+
+ ht_cap->ht_supported = true;
+ ht_cap->cap = 0;
+@@ -1584,17 +1585,11 @@ static void rtw_init_ht_cap(struct rtw_d
+ ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
+ ht_cap->ampdu_density = chip->ampdu_density;
+ ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
+- if (efuse->hw_cap.nss > 1) {
+- ht_cap->mcs.rx_mask[0] = 0xFF;
+- ht_cap->mcs.rx_mask[1] = 0xFF;
+- ht_cap->mcs.rx_mask[4] = 0x01;
+- ht_cap->mcs.rx_highest = cpu_to_le16(300);
+- } else {
+- ht_cap->mcs.rx_mask[0] = 0xFF;
+- ht_cap->mcs.rx_mask[1] = 0x00;
+- ht_cap->mcs.rx_mask[4] = 0x01;
+- ht_cap->mcs.rx_highest = cpu_to_le16(150);
+- }
++
++ for (i = 0; i < efuse->hw_cap.nss; i++)
++ ht_cap->mcs.rx_mask[i] = 0xFF;
++ ht_cap->mcs.rx_mask[4] = 0x01;
++ ht_cap->mcs.rx_highest = cpu_to_le16(150 * efuse->hw_cap.nss);
+ }
+
+ static void rtw_init_vht_cap(struct rtw_dev *rtwdev,
diff --git a/package/kernel/mac80211/patches/rtl/080-v6.14.9-wifi-rtw88-Fix-rtw_init_vht_cap-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/080-v6.14.9-wifi-rtw88-Fix-rtw_init_vht_cap-for-RTL8814AU.patch
new file mode 100644
index 0000000000..e5f0de87d6
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/080-v6.14.9-wifi-rtw88-Fix-rtw_init_vht_cap-for-RTL8814AU.patch
@@ -0,0 +1,58 @@
+From 6be7544d19fcfcb729495e793bc6181f85bb8949 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:30:48 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU
+
+Set the MCS maps and the highest rates according to the number of
+spatial streams the chip has. For RTL8814AU that is 3.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/e86aa009-b5bf-4b3a-8112-ea5e3cd49465@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 23 +++++++++--------------
+ 1 file changed, 9 insertions(+), 14 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -1596,8 +1596,9 @@ static void rtw_init_vht_cap(struct rtw_
+ struct ieee80211_sta_vht_cap *vht_cap)
+ {
+ struct rtw_efuse *efuse = &rtwdev->efuse;
+- u16 mcs_map;
++ u16 mcs_map = 0;
+ __le16 highest;
++ int i;
+
+ if (efuse->hw_cap.ptcl != EFUSE_HW_CAP_IGNORE &&
+ efuse->hw_cap.ptcl != EFUSE_HW_CAP_PTCL_VHT)
+@@ -1620,21 +1621,15 @@ static void rtw_init_vht_cap(struct rtw_
+ if (rtw_chip_has_rx_ldpc(rtwdev))
+ vht_cap->cap |= IEEE80211_VHT_CAP_RXLDPC;
+
+- mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9 << 0 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 4 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 6 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 8 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 10 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
+- IEEE80211_VHT_MCS_NOT_SUPPORTED << 14;
+- if (efuse->hw_cap.nss > 1) {
+- highest = cpu_to_le16(780);
+- mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << 2;
+- } else {
+- highest = cpu_to_le16(390);
+- mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << 2;
++ for (i = 0; i < 8; i++) {
++ if (i < efuse->hw_cap.nss)
++ mcs_map |= IEEE80211_VHT_MCS_SUPPORT_0_9 << (i * 2);
++ else
++ mcs_map |= IEEE80211_VHT_MCS_NOT_SUPPORTED << (i * 2);
+ }
+
++ highest = cpu_to_le16(390 * efuse->hw_cap.nss);
++
+ vht_cap->vht_mcs.rx_mcs_map = cpu_to_le16(mcs_map);
+ vht_cap->vht_mcs.tx_mcs_map = cpu_to_le16(mcs_map);
+ vht_cap->vht_mcs.rx_highest = highest;
diff --git a/package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch
new file mode 100644
index 0000000000..a1ca98f8b6
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/081-v6.15-wifi-rtw88-Fix-rtw_rx_phy_stat-for-RTL8814AU.patch
@@ -0,0 +1,54 @@
+From 053a7aace0207593776c729f229d87f1be464b98 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:31:13 +0200
+Subject: [PATCH] wifi: rtw88: Fix rtw_rx_phy_stat() for RTL8814AU
+
+Record statistics for the 3SS rates too.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/39e3c7cf-37ed-4c0e-af00-dcd9eab351f0@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 7 +++++++
+ drivers/net/wireless/realtek/rtw88/rx.c | 6 ++++++
+ 2 files changed, 13 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -386,6 +386,9 @@ enum rtw_evm {
+ RTW_EVM_1SS,
+ RTW_EVM_2SS_A,
+ RTW_EVM_2SS_B,
++ RTW_EVM_3SS_A,
++ RTW_EVM_3SS_B,
++ RTW_EVM_3SS_C,
+ /* keep it last */
+ RTW_EVM_NUM
+ };
+@@ -403,6 +406,10 @@ enum rtw_snr {
+ RTW_SNR_2SS_B,
+ RTW_SNR_2SS_C,
+ RTW_SNR_2SS_D,
++ RTW_SNR_3SS_A,
++ RTW_SNR_3SS_B,
++ RTW_SNR_3SS_C,
++ RTW_SNR_3SS_D,
+ /* keep it last */
+ RTW_SNR_NUM
+ };
+--- a/drivers/net/wireless/realtek/rtw88/rx.c
++++ b/drivers/net/wireless/realtek/rtw88/rx.c
+@@ -73,6 +73,12 @@ static void rtw_rx_phy_stat(struct rtw_d
+ rate_ss_evm = 2;
+ evm_id = RTW_EVM_2SS_A;
+ break;
++ case DESC_RATEMCS16...DESC_RATEMCS23:
++ case DESC_RATEVHT3SS_MCS0...DESC_RATEVHT3SS_MCS9:
++ rate_ss = 3;
++ rate_ss_evm = 3;
++ evm_id = RTW_EVM_3SS_A;
++ break;
+ default:
+ rtw_warn(rtwdev, "unknown pkt rate = %d\n", pkt_stat->rate);
+ return;
diff --git a/package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch b/package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch
new file mode 100644
index 0000000000..2ac27f39e7
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/082-v6.15-wifi-rtw88-Extend-rtw_phy_config_swing_table-for-RTL.patch
@@ -0,0 +1,75 @@
+From 8b42c46cf6656ef3c2f6d1ec0f113753c6875712 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:31:51 +0200
+Subject: [PATCH] wifi: rtw88: Extend rtw_phy_config_swing_table() for
+ RTL8814AU
+
+Select the TX power tracking tables for RF paths C and D as well.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/e1e532c9-8733-4ec8-84fe-ced4af6c08da@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/phy.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/phy.c
++++ b/drivers/net/wireless/realtek/rtw88/phy.c
+@@ -2458,32 +2458,56 @@ void rtw_phy_config_swing_table(struct r
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_2g_ccka_n;
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_2g_cckb_p;
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_2g_cckb_n;
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_2g_cckc_p;
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_2g_cckc_n;
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_2g_cckd_p;
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_2g_cckd_n;
+ } else {
+ swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_2gc_p;
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_2gc_n;
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_2gd_p;
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_2gd_n;
+ }
+ } else if (IS_CH_5G_BAND_1(channel) || IS_CH_5G_BAND_2(channel)) {
+ swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_1];
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_1];
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_1];
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_1];
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_1];
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_1];
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_1];
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_1];
+ } else if (IS_CH_5G_BAND_3(channel)) {
+ swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_2];
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_2];
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_2];
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_2];
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_2];
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_2];
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_2];
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_2];
+ } else if (IS_CH_5G_BAND_4(channel)) {
+ swing_table->p[RF_PATH_A] = tbl->pwrtrk_5ga_p[RTW_PWR_TRK_5G_3];
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_5ga_n[RTW_PWR_TRK_5G_3];
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_5gb_p[RTW_PWR_TRK_5G_3];
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_5gb_n[RTW_PWR_TRK_5G_3];
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_5gc_p[RTW_PWR_TRK_5G_3];
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_5gc_n[RTW_PWR_TRK_5G_3];
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_5gd_p[RTW_PWR_TRK_5G_3];
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_5gd_n[RTW_PWR_TRK_5G_3];
+ } else {
+ swing_table->p[RF_PATH_A] = tbl->pwrtrk_2ga_p;
+ swing_table->n[RF_PATH_A] = tbl->pwrtrk_2ga_n;
+ swing_table->p[RF_PATH_B] = tbl->pwrtrk_2gb_p;
+ swing_table->n[RF_PATH_B] = tbl->pwrtrk_2gb_n;
++ swing_table->p[RF_PATH_C] = tbl->pwrtrk_2gc_p;
++ swing_table->n[RF_PATH_C] = tbl->pwrtrk_2gc_n;
++ swing_table->p[RF_PATH_D] = tbl->pwrtrk_2gd_p;
++ swing_table->n[RF_PATH_D] = tbl->pwrtrk_2gd_n;
+ }
+ }
+ EXPORT_SYMBOL(rtw_phy_config_swing_table);
diff --git a/package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch b/package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch
new file mode 100644
index 0000000000..d34d72a0fb
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/083-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_phy_info-for-RTL88.patch
@@ -0,0 +1,86 @@
+From cfebabdd351e9cbafdc99cb198db482208ec5ad9 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:32:15 +0200
+Subject: [PATCH] wifi: rtw88: Extend rtw_debugfs_get_phy_info() for RTL8814AU
+
+Print information about the 3rd and 4th RF paths and about the 3rd
+spatial stream.
+
+Also, fix a small bug: don't show the average SNR and EVM for the OFDM
+and HT/VHT rates when the rate is actually CCK 11M.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/7c8e94e2-e034-40f3-bdaf-b000018b5573@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/debug.c | 37 +++++++++++++++-------
+ 1 file changed, 26 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/debug.c
++++ b/drivers/net/wireless/realtek/rtw88/debug.c
+@@ -654,10 +654,10 @@ static void rtw_print_rate(struct seq_fi
+ case DESC_RATE6M...DESC_RATE54M:
+ rtw_print_ofdm_rate_txt(m, rate);
+ break;
+- case DESC_RATEMCS0...DESC_RATEMCS15:
++ case DESC_RATEMCS0...DESC_RATEMCS31:
+ rtw_print_ht_rate_txt(m, rate);
+ break;
+- case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT2SS_MCS9:
++ case DESC_RATEVHT1SS_MCS0...DESC_RATEVHT4SS_MCS9:
+ rtw_print_vht_rate_txt(m, rate);
+ break;
+ default:
+@@ -849,20 +849,28 @@ static int rtw_debugfs_get_phy_info(stru
+ last_cnt->num_qry_pkt[rate_id + 9]);
+ }
+
+- seq_printf(m, "[RSSI(dBm)] = {%d, %d}\n",
++ seq_printf(m, "[RSSI(dBm)] = {%d, %d, %d, %d}\n",
+ dm_info->rssi[RF_PATH_A] - 100,
+- dm_info->rssi[RF_PATH_B] - 100);
+- seq_printf(m, "[Rx EVM(dB)] = {-%d, -%d}\n",
++ dm_info->rssi[RF_PATH_B] - 100,
++ dm_info->rssi[RF_PATH_C] - 100,
++ dm_info->rssi[RF_PATH_D] - 100);
++ seq_printf(m, "[Rx EVM(dB)] = {-%d, -%d, -%d, -%d}\n",
+ dm_info->rx_evm_dbm[RF_PATH_A],
+- dm_info->rx_evm_dbm[RF_PATH_B]);
+- seq_printf(m, "[Rx SNR] = {%d, %d}\n",
++ dm_info->rx_evm_dbm[RF_PATH_B],
++ dm_info->rx_evm_dbm[RF_PATH_C],
++ dm_info->rx_evm_dbm[RF_PATH_D]);
++ seq_printf(m, "[Rx SNR] = {%d, %d, %d, %d}\n",
+ dm_info->rx_snr[RF_PATH_A],
+- dm_info->rx_snr[RF_PATH_B]);
+- seq_printf(m, "[CFO_tail(KHz)] = {%d, %d}\n",
++ dm_info->rx_snr[RF_PATH_B],
++ dm_info->rx_snr[RF_PATH_C],
++ dm_info->rx_snr[RF_PATH_D]);
++ seq_printf(m, "[CFO_tail(KHz)] = {%d, %d, %d, %d}\n",
+ dm_info->cfo_tail[RF_PATH_A],
+- dm_info->cfo_tail[RF_PATH_B]);
++ dm_info->cfo_tail[RF_PATH_B],
++ dm_info->cfo_tail[RF_PATH_C],
++ dm_info->cfo_tail[RF_PATH_D]);
+
+- if (dm_info->curr_rx_rate >= DESC_RATE11M) {
++ if (dm_info->curr_rx_rate >= DESC_RATE6M) {
+ seq_puts(m, "[Rx Average Status]:\n");
+ seq_printf(m, " * OFDM, EVM: {-%d}, SNR: {%d}\n",
+ (u8)ewma_evm_read(&ewma_evm[RTW_EVM_OFDM]),
+@@ -875,6 +883,13 @@ static int rtw_debugfs_get_phy_info(stru
+ (u8)ewma_evm_read(&ewma_evm[RTW_EVM_2SS_B]),
+ (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_A]),
+ (u8)ewma_snr_read(&ewma_snr[RTW_SNR_2SS_B]));
++ seq_printf(m, " * 3SS, EVM: {-%d, -%d, -%d}, SNR: {%d, %d, %d}\n",
++ (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_A]),
++ (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_B]),
++ (u8)ewma_evm_read(&ewma_evm[RTW_EVM_3SS_C]),
++ (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_A]),
++ (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_B]),
++ (u8)ewma_snr_read(&ewma_snr[RTW_SNR_3SS_C]));
+ }
+
+ seq_puts(m, "[Rx Counter]:\n");
diff --git a/package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch b/package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch
new file mode 100644
index 0000000000..75fff03ed4
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/084-v6.15-wifi-rtw88-Extend-rtw_debugfs_get_tx_pwr_tbl-for-RTL.patch
@@ -0,0 +1,65 @@
+From c374281f828545b3698cf936b584249c2f9e40c5 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Tue, 18 Feb 2025 01:32:49 +0200
+Subject: [PATCH] wifi: rtw88: Extend rtw_debugfs_get_tx_pwr_tbl() for
+ RTL8814AU
+
+Make it print the TX power details for all RF paths, not just A and B,
+and for all the rates supported by the chip, not just 1SS and 2SS
+rates.
+
+Also skip the RF paths and rates not supported by the chip.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/ea65a978-a735-4c97-af82-d7fe26f95da1@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/debug.c | 20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/debug.c
++++ b/drivers/net/wireless/realtek/rtw88/debug.c
+@@ -692,9 +692,11 @@ static int rtw_debugfs_get_tx_pwr_tbl(st
+ {
+ struct rtw_debugfs_priv *debugfs_priv = m->private;
+ struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
++ struct rtw_power_params pwr_param = {0};
+ struct rtw_hal *hal = &rtwdev->hal;
++ u8 nss = rtwdev->efuse.hw_cap.nss;
+ u8 path, rate, bw, ch, regd;
+- struct rtw_power_params pwr_param = {0};
++ u8 max_ht_rate, max_rate;
+
+ mutex_lock(&rtwdev->mutex);
+ bw = hal->current_band_width;
+@@ -707,19 +709,23 @@ static int rtw_debugfs_get_tx_pwr_tbl(st
+ seq_printf(m, "%-4s %-10s %-9s %-9s (%-4s %-4s %-4s) %-4s\n",
+ "path", "rate", "pwr", "base", "byr", "lmt", "sar", "rem");
+
++ max_ht_rate = DESC_RATEMCS0 + nss * 8 - 1;
++
++ if (rtwdev->chip->vht_supported)
++ max_rate = DESC_RATEVHT1SS_MCS0 + nss * 10 - 1;
++ else
++ max_rate = max_ht_rate;
++
+ mutex_lock(&hal->tx_power_mutex);
+- for (path = RF_PATH_A; path <= RF_PATH_B; path++) {
++ for (path = RF_PATH_A; path < hal->rf_path_num; path++) {
+ /* there is no CCK rates used in 5G */
+ if (hal->current_band_type == RTW_BAND_5G)
+ rate = DESC_RATE6M;
+ else
+ rate = DESC_RATE1M;
+
+- /* now, not support vht 3ss and vht 4ss*/
+- for (; rate <= DESC_RATEVHT2SS_MCS9; rate++) {
+- /* now, not support ht 3ss and ht 4ss*/
+- if (rate > DESC_RATEMCS15 &&
+- rate < DESC_RATEVHT1SS_MCS0)
++ for (; rate <= max_rate; rate++) {
++ if (rate > max_ht_rate && rate <= DESC_RATEMCS31)
+ continue;
+
+ rtw_get_tx_power_params(rtwdev, path, rate, bw,
diff --git a/package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch
new file mode 100644
index 0000000000..d14f1eae4e
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/085-v6.15-wifi-rtw88-Add-some-definitions-for-RTL8814AU.patch
@@ -0,0 +1,200 @@
+From 679ec431477cdb68d1cab068c008da0de7f842ef Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:22:17 +0200
+Subject: [PATCH] wifi: rtw88: Add some definitions for RTL8814AU
+
+Add various register definitions which will be used by the new driver.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/1dcb5abb-26f8-4db5-be36-057de56465e5@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/reg.h | 66 ++++++++++++++++++++++--
+ 1 file changed, 62 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/reg.h
++++ b/drivers/net/wireless/realtek/rtw88/reg.h
+@@ -8,6 +8,7 @@
+ #define REG_SYS_FUNC_EN 0x0002
+ #define BIT_FEN_EN_25_1 BIT(13)
+ #define BIT_FEN_ELDR BIT(12)
++#define BIT_FEN_PCIEA BIT(6)
+ #define BIT_FEN_CPUEN BIT(2)
+ #define BIT_FEN_USBA BIT(2)
+ #define BIT_FEN_BB_GLB_RST BIT(1)
+@@ -39,6 +40,9 @@
+ #define BIT_RF_RSTB BIT(1)
+ #define BIT_RF_EN BIT(0)
+
++#define REG_RF_CTRL1 0x0020
++#define REG_RF_CTRL2 0x0021
++
+ #define REG_AFE_CTRL1 0x0024
+ #define BIT_MAC_CLK_SEL (BIT(20) | BIT(21))
+ #define REG_EFUSE_CTRL 0x0030
+@@ -73,6 +77,8 @@
+ #define BIT_BT_PTA_EN BIT(5)
+ #define BIT_WLRFE_4_5_EN BIT(2)
+
++#define REG_GPIO_PIN_CTRL 0x0044
++
+ #define REG_LED_CFG 0x004C
+ #define BIT_LNAON_SEL_EN BIT(26)
+ #define BIT_PAPE_SEL_EN BIT(25)
+@@ -110,6 +116,7 @@
+ #define BIT_SDIO_PAD_E5 BIT(18)
+
+ #define REG_RF_B_CTRL 0x76
++#define REG_RF_CTRL3 0x0076
+
+ #define REG_AFE_CTRL_4 0x0078
+ #define BIT_CK320M_AFE_EN BIT(4)
+@@ -603,15 +610,25 @@
+ #define REG_CCA2ND 0x0838
+ #define REG_L1PKTH 0x0848
+ #define REG_CLKTRK 0x0860
++#define REG_CSI_MASK_SETTING1 0x0874
++#define REG_NBI_SETTING 0x087c
++#define BIT_NBI_ENABLE BIT(13)
++#define REG_CSI_FIX_MASK0 0x0880
++#define REG_CSI_FIX_MASK1 0x0884
++#define REG_CSI_FIX_MASK6 0x0898
++#define REG_CSI_FIX_MASK7 0x089c
+ #define REG_ADCCLK 0x08AC
+ #define REG_HSSI_READ 0x08B0
+ #define REG_FPGA0_XCD_RF_PARA 0x08B4
+ #define REG_RX_MCS_LIMIT 0x08BC
+ #define REG_ADC160 0x08C4
++#define REG_DBGSEL 0x08fc
+ #define REG_ANTSEL_SW 0x0900
+ #define REG_DAC_RSTB 0x090c
++#define REG_PSD 0x0910
++#define BIT_PSD_INI GENMASK(23, 22)
+ #define REG_SINGLE_TONE_CONT_TX 0x0914
+-
++#define REG_AGC_TABLE 0x0958
+ #define REG_RFE_CTRL_E 0x0974
+ #define REG_2ND_CCA_CTRL 0x0976
+ #define REG_IQK_COM00 0x0978
+@@ -621,10 +638,18 @@
+
+ #define REG_FAS 0x09a4
+ #define REG_RXSB 0x0a00
++#define BIT_RXSB_ANA_DIV BIT(15)
+ #define REG_CCK_RX 0x0a04
+ #define REG_CCK_PD_TH 0x0a0a
+-
+-#define REG_CCK0_FAREPORT 0xa2c
++#define REG_PRECTRL 0x0a14
++#define BIT_DIS_CO_PATHSEL BIT(7)
++#define BIT_IQ_WGT GENMASK(9, 8)
++#define REG_CCA_MF 0x0a20
++#define BIT_MBC_WIN GENMASK(5, 4)
++#define REG_CCK0_TX_FILTER1 0x0a20
++#define REG_CCK0_TX_FILTER2 0x0a24
++#define REG_CCK0_DEBUG_PORT 0x0a28
++#define REG_CCK0_FAREPORT 0x0a2c
+ #define BIT_CCK0_2RX BIT(18)
+ #define BIT_CCK0_MRC BIT(22)
+ #define REG_FA_CCK 0x0a5c
+@@ -643,10 +668,18 @@
+ #define DIS_DPD_RATEVHT2SS_MCS1 BIT(9)
+ #define DIS_DPD_RATEALL GENMASK(9, 0)
+
++#define REG_CCA 0x0a70
++#define BIT_CCA_CO BIT(7)
++#define REG_ANTSEL 0x0a74
++#define BIT_ANT_BYCO BIT(8)
++#define REG_CCKTX 0x0a84
++#define BIT_CMB_CCA_2R BIT(28)
++
+ #define REG_CNTRST 0x0b58
+
+ #define REG_3WIRE_SWA 0x0c00
+ #define REG_RX_IQC_AB_A 0x0c10
++#define REG_RX_IQC_CD_A 0x0c14
+ #define REG_TXSCALE_A 0x0c1c
+ #define BB_SWING_MASK GENMASK(31, 21)
+ #define REG_TX_AGC_A_CCK_11_CCK_1 0xc20
+@@ -674,7 +707,7 @@
+ #define REG_LSSI_WRITE_A 0x0c90
+ #define REG_PREDISTA 0x0c90
+ #define REG_TXAGCIDX 0x0c94
+-
++#define REG_TX_AGC_A 0x0c94
+ #define REG_RFE_PINMUX_A 0x0cb0
+ #define REG_RFE_INV_A 0x0cb4
+ #define REG_RFE_CTRL8 0x0cb4
+@@ -683,6 +716,7 @@
+ #define DPDT_CTRL_PIN 0x77
+ #define RFE_INV_MASK 0x3ff00000
+ #define REG_RFECTL_A 0x0cb8
++#define REG_RFE_INV0 0x0cbc
+ #define REG_RFE_INV8 0x0cbd
+ #define BIT_MASK_RFE_INV89 GENMASK(1, 0)
+ #define REG_RFE_INV16 0x0cbe
+@@ -703,6 +737,7 @@
+
+ #define REG_3WIRE_SWB 0x0e00
+ #define REG_RX_IQC_AB_B 0x0e10
++#define REG_RX_IQC_CD_B 0x0e14
+ #define REG_TXSCALE_B 0x0e1c
+ #define REG_TX_AGC_B_CCK_11_CCK_1 0xe20
+ #define REG_TX_AGC_B_OFDM18_OFDM6 0xe24
+@@ -729,6 +764,7 @@
+ #define REG_LSSI_WRITE_B 0x0e90
+ #define REG_PREDISTB 0x0e90
+ #define REG_INIDLYB 0x0e94
++#define REG_TX_AGC_B 0x0e94
+ #define REG_RFE_PINMUX_B 0x0eb0
+ #define REG_RFE_INV_B 0x0eb4
+ #define REG_RFECTL_B 0x0eb8
+@@ -744,8 +780,11 @@
+ #define REG_CRC_HT 0x0f10
+ #define REG_CRC_OFDM 0x0f14
+ #define REG_FA_OFDM 0x0f48
++#define REG_DBGRPT 0x0fa0
+ #define REG_CCA_CCK 0x0fcc
+
++#define REG_SYS_CFG3_8814A 0x1000
++
+ #define REG_ANAPARSW_MAC_0 0x1010
+ #define BIT_CF_L_V2 GENMASK(29, 28)
+
+@@ -863,9 +902,27 @@
+ #define LTECOEX_WRITE_DATA REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1
+ #define LTECOEX_READ_DATA REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1
+
++#define REG_RX_IQC_AB_C 0x1810
++#define REG_RX_IQC_CD_C 0x1814
++#define REG_TXSCALE_C 0x181c
++#define REG_CK_MONHC 0x185c
++#define REG_AFE_PWR1_C 0x1860
+ #define REG_IGN_GNT_BT1 0x1860
++#define REG_TX_AGC_C 0x1894
++#define REG_RFE_PINMUX_C 0x18b4
+
+ #define REG_RFESEL_CTRL 0x1990
++#define REG_AGC_TBL 0x1998
++
++#define REG_RX_IQC_AB_D 0x1a10
++#define REG_RX_IQC_CD_D 0x1a14
++#define REG_TXSCALE_D 0x1a1c
++#define REG_CK_MONHD 0x1a5c
++#define REG_AFE_PWR1_D 0x1a60
++#define REG_TX_AGC_D 0x1a94
++#define REG_RFE_PINMUX_D 0x1ab4
++#define REG_RFE_INVSEL_D 0x1abc
++#define BIT_RFE_SELSW0_D GENMASK(27, 20)
+
+ #define REG_NOMASK_TXBT 0x1ca7
+ #define REG_ANAPAR 0x1c30
+@@ -906,6 +963,7 @@
+ #define RF18_BAND_MASK (BIT(16) | BIT(9) | BIT(8))
+ #define RF18_CHANNEL_MASK (MASKBYTE0)
+ #define RF18_RFSI_MASK (BIT(18) | BIT(17))
++#define RF_RCK1_V1 0x1c
+ #define RF_RCK 0x1d
+ #define RF_MODE_TABLE_ADDR 0x30
+ #define RF_MODE_TABLE_DATA0 0x31
diff --git a/package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch b/package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch
new file mode 100644
index 0000000000..6f42855c21
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/086-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-1-2.patch
@@ -0,0 +1,12573 @@
+From f4debfcb1b3c14a28ec157a41e0b98be72e554a0 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:23:22 +0200
+Subject: [PATCH] wifi: rtw88: Add rtw8814a_table.c (part 1/2)
+
+This contains various tables for initialising the RTL8814A, plus TX
+power limits.
+
+Split into two patches because they are big.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/df0b8ceb-2c2f-4bda-906f-a05c7b4d424c@gmail.com
+---
+ .../wireless/realtek/rtw88/rtw8814a_table.c | 12551 ++++++++++++++++
+ 1 file changed, 12551 insertions(+)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
+
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
+@@ -0,0 +1,12551 @@
++// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#include "main.h"
++#include "phy.h"
++#include "rtw8814a_table.h"
++
++static const u32 rtw8814a_mac[] = {
++ 0x010, 0x0000007C,
++ 0x014, 0x000000DB,
++ 0x016, 0x00000002,
++ 0x073, 0x00000010,
++ 0x420, 0x00000080,
++ 0x421, 0x0000000F,
++ 0x428, 0x0000000A,
++ 0x429, 0x00000010,
++ 0x430, 0x00000000,
++ 0x431, 0x00000000,
++ 0x432, 0x00000000,
++ 0x433, 0x00000001,
++ 0x434, 0x00000004,
++ 0x435, 0x00000005,
++ 0x436, 0x00000007,
++ 0x437, 0x00000008,
++ 0x43C, 0x00000004,
++ 0x43D, 0x00000005,
++ 0x43E, 0x00000007,
++ 0x43F, 0x00000008,
++ 0x440, 0x0000005D,
++ 0x441, 0x00000001,
++ 0x442, 0x00000000,
++ 0x444, 0x00000010,
++ 0x445, 0x000000F0,
++ 0x446, 0x00000001,
++ 0x447, 0x000000FE,
++ 0x448, 0x00000000,
++ 0x449, 0x00000000,
++ 0x44A, 0x00000000,
++ 0x44B, 0x00000040,
++ 0x44C, 0x00000010,
++ 0x44D, 0x000000F0,
++ 0x44E, 0x0000003F,
++ 0x44F, 0x00000000,
++ 0x450, 0x00000000,
++ 0x451, 0x00000000,
++ 0x452, 0x00000000,
++ 0x453, 0x00000040,
++ 0x45E, 0x00000004,
++ 0x49C, 0x00000010,
++ 0x49D, 0x000000F0,
++ 0x49E, 0x00000000,
++ 0x49F, 0x00000006,
++ 0x4A0, 0x000000E0,
++ 0x4A1, 0x00000003,
++ 0x4A2, 0x00000000,
++ 0x4A3, 0x00000040,
++ 0x4A4, 0x00000015,
++ 0x4A5, 0x000000F0,
++ 0x4A6, 0x00000000,
++ 0x4A7, 0x00000006,
++ 0x4A8, 0x000000E0,
++ 0x4A9, 0x00000000,
++ 0x4AA, 0x00000000,
++ 0x4AB, 0x00000000,
++ 0x7DA, 0x00000008,
++ 0x1448, 0x00000006,
++ 0x144A, 0x00000006,
++ 0x144C, 0x00000006,
++ 0x144E, 0x00000006,
++ 0x4C8, 0x000000FF,
++ 0x4C9, 0x00000008,
++ 0x4CA, 0x0000003C,
++ 0x4CB, 0x0000003C,
++ 0x4CC, 0x000000FF,
++ 0x4CD, 0x000000FF,
++ 0x4CE, 0x00000001,
++ 0x4CF, 0x00000008,
++ 0x500, 0x00000026,
++ 0x501, 0x000000A2,
++ 0x502, 0x0000002F,
++ 0x503, 0x00000000,
++ 0x504, 0x00000028,
++ 0x505, 0x000000A3,
++ 0x506, 0x0000005E,
++ 0x507, 0x00000000,
++ 0x508, 0x0000002B,
++ 0x509, 0x000000A4,
++ 0x50A, 0x0000005E,
++ 0x50B, 0x00000000,
++ 0x50C, 0x0000004F,
++ 0x50D, 0x000000A4,
++ 0x50E, 0x00000000,
++ 0x50F, 0x00000000,
++ 0x512, 0x0000001C,
++ 0x514, 0x0000000A,
++ 0x516, 0x0000000A,
++ 0x521, 0x0000002F,
++ 0x525, 0x00000047,
++ 0x550, 0x00000010,
++ 0x551, 0x00000010,
++ 0x559, 0x00000002,
++ 0x55C, 0x00000064,
++ 0x55D, 0x000000FF,
++ 0x577, 0x00000003,
++ 0x5BE, 0x00000064,
++ 0x604, 0x00000001,
++ 0x605, 0x00000030,
++ 0x607, 0x00000001,
++ 0x608, 0x0000000E,
++ 0x609, 0x0000002A,
++ 0x60A, 0x00000000,
++ 0x60C, 0x00000018,
++ 0x60D, 0x00000050,
++ 0x6A0, 0x000000FF,
++ 0x6A1, 0x000000FF,
++ 0x6A2, 0x000000FF,
++ 0x6A3, 0x000000FF,
++ 0x6A4, 0x000000FF,
++ 0x6A5, 0x000000FF,
++ 0x6DE, 0x00000084,
++ 0x620, 0x000000FF,
++ 0x621, 0x000000FF,
++ 0x622, 0x000000FF,
++ 0x623, 0x000000FF,
++ 0x624, 0x000000FF,
++ 0x625, 0x000000FF,
++ 0x626, 0x000000FF,
++ 0x627, 0x000000FF,
++ 0x638, 0x00000064,
++ 0x63C, 0x0000000A,
++ 0x63D, 0x0000000A,
++ 0x63E, 0x0000000E,
++ 0x63F, 0x0000000E,
++ 0x640, 0x00000040,
++ 0x642, 0x00000040,
++ 0x643, 0x00000000,
++ 0x652, 0x000000C8,
++ 0x66E, 0x00000005,
++ 0x700, 0x00000021,
++ 0x701, 0x00000043,
++ 0x702, 0x00000065,
++ 0x703, 0x00000087,
++ 0x708, 0x00000021,
++ 0x709, 0x00000043,
++ 0x70A, 0x00000065,
++ 0x70B, 0x00000087,
++ 0x718, 0x00000040,
++ 0x7D5, 0x000000BC,
++ 0x7D8, 0x00000028,
++ 0x7D9, 0x00000000,
++ 0x7DA, 0x0000000B,
++};
++
++RTW_DECL_TABLE_PHY_COND(rtw8814a_mac, rtw_phy_cfg_mac);
++
++static const u32 rtw8814a_agc[] = {
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0xA0000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFD020003,
++ 0x81C, 0xFC040003,
++ 0x81C, 0xFB060003,
++ 0x81C, 0xFA080003,
++ 0x81C, 0xF90A0003,
++ 0x81C, 0xF80C0003,
++ 0x81C, 0xF70E0003,
++ 0x81C, 0xF6100003,
++ 0x81C, 0xF5120003,
++ 0x81C, 0xF4140003,
++ 0x81C, 0xF3160003,
++ 0x81C, 0xF2180003,
++ 0x81C, 0xF11A0003,
++ 0x81C, 0xF01C0003,
++ 0x81C, 0xEF1E0003,
++ 0x81C, 0xEE200003,
++ 0x81C, 0xED220003,
++ 0x81C, 0xCF240003,
++ 0x81C, 0xCE260003,
++ 0x81C, 0xCD280003,
++ 0x81C, 0xCC2A0003,
++ 0x81C, 0xCB2C0003,
++ 0x81C, 0xCA2E0003,
++ 0x81C, 0xC9300003,
++ 0x81C, 0xC8320003,
++ 0x81C, 0xC7340003,
++ 0x81C, 0xC6360003,
++ 0x81C, 0xC5380003,
++ 0x81C, 0xC43A0003,
++ 0x81C, 0xA63C0003,
++ 0x81C, 0xA53E0003,
++ 0x81C, 0xA4400003,
++ 0x81C, 0xA3420003,
++ 0x81C, 0xA2440003,
++ 0x81C, 0xA1460003,
++ 0x81C, 0x86480003,
++ 0x81C, 0x854A0003,
++ 0x81C, 0x844C0003,
++ 0x81C, 0x834E0003,
++ 0x81C, 0x66500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x435C0003,
++ 0x81C, 0x425E0003,
++ 0x81C, 0x41600003,
++ 0x81C, 0x27620003,
++ 0x81C, 0x26640003,
++ 0x81C, 0x25660003,
++ 0x81C, 0x24680003,
++ 0x81C, 0x236A0003,
++ 0x81C, 0x226C0003,
++ 0x81C, 0x216E0003,
++ 0x81C, 0x21700003,
++ 0x81C, 0x21720003,
++ 0x81C, 0x21740003,
++ 0x81C, 0x21760003,
++ 0x81C, 0x21780003,
++ 0x81C, 0x217A0003,
++ 0x81C, 0x217C0003,
++ 0x81C, 0x217E0003,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0x81C, 0xFE020003,
++ 0x81C, 0xFD040003,
++ 0x81C, 0xFC060003,
++ 0x81C, 0xFB080003,
++ 0x81C, 0xFA0A0003,
++ 0x81C, 0xF90C0003,
++ 0x81C, 0xF80E0003,
++ 0x81C, 0xF7100003,
++ 0x81C, 0xF6120003,
++ 0x81C, 0xF5140003,
++ 0x81C, 0xF4160003,
++ 0x81C, 0xF3180003,
++ 0x81C, 0xF21A0003,
++ 0x81C, 0xF11C0003,
++ 0x81C, 0xF01E0003,
++ 0x81C, 0xEF200003,
++ 0x81C, 0xEE220003,
++ 0x81C, 0xED240003,
++ 0x81C, 0xEC260003,
++ 0x81C, 0xEB280003,
++ 0x81C, 0xEA2A0003,
++ 0x81C, 0xE92C0003,
++ 0x81C, 0xE82E0003,
++ 0x81C, 0xE7300003,
++ 0x81C, 0xE6320003,
++ 0x81C, 0xE5340003,
++ 0x81C, 0xE4360003,
++ 0x81C, 0xE3380003,
++ 0x81C, 0xC53A0003,
++ 0x81C, 0xC43C0003,
++ 0x81C, 0xC33E0003,
++ 0x81C, 0xC2400003,
++ 0x81C, 0xC1420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0xA34E0003,
++ 0x81C, 0xA2500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFD020003,
++ 0x81C, 0xFC040003,
++ 0x81C, 0xFB060003,
++ 0x81C, 0xFA080003,
++ 0x81C, 0xF90A0003,
++ 0x81C, 0xF80C0003,
++ 0x81C, 0xF70E0003,
++ 0x81C, 0xF6100003,
++ 0x81C, 0xF5120003,
++ 0x81C, 0xF4140003,
++ 0x81C, 0xF3160003,
++ 0x81C, 0xF2180003,
++ 0x81C, 0xF11A0003,
++ 0x81C, 0xF01C0003,
++ 0x81C, 0xEF1E0003,
++ 0x81C, 0xEE200003,
++ 0x81C, 0xED220003,
++ 0x81C, 0xEC240003,
++ 0x81C, 0xEB260003,
++ 0x81C, 0xEA280003,
++ 0x81C, 0xE92A0003,
++ 0x81C, 0xE82C0003,
++ 0x81C, 0xE72E0003,
++ 0x81C, 0xE6300003,
++ 0x81C, 0xE5320003,
++ 0x81C, 0xE4340003,
++ 0x81C, 0xE3360003,
++ 0x81C, 0xC6380003,
++ 0x81C, 0xC53A0003,
++ 0x81C, 0xC43C0003,
++ 0x81C, 0xC33E0003,
++ 0x81C, 0xC2400003,
++ 0x81C, 0xA9420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0xA34E0003,
++ 0x81C, 0x66500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x49580003,
++ 0x81C, 0x485A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0x81C, 0xFE020003,
++ 0x81C, 0xFD040003,
++ 0x81C, 0xFC060003,
++ 0x81C, 0xFB080003,
++ 0x81C, 0xFA0A0003,
++ 0x81C, 0xF90C0003,
++ 0x81C, 0xF80E0003,
++ 0x81C, 0xF7100003,
++ 0x81C, 0xF6120003,
++ 0x81C, 0xF5140003,
++ 0x81C, 0xF4160003,
++ 0x81C, 0xF3180003,
++ 0x81C, 0xF21A0003,
++ 0x81C, 0xF11C0003,
++ 0x81C, 0xF01E0003,
++ 0x81C, 0xEF200003,
++ 0x81C, 0xEE220003,
++ 0x81C, 0xED240003,
++ 0x81C, 0xEC260003,
++ 0x81C, 0xEB280003,
++ 0x81C, 0xEA2A0003,
++ 0x81C, 0xE92C0003,
++ 0x81C, 0xE82E0003,
++ 0x81C, 0xE7300003,
++ 0x81C, 0xE6320003,
++ 0x81C, 0xE5340003,
++ 0x81C, 0xE4360003,
++ 0x81C, 0xE3380003,
++ 0x81C, 0xC53A0003,
++ 0x81C, 0xC43C0003,
++ 0x81C, 0xC33E0003,
++ 0x81C, 0xC2400003,
++ 0x81C, 0xC1420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0xA34E0003,
++ 0x81C, 0xA2500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFD020003,
++ 0x81C, 0xFC040003,
++ 0x81C, 0xFB060003,
++ 0x81C, 0xFA080003,
++ 0x81C, 0xF90A0003,
++ 0x81C, 0xF80C0003,
++ 0x81C, 0xF70E0003,
++ 0x81C, 0xF6100003,
++ 0x81C, 0xF5120003,
++ 0x81C, 0xF4140003,
++ 0x81C, 0xF3160003,
++ 0x81C, 0xF2180003,
++ 0x81C, 0xF11A0003,
++ 0x81C, 0xF01C0003,
++ 0x81C, 0xEF1E0003,
++ 0x81C, 0xEE200003,
++ 0x81C, 0xED220003,
++ 0x81C, 0xEC240003,
++ 0x81C, 0xEB260003,
++ 0x81C, 0xEA280003,
++ 0x81C, 0xE92A0003,
++ 0x81C, 0xE82C0003,
++ 0x81C, 0xE72E0003,
++ 0x81C, 0xE6300003,
++ 0x81C, 0xE5320003,
++ 0x81C, 0xE4340003,
++ 0x81C, 0xE3360003,
++ 0x81C, 0xC6380003,
++ 0x81C, 0xC53A0003,
++ 0x81C, 0xC43C0003,
++ 0x81C, 0xC33E0003,
++ 0x81C, 0xC2400003,
++ 0x81C, 0xA9420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0xA34E0003,
++ 0x81C, 0x66500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x49580003,
++ 0x81C, 0x485A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xDF000003,
++ 0x81C, 0xDF020003,
++ 0x81C, 0xDF040003,
++ 0x81C, 0xDE060003,
++ 0x81C, 0xDD080003,
++ 0x81C, 0xDC0A0003,
++ 0x81C, 0xDB0C0003,
++ 0x81C, 0xDA0E0003,
++ 0x81C, 0xD9100003,
++ 0x81C, 0xD8120003,
++ 0x81C, 0xD7140003,
++ 0x81C, 0xD6160003,
++ 0x81C, 0xD5180003,
++ 0x81C, 0xD41A0003,
++ 0x81C, 0xD31C0003,
++ 0x81C, 0xD21E0003,
++ 0x81C, 0xD1200003,
++ 0x81C, 0xD0220003,
++ 0x81C, 0xCF240003,
++ 0x81C, 0xCE260003,
++ 0x81C, 0xCD280003,
++ 0x81C, 0xCC2A0003,
++ 0x81C, 0xCB2C0003,
++ 0x81C, 0xCA2E0003,
++ 0x81C, 0xC9300003,
++ 0x81C, 0xC8320003,
++ 0x81C, 0xC7340003,
++ 0x81C, 0xC6360003,
++ 0x81C, 0xC5380003,
++ 0x81C, 0xA73A0003,
++ 0x81C, 0xA63C0003,
++ 0x81C, 0xA53E0003,
++ 0x81C, 0xA4400003,
++ 0x81C, 0xA3420003,
++ 0x81C, 0xA2440003,
++ 0x81C, 0x87460003,
++ 0x81C, 0x86480003,
++ 0x81C, 0x854A0003,
++ 0x81C, 0x844C0003,
++ 0x81C, 0x834E0003,
++ 0x81C, 0x82500003,
++ 0x81C, 0x81520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x445C0003,
++ 0x81C, 0x435E0003,
++ 0x81C, 0x42600003,
++ 0x81C, 0x41620003,
++ 0x81C, 0x27640003,
++ 0x81C, 0x26660003,
++ 0x81C, 0x25680003,
++ 0x81C, 0x246A0003,
++ 0x81C, 0x236C0003,
++ 0x81C, 0x226E0003,
++ 0x81C, 0x21700003,
++ 0x81C, 0x21720003,
++ 0x81C, 0x21740003,
++ 0x81C, 0x21760003,
++ 0x81C, 0x21780003,
++ 0x81C, 0x217A0003,
++ 0x81C, 0x217C0003,
++ 0x81C, 0x217E0003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000003,
++ 0x81C, 0xFE020003,
++ 0x81C, 0xFD040003,
++ 0x81C, 0xFC060003,
++ 0x81C, 0xFB080003,
++ 0x81C, 0xFA0A0003,
++ 0x81C, 0xF90C0003,
++ 0x81C, 0xF80E0003,
++ 0x81C, 0xF7100003,
++ 0x81C, 0xF6120003,
++ 0x81C, 0xF5140003,
++ 0x81C, 0xF4160003,
++ 0x81C, 0xF3180003,
++ 0x81C, 0xF21A0003,
++ 0x81C, 0xF11C0003,
++ 0x81C, 0xF01E0003,
++ 0x81C, 0xEF200003,
++ 0x81C, 0xEE220003,
++ 0x81C, 0xED240003,
++ 0x81C, 0xEC260003,
++ 0x81C, 0xEB280003,
++ 0x81C, 0xEA2A0003,
++ 0x81C, 0xE92C0003,
++ 0x81C, 0xE82E0003,
++ 0x81C, 0xE7300003,
++ 0x81C, 0xE6320003,
++ 0x81C, 0xE5340003,
++ 0x81C, 0xE4360003,
++ 0x81C, 0xE3380003,
++ 0x81C, 0xC53A0003,
++ 0x81C, 0xC43C0003,
++ 0x81C, 0xC33E0003,
++ 0x81C, 0xC2400003,
++ 0x81C, 0xC1420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0xA34E0003,
++ 0x81C, 0xA2500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xDF000003,
++ 0x81C, 0xDF020003,
++ 0x81C, 0xDF040003,
++ 0x81C, 0xDE060003,
++ 0x81C, 0xDD080003,
++ 0x81C, 0xDC0A0003,
++ 0x81C, 0xDB0C0003,
++ 0x81C, 0xDA0E0003,
++ 0x81C, 0xD9100003,
++ 0x81C, 0xD8120003,
++ 0x81C, 0xD7140003,
++ 0x81C, 0xD6160003,
++ 0x81C, 0xD5180003,
++ 0x81C, 0xD41A0003,
++ 0x81C, 0xD31C0003,
++ 0x81C, 0xD21E0003,
++ 0x81C, 0xD1200003,
++ 0x81C, 0xD0220003,
++ 0x81C, 0xCF240003,
++ 0x81C, 0xCE260003,
++ 0x81C, 0xCD280003,
++ 0x81C, 0xCC2A0003,
++ 0x81C, 0xCB2C0003,
++ 0x81C, 0xCA2E0003,
++ 0x81C, 0xC9300003,
++ 0x81C, 0xC8320003,
++ 0x81C, 0xC7340003,
++ 0x81C, 0xC6360003,
++ 0x81C, 0xC5380003,
++ 0x81C, 0xA73A0003,
++ 0x81C, 0xA63C0003,
++ 0x81C, 0xA53E0003,
++ 0x81C, 0xA4400003,
++ 0x81C, 0xA3420003,
++ 0x81C, 0xA2440003,
++ 0x81C, 0x87460003,
++ 0x81C, 0x86480003,
++ 0x81C, 0x854A0003,
++ 0x81C, 0x844C0003,
++ 0x81C, 0x834E0003,
++ 0x81C, 0x82500003,
++ 0x81C, 0x81520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x445C0003,
++ 0x81C, 0x435E0003,
++ 0x81C, 0x42600003,
++ 0x81C, 0x41620003,
++ 0x81C, 0x27640003,
++ 0x81C, 0x26660003,
++ 0x81C, 0x25680003,
++ 0x81C, 0x246A0003,
++ 0x81C, 0x236C0003,
++ 0x81C, 0x226E0003,
++ 0x81C, 0x21700003,
++ 0x81C, 0x21720003,
++ 0x81C, 0x21740003,
++ 0x81C, 0x21760003,
++ 0x81C, 0x21780003,
++ 0x81C, 0x217A0003,
++ 0x81C, 0x217C0003,
++ 0x81C, 0x217E0003,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFE020003,
++ 0x81C, 0xFD040003,
++ 0x81C, 0xFC060003,
++ 0x81C, 0xFB080003,
++ 0x81C, 0xFA0A0003,
++ 0x81C, 0xF90C0003,
++ 0x81C, 0xF80E0003,
++ 0x81C, 0xF7100003,
++ 0x81C, 0xF6120003,
++ 0x81C, 0xF5140003,
++ 0x81C, 0xF4160003,
++ 0x81C, 0xF3180003,
++ 0x81C, 0xF21A0003,
++ 0x81C, 0xF11C0003,
++ 0x81C, 0xF01E0003,
++ 0x81C, 0xEF200003,
++ 0x81C, 0xEE220003,
++ 0x81C, 0xED240003,
++ 0x81C, 0x0F260003,
++ 0x81C, 0x0E280003,
++ 0x81C, 0x0D2A0003,
++ 0x81C, 0x0C2C0003,
++ 0x81C, 0x0B2E0003,
++ 0x81C, 0x0A300003,
++ 0x81C, 0x09320003,
++ 0x81C, 0x08340003,
++ 0x81C, 0x07360003,
++ 0x81C, 0x06380003,
++ 0x81C, 0x053A0003,
++ 0x81C, 0x043C0003,
++ 0x81C, 0x033E0003,
++ 0x81C, 0x23400003,
++ 0x81C, 0x22420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0xA44C0003,
++ 0x81C, 0x684E0003,
++ 0x81C, 0x67500003,
++ 0x81C, 0x66520003,
++ 0x81C, 0x65540003,
++ 0x81C, 0x64560003,
++ 0x81C, 0x63580003,
++ 0x81C, 0x625A0003,
++ 0x81C, 0x615C0003,
++ 0x81C, 0x475E0003,
++ 0x81C, 0x46600003,
++ 0x81C, 0x45620003,
++ 0x81C, 0x44640003,
++ 0x81C, 0x43660003,
++ 0x81C, 0x42680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFE020003,
++ 0x81C, 0xFD040003,
++ 0x81C, 0xFC060003,
++ 0x81C, 0xFB080003,
++ 0x81C, 0xFA0A0003,
++ 0x81C, 0xF90C0003,
++ 0x81C, 0xF80E0003,
++ 0x81C, 0xF7100003,
++ 0x81C, 0xF6120003,
++ 0x81C, 0xF5140003,
++ 0x81C, 0xF4160003,
++ 0x81C, 0xF3180003,
++ 0x81C, 0xF21A0003,
++ 0x81C, 0xF11C0003,
++ 0x81C, 0xF01E0003,
++ 0x81C, 0xEF200003,
++ 0x81C, 0xEE220003,
++ 0x81C, 0xED240003,
++ 0x81C, 0xEC260003,
++ 0x81C, 0xEB280003,
++ 0x81C, 0xEA2A0003,
++ 0x81C, 0xE92C0003,
++ 0x81C, 0xE72E0003,
++ 0x81C, 0xE6300003,
++ 0x81C, 0xE5320003,
++ 0x81C, 0x08340003,
++ 0x81C, 0x07360003,
++ 0x81C, 0x06380003,
++ 0x81C, 0x053A0003,
++ 0x81C, 0x043C0003,
++ 0x81C, 0x033E0003,
++ 0x81C, 0x02400003,
++ 0x81C, 0xA9420003,
++ 0x81C, 0xA8440003,
++ 0x81C, 0xA7460003,
++ 0x81C, 0xA6480003,
++ 0x81C, 0xA54A0003,
++ 0x81C, 0x684C0003,
++ 0x81C, 0x674E0003,
++ 0x81C, 0x66500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x475C0003,
++ 0x81C, 0x465E0003,
++ 0x81C, 0x45600003,
++ 0x81C, 0x44620003,
++ 0x81C, 0x43640003,
++ 0x81C, 0x42660003,
++ 0x81C, 0x41680003,
++ 0x81C, 0x416A0003,
++ 0x81C, 0x416C0003,
++ 0x81C, 0x416E0003,
++ 0x81C, 0x41700003,
++ 0x81C, 0x41720003,
++ 0x81C, 0x41740003,
++ 0x81C, 0x41760003,
++ 0x81C, 0x41780003,
++ 0x81C, 0x417A0003,
++ 0x81C, 0x417C0003,
++ 0x81C, 0x417E0003,
++ 0xA0000000, 0x00000000,
++ 0x81C, 0xFE000003,
++ 0x81C, 0xFD020003,
++ 0x81C, 0xFC040003,
++ 0x81C, 0xFB060003,
++ 0x81C, 0xFA080003,
++ 0x81C, 0xF90A0003,
++ 0x81C, 0xF80C0003,
++ 0x81C, 0xF70E0003,
++ 0x81C, 0xF6100003,
++ 0x81C, 0xF5120003,
++ 0x81C, 0xF4140003,
++ 0x81C, 0xF3160003,
++ 0x81C, 0xF2180003,
++ 0x81C, 0xF11A0003,
++ 0x81C, 0xF01C0003,
++ 0x81C, 0xEF1E0003,
++ 0x81C, 0xEE200003,
++ 0x81C, 0xED220003,
++ 0x81C, 0xCF240003,
++ 0x81C, 0xCE260003,
++ 0x81C, 0xCD280003,
++ 0x81C, 0xCC2A0003,
++ 0x81C, 0xCB2C0003,
++ 0x81C, 0xCA2E0003,
++ 0x81C, 0xC9300003,
++ 0x81C, 0xC8320003,
++ 0x81C, 0xC7340003,
++ 0x81C, 0xC6360003,
++ 0x81C, 0xC5380003,
++ 0x81C, 0xC43A0003,
++ 0x81C, 0xA63C0003,
++ 0x81C, 0xA53E0003,
++ 0x81C, 0xA4400003,
++ 0x81C, 0xA3420003,
++ 0x81C, 0xA2440003,
++ 0x81C, 0xA1460003,
++ 0x81C, 0x86480003,
++ 0x81C, 0x854A0003,
++ 0x81C, 0x844C0003,
++ 0x81C, 0x834E0003,
++ 0x81C, 0x66500003,
++ 0x81C, 0x65520003,
++ 0x81C, 0x64540003,
++ 0x81C, 0x63560003,
++ 0x81C, 0x62580003,
++ 0x81C, 0x615A0003,
++ 0x81C, 0x435C0003,
++ 0x81C, 0x425E0003,
++ 0x81C, 0x41600003,
++ 0x81C, 0x27620003,
++ 0x81C, 0x26640003,
++ 0x81C, 0x25660003,
++ 0x81C, 0x24680003,
++ 0x81C, 0x236A0003,
++ 0x81C, 0x226C0003,
++ 0x81C, 0x216E0003,
++ 0x81C, 0x21700003,
++ 0x81C, 0x21720003,
++ 0x81C, 0x21740003,
++ 0x81C, 0x21760003,
++ 0x81C, 0x21780003,
++ 0x81C, 0x217A0003,
++ 0x81C, 0x217C0003,
++ 0x81C, 0x217E0003,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000103,
++ 0x81C, 0xF8020103,
++ 0x81C, 0xF7040103,
++ 0x81C, 0xF6060103,
++ 0x81C, 0xF5080103,
++ 0x81C, 0xF40A0103,
++ 0x81C, 0xF30C0103,
++ 0x81C, 0xF20E0103,
++ 0x81C, 0xF1100103,
++ 0x81C, 0xF0120103,
++ 0x81C, 0xEF140103,
++ 0x81C, 0xEE160103,
++ 0x81C, 0xED180103,
++ 0x81C, 0xEC1A0103,
++ 0x81C, 0xEB1C0103,
++ 0x81C, 0xEA1E0103,
++ 0x81C, 0xE9200103,
++ 0x81C, 0xE8220103,
++ 0x81C, 0xE7240103,
++ 0x81C, 0xE6260103,
++ 0x81C, 0xE5280103,
++ 0x81C, 0xE42A0103,
++ 0x81C, 0xE32C0103,
++ 0x81C, 0xC32E0103,
++ 0x81C, 0xC2300103,
++ 0x81C, 0xC1320103,
++ 0x81C, 0xA5340103,
++ 0x81C, 0xA4360103,
++ 0x81C, 0xA3380103,
++ 0x81C, 0xA23A0103,
++ 0x81C, 0xA13C0103,
++ 0x81C, 0x843E0103,
++ 0x81C, 0x83400103,
++ 0x81C, 0x82420103,
++ 0x81C, 0x81440103,
++ 0x81C, 0x64460103,
++ 0x81C, 0x63480103,
++ 0x81C, 0x624A0103,
++ 0x81C, 0x614C0103,
++ 0x81C, 0x444E0103,
++ 0x81C, 0x43500103,
++ 0x81C, 0x42520103,
++ 0x81C, 0x41540103,
++ 0x81C, 0x25560103,
++ 0x81C, 0x24580103,
++ 0x81C, 0x235A0103,
++ 0x81C, 0x065C0103,
++ 0x81C, 0x055E0103,
++ 0x81C, 0x04600103,
++ 0x81C, 0x03620103,
++ 0x81C, 0x02640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000103,
++ 0x81C, 0xF7020103,
++ 0x81C, 0xF6040103,
++ 0x81C, 0xF5060103,
++ 0x81C, 0xF4080103,
++ 0x81C, 0xF30A0103,
++ 0x81C, 0xF20C0103,
++ 0x81C, 0xF10E0103,
++ 0x81C, 0xF0100103,
++ 0x81C, 0xEF120103,
++ 0x81C, 0xEE140103,
++ 0x81C, 0xED160103,
++ 0x81C, 0xEC180103,
++ 0x81C, 0xEB1A0103,
++ 0x81C, 0xEA1C0103,
++ 0x81C, 0xE91E0103,
++ 0x81C, 0xE8200103,
++ 0x81C, 0xE7220103,
++ 0x81C, 0xE6240103,
++ 0x81C, 0xE5260103,
++ 0x81C, 0xE4280103,
++ 0x81C, 0xE32A0103,
++ 0x81C, 0xE22C0103,
++ 0x81C, 0xE12E0103,
++ 0x81C, 0xA5300103,
++ 0x81C, 0xA4320103,
++ 0x81C, 0xA3340103,
++ 0x81C, 0xA2360103,
++ 0x81C, 0xA1380103,
++ 0x81C, 0x843A0103,
++ 0x81C, 0x833C0103,
++ 0x81C, 0x823E0103,
++ 0x81C, 0x81400103,
++ 0x81C, 0x64420103,
++ 0x81C, 0x63440103,
++ 0x81C, 0x62460103,
++ 0x81C, 0x61480103,
++ 0x81C, 0x454A0103,
++ 0x81C, 0x444C0103,
++ 0x81C, 0x434E0103,
++ 0x81C, 0x42500103,
++ 0x81C, 0x25520103,
++ 0x81C, 0x24540103,
++ 0x81C, 0x23560103,
++ 0x81C, 0x06580103,
++ 0x81C, 0x055A0103,
++ 0x81C, 0x045C0103,
++ 0x81C, 0x035E0103,
++ 0x81C, 0x02600103,
++ 0x81C, 0x01620103,
++ 0x81C, 0x01640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFC000103,
++ 0x81C, 0xFB020103,
++ 0x81C, 0xFA040103,
++ 0x81C, 0xF9060103,
++ 0x81C, 0xF8080103,
++ 0x81C, 0xF70A0103,
++ 0x81C, 0xF60C0103,
++ 0x81C, 0xF50E0103,
++ 0x81C, 0xF4100103,
++ 0x81C, 0xF3120103,
++ 0x81C, 0xF2140103,
++ 0x81C, 0xF1160103,
++ 0x81C, 0xF0180103,
++ 0x81C, 0xEF1A0103,
++ 0x81C, 0xEE1C0103,
++ 0x81C, 0xED1E0103,
++ 0x81C, 0xEC200103,
++ 0x81C, 0xEB220103,
++ 0x81C, 0xEA240103,
++ 0x81C, 0xE9260103,
++ 0x81C, 0xE8280103,
++ 0x81C, 0xE72A0103,
++ 0x81C, 0xE62C0103,
++ 0x81C, 0xE52E0103,
++ 0x81C, 0xE4300103,
++ 0x81C, 0xE3320103,
++ 0x81C, 0xE2340103,
++ 0x81C, 0xE1360103,
++ 0x81C, 0x87380103,
++ 0x81C, 0x863A0103,
++ 0x81C, 0x853C0103,
++ 0x81C, 0x843E0103,
++ 0x81C, 0x83400103,
++ 0x81C, 0x82420103,
++ 0x81C, 0x81440103,
++ 0x81C, 0x64460103,
++ 0x81C, 0x63480103,
++ 0x81C, 0x624A0103,
++ 0x81C, 0x464C0103,
++ 0x81C, 0x454E0103,
++ 0x81C, 0x44500103,
++ 0x81C, 0x43520103,
++ 0x81C, 0x26540103,
++ 0x81C, 0x25560103,
++ 0x81C, 0x24580103,
++ 0x81C, 0x075A0103,
++ 0x81C, 0x065C0103,
++ 0x81C, 0x055E0103,
++ 0x81C, 0x04600103,
++ 0x81C, 0x03620103,
++ 0x81C, 0x02640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000103,
++ 0x81C, 0xF8020103,
++ 0x81C, 0xF7040103,
++ 0x81C, 0xF6060103,
++ 0x81C, 0xF5080103,
++ 0x81C, 0xF40A0103,
++ 0x81C, 0xF30C0103,
++ 0x81C, 0xF20E0103,
++ 0x81C, 0xF1100103,
++ 0x81C, 0xF0120103,
++ 0x81C, 0xEF140103,
++ 0x81C, 0xEE160103,
++ 0x81C, 0xED180103,
++ 0x81C, 0xEC1A0103,
++ 0x81C, 0xEB1C0103,
++ 0x81C, 0xEA1E0103,
++ 0x81C, 0xE9200103,
++ 0x81C, 0xE8220103,
++ 0x81C, 0xE7240103,
++ 0x81C, 0xE6260103,
++ 0x81C, 0xE5280103,
++ 0x81C, 0xE42A0103,
++ 0x81C, 0xE32C0103,
++ 0x81C, 0xE22E0103,
++ 0x81C, 0xA6300103,
++ 0x81C, 0xA5320103,
++ 0x81C, 0xA4340103,
++ 0x81C, 0xA3360103,
++ 0x81C, 0xA2380103,
++ 0x81C, 0xA13A0103,
++ 0x81C, 0x843C0103,
++ 0x81C, 0x833E0103,
++ 0x81C, 0x82400103,
++ 0x81C, 0x81420103,
++ 0x81C, 0x64440103,
++ 0x81C, 0x63460103,
++ 0x81C, 0x62480103,
++ 0x81C, 0x614A0103,
++ 0x81C, 0x444C0103,
++ 0x81C, 0x434E0103,
++ 0x81C, 0x42500103,
++ 0x81C, 0x41520103,
++ 0x81C, 0x25540103,
++ 0x81C, 0x24560103,
++ 0x81C, 0x23580103,
++ 0x81C, 0x225A0103,
++ 0x81C, 0x055C0103,
++ 0x81C, 0x045E0103,
++ 0x81C, 0x03600103,
++ 0x81C, 0x02620103,
++ 0x81C, 0x01640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFD000103,
++ 0x81C, 0xFC020103,
++ 0x81C, 0xFB040103,
++ 0x81C, 0xFA060103,
++ 0x81C, 0xF9080103,
++ 0x81C, 0xF80A0103,
++ 0x81C, 0xF70C0103,
++ 0x81C, 0xF60E0103,
++ 0x81C, 0xF5100103,
++ 0x81C, 0xF4120103,
++ 0x81C, 0xF3140103,
++ 0x81C, 0xF2160103,
++ 0x81C, 0xF1180103,
++ 0x81C, 0xF01A0103,
++ 0x81C, 0xEF1C0103,
++ 0x81C, 0xEE1E0103,
++ 0x81C, 0xED200103,
++ 0x81C, 0xEC220103,
++ 0x81C, 0xEB240103,
++ 0x81C, 0xEA260103,
++ 0x81C, 0xE9280103,
++ 0x81C, 0xE82A0103,
++ 0x81C, 0xE72C0103,
++ 0x81C, 0xE62E0103,
++ 0x81C, 0xE5300103,
++ 0x81C, 0xE4320103,
++ 0x81C, 0xE3340103,
++ 0x81C, 0xE2360103,
++ 0x81C, 0xE1380103,
++ 0x81C, 0xA33A0103,
++ 0x81C, 0xA23C0103,
++ 0x81C, 0xA13E0103,
++ 0x81C, 0x84400103,
++ 0x81C, 0x83420103,
++ 0x81C, 0x82440103,
++ 0x81C, 0x81460103,
++ 0x81C, 0x64480103,
++ 0x81C, 0x634A0103,
++ 0x81C, 0x624C0103,
++ 0x81C, 0x614E0103,
++ 0x81C, 0x45500103,
++ 0x81C, 0x44520103,
++ 0x81C, 0x43540103,
++ 0x81C, 0x42560103,
++ 0x81C, 0x25580103,
++ 0x81C, 0x245A0103,
++ 0x81C, 0x235C0103,
++ 0x81C, 0x065E0103,
++ 0x81C, 0x05600103,
++ 0x81C, 0x04620103,
++ 0x81C, 0x03640103,
++ 0x81C, 0x02660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFA000103,
++ 0x81C, 0xF9020103,
++ 0x81C, 0xF8040103,
++ 0x81C, 0xF7060103,
++ 0x81C, 0xF6080103,
++ 0x81C, 0xF50A0103,
++ 0x81C, 0xF40C0103,
++ 0x81C, 0xF30E0103,
++ 0x81C, 0xF2100103,
++ 0x81C, 0xF1120103,
++ 0x81C, 0xF0140103,
++ 0x81C, 0xEF160103,
++ 0x81C, 0xEE180103,
++ 0x81C, 0xED1A0103,
++ 0x81C, 0xEC1C0103,
++ 0x81C, 0xEB1E0103,
++ 0x81C, 0xEA200103,
++ 0x81C, 0xE9220103,
++ 0x81C, 0xE8240103,
++ 0x81C, 0xE7260103,
++ 0x81C, 0xE6280103,
++ 0x81C, 0xE52A0103,
++ 0x81C, 0xE42C0103,
++ 0x81C, 0xE32E0103,
++ 0x81C, 0xE2300103,
++ 0x81C, 0xE1320103,
++ 0x81C, 0xA5340103,
++ 0x81C, 0xA4360103,
++ 0x81C, 0xA3380103,
++ 0x81C, 0xA23A0103,
++ 0x81C, 0xA13C0103,
++ 0x81C, 0x843E0103,
++ 0x81C, 0x83400103,
++ 0x81C, 0x82420103,
++ 0x81C, 0x81440103,
++ 0x81C, 0x64460103,
++ 0x81C, 0x63480103,
++ 0x81C, 0x624A0103,
++ 0x81C, 0x614C0103,
++ 0x81C, 0x454E0103,
++ 0x81C, 0x44500103,
++ 0x81C, 0x43520103,
++ 0x81C, 0x42540103,
++ 0x81C, 0x41560103,
++ 0x81C, 0x24580103,
++ 0x81C, 0x235A0103,
++ 0x81C, 0x225C0103,
++ 0x81C, 0x055E0103,
++ 0x81C, 0x04600103,
++ 0x81C, 0x03620103,
++ 0x81C, 0x02640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000103,
++ 0x81C, 0xFF020103,
++ 0x81C, 0xFE040103,
++ 0x81C, 0xFD060103,
++ 0x81C, 0xFC080103,
++ 0x81C, 0xFB0A0103,
++ 0x81C, 0xFA0C0103,
++ 0x81C, 0xF90E0103,
++ 0x81C, 0xF8100103,
++ 0x81C, 0xF7120103,
++ 0x81C, 0xF6140103,
++ 0x81C, 0xF5160103,
++ 0x81C, 0xF4180103,
++ 0x81C, 0xF31A0103,
++ 0x81C, 0xF21C0103,
++ 0x81C, 0xF11E0103,
++ 0x81C, 0xF0200103,
++ 0x81C, 0xEF220103,
++ 0x81C, 0xEE240103,
++ 0x81C, 0xED260103,
++ 0x81C, 0xEC280103,
++ 0x81C, 0xEB2A0103,
++ 0x81C, 0xEA2C0103,
++ 0x81C, 0xE92E0103,
++ 0x81C, 0xE8300103,
++ 0x81C, 0xE7320103,
++ 0x81C, 0xE6340103,
++ 0x81C, 0xE5360103,
++ 0x81C, 0xE4380103,
++ 0x81C, 0xE33A0103,
++ 0x81C, 0xA53C0103,
++ 0x81C, 0xA43E0103,
++ 0x81C, 0xA3400103,
++ 0x81C, 0xA2420103,
++ 0x81C, 0xA1440103,
++ 0x81C, 0x85460103,
++ 0x81C, 0x84480103,
++ 0x81C, 0x834A0103,
++ 0x81C, 0x824C0103,
++ 0x81C, 0x814E0103,
++ 0x81C, 0x64500103,
++ 0x81C, 0x63520103,
++ 0x81C, 0x62540103,
++ 0x81C, 0x44560103,
++ 0x81C, 0x43580103,
++ 0x81C, 0x425A0103,
++ 0x81C, 0x265C0103,
++ 0x81C, 0x255E0103,
++ 0x81C, 0x24600103,
++ 0x81C, 0x07620103,
++ 0x81C, 0x06640103,
++ 0x81C, 0x05660103,
++ 0x81C, 0x04680103,
++ 0x81C, 0x036A0103,
++ 0x81C, 0x026C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000103,
++ 0x81C, 0xF7020103,
++ 0x81C, 0xF6040103,
++ 0x81C, 0xF5060103,
++ 0x81C, 0xF4080103,
++ 0x81C, 0xF30A0103,
++ 0x81C, 0xF20C0103,
++ 0x81C, 0xF10E0103,
++ 0x81C, 0xF0100103,
++ 0x81C, 0xEF120103,
++ 0x81C, 0xEE140103,
++ 0x81C, 0xED160103,
++ 0x81C, 0xEC180103,
++ 0x81C, 0xEB1A0103,
++ 0x81C, 0xEA1C0103,
++ 0x81C, 0xE91E0103,
++ 0x81C, 0xE8200103,
++ 0x81C, 0xE7220103,
++ 0x81C, 0xE6240103,
++ 0x81C, 0xE5260103,
++ 0x81C, 0xE4280103,
++ 0x81C, 0xE32A0103,
++ 0x81C, 0xE22C0103,
++ 0x81C, 0xE12E0103,
++ 0x81C, 0xA4300103,
++ 0x81C, 0xA3320103,
++ 0x81C, 0xA2340103,
++ 0x81C, 0xA1360103,
++ 0x81C, 0x85380103,
++ 0x81C, 0x843A0103,
++ 0x81C, 0x833C0103,
++ 0x81C, 0x823E0103,
++ 0x81C, 0x65400103,
++ 0x81C, 0x64420103,
++ 0x81C, 0x63440103,
++ 0x81C, 0x62460103,
++ 0x81C, 0x45480103,
++ 0x81C, 0x444A0103,
++ 0x81C, 0x434C0103,
++ 0x81C, 0x264E0103,
++ 0x81C, 0x25500103,
++ 0x81C, 0x24520103,
++ 0x81C, 0x08540103,
++ 0x81C, 0x07560103,
++ 0x81C, 0x06580103,
++ 0x81C, 0x055A0103,
++ 0x81C, 0x045C0103,
++ 0x81C, 0x035E0103,
++ 0x81C, 0x02600103,
++ 0x81C, 0x01620103,
++ 0x81C, 0x01640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000103,
++ 0x81C, 0xFF020103,
++ 0x81C, 0xFE040103,
++ 0x81C, 0xFD060103,
++ 0x81C, 0xFC080103,
++ 0x81C, 0xFB0A0103,
++ 0x81C, 0xFA0C0103,
++ 0x81C, 0xF90E0103,
++ 0x81C, 0xF8100103,
++ 0x81C, 0xF7120103,
++ 0x81C, 0xF6140103,
++ 0x81C, 0xF5160103,
++ 0x81C, 0xF4180103,
++ 0x81C, 0xF31A0103,
++ 0x81C, 0xF21C0103,
++ 0x81C, 0xF11E0103,
++ 0x81C, 0xF0200103,
++ 0x81C, 0xEF220103,
++ 0x81C, 0xEE240103,
++ 0x81C, 0xED260103,
++ 0x81C, 0xEC280103,
++ 0x81C, 0xEB2A0103,
++ 0x81C, 0xEA2C0103,
++ 0x81C, 0xE92E0103,
++ 0x81C, 0xE8300103,
++ 0x81C, 0xE7320103,
++ 0x81C, 0xE6340103,
++ 0x81C, 0xE5360103,
++ 0x81C, 0xE4380103,
++ 0x81C, 0xE33A0103,
++ 0x81C, 0xA53C0103,
++ 0x81C, 0xA43E0103,
++ 0x81C, 0xA3400103,
++ 0x81C, 0xA2420103,
++ 0x81C, 0xA1440103,
++ 0x81C, 0x85460103,
++ 0x81C, 0x84480103,
++ 0x81C, 0x834A0103,
++ 0x81C, 0x824C0103,
++ 0x81C, 0x814E0103,
++ 0x81C, 0x64500103,
++ 0x81C, 0x63520103,
++ 0x81C, 0x62540103,
++ 0x81C, 0x44560103,
++ 0x81C, 0x43580103,
++ 0x81C, 0x425A0103,
++ 0x81C, 0x265C0103,
++ 0x81C, 0x255E0103,
++ 0x81C, 0x24600103,
++ 0x81C, 0x07620103,
++ 0x81C, 0x06640103,
++ 0x81C, 0x05660103,
++ 0x81C, 0x04680103,
++ 0x81C, 0x036A0103,
++ 0x81C, 0x026C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000103,
++ 0x81C, 0xF8020103,
++ 0x81C, 0xF7040103,
++ 0x81C, 0xF6060103,
++ 0x81C, 0xF5080103,
++ 0x81C, 0xF40A0103,
++ 0x81C, 0xF30C0103,
++ 0x81C, 0xF20E0103,
++ 0x81C, 0xF1100103,
++ 0x81C, 0xF0120103,
++ 0x81C, 0xEF140103,
++ 0x81C, 0xEE160103,
++ 0x81C, 0xED180103,
++ 0x81C, 0xEC1A0103,
++ 0x81C, 0xEB1C0103,
++ 0x81C, 0xEA1E0103,
++ 0x81C, 0xE9200103,
++ 0x81C, 0xE8220103,
++ 0x81C, 0xE7240103,
++ 0x81C, 0xE6260103,
++ 0x81C, 0xE5280103,
++ 0x81C, 0xE42A0103,
++ 0x81C, 0xE32C0103,
++ 0x81C, 0xE22E0103,
++ 0x81C, 0xA6300103,
++ 0x81C, 0xA5320103,
++ 0x81C, 0xA4340103,
++ 0x81C, 0xA3360103,
++ 0x81C, 0xA2380103,
++ 0x81C, 0xA13A0103,
++ 0x81C, 0x843C0103,
++ 0x81C, 0x833E0103,
++ 0x81C, 0x82400103,
++ 0x81C, 0x81420103,
++ 0x81C, 0x64440103,
++ 0x81C, 0x63460103,
++ 0x81C, 0x62480103,
++ 0x81C, 0x614A0103,
++ 0x81C, 0x444C0103,
++ 0x81C, 0x434E0103,
++ 0x81C, 0x42500103,
++ 0x81C, 0x41520103,
++ 0x81C, 0x25540103,
++ 0x81C, 0x24560103,
++ 0x81C, 0x23580103,
++ 0x81C, 0x225A0103,
++ 0x81C, 0x055C0103,
++ 0x81C, 0x045E0103,
++ 0x81C, 0x03600103,
++ 0x81C, 0x02620103,
++ 0x81C, 0x01640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFA000103,
++ 0x81C, 0xF9020103,
++ 0x81C, 0xF8040103,
++ 0x81C, 0xF7060103,
++ 0x81C, 0xF6080103,
++ 0x81C, 0xF50A0103,
++ 0x81C, 0xF40C0103,
++ 0x81C, 0xF30E0103,
++ 0x81C, 0xF2100103,
++ 0x81C, 0xF1120103,
++ 0x81C, 0xF0140103,
++ 0x81C, 0xEF160103,
++ 0x81C, 0xEE180103,
++ 0x81C, 0xED1A0103,
++ 0x81C, 0xCC1C0103,
++ 0x81C, 0xCB1E0103,
++ 0x81C, 0xCA200103,
++ 0x81C, 0xE9220103,
++ 0x81C, 0xE8240103,
++ 0x81C, 0xE7260103,
++ 0x81C, 0xE6280103,
++ 0x81C, 0xE42A0103,
++ 0x81C, 0xE32C0103,
++ 0x81C, 0xE22E0103,
++ 0x81C, 0xA7300103,
++ 0x81C, 0xA6320103,
++ 0x81C, 0xA5340103,
++ 0x81C, 0xA4360103,
++ 0x81C, 0xA3380103,
++ 0x81C, 0xA23A0103,
++ 0x81C, 0xA13C0103,
++ 0x81C, 0x843E0103,
++ 0x81C, 0x83400103,
++ 0x81C, 0x82420103,
++ 0x81C, 0x65440103,
++ 0x81C, 0x64460103,
++ 0x81C, 0x63480103,
++ 0x81C, 0x624A0103,
++ 0x81C, 0x614C0103,
++ 0x81C, 0x444E0103,
++ 0x81C, 0x43500103,
++ 0x81C, 0x42520103,
++ 0x81C, 0x41540103,
++ 0x81C, 0x24560103,
++ 0x81C, 0x23580103,
++ 0x81C, 0x055A0103,
++ 0x81C, 0x045C0103,
++ 0x81C, 0x035E0103,
++ 0x81C, 0x02600103,
++ 0x81C, 0x01620103,
++ 0x81C, 0x01640103,
++ 0x81C, 0x01660103,
++ 0x81C, 0x01680103,
++ 0x81C, 0x016A0103,
++ 0x81C, 0x016C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0xA0000000, 0x00000000,
++ 0x81C, 0xFF000103,
++ 0x81C, 0xFE020103,
++ 0x81C, 0xFD040103,
++ 0x81C, 0xFC060103,
++ 0x81C, 0xFB080103,
++ 0x81C, 0xFA0A0103,
++ 0x81C, 0xF90C0103,
++ 0x81C, 0xF80E0103,
++ 0x81C, 0xF7100103,
++ 0x81C, 0xF6120103,
++ 0x81C, 0xF5140103,
++ 0x81C, 0xF4160103,
++ 0x81C, 0xF3180103,
++ 0x81C, 0xF21A0103,
++ 0x81C, 0xF11C0103,
++ 0x81C, 0xF01E0103,
++ 0x81C, 0xEF200103,
++ 0x81C, 0xEE220103,
++ 0x81C, 0xED240103,
++ 0x81C, 0xEC260103,
++ 0x81C, 0xEB280103,
++ 0x81C, 0xEA2A0103,
++ 0x81C, 0xE92C0103,
++ 0x81C, 0xE82E0103,
++ 0x81C, 0xE7300103,
++ 0x81C, 0xE6320103,
++ 0x81C, 0xE5340103,
++ 0x81C, 0xE4360103,
++ 0x81C, 0xE3380103,
++ 0x81C, 0xE23A0103,
++ 0x81C, 0xE13C0103,
++ 0x81C, 0xA43E0103,
++ 0x81C, 0xA3400103,
++ 0x81C, 0xA2420103,
++ 0x81C, 0xA1440103,
++ 0x81C, 0x86460103,
++ 0x81C, 0x85480103,
++ 0x81C, 0x844A0103,
++ 0x81C, 0x834C0103,
++ 0x81C, 0x824E0103,
++ 0x81C, 0x81500103,
++ 0x81C, 0x64520103,
++ 0x81C, 0x63540103,
++ 0x81C, 0x62560103,
++ 0x81C, 0x61580103,
++ 0x81C, 0x435A0103,
++ 0x81C, 0x425C0103,
++ 0x81C, 0x415E0103,
++ 0x81C, 0x25600103,
++ 0x81C, 0x24620103,
++ 0x81C, 0x06640103,
++ 0x81C, 0x05660103,
++ 0x81C, 0x04680103,
++ 0x81C, 0x036A0103,
++ 0x81C, 0x026C0103,
++ 0x81C, 0x016E0103,
++ 0x81C, 0x01700103,
++ 0x81C, 0x01720103,
++ 0x81C, 0x01740103,
++ 0x81C, 0x01760103,
++ 0x81C, 0x01780103,
++ 0x81C, 0x017A0103,
++ 0x81C, 0x017C0103,
++ 0x81C, 0x017E0103,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFA000203,
++ 0x81C, 0xF9020203,
++ 0x81C, 0xF8040203,
++ 0x81C, 0xF7060203,
++ 0x81C, 0xF6080203,
++ 0x81C, 0xF50A0203,
++ 0x81C, 0xF40C0203,
++ 0x81C, 0xF30E0203,
++ 0x81C, 0xF2100203,
++ 0x81C, 0xF1120203,
++ 0x81C, 0xF0140203,
++ 0x81C, 0xEF160203,
++ 0x81C, 0xEE180203,
++ 0x81C, 0xED1A0203,
++ 0x81C, 0xEC1C0203,
++ 0x81C, 0xEB1E0203,
++ 0x81C, 0xEA200203,
++ 0x81C, 0xE9220203,
++ 0x81C, 0xE8240203,
++ 0x81C, 0xE7260203,
++ 0x81C, 0xE6280203,
++ 0x81C, 0xE52A0203,
++ 0x81C, 0xE42C0203,
++ 0x81C, 0xE32E0203,
++ 0x81C, 0xE2300203,
++ 0x81C, 0xE1320203,
++ 0x81C, 0xA5340203,
++ 0x81C, 0xA4360203,
++ 0x81C, 0xA3380203,
++ 0x81C, 0xA23A0203,
++ 0x81C, 0xA13C0203,
++ 0x81C, 0x843E0203,
++ 0x81C, 0x83400203,
++ 0x81C, 0x82420203,
++ 0x81C, 0x81440203,
++ 0x81C, 0x63460203,
++ 0x81C, 0x62480203,
++ 0x81C, 0x614A0203,
++ 0x81C, 0x464C0203,
++ 0x81C, 0x454E0203,
++ 0x81C, 0x44500203,
++ 0x81C, 0x43520203,
++ 0x81C, 0x42540203,
++ 0x81C, 0x41560203,
++ 0x81C, 0x24580203,
++ 0x81C, 0x235A0203,
++ 0x81C, 0x065C0203,
++ 0x81C, 0x055E0203,
++ 0x81C, 0x04600203,
++ 0x81C, 0x03620203,
++ 0x81C, 0x02640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000203,
++ 0x81C, 0xF7020203,
++ 0x81C, 0xF6040203,
++ 0x81C, 0xF5060203,
++ 0x81C, 0xF4080203,
++ 0x81C, 0xF30A0203,
++ 0x81C, 0xF20C0203,
++ 0x81C, 0xF10E0203,
++ 0x81C, 0xF0100203,
++ 0x81C, 0xEF120203,
++ 0x81C, 0xEE140203,
++ 0x81C, 0xED160203,
++ 0x81C, 0xEC180203,
++ 0x81C, 0xEB1A0203,
++ 0x81C, 0xEA1C0203,
++ 0x81C, 0xE91E0203,
++ 0x81C, 0xE8200203,
++ 0x81C, 0xE7220203,
++ 0x81C, 0xE6240203,
++ 0x81C, 0xE5260203,
++ 0x81C, 0xE4280203,
++ 0x81C, 0xE32A0203,
++ 0x81C, 0xE22C0203,
++ 0x81C, 0xE12E0203,
++ 0x81C, 0xA6300203,
++ 0x81C, 0xA5320203,
++ 0x81C, 0xA4340203,
++ 0x81C, 0xA3360203,
++ 0x81C, 0xA2380203,
++ 0x81C, 0x853A0203,
++ 0x81C, 0x843C0203,
++ 0x81C, 0x833E0203,
++ 0x81C, 0x82400203,
++ 0x81C, 0x81420203,
++ 0x81C, 0x64440203,
++ 0x81C, 0x63460203,
++ 0x81C, 0x62480203,
++ 0x81C, 0x614A0203,
++ 0x81C, 0x444C0203,
++ 0x81C, 0x434E0203,
++ 0x81C, 0x42500203,
++ 0x81C, 0x25520203,
++ 0x81C, 0x24540203,
++ 0x81C, 0x23560203,
++ 0x81C, 0x06580203,
++ 0x81C, 0x055A0203,
++ 0x81C, 0x045C0203,
++ 0x81C, 0x035E0203,
++ 0x81C, 0x02600203,
++ 0x81C, 0x01620203,
++ 0x81C, 0x01640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFC000203,
++ 0x81C, 0xFB020203,
++ 0x81C, 0xFA040203,
++ 0x81C, 0xF9060203,
++ 0x81C, 0xF8080203,
++ 0x81C, 0xF70A0203,
++ 0x81C, 0xF60C0203,
++ 0x81C, 0xF50E0203,
++ 0x81C, 0xF4100203,
++ 0x81C, 0xF3120203,
++ 0x81C, 0xF2140203,
++ 0x81C, 0xF1160203,
++ 0x81C, 0xF0180203,
++ 0x81C, 0xEF1A0203,
++ 0x81C, 0xEE1C0203,
++ 0x81C, 0xED1E0203,
++ 0x81C, 0xEC200203,
++ 0x81C, 0xEB220203,
++ 0x81C, 0xEA240203,
++ 0x81C, 0xE9260203,
++ 0x81C, 0xE8280203,
++ 0x81C, 0xE72A0203,
++ 0x81C, 0xE62C0203,
++ 0x81C, 0xE52E0203,
++ 0x81C, 0xE4300203,
++ 0x81C, 0xE3320203,
++ 0x81C, 0xE2340203,
++ 0x81C, 0xE1360203,
++ 0x81C, 0x87380203,
++ 0x81C, 0x863A0203,
++ 0x81C, 0x853C0203,
++ 0x81C, 0x843E0203,
++ 0x81C, 0x83400203,
++ 0x81C, 0x82420203,
++ 0x81C, 0x81440203,
++ 0x81C, 0x64460203,
++ 0x81C, 0x63480203,
++ 0x81C, 0x624A0203,
++ 0x81C, 0x474C0203,
++ 0x81C, 0x464E0203,
++ 0x81C, 0x45500203,
++ 0x81C, 0x44520203,
++ 0x81C, 0x43540203,
++ 0x81C, 0x42560203,
++ 0x81C, 0x24580203,
++ 0x81C, 0x235A0203,
++ 0x81C, 0x075C0203,
++ 0x81C, 0x065E0203,
++ 0x81C, 0x05600203,
++ 0x81C, 0x04620203,
++ 0x81C, 0x03640203,
++ 0x81C, 0x02660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000203,
++ 0x81C, 0xF7020203,
++ 0x81C, 0xF6040203,
++ 0x81C, 0xF5060203,
++ 0x81C, 0xF4080203,
++ 0x81C, 0xF30A0203,
++ 0x81C, 0xF20C0203,
++ 0x81C, 0xF10E0203,
++ 0x81C, 0xF0100203,
++ 0x81C, 0xEF120203,
++ 0x81C, 0xEE140203,
++ 0x81C, 0xED160203,
++ 0x81C, 0xEC180203,
++ 0x81C, 0xEB1A0203,
++ 0x81C, 0xEA1C0203,
++ 0x81C, 0xE91E0203,
++ 0x81C, 0xE8200203,
++ 0x81C, 0xE7220203,
++ 0x81C, 0xE6240203,
++ 0x81C, 0xE5260203,
++ 0x81C, 0xE4280203,
++ 0x81C, 0xE32A0203,
++ 0x81C, 0xE22C0203,
++ 0x81C, 0xE12E0203,
++ 0x81C, 0xA6300203,
++ 0x81C, 0xA5320203,
++ 0x81C, 0xA4340203,
++ 0x81C, 0xA3360203,
++ 0x81C, 0xA2380203,
++ 0x81C, 0xA13A0203,
++ 0x81C, 0x843C0203,
++ 0x81C, 0x833E0203,
++ 0x81C, 0x82400203,
++ 0x81C, 0x81420203,
++ 0x81C, 0x64440203,
++ 0x81C, 0x63460203,
++ 0x81C, 0x62480203,
++ 0x81C, 0x614A0203,
++ 0x81C, 0x444C0203,
++ 0x81C, 0x434E0203,
++ 0x81C, 0x42500203,
++ 0x81C, 0x41520203,
++ 0x81C, 0x25540203,
++ 0x81C, 0x24560203,
++ 0x81C, 0x23580203,
++ 0x81C, 0x065A0203,
++ 0x81C, 0x055C0203,
++ 0x81C, 0x045E0203,
++ 0x81C, 0x03600203,
++ 0x81C, 0x02620203,
++ 0x81C, 0x01640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFB000203,
++ 0x81C, 0xFA020203,
++ 0x81C, 0xF9040203,
++ 0x81C, 0xF8060203,
++ 0x81C, 0xF7080203,
++ 0x81C, 0xF60A0203,
++ 0x81C, 0xF50C0203,
++ 0x81C, 0xF40E0203,
++ 0x81C, 0xF3100203,
++ 0x81C, 0xF2120203,
++ 0x81C, 0xF1140203,
++ 0x81C, 0xF0160203,
++ 0x81C, 0xEF180203,
++ 0x81C, 0xEE1A0203,
++ 0x81C, 0xED1C0203,
++ 0x81C, 0xEC1E0203,
++ 0x81C, 0xEB200203,
++ 0x81C, 0xEA220203,
++ 0x81C, 0xE9240203,
++ 0x81C, 0xE8260203,
++ 0x81C, 0xE7280203,
++ 0x81C, 0xE62A0203,
++ 0x81C, 0xE52C0203,
++ 0x81C, 0xE42E0203,
++ 0x81C, 0xE3300203,
++ 0x81C, 0xE2320203,
++ 0x81C, 0xE1340203,
++ 0x81C, 0xA5360203,
++ 0x81C, 0xA4380203,
++ 0x81C, 0xA33A0203,
++ 0x81C, 0xA23C0203,
++ 0x81C, 0x843E0203,
++ 0x81C, 0x83400203,
++ 0x81C, 0x82420203,
++ 0x81C, 0x81440203,
++ 0x81C, 0x64460203,
++ 0x81C, 0x63480203,
++ 0x81C, 0x624A0203,
++ 0x81C, 0x614C0203,
++ 0x81C, 0x474E0203,
++ 0x81C, 0x46500203,
++ 0x81C, 0x45520203,
++ 0x81C, 0x44540203,
++ 0x81C, 0x43560203,
++ 0x81C, 0x25580203,
++ 0x81C, 0x245A0203,
++ 0x81C, 0x235C0203,
++ 0x81C, 0x075E0203,
++ 0x81C, 0x06600203,
++ 0x81C, 0x05620203,
++ 0x81C, 0x04640203,
++ 0x81C, 0x03660203,
++ 0x81C, 0x02680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFC000203,
++ 0x81C, 0xFB020203,
++ 0x81C, 0xFA040203,
++ 0x81C, 0xF9060203,
++ 0x81C, 0xF8080203,
++ 0x81C, 0xF70A0203,
++ 0x81C, 0xF60C0203,
++ 0x81C, 0xF50E0203,
++ 0x81C, 0xF4100203,
++ 0x81C, 0xF3120203,
++ 0x81C, 0xF2140203,
++ 0x81C, 0xF1160203,
++ 0x81C, 0xF0180203,
++ 0x81C, 0xEF1A0203,
++ 0x81C, 0xEE1C0203,
++ 0x81C, 0xED1E0203,
++ 0x81C, 0xEC200203,
++ 0x81C, 0xEB220203,
++ 0x81C, 0xEA240203,
++ 0x81C, 0xE9260203,
++ 0x81C, 0xE8280203,
++ 0x81C, 0xE72A0203,
++ 0x81C, 0xE62C0203,
++ 0x81C, 0xE52E0203,
++ 0x81C, 0xE4300203,
++ 0x81C, 0xE3320203,
++ 0x81C, 0xE2340203,
++ 0x81C, 0xE1360203,
++ 0x81C, 0xA5380203,
++ 0x81C, 0xA43A0203,
++ 0x81C, 0xA33C0203,
++ 0x81C, 0x853E0203,
++ 0x81C, 0x84400203,
++ 0x81C, 0x83420203,
++ 0x81C, 0x82440203,
++ 0x81C, 0x81460203,
++ 0x81C, 0x64480203,
++ 0x81C, 0x634A0203,
++ 0x81C, 0x624C0203,
++ 0x81C, 0x614E0203,
++ 0x81C, 0x46500203,
++ 0x81C, 0x45520203,
++ 0x81C, 0x44540203,
++ 0x81C, 0x43560203,
++ 0x81C, 0x25580203,
++ 0x81C, 0x245A0203,
++ 0x81C, 0x235C0203,
++ 0x81C, 0x075E0203,
++ 0x81C, 0x06600203,
++ 0x81C, 0x05620203,
++ 0x81C, 0x04640203,
++ 0x81C, 0x03660203,
++ 0x81C, 0x02680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000203,
++ 0x81C, 0xFF020203,
++ 0x81C, 0xFE040203,
++ 0x81C, 0xFD060203,
++ 0x81C, 0xFC080203,
++ 0x81C, 0xFB0A0203,
++ 0x81C, 0xFA0C0203,
++ 0x81C, 0xF90E0203,
++ 0x81C, 0xF8100203,
++ 0x81C, 0xF7120203,
++ 0x81C, 0xF6140203,
++ 0x81C, 0xF5160203,
++ 0x81C, 0xF4180203,
++ 0x81C, 0xF31A0203,
++ 0x81C, 0xF21C0203,
++ 0x81C, 0xF11E0203,
++ 0x81C, 0xF0200203,
++ 0x81C, 0xEF220203,
++ 0x81C, 0xEE240203,
++ 0x81C, 0xED260203,
++ 0x81C, 0xEC280203,
++ 0x81C, 0xEB2A0203,
++ 0x81C, 0xEA2C0203,
++ 0x81C, 0xE92E0203,
++ 0x81C, 0xE8300203,
++ 0x81C, 0xE7320203,
++ 0x81C, 0xE6340203,
++ 0x81C, 0xE5360203,
++ 0x81C, 0xE4380203,
++ 0x81C, 0xE33A0203,
++ 0x81C, 0xE23C0203,
++ 0x81C, 0xE13E0203,
++ 0x81C, 0xA4400203,
++ 0x81C, 0xA3420203,
++ 0x81C, 0xA2440203,
++ 0x81C, 0xA1460203,
++ 0x81C, 0x84480203,
++ 0x81C, 0x834A0203,
++ 0x81C, 0x824C0203,
++ 0x81C, 0x814E0203,
++ 0x81C, 0x64500203,
++ 0x81C, 0x63520203,
++ 0x81C, 0x62540203,
++ 0x81C, 0x61560203,
++ 0x81C, 0x45580203,
++ 0x81C, 0x445A0203,
++ 0x81C, 0x435C0203,
++ 0x81C, 0x425E0203,
++ 0x81C, 0x24600203,
++ 0x81C, 0x23620203,
++ 0x81C, 0x07640203,
++ 0x81C, 0x06660203,
++ 0x81C, 0x05680203,
++ 0x81C, 0x046A0203,
++ 0x81C, 0x036C0203,
++ 0x81C, 0x026E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000203,
++ 0x81C, 0xF6020203,
++ 0x81C, 0xF5040203,
++ 0x81C, 0xF4060203,
++ 0x81C, 0xF3080203,
++ 0x81C, 0xF20A0203,
++ 0x81C, 0xF10C0203,
++ 0x81C, 0xF00E0203,
++ 0x81C, 0xEF100203,
++ 0x81C, 0xEE120203,
++ 0x81C, 0xED140203,
++ 0x81C, 0xEC160203,
++ 0x81C, 0xEB180203,
++ 0x81C, 0xEA1A0203,
++ 0x81C, 0xE91C0203,
++ 0x81C, 0xE81E0203,
++ 0x81C, 0xE7200203,
++ 0x81C, 0xE6220203,
++ 0x81C, 0xE5240203,
++ 0x81C, 0xE4260203,
++ 0x81C, 0xE3280203,
++ 0x81C, 0xE22A0203,
++ 0x81C, 0xA62C0203,
++ 0x81C, 0xA52E0203,
++ 0x81C, 0xA4300203,
++ 0x81C, 0xA3320203,
++ 0x81C, 0xA2340203,
++ 0x81C, 0xA1360203,
++ 0x81C, 0x86380203,
++ 0x81C, 0x853A0203,
++ 0x81C, 0x843C0203,
++ 0x81C, 0x833E0203,
++ 0x81C, 0x65400203,
++ 0x81C, 0x64420203,
++ 0x81C, 0x63440203,
++ 0x81C, 0x46460203,
++ 0x81C, 0x45480203,
++ 0x81C, 0x444A0203,
++ 0x81C, 0x434C0203,
++ 0x81C, 0x264E0203,
++ 0x81C, 0x25500203,
++ 0x81C, 0x24520203,
++ 0x81C, 0x08540203,
++ 0x81C, 0x07560203,
++ 0x81C, 0x06580203,
++ 0x81C, 0x055A0203,
++ 0x81C, 0x045C0203,
++ 0x81C, 0x035E0203,
++ 0x81C, 0x02600203,
++ 0x81C, 0x01620203,
++ 0x81C, 0x01640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFF000203,
++ 0x81C, 0xFF020203,
++ 0x81C, 0xFE040203,
++ 0x81C, 0xFD060203,
++ 0x81C, 0xFC080203,
++ 0x81C, 0xFB0A0203,
++ 0x81C, 0xFA0C0203,
++ 0x81C, 0xF90E0203,
++ 0x81C, 0xF8100203,
++ 0x81C, 0xF7120203,
++ 0x81C, 0xF6140203,
++ 0x81C, 0xF5160203,
++ 0x81C, 0xF4180203,
++ 0x81C, 0xF31A0203,
++ 0x81C, 0xF21C0203,
++ 0x81C, 0xF11E0203,
++ 0x81C, 0xF0200203,
++ 0x81C, 0xEF220203,
++ 0x81C, 0xEE240203,
++ 0x81C, 0xED260203,
++ 0x81C, 0xEC280203,
++ 0x81C, 0xEB2A0203,
++ 0x81C, 0xEA2C0203,
++ 0x81C, 0xE92E0203,
++ 0x81C, 0xE8300203,
++ 0x81C, 0xE7320203,
++ 0x81C, 0xE6340203,
++ 0x81C, 0xE5360203,
++ 0x81C, 0xE4380203,
++ 0x81C, 0xE33A0203,
++ 0x81C, 0xE23C0203,
++ 0x81C, 0xE13E0203,
++ 0x81C, 0xA4400203,
++ 0x81C, 0xA3420203,
++ 0x81C, 0xA2440203,
++ 0x81C, 0xA1460203,
++ 0x81C, 0x84480203,
++ 0x81C, 0x834A0203,
++ 0x81C, 0x824C0203,
++ 0x81C, 0x814E0203,
++ 0x81C, 0x64500203,
++ 0x81C, 0x63520203,
++ 0x81C, 0x62540203,
++ 0x81C, 0x61560203,
++ 0x81C, 0x45580203,
++ 0x81C, 0x445A0203,
++ 0x81C, 0x435C0203,
++ 0x81C, 0x425E0203,
++ 0x81C, 0x24600203,
++ 0x81C, 0x23620203,
++ 0x81C, 0x07640203,
++ 0x81C, 0x06660203,
++ 0x81C, 0x05680203,
++ 0x81C, 0x046A0203,
++ 0x81C, 0x036C0203,
++ 0x81C, 0x026E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000203,
++ 0x81C, 0xF7020203,
++ 0x81C, 0xF6040203,
++ 0x81C, 0xF5060203,
++ 0x81C, 0xF4080203,
++ 0x81C, 0xF30A0203,
++ 0x81C, 0xF20C0203,
++ 0x81C, 0xF10E0203,
++ 0x81C, 0xF0100203,
++ 0x81C, 0xEF120203,
++ 0x81C, 0xEE140203,
++ 0x81C, 0xED160203,
++ 0x81C, 0xEC180203,
++ 0x81C, 0xEB1A0203,
++ 0x81C, 0xEA1C0203,
++ 0x81C, 0xE91E0203,
++ 0x81C, 0xE8200203,
++ 0x81C, 0xE7220203,
++ 0x81C, 0xE6240203,
++ 0x81C, 0xE5260203,
++ 0x81C, 0xE4280203,
++ 0x81C, 0xE32A0203,
++ 0x81C, 0xE22C0203,
++ 0x81C, 0xE12E0203,
++ 0x81C, 0xA6300203,
++ 0x81C, 0xA5320203,
++ 0x81C, 0xA4340203,
++ 0x81C, 0xA3360203,
++ 0x81C, 0xA2380203,
++ 0x81C, 0xA13A0203,
++ 0x81C, 0x843C0203,
++ 0x81C, 0x833E0203,
++ 0x81C, 0x82400203,
++ 0x81C, 0x81420203,
++ 0x81C, 0x64440203,
++ 0x81C, 0x63460203,
++ 0x81C, 0x62480203,
++ 0x81C, 0x614A0203,
++ 0x81C, 0x444C0203,
++ 0x81C, 0x434E0203,
++ 0x81C, 0x42500203,
++ 0x81C, 0x41520203,
++ 0x81C, 0x25540203,
++ 0x81C, 0x24560203,
++ 0x81C, 0x23580203,
++ 0x81C, 0x065A0203,
++ 0x81C, 0x055C0203,
++ 0x81C, 0x045E0203,
++ 0x81C, 0x03600203,
++ 0x81C, 0x02620203,
++ 0x81C, 0x01640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000203,
++ 0x81C, 0xF8020203,
++ 0x81C, 0xF7040203,
++ 0x81C, 0xF6060203,
++ 0x81C, 0xF5080203,
++ 0x81C, 0xF40A0203,
++ 0x81C, 0xF30C0203,
++ 0x81C, 0xF20E0203,
++ 0x81C, 0xF1100203,
++ 0x81C, 0xF0120203,
++ 0x81C, 0xEF140203,
++ 0x81C, 0xCE160203,
++ 0x81C, 0xCD180203,
++ 0x81C, 0xCC1A0203,
++ 0x81C, 0xCB1C0203,
++ 0x81C, 0xCA1E0203,
++ 0x81C, 0xC9200203,
++ 0x81C, 0xC8220203,
++ 0x81C, 0xC7240203,
++ 0x81C, 0xC6260203,
++ 0x81C, 0xC5280203,
++ 0x81C, 0xC42A0203,
++ 0x81C, 0xC32C0203,
++ 0x81C, 0xC22E0203,
++ 0x81C, 0xC1300203,
++ 0x81C, 0xA5320203,
++ 0x81C, 0xA4340203,
++ 0x81C, 0xA3360203,
++ 0x81C, 0xA2380203,
++ 0x81C, 0xA13A0203,
++ 0x81C, 0x853C0203,
++ 0x81C, 0x843E0203,
++ 0x81C, 0x83400203,
++ 0x81C, 0x82420203,
++ 0x81C, 0x81440203,
++ 0x81C, 0x64460203,
++ 0x81C, 0x63480203,
++ 0x81C, 0x624A0203,
++ 0x81C, 0x614C0203,
++ 0x81C, 0x444E0203,
++ 0x81C, 0x43500203,
++ 0x81C, 0x42520203,
++ 0x81C, 0x41540203,
++ 0x81C, 0x24560203,
++ 0x81C, 0x23580203,
++ 0x81C, 0x075A0203,
++ 0x81C, 0x065C0203,
++ 0x81C, 0x055E0203,
++ 0x81C, 0x04600203,
++ 0x81C, 0x03620203,
++ 0x81C, 0x02640203,
++ 0x81C, 0x01660203,
++ 0x81C, 0x01680203,
++ 0x81C, 0x016A0203,
++ 0x81C, 0x016C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0xA0000000, 0x00000000,
++ 0x81C, 0xFF000203,
++ 0x81C, 0xFF020203,
++ 0x81C, 0xFE040203,
++ 0x81C, 0xFD060203,
++ 0x81C, 0xFC080203,
++ 0x81C, 0xFB0A0203,
++ 0x81C, 0xFA0C0203,
++ 0x81C, 0xF90E0203,
++ 0x81C, 0xF8100203,
++ 0x81C, 0xF7120203,
++ 0x81C, 0xF6140203,
++ 0x81C, 0xF5160203,
++ 0x81C, 0xF4180203,
++ 0x81C, 0xF31A0203,
++ 0x81C, 0xF21C0203,
++ 0x81C, 0xF11E0203,
++ 0x81C, 0xF0200203,
++ 0x81C, 0xEF220203,
++ 0x81C, 0xEE240203,
++ 0x81C, 0xED260203,
++ 0x81C, 0xEC280203,
++ 0x81C, 0xEB2A0203,
++ 0x81C, 0xEA2C0203,
++ 0x81C, 0xE92E0203,
++ 0x81C, 0xE8300203,
++ 0x81C, 0xE7320203,
++ 0x81C, 0xE6340203,
++ 0x81C, 0xE5360203,
++ 0x81C, 0xE4380203,
++ 0x81C, 0xE33A0203,
++ 0x81C, 0xE23C0203,
++ 0x81C, 0xE13E0203,
++ 0x81C, 0xA4400203,
++ 0x81C, 0xA3420203,
++ 0x81C, 0xA2440203,
++ 0x81C, 0xA1460203,
++ 0x81C, 0x85480203,
++ 0x81C, 0x844A0203,
++ 0x81C, 0x834C0203,
++ 0x81C, 0x824E0203,
++ 0x81C, 0x81500203,
++ 0x81C, 0x64520203,
++ 0x81C, 0x63540203,
++ 0x81C, 0x62560203,
++ 0x81C, 0x61580203,
++ 0x81C, 0x445A0203,
++ 0x81C, 0x435C0203,
++ 0x81C, 0x425E0203,
++ 0x81C, 0x25600203,
++ 0x81C, 0x24620203,
++ 0x81C, 0x06640203,
++ 0x81C, 0x05660203,
++ 0x81C, 0x04680203,
++ 0x81C, 0x036A0203,
++ 0x81C, 0x026C0203,
++ 0x81C, 0x016E0203,
++ 0x81C, 0x01700203,
++ 0x81C, 0x01720203,
++ 0x81C, 0x01740203,
++ 0x81C, 0x01760203,
++ 0x81C, 0x01780203,
++ 0x81C, 0x017A0203,
++ 0x81C, 0x017C0203,
++ 0x81C, 0x017E0203,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF8000303,
++ 0x81C, 0xF7020303,
++ 0x81C, 0xF6040303,
++ 0x81C, 0xF5060303,
++ 0x81C, 0xF4080303,
++ 0x81C, 0xF30A0303,
++ 0x81C, 0xF20C0303,
++ 0x81C, 0xF10E0303,
++ 0x81C, 0xF0100303,
++ 0x81C, 0xEF120303,
++ 0x81C, 0xEE140303,
++ 0x81C, 0xED160303,
++ 0x81C, 0xEC180303,
++ 0x81C, 0xEB1A0303,
++ 0x81C, 0xEA1C0303,
++ 0x81C, 0xE91E0303,
++ 0x81C, 0xE8200303,
++ 0x81C, 0xE7220303,
++ 0x81C, 0xE6240303,
++ 0x81C, 0xE5260303,
++ 0x81C, 0xE4280303,
++ 0x81C, 0xE32A0303,
++ 0x81C, 0xE22C0303,
++ 0x81C, 0xE12E0303,
++ 0x81C, 0xA6300303,
++ 0x81C, 0xA5320303,
++ 0x81C, 0xA4340303,
++ 0x81C, 0xA3360303,
++ 0x81C, 0xA2380303,
++ 0x81C, 0xA13A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x454C0303,
++ 0x81C, 0x444E0303,
++ 0x81C, 0x43500303,
++ 0x81C, 0x42520303,
++ 0x81C, 0x41540303,
++ 0x81C, 0x24560303,
++ 0x81C, 0x23580303,
++ 0x81C, 0x065A0303,
++ 0x81C, 0x055C0303,
++ 0x81C, 0x045E0303,
++ 0x81C, 0x03600303,
++ 0x81C, 0x02620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000303,
++ 0x81C, 0xF6020303,
++ 0x81C, 0xF5040303,
++ 0x81C, 0xF4060303,
++ 0x81C, 0xF3080303,
++ 0x81C, 0xF20A0303,
++ 0x81C, 0xF10C0303,
++ 0x81C, 0xF00E0303,
++ 0x81C, 0xEF100303,
++ 0x81C, 0xEE120303,
++ 0x81C, 0xED140303,
++ 0x81C, 0xEC160303,
++ 0x81C, 0xEB180303,
++ 0x81C, 0xEA1A0303,
++ 0x81C, 0xE91C0303,
++ 0x81C, 0xE81E0303,
++ 0x81C, 0xE7200303,
++ 0x81C, 0xE6220303,
++ 0x81C, 0xE5240303,
++ 0x81C, 0xE4260303,
++ 0x81C, 0xE3280303,
++ 0x81C, 0xC32A0303,
++ 0x81C, 0xC22C0303,
++ 0x81C, 0xC12E0303,
++ 0x81C, 0xA5300303,
++ 0x81C, 0xA4320303,
++ 0x81C, 0xA3340303,
++ 0x81C, 0xA2360303,
++ 0x81C, 0xA1380303,
++ 0x81C, 0x853A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x454C0303,
++ 0x81C, 0x444E0303,
++ 0x81C, 0x43500303,
++ 0x81C, 0x25520303,
++ 0x81C, 0x24540303,
++ 0x81C, 0x23560303,
++ 0x81C, 0x06580303,
++ 0x81C, 0x055A0303,
++ 0x81C, 0x045C0303,
++ 0x81C, 0x035E0303,
++ 0x81C, 0x02600303,
++ 0x81C, 0x01620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000303,
++ 0x81C, 0xF8020303,
++ 0x81C, 0xF7040303,
++ 0x81C, 0xF6060303,
++ 0x81C, 0xF5080303,
++ 0x81C, 0xF40A0303,
++ 0x81C, 0xF30C0303,
++ 0x81C, 0xF20E0303,
++ 0x81C, 0xF1100303,
++ 0x81C, 0xF0120303,
++ 0x81C, 0xEF140303,
++ 0x81C, 0xEE160303,
++ 0x81C, 0xED180303,
++ 0x81C, 0xEC1A0303,
++ 0x81C, 0xEB1C0303,
++ 0x81C, 0xEA1E0303,
++ 0x81C, 0xE9200303,
++ 0x81C, 0xE8220303,
++ 0x81C, 0xE7240303,
++ 0x81C, 0xE6260303,
++ 0x81C, 0xE5280303,
++ 0x81C, 0xE42A0303,
++ 0x81C, 0xE32C0303,
++ 0x81C, 0xE22E0303,
++ 0x81C, 0xE1300303,
++ 0x81C, 0xA4320303,
++ 0x81C, 0xA3340303,
++ 0x81C, 0xA2360303,
++ 0x81C, 0xA1380303,
++ 0x81C, 0x853A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x444C0303,
++ 0x81C, 0x434E0303,
++ 0x81C, 0x42500303,
++ 0x81C, 0x25520303,
++ 0x81C, 0x24540303,
++ 0x81C, 0x23560303,
++ 0x81C, 0x07580303,
++ 0x81C, 0x065A0303,
++ 0x81C, 0x055C0303,
++ 0x81C, 0x045E0303,
++ 0x81C, 0x03600303,
++ 0x81C, 0x02620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000303,
++ 0x81C, 0xF6020303,
++ 0x81C, 0xF5040303,
++ 0x81C, 0xF4060303,
++ 0x81C, 0xF3080303,
++ 0x81C, 0xF20A0303,
++ 0x81C, 0xF10C0303,
++ 0x81C, 0xF00E0303,
++ 0x81C, 0xEF100303,
++ 0x81C, 0xEE120303,
++ 0x81C, 0xED140303,
++ 0x81C, 0xEC160303,
++ 0x81C, 0xEB180303,
++ 0x81C, 0xEA1A0303,
++ 0x81C, 0xE91C0303,
++ 0x81C, 0xE81E0303,
++ 0x81C, 0xE7200303,
++ 0x81C, 0xE6220303,
++ 0x81C, 0xE5240303,
++ 0x81C, 0xE4260303,
++ 0x81C, 0xE3280303,
++ 0x81C, 0xE22A0303,
++ 0x81C, 0xE12C0303,
++ 0x81C, 0xA72E0303,
++ 0x81C, 0xA6300303,
++ 0x81C, 0xA5320303,
++ 0x81C, 0xA4340303,
++ 0x81C, 0xA3360303,
++ 0x81C, 0xA2380303,
++ 0x81C, 0xA13A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x454C0303,
++ 0x81C, 0x444E0303,
++ 0x81C, 0x43500303,
++ 0x81C, 0x42520303,
++ 0x81C, 0x41540303,
++ 0x81C, 0x24560303,
++ 0x81C, 0x23580303,
++ 0x81C, 0x065A0303,
++ 0x81C, 0x055C0303,
++ 0x81C, 0x045E0303,
++ 0x81C, 0x03600303,
++ 0x81C, 0x02620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFB000303,
++ 0x81C, 0xFA020303,
++ 0x81C, 0xF9040303,
++ 0x81C, 0xF8060303,
++ 0x81C, 0xF7080303,
++ 0x81C, 0xF60A0303,
++ 0x81C, 0xF50C0303,
++ 0x81C, 0xF40E0303,
++ 0x81C, 0xF3100303,
++ 0x81C, 0xF2120303,
++ 0x81C, 0xF1140303,
++ 0x81C, 0xF0160303,
++ 0x81C, 0xEF180303,
++ 0x81C, 0xEE1A0303,
++ 0x81C, 0xED1C0303,
++ 0x81C, 0xEC1E0303,
++ 0x81C, 0xEB200303,
++ 0x81C, 0xEA220303,
++ 0x81C, 0xE9240303,
++ 0x81C, 0xE8260303,
++ 0x81C, 0xE7280303,
++ 0x81C, 0xE62A0303,
++ 0x81C, 0xE52C0303,
++ 0x81C, 0xE42E0303,
++ 0x81C, 0xE3300303,
++ 0x81C, 0xE2320303,
++ 0x81C, 0xE1340303,
++ 0x81C, 0xC2360303,
++ 0x81C, 0xC1380303,
++ 0x81C, 0xA33A0303,
++ 0x81C, 0xA23C0303,
++ 0x81C, 0x853E0303,
++ 0x81C, 0x84400303,
++ 0x81C, 0x83420303,
++ 0x81C, 0x66440303,
++ 0x81C, 0x65460303,
++ 0x81C, 0x64480303,
++ 0x81C, 0x634A0303,
++ 0x81C, 0x624C0303,
++ 0x81C, 0x614E0303,
++ 0x81C, 0x45500303,
++ 0x81C, 0x44520303,
++ 0x81C, 0x43540303,
++ 0x81C, 0x42560303,
++ 0x81C, 0x25580303,
++ 0x81C, 0x245A0303,
++ 0x81C, 0x235C0303,
++ 0x81C, 0x065E0303,
++ 0x81C, 0x05600303,
++ 0x81C, 0x04620303,
++ 0x81C, 0x03640303,
++ 0x81C, 0x02660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF9000303,
++ 0x81C, 0xF8020303,
++ 0x81C, 0xF7040303,
++ 0x81C, 0xF6060303,
++ 0x81C, 0xF5080303,
++ 0x81C, 0xF40A0303,
++ 0x81C, 0xF30C0303,
++ 0x81C, 0xF20E0303,
++ 0x81C, 0xF1100303,
++ 0x81C, 0xF0120303,
++ 0x81C, 0xEF140303,
++ 0x81C, 0xEE160303,
++ 0x81C, 0xED180303,
++ 0x81C, 0xEC1A0303,
++ 0x81C, 0xEB1C0303,
++ 0x81C, 0xEA1E0303,
++ 0x81C, 0xE9200303,
++ 0x81C, 0xE8220303,
++ 0x81C, 0xE7240303,
++ 0x81C, 0xE6260303,
++ 0x81C, 0xE5280303,
++ 0x81C, 0xE42A0303,
++ 0x81C, 0xE32C0303,
++ 0x81C, 0xE22E0303,
++ 0x81C, 0xE1300303,
++ 0x81C, 0xA6320303,
++ 0x81C, 0xA5340303,
++ 0x81C, 0xA4360303,
++ 0x81C, 0xA3380303,
++ 0x81C, 0xA23A0303,
++ 0x81C, 0xA13C0303,
++ 0x81C, 0x853E0303,
++ 0x81C, 0x84400303,
++ 0x81C, 0x83420303,
++ 0x81C, 0x82440303,
++ 0x81C, 0x81460303,
++ 0x81C, 0x64480303,
++ 0x81C, 0x634A0303,
++ 0x81C, 0x624C0303,
++ 0x81C, 0x614E0303,
++ 0x81C, 0x44500303,
++ 0x81C, 0x43520303,
++ 0x81C, 0x42540303,
++ 0x81C, 0x41560303,
++ 0x81C, 0x25580303,
++ 0x81C, 0x245A0303,
++ 0x81C, 0x235C0303,
++ 0x81C, 0x055E0303,
++ 0x81C, 0x04600303,
++ 0x81C, 0x03620303,
++ 0x81C, 0x02640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000303,
++ 0x81C, 0xFD020303,
++ 0x81C, 0xFC040303,
++ 0x81C, 0xFB060303,
++ 0x81C, 0xFA080303,
++ 0x81C, 0xF90A0303,
++ 0x81C, 0xF80C0303,
++ 0x81C, 0xF70E0303,
++ 0x81C, 0xF6100303,
++ 0x81C, 0xF5120303,
++ 0x81C, 0xF4140303,
++ 0x81C, 0xF3160303,
++ 0x81C, 0xF2180303,
++ 0x81C, 0xF11A0303,
++ 0x81C, 0xF01C0303,
++ 0x81C, 0xEF1E0303,
++ 0x81C, 0xEE200303,
++ 0x81C, 0xED220303,
++ 0x81C, 0xEC240303,
++ 0x81C, 0xEB260303,
++ 0x81C, 0xEA280303,
++ 0x81C, 0xE92A0303,
++ 0x81C, 0xE82C0303,
++ 0x81C, 0xE72E0303,
++ 0x81C, 0xE6300303,
++ 0x81C, 0xE5320303,
++ 0x81C, 0xE4340303,
++ 0x81C, 0xE3360303,
++ 0x81C, 0xC3380303,
++ 0x81C, 0xC23A0303,
++ 0x81C, 0xC13C0303,
++ 0x81C, 0xA43E0303,
++ 0x81C, 0xA3400303,
++ 0x81C, 0xA2420303,
++ 0x81C, 0xA1440303,
++ 0x81C, 0x85460303,
++ 0x81C, 0x84480303,
++ 0x81C, 0x834A0303,
++ 0x81C, 0x824C0303,
++ 0x81C, 0x814E0303,
++ 0x81C, 0x64500303,
++ 0x81C, 0x63520303,
++ 0x81C, 0x62540303,
++ 0x81C, 0x61560303,
++ 0x81C, 0x44580303,
++ 0x81C, 0x435A0303,
++ 0x81C, 0x425C0303,
++ 0x81C, 0x265E0303,
++ 0x81C, 0x25600303,
++ 0x81C, 0x24620303,
++ 0x81C, 0x06640303,
++ 0x81C, 0x05660303,
++ 0x81C, 0x04680303,
++ 0x81C, 0x036A0303,
++ 0x81C, 0x026C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000303,
++ 0x81C, 0xF6020303,
++ 0x81C, 0xF5040303,
++ 0x81C, 0xF4060303,
++ 0x81C, 0xF3080303,
++ 0x81C, 0xF20A0303,
++ 0x81C, 0xF10C0303,
++ 0x81C, 0xF00E0303,
++ 0x81C, 0xEF100303,
++ 0x81C, 0xEE120303,
++ 0x81C, 0xED140303,
++ 0x81C, 0xEC160303,
++ 0x81C, 0xEB180303,
++ 0x81C, 0xEA1A0303,
++ 0x81C, 0xE91C0303,
++ 0x81C, 0xE81E0303,
++ 0x81C, 0xE7200303,
++ 0x81C, 0xE6220303,
++ 0x81C, 0xE5240303,
++ 0x81C, 0xE4260303,
++ 0x81C, 0xE3280303,
++ 0x81C, 0xE22A0303,
++ 0x81C, 0xA62C0303,
++ 0x81C, 0xA52E0303,
++ 0x81C, 0xA4300303,
++ 0x81C, 0xA3320303,
++ 0x81C, 0xA2340303,
++ 0x81C, 0x87360303,
++ 0x81C, 0x86380303,
++ 0x81C, 0x853A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x66400303,
++ 0x81C, 0x65420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x45460303,
++ 0x81C, 0x44480303,
++ 0x81C, 0x434A0303,
++ 0x81C, 0x274C0303,
++ 0x81C, 0x264E0303,
++ 0x81C, 0x25500303,
++ 0x81C, 0x24520303,
++ 0x81C, 0x23540303,
++ 0x81C, 0x08560303,
++ 0x81C, 0x07580303,
++ 0x81C, 0x065A0303,
++ 0x81C, 0x055C0303,
++ 0x81C, 0x045E0303,
++ 0x81C, 0x03600303,
++ 0x81C, 0x02620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xFE000303,
++ 0x81C, 0xFD020303,
++ 0x81C, 0xFC040303,
++ 0x81C, 0xFB060303,
++ 0x81C, 0xFA080303,
++ 0x81C, 0xF90A0303,
++ 0x81C, 0xF80C0303,
++ 0x81C, 0xF70E0303,
++ 0x81C, 0xF6100303,
++ 0x81C, 0xF5120303,
++ 0x81C, 0xF4140303,
++ 0x81C, 0xF3160303,
++ 0x81C, 0xF2180303,
++ 0x81C, 0xF11A0303,
++ 0x81C, 0xF01C0303,
++ 0x81C, 0xEF1E0303,
++ 0x81C, 0xEE200303,
++ 0x81C, 0xED220303,
++ 0x81C, 0xEC240303,
++ 0x81C, 0xEB260303,
++ 0x81C, 0xEA280303,
++ 0x81C, 0xE92A0303,
++ 0x81C, 0xE82C0303,
++ 0x81C, 0xE72E0303,
++ 0x81C, 0xE6300303,
++ 0x81C, 0xE5320303,
++ 0x81C, 0xE4340303,
++ 0x81C, 0xE3360303,
++ 0x81C, 0xC3380303,
++ 0x81C, 0xC23A0303,
++ 0x81C, 0xC13C0303,
++ 0x81C, 0xA43E0303,
++ 0x81C, 0xA3400303,
++ 0x81C, 0xA2420303,
++ 0x81C, 0xA1440303,
++ 0x81C, 0x85460303,
++ 0x81C, 0x84480303,
++ 0x81C, 0x834A0303,
++ 0x81C, 0x824C0303,
++ 0x81C, 0x814E0303,
++ 0x81C, 0x64500303,
++ 0x81C, 0x63520303,
++ 0x81C, 0x62540303,
++ 0x81C, 0x61560303,
++ 0x81C, 0x44580303,
++ 0x81C, 0x435A0303,
++ 0x81C, 0x425C0303,
++ 0x81C, 0x265E0303,
++ 0x81C, 0x25600303,
++ 0x81C, 0x24620303,
++ 0x81C, 0x06640303,
++ 0x81C, 0x05660303,
++ 0x81C, 0x04680303,
++ 0x81C, 0x036A0303,
++ 0x81C, 0x026C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000303,
++ 0x81C, 0xF6020303,
++ 0x81C, 0xF5040303,
++ 0x81C, 0xF4060303,
++ 0x81C, 0xF3080303,
++ 0x81C, 0xF20A0303,
++ 0x81C, 0xF10C0303,
++ 0x81C, 0xF00E0303,
++ 0x81C, 0xEF100303,
++ 0x81C, 0xEE120303,
++ 0x81C, 0xED140303,
++ 0x81C, 0xEC160303,
++ 0x81C, 0xEB180303,
++ 0x81C, 0xEA1A0303,
++ 0x81C, 0xE91C0303,
++ 0x81C, 0xE81E0303,
++ 0x81C, 0xE7200303,
++ 0x81C, 0xE6220303,
++ 0x81C, 0xE5240303,
++ 0x81C, 0xE4260303,
++ 0x81C, 0xE3280303,
++ 0x81C, 0xE22A0303,
++ 0x81C, 0xE12C0303,
++ 0x81C, 0xA72E0303,
++ 0x81C, 0xA6300303,
++ 0x81C, 0xA5320303,
++ 0x81C, 0xA4340303,
++ 0x81C, 0xA3360303,
++ 0x81C, 0xA2380303,
++ 0x81C, 0xA13A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x454C0303,
++ 0x81C, 0x444E0303,
++ 0x81C, 0x43500303,
++ 0x81C, 0x42520303,
++ 0x81C, 0x41540303,
++ 0x81C, 0x24560303,
++ 0x81C, 0x23580303,
++ 0x81C, 0x065A0303,
++ 0x81C, 0x055C0303,
++ 0x81C, 0x045E0303,
++ 0x81C, 0x03600303,
++ 0x81C, 0x02620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x81C, 0xF7000303,
++ 0x81C, 0xF6020303,
++ 0x81C, 0xF5040303,
++ 0x81C, 0xF4060303,
++ 0x81C, 0xF3080303,
++ 0x81C, 0xF20A0303,
++ 0x81C, 0xF10C0303,
++ 0x81C, 0xF00E0303,
++ 0x81C, 0xEF100303,
++ 0x81C, 0xEE120303,
++ 0x81C, 0xED140303,
++ 0x81C, 0xEC160303,
++ 0x81C, 0xEB180303,
++ 0x81C, 0xEA1A0303,
++ 0x81C, 0xAF1C0303,
++ 0x81C, 0xAE1E0303,
++ 0x81C, 0xAD200303,
++ 0x81C, 0xAC220303,
++ 0x81C, 0xAB240303,
++ 0x81C, 0xAA260303,
++ 0x81C, 0xC5280303,
++ 0x81C, 0xC42A0303,
++ 0x81C, 0xC32C0303,
++ 0x81C, 0xC22E0303,
++ 0x81C, 0xA5300303,
++ 0x81C, 0xA4320303,
++ 0x81C, 0xA3340303,
++ 0x81C, 0xA2360303,
++ 0x81C, 0xA1380303,
++ 0x81C, 0x853A0303,
++ 0x81C, 0x843C0303,
++ 0x81C, 0x833E0303,
++ 0x81C, 0x82400303,
++ 0x81C, 0x81420303,
++ 0x81C, 0x64440303,
++ 0x81C, 0x63460303,
++ 0x81C, 0x62480303,
++ 0x81C, 0x614A0303,
++ 0x81C, 0x444C0303,
++ 0x81C, 0x434E0303,
++ 0x81C, 0x42500303,
++ 0x81C, 0x41520303,
++ 0x81C, 0x25540303,
++ 0x81C, 0x24560303,
++ 0x81C, 0x06580303,
++ 0x81C, 0x055A0303,
++ 0x81C, 0x045C0303,
++ 0x81C, 0x035E0303,
++ 0x81C, 0x02600303,
++ 0x81C, 0x01620303,
++ 0x81C, 0x01640303,
++ 0x81C, 0x01660303,
++ 0x81C, 0x01680303,
++ 0x81C, 0x016A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0xA0000000, 0x00000000,
++ 0x81C, 0xFD000303,
++ 0x81C, 0xFC020303,
++ 0x81C, 0xFB040303,
++ 0x81C, 0xFA060303,
++ 0x81C, 0xF9080303,
++ 0x81C, 0xF80A0303,
++ 0x81C, 0xF70C0303,
++ 0x81C, 0xF60E0303,
++ 0x81C, 0xF5100303,
++ 0x81C, 0xF4120303,
++ 0x81C, 0xF3140303,
++ 0x81C, 0xF2160303,
++ 0x81C, 0xF1180303,
++ 0x81C, 0xF01A0303,
++ 0x81C, 0xEF1C0303,
++ 0x81C, 0xEE1E0303,
++ 0x81C, 0xED200303,
++ 0x81C, 0xEC220303,
++ 0x81C, 0xEB240303,
++ 0x81C, 0xEA260303,
++ 0x81C, 0xE9280303,
++ 0x81C, 0xE82A0303,
++ 0x81C, 0xE72C0303,
++ 0x81C, 0xE62E0303,
++ 0x81C, 0xE5300303,
++ 0x81C, 0xE4320303,
++ 0x81C, 0xE3340303,
++ 0x81C, 0xE2360303,
++ 0x81C, 0xE1380303,
++ 0x81C, 0xA53A0303,
++ 0x81C, 0xA43C0303,
++ 0x81C, 0xA33E0303,
++ 0x81C, 0xA2400303,
++ 0x81C, 0xA1420303,
++ 0x81C, 0x87440303,
++ 0x81C, 0x86460303,
++ 0x81C, 0x85480303,
++ 0x81C, 0x844A0303,
++ 0x81C, 0x834C0303,
++ 0x81C, 0x824E0303,
++ 0x81C, 0x81500303,
++ 0x81C, 0x64520303,
++ 0x81C, 0x63540303,
++ 0x81C, 0x62560303,
++ 0x81C, 0x61580303,
++ 0x81C, 0x435A0303,
++ 0x81C, 0x425C0303,
++ 0x81C, 0x415E0303,
++ 0x81C, 0x07600303,
++ 0x81C, 0x06620303,
++ 0x81C, 0x05640303,
++ 0x81C, 0x04660303,
++ 0x81C, 0x03680303,
++ 0x81C, 0x026A0303,
++ 0x81C, 0x016C0303,
++ 0x81C, 0x016E0303,
++ 0x81C, 0x01700303,
++ 0x81C, 0x01720303,
++ 0x81C, 0x01740303,
++ 0x81C, 0x01760303,
++ 0x81C, 0x01780303,
++ 0x81C, 0x017A0303,
++ 0x81C, 0x017C0303,
++ 0x81C, 0x017E0303,
++ 0xB0000000, 0x00000000,
++ 0xC50, 0x00000022,
++ 0xC50, 0x00000020,
++ 0xE50, 0x00000022,
++ 0xE50, 0x00000020,
++ 0x1850, 0x00000022,
++ 0x1850, 0x00000020,
++ 0x1A50, 0x00000022,
++ 0x1A50, 0x00000020,
++};
++
++RTW_DECL_TABLE_PHY_COND(rtw8814a_agc, rtw_phy_cfg_agc);
++
++static const u32 rtw8814a_bb[] = {
++ 0x800, 0x9020D010,
++ 0x804, 0x08011280,
++ 0x808, 0x0E0282FF,
++ 0x80C, 0x1000002F,
++ 0x80000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x810, 0x33303265,
++ 0xA0000000, 0x00000000,
++ 0x810, 0x33303265,
++ 0xB0000000, 0x00000000,
++ 0x814, 0x020C3D10,
++ 0x818, 0x04A10385,
++ 0x820, 0x00000000,
++ 0x824, 0x00033E40,
++ 0x828, 0x00000000,
++ 0x82C, 0x73985170,
++ 0x830, 0x79A0EA08,
++ 0x834, 0x042E708A,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x838, 0x86667640,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x838, 0x86667641,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x838, 0x86667641,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x838, 0x86667641,
++ 0xA0000000, 0x00000000,
++ 0x838, 0x86667640,
++ 0xB0000000, 0x00000000,
++ 0x83C, 0x9798B9B9,
++ 0x840, 0x17578F60,
++ 0x844, 0x4BBDFCDE,
++ 0x848, 0x5CD07F8B,
++ 0x84C, 0x6CFBF7B5,
++ 0x850, 0x28834706,
++ 0x854, 0x0001520C,
++ 0x858, 0x4060C000,
++ 0x85C, 0x74210368,
++ 0x860, 0x6929C321,
++ 0x864, 0x79727432,
++ 0x868, 0x8CA7A314,
++ 0x86C, 0x438C2878,
++ 0x870, 0x44444444,
++ 0x874, 0x21612C2E,
++ 0x878, 0x00003152,
++ 0x87C, 0x000FC000,
++ 0x8A0, 0x00000013,
++ 0x8A4, 0x7F7F7F7F,
++ 0x8A8, 0xA202033E,
++ 0x8AC, 0xF40F550A,
++ 0x8B0, 0x00000600,
++ 0x8B4, 0x000FC080,
++ 0x8B8, 0xEC0057FF,
++ 0x8BC, 0x8CA520C3,
++ 0x8C0, 0x3FF00020,
++ 0x8C4, 0x44C00000,
++ 0x80000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x8C8, 0x80025969,
++ 0xA0000000, 0x00000000,
++ 0x8C8, 0x80025167,
++ 0xB0000000, 0x00000000,
++ 0x8CC, 0x08250492,
++ 0x8D0, 0x0000B800,
++ 0x8D4, 0x940008A0,
++ 0x8D8, 0x290B5612,
++ 0x8DC, 0x00000000,
++ 0x8E0, 0x32316407,
++ 0x8E4, 0x4A092925,
++ 0x8E8, 0xFFFFC42C,
++ 0x8EC, 0x99999999,
++ 0x8F0, 0x00009999,
++ 0x8F4, 0x00F80FA1,
++ 0x8F8, 0x400082C0,
++ 0x8FC, 0x00000000,
++ 0x900, 0x00400700,
++ 0x90C, 0x09004000,
++ 0x910, 0x0000FC00,
++ 0x914, 0xD6400404,
++ 0x918, 0x1C1028C0,
++ 0x91C, 0x64B11A1C,
++ 0x920, 0xE0767233,
++ 0x924, 0x055AA500,
++ 0x928, 0x4AB0E4E4,
++ 0x92C, 0xFFFE0000,
++ 0x930, 0xFFFFFFFE,
++ 0x934, 0x001FFFFF,
++ 0x938, 0x00008400,
++ 0x93C, 0x932C0642,
++ 0x940, 0x093E9360,
++ 0x944, 0x08000000,
++ 0x948, 0x04000000,
++ 0x950, 0x02010080,
++ 0x954, 0x86510080,
++ 0x960, 0x00000000,
++ 0x964, 0x00000000,
++ 0x968, 0x00000000,
++ 0x96C, 0x00000000,
++ 0x970, 0x801FFFFF,
++ 0x978, 0x00000000,
++ 0x97C, 0x00000000,
++ 0x980, 0x00000000,
++ 0x984, 0x00000000,
++ 0x988, 0x00000000,
++ 0x98C, 0x03440000,
++ 0x990, 0x27100000,
++ 0x994, 0xFFFF0100,
++ 0x998, 0xFFFFFF5C,
++ 0x99C, 0xFFFFFFFF,
++ 0x9A0, 0x000000FF,
++ 0x9A4, 0x00080080,
++ 0x9A8, 0x0C2F0000,
++ 0x9AC, 0x00560000,
++ 0x9B0, 0x81081008,
++ 0x9B4, 0x00000000,
++ 0x9B8, 0x01081008,
++ 0x9BC, 0x01081008,
++ 0x9D0, 0x00000000,
++ 0x9D4, 0x00000000,
++ 0x9D8, 0x00000000,
++ 0x9DC, 0x00000000,
++ 0x9E4, 0x00000002,
++ 0x9E8, 0x000022D5,
++ 0x9FC, 0xEFFFF7FF,
++ 0xB00, 0xE3100000,
++ 0xB04, 0x0000B000,
++ 0xB0C, 0x31EAA006,
++ 0xB5C, 0x41CFFFFF,
++ 0xC00, 0x00000007,
++ 0xC04, 0x00042020,
++ 0xC08, 0x80410231,
++ 0xC0C, 0x00000000,
++ 0xC10, 0x00000100,
++ 0xC14, 0x01000000,
++ 0xC1C, 0x40000053,
++ 0xC50, 0x00000020,
++ 0xC54, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0xC58, 0x3C0A0C14,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0xC58, 0x3C0A0C14,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0xC58, 0x3C0A0C14,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xC58, 0x3C0A0C14,
++ 0xA0000000, 0x00000000,
++ 0xC58, 0x3C020C14,
++ 0xB0000000, 0x00000000,
++ 0xC5C, 0x0D000058,
++ 0xC60, 0x1B800000,
++ 0xC60, 0x0B800001,
++ 0xC60, 0x05800002,
++ 0xC60, 0x07800003,
++ 0xC60, 0x1A800004,
++ 0xC60, 0x0B800005,
++ 0xC60, 0x05800006,
++ 0xC60, 0x0E800007,
++ 0xC60, 0x1A800008,
++ 0xC60, 0x0B800009,
++ 0xC60, 0x1580000A,
++ 0xC60, 0x0880000B,
++ 0xC60, 0x1A80000C,
++ 0xC60, 0x0B80000D,
++ 0xC60, 0x0580000E,
++ 0xC60, 0x0E80000F,
++ 0xC60, 0x1A800010,
++ 0xC60, 0x0B800011,
++ 0xC60, 0x15800012,
++ 0xC60, 0x08800013,
++ 0xC60, 0x1A800014,
++ 0xC60, 0x0B800015,
++ 0xC60, 0x05800016,
++ 0xC60, 0x07800017,
++ 0xC60, 0x1A800018,
++ 0xC60, 0x0B800019,
++ 0xC60, 0x1580001A,
++ 0xC60, 0x0880001B,
++ 0xC60, 0x1B80001C,
++ 0xC60, 0x0B80001D,
++ 0xC60, 0x0580001E,
++ 0xC60, 0x0780001F,
++ 0xC60, 0x1B800020,
++ 0xC60, 0x0B800021,
++ 0xC60, 0x05800022,
++ 0xC60, 0x07800023,
++ 0xC60, 0x1B800024,
++ 0xC60, 0x0B800025,
++ 0xC60, 0x05800026,
++ 0xC60, 0x07800027,
++ 0xC60, 0x1B800028,
++ 0xC60, 0x0B800029,
++ 0xC60, 0x0580002A,
++ 0xC60, 0x0780002B,
++ 0xC60, 0x1B800030,
++ 0xC60, 0x0B800031,
++ 0xC60, 0x05800032,
++ 0xC60, 0x00800033,
++ 0xC60, 0x1B800034,
++ 0xC60, 0x0B800035,
++ 0xC60, 0x05800036,
++ 0xC60, 0x00800037,
++ 0xC60, 0x1B800038,
++ 0xC60, 0x0B800039,
++ 0xC60, 0x0580003A,
++ 0xC60, 0x0E80803B,
++ 0xC94, 0x01000401,
++ 0xC98, 0x00188000,
++ 0xCA0, 0x00002929,
++ 0xCA4, 0x08040201,
++ 0xCA8, 0x80402010,
++ 0xCAC, 0x77777000,
++ 0xCB0, 0x54775477,
++ 0xCB4, 0x54775477,
++ 0xCB8, 0x00500000,
++ 0xCBC, 0x77700000,
++ 0xCC0, 0x00000010,
++ 0xCC8, 0x00000010,
++ 0xE00, 0x00000007,
++ 0xE04, 0x00042020,
++ 0xE08, 0x80410231,
++ 0xE0C, 0x00000000,
++ 0xE10, 0x00000100,
++ 0xE14, 0x01000000,
++ 0xE1C, 0x40000053,
++ 0xE50, 0x00000020,
++ 0xE54, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0xE58, 0x3C0A0C14,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0xE58, 0x3C0A0C14,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0xE58, 0x3C0A0C14,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xE58, 0x3C0A0C14,
++ 0xA0000000, 0x00000000,
++ 0xE58, 0x3C020C14,
++ 0xB0000000, 0x00000000,
++ 0xE5C, 0x0D000058,
++ 0xE60, 0x1B800000,
++ 0xE60, 0x0B800001,
++ 0xE60, 0x05800002,
++ 0xE60, 0x07800003,
++ 0xE60, 0x1A800004,
++ 0xE60, 0x0B800005,
++ 0xE60, 0x05800006,
++ 0xE60, 0x0E800007,
++ 0xE60, 0x1A800008,
++ 0xE60, 0x0B800009,
++ 0xE60, 0x1580000A,
++ 0xE60, 0x0880000B,
++ 0xE60, 0x1A80000C,
++ 0xE60, 0x0B80000D,
++ 0xE60, 0x0580000E,
++ 0xE60, 0x0E80000F,
++ 0xE60, 0x1A800010,
++ 0xE60, 0x0B800011,
++ 0xE60, 0x15800012,
++ 0xE60, 0x08800013,
++ 0xE60, 0x1A800014,
++ 0xE60, 0x0B800015,
++ 0xE60, 0x05800016,
++ 0xE60, 0x07800017,
++ 0xE60, 0x1A800018,
++ 0xE60, 0x0B800019,
++ 0xE60, 0x1580001A,
++ 0xE60, 0x0880001B,
++ 0xE60, 0x1B80001C,
++ 0xE60, 0x0B80001D,
++ 0xE60, 0x0580001E,
++ 0xE60, 0x0780001F,
++ 0xE60, 0x1B800020,
++ 0xE60, 0x0B800021,
++ 0xE60, 0x05800022,
++ 0xE60, 0x07800023,
++ 0xE60, 0x1B800024,
++ 0xE60, 0x0B800025,
++ 0xE60, 0x05800026,
++ 0xE60, 0x07800027,
++ 0xE60, 0x1B800028,
++ 0xE60, 0x0B800029,
++ 0xE60, 0x0580002A,
++ 0xE60, 0x0780002B,
++ 0xE60, 0x1B800030,
++ 0xE60, 0x0B800031,
++ 0xE60, 0x05800032,
++ 0xE60, 0x00800033,
++ 0xE60, 0x1B800034,
++ 0xE60, 0x0B800035,
++ 0xE60, 0x05800036,
++ 0xE60, 0x00800037,
++ 0xE60, 0x1B800038,
++ 0xE60, 0x0B800039,
++ 0xE60, 0x0580003A,
++ 0xE60, 0x0E80803B,
++ 0xE94, 0x01000401,
++ 0xE98, 0x00188000,
++ 0xEA0, 0x00002929,
++ 0xEA4, 0x08040201,
++ 0xEA8, 0x80402010,
++ 0xEAC, 0x77777000,
++ 0xEB0, 0x54775477,
++ 0xEB4, 0x54775477,
++ 0xEB8, 0x00500000,
++ 0xEBC, 0x77700000,
++ 0x1800, 0x00000007,
++ 0x1804, 0x00042020,
++ 0x1808, 0x80410231,
++ 0x180C, 0x00000000,
++ 0x1810, 0x00000100,
++ 0x1814, 0x01000000,
++ 0x181C, 0x40000053,
++ 0x1850, 0x00000020,
++ 0x1854, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1858, 0x3C0A0C14,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1858, 0x3C0A0C14,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1858, 0x3C0A0C14,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1858, 0x3C0A0C14,
++ 0xA0000000, 0x00000000,
++ 0x1858, 0x3C020C14,
++ 0xB0000000, 0x00000000,
++ 0x185C, 0x0D000058,
++ 0x1860, 0x1B800000,
++ 0x1860, 0x0B800001,
++ 0x1860, 0x05800002,
++ 0x1860, 0x07800003,
++ 0x1860, 0x1A800004,
++ 0x1860, 0x0B800005,
++ 0x1860, 0x05800006,
++ 0x1860, 0x0E800007,
++ 0x1860, 0x1A800008,
++ 0x1860, 0x0B800009,
++ 0x1860, 0x1580000A,
++ 0x1860, 0x0880000B,
++ 0x1860, 0x1A80000C,
++ 0x1860, 0x0B80000D,
++ 0x1860, 0x0580000E,
++ 0x1860, 0x0E80000F,
++ 0x1860, 0x1A800010,
++ 0x1860, 0x0B800011,
++ 0x1860, 0x15800012,
++ 0x1860, 0x08800013,
++ 0x1860, 0x1A800014,
++ 0x1860, 0x0B800015,
++ 0x1860, 0x05800016,
++ 0x1860, 0x07800017,
++ 0x1860, 0x1A800018,
++ 0x1860, 0x0B800019,
++ 0x1860, 0x1580001A,
++ 0x1860, 0x0880001B,
++ 0x1860, 0x1B80001C,
++ 0x1860, 0x0B80001D,
++ 0x1860, 0x0580001E,
++ 0x1860, 0x0780001F,
++ 0x1860, 0x1B800020,
++ 0x1860, 0x0B800021,
++ 0x1860, 0x05800022,
++ 0x1860, 0x07800023,
++ 0x1860, 0x1B800024,
++ 0x1860, 0x0B800025,
++ 0x1860, 0x05800026,
++ 0x1860, 0x07800027,
++ 0x1860, 0x1B800028,
++ 0x1860, 0x0B800029,
++ 0x1860, 0x0580002A,
++ 0x1860, 0x0780002B,
++ 0x1860, 0x1B800030,
++ 0x1860, 0x0B800031,
++ 0x1860, 0x05800032,
++ 0x1860, 0x00800033,
++ 0x1860, 0x1B800034,
++ 0x1860, 0x0B800035,
++ 0x1860, 0x05800036,
++ 0x1860, 0x00800037,
++ 0x1860, 0x1B800038,
++ 0x1860, 0x0B800039,
++ 0x1860, 0x0580003A,
++ 0x1860, 0x0E80803B,
++ 0x1894, 0x01000401,
++ 0x1898, 0x00188000,
++ 0x18A0, 0x00002929,
++ 0x18A4, 0x08040201,
++ 0x18A8, 0x80402010,
++ 0x18AC, 0x77777000,
++ 0x18B0, 0x54775477,
++ 0x18B4, 0x54775477,
++ 0x18B8, 0x00500000,
++ 0x18BC, 0x77700000,
++ 0x1A00, 0x00000007,
++ 0x1A04, 0x00042020,
++ 0x1A08, 0x80410231,
++ 0x1A0C, 0x00000000,
++ 0x1A10, 0x00000100,
++ 0x1A14, 0x01000000,
++ 0x1A1C, 0x40000053,
++ 0x1A50, 0x00000020,
++ 0x1A54, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1A58, 0x3C0A0C14,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1A58, 0x3C0A0C14,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1A58, 0x3C0A0C14,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1A58, 0x3C0A0C14,
++ 0xA0000000, 0x00000000,
++ 0x1A58, 0x3C020C14,
++ 0xB0000000, 0x00000000,
++ 0x1A5C, 0x0D000058,
++ 0x1A60, 0x1B800000,
++ 0x1A60, 0x0B800001,
++ 0x1A60, 0x05800002,
++ 0x1A60, 0x07800003,
++ 0x1A60, 0x1A800004,
++ 0x1A60, 0x0B800005,
++ 0x1A60, 0x05800006,
++ 0x1A60, 0x0E800007,
++ 0x1A60, 0x1A800008,
++ 0x1A60, 0x0B800009,
++ 0x1A60, 0x1580000A,
++ 0x1A60, 0x0880000B,
++ 0x1A60, 0x1A80000C,
++ 0x1A60, 0x0B80000D,
++ 0x1A60, 0x0580000E,
++ 0x1A60, 0x0E80000F,
++ 0x1A60, 0x1A800010,
++ 0x1A60, 0x0B800011,
++ 0x1A60, 0x15800012,
++ 0x1A60, 0x08800013,
++ 0x1A60, 0x1A800014,
++ 0x1A60, 0x0B800015,
++ 0x1A60, 0x05800016,
++ 0x1A60, 0x07800017,
++ 0x1A60, 0x1A800018,
++ 0x1A60, 0x0B800019,
++ 0x1A60, 0x1580001A,
++ 0x1A60, 0x0880001B,
++ 0x1A60, 0x1B80001C,
++ 0x1A60, 0x0B80001D,
++ 0x1A60, 0x0580001E,
++ 0x1A60, 0x0780001F,
++ 0x1A60, 0x1B800020,
++ 0x1A60, 0x0B800021,
++ 0x1A60, 0x05800022,
++ 0x1A60, 0x07800023,
++ 0x1A60, 0x1B800024,
++ 0x1A60, 0x0B800025,
++ 0x1A60, 0x05800026,
++ 0x1A60, 0x07800027,
++ 0x1A60, 0x1B800028,
++ 0x1A60, 0x0B800029,
++ 0x1A60, 0x0580002A,
++ 0x1A60, 0x0780002B,
++ 0x1A60, 0x1B800030,
++ 0x1A60, 0x0B800031,
++ 0x1A60, 0x05800032,
++ 0x1A60, 0x00800033,
++ 0x1A60, 0x1B800034,
++ 0x1A60, 0x0B800035,
++ 0x1A60, 0x05800036,
++ 0x1A60, 0x00800037,
++ 0x1A60, 0x1B800038,
++ 0x1A60, 0x0B800039,
++ 0x1A60, 0x0580003A,
++ 0x1A60, 0x0E80803B,
++ 0x1A94, 0x01000401,
++ 0x1A98, 0x00188000,
++ 0x1AA0, 0x00002929,
++ 0x1AA4, 0x08040201,
++ 0x1AA8, 0x80402010,
++ 0x1AAC, 0x77777000,
++ 0x1AB0, 0x54775477,
++ 0x1AB4, 0x54775477,
++ 0x1AB8, 0x00500000,
++ 0x1ABC, 0x77700000,
++ 0x1904, 0x00030000,
++ 0x1914, 0x00030000,
++ 0x1984, 0x03000000,
++ 0x1988, 0x00000087,
++ 0x198C, 0x00000007,
++ 0x1990, 0xFFAA5500,
++ 0x1994, 0x00000077,
++ 0x1998, 0x12801000,
++ 0x1998, 0x12801000,
++ 0x1998, 0x12801001,
++ 0x1998, 0x12801002,
++ 0x1998, 0x12801003,
++ 0x1998, 0x12801004,
++ 0x1998, 0x12801005,
++ 0x1998, 0x12801006,
++ 0x1998, 0x12801007,
++ 0x1998, 0x12801008,
++ 0x1998, 0x12801009,
++ 0x1998, 0x1280100A,
++ 0x1998, 0x1280100B,
++ 0x1998, 0x1280100C,
++ 0x1998, 0x1280100D,
++ 0x1998, 0x1280100E,
++ 0x1998, 0x1280100F,
++ 0x1998, 0x12801010,
++ 0x1998, 0x12801011,
++ 0x1998, 0x12801012,
++ 0x1998, 0x12801013,
++ 0x1998, 0x12801014,
++ 0x1998, 0x12801015,
++ 0x1998, 0x12801016,
++ 0x1998, 0x12801017,
++ 0x1998, 0x12801018,
++ 0x1998, 0x12801019,
++ 0x1998, 0x1280101A,
++ 0x1998, 0x1280101B,
++ 0x1998, 0x1280101C,
++ 0x1998, 0x1280101D,
++ 0x1998, 0x1280101E,
++ 0x1998, 0x1280101F,
++ 0x1998, 0x12801020,
++ 0x1998, 0x12801021,
++ 0x1998, 0x12801022,
++ 0x1998, 0x12801023,
++ 0x1998, 0x1280102C,
++ 0x1998, 0x1280102D,
++ 0x1998, 0x1280102E,
++ 0x1998, 0x1280102F,
++ 0x1998, 0x12801030,
++ 0x1998, 0x12801031,
++ 0x1998, 0x12801032,
++ 0x1998, 0x12801033,
++ 0x1998, 0x12801034,
++ 0x1998, 0x12801035,
++ 0x1998, 0x12801036,
++ 0x1998, 0x12801037,
++ 0x1998, 0x12801038,
++ 0x1998, 0x12801039,
++ 0x1998, 0x1280103A,
++ 0x1998, 0x1280103B,
++ 0x1998, 0x1280103C,
++ 0x1998, 0x1280103D,
++ 0x1998, 0x1280103E,
++ 0x1998, 0x1280103F,
++ 0x1998, 0x12801040,
++ 0x1998, 0x12801041,
++ 0x1998, 0x12801042,
++ 0x1998, 0x12801043,
++ 0x1998, 0x12801044,
++ 0x1998, 0x12801045,
++ 0x1998, 0x12801046,
++ 0x1998, 0x12801047,
++ 0x1998, 0x12801048,
++ 0x1998, 0x12801049,
++ 0x1998, 0x12801100,
++ 0x1998, 0x12801101,
++ 0x1998, 0x12801102,
++ 0x1998, 0x12801103,
++ 0x1998, 0x12801104,
++ 0x1998, 0x12801105,
++ 0x1998, 0x12801106,
++ 0x1998, 0x12801107,
++ 0x1998, 0x12801108,
++ 0x1998, 0x12801109,
++ 0x1998, 0x1280110A,
++ 0x1998, 0x1280110B,
++ 0x1998, 0x1280110C,
++ 0x1998, 0x1280110D,
++ 0x1998, 0x1280110E,
++ 0x1998, 0x1280110F,
++ 0x1998, 0x12801110,
++ 0x1998, 0x12801111,
++ 0x1998, 0x12801112,
++ 0x1998, 0x12801113,
++ 0x1998, 0x12801114,
++ 0x1998, 0x12801115,
++ 0x1998, 0x12801116,
++ 0x1998, 0x12801117,
++ 0x1998, 0x12801118,
++ 0x1998, 0x12801119,
++ 0x1998, 0x1280111A,
++ 0x1998, 0x1280111B,
++ 0x1998, 0x1280111C,
++ 0x1998, 0x1280111D,
++ 0x1998, 0x1280111E,
++ 0x1998, 0x1280111F,
++ 0x1998, 0x12801120,
++ 0x1998, 0x12801121,
++ 0x1998, 0x12801122,
++ 0x1998, 0x12801123,
++ 0x1998, 0x1280112C,
++ 0x1998, 0x1280112D,
++ 0x1998, 0x1280112E,
++ 0x1998, 0x1280112F,
++ 0x1998, 0x12801130,
++ 0x1998, 0x12801131,
++ 0x1998, 0x12801132,
++ 0x1998, 0x12801133,
++ 0x1998, 0x12801134,
++ 0x1998, 0x12801135,
++ 0x1998, 0x12801136,
++ 0x1998, 0x12801137,
++ 0x1998, 0x12801138,
++ 0x1998, 0x12801139,
++ 0x1998, 0x1280113A,
++ 0x1998, 0x1280113B,
++ 0x1998, 0x1280113C,
++ 0x1998, 0x1280113D,
++ 0x1998, 0x1280113E,
++ 0x1998, 0x1280113F,
++ 0x1998, 0x12801140,
++ 0x1998, 0x12801141,
++ 0x1998, 0x12801142,
++ 0x1998, 0x12801143,
++ 0x1998, 0x12801144,
++ 0x1998, 0x12801145,
++ 0x1998, 0x12801146,
++ 0x1998, 0x12801147,
++ 0x1998, 0x12801148,
++ 0x1998, 0x12801149,
++ 0x1998, 0x12801200,
++ 0x1998, 0x12801201,
++ 0x1998, 0x12801202,
++ 0x1998, 0x12801203,
++ 0x1998, 0x12801204,
++ 0x1998, 0x12801205,
++ 0x1998, 0x12801206,
++ 0x1998, 0x12801207,
++ 0x1998, 0x12801208,
++ 0x1998, 0x12801209,
++ 0x1998, 0x1280120A,
++ 0x1998, 0x1280120B,
++ 0x1998, 0x1280120C,
++ 0x1998, 0x1280120D,
++ 0x1998, 0x1280120E,
++ 0x1998, 0x1280120F,
++ 0x1998, 0x12801210,
++ 0x1998, 0x12801211,
++ 0x1998, 0x12801212,
++ 0x1998, 0x12801213,
++ 0x1998, 0x12801214,
++ 0x1998, 0x12801215,
++ 0x1998, 0x12801216,
++ 0x1998, 0x12801217,
++ 0x1998, 0x12801218,
++ 0x1998, 0x12801219,
++ 0x1998, 0x1280121A,
++ 0x1998, 0x1280121B,
++ 0x1998, 0x1280121C,
++ 0x1998, 0x1280121D,
++ 0x1998, 0x1280121E,
++ 0x1998, 0x1280121F,
++ 0x1998, 0x12801220,
++ 0x1998, 0x12801221,
++ 0x1998, 0x12801222,
++ 0x1998, 0x12801223,
++ 0x1998, 0x1280122C,
++ 0x1998, 0x1280122D,
++ 0x1998, 0x1280122E,
++ 0x1998, 0x1280122F,
++ 0x1998, 0x12801230,
++ 0x1998, 0x12801231,
++ 0x1998, 0x12801232,
++ 0x1998, 0x12801233,
++ 0x1998, 0x12801234,
++ 0x1998, 0x12801235,
++ 0x1998, 0x12801236,
++ 0x1998, 0x12801237,
++ 0x1998, 0x12801238,
++ 0x1998, 0x12801239,
++ 0x1998, 0x1280123A,
++ 0x1998, 0x1280123B,
++ 0x1998, 0x1280123C,
++ 0x1998, 0x1280123D,
++ 0x1998, 0x1280123E,
++ 0x1998, 0x1280123F,
++ 0x1998, 0x12801240,
++ 0x1998, 0x12801241,
++ 0x1998, 0x12801242,
++ 0x1998, 0x12801243,
++ 0x1998, 0x12801244,
++ 0x1998, 0x12801245,
++ 0x1998, 0x12801246,
++ 0x1998, 0x12801247,
++ 0x1998, 0x12801248,
++ 0x1998, 0x12801249,
++ 0x1998, 0x12801300,
++ 0x1998, 0x12801301,
++ 0x1998, 0x12801302,
++ 0x1998, 0x12801303,
++ 0x1998, 0x12801304,
++ 0x1998, 0x12801305,
++ 0x1998, 0x12801306,
++ 0x1998, 0x12801307,
++ 0x1998, 0x12801308,
++ 0x1998, 0x12801309,
++ 0x1998, 0x1280130A,
++ 0x1998, 0x1280130B,
++ 0x1998, 0x1280130C,
++ 0x1998, 0x1280130D,
++ 0x1998, 0x1280130E,
++ 0x1998, 0x1280130F,
++ 0x1998, 0x12801310,
++ 0x1998, 0x12801311,
++ 0x1998, 0x12801312,
++ 0x1998, 0x12801313,
++ 0x1998, 0x12801314,
++ 0x1998, 0x12801315,
++ 0x1998, 0x12801316,
++ 0x1998, 0x12801317,
++ 0x1998, 0x12801318,
++ 0x1998, 0x12801319,
++ 0x1998, 0x1280131A,
++ 0x1998, 0x1280131B,
++ 0x1998, 0x1280131C,
++ 0x1998, 0x1280131D,
++ 0x1998, 0x1280131E,
++ 0x1998, 0x1280131F,
++ 0x1998, 0x12801320,
++ 0x1998, 0x12801321,
++ 0x1998, 0x12801322,
++ 0x1998, 0x12801323,
++ 0x1998, 0x1280132C,
++ 0x1998, 0x1280132D,
++ 0x1998, 0x1280132E,
++ 0x1998, 0x1280132F,
++ 0x1998, 0x12801330,
++ 0x1998, 0x12801331,
++ 0x1998, 0x12801332,
++ 0x1998, 0x12801333,
++ 0x1998, 0x12801334,
++ 0x1998, 0x12801335,
++ 0x1998, 0x12801336,
++ 0x1998, 0x12801337,
++ 0x1998, 0x12801338,
++ 0x1998, 0x12801339,
++ 0x1998, 0x1280133A,
++ 0x1998, 0x1280133B,
++ 0x1998, 0x1280133C,
++ 0x1998, 0x1280133D,
++ 0x1998, 0x1280133E,
++ 0x1998, 0x1280133F,
++ 0x1998, 0x12801340,
++ 0x1998, 0x12801341,
++ 0x1998, 0x12801342,
++ 0x1998, 0x12801343,
++ 0x1998, 0x12801344,
++ 0x1998, 0x12801345,
++ 0x1998, 0x12801346,
++ 0x1998, 0x12801347,
++ 0x1998, 0x12801348,
++ 0x1998, 0x12801349,
++ 0x19D4, 0x88888888,
++ 0x19D8, 0x00000888,
++ 0xB00, 0xE3100100,
++ 0xB00, 0xE7100100,
++ 0xC60, 0x15808002,
++ 0xC60, 0x01808003,
++ 0xE60, 0x15808002,
++ 0xE60, 0x01808003,
++ 0x1860, 0x15808002,
++ 0x1860, 0x01808003,
++ 0x1A60, 0x15808002,
++ 0x1A60, 0x01808003,
++ 0xB00, 0xE3100100,
++ 0xC5C, 0x0D080058,
++ 0xE5C, 0x0D080058,
++ 0x185C, 0x0D080058,
++ 0x1A5C, 0x0D080058,
++ 0xC5C, 0x0D000058,
++ 0xE5C, 0x0D000058,
++ 0x185C, 0x0D000058,
++ 0x1A5C, 0x0D000058,
++ 0xC60, 0x05808002,
++ 0xC60, 0x0E808003,
++ 0xE60, 0x05808002,
++ 0xE60, 0x0E808003,
++ 0x1860, 0x05808002,
++ 0x1860, 0x0E808003,
++ 0x1A60, 0x05808002,
++ 0x1A60, 0x0E808003,
++ 0xB00, 0xE7100100,
++ 0xB00, 0xE3100100,
++ 0xB00, 0xE3100000,
++ 0x1C38, 0x00000002,
++ 0xA00, 0x00D047C8,
++ 0xA04, 0x46FF800C,
++ 0xA08, 0x8C838300,
++ 0xA0C, 0x2E7E000F,
++ 0xA10, 0x9500BB78,
++ 0xA14, 0x11144028,
++ 0xA18, 0x00881117,
++ 0xA1C, 0x89140F00,
++ 0xA20, 0x1A1B0030,
++ 0xA24, 0x090E1317,
++ 0xA28, 0x00000204,
++ 0xA2C, 0x00900000,
++ 0xA70, 0x101FFF00,
++ 0xA74, 0x00000128,
++ 0xA78, 0x00000900,
++ 0xA7C, 0x225B0606,
++ 0xA80, 0x218075B2,
++ 0xA84, 0x9C1F8C00,
++ 0x1B04, 0xE24628D2,
++ 0x1B10, 0x88010D46,
++ 0x1B14, 0x00000000,
++ 0x1B18, 0x00292903,
++ 0x1B00, 0xF8000000,
++ 0x1B00, 0xF800D000,
++ 0x1B00, 0xF801F000,
++ 0x1B1C, 0xA2123DB2,
++ 0x1B20, 0x07040001,
++ 0x1B24, 0x07060807,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0xA0000000, 0x00000000,
++ 0x1B28, 0xC0060348,
++ 0xB0000000, 0x00000000,
++ 0x1B2C, 0x20000003,
++ 0x1B30, 0x20000000,
++ 0x1B38, 0x20000000,
++ 0x1B3C, 0x20000000,
++ 0x1BD4, 0x00000001,
++ 0x1B94, 0x80000000,
++ 0x1B34, 0x00000000,
++ 0x1B34, 0x00000002,
++ 0x1B34, 0x00000000,
++ 0x1B00, 0xF8000002,
++ 0x1B00, 0xF800D002,
++ 0x1B00, 0xF801F002,
++ 0x1B1C, 0xA2123DB2,
++ 0x1B20, 0x07040001,
++ 0x1B24, 0x07060807,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0xA0000000, 0x00000000,
++ 0x1B28, 0xC0060348,
++ 0xB0000000, 0x00000000,
++ 0x1B2C, 0x20000003,
++ 0x1B30, 0x20000000,
++ 0x1B38, 0x20000000,
++ 0x1B3C, 0x20000000,
++ 0x1BD4, 0x00000001,
++ 0x1B94, 0x80000000,
++ 0x1B34, 0x00000000,
++ 0x1B34, 0x00000002,
++ 0x1B34, 0x00000000,
++ 0x1B00, 0xF8000004,
++ 0x1B00, 0xF800D004,
++ 0x1B00, 0xF801F004,
++ 0x1B1C, 0xA2123DB2,
++ 0x1B20, 0x07040001,
++ 0x1B24, 0x07060807,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0xA0000000, 0x00000000,
++ 0x1B28, 0xC0060348,
++ 0xB0000000, 0x00000000,
++ 0x1B2C, 0x20000003,
++ 0x1B30, 0x20000000,
++ 0x1B38, 0x20000000,
++ 0x1B3C, 0x20000000,
++ 0x1BD4, 0x00000001,
++ 0x1B94, 0x80000000,
++ 0x1B34, 0x00000000,
++ 0x1B34, 0x00000002,
++ 0x1B34, 0x00000000,
++ 0x1B00, 0xF8000006,
++ 0x1B00, 0xF800D006,
++ 0x1B00, 0xF801F006,
++ 0x1B1C, 0xA2123DB2,
++ 0x1B20, 0x07040001,
++ 0x1B24, 0x07060807,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B28, 0xC0060324,
++ 0xA0000000, 0x00000000,
++ 0x1B28, 0xC0060348,
++ 0xB0000000, 0x00000000,
++ 0x1B2C, 0x20000003,
++ 0x1B30, 0x20000000,
++ 0x1B38, 0x20000000,
++ 0x1B3C, 0x20000000,
++ 0x1BD4, 0x00000001,
++ 0x1B94, 0x80000000,
++ 0x1B34, 0x00000000,
++ 0x1B34, 0x00000002,
++ 0x1B34, 0x00000000,
++ 0x1B00, 0xF8000000,
++ 0x1B80, 0x00000007,
++ 0x1B80, 0x09060005,
++ 0x1B80, 0x09060007,
++ 0x1B80, 0x0FFE0015,
++ 0x1B80, 0x0FFE0017,
++ 0x1B80, 0x00240025,
++ 0x1B80, 0x00240027,
++ 0x1B80, 0x00040035,
++ 0x1B80, 0x00040037,
++ 0x1B80, 0x05C00045,
++ 0x1B80, 0x05C00047,
++ 0x1B80, 0x00070055,
++ 0x1B80, 0x00070057,
++ 0x1B80, 0x64000065,
++ 0x1B80, 0x64000067,
++ 0x1B80, 0x00020075,
++ 0x1B80, 0x00020077,
++ 0x1B80, 0x00080085,
++ 0x1B80, 0x00080087,
++ 0x1B80, 0x80000095,
++ 0x1B80, 0x80000097,
++ 0x1B80, 0x090100A5,
++ 0x1B80, 0x090100A7,
++ 0x1B80, 0x0F0200B5,
++ 0x1B80, 0x0F0200B7,
++ 0x1B80, 0x002400C5,
++ 0x1B80, 0x002400C7,
++ 0x1B80, 0x000400D5,
++ 0x1B80, 0x000400D7,
++ 0x1B80, 0x05C000E5,
++ 0x1B80, 0x05C000E7,
++ 0x1B80, 0x000700F5,
++ 0x1B80, 0x000700F7,
++ 0x1B80, 0x64020105,
++ 0x1B80, 0x64020107,
++ 0x1B80, 0x00020115,
++ 0x1B80, 0x00020117,
++ 0x1B80, 0x00040125,
++ 0x1B80, 0x00040127,
++ 0x1B80, 0x4A000135,
++ 0x1B80, 0x4A000137,
++ 0x1B80, 0x4B040145,
++ 0x1B80, 0x4B040147,
++ 0x1B80, 0x85030155,
++ 0x1B80, 0x85030157,
++ 0x1B80, 0x40010165,
++ 0x1B80, 0x40010167,
++ 0x1B80, 0xE0290175,
++ 0x1B80, 0xE0290177,
++ 0x1B80, 0x00040185,
++ 0x1B80, 0x00040187,
++ 0x1B80, 0x4B050195,
++ 0x1B80, 0x4B050197,
++ 0x1B80, 0x860301A5,
++ 0x1B80, 0x860301A7,
++ 0x1B80, 0x400301B5,
++ 0x1B80, 0x400301B7,
++ 0x1B80, 0xE02901C5,
++ 0x1B80, 0xE02901C7,
++ 0x1B80, 0x000401D5,
++ 0x1B80, 0x000401D7,
++ 0x1B80, 0x4B0601E5,
++ 0x1B80, 0x4B0601E7,
++ 0x1B80, 0x870301F5,
++ 0x1B80, 0x870301F7,
++ 0x1B80, 0x40050205,
++ 0x1B80, 0x40050207,
++ 0x1B80, 0xE0290215,
++ 0x1B80, 0xE0290217,
++ 0x1B80, 0x00040225,
++ 0x1B80, 0x00040227,
++ 0x1B80, 0x4B070235,
++ 0x1B80, 0x4B070237,
++ 0x1B80, 0x88030245,
++ 0x1B80, 0x88030247,
++ 0x1B80, 0x40070255,
++ 0x1B80, 0x40070257,
++ 0x1B80, 0xE0290265,
++ 0x1B80, 0xE0290267,
++ 0x1B80, 0x4B000275,
++ 0x1B80, 0x4B000277,
++ 0x1B80, 0x30000285,
++ 0x1B80, 0x30000287,
++ 0x1B80, 0xFE100295,
++ 0x1B80, 0xFE100297,
++ 0x1B80, 0xFF1002A5,
++ 0x1B80, 0xFF1002A7,
++ 0x1B80, 0xE18602B5,
++ 0x1B80, 0xE18602B7,
++ 0x1B80, 0xF00A02C5,
++ 0x1B80, 0xF00A02C7,
++ 0x1B80, 0xF10A02D5,
++ 0x1B80, 0xF10A02D7,
++ 0x1B80, 0xF20A02E5,
++ 0x1B80, 0xF20A02E7,
++ 0x1B80, 0xF30802F5,
++ 0x1B80, 0xF30802F7,
++ 0x1B80, 0xF4070305,
++ 0x1B80, 0xF4070307,
++ 0x1B80, 0xF5060315,
++ 0x1B80, 0xF5060317,
++ 0x1B80, 0xF7060325,
++ 0x1B80, 0xF7060327,
++ 0x1B80, 0xF8050335,
++ 0x1B80, 0xF8050337,
++ 0x1B80, 0xF9040345,
++ 0x1B80, 0xF9040347,
++ 0x1B80, 0x00010355,
++ 0x1B80, 0x00010357,
++ 0x1B80, 0x303B0365,
++ 0x1B80, 0x303B0367,
++ 0x1B80, 0x30500375,
++ 0x1B80, 0x30500377,
++ 0x1B80, 0x305C0385,
++ 0x1B80, 0x305C0387,
++ 0x1B80, 0x31D50395,
++ 0x1B80, 0x31D50397,
++ 0x1B80, 0x31C503A5,
++ 0x1B80, 0x31C503A7,
++ 0x1B80, 0x4D0403B5,
++ 0x1B80, 0x4D0403B7,
++ 0x1B80, 0x2EF003C5,
++ 0x1B80, 0x2EF003C7,
++ 0x1B80, 0x000203D5,
++ 0x1B80, 0x000203D7,
++ 0x1B80, 0x208003E5,
++ 0x1B80, 0x208003E7,
++ 0x1B80, 0x000003F5,
++ 0x1B80, 0x000003F7,
++ 0x1B80, 0x4D000405,
++ 0x1B80, 0x4D000407,
++ 0x1B80, 0x55070415,
++ 0x1B80, 0x55070417,
++ 0x1B80, 0xE1230425,
++ 0x1B80, 0xE1230427,
++ 0x1B80, 0xE1230435,
++ 0x1B80, 0xE1230437,
++ 0x1B80, 0x4D040445,
++ 0x1B80, 0x4D040447,
++ 0x1B80, 0x20800455,
++ 0x1B80, 0x20800457,
++ 0x1B80, 0x84000465,
++ 0x1B80, 0x84000467,
++ 0x1B80, 0x4D000475,
++ 0x1B80, 0x4D000477,
++ 0x1B80, 0x550F0485,
++ 0x1B80, 0x550F0487,
++ 0x1B80, 0xE1230495,
++ 0x1B80, 0xE1230497,
++ 0x1B80, 0x4F0204A5,
++ 0x1B80, 0x4F0204A7,
++ 0x1B80, 0x4E0004B5,
++ 0x1B80, 0x4E0004B7,
++ 0x1B80, 0x530204C5,
++ 0x1B80, 0x530204C7,
++ 0x1B80, 0x520104D5,
++ 0x1B80, 0x520104D7,
++ 0x1B80, 0xE12704E5,
++ 0x1B80, 0xE12704E7,
++ 0x1B80, 0x000104F5,
++ 0x1B80, 0x000104F7,
++ 0x1B80, 0x5C720505,
++ 0x1B80, 0x5C720507,
++ 0x1B80, 0xE1320515,
++ 0x1B80, 0xE1320517,
++ 0x1B80, 0x54E50525,
++ 0x1B80, 0x54E50527,
++ 0x1B80, 0x54BF0535,
++ 0x1B80, 0x54BF0537,
++ 0x1B80, 0x54C50545,
++ 0x1B80, 0x54C50547,
++ 0x1B80, 0x54BE0555,
++ 0x1B80, 0x54BE0557,
++ 0x1B80, 0x54DF0565,
++ 0x1B80, 0x54DF0567,
++ 0x1B80, 0x0BA60575,
++ 0x1B80, 0x0BA60577,
++ 0x1B80, 0xF3130585,
++ 0x1B80, 0xF3130587,
++ 0x1B80, 0xF41E0595,
++ 0x1B80, 0xF41E0597,
++ 0x1B80, 0xF53C05A5,
++ 0x1B80, 0xF53C05A7,
++ 0x1B80, 0x000105B5,
++ 0x1B80, 0x000105B7,
++ 0x1B80, 0x620605C5,
++ 0x1B80, 0x620605C7,
++ 0x1B80, 0x600605D5,
++ 0x1B80, 0x600605D7,
++ 0x1B80, 0xE1A905E5,
++ 0x1B80, 0xE1A905E7,
++ 0x1B80, 0x0C0005F5,
++ 0x1B80, 0x0C0005F7,
++ 0x1B80, 0x5C720605,
++ 0x1B80, 0x5C720607,
++ 0x1B80, 0xE1320615,
++ 0x1B80, 0xE1320617,
++ 0x1B80, 0x5CF10625,
++ 0x1B80, 0x5CF10627,
++ 0x1B80, 0x0C010635,
++ 0x1B80, 0x0C010637,
++ 0x1B80, 0xF2020645,
++ 0x1B80, 0xF2020647,
++ 0x1B80, 0x30D60655,
++ 0x1B80, 0x30D60657,
++ 0x1B80, 0x0AC60665,
++ 0x1B80, 0x0AC60667,
++ 0x1B80, 0xE1B60675,
++ 0x1B80, 0xE1B60677,
++ 0x1B80, 0xE1580685,
++ 0x1B80, 0xE1580687,
++ 0x1B80, 0x54E50695,
++ 0x1B80, 0x54E50697,
++ 0x1B80, 0x000106A5,
++ 0x1B80, 0x000106A7,
++ 0x1B80, 0x560106B5,
++ 0x1B80, 0x560106B7,
++ 0x1B80, 0x5CE206C5,
++ 0x1B80, 0x5CE206C7,
++ 0x1B80, 0x0AE106D5,
++ 0x1B80, 0x0AE106D7,
++ 0x1B80, 0x630C06E5,
++ 0x1B80, 0x630C06E7,
++ 0x1B80, 0xE13F06F5,
++ 0x1B80, 0xE13F06F7,
++ 0x1B80, 0x00270705,
++ 0x1B80, 0x00270707,
++ 0x1B80, 0xE16C0715,
++ 0x1B80, 0xE16C0717,
++ 0x1B80, 0x00020725,
++ 0x1B80, 0x00020727,
++ 0x1B80, 0x002A0735,
++ 0x1B80, 0x002A0737,
++ 0x1B80, 0x07140745,
++ 0x1B80, 0x07140747,
++ 0x1B80, 0x00020755,
++ 0x1B80, 0x00020757,
++ 0x1B80, 0x30C30765,
++ 0x1B80, 0x30C30767,
++ 0x1B80, 0x56010775,
++ 0x1B80, 0x56010777,
++ 0x1B80, 0x5CE20785,
++ 0x1B80, 0x5CE20787,
++ 0x1B80, 0x0AE10795,
++ 0x1B80, 0x0AE10797,
++ 0x1B80, 0x631707A5,
++ 0x1B80, 0x631707A7,
++ 0x1B80, 0xE13F07B5,
++ 0x1B80, 0xE13F07B7,
++ 0x1B80, 0x002507C5,
++ 0x1B80, 0x002507C7,
++ 0x1B80, 0xE16C07D5,
++ 0x1B80, 0xE16C07D7,
++ 0x1B80, 0x000207E5,
++ 0x1B80, 0x000207E7,
++ 0x1B80, 0x630F07F5,
++ 0x1B80, 0x630F07F7,
++ 0x1B80, 0xE13F0805,
++ 0x1B80, 0xE13F0807,
++ 0x1B80, 0x63070815,
++ 0x1B80, 0x63070817,
++ 0x1B80, 0xE13F0825,
++ 0x1B80, 0xE13F0827,
++ 0x1B80, 0x07140835,
++ 0x1B80, 0x07140837,
++ 0x1B80, 0x56000845,
++ 0x1B80, 0x56000847,
++ 0x1B80, 0x5CF20855,
++ 0x1B80, 0x5CF20857,
++ 0x1B80, 0x0AF10865,
++ 0x1B80, 0x0AF10867,
++ 0x1B80, 0x07140875,
++ 0x1B80, 0x07140877,
++ 0x1B80, 0x07140885,
++ 0x1B80, 0x07140887,
++ 0x1B80, 0x630F0895,
++ 0x1B80, 0x630F0897,
++ 0x1B80, 0xE13F08A5,
++ 0x1B80, 0xE13F08A7,
++ 0x1B80, 0x631708B5,
++ 0x1B80, 0x631708B7,
++ 0x1B80, 0xE13F08C5,
++ 0x1B80, 0xE13F08C7,
++ 0x1B80, 0x002508D5,
++ 0x1B80, 0x002508D7,
++ 0x1B80, 0xE16C08E5,
++ 0x1B80, 0xE16C08E7,
++ 0x1B80, 0x000208F5,
++ 0x1B80, 0x000208F7,
++ 0x1B80, 0x30C30905,
++ 0x1B80, 0x30C30907,
++ 0x1B80, 0xE1A90915,
++ 0x1B80, 0xE1A90917,
++ 0x1B80, 0x62060925,
++ 0x1B80, 0x62060927,
++ 0x1B80, 0x60060935,
++ 0x1B80, 0x60060937,
++ 0x1B80, 0xE1160945,
++ 0x1B80, 0xE1160947,
++ 0x1B80, 0x54BE0955,
++ 0x1B80, 0x54BE0957,
++ 0x1B80, 0x56010965,
++ 0x1B80, 0x56010967,
++ 0x1B80, 0x5CE20975,
++ 0x1B80, 0x5CE20977,
++ 0x1B80, 0x0AE10985,
++ 0x1B80, 0x0AE10987,
++ 0x1B80, 0x633A0995,
++ 0x1B80, 0x633A0997,
++ 0x1B80, 0xE13F09A5,
++ 0x1B80, 0xE13F09A7,
++ 0x1B80, 0x633709B5,
++ 0x1B80, 0x633709B7,
++ 0x1B80, 0xE13F09C5,
++ 0x1B80, 0xE13F09C7,
++ 0x1B80, 0x632F09D5,
++ 0x1B80, 0x632F09D7,
++ 0x1B80, 0xE13F09E5,
++ 0x1B80, 0xE13F09E7,
++ 0x1B80, 0x632709F5,
++ 0x1B80, 0x632709F7,
++ 0x1B80, 0xE13F0A05,
++ 0x1B80, 0xE13F0A07,
++ 0x1B80, 0x631F0A15,
++ 0x1B80, 0x631F0A17,
++ 0x1B80, 0xE13F0A25,
++ 0x1B80, 0xE13F0A27,
++ 0x1B80, 0x63170A35,
++ 0x1B80, 0x63170A37,
++ 0x1B80, 0xE13F0A45,
++ 0x1B80, 0xE13F0A47,
++ 0x1B80, 0x630F0A55,
++ 0x1B80, 0x630F0A57,
++ 0x1B80, 0xE13F0A65,
++ 0x1B80, 0xE13F0A67,
++ 0x1B80, 0x63070A75,
++ 0x1B80, 0x63070A77,
++ 0x1B80, 0xE13F0A85,
++ 0x1B80, 0xE13F0A87,
++ 0x1B80, 0xE16C0A95,
++ 0x1B80, 0xE16C0A97,
++ 0x1B80, 0x56000AA5,
++ 0x1B80, 0x56000AA7,
++ 0x1B80, 0x5CF20AB5,
++ 0x1B80, 0x5CF20AB7,
++ 0x1B80, 0x0AF10AC5,
++ 0x1B80, 0x0AF10AC7,
++ 0x1B80, 0xF5040AD5,
++ 0x1B80, 0xF5040AD7,
++ 0x1B80, 0xE13F0AE5,
++ 0x1B80, 0xE13F0AE7,
++ 0x1B80, 0xE16C0AF5,
++ 0x1B80, 0xE16C0AF7,
++ 0x1B80, 0x30B30B05,
++ 0x1B80, 0x30B30B07,
++ 0x1B80, 0x07140B15,
++ 0x1B80, 0x07140B17,
++ 0x1B80, 0x07140B25,
++ 0x1B80, 0x07140B27,
++ 0x1B80, 0x630F0B35,
++ 0x1B80, 0x630F0B37,
++ 0x1B80, 0xE13F0B45,
++ 0x1B80, 0xE13F0B47,
++ 0x1B80, 0x63170B55,
++ 0x1B80, 0x63170B57,
++ 0x1B80, 0xE13F0B65,
++ 0x1B80, 0xE13F0B67,
++ 0x1B80, 0x631F0B75,
++ 0x1B80, 0x631F0B77,
++ 0x1B80, 0xE13F0B85,
++ 0x1B80, 0xE13F0B87,
++ 0x1B80, 0x63270B95,
++ 0x1B80, 0x63270B97,
++ 0x1B80, 0xE13F0BA5,
++ 0x1B80, 0xE13F0BA7,
++ 0x1B80, 0x632F0BB5,
++ 0x1B80, 0x632F0BB7,
++ 0x1B80, 0xE13F0BC5,
++ 0x1B80, 0xE13F0BC7,
++ 0x1B80, 0x63370BD5,
++ 0x1B80, 0x63370BD7,
++ 0x1B80, 0xE13F0BE5,
++ 0x1B80, 0xE13F0BE7,
++ 0x1B80, 0x633A0BF5,
++ 0x1B80, 0x633A0BF7,
++ 0x1B80, 0xE13F0C05,
++ 0x1B80, 0xE13F0C07,
++ 0x1B80, 0xF60B0C15,
++ 0x1B80, 0xF60B0C17,
++ 0x1B80, 0xF7170C25,
++ 0x1B80, 0xF7170C27,
++ 0x1B80, 0x4D300C35,
++ 0x1B80, 0x4D300C37,
++ 0x1B80, 0x57040C45,
++ 0x1B80, 0x57040C47,
++ 0x1B80, 0x57000C55,
++ 0x1B80, 0x57000C57,
++ 0x1B80, 0x96000C65,
++ 0x1B80, 0x96000C67,
++ 0x1B80, 0x57080C75,
++ 0x1B80, 0x57080C77,
++ 0x1B80, 0x57000C85,
++ 0x1B80, 0x57000C87,
++ 0x1B80, 0x95000C95,
++ 0x1B80, 0x95000C97,
++ 0x1B80, 0x4D000CA5,
++ 0x1B80, 0x4D000CA7,
++ 0x1B80, 0x6C070CB5,
++ 0x1B80, 0x6C070CB7,
++ 0x1B80, 0x00010CC5,
++ 0x1B80, 0x00010CC7,
++ 0x1B80, 0x00220CD5,
++ 0x1B80, 0x00220CD7,
++ 0x1B80, 0x06140CE5,
++ 0x1B80, 0x06140CE7,
++ 0x1B80, 0xE16C0CF5,
++ 0x1B80, 0xE16C0CF7,
++ 0x1B80, 0x00020D05,
++ 0x1B80, 0x00020D07,
++ 0x1B80, 0x00250D15,
++ 0x1B80, 0x00250D17,
++ 0x1B80, 0x06140D25,
++ 0x1B80, 0x06140D27,
++ 0x1B80, 0xE16C0D35,
++ 0x1B80, 0xE16C0D37,
++ 0x1B80, 0x00020D45,
++ 0x1B80, 0x00020D47,
++ 0x1B80, 0x00010D55,
++ 0x1B80, 0x00010D57,
++ 0x1B80, 0x00320D65,
++ 0x1B80, 0x00320D67,
++ 0x1B80, 0xE16C0D75,
++ 0x1B80, 0xE16C0D77,
++ 0x1B80, 0x00020D85,
++ 0x1B80, 0x00020D87,
++ 0x1B80, 0xE1860D95,
++ 0x1B80, 0xE1860D97,
++ 0x1B80, 0xE1B60DA5,
++ 0x1B80, 0xE1B60DA7,
++ 0x1B80, 0x5CD10DB5,
++ 0x1B80, 0x5CD10DB7,
++ 0x1B80, 0x673A0DC5,
++ 0x1B80, 0x673A0DC7,
++ 0x1B80, 0xE1230DD5,
++ 0x1B80, 0xE1230DD7,
++ 0x1B80, 0xF80B0DE5,
++ 0x1B80, 0xF80B0DE7,
++ 0x1B80, 0xF9110DF5,
++ 0x1B80, 0xF9110DF7,
++ 0x1B80, 0xE1580E05,
++ 0x1B80, 0xE1580E07,
++ 0x1B80, 0x67370E15,
++ 0x1B80, 0x67370E17,
++ 0x1B80, 0xE1580E25,
++ 0x1B80, 0xE1580E27,
++ 0x1B80, 0x672F0E35,
++ 0x1B80, 0x672F0E37,
++ 0x1B80, 0xE1580E45,
++ 0x1B80, 0xE1580E47,
++ 0x1B80, 0x67270E55,
++ 0x1B80, 0x67270E57,
++ 0x1B80, 0xE1580E65,
++ 0x1B80, 0xE1580E67,
++ 0x1B80, 0x671F0E75,
++ 0x1B80, 0x671F0E77,
++ 0x1B80, 0xE1580E85,
++ 0x1B80, 0xE1580E87,
++ 0x1B80, 0x67170E95,
++ 0x1B80, 0x67170E97,
++ 0x1B80, 0xE1580EA5,
++ 0x1B80, 0xE1580EA7,
++ 0x1B80, 0xF8020EB5,
++ 0x1B80, 0xF8020EB7,
++ 0x1B80, 0x30EE0EC5,
++ 0x1B80, 0x30EE0EC7,
++ 0x1B80, 0xE0D10ED5,
++ 0x1B80, 0xE0D10ED7,
++ 0x1B80, 0x670F0EE5,
++ 0x1B80, 0x670F0EE7,
++ 0x1B80, 0xE1580EF5,
++ 0x1B80, 0xE1580EF7,
++ 0x1B80, 0x67070F05,
++ 0x1B80, 0x67070F07,
++ 0x1B80, 0xE1580F15,
++ 0x1B80, 0xE1580F17,
++ 0x1B80, 0xF9020F25,
++ 0x1B80, 0xF9020F27,
++ 0x1B80, 0x30F50F35,
++ 0x1B80, 0x30F50F37,
++ 0x1B80, 0xE0CD0F45,
++ 0x1B80, 0xE0CD0F47,
++ 0x1B80, 0x06140F55,
++ 0x1B80, 0x06140F57,
++ 0x1B80, 0xE16C0F65,
++ 0x1B80, 0xE16C0F67,
++ 0x1B80, 0x5CF10F75,
++ 0x1B80, 0x5CF10F77,
++ 0x1B80, 0xE1580F85,
++ 0x1B80, 0xE1580F87,
++ 0x1B80, 0x06140F95,
++ 0x1B80, 0x06140F97,
++ 0x1B80, 0xE16C0FA5,
++ 0x1B80, 0xE16C0FA7,
++ 0x1B80, 0xF9020FB5,
++ 0x1B80, 0xF9020FB7,
++ 0x1B80, 0x30FF0FC5,
++ 0x1B80, 0x30FF0FC7,
++ 0x1B80, 0xE0CD0FD5,
++ 0x1B80, 0xE0CD0FD7,
++ 0x1B80, 0x31130FE5,
++ 0x1B80, 0x31130FE7,
++ 0x1B80, 0x670F0FF5,
++ 0x1B80, 0x670F0FF7,
++ 0x1B80, 0xE1581005,
++ 0x1B80, 0xE1581007,
++ 0x1B80, 0x67171015,
++ 0x1B80, 0x67171017,
++ 0x1B80, 0xE1581025,
++ 0x1B80, 0xE1581027,
++ 0x1B80, 0xF8021035,
++ 0x1B80, 0xF8021037,
++ 0x1B80, 0x31071045,
++ 0x1B80, 0x31071047,
++ 0x1B80, 0xE0D11055,
++ 0x1B80, 0xE0D11057,
++ 0x1B80, 0x31131065,
++ 0x1B80, 0x31131067,
++ 0x1B80, 0x670F1075,
++ 0x1B80, 0x670F1077,
++ 0x1B80, 0xE1581085,
++ 0x1B80, 0xE1581087,
++ 0x1B80, 0x671F1095,
++ 0x1B80, 0x671F1097,
++ 0x1B80, 0xE15810A5,
++ 0x1B80, 0xE15810A7,
++ 0x1B80, 0x672710B5,
++ 0x1B80, 0x672710B7,
++ 0x1B80, 0xE15810C5,
++ 0x1B80, 0xE15810C7,
++ 0x1B80, 0x672F10D5,
++ 0x1B80, 0x672F10D7,
++ 0x1B80, 0xE15810E5,
++ 0x1B80, 0xE15810E7,
++ 0x1B80, 0x673710F5,
++ 0x1B80, 0x673710F7,
++ 0x1B80, 0xE1581105,
++ 0x1B80, 0xE1581107,
++ 0x1B80, 0x673A1115,
++ 0x1B80, 0x673A1117,
++ 0x1B80, 0xE1581125,
++ 0x1B80, 0xE1581127,
++ 0x1B80, 0x4D101135,
++ 0x1B80, 0x4D101137,
++ 0x1B80, 0x30C41145,
++ 0x1B80, 0x30C41147,
++ 0x1B80, 0x00011155,
++ 0x1B80, 0x00011157,
++ 0x1B80, 0x6F241165,
++ 0x1B80, 0x6F241167,
++ 0x1B80, 0x6E401175,
++ 0x1B80, 0x6E401177,
++ 0x1B80, 0x6D001185,
++ 0x1B80, 0x6D001187,
++ 0x1B80, 0x55031195,
++ 0x1B80, 0x55031197,
++ 0x1B80, 0x312311A5,
++ 0x1B80, 0x312311A7,
++ 0x1B80, 0x6F1C11B5,
++ 0x1B80, 0x6F1C11B7,
++ 0x1B80, 0x6E4011C5,
++ 0x1B80, 0x6E4011C7,
++ 0x1B80, 0x550B11D5,
++ 0x1B80, 0x550B11D7,
++ 0x1B80, 0x312311E5,
++ 0x1B80, 0x312311E7,
++ 0x1B80, 0x061C11F5,
++ 0x1B80, 0x061C11F7,
++ 0x1B80, 0x54DE1205,
++ 0x1B80, 0x54DE1207,
++ 0x1B80, 0x06DC1215,
++ 0x1B80, 0x06DC1217,
++ 0x1B80, 0x55131225,
++ 0x1B80, 0x55131227,
++ 0x1B80, 0x74011235,
++ 0x1B80, 0x74011237,
++ 0x1B80, 0x74001245,
++ 0x1B80, 0x74001247,
++ 0x1B80, 0x8E001255,
++ 0x1B80, 0x8E001257,
++ 0x1B80, 0x00011265,
++ 0x1B80, 0x00011267,
++ 0x1B80, 0x57021275,
++ 0x1B80, 0x57021277,
++ 0x1B80, 0x57001285,
++ 0x1B80, 0x57001287,
++ 0x1B80, 0x97001295,
++ 0x1B80, 0x97001297,
++ 0x1B80, 0x000112A5,
++ 0x1B80, 0x000112A7,
++ 0x1B80, 0x54BF12B5,
++ 0x1B80, 0x54BF12B7,
++ 0x1B80, 0x54C112C5,
++ 0x1B80, 0x54C112C7,
++ 0x1B80, 0x54A212D5,
++ 0x1B80, 0x54A212D7,
++ 0x1B80, 0x54C012E5,
++ 0x1B80, 0x54C012E7,
++ 0x1B80, 0x54A112F5,
++ 0x1B80, 0x54A112F7,
++ 0x1B80, 0x54DF1305,
++ 0x1B80, 0x54DF1307,
++ 0x1B80, 0x00011315,
++ 0x1B80, 0x00011317,
++ 0x1B80, 0x55001325,
++ 0x1B80, 0x55001327,
++ 0x1B80, 0xE1231335,
++ 0x1B80, 0xE1231337,
++ 0x1B80, 0x54811345,
++ 0x1B80, 0x54811347,
++ 0x1B80, 0xE1231355,
++ 0x1B80, 0xE1231357,
++ 0x1B80, 0x54801365,
++ 0x1B80, 0x54801367,
++ 0x1B80, 0x002A1375,
++ 0x1B80, 0x002A1377,
++ 0x1B80, 0xE12B1385,
++ 0x1B80, 0xE12B1387,
++ 0x1B80, 0xE1231395,
++ 0x1B80, 0xE1231397,
++ 0x1B80, 0x548013A5,
++ 0x1B80, 0x548013A7,
++ 0x1B80, 0xE17213B5,
++ 0x1B80, 0xE17213B7,
++ 0x1B80, 0xBF3013C5,
++ 0x1B80, 0xBF3013C7,
++ 0x1B80, 0x000213D5,
++ 0x1B80, 0x000213D7,
++ 0x1B80, 0x302813E5,
++ 0x1B80, 0x302813E7,
++ 0x1B80, 0x4F7813F5,
++ 0x1B80, 0x4F7813F7,
++ 0x1B80, 0x4E001405,
++ 0x1B80, 0x4E001407,
++ 0x1B80, 0x53871415,
++ 0x1B80, 0x53871417,
++ 0x1B80, 0x52F11425,
++ 0x1B80, 0x52F11427,
++ 0x1B80, 0xE1161435,
++ 0x1B80, 0xE1161437,
++ 0x1B80, 0xE11B1445,
++ 0x1B80, 0xE11B1447,
++ 0x1B80, 0xE11F1455,
++ 0x1B80, 0xE11F1457,
++ 0x1B80, 0xE1271465,
++ 0x1B80, 0xE1271467,
++ 0x1B80, 0x54811475,
++ 0x1B80, 0x54811477,
++ 0x1B80, 0xE1161485,
++ 0x1B80, 0xE1161487,
++ 0x1B80, 0xE11B1495,
++ 0x1B80, 0xE11B1497,
++ 0x1B80, 0xE11F14A5,
++ 0x1B80, 0xE11F14A7,
++ 0x1B80, 0xE12714B5,
++ 0x1B80, 0xE12714B7,
++ 0x1B80, 0x548014C5,
++ 0x1B80, 0x548014C7,
++ 0x1B80, 0x002A14D5,
++ 0x1B80, 0x002A14D7,
++ 0x1B80, 0xE12B14E5,
++ 0x1B80, 0xE12B14E7,
++ 0x1B80, 0xE11614F5,
++ 0x1B80, 0xE11614F7,
++ 0x1B80, 0xE11B1505,
++ 0x1B80, 0xE11B1507,
++ 0x1B80, 0xE11F1515,
++ 0x1B80, 0xE11F1517,
++ 0x1B80, 0xE1271525,
++ 0x1B80, 0xE1271527,
++ 0x1B80, 0x54801535,
++ 0x1B80, 0x54801537,
++ 0x1B80, 0xE1721545,
++ 0x1B80, 0xE1721547,
++ 0x1B80, 0xBF171555,
++ 0x1B80, 0xBF171557,
++ 0x1B80, 0x00021565,
++ 0x1B80, 0x00021567,
++ 0x1B80, 0x30281575,
++ 0x1B80, 0x30281577,
++ 0x1B80, 0x06141585,
++ 0x1B80, 0x06141587,
++ 0x1B80, 0x73201595,
++ 0x1B80, 0x73201597,
++ 0x1B80, 0x720015A5,
++ 0x1B80, 0x720015A7,
++ 0x1B80, 0x710015B5,
++ 0x1B80, 0x710015B7,
++ 0x1B80, 0x550115C5,
++ 0x1B80, 0x550115C7,
++ 0x1B80, 0xE12315D5,
++ 0x1B80, 0xE12315D7,
++ 0x1B80, 0xE12715E5,
++ 0x1B80, 0xE12715E7,
++ 0x1B80, 0x548115F5,
++ 0x1B80, 0x548115F7,
++ 0x1B80, 0xE1231605,
++ 0x1B80, 0xE1231607,
++ 0x1B80, 0xE1271615,
++ 0x1B80, 0xE1271617,
++ 0x1B80, 0x54801625,
++ 0x1B80, 0x54801627,
++ 0x1B80, 0x002A1635,
++ 0x1B80, 0x002A1637,
++ 0x1B80, 0xE12B1645,
++ 0x1B80, 0xE12B1647,
++ 0x1B80, 0xE1231655,
++ 0x1B80, 0xE1231657,
++ 0x1B80, 0xE1271665,
++ 0x1B80, 0xE1271667,
++ 0x1B80, 0x54801675,
++ 0x1B80, 0x54801677,
++ 0x1B80, 0xE1721685,
++ 0x1B80, 0xE1721687,
++ 0x1B80, 0xBF031695,
++ 0x1B80, 0xBF031697,
++ 0x1B80, 0x000216A5,
++ 0x1B80, 0x000216A7,
++ 0x1B80, 0x302816B5,
++ 0x1B80, 0x302816B7,
++ 0x1B80, 0x54BF16C5,
++ 0x1B80, 0x54BF16C7,
++ 0x1B80, 0x54C516D5,
++ 0x1B80, 0x54C516D7,
++ 0x1B80, 0x050A16E5,
++ 0x1B80, 0x050A16E7,
++ 0x1B80, 0x071416F5,
++ 0x1B80, 0x071416F7,
++ 0x1B80, 0x54DF1705,
++ 0x1B80, 0x54DF1707,
++ 0x1B80, 0x00011715,
++ 0x1B80, 0x00011717,
++ 0x1B80, 0x54BF1725,
++ 0x1B80, 0x54BF1727,
++ 0x1B80, 0x54C01735,
++ 0x1B80, 0x54C01737,
++ 0x1B80, 0x54A31745,
++ 0x1B80, 0x54A31747,
++ 0x1B80, 0x54C11755,
++ 0x1B80, 0x54C11757,
++ 0x1B80, 0x54A41765,
++ 0x1B80, 0x54A41767,
++ 0x1B80, 0x4C831775,
++ 0x1B80, 0x4C831777,
++ 0x1B80, 0x4C031785,
++ 0x1B80, 0x4C031787,
++ 0x1B80, 0xBF0B1795,
++ 0x1B80, 0xBF0B1797,
++ 0x1B80, 0x54C217A5,
++ 0x1B80, 0x54C217A7,
++ 0x1B80, 0x54A417B5,
++ 0x1B80, 0x54A417B7,
++ 0x1B80, 0x4C8517C5,
++ 0x1B80, 0x4C8517C7,
++ 0x1B80, 0x4C0517D5,
++ 0x1B80, 0x4C0517D7,
++ 0x1B80, 0xBF0617E5,
++ 0x1B80, 0xBF0617E7,
++ 0x1B80, 0x54C117F5,
++ 0x1B80, 0x54C117F7,
++ 0x1B80, 0x54A31805,
++ 0x1B80, 0x54A31807,
++ 0x1B80, 0x4C861815,
++ 0x1B80, 0x4C861817,
++ 0x1B80, 0x4C061825,
++ 0x1B80, 0x4C061827,
++ 0x1B80, 0xBF011835,
++ 0x1B80, 0xBF011837,
++ 0x1B80, 0x54DF1845,
++ 0x1B80, 0x54DF1847,
++ 0x1B80, 0x00011855,
++ 0x1B80, 0x00011857,
++ 0x1B80, 0x00071865,
++ 0x1B80, 0x00071867,
++ 0x1B80, 0x54011875,
++ 0x1B80, 0x54011877,
++ 0x1B80, 0x00041885,
++ 0x1B80, 0x00041887,
++ 0x1B80, 0x56001895,
++ 0x1B80, 0x56001897,
++ 0x1B80, 0x5CF218A5,
++ 0x1B80, 0x5CF218A7,
++ 0x1B80, 0x630718B5,
++ 0x1B80, 0x630718B7,
++ 0x1B80, 0x620418C5,
++ 0x1B80, 0x620418C7,
++ 0x1B80, 0x610018D5,
++ 0x1B80, 0x610018D7,
++ 0x1B80, 0x670718E5,
++ 0x1B80, 0x670718E7,
++ 0x1B80, 0x660618F5,
++ 0x1B80, 0x660618F7,
++ 0x1B80, 0x6F201905,
++ 0x1B80, 0x6F201907,
++ 0x1B80, 0x6E001915,
++ 0x1B80, 0x6E001917,
++ 0x1B80, 0x6D001925,
++ 0x1B80, 0x6D001927,
++ 0x1B80, 0x6C031935,
++ 0x1B80, 0x6C031937,
++ 0x1B80, 0x73201945,
++ 0x1B80, 0x73201947,
++ 0x1B80, 0x72001955,
++ 0x1B80, 0x72001957,
++ 0x1B80, 0x71001965,
++ 0x1B80, 0x71001967,
++ 0x1B80, 0x7B201975,
++ 0x1B80, 0x7B201977,
++ 0x1B80, 0x7A001985,
++ 0x1B80, 0x7A001987,
++ 0x1B80, 0x79001995,
++ 0x1B80, 0x79001997,
++ 0x1B80, 0x7F2019A5,
++ 0x1B80, 0x7F2019A7,
++ 0x1B80, 0x7E0019B5,
++ 0x1B80, 0x7E0019B7,
++ 0x1B80, 0x7D0019C5,
++ 0x1B80, 0x7D0019C7,
++ 0x1B80, 0x090119D5,
++ 0x1B80, 0x090119D7,
++ 0x1B80, 0x0AC619E5,
++ 0x1B80, 0x0AC619E7,
++ 0x1B80, 0x0BA619F5,
++ 0x1B80, 0x0BA619F7,
++ 0x1B80, 0x0C011A05,
++ 0x1B80, 0x0C011A07,
++ 0x1B80, 0x0D021A15,
++ 0x1B80, 0x0D021A17,
++ 0x1B80, 0x0E041A25,
++ 0x1B80, 0x0E041A27,
++ 0x1B80, 0x0FFF1A35,
++ 0x1B80, 0x0FFF1A37,
++ 0x1B80, 0x4D041A45,
++ 0x1B80, 0x4D041A47,
++ 0x1B80, 0x28F81A55,
++ 0x1B80, 0x28F81A57,
++ 0x1B80, 0xE0001A65,
++ 0x1B80, 0xE0001A67,
++ 0x1B80, 0x4D001A75,
++ 0x1B80, 0x4D001A77,
++ 0x1B80, 0x00011A85,
++ 0x1B80, 0x00011A87,
++ 0x1B80, 0x4D041A95,
++ 0x1B80, 0x4D041A97,
++ 0x1B80, 0x2EF81AA5,
++ 0x1B80, 0x2EF81AA7,
++ 0x1B80, 0x00021AB5,
++ 0x1B80, 0x00021AB7,
++ 0x1B80, 0x23031AC5,
++ 0x1B80, 0x23031AC7,
++ 0x1B80, 0x00001AD5,
++ 0x1B80, 0x00001AD7,
++ 0x1B80, 0x23131AE5,
++ 0x1B80, 0x23131AE7,
++ 0x1B80, 0xE77F1AF5,
++ 0x1B80, 0xE77F1AF7,
++ 0x1B80, 0x232F1B05,
++ 0x1B80, 0x232F1B07,
++ 0x1B80, 0xEFBF1B15,
++ 0x1B80, 0xEFBF1B17,
++ 0x1B80, 0x2EF01B25,
++ 0x1B80, 0x2EF01B27,
++ 0x1B80, 0x00021B35,
++ 0x1B80, 0x00021B37,
++ 0x1B80, 0x4D001B45,
++ 0x1B80, 0x4D001B47,
++ 0x1B80, 0x00011B55,
++ 0x1B80, 0x00011B57,
++ 0x1B80, 0x4D041B65,
++ 0x1B80, 0x4D041B67,
++ 0x1B80, 0x2EF81B75,
++ 0x1B80, 0x2EF81B77,
++ 0x1B80, 0x00021B85,
++ 0x1B80, 0x00021B87,
++ 0x1B80, 0x23031B95,
++ 0x1B80, 0x23031B97,
++ 0x1B80, 0x00001BA5,
++ 0x1B80, 0x00001BA7,
++ 0x1B80, 0x23131BB5,
++ 0x1B80, 0x23131BB7,
++ 0x1B80, 0xE77F1BC5,
++ 0x1B80, 0xE77F1BC7,
++ 0x1B80, 0x232F1BD5,
++ 0x1B80, 0x232F1BD7,
++ 0x1B80, 0xE79F1BE5,
++ 0x1B80, 0xE79F1BE7,
++ 0x1B80, 0x2EF01BF5,
++ 0x1B80, 0x2EF01BF7,
++ 0x1B80, 0x00021C05,
++ 0x1B80, 0x00021C07,
++ 0x1B80, 0x28F81C15,
++ 0x1B80, 0x28F81C17,
++ 0x1B80, 0x80001C25,
++ 0x1B80, 0x80001C27,
++ 0x1B80, 0x4D001C35,
++ 0x1B80, 0x4D001C37,
++ 0x1B80, 0x00011C45,
++ 0x1B80, 0x00011C47,
++ 0x1B80, 0x00041C55,
++ 0x1B80, 0x00041C57,
++ 0x1B80, 0x6BC01C65,
++ 0x1B80, 0x6BC01C67,
++ 0x1B80, 0x4D041C75,
++ 0x1B80, 0x4D041C77,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241C85,
++ 0x1B80, 0x68241C87,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x68481C85,
++ 0x1B80, 0x68481C87,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x66061C95,
++ 0x1B80, 0x66061C97,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x650C1CA5,
++ 0x1B80, 0x650C1CA7,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x65041CA5,
++ 0x1B80, 0x65041CA7,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x64471CB5,
++ 0x1B80, 0x64471CB7,
++ 0x1B80, 0x23411CC5,
++ 0x1B80, 0x23411CC7,
++ 0x1B80, 0x100E1CD5,
++ 0x1B80, 0x100E1CD7,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60101CE5,
++ 0x1B80, 0x60101CE7,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x60011CE5,
++ 0x1B80, 0x60011CE7,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x23411CF5,
++ 0x1B80, 0x23411CF7,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60811D05,
++ 0x1B80, 0x60811D07,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x60611D05,
++ 0x1B80, 0x60611D07,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x23411D15,
++ 0x1B80, 0x23411D17,
++ 0x1B80, 0x70E11D25,
++ 0x1B80, 0x70E11D27,
++ 0x1B80, 0x4D001D35,
++ 0x1B80, 0x4D001D37,
++ 0x1B80, 0x00011D45,
++ 0x1B80, 0x00011D47,
++ 0x1B80, 0x00041D55,
++ 0x1B80, 0x00041D57,
++ 0x1B80, 0x6B401D65,
++ 0x1B80, 0x6B401D67,
++ 0x1B80, 0x4D041D75,
++ 0x1B80, 0x4D041D77,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x68241D85,
++ 0x1B80, 0x68241D87,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x68481D85,
++ 0x1B80, 0x68481D87,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x66061D95,
++ 0x1B80, 0x66061D97,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65081DA5,
++ 0x1B80, 0x65081DA7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65081DA5,
++ 0x1B80, 0x65081DA7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x65181DA5,
++ 0x1B80, 0x65181DA7,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x65081DA5,
++ 0x1B80, 0x65081DA7,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x64481DB5,
++ 0x1B80, 0x64481DB7,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x64471DB5,
++ 0x1B80, 0x64471DB7,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x23411DC5,
++ 0x1B80, 0x23411DC7,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E41DD5,
++ 0x1B80, 0x11E41DD7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E41DD5,
++ 0x1B80, 0x11E41DD7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x11E81DD5,
++ 0x1B80, 0x11E81DD7,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x11E41DD5,
++ 0x1B80, 0x11E41DD7,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x60011DE5,
++ 0x1B80, 0x60011DE7,
++ 0x1B80, 0x23411DF5,
++ 0x1B80, 0x23411DF7,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60E11E05,
++ 0x1B80, 0x60E11E07,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x60E11E05,
++ 0x1B80, 0x60E11E07,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x1B80, 0x61E11E05,
++ 0x1B80, 0x61E11E07,
++ 0xA0000000, 0x00000000,
++ 0x1B80, 0x60E11E05,
++ 0x1B80, 0x60E11E07,
++ 0xB0000000, 0x00000000,
++ 0x1B80, 0x23411E15,
++ 0x1B80, 0x23411E17,
++ 0x1B80, 0x70611E25,
++ 0x1B80, 0x70611E27,
++ 0x1B80, 0x4D001E35,
++ 0x1B80, 0x4D001E37,
++ 0x1B80, 0x00011E45,
++ 0x1B80, 0x00011E47,
++ 0x1B80, 0x00001E55,
++ 0x1B80, 0x00001E57,
++ 0x1B80, 0x00001E65,
++ 0x1B80, 0x00001E67,
++ 0x1B80, 0x00001E75,
++ 0x1B80, 0x00001E77,
++ 0x1B80, 0x00001E85,
++ 0x1B80, 0x00001E87,
++ 0x1B80, 0x00001E95,
++ 0x1B80, 0x00001E97,
++ 0x1B80, 0x00001EA5,
++ 0x1B80, 0x00001EA7,
++ 0x1B80, 0x00001EB5,
++ 0x1B80, 0x00001EB7,
++ 0x1B80, 0x00001EC5,
++ 0x1B80, 0x00001EC7,
++ 0x1B80, 0x00001ED5,
++ 0x1B80, 0x00001ED7,
++ 0x1B80, 0x00001EE5,
++ 0x1B80, 0x00001EE7,
++ 0x1B80, 0x00001EF5,
++ 0x1B80, 0x00001EF7,
++ 0x1B80, 0x00001F05,
++ 0x1B80, 0x00001F07,
++ 0x1B80, 0x00001F15,
++ 0x1B80, 0x00001F17,
++ 0x1B80, 0x00001F25,
++ 0x1B80, 0x00001F27,
++ 0x1B80, 0x00001F35,
++ 0x1B80, 0x00001F37,
++ 0x1B80, 0x00001F45,
++ 0x1B80, 0x00001F47,
++ 0x1B80, 0x00001F55,
++ 0x1B80, 0x00001F57,
++ 0x1B80, 0x00001F65,
++ 0x1B80, 0x00001F67,
++ 0x1B80, 0x00001F75,
++ 0x1B80, 0x00001F77,
++ 0x1B80, 0x00001F85,
++ 0x1B80, 0x00001F87,
++ 0x1B80, 0x00001F95,
++ 0x1B80, 0x00001F97,
++ 0x1B80, 0x00001FA5,
++ 0x1B80, 0x00001FA7,
++ 0x1B80, 0x00001FB5,
++ 0x1B80, 0x00001FB7,
++ 0x1B80, 0x00001FC5,
++ 0x1B80, 0x00001FC7,
++ 0x1B80, 0x00001FD5,
++ 0x1B80, 0x00001FD7,
++ 0x1B80, 0x00001FE5,
++ 0x1B80, 0x00001FE7,
++ 0x1B80, 0x00001FF5,
++ 0x1B80, 0x00001FF7,
++ 0x1B80, 0x00000006,
++ 0x1B80, 0x00000002,
++};
++
++RTW_DECL_TABLE_PHY_COND(rtw8814a_bb, rtw_phy_cfg_bb);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type0[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x32323232, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x30303030, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x28282828, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x22242628, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x30302224, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x28303030, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x28282828, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x22242628, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x18202020, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x32323232, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x30303030, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x28282828, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x22242628, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x30302224, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x28303030, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x28282828, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x22242628, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x18202020, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x32323232, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x32323232, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x28303232, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x32323232, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x26283032, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x30303030, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x24262830, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x28282828, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x22242628, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x32323232, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x26283032, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x30302224, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x28303030, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x20222426, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x28282828, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x22242628, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x18202020, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x32323232, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x32323232, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x28303232, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x32323232, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x26283032, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x30303030, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x24262830, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x28282828, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x22242628, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x32323232, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x26283032, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x30302224, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x28303030, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x20222426, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x28282828, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x22242628, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x18202020, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x30303030, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x28282828, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x22242628, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x26283032, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x30302224, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x28303030, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x20222426, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x28282828, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x22242628, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x18202020, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x26283032, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x30303030, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x28282828, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x22242628, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x26283032, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x30302224, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x28303030, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x20222426, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x28282828, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x22242628, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x18202020, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x32323232, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x28303232, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x32323232, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x26283032, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x30303030, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x24262830, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x28282828, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x22242628, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x32323232, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x26283032, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x30302224, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x28303030, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x20222426, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x28282828, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x22242628, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x18202020, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x32323232, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x28303232, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x32323232, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x26283032, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x30303030, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x24262830, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x28282828, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x22242628, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x32323232, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x26283032, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x30302224, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x28303030, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x20222426, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x28282828, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x22242628, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x18202020, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type0);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type2[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x30303030, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x24262830, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x30303030, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x24262830, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x32323232, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x26283032, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x30303030, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x24262830, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x32323232, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x26283032, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x30303030, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x24262830, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type2);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type3[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x48484848, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x42444646, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x42444646, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x46463840, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x46464646, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x38404244, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x42444646, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x38383840, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x48484848, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x42444646, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x42444646, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x46463840, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x46464646, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x38404244, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x42444646, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x38383840, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x48484848, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x42444646, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x42444646, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x46463840, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x46464646, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x38404244, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x42444646, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x38383840, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x48484848, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x42444646, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x42444646, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x46463840, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x46464646, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x38404244, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x42444646, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x38383840, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x42444646, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x42444646, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x46463840, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x46464646, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x38404244, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x42444646, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x38383840, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x42444646, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x42444646, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x46463840, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x46464646, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x38404244, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x42444646, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x38383840, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x42444646, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x42444646, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x46463840, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x46464646, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x38404244, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x42444646, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x38383840, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x42444646, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x42444646, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x46463840, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x46464646, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x38404244, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x42444646, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x38383840, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type3);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type4[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x42424242, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x42424242, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x36384042, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x42424242, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x34363840, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x42424242, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x34363840, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x42424242, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x34363840, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x42423032, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x38404242, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x30323436, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x34363840, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x30303032, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x42424242, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x42424242, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x36384042, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x42424242, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x34363840, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x42424242, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x34363840, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x42424242, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x34363840, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x42423032, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x38404242, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x30323436, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x34363840, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x30303032, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x42424242, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x42424242, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x36384042, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x42424242, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x34363840, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x42424242, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x34363840, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x42424242, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x34363840, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x42423032, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x38404242, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x30323436, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x34363840, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x30303032, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x42424242, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x42424242, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x36384042, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x42424242, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x34363840, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x42424242, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x34363840, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x42424242, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x34363840, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x42423032, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x38404242, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x30323436, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x34363840, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x30303032, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x42424242, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x36384042, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x42424242, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x34363840, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x42424242, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x34363840, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x42424242, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x34363840, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x42423032, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x38404242, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x30323436, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x34363840, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x30303032, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x42424242, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x36384042, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x42424242, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x34363840, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x42424242, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x34363840, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x42424242, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x34363840, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x42423032, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x38404242, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x30323436, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x34363840, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x30303032, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x42424242, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x36384042, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x42424242, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x34363840, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x42424242, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x34363840, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x42424242, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x34363840, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x42423032, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x38404242, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x30323436, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x34363840, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x30303032, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x42424242, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x36384042, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x42424242, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x34363840, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x42424242, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x34363840, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x42424242, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x34363840, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x42423032, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x38404242, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x30323436, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x34363840, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x30303032, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type4);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type5[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x48484848, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x44444444, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x40424444, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x38404242, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x44444040, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x44444444, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x38384042, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x38404242, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20203636, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x48484848, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x44444444, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x40424444, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x38404242, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x44444040, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x44444444, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x38384042, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x38404242, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20203636, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x48484848, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x44444444, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x40424444, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x38404242, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x44444040, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x44444444, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x38384042, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x38404242, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20203636, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x48484848, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x44444444, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x40424444, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x38404242, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x44444040, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x44444444, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x38384042, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x38404242, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20203636, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x44464646, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x42444646, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x44444444, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x40424444, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x42424242, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x38404242, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x42444646, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x44443840, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x44444444, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x36384042, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x42424242, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x38404242, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x20203436, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x44464646, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x42444646, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x44444444, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x40424444, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x42424242, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x38404242, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x42444646, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x44443840, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x44444444, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x36384042, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x42424242, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x38404242, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x20203436, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x44464646, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x42444646, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x44444444, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x40424444, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x42424242, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x38404242, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x42444646, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x44443840, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x44444444, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x36384042, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x42424242, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x38404242, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x20203436, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x44464646, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x42444646, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x44444444, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x40424444, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x42424242, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x38404242, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x42444646, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x44443840, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x44444444, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x36384042, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x42424242, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x38404242, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x20203436, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type5);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type7[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x34343434, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x28303234, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x34343434, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x28303234, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x34342426, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x32343434, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x24262830, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x34343434, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x28303234, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x24263434, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x34343434, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x28303234, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x34343434, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x28303234, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x34342426, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x32343434, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x24262830, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x34343434, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x28303234, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x24263434, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x34343434, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x28303234, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x34343434, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x28303234, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x34342426, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x32343434, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x24262830, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x34343434, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x28303234, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x24263434, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x34343434, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x28303234, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x34343434, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x28303234, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x34342426, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x32343434, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x24262830, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x34343434, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x28303234, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x24263434, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323434, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303234, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x34343434, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x28303234, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x34343434, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x28303234, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x34342426, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x32343434, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x24262830, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x34343434, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x28303234, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x24263434, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323434, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303234, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x34343434, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x28303234, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x34343434, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x28303234, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x34342426, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x32343434, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x24262830, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x34343434, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x28303234, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x24263434, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x30323434, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x28303234, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x34343434, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x28303234, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x34343434, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x28303234, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x34342426, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x32343434, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x24262830, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x34343434, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x28303234, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x24263434, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x30323434, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x28303234, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x34343434, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x28303234, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x34343434, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x28303234, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x34342426, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x32343434, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x24262830, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x34343434, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x28303234, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x24263434, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type7);
++
++static const struct rtw_phy_pg_cfg_pair rtw8814a_bb_pg_type8[] = {
++ { 0, 0, 0, 0x00000c20, 0xffffffff, 0x43434343, },
++ { 0, 0, 0, 0x00000c24, 0xffffffff, 0x43434343, },
++ { 0, 0, 0, 0x00000c28, 0xffffffff, 0x35373941, },
++ { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x43434343, },
++ { 0, 0, 0, 0x00000c30, 0xffffffff, 0x33353739, },
++ { 0, 0, 1, 0x00000c34, 0xffffffff, 0x43434343, },
++ { 0, 0, 1, 0x00000c38, 0xffffffff, 0x31333537, },
++ { 0, 0, 2, 0x00000cd8, 0xffffffff, 0x43434343, },
++ { 0, 0, 2, 0x00000cdc, 0xffffffff, 0x29313335, },
++ { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x34343434, },
++ { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303234, },
++ { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, },
++ { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30323232, },
++ { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, },
++ { 0, 0, 2, 0x00000ce0, 0xffffffff, 0x30303030, },
++ { 0, 0, 2, 0x00000ce4, 0xffffffff, 0x24262830, },
++ { 0, 0, 2, 0x00000ce8, 0x0000ffff, 0x20222222, },
++ { 0, 1, 0, 0x00000e20, 0xffffffff, 0x43434343, },
++ { 0, 1, 0, 0x00000e24, 0xffffffff, 0x43434343, },
++ { 0, 1, 0, 0x00000e28, 0xffffffff, 0x35373941, },
++ { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x41434343, },
++ { 0, 1, 0, 0x00000e30, 0xffffffff, 0x33353739, },
++ { 0, 1, 1, 0x00000e34, 0xffffffff, 0x39414141, },
++ { 0, 1, 1, 0x00000e38, 0xffffffff, 0x31333537, },
++ { 0, 1, 2, 0x00000ed8, 0xffffffff, 0x37393939, },
++ { 0, 1, 2, 0x00000edc, 0xffffffff, 0x29313335, },
++ { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x34343434, },
++ { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303234, },
++ { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, },
++ { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30323232, },
++ { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, },
++ { 0, 1, 2, 0x00000ee0, 0xffffffff, 0x30303030, },
++ { 0, 1, 2, 0x00000ee4, 0xffffffff, 0x24262830, },
++ { 0, 1, 2, 0x00000ee8, 0x0000ffff, 0x20222222, },
++ { 0, 2, 0, 0x00001820, 0xffffffff, 0x43434343, },
++ { 0, 2, 0, 0x00001824, 0xffffffff, 0x43434343, },
++ { 0, 2, 0, 0x00001828, 0xffffffff, 0x35373941, },
++ { 0, 2, 0, 0x0000182c, 0xffffffff, 0x41434343, },
++ { 0, 2, 0, 0x00001830, 0xffffffff, 0x33353739, },
++ { 0, 2, 1, 0x00001834, 0xffffffff, 0x39414141, },
++ { 0, 2, 1, 0x00001838, 0xffffffff, 0x31333537, },
++ { 0, 2, 2, 0x000018d8, 0xffffffff, 0x37393939, },
++ { 0, 2, 2, 0x000018dc, 0xffffffff, 0x29313335, },
++ { 0, 2, 0, 0x0000183c, 0xffffffff, 0x34343434, },
++ { 0, 2, 0, 0x00001840, 0xffffffff, 0x28303234, },
++ { 0, 2, 0, 0x00001844, 0xffffffff, 0x32322426, },
++ { 0, 2, 1, 0x00001848, 0xffffffff, 0x30323232, },
++ { 0, 2, 1, 0x0000184c, 0xffffffff, 0x22242628, },
++ { 0, 2, 2, 0x000018e0, 0xffffffff, 0x30303030, },
++ { 0, 2, 2, 0x000018e4, 0xffffffff, 0x24262830, },
++ { 0, 2, 2, 0x000018e8, 0x0000ffff, 0x20222222, },
++ { 0, 3, 0, 0x00001a20, 0xffffffff, 0x43434343, },
++ { 0, 3, 0, 0x00001a24, 0xffffffff, 0x43434343, },
++ { 0, 3, 0, 0x00001a28, 0xffffffff, 0x35373941, },
++ { 0, 3, 0, 0x00001a2c, 0xffffffff, 0x41434343, },
++ { 0, 3, 0, 0x00001a30, 0xffffffff, 0x33353739, },
++ { 0, 3, 1, 0x00001a34, 0xffffffff, 0x39414141, },
++ { 0, 3, 1, 0x00001a38, 0xffffffff, 0x31333537, },
++ { 0, 3, 2, 0x00001ad8, 0xffffffff, 0x37393939, },
++ { 0, 3, 2, 0x00001adc, 0xffffffff, 0x29313335, },
++ { 0, 3, 0, 0x00001a3c, 0xffffffff, 0x34343434, },
++ { 0, 3, 0, 0x00001a40, 0xffffffff, 0x28303234, },
++ { 0, 3, 0, 0x00001a44, 0xffffffff, 0x32322426, },
++ { 0, 3, 1, 0x00001a48, 0xffffffff, 0x30323232, },
++ { 0, 3, 1, 0x00001a4c, 0xffffffff, 0x22242628, },
++ { 0, 3, 2, 0x00001ae0, 0xffffffff, 0x30303030, },
++ { 0, 3, 2, 0x00001ae4, 0xffffffff, 0x24262830, },
++ { 0, 3, 2, 0x00001ae8, 0x0000ffff, 0x20222222, },
++ { 1, 0, 0, 0x00000c24, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c28, 0xffffffff, 0x39414345, },
++ { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c30, 0xffffffff, 0x38404244, },
++ { 1, 0, 1, 0x00000c34, 0xffffffff, 0x46464646, },
++ { 1, 0, 1, 0x00000c38, 0xffffffff, 0x36384042, },
++ { 1, 0, 2, 0x00000cd8, 0xffffffff, 0x46464646, },
++ { 1, 0, 2, 0x00000cdc, 0xffffffff, 0x34363840, },
++ { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x46464646, },
++ { 1, 0, 0, 0x00000c40, 0xffffffff, 0x38404244, },
++ { 1, 0, 0, 0x00000c44, 0xffffffff, 0x46463738, },
++ { 1, 0, 1, 0x00000c48, 0xffffffff, 0x42444646, },
++ { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x35373840, },
++ { 1, 0, 2, 0x00000ce0, 0xffffffff, 0x46464646, },
++ { 1, 0, 2, 0x00000ce4, 0xffffffff, 0x37394143, },
++ { 1, 0, 2, 0x00000ce8, 0x0000ffff, 0x33333335, },
++ { 1, 1, 0, 0x00000e24, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e28, 0xffffffff, 0x39414345, },
++ { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e30, 0xffffffff, 0x38404244, },
++ { 1, 1, 1, 0x00000e34, 0xffffffff, 0x46464646, },
++ { 1, 1, 1, 0x00000e38, 0xffffffff, 0x36384042, },
++ { 1, 1, 2, 0x00000ed8, 0xffffffff, 0x46464646, },
++ { 1, 1, 2, 0x00000edc, 0xffffffff, 0x34363840, },
++ { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x46464646, },
++ { 1, 1, 0, 0x00000e40, 0xffffffff, 0x38404244, },
++ { 1, 1, 0, 0x00000e44, 0xffffffff, 0x46463738, },
++ { 1, 1, 1, 0x00000e48, 0xffffffff, 0x42444646, },
++ { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x35373840, },
++ { 1, 1, 2, 0x00000ee0, 0xffffffff, 0x46464646, },
++ { 1, 1, 2, 0x00000ee4, 0xffffffff, 0x37394143, },
++ { 1, 1, 2, 0x00000ee8, 0x0000ffff, 0x33333335, },
++ { 1, 2, 0, 0x00001824, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001828, 0xffffffff, 0x39414345, },
++ { 1, 2, 0, 0x0000182c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001830, 0xffffffff, 0x38404244, },
++ { 1, 2, 1, 0x00001834, 0xffffffff, 0x46464646, },
++ { 1, 2, 1, 0x00001838, 0xffffffff, 0x36384042, },
++ { 1, 2, 2, 0x000018d8, 0xffffffff, 0x46464646, },
++ { 1, 2, 2, 0x000018dc, 0xffffffff, 0x34363840, },
++ { 1, 2, 0, 0x0000183c, 0xffffffff, 0x46464646, },
++ { 1, 2, 0, 0x00001840, 0xffffffff, 0x38404244, },
++ { 1, 2, 0, 0x00001844, 0xffffffff, 0x46463738, },
++ { 1, 2, 1, 0x00001848, 0xffffffff, 0x42444646, },
++ { 1, 2, 1, 0x0000184c, 0xffffffff, 0x35373840, },
++ { 1, 2, 2, 0x000018e0, 0xffffffff, 0x46464646, },
++ { 1, 2, 2, 0x000018e4, 0xffffffff, 0x37394143, },
++ { 1, 2, 2, 0x000018e8, 0x0000ffff, 0x33333335, },
++ { 1, 3, 0, 0x00001a24, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a28, 0xffffffff, 0x39414345, },
++ { 1, 3, 0, 0x00001a2c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a30, 0xffffffff, 0x38404244, },
++ { 1, 3, 1, 0x00001a34, 0xffffffff, 0x46464646, },
++ { 1, 3, 1, 0x00001a38, 0xffffffff, 0x36384042, },
++ { 1, 3, 2, 0x00001ad8, 0xffffffff, 0x46464646, },
++ { 1, 3, 2, 0x00001adc, 0xffffffff, 0x34363840, },
++ { 1, 3, 0, 0x00001a3c, 0xffffffff, 0x46464646, },
++ { 1, 3, 0, 0x00001a40, 0xffffffff, 0x38404244, },
++ { 1, 3, 0, 0x00001a44, 0xffffffff, 0x46463738, },
++ { 1, 3, 1, 0x00001a48, 0xffffffff, 0x42444646, },
++ { 1, 3, 1, 0x00001a4c, 0xffffffff, 0x35373840, },
++ { 1, 3, 2, 0x00001ae0, 0xffffffff, 0x46464646, },
++ { 1, 3, 2, 0x00001ae4, 0xffffffff, 0x37394143, },
++ { 1, 3, 2, 0x00001ae8, 0x0000ffff, 0x33333335, },
++};
++
++RTW_DECL_TABLE_BB_PG(rtw8814a_bb_pg_type8);
++
++static const u32 rtw8814a_rf_a[] = {
++ 0x018, 0x00013124,
++ 0x040, 0x00000C00,
++ 0x058, 0x00000F98,
++ 0x07F, 0x00068004,
++ 0x0B0, 0x000FFFFE,
++ 0x0B1, 0x0003FF48,
++ 0x0B2, 0x0006AA3F,
++ 0x0B3, 0x000FFC9A,
++ 0x0B4, 0x0000A78F,
++ 0x0B5, 0x00000A3F,
++ 0x0B6, 0x0000C09C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B7, 0x00030008,
++ 0xA0000000, 0x00000000,
++ 0x0B7, 0x0003000C,
++ 0xB0000000, 0x00000000,
++ 0x0B8, 0x0007400E,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0xA0000000, 0x00000000,
++ 0x0B9, 0x000FBF50,
++ 0xB0000000, 0x00000000,
++ 0x0BA, 0x00050780,
++ 0x0BB, 0x00000000,
++ 0x0BC, 0x00040009,
++ 0x0BD, 0x00000000,
++ 0x0BE, 0x00000000,
++ 0x0BF, 0x00000000,
++ 0x0EF, 0x00020000,
++ 0x03E, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xA0000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xB0000000, 0x00000000,
++ 0x03E, 0x00020000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00040000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00040000,
++ 0xA0000000, 0x00000000,
++ 0x03F, 0x00040000,
++ 0xB0000000, 0x00000000,
++ 0x03E, 0x00040000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xA0000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xB0000000, 0x00000000,
++ 0x03E, 0x00060000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xA0000000, 0x00000000,
++ 0x03F, 0x00030000,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00010000,
++ 0x03E, 0x00000000,
++ 0x03F, 0x00006800,
++ 0x03E, 0x00000080,
++ 0x03F, 0x00006000,
++ 0x03E, 0x00000100,
++ 0x03F, 0x00004800,
++ 0x03E, 0x00000180,
++ 0x03F, 0x00004000,
++ 0x03E, 0x00000200,
++ 0x03F, 0x00004000,
++ 0x03E, 0x00000280,
++ 0x03F, 0x00002800,
++ 0x03E, 0x00000300,
++ 0x03F, 0x00002800,
++ 0x03E, 0x00000380,
++ 0x03F, 0x00002000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00040000,
++ 0x03E, 0x00000000,
++ 0x03F, 0x000000BC,
++ 0x03E, 0x00000040,
++ 0x03F, 0x00000053,
++ 0x03E, 0x00000050,
++ 0x03F, 0x00000050,
++ 0x03E, 0x00000060,
++ 0x03F, 0x00000050,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00000400,
++ 0x03E, 0x00000006,
++ 0x041, 0x000EE080,
++ 0x03E, 0x00000008,
++ 0x041, 0x000EE0C0,
++ 0x03E, 0x0000000A,
++ 0x041, 0x000EE100,
++ 0x03E, 0x0000000C,
++ 0x041, 0x000EE100,
++ 0x0EF, 0x00000000,
++ 0x018, 0x00000006,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0xA0000000, 0x00000000,
++ 0x086, 0x000E4B58,
++ 0x087, 0x00049F80,
++ 0xB0000000, 0x00000000,
++ 0x0DF, 0x00000008,
++ 0x0EF, 0x00002000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x000179C3,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0003F258,
++ 0x03B, 0x00030A58,
++ 0x03B, 0x0002FA58,
++ 0x03B, 0x00022590,
++ 0x03B, 0x0001FA50,
++ 0x03B, 0x00010248,
++ 0x03B, 0x00008240,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000100,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000ADF6,
++ 0x034, 0x00009DF3,
++ 0x034, 0x00008DF0,
++ 0x034, 0x00007DED,
++ 0x034, 0x00006DEA,
++ 0x034, 0x00005CED,
++ 0x034, 0x00004CEA,
++ 0x034, 0x000034EA,
++ 0x034, 0x000024E7,
++ 0x034, 0x0000146A,
++ 0x034, 0x0000006B,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008ADF6,
++ 0x034, 0x00089DF3,
++ 0x034, 0x00088DF0,
++ 0x034, 0x00087DED,
++ 0x034, 0x00086DEA,
++ 0x034, 0x00085CED,
++ 0x034, 0x00084CEA,
++ 0x034, 0x000834EA,
++ 0x034, 0x000824E7,
++ 0x034, 0x0008146A,
++ 0x034, 0x0008006B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x000020A2,
++ 0x0DF, 0x00000080,
++ 0x035, 0x00000192,
++ 0x035, 0x00008192,
++ 0x035, 0x00010192,
++ 0x036, 0x00000024,
++ 0x036, 0x00008024,
++ 0x036, 0x00010024,
++ 0x036, 0x00018024,
++ 0x0EF, 0x00000000,
++ 0x051, 0x00000C21,
++ 0x052, 0x000006D9,
++ 0x053, 0x000FC649,
++ 0x054, 0x0000017E,
++ 0x018, 0x0001012A,
++ 0x081, 0x0007FC00,
++ 0x089, 0x00050110,
++ 0x08A, 0x00043E50,
++ 0x08B, 0x0002E180,
++ 0x08C, 0x00093C3C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xA0000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xA0000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00001000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00028000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00030023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00028623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00021633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0001C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00010293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00009593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0000118B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0000078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x000AC000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00040000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0004C000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00070023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00068623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00061633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0005C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00050293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00049593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0004138B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0004078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0008C000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B0023,
++ 0x80000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A8623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A1633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0009C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00090293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00089593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0008118B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0008078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00000800,
++ 0x03B, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000801,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00040000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001801,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000003,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000003,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001001,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00080000,
++ 0x80000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000800,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001002,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x0EF, 0x00000100,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A1AD,
++ 0x034, 0x000491AA,
++ 0x034, 0x000481A7,
++ 0x034, 0x000470AA,
++ 0x034, 0x000460A7,
++ 0x034, 0x00045049,
++ 0x034, 0x00044046,
++ 0x034, 0x00043026,
++ 0x034, 0x00042009,
++ 0x034, 0x00041006,
++ 0x034, 0x00040003,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3F5,
++ 0x034, 0x000493F2,
++ 0x034, 0x000483B0,
++ 0x034, 0x00047370,
++ 0x034, 0x0004636D,
++ 0x034, 0x0004536A,
++ 0x034, 0x00044349,
++ 0x034, 0x0004316A,
++ 0x034, 0x00042167,
++ 0x034, 0x00041129,
++ 0x034, 0x00040049,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AF,
++ 0x034, 0x000483AB,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004406A,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0004AFF1,
++ 0x034, 0x00049FEE,
++ 0x034, 0x00048FEB,
++ 0x034, 0x00047FE8,
++ 0x034, 0x00046DEA,
++ 0x034, 0x00045DE7,
++ 0x034, 0x00044CEA,
++ 0x034, 0x00043CE7,
++ 0x034, 0x00042C69,
++ 0x034, 0x00041C66,
++ 0x034, 0x00040C28,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A1AD,
++ 0x034, 0x000291AA,
++ 0x034, 0x000281A7,
++ 0x034, 0x000270AA,
++ 0x034, 0x000260A7,
++ 0x034, 0x00025049,
++ 0x034, 0x00024046,
++ 0x034, 0x00023026,
++ 0x034, 0x00022009,
++ 0x034, 0x00021006,
++ 0x034, 0x00020003,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3F5,
++ 0x034, 0x000293F2,
++ 0x034, 0x000282F1,
++ 0x034, 0x000272B0,
++ 0x034, 0x000262AD,
++ 0x034, 0x000252AA,
++ 0x034, 0x000242A7,
++ 0x034, 0x000230EC,
++ 0x034, 0x000220E9,
++ 0x034, 0x0002106A,
++ 0x034, 0x00020067,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0002AFF1,
++ 0x034, 0x00029FEE,
++ 0x034, 0x00028FEB,
++ 0x034, 0x00027FE8,
++ 0x034, 0x00026DEA,
++ 0x034, 0x00025DE7,
++ 0x034, 0x00024CEA,
++ 0x034, 0x00023CE7,
++ 0x034, 0x00022C69,
++ 0x034, 0x00021C66,
++ 0x034, 0x00020C28,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EC,
++ 0x034, 0x0000938C,
++ 0x034, 0x000081AD,
++ 0x034, 0x000071AA,
++ 0x034, 0x000061A7,
++ 0x034, 0x000050AA,
++ 0x034, 0x000040A7,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x0000100C,
++ 0x034, 0x00000009,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3F4,
++ 0x034, 0x000093F1,
++ 0x034, 0x000082B1,
++ 0x034, 0x000071D1,
++ 0x034, 0x000061CE,
++ 0x034, 0x000051CB,
++ 0x034, 0x000041C8,
++ 0x034, 0x000030CB,
++ 0x034, 0x000020C8,
++ 0x034, 0x00001087,
++ 0x034, 0x00000084,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000AFF1,
++ 0x034, 0x00009FEE,
++ 0x034, 0x00008FEB,
++ 0x034, 0x00007FE8,
++ 0x034, 0x00006DEA,
++ 0x034, 0x00005DE7,
++ 0x034, 0x00004CEA,
++ 0x034, 0x00003CE7,
++ 0x034, 0x00002C69,
++ 0x034, 0x00001C66,
++ 0x034, 0x00000C28,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA1AD,
++ 0x034, 0x000C91AA,
++ 0x034, 0x000C81A7,
++ 0x034, 0x000C70AA,
++ 0x034, 0x000C60A7,
++ 0x034, 0x000C5049,
++ 0x034, 0x000C4046,
++ 0x034, 0x000C3026,
++ 0x034, 0x000C2009,
++ 0x034, 0x000C1006,
++ 0x034, 0x000C0003,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3F5,
++ 0x034, 0x000C93F2,
++ 0x034, 0x000C83B0,
++ 0x034, 0x000C7370,
++ 0x034, 0x000C636D,
++ 0x034, 0x000C536A,
++ 0x034, 0x000C4349,
++ 0x034, 0x000C316A,
++ 0x034, 0x000C2167,
++ 0x034, 0x000C1129,
++ 0x034, 0x000C0049,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AF,
++ 0x034, 0x000C83AB,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C406A,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000CA794,
++ 0x034, 0x000C9791,
++ 0x034, 0x000C878E,
++ 0x034, 0x000C778B,
++ 0x034, 0x000C658D,
++ 0x034, 0x000C558A,
++ 0x034, 0x000C448D,
++ 0x034, 0x000C348A,
++ 0x034, 0x000C244C,
++ 0x034, 0x000C1449,
++ 0x034, 0x000C042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA1AD,
++ 0x034, 0x000A91AA,
++ 0x034, 0x000A81A7,
++ 0x034, 0x000A70AA,
++ 0x034, 0x000A60A7,
++ 0x034, 0x000A5049,
++ 0x034, 0x000A4046,
++ 0x034, 0x000A3026,
++ 0x034, 0x000A2009,
++ 0x034, 0x000A1006,
++ 0x034, 0x000A0003,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3F5,
++ 0x034, 0x000A93F2,
++ 0x034, 0x000A82F1,
++ 0x034, 0x000A72B0,
++ 0x034, 0x000A62AD,
++ 0x034, 0x000A52AA,
++ 0x034, 0x000A42A7,
++ 0x034, 0x000A30EC,
++ 0x034, 0x000A20E9,
++ 0x034, 0x000A106A,
++ 0x034, 0x000A0067,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000AA794,
++ 0x034, 0x000A9791,
++ 0x034, 0x000A878E,
++ 0x034, 0x000A778B,
++ 0x034, 0x000A658D,
++ 0x034, 0x000A558A,
++ 0x034, 0x000A448D,
++ 0x034, 0x000A348A,
++ 0x034, 0x000A244C,
++ 0x034, 0x000A1449,
++ 0x034, 0x000A042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EC,
++ 0x034, 0x0008938C,
++ 0x034, 0x000881AD,
++ 0x034, 0x000871AA,
++ 0x034, 0x000861A7,
++ 0x034, 0x000850AA,
++ 0x034, 0x000840A7,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x0008100C,
++ 0x034, 0x00080009,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3F4,
++ 0x034, 0x000893F1,
++ 0x034, 0x000882B1,
++ 0x034, 0x000871D1,
++ 0x034, 0x000861CE,
++ 0x034, 0x000851CB,
++ 0x034, 0x000841C8,
++ 0x034, 0x000830CB,
++ 0x034, 0x000820C8,
++ 0x034, 0x00081087,
++ 0x034, 0x00080084,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008A794,
++ 0x034, 0x00089791,
++ 0x034, 0x0008878E,
++ 0x034, 0x0008778B,
++ 0x034, 0x0008658D,
++ 0x034, 0x0008558A,
++ 0x034, 0x0008448D,
++ 0x034, 0x0008348A,
++ 0x034, 0x0008244C,
++ 0x034, 0x00081449,
++ 0x034, 0x0008042B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000040,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0xA0000000, 0x00000000,
++ 0x035, 0x00000747,
++ 0x035, 0x00008747,
++ 0x035, 0x00010747,
++ 0x035, 0x00020747,
++ 0x035, 0x00028747,
++ 0x035, 0x00030747,
++ 0x035, 0x00040747,
++ 0x035, 0x00048747,
++ 0x035, 0x00050747,
++ 0x035, 0x000805FB,
++ 0x035, 0x000885FB,
++ 0x035, 0x000905FB,
++ 0x035, 0x000A05FB,
++ 0x035, 0x000A85FB,
++ 0x035, 0x000B05FB,
++ 0x035, 0x000C05FB,
++ 0x035, 0x000C85FB,
++ 0x035, 0x000D05FB,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000010,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000473,
++ 0x036, 0x00008473,
++ 0x036, 0x00010473,
++ 0x036, 0x00020473,
++ 0x036, 0x00028473,
++ 0x036, 0x00030473,
++ 0x036, 0x00040473,
++ 0x036, 0x00048473,
++ 0x036, 0x00050473,
++ 0x036, 0x00080473,
++ 0x036, 0x00088473,
++ 0x036, 0x00090473,
++ 0x036, 0x000A0473,
++ 0x036, 0x000A8473,
++ 0x036, 0x000B0473,
++ 0x036, 0x000C0473,
++ 0x036, 0x000C8473,
++ 0x036, 0x000D0473,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0xA0000000, 0x00000000,
++ 0x036, 0x00000473,
++ 0x036, 0x00008473,
++ 0x036, 0x00010473,
++ 0x036, 0x00020473,
++ 0x036, 0x00028473,
++ 0x036, 0x00030473,
++ 0x036, 0x00040473,
++ 0x036, 0x00048473,
++ 0x036, 0x00050473,
++ 0x036, 0x00080473,
++ 0x036, 0x00088473,
++ 0x036, 0x00090473,
++ 0x036, 0x000A0473,
++ 0x036, 0x000A8473,
++ 0x036, 0x000B0473,
++ 0x036, 0x000C0473,
++ 0x036, 0x000C8473,
++ 0x036, 0x000D0473,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x0EF, 0x00000004,
++ 0x037, 0x00000000,
++ 0x038, 0x00005146,
++ 0x037, 0x00004000,
++ 0x038, 0x00005146,
++ 0x037, 0x00008000,
++ 0x038, 0x00005146,
++ 0x037, 0x00010000,
++ 0x038, 0x00005146,
++ 0x037, 0x00014000,
++ 0x038, 0x00005146,
++ 0x037, 0x00018000,
++ 0x038, 0x00004D4E,
++ 0x037, 0x0001C000,
++ 0x038, 0x00004D4E,
++ 0x037, 0x00020000,
++ 0x038, 0x00004D4E,
++ 0x037, 0x00024000,
++ 0x038, 0x000071C6,
++ 0x037, 0x00028000,
++ 0x038, 0x000071C6,
++ 0x037, 0x0002C000,
++ 0x038, 0x000071C6,
++ 0x037, 0x00030000,
++ 0x038, 0x000071CE,
++ 0x037, 0x00034000,
++ 0x038, 0x000071CE,
++ 0x037, 0x00038000,
++ 0x038, 0x00005126,
++ 0x037, 0x0003C000,
++ 0x038, 0x00005126,
++ 0x037, 0x00040000,
++ 0x038, 0x00005126,
++ 0x037, 0x00044000,
++ 0x038, 0x00005126,
++ 0x037, 0x00048000,
++ 0x038, 0x00005126,
++ 0x037, 0x00080000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00084000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00088000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00090000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00094000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00098000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x0009C000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000AC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000BC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C8000,
++ 0x038, 0x00005ECE,
++ 0x0EF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000008,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000007D,
++ 0x03C, 0x0000047D,
++ 0x03C, 0x0000087D,
++ 0x03C, 0x0000107D,
++ 0x03C, 0x0000147D,
++ 0x03C, 0x0000187D,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x0000054A,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x0000154A,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x0000254A,
++ 0x03C, 0x00002821,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000037E,
++ 0x03C, 0x00000575,
++ 0x03C, 0x00000971,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001575,
++ 0x03C, 0x00001871,
++ 0x03C, 0x0000217E,
++ 0x03C, 0x00002575,
++ 0x03C, 0x00002871,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x061, 0x000C0D47,
++ 0x062, 0x0000133C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0xA0000000, 0x00000000,
++ 0x063, 0x0007D0E7,
++ 0xB0000000, 0x00000000,
++ 0x064, 0x00014FEC,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0xA0000000, 0x00000000,
++ 0x065, 0x000933FF,
++ 0xB0000000, 0x00000000,
++ 0x066, 0x00000040,
++ 0x057, 0x00050000,
++ 0x056, 0x00051DF0,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x055, 0x00082061,
++ 0xA0000000, 0x00000000,
++ 0x055, 0x00082060,
++ 0xB0000000, 0x00000000,
++ 0x01C, 0x000739D2,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x01F, 0x0002255C,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x01F, 0x0002255C,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x01F, 0x0002255C,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x01F, 0x0002255C,
++ 0xA0000000, 0x00000000,
++ 0x01F, 0x0002255C,
++ 0xB0000000, 0x00000000,
++ 0x0B1, 0x0007FF48,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0C4, 0x00081700,
++ 0xA0000000, 0x00000000,
++ 0x0C4, 0x00083F00,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001B126,
++ 0xFFE, 0x00000000,
++ 0xFFE, 0x00000000,
++ 0xFFE, 0x00000000,
++ 0x018, 0x00013126,
++ 0x018, 0x00013124,
++};
++
++RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_a, A);
++
++static const u32 rtw8814a_rf_b[] = {
++ 0x018, 0x00013124,
++ 0x040, 0x00000C00,
++ 0x058, 0x00000F98,
++ 0x07F, 0x00068004,
++ 0x018, 0x00000006,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0xA0000000, 0x00000000,
++ 0x086, 0x000E4B58,
++ 0x087, 0x00049F80,
++ 0xB0000000, 0x00000000,
++ 0x0DF, 0x00000008,
++ 0x0EF, 0x00002000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F39B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F39B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017BC3,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0003F258,
++ 0x03B, 0x00030A58,
++ 0x03B, 0x0002FA58,
++ 0x03B, 0x00022590,
++ 0x03B, 0x0001FA50,
++ 0x03B, 0x00010248,
++ 0x03B, 0x00008240,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000100,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000ADF6,
++ 0x034, 0x00009DF3,
++ 0x034, 0x00008DF0,
++ 0x034, 0x00007DED,
++ 0x034, 0x00006DEA,
++ 0x034, 0x00005CED,
++ 0x034, 0x00004CEA,
++ 0x034, 0x000034EA,
++ 0x034, 0x000024E7,
++ 0x034, 0x0000146A,
++ 0x034, 0x0000006B,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008ADF6,
++ 0x034, 0x00089DF3,
++ 0x034, 0x00088DF0,
++ 0x034, 0x00087DED,
++ 0x034, 0x00086DEA,
++ 0x034, 0x00085CED,
++ 0x034, 0x00084CEA,
++ 0x034, 0x000834EA,
++ 0x034, 0x000824E7,
++ 0x034, 0x0008146A,
++ 0x034, 0x0008006B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x000020A2,
++ 0x0DF, 0x00000080,
++ 0x035, 0x00000192,
++ 0x035, 0x00008192,
++ 0x035, 0x00010192,
++ 0x036, 0x00000024,
++ 0x036, 0x00008024,
++ 0x036, 0x00010024,
++ 0x036, 0x00018024,
++ 0x0EF, 0x00000000,
++ 0x051, 0x00000C21,
++ 0x052, 0x000006D9,
++ 0x053, 0x000FC649,
++ 0x054, 0x0000017E,
++ 0x018, 0x0001012A,
++ 0x081, 0x0007FC00,
++ 0x089, 0x00050110,
++ 0x08A, 0x00043E50,
++ 0x08B, 0x0002E180,
++ 0x08C, 0x00093C3C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xA0000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xB0000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x0EF, 0x00001000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00040000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00030023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00028623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00021633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0001C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00010293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00009593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x00000F8B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0000078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00070023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00068623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00061633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0005C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00050293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00049593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x03B, 0x0004078B,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0004C000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0004C000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B0023,
++ 0x80000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A8623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A1633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0009C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00090293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00089593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0008138B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0008078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00000800,
++ 0x03B, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00040000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000800,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000800,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00080000,
++ 0x80000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001002,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x0EF, 0x00000100,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x000491AD,
++ 0x034, 0x000481AA,
++ 0x034, 0x000471A7,
++ 0x034, 0x000460AA,
++ 0x034, 0x000450A7,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x0004200C,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x00049389,
++ 0x034, 0x0004816D,
++ 0x034, 0x0004716A,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38B,
++ 0x034, 0x00049388,
++ 0x034, 0x0004818B,
++ 0x034, 0x00047188,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x00049389,
++ 0x034, 0x0004816D,
++ 0x034, 0x0004716A,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38B,
++ 0x034, 0x00049388,
++ 0x034, 0x0004818B,
++ 0x034, 0x00047188,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3F5,
++ 0x034, 0x000493F3,
++ 0x034, 0x000483B2,
++ 0x034, 0x00047390,
++ 0x034, 0x0004638D,
++ 0x034, 0x0004538A,
++ 0x034, 0x00044387,
++ 0x034, 0x0004324A,
++ 0x034, 0x00042247,
++ 0x034, 0x0004104D,
++ 0x034, 0x0004004A,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004AFF7,
++ 0x034, 0x00049FF6,
++ 0x034, 0x00048FF3,
++ 0x034, 0x00047FF0,
++ 0x034, 0x00046FED,
++ 0x034, 0x00045FEA,
++ 0x034, 0x00044FE7,
++ 0x034, 0x00043DEA,
++ 0x034, 0x00042DE7,
++ 0x034, 0x00041DE4,
++ 0x034, 0x00040CE7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x00049389,
++ 0x034, 0x0004816D,
++ 0x034, 0x0004716A,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x00049389,
++ 0x034, 0x0004816D,
++ 0x034, 0x0004716A,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0004AFF4,
++ 0x034, 0x00049FF1,
++ 0x034, 0x00048FEE,
++ 0x034, 0x00047FEB,
++ 0x034, 0x00046FE8,
++ 0x034, 0x00045DEA,
++ 0x034, 0x00044CED,
++ 0x034, 0x00043CEA,
++ 0x034, 0x00042C6C,
++ 0x034, 0x00041C69,
++ 0x034, 0x00040C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A38C,
++ 0x034, 0x000291AD,
++ 0x034, 0x000281AA,
++ 0x034, 0x000271A7,
++ 0x034, 0x000260AA,
++ 0x034, 0x000250A7,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x0002200C,
++ 0x034, 0x00021009,
++ 0x034, 0x00020006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EE,
++ 0x034, 0x000293AC,
++ 0x034, 0x00028389,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AD,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EE,
++ 0x034, 0x000293AC,
++ 0x034, 0x00028389,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EF,
++ 0x034, 0x000293AD,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3F5,
++ 0x034, 0x000293F3,
++ 0x034, 0x000283D0,
++ 0x034, 0x00027371,
++ 0x034, 0x0002636E,
++ 0x034, 0x0002536B,
++ 0x034, 0x00024368,
++ 0x034, 0x0002332A,
++ 0x034, 0x00022327,
++ 0x034, 0x0002104C,
++ 0x034, 0x00020049,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002AFF7,
++ 0x034, 0x00029FF6,
++ 0x034, 0x00028FF3,
++ 0x034, 0x00027FF0,
++ 0x034, 0x00026FED,
++ 0x034, 0x00025FEA,
++ 0x034, 0x00024FE7,
++ 0x034, 0x00023DEA,
++ 0x034, 0x00022DE7,
++ 0x034, 0x00021DE4,
++ 0x034, 0x00020F25,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EE,
++ 0x034, 0x000293AC,
++ 0x034, 0x00028389,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EE,
++ 0x034, 0x000293AC,
++ 0x034, 0x00028389,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0002AFF4,
++ 0x034, 0x00029FF1,
++ 0x034, 0x00028FEE,
++ 0x034, 0x00027FEB,
++ 0x034, 0x00026FE8,
++ 0x034, 0x00025DEA,
++ 0x034, 0x00024CED,
++ 0x034, 0x00023CEA,
++ 0x034, 0x00022C6C,
++ 0x034, 0x00021C69,
++ 0x034, 0x00020C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A38C,
++ 0x034, 0x000091AD,
++ 0x034, 0x000081AA,
++ 0x034, 0x000071A7,
++ 0x034, 0x000060AA,
++ 0x034, 0x000050A7,
++ 0x034, 0x0000402C,
++ 0x034, 0x00003029,
++ 0x034, 0x00002026,
++ 0x034, 0x00001009,
++ 0x034, 0x00000006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EC,
++ 0x034, 0x000093AC,
++ 0x034, 0x000081EC,
++ 0x034, 0x0000716D,
++ 0x034, 0x0000616A,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000404C,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EF,
++ 0x034, 0x000093AD,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EC,
++ 0x034, 0x000093AC,
++ 0x034, 0x000081EC,
++ 0x034, 0x0000716D,
++ 0x034, 0x0000616A,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000404C,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EF,
++ 0x034, 0x000093AD,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3F4,
++ 0x034, 0x000093F0,
++ 0x034, 0x000083AE,
++ 0x034, 0x00007350,
++ 0x034, 0x0000634D,
++ 0x034, 0x0000534A,
++ 0x034, 0x00004347,
++ 0x034, 0x0000312D,
++ 0x034, 0x0000212A,
++ 0x034, 0x00001127,
++ 0x034, 0x0000002A,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000AFF7,
++ 0x034, 0x00009FF4,
++ 0x034, 0x00008FF1,
++ 0x034, 0x00007FEE,
++ 0x034, 0x00006FEB,
++ 0x034, 0x00005FE8,
++ 0x034, 0x00004DEB,
++ 0x034, 0x00003DE8,
++ 0x034, 0x00002DE5,
++ 0x034, 0x00001C8B,
++ 0x034, 0x00000C88,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EC,
++ 0x034, 0x000093AC,
++ 0x034, 0x000081EC,
++ 0x034, 0x0000716D,
++ 0x034, 0x0000616A,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000404C,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EC,
++ 0x034, 0x000093AC,
++ 0x034, 0x000081EC,
++ 0x034, 0x0000716D,
++ 0x034, 0x0000616A,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000404C,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000AFF4,
++ 0x034, 0x00009FF1,
++ 0x034, 0x00008FEE,
++ 0x034, 0x00007FEB,
++ 0x034, 0x00006FE8,
++ 0x034, 0x00005DEA,
++ 0x034, 0x00004CED,
++ 0x034, 0x00003CEA,
++ 0x034, 0x00002C6C,
++ 0x034, 0x00001C69,
++ 0x034, 0x00000C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C91AD,
++ 0x034, 0x000C81AA,
++ 0x034, 0x000C71A7,
++ 0x034, 0x000C60AA,
++ 0x034, 0x000C50A7,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C200C,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C9389,
++ 0x034, 0x000C816D,
++ 0x034, 0x000C716A,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38B,
++ 0x034, 0x000C9388,
++ 0x034, 0x000C818B,
++ 0x034, 0x000C7188,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C9389,
++ 0x034, 0x000C816D,
++ 0x034, 0x000C716A,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38B,
++ 0x034, 0x000C9388,
++ 0x034, 0x000C818B,
++ 0x034, 0x000C7188,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3F5,
++ 0x034, 0x000C93F3,
++ 0x034, 0x000C83B2,
++ 0x034, 0x000C7390,
++ 0x034, 0x000C638D,
++ 0x034, 0x000C538A,
++ 0x034, 0x000C4387,
++ 0x034, 0x000C324A,
++ 0x034, 0x000C2247,
++ 0x034, 0x000C104D,
++ 0x034, 0x000C004A,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CAFF7,
++ 0x034, 0x000C9FF6,
++ 0x034, 0x000C8FF3,
++ 0x034, 0x000C7FF0,
++ 0x034, 0x000C6FED,
++ 0x034, 0x000C5FEA,
++ 0x034, 0x000C4FE7,
++ 0x034, 0x000C3DEA,
++ 0x034, 0x000C2DE7,
++ 0x034, 0x000C1DE4,
++ 0x034, 0x000C0CE7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C9389,
++ 0x034, 0x000C816D,
++ 0x034, 0x000C716A,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C9389,
++ 0x034, 0x000C816D,
++ 0x034, 0x000C716A,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000CA794,
++ 0x034, 0x000C9791,
++ 0x034, 0x000C878E,
++ 0x034, 0x000C778B,
++ 0x034, 0x000C658D,
++ 0x034, 0x000C558A,
++ 0x034, 0x000C448D,
++ 0x034, 0x000C348A,
++ 0x034, 0x000C244C,
++ 0x034, 0x000C1449,
++ 0x034, 0x000C042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA38C,
++ 0x034, 0x000A91AD,
++ 0x034, 0x000A81AA,
++ 0x034, 0x000A71A7,
++ 0x034, 0x000A60AA,
++ 0x034, 0x000A50A7,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A200C,
++ 0x034, 0x000A1009,
++ 0x034, 0x000A0006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EE,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A8389,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AD,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EE,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A8389,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EF,
++ 0x034, 0x000A93AD,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3F5,
++ 0x034, 0x000A93F3,
++ 0x034, 0x000A83D0,
++ 0x034, 0x000A7371,
++ 0x034, 0x000A636E,
++ 0x034, 0x000A536B,
++ 0x034, 0x000A4368,
++ 0x034, 0x000A332A,
++ 0x034, 0x000A2327,
++ 0x034, 0x000A104C,
++ 0x034, 0x000A0049,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AAFF7,
++ 0x034, 0x000A9FF6,
++ 0x034, 0x000A8FF3,
++ 0x034, 0x000A7FF0,
++ 0x034, 0x000A6FED,
++ 0x034, 0x000A5FEA,
++ 0x034, 0x000A4FE7,
++ 0x034, 0x000A3DEA,
++ 0x034, 0x000A2DE7,
++ 0x034, 0x000A1DE4,
++ 0x034, 0x000A0F25,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EE,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A8389,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EE,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A8389,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000AA794,
++ 0x034, 0x000A9791,
++ 0x034, 0x000A878E,
++ 0x034, 0x000A778B,
++ 0x034, 0x000A658D,
++ 0x034, 0x000A558A,
++ 0x034, 0x000A448D,
++ 0x034, 0x000A348A,
++ 0x034, 0x000A244C,
++ 0x034, 0x000A1449,
++ 0x034, 0x000A042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A38C,
++ 0x034, 0x000891AD,
++ 0x034, 0x000881AA,
++ 0x034, 0x000871A7,
++ 0x034, 0x000860AA,
++ 0x034, 0x000850A7,
++ 0x034, 0x0008402C,
++ 0x034, 0x00083029,
++ 0x034, 0x00082026,
++ 0x034, 0x00081009,
++ 0x034, 0x00080006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EC,
++ 0x034, 0x000893AC,
++ 0x034, 0x000881EC,
++ 0x034, 0x0008716D,
++ 0x034, 0x0008616A,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008404C,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EF,
++ 0x034, 0x000893AD,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EC,
++ 0x034, 0x000893AC,
++ 0x034, 0x000881EC,
++ 0x034, 0x0008716D,
++ 0x034, 0x0008616A,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008404C,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EF,
++ 0x034, 0x000893AD,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3F4,
++ 0x034, 0x000893F0,
++ 0x034, 0x000883AE,
++ 0x034, 0x00087350,
++ 0x034, 0x0008634D,
++ 0x034, 0x0008534A,
++ 0x034, 0x00084347,
++ 0x034, 0x0008312D,
++ 0x034, 0x0008212A,
++ 0x034, 0x00081127,
++ 0x034, 0x0008002A,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008AFF7,
++ 0x034, 0x00089FF4,
++ 0x034, 0x00088FF1,
++ 0x034, 0x00087FEE,
++ 0x034, 0x00086FEB,
++ 0x034, 0x00085FE8,
++ 0x034, 0x00084DEB,
++ 0x034, 0x00083DE8,
++ 0x034, 0x00082DE5,
++ 0x034, 0x00081C8B,
++ 0x034, 0x00080C88,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EC,
++ 0x034, 0x000893AC,
++ 0x034, 0x000881EC,
++ 0x034, 0x0008716D,
++ 0x034, 0x0008616A,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008404C,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EC,
++ 0x034, 0x000893AC,
++ 0x034, 0x000881EC,
++ 0x034, 0x0008716D,
++ 0x034, 0x0008616A,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008404C,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008A794,
++ 0x034, 0x00089791,
++ 0x034, 0x0008878E,
++ 0x034, 0x0008778B,
++ 0x034, 0x0008658D,
++ 0x034, 0x0008558A,
++ 0x034, 0x0008448D,
++ 0x034, 0x0008348A,
++ 0x034, 0x0008244C,
++ 0x034, 0x00081449,
++ 0x034, 0x0008042B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000040,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0xA0000000, 0x00000000,
++ 0x035, 0x00000484,
++ 0x035, 0x00008484,
++ 0x035, 0x00010484,
++ 0x035, 0x00020584,
++ 0x035, 0x00028584,
++ 0x035, 0x00030584,
++ 0x035, 0x00040584,
++ 0x035, 0x00048584,
++ 0x035, 0x00050584,
++ 0x035, 0x000805FB,
++ 0x035, 0x000885FB,
++ 0x035, 0x000905FB,
++ 0x035, 0x000A05FB,
++ 0x035, 0x000A85FB,
++ 0x035, 0x000B05FB,
++ 0x035, 0x000C05FB,
++ 0x035, 0x000C85FB,
++ 0x035, 0x000D05FB,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000010,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000473,
++ 0x036, 0x00008473,
++ 0x036, 0x00010473,
++ 0x036, 0x00020473,
++ 0x036, 0x00028473,
++ 0x036, 0x00030473,
++ 0x036, 0x00040473,
++ 0x036, 0x00048473,
++ 0x036, 0x00050473,
++ 0x036, 0x00080473,
++ 0x036, 0x00088473,
++ 0x036, 0x00090473,
++ 0x036, 0x000A0473,
++ 0x036, 0x000A8473,
++ 0x036, 0x000B0473,
++ 0x036, 0x000C0473,
++ 0x036, 0x000C8473,
++ 0x036, 0x000D0473,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0xA0000000, 0x00000000,
++ 0x036, 0x00000474,
++ 0x036, 0x00008474,
++ 0x036, 0x00010474,
++ 0x036, 0x00020474,
++ 0x036, 0x00028474,
++ 0x036, 0x00030474,
++ 0x036, 0x00040474,
++ 0x036, 0x00048474,
++ 0x036, 0x00050474,
++ 0x036, 0x00080474,
++ 0x036, 0x00088474,
++ 0x036, 0x00090474,
++ 0x036, 0x000A0474,
++ 0x036, 0x000A8474,
++ 0x036, 0x000B0474,
++ 0x036, 0x000C0474,
++ 0x036, 0x000C8474,
++ 0x036, 0x000D0474,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x0EF, 0x00000004,
++ 0x037, 0x00000000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00004000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00008000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00010000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00014000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00018000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0001C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00020000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00024000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00028000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0002C000,
++ 0x038, 0x0000714E,
++ 0x037, 0x00030000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00034000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00038000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0003C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00040000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00044000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00048000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00080000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00084000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00088000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00090000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00094000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00098000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x0009C000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000AC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000BC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C8000,
++ 0x038, 0x00005ECE,
++ 0x0EF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000008,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000007D,
++ 0x03C, 0x0000047D,
++ 0x03C, 0x0000087D,
++ 0x03C, 0x0000107D,
++ 0x03C, 0x0000147D,
++ 0x03C, 0x0000187D,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027E,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227E,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000037E,
++ 0x03C, 0x00000575,
++ 0x03C, 0x00000971,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001575,
++ 0x03C, 0x00001871,
++ 0x03C, 0x0000217E,
++ 0x03C, 0x00002575,
++ 0x03C, 0x00002871,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x061, 0x000C0D47,
++ 0x062, 0x0000133C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0xA0000000, 0x00000000,
++ 0x063, 0x0007D0E7,
++ 0xB0000000, 0x00000000,
++ 0x064, 0x00014FEC,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0xA0000000, 0x00000000,
++ 0x065, 0x000923FF,
++ 0xB0000000, 0x00000000,
++ 0x066, 0x00000040,
++ 0x057, 0x00050000,
++ 0x056, 0x00051DF0,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x055, 0x00082060,
++ 0xB0000000, 0x00000000,
++};
++
++RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_b, B);
++
++static const u32 rtw8814a_rf_c[] = {
++ 0x018, 0x00013124,
++ 0x040, 0x00000C00,
++ 0x058, 0x00000F98,
++ 0x07F, 0x00068004,
++ 0x018, 0x00000006,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0xA0000000, 0x00000000,
++ 0x086, 0x000E4B58,
++ 0x087, 0x00049F80,
++ 0xB0000000, 0x00000000,
++ 0x0DF, 0x00000008,
++ 0x0EF, 0x00002000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017823,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0003F258,
++ 0x03B, 0x00030A58,
++ 0x03B, 0x0002FA58,
++ 0x03B, 0x00022590,
++ 0x03B, 0x0001FA50,
++ 0x03B, 0x00010248,
++ 0x03B, 0x00008240,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000100,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000ADF6,
++ 0x034, 0x00009DF3,
++ 0x034, 0x00008DF0,
++ 0x034, 0x00007DED,
++ 0x034, 0x00006DEA,
++ 0x034, 0x00005CED,
++ 0x034, 0x00004CEA,
++ 0x034, 0x000034EA,
++ 0x034, 0x000024E7,
++ 0x034, 0x0000146A,
++ 0x034, 0x0000006B,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008ADF6,
++ 0x034, 0x00089DF3,
++ 0x034, 0x00088DF0,
++ 0x034, 0x00087DED,
++ 0x034, 0x00086DEA,
++ 0x034, 0x00085CED,
++ 0x034, 0x00084CEA,
++ 0x034, 0x000834EA,
++ 0x034, 0x000824E7,
++ 0x034, 0x0008146A,
++ 0x034, 0x0008006B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x000020A2,
++ 0x0DF, 0x00000080,
++ 0x035, 0x00000192,
++ 0x035, 0x00008192,
++ 0x035, 0x00010192,
++ 0x036, 0x00000024,
++ 0x036, 0x00008024,
++ 0x036, 0x00010024,
++ 0x036, 0x00018024,
++ 0x0EF, 0x00000000,
++ 0x051, 0x00000C21,
++ 0x052, 0x000006D9,
++ 0x053, 0x000FC649,
++ 0x054, 0x0000017E,
++ 0x018, 0x0001012A,
++ 0x081, 0x0007FC00,
++ 0x089, 0x00050110,
++ 0x08A, 0x00043E50,
++ 0x08B, 0x0002E180,
++ 0x08C, 0x00093C3C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xA0000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xA0000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00001000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0006C000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x000D4000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00080000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0006C000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0008C000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x000A0000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00030023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00028623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00021633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0001C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00010293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00009593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0000118B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0000078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0004C000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00084000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00080000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0004C000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x000D0000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00080000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00080000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00028000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00070023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00068623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00061633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0005C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00050293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00049593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x03B, 0x0004078B,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00080000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B0023,
++ 0x80000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A8623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A1633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0009C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00090293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00089593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0008128B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0008078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00000800,
++ 0x03B, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001803,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001803,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00040000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000800,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00080000,
++ 0x80000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001002,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0xA0000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000100,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A38C,
++ 0x034, 0x000491AD,
++ 0x034, 0x000481AA,
++ 0x034, 0x000471A7,
++ 0x034, 0x000460AA,
++ 0x034, 0x000450A7,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x0004200C,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3F5,
++ 0x034, 0x000493F3,
++ 0x034, 0x00048393,
++ 0x034, 0x00047390,
++ 0x034, 0x0004638D,
++ 0x034, 0x0004538A,
++ 0x034, 0x00044387,
++ 0x034, 0x000430ED,
++ 0x034, 0x000420EA,
++ 0x034, 0x000410E7,
++ 0x034, 0x0004002D,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004AFF7,
++ 0x034, 0x00049FF6,
++ 0x034, 0x00048FF3,
++ 0x034, 0x00047FF0,
++ 0x034, 0x00046FED,
++ 0x034, 0x00045FEA,
++ 0x034, 0x00044FE7,
++ 0x034, 0x00043CD0,
++ 0x034, 0x00042CCD,
++ 0x034, 0x00041CCA,
++ 0x034, 0x00040CC7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EF,
++ 0x034, 0x000493AD,
++ 0x034, 0x0004838A,
++ 0x034, 0x0004718C,
++ 0x034, 0x00046189,
++ 0x034, 0x0004506D,
++ 0x034, 0x0004404C,
++ 0x034, 0x0004302C,
++ 0x034, 0x00042029,
++ 0x034, 0x00041026,
++ 0x034, 0x00040023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0004AFF4,
++ 0x034, 0x00049FF1,
++ 0x034, 0x00048FEE,
++ 0x034, 0x00047FEB,
++ 0x034, 0x00046FE8,
++ 0x034, 0x00045DEA,
++ 0x034, 0x00044CED,
++ 0x034, 0x00043CEA,
++ 0x034, 0x00042C6C,
++ 0x034, 0x00041C69,
++ 0x034, 0x00040C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x0002938C,
++ 0x034, 0x000281AD,
++ 0x034, 0x000271AA,
++ 0x034, 0x000261A7,
++ 0x034, 0x000250AA,
++ 0x034, 0x000240A7,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x0002100C,
++ 0x034, 0x00020009,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x0002936D,
++ 0x034, 0x0002836A,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x0002936D,
++ 0x034, 0x0002836A,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x000293AC,
++ 0x034, 0x0002838A,
++ 0x034, 0x0002718C,
++ 0x034, 0x00026189,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3F5,
++ 0x034, 0x000293F3,
++ 0x034, 0x000282F2,
++ 0x034, 0x000272D0,
++ 0x034, 0x000262CD,
++ 0x034, 0x000252CA,
++ 0x034, 0x000242C7,
++ 0x034, 0x000230CD,
++ 0x034, 0x000220CA,
++ 0x034, 0x000210C7,
++ 0x034, 0x00020086,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002AFF7,
++ 0x034, 0x00029FF6,
++ 0x034, 0x00028FF3,
++ 0x034, 0x00027FF0,
++ 0x034, 0x00026FED,
++ 0x034, 0x00025FEA,
++ 0x034, 0x00024FE7,
++ 0x034, 0x00023DEA,
++ 0x034, 0x00022DE7,
++ 0x034, 0x00021DE4,
++ 0x034, 0x00020E44,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x0002936D,
++ 0x034, 0x0002836A,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EC,
++ 0x034, 0x0002936D,
++ 0x034, 0x0002836A,
++ 0x034, 0x0002716D,
++ 0x034, 0x0002616A,
++ 0x034, 0x0002506D,
++ 0x034, 0x0002406A,
++ 0x034, 0x0002302C,
++ 0x034, 0x00022029,
++ 0x034, 0x00021026,
++ 0x034, 0x00020023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0002AFF4,
++ 0x034, 0x00029FF1,
++ 0x034, 0x00028FEE,
++ 0x034, 0x00027FEB,
++ 0x034, 0x00026FE8,
++ 0x034, 0x00025DEA,
++ 0x034, 0x00024CED,
++ 0x034, 0x00023CEA,
++ 0x034, 0x00022C6C,
++ 0x034, 0x00021C69,
++ 0x034, 0x00020C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A38C,
++ 0x034, 0x000091AD,
++ 0x034, 0x000081AA,
++ 0x034, 0x000071A7,
++ 0x034, 0x000060AA,
++ 0x034, 0x000050A7,
++ 0x034, 0x0000402C,
++ 0x034, 0x00003029,
++ 0x034, 0x0000200C,
++ 0x034, 0x00001009,
++ 0x034, 0x00000006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3F5,
++ 0x034, 0x000093F1,
++ 0x034, 0x000083B0,
++ 0x034, 0x00007370,
++ 0x034, 0x0000636D,
++ 0x034, 0x0000536A,
++ 0x034, 0x00004367,
++ 0x034, 0x0000308E,
++ 0x034, 0x0000208B,
++ 0x034, 0x00001088,
++ 0x034, 0x00000085,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000AFF7,
++ 0x034, 0x00009FF5,
++ 0x034, 0x00008FF2,
++ 0x034, 0x00007FEF,
++ 0x034, 0x00006FEC,
++ 0x034, 0x00005FE9,
++ 0x034, 0x00004EAA,
++ 0x034, 0x00003EA7,
++ 0x034, 0x00002C70,
++ 0x034, 0x00001C6D,
++ 0x034, 0x00000C6A,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AB,
++ 0x034, 0x00008389,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000AFF4,
++ 0x034, 0x00009FF1,
++ 0x034, 0x00008FEE,
++ 0x034, 0x00007FEB,
++ 0x034, 0x00006FE8,
++ 0x034, 0x00005DEA,
++ 0x034, 0x00004CED,
++ 0x034, 0x00003CEA,
++ 0x034, 0x00002C6C,
++ 0x034, 0x00001C69,
++ 0x034, 0x00000C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA38C,
++ 0x034, 0x000C91AD,
++ 0x034, 0x000C81AA,
++ 0x034, 0x000C71A7,
++ 0x034, 0x000C60AA,
++ 0x034, 0x000C50A7,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C200C,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3F5,
++ 0x034, 0x000C93F3,
++ 0x034, 0x000C8393,
++ 0x034, 0x000C7390,
++ 0x034, 0x000C638D,
++ 0x034, 0x000C538A,
++ 0x034, 0x000C4387,
++ 0x034, 0x000C30ED,
++ 0x034, 0x000C20EA,
++ 0x034, 0x000C10E7,
++ 0x034, 0x000C002D,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CAFF7,
++ 0x034, 0x000C9FF6,
++ 0x034, 0x000C8FF3,
++ 0x034, 0x000C7FF0,
++ 0x034, 0x000C6FED,
++ 0x034, 0x000C5FEA,
++ 0x034, 0x000C4FE7,
++ 0x034, 0x000C3CD0,
++ 0x034, 0x000C2CCD,
++ 0x034, 0x000C1CCA,
++ 0x034, 0x000C0CC7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EF,
++ 0x034, 0x000C93AD,
++ 0x034, 0x000C838A,
++ 0x034, 0x000C718C,
++ 0x034, 0x000C6189,
++ 0x034, 0x000C506D,
++ 0x034, 0x000C404C,
++ 0x034, 0x000C302C,
++ 0x034, 0x000C2029,
++ 0x034, 0x000C1026,
++ 0x034, 0x000C0023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000CA794,
++ 0x034, 0x000C9791,
++ 0x034, 0x000C878E,
++ 0x034, 0x000C778B,
++ 0x034, 0x000C658D,
++ 0x034, 0x000C558A,
++ 0x034, 0x000C448D,
++ 0x034, 0x000C348A,
++ 0x034, 0x000C244C,
++ 0x034, 0x000C1449,
++ 0x034, 0x000C042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A938C,
++ 0x034, 0x000A81AD,
++ 0x034, 0x000A71AA,
++ 0x034, 0x000A61A7,
++ 0x034, 0x000A50AA,
++ 0x034, 0x000A40A7,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A100C,
++ 0x034, 0x000A0009,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A936D,
++ 0x034, 0x000A836A,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A936D,
++ 0x034, 0x000A836A,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A93AC,
++ 0x034, 0x000A838A,
++ 0x034, 0x000A718C,
++ 0x034, 0x000A6189,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3F5,
++ 0x034, 0x000A93F3,
++ 0x034, 0x000A82F2,
++ 0x034, 0x000A72D0,
++ 0x034, 0x000A62CD,
++ 0x034, 0x000A52CA,
++ 0x034, 0x000A42C7,
++ 0x034, 0x000A30CD,
++ 0x034, 0x000A20CA,
++ 0x034, 0x000A10C7,
++ 0x034, 0x000A0086,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AAFF7,
++ 0x034, 0x000A9FF6,
++ 0x034, 0x000A8FF3,
++ 0x034, 0x000A7FF0,
++ 0x034, 0x000A6FED,
++ 0x034, 0x000A5FEA,
++ 0x034, 0x000A4FE7,
++ 0x034, 0x000A3DEA,
++ 0x034, 0x000A2DE7,
++ 0x034, 0x000A1DE4,
++ 0x034, 0x000A0E44,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A936D,
++ 0x034, 0x000A836A,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EC,
++ 0x034, 0x000A936D,
++ 0x034, 0x000A836A,
++ 0x034, 0x000A716D,
++ 0x034, 0x000A616A,
++ 0x034, 0x000A506D,
++ 0x034, 0x000A406A,
++ 0x034, 0x000A302C,
++ 0x034, 0x000A2029,
++ 0x034, 0x000A1026,
++ 0x034, 0x000A0023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000AA794,
++ 0x034, 0x000A9791,
++ 0x034, 0x000A878E,
++ 0x034, 0x000A778B,
++ 0x034, 0x000A658D,
++ 0x034, 0x000A558A,
++ 0x034, 0x000A448D,
++ 0x034, 0x000A348A,
++ 0x034, 0x000A244C,
++ 0x034, 0x000A1449,
++ 0x034, 0x000A042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A38C,
++ 0x034, 0x000891AD,
++ 0x034, 0x000881AA,
++ 0x034, 0x000871A7,
++ 0x034, 0x000860AA,
++ 0x034, 0x000850A7,
++ 0x034, 0x0008402C,
++ 0x034, 0x00083029,
++ 0x034, 0x0008200C,
++ 0x034, 0x00081009,
++ 0x034, 0x00000006,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3F5,
++ 0x034, 0x000893F1,
++ 0x034, 0x000883B0,
++ 0x034, 0x00087370,
++ 0x034, 0x0008636D,
++ 0x034, 0x0008536A,
++ 0x034, 0x00084367,
++ 0x034, 0x0008308E,
++ 0x034, 0x0008208B,
++ 0x034, 0x00081088,
++ 0x034, 0x00080085,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008AFF7,
++ 0x034, 0x00089FF5,
++ 0x034, 0x00088FF2,
++ 0x034, 0x00087FEF,
++ 0x034, 0x00086FEC,
++ 0x034, 0x00085FE9,
++ 0x034, 0x00084EAA,
++ 0x034, 0x00083EA7,
++ 0x034, 0x00082C70,
++ 0x034, 0x00081C6D,
++ 0x034, 0x00080C6A,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AB,
++ 0x034, 0x00088389,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008A794,
++ 0x034, 0x00089791,
++ 0x034, 0x0008878E,
++ 0x034, 0x0008778B,
++ 0x034, 0x0008658D,
++ 0x034, 0x0008558A,
++ 0x034, 0x0008448D,
++ 0x034, 0x0008348A,
++ 0x034, 0x0008244C,
++ 0x034, 0x00081449,
++ 0x034, 0x0008042B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000040,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0xA0000000, 0x00000000,
++ 0x035, 0x00000484,
++ 0x035, 0x00008484,
++ 0x035, 0x00010484,
++ 0x035, 0x00020584,
++ 0x035, 0x00028584,
++ 0x035, 0x00030584,
++ 0x035, 0x00040584,
++ 0x035, 0x00048584,
++ 0x035, 0x00050584,
++ 0x035, 0x000805FB,
++ 0x035, 0x000885FB,
++ 0x035, 0x000905FB,
++ 0x035, 0x000A05FB,
++ 0x035, 0x000A85FB,
++ 0x035, 0x000B05FB,
++ 0x035, 0x000C05FB,
++ 0x035, 0x000C85FB,
++ 0x035, 0x000D05FB,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000010,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000473,
++ 0x036, 0x00008473,
++ 0x036, 0x00010473,
++ 0x036, 0x00020473,
++ 0x036, 0x00028473,
++ 0x036, 0x00030473,
++ 0x036, 0x00040473,
++ 0x036, 0x00048473,
++ 0x036, 0x00050473,
++ 0x036, 0x00080473,
++ 0x036, 0x00088473,
++ 0x036, 0x00090473,
++ 0x036, 0x000A0473,
++ 0x036, 0x000A8473,
++ 0x036, 0x000B0473,
++ 0x036, 0x000C0473,
++ 0x036, 0x000C8473,
++ 0x036, 0x000D0473,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0xA0000000, 0x00000000,
++ 0x036, 0x00000474,
++ 0x036, 0x00008474,
++ 0x036, 0x00010474,
++ 0x036, 0x00020474,
++ 0x036, 0x00028474,
++ 0x036, 0x00030474,
++ 0x036, 0x00040474,
++ 0x036, 0x00048474,
++ 0x036, 0x00050474,
++ 0x036, 0x00080474,
++ 0x036, 0x00088474,
++ 0x036, 0x00090474,
++ 0x036, 0x000A0474,
++ 0x036, 0x000A8474,
++ 0x036, 0x000B0474,
++ 0x036, 0x000C0474,
++ 0x036, 0x000C8474,
++ 0x036, 0x000D0474,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x0EF, 0x00000004,
++ 0x037, 0x00000000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00004000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00008000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00010000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00014000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00018000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0001C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00020000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00024000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00028000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0002C000,
++ 0x038, 0x0000714E,
++ 0x037, 0x00030000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00034000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00038000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0003C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00040000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00044000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00048000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00080000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00084000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00088000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00090000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00094000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00098000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x0009C000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000AC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000BC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C8000,
++ 0x038, 0x00005ECE,
++ 0x0EF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000008,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000007D,
++ 0x03C, 0x0000047D,
++ 0x03C, 0x0000087D,
++ 0x03C, 0x0000107D,
++ 0x03C, 0x0000147D,
++ 0x03C, 0x0000187D,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000541,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001541,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002541,
++ 0x03C, 0x00002821,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027D,
++ 0x03C, 0x00000546,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127D,
++ 0x03C, 0x00001546,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227D,
++ 0x03C, 0x00002546,
++ 0x03C, 0x00002821,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000037E,
++ 0x03C, 0x00000575,
++ 0x03C, 0x00000971,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001575,
++ 0x03C, 0x00001871,
++ 0x03C, 0x0000217E,
++ 0x03C, 0x00002575,
++ 0x03C, 0x00002871,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x061, 0x000C0D47,
++ 0x062, 0x0000133C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0xA0000000, 0x00000000,
++ 0x063, 0x0007D0E7,
++ 0xB0000000, 0x00000000,
++ 0x064, 0x00014FEC,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0xA0000000, 0x00000000,
++ 0x065, 0x000923FF,
++ 0xB0000000, 0x00000000,
++ 0x066, 0x00000040,
++ 0x057, 0x00050000,
++ 0x056, 0x00051DF0,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x055, 0x00082060,
++ 0xB0000000, 0x00000000,
++};
++
++RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_c, C);
diff --git a/package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch b/package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch
new file mode 100644
index 0000000000..56402a4ad3
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/087-v6.15-wifi-rtw88-Add-rtw8814a_table.c-part-2-2.patch
@@ -0,0 +1,11450 @@
+From e38246889cc9f8497c8d7413b73856ae1634322d Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:24:02 +0200
+Subject: [PATCH] wifi: rtw88: Add rtw8814a_table.c (part 2/2)
+
+This contains various tables for initialising the RTL8814A, plus TX
+power limits.
+
+Also add rtw8814a_table.h.
+
+Split into two patches because they are big.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/4c48e35e-1b04-42ed-940e-0e931693def6@gmail.com
+---
+ .../wireless/realtek/rtw88/rtw8814a_table.c | 11379 ++++++++++++++++
+ .../wireless/realtek/rtw88/rtw8814a_table.h | 40 +
+ 2 files changed, 11419 insertions(+)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a_table.h
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.c
+@@ -12549,3 +12549,11382 @@ static const u32 rtw8814a_rf_c[] = {
+ };
+
+ RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_c, C);
++
++static const u32 rtw8814a_rf_d[] = {
++ 0x018, 0x00013124,
++ 0x040, 0x00000C00,
++ 0x058, 0x00000F98,
++ 0x07F, 0x00068004,
++ 0x018, 0x00000006,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x086, 0x000E335A,
++ 0x087, 0x00079F80,
++ 0xA0000000, 0x00000000,
++ 0x086, 0x000E4B58,
++ 0x087, 0x00049F80,
++ 0xB0000000, 0x00000000,
++ 0x0DF, 0x00000008,
++ 0x0EF, 0x00002000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F09B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F09B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0003F19B,
++ 0x03B, 0x00037A5B,
++ 0x03B, 0x0002A433,
++ 0x03B, 0x00027BD3,
++ 0x03B, 0x0001F80B,
++ 0x03B, 0x00017803,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0003F258,
++ 0x03B, 0x00030A58,
++ 0x03B, 0x0002FA58,
++ 0x03B, 0x00022590,
++ 0x03B, 0x0001FA50,
++ 0x03B, 0x00010248,
++ 0x03B, 0x00008240,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000100,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000ADF6,
++ 0x034, 0x00009DF3,
++ 0x034, 0x00008DF0,
++ 0x034, 0x00007DED,
++ 0x034, 0x00006DEA,
++ 0x034, 0x00005CED,
++ 0x034, 0x00004CEA,
++ 0x034, 0x000034EA,
++ 0x034, 0x000024E7,
++ 0x034, 0x0000146A,
++ 0x034, 0x0000006B,
++ 0xB0000000, 0x00000000,
++ 0x80000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A0D0,
++ 0x034, 0x000090CD,
++ 0x034, 0x000080CA,
++ 0x034, 0x0000704D,
++ 0x034, 0x0000604A,
++ 0x034, 0x00005047,
++ 0x034, 0x0000400A,
++ 0x034, 0x00003007,
++ 0x034, 0x00002004,
++ 0x034, 0x00001001,
++ 0x034, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008ADF6,
++ 0x034, 0x00089DF3,
++ 0x034, 0x00088DF0,
++ 0x034, 0x00087DED,
++ 0x034, 0x00086DEA,
++ 0x034, 0x00085CED,
++ 0x034, 0x00084CEA,
++ 0x034, 0x000834EA,
++ 0x034, 0x000824E7,
++ 0x034, 0x0008146A,
++ 0x034, 0x0008006B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x000020A2,
++ 0x0DF, 0x00000080,
++ 0x035, 0x00000192,
++ 0x035, 0x00008192,
++ 0x035, 0x00010192,
++ 0x036, 0x00000024,
++ 0x036, 0x00008024,
++ 0x036, 0x00010024,
++ 0x036, 0x00018024,
++ 0x0EF, 0x00000000,
++ 0x051, 0x00000C21,
++ 0x052, 0x000006D9,
++ 0x053, 0x000FC649,
++ 0x054, 0x0000017E,
++ 0x018, 0x0001012A,
++ 0x081, 0x0007FC00,
++ 0x089, 0x00050110,
++ 0x08A, 0x00043E50,
++ 0x08B, 0x0002E180,
++ 0x08C, 0x00093C3C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xA0000000, 0x00000000,
++ 0x085, 0x000F8000,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xA0000000, 0x00000000,
++ 0x08D, 0x000FFFF0,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00001000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00038023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00040000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00088000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00048000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00030023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00028623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00021633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0001C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00010293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00009593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x00000F8B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0000078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00078023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00044000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00070023,
++ 0x03C, 0x00048000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00068623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00061633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0005C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00050293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00049593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x00040F8B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0004078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B8023,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00060000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00024000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00004000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000B0023,
++ 0x80000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x00020000,
++ 0xB0000000, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A8623,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x000A1633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x0009C633,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00090293,
++ 0x03C, 0x00000000,
++ 0x03A, 0x0000013C,
++ 0x03B, 0x00089593,
++ 0x03C, 0x00000000,
++ 0x03A, 0x00000148,
++ 0x80000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03B, 0x0008138B,
++ 0xA0000000, 0x00000000,
++ 0x03B, 0x0008078B,
++ 0xB0000000, 0x00000000,
++ 0x03C, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x0EF, 0x00000800,
++ 0x03B, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001003,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001803,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00000803,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00040000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001002,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000001,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000802,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001803,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0xB0000000, 0x00000000,
++ 0x03B, 0x00080000,
++ 0x80000007, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001802,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00001000,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x03A, 0x00000802,
++ 0xA0000000, 0x00000000,
++ 0x03A, 0x00001002,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000006, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x00013124,
++ 0x0EF, 0x00000100,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3EB,
++ 0x034, 0x0004938B,
++ 0x034, 0x000481AC,
++ 0x034, 0x000471A9,
++ 0x034, 0x000460AC,
++ 0x034, 0x000450A9,
++ 0x034, 0x0004402E,
++ 0x034, 0x0004302B,
++ 0x034, 0x00042028,
++ 0x034, 0x0004100B,
++ 0x034, 0x00040008,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3F4,
++ 0x034, 0x000493D2,
++ 0x034, 0x000482D1,
++ 0x034, 0x000471F1,
++ 0x034, 0x000461EE,
++ 0x034, 0x000451EB,
++ 0x034, 0x000441E8,
++ 0x034, 0x0004314B,
++ 0x034, 0x00042148,
++ 0x034, 0x0004104B,
++ 0x034, 0x00040048,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004AFF7,
++ 0x034, 0x00049FF6,
++ 0x034, 0x00048FF3,
++ 0x034, 0x00047FF0,
++ 0x034, 0x00046FED,
++ 0x034, 0x00045FEA,
++ 0x034, 0x00044FE7,
++ 0x034, 0x00043CB1,
++ 0x034, 0x00042CAE,
++ 0x034, 0x00041CAB,
++ 0x034, 0x00040CA8,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0004A3AD,
++ 0x034, 0x0004938A,
++ 0x034, 0x0004818C,
++ 0x034, 0x00047189,
++ 0x034, 0x0004606D,
++ 0x034, 0x0004506A,
++ 0x034, 0x0004402C,
++ 0x034, 0x00043029,
++ 0x034, 0x00042026,
++ 0x034, 0x00041009,
++ 0x034, 0x00040006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0004AFF4,
++ 0x034, 0x00049FF1,
++ 0x034, 0x00048FEE,
++ 0x034, 0x00047FEB,
++ 0x034, 0x00046FE8,
++ 0x034, 0x00045DEA,
++ 0x034, 0x00044CED,
++ 0x034, 0x00043CEA,
++ 0x034, 0x00042C6C,
++ 0x034, 0x00041C69,
++ 0x034, 0x00040C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3EE,
++ 0x034, 0x000293EB,
++ 0x034, 0x0002838B,
++ 0x034, 0x000271AC,
++ 0x034, 0x000261A9,
++ 0x034, 0x000250AC,
++ 0x034, 0x000240A9,
++ 0x034, 0x000230A6,
++ 0x034, 0x0002202C,
++ 0x034, 0x00021029,
++ 0x034, 0x00020026,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3F5,
++ 0x034, 0x000293D2,
++ 0x034, 0x000283CE,
++ 0x034, 0x00027290,
++ 0x034, 0x0002628D,
++ 0x034, 0x0002528A,
++ 0x034, 0x00024287,
++ 0x034, 0x0002308D,
++ 0x034, 0x0002208A,
++ 0x034, 0x00021087,
++ 0x034, 0x00020048,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002AFF7,
++ 0x034, 0x00029FF6,
++ 0x034, 0x00028FF3,
++ 0x034, 0x00027FF0,
++ 0x034, 0x00026FED,
++ 0x034, 0x00025FEA,
++ 0x034, 0x00024FE7,
++ 0x034, 0x00023DEA,
++ 0x034, 0x00022DE7,
++ 0x034, 0x00021DE4,
++ 0x034, 0x00020D48,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0002A3AD,
++ 0x034, 0x0002938A,
++ 0x034, 0x0002818C,
++ 0x034, 0x00027189,
++ 0x034, 0x0002606D,
++ 0x034, 0x0002504C,
++ 0x034, 0x0002402C,
++ 0x034, 0x00023029,
++ 0x034, 0x00022026,
++ 0x034, 0x00021023,
++ 0x034, 0x00020006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0002AFF4,
++ 0x034, 0x00029FF1,
++ 0x034, 0x00028FEE,
++ 0x034, 0x00027FEB,
++ 0x034, 0x00026FE8,
++ 0x034, 0x00025DEA,
++ 0x034, 0x00024CED,
++ 0x034, 0x00023CEA,
++ 0x034, 0x00022C6C,
++ 0x034, 0x00021C69,
++ 0x034, 0x00020C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EF,
++ 0x034, 0x000093EC,
++ 0x034, 0x0000838C,
++ 0x034, 0x000071AD,
++ 0x034, 0x000061AA,
++ 0x034, 0x000050AD,
++ 0x034, 0x000040AA,
++ 0x034, 0x0000306A,
++ 0x034, 0x0000202D,
++ 0x034, 0x0000102A,
++ 0x034, 0x00000027,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3F1,
++ 0x034, 0x000092B1,
++ 0x034, 0x000081CF,
++ 0x034, 0x00007170,
++ 0x034, 0x0000616D,
++ 0x034, 0x0000516A,
++ 0x034, 0x00004167,
++ 0x034, 0x0000302F,
++ 0x034, 0x0000202C,
++ 0x034, 0x00001029,
++ 0x034, 0x00000026,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000AFF7,
++ 0x034, 0x00009FF6,
++ 0x034, 0x00008FF3,
++ 0x034, 0x00007FF0,
++ 0x034, 0x00006FED,
++ 0x034, 0x00005FEA,
++ 0x034, 0x00004FE7,
++ 0x034, 0x00003EC7,
++ 0x034, 0x00002EC4,
++ 0x034, 0x00001D4B,
++ 0x034, 0x00000D48,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0000A3EE,
++ 0x034, 0x000093AC,
++ 0x034, 0x0000838A,
++ 0x034, 0x0000718C,
++ 0x034, 0x00006189,
++ 0x034, 0x0000506D,
++ 0x034, 0x0000406A,
++ 0x034, 0x0000302C,
++ 0x034, 0x00002029,
++ 0x034, 0x00001026,
++ 0x034, 0x00000023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0000AFF4,
++ 0x034, 0x00009FF1,
++ 0x034, 0x00008FEE,
++ 0x034, 0x00007FEB,
++ 0x034, 0x00006FE8,
++ 0x034, 0x00005DEA,
++ 0x034, 0x00004CED,
++ 0x034, 0x00003CEA,
++ 0x034, 0x00002C6C,
++ 0x034, 0x00001C69,
++ 0x034, 0x00000C2B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3EB,
++ 0x034, 0x000C938B,
++ 0x034, 0x000C81AC,
++ 0x034, 0x000C71A9,
++ 0x034, 0x000C60AC,
++ 0x034, 0x000C50A9,
++ 0x034, 0x000C402E,
++ 0x034, 0x000C302B,
++ 0x034, 0x000C2028,
++ 0x034, 0x000C100B,
++ 0x034, 0x000C0008,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3F4,
++ 0x034, 0x000C93D2,
++ 0x034, 0x000C82D1,
++ 0x034, 0x000C71F1,
++ 0x034, 0x000C61EE,
++ 0x034, 0x000C51EB,
++ 0x034, 0x000C41E8,
++ 0x034, 0x000C314B,
++ 0x034, 0x000C2148,
++ 0x034, 0x000C104B,
++ 0x034, 0x000C0048,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CAFF7,
++ 0x034, 0x000C9FF6,
++ 0x034, 0x000C8FF3,
++ 0x034, 0x000C7FF0,
++ 0x034, 0x000C6FED,
++ 0x034, 0x000C5FEA,
++ 0x034, 0x000C4FE7,
++ 0x034, 0x000C3CB1,
++ 0x034, 0x000C2CAE,
++ 0x034, 0x000C1CAB,
++ 0x034, 0x000C0CA8,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000CA3AD,
++ 0x034, 0x000C938A,
++ 0x034, 0x000C818C,
++ 0x034, 0x000C7189,
++ 0x034, 0x000C606D,
++ 0x034, 0x000C506A,
++ 0x034, 0x000C402C,
++ 0x034, 0x000C3029,
++ 0x034, 0x000C2026,
++ 0x034, 0x000C1009,
++ 0x034, 0x000C0006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000CA794,
++ 0x034, 0x000C9791,
++ 0x034, 0x000C878E,
++ 0x034, 0x000C778B,
++ 0x034, 0x000C658D,
++ 0x034, 0x000C558A,
++ 0x034, 0x000C448D,
++ 0x034, 0x000C348A,
++ 0x034, 0x000C244C,
++ 0x034, 0x000C1449,
++ 0x034, 0x000C042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3EE,
++ 0x034, 0x000A93EB,
++ 0x034, 0x000A838B,
++ 0x034, 0x000A71AC,
++ 0x034, 0x000A61A9,
++ 0x034, 0x000A50AC,
++ 0x034, 0x000A40A9,
++ 0x034, 0x000A30A6,
++ 0x034, 0x000A202C,
++ 0x034, 0x000A1029,
++ 0x034, 0x000A0026,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3F5,
++ 0x034, 0x000A93D2,
++ 0x034, 0x000A83CE,
++ 0x034, 0x000A7290,
++ 0x034, 0x000A628D,
++ 0x034, 0x000A528A,
++ 0x034, 0x000A4287,
++ 0x034, 0x000A308D,
++ 0x034, 0x000A208A,
++ 0x034, 0x000A1087,
++ 0x034, 0x000A0048,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AAFF7,
++ 0x034, 0x000A9FF6,
++ 0x034, 0x000A8FF3,
++ 0x034, 0x000A7FF0,
++ 0x034, 0x000A6FED,
++ 0x034, 0x000A5FEA,
++ 0x034, 0x000A4FE7,
++ 0x034, 0x000A3DEA,
++ 0x034, 0x000A2DE7,
++ 0x034, 0x000A1DE4,
++ 0x034, 0x000A0D48,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x000AA3AD,
++ 0x034, 0x000A938A,
++ 0x034, 0x000A818C,
++ 0x034, 0x000A7189,
++ 0x034, 0x000A606D,
++ 0x034, 0x000A504C,
++ 0x034, 0x000A402C,
++ 0x034, 0x000A3029,
++ 0x034, 0x000A2026,
++ 0x034, 0x000A1023,
++ 0x034, 0x000A0006,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x000AA794,
++ 0x034, 0x000A9791,
++ 0x034, 0x000A878E,
++ 0x034, 0x000A778B,
++ 0x034, 0x000A658D,
++ 0x034, 0x000A558A,
++ 0x034, 0x000A448D,
++ 0x034, 0x000A348A,
++ 0x034, 0x000A244C,
++ 0x034, 0x000A1449,
++ 0x034, 0x000A042B,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EF,
++ 0x034, 0x000893EC,
++ 0x034, 0x0008838C,
++ 0x034, 0x000871AD,
++ 0x034, 0x000861AA,
++ 0x034, 0x000850AD,
++ 0x034, 0x000840AA,
++ 0x034, 0x0008306A,
++ 0x034, 0x0008202D,
++ 0x034, 0x0008102A,
++ 0x034, 0x00080027,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3F1,
++ 0x034, 0x000892B1,
++ 0x034, 0x000881CF,
++ 0x034, 0x00087170,
++ 0x034, 0x0008616D,
++ 0x034, 0x0008516A,
++ 0x034, 0x00084167,
++ 0x034, 0x0008302F,
++ 0x034, 0x0008202C,
++ 0x034, 0x00081029,
++ 0x034, 0x00080026,
++ 0x90000009, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008AFF7,
++ 0x034, 0x00089FF6,
++ 0x034, 0x00088FF3,
++ 0x034, 0x00087FF0,
++ 0x034, 0x00086FED,
++ 0x034, 0x00085FEA,
++ 0x034, 0x00084FE7,
++ 0x034, 0x00083EC7,
++ 0x034, 0x00082EC4,
++ 0x034, 0x00081D4B,
++ 0x034, 0x00080D48,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x034, 0x0008A3EE,
++ 0x034, 0x000893AC,
++ 0x034, 0x0008838A,
++ 0x034, 0x0008718C,
++ 0x034, 0x00086189,
++ 0x034, 0x0008506D,
++ 0x034, 0x0008406A,
++ 0x034, 0x0008302C,
++ 0x034, 0x00082029,
++ 0x034, 0x00081026,
++ 0x034, 0x00080023,
++ 0xA0000000, 0x00000000,
++ 0x034, 0x0008A794,
++ 0x034, 0x00089791,
++ 0x034, 0x0008878E,
++ 0x034, 0x0008778B,
++ 0x034, 0x0008658D,
++ 0x034, 0x0008558A,
++ 0x034, 0x0008448D,
++ 0x034, 0x0008348A,
++ 0x034, 0x0008244C,
++ 0x034, 0x00081449,
++ 0x034, 0x0008042B,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000040,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x035, 0x000006CC,
++ 0x035, 0x000086CC,
++ 0x035, 0x000106CC,
++ 0x035, 0x000206CC,
++ 0x035, 0x000286CC,
++ 0x035, 0x000306CC,
++ 0x035, 0x000406CC,
++ 0x035, 0x000486CC,
++ 0x035, 0x000506CC,
++ 0x035, 0x000806CC,
++ 0x035, 0x000886CC,
++ 0x035, 0x000906CC,
++ 0x035, 0x000A06CC,
++ 0x035, 0x000A86CC,
++ 0x035, 0x000B06CC,
++ 0x035, 0x000C06CC,
++ 0x035, 0x000C86CC,
++ 0x035, 0x000D06CC,
++ 0xA0000000, 0x00000000,
++ 0x035, 0x00000484,
++ 0x035, 0x00008484,
++ 0x035, 0x00010484,
++ 0x035, 0x00020584,
++ 0x035, 0x00028584,
++ 0x035, 0x00030584,
++ 0x035, 0x00040584,
++ 0x035, 0x00048584,
++ 0x035, 0x00050584,
++ 0x035, 0x000805FB,
++ 0x035, 0x000885FB,
++ 0x035, 0x000905FB,
++ 0x035, 0x000A05FB,
++ 0x035, 0x000A85FB,
++ 0x035, 0x000B05FB,
++ 0x035, 0x000C05FB,
++ 0x035, 0x000C85FB,
++ 0x035, 0x000D05FB,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x0DF, 0x00000001,
++ 0xA0000000, 0x00000000,
++ 0x0DF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x018, 0x0001712A,
++ 0x0EF, 0x00000010,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000473,
++ 0x036, 0x00008473,
++ 0x036, 0x00010473,
++ 0x036, 0x00020473,
++ 0x036, 0x00028473,
++ 0x036, 0x00030473,
++ 0x036, 0x00040473,
++ 0x036, 0x00048473,
++ 0x036, 0x00050473,
++ 0x036, 0x00080473,
++ 0x036, 0x00088473,
++ 0x036, 0x00090473,
++ 0x036, 0x000A0473,
++ 0x036, 0x000A8473,
++ 0x036, 0x000B0473,
++ 0x036, 0x000C0473,
++ 0x036, 0x000C8473,
++ 0x036, 0x000D0473,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x036, 0x00000475,
++ 0x036, 0x00008475,
++ 0x036, 0x00010475,
++ 0x036, 0x00020475,
++ 0x036, 0x00028475,
++ 0x036, 0x00030475,
++ 0x036, 0x00040475,
++ 0x036, 0x00048475,
++ 0x036, 0x00050475,
++ 0x036, 0x00080475,
++ 0x036, 0x00088475,
++ 0x036, 0x00090475,
++ 0x036, 0x000A0475,
++ 0x036, 0x000A8475,
++ 0x036, 0x000B0475,
++ 0x036, 0x000C0475,
++ 0x036, 0x000C8475,
++ 0x036, 0x000D0475,
++ 0xA0000000, 0x00000000,
++ 0x036, 0x00000474,
++ 0x036, 0x00008474,
++ 0x036, 0x00010474,
++ 0x036, 0x00020474,
++ 0x036, 0x00028474,
++ 0x036, 0x00030474,
++ 0x036, 0x00040474,
++ 0x036, 0x00048474,
++ 0x036, 0x00050474,
++ 0x036, 0x00080474,
++ 0x036, 0x00088474,
++ 0x036, 0x00090474,
++ 0x036, 0x000A0474,
++ 0x036, 0x000A8474,
++ 0x036, 0x000B0474,
++ 0x036, 0x000C0474,
++ 0x036, 0x000C8474,
++ 0x036, 0x000D0474,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x0EF, 0x00000004,
++ 0x037, 0x00000000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00004000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00008000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00010000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00014000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00018000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0001C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00020000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00024000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00028000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0002C000,
++ 0x038, 0x0000714E,
++ 0x037, 0x00030000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00034000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00038000,
++ 0x038, 0x0000514E,
++ 0x037, 0x0003C000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00040000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00044000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00048000,
++ 0x038, 0x0000514E,
++ 0x037, 0x00080000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00084000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00088000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00090000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00094000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x00098000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x0009C000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000A8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000AC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000B8000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000BC000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C0000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C4000,
++ 0x038, 0x00005ECE,
++ 0x037, 0x000C8000,
++ 0x038, 0x00005ECE,
++ 0x0EF, 0x00000000,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000008,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000007D,
++ 0x03C, 0x0000047D,
++ 0x03C, 0x0000087D,
++ 0x03C, 0x0000107D,
++ 0x03C, 0x0000147D,
++ 0x03C, 0x0000187D,
++ 0xB0000000, 0x00000000,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x00000275,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x00001275,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x00002275,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x03C, 0x0000027F,
++ 0x03C, 0x00000542,
++ 0x03C, 0x00000821,
++ 0x03C, 0x0000127F,
++ 0x03C, 0x00001542,
++ 0x03C, 0x00001821,
++ 0x03C, 0x0000227F,
++ 0x03C, 0x00002542,
++ 0x03C, 0x00002821,
++ 0xA0000000, 0x00000000,
++ 0x03C, 0x0000037E,
++ 0x03C, 0x00000575,
++ 0x03C, 0x00000971,
++ 0x03C, 0x0000127E,
++ 0x03C, 0x00001575,
++ 0x03C, 0x00001871,
++ 0x03C, 0x0000217E,
++ 0x03C, 0x00002575,
++ 0x03C, 0x00002871,
++ 0xB0000000, 0x00000000,
++ 0x0EF, 0x00000000,
++ 0x061, 0x000C0D47,
++ 0x062, 0x0000133C,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x063, 0x000750E7,
++ 0xA0000000, 0x00000000,
++ 0x063, 0x0007D0E7,
++ 0xB0000000, 0x00000000,
++ 0x064, 0x00014FEC,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0x065, 0x000920D0,
++ 0xA0000000, 0x00000000,
++ 0x065, 0x000923FF,
++ 0xB0000000, 0x00000000,
++ 0x066, 0x00000040,
++ 0x057, 0x00050000,
++ 0x056, 0x00051DF0,
++ 0x80000001, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000002, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000003, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000004, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000005, 0x00000000, 0x40000000, 0x00000000,
++ 0x90000008, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000a, 0x00000000, 0x40000000, 0x00000000,
++ 0x9000000b, 0x00000000, 0x40000000, 0x00000000,
++ 0xA0000000, 0x00000000,
++ 0x055, 0x00082060,
++ 0xB0000000, 0x00000000,
++};
++
++RTW_DECL_TABLE_RF_RADIO(rtw8814a_rf_d, D);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt[] = {
++ { 0, 0, 0, 0, 1, 36, },
++ { 2, 0, 0, 0, 1, 32, },
++ { 1, 0, 0, 0, 1, 32, },
++ { 0, 0, 0, 0, 2, 36, },
++ { 2, 0, 0, 0, 2, 32, },
++ { 1, 0, 0, 0, 2, 32, },
++ { 0, 0, 0, 0, 3, 36, },
++ { 2, 0, 0, 0, 3, 32, },
++ { 1, 0, 0, 0, 3, 32, },
++ { 0, 0, 0, 0, 4, 36, },
++ { 2, 0, 0, 0, 4, 32, },
++ { 1, 0, 0, 0, 4, 32, },
++ { 0, 0, 0, 0, 5, 36, },
++ { 2, 0, 0, 0, 5, 32, },
++ { 1, 0, 0, 0, 5, 32, },
++ { 0, 0, 0, 0, 6, 36, },
++ { 2, 0, 0, 0, 6, 32, },
++ { 1, 0, 0, 0, 6, 32, },
++ { 0, 0, 0, 0, 7, 36, },
++ { 2, 0, 0, 0, 7, 32, },
++ { 1, 0, 0, 0, 7, 32, },
++ { 0, 0, 0, 0, 8, 36, },
++ { 2, 0, 0, 0, 8, 32, },
++ { 1, 0, 0, 0, 8, 32, },
++ { 0, 0, 0, 0, 9, 36, },
++ { 2, 0, 0, 0, 9, 32, },
++ { 1, 0, 0, 0, 9, 32, },
++ { 0, 0, 0, 0, 10, 36, },
++ { 2, 0, 0, 0, 10, 32, },
++ { 1, 0, 0, 0, 10, 32, },
++ { 0, 0, 0, 0, 11, 36, },
++ { 2, 0, 0, 0, 11, 32, },
++ { 1, 0, 0, 0, 11, 32, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 32, },
++ { 1, 0, 0, 0, 12, 32, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 32, },
++ { 1, 0, 0, 0, 13, 32, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 32, },
++ { 0, 0, 0, 1, 1, 34, },
++ { 2, 0, 0, 1, 1, 32, },
++ { 1, 0, 0, 1, 1, 32, },
++ { 0, 0, 0, 1, 2, 36, },
++ { 2, 0, 0, 1, 2, 32, },
++ { 1, 0, 0, 1, 2, 32, },
++ { 0, 0, 0, 1, 3, 36, },
++ { 2, 0, 0, 1, 3, 32, },
++ { 1, 0, 0, 1, 3, 32, },
++ { 0, 0, 0, 1, 4, 36, },
++ { 2, 0, 0, 1, 4, 32, },
++ { 1, 0, 0, 1, 4, 32, },
++ { 0, 0, 0, 1, 5, 36, },
++ { 2, 0, 0, 1, 5, 32, },
++ { 1, 0, 0, 1, 5, 32, },
++ { 0, 0, 0, 1, 6, 36, },
++ { 2, 0, 0, 1, 6, 32, },
++ { 1, 0, 0, 1, 6, 32, },
++ { 0, 0, 0, 1, 7, 36, },
++ { 2, 0, 0, 1, 7, 32, },
++ { 1, 0, 0, 1, 7, 32, },
++ { 0, 0, 0, 1, 8, 36, },
++ { 2, 0, 0, 1, 8, 32, },
++ { 1, 0, 0, 1, 8, 32, },
++ { 0, 0, 0, 1, 9, 36, },
++ { 2, 0, 0, 1, 9, 32, },
++ { 1, 0, 0, 1, 9, 32, },
++ { 0, 0, 0, 1, 10, 36, },
++ { 2, 0, 0, 1, 10, 32, },
++ { 1, 0, 0, 1, 10, 32, },
++ { 0, 0, 0, 1, 11, 32, },
++ { 2, 0, 0, 1, 11, 32, },
++ { 1, 0, 0, 1, 11, 32, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 32, },
++ { 1, 0, 0, 1, 12, 32, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 32, },
++ { 1, 0, 0, 1, 13, 32, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 34, },
++ { 2, 0, 0, 2, 1, 32, },
++ { 1, 0, 0, 2, 1, 32, },
++ { 0, 0, 0, 2, 2, 36, },
++ { 2, 0, 0, 2, 2, 32, },
++ { 1, 0, 0, 2, 2, 32, },
++ { 0, 0, 0, 2, 3, 36, },
++ { 2, 0, 0, 2, 3, 32, },
++ { 1, 0, 0, 2, 3, 32, },
++ { 0, 0, 0, 2, 4, 36, },
++ { 2, 0, 0, 2, 4, 32, },
++ { 1, 0, 0, 2, 4, 32, },
++ { 0, 0, 0, 2, 5, 36, },
++ { 2, 0, 0, 2, 5, 32, },
++ { 1, 0, 0, 2, 5, 32, },
++ { 0, 0, 0, 2, 6, 36, },
++ { 2, 0, 0, 2, 6, 32, },
++ { 1, 0, 0, 2, 6, 32, },
++ { 0, 0, 0, 2, 7, 36, },
++ { 2, 0, 0, 2, 7, 32, },
++ { 1, 0, 0, 2, 7, 32, },
++ { 0, 0, 0, 2, 8, 36, },
++ { 2, 0, 0, 2, 8, 32, },
++ { 1, 0, 0, 2, 8, 32, },
++ { 0, 0, 0, 2, 9, 36, },
++ { 2, 0, 0, 2, 9, 32, },
++ { 1, 0, 0, 2, 9, 32, },
++ { 0, 0, 0, 2, 10, 36, },
++ { 2, 0, 0, 2, 10, 32, },
++ { 1, 0, 0, 2, 10, 32, },
++ { 0, 0, 0, 2, 11, 32, },
++ { 2, 0, 0, 2, 11, 32, },
++ { 1, 0, 0, 2, 11, 32, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 32, },
++ { 1, 0, 0, 2, 12, 32, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 32, },
++ { 1, 0, 0, 2, 13, 32, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 32, },
++ { 2, 0, 0, 3, 1, 30, },
++ { 1, 0, 0, 3, 1, 30, },
++ { 0, 0, 0, 3, 2, 34, },
++ { 2, 0, 0, 3, 2, 30, },
++ { 1, 0, 0, 3, 2, 30, },
++ { 0, 0, 0, 3, 3, 34, },
++ { 2, 0, 0, 3, 3, 30, },
++ { 1, 0, 0, 3, 3, 30, },
++ { 0, 0, 0, 3, 4, 34, },
++ { 2, 0, 0, 3, 4, 30, },
++ { 1, 0, 0, 3, 4, 30, },
++ { 0, 0, 0, 3, 5, 34, },
++ { 2, 0, 0, 3, 5, 30, },
++ { 1, 0, 0, 3, 5, 30, },
++ { 0, 0, 0, 3, 6, 34, },
++ { 2, 0, 0, 3, 6, 30, },
++ { 1, 0, 0, 3, 6, 30, },
++ { 0, 0, 0, 3, 7, 34, },
++ { 2, 0, 0, 3, 7, 30, },
++ { 1, 0, 0, 3, 7, 30, },
++ { 0, 0, 0, 3, 8, 34, },
++ { 2, 0, 0, 3, 8, 30, },
++ { 1, 0, 0, 3, 8, 30, },
++ { 0, 0, 0, 3, 9, 34, },
++ { 2, 0, 0, 3, 9, 30, },
++ { 1, 0, 0, 3, 9, 30, },
++ { 0, 0, 0, 3, 10, 34, },
++ { 2, 0, 0, 3, 10, 30, },
++ { 1, 0, 0, 3, 10, 30, },
++ { 0, 0, 0, 3, 11, 30, },
++ { 2, 0, 0, 3, 11, 30, },
++ { 1, 0, 0, 3, 11, 30, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 30, },
++ { 1, 0, 0, 3, 12, 30, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 30, },
++ { 1, 0, 0, 3, 13, 30, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 30, },
++ { 2, 0, 0, 6, 1, 28, },
++ { 1, 0, 0, 6, 1, 28, },
++ { 0, 0, 0, 6, 2, 32, },
++ { 2, 0, 0, 6, 2, 28, },
++ { 1, 0, 0, 6, 2, 28, },
++ { 0, 0, 0, 6, 3, 32, },
++ { 2, 0, 0, 6, 3, 28, },
++ { 1, 0, 0, 6, 3, 28, },
++ { 0, 0, 0, 6, 4, 32, },
++ { 2, 0, 0, 6, 4, 28, },
++ { 1, 0, 0, 6, 4, 28, },
++ { 0, 0, 0, 6, 5, 32, },
++ { 2, 0, 0, 6, 5, 28, },
++ { 1, 0, 0, 6, 5, 28, },
++ { 0, 0, 0, 6, 6, 32, },
++ { 2, 0, 0, 6, 6, 28, },
++ { 1, 0, 0, 6, 6, 28, },
++ { 0, 0, 0, 6, 7, 32, },
++ { 2, 0, 0, 6, 7, 28, },
++ { 1, 0, 0, 6, 7, 28, },
++ { 0, 0, 0, 6, 8, 32, },
++ { 2, 0, 0, 6, 8, 28, },
++ { 1, 0, 0, 6, 8, 28, },
++ { 0, 0, 0, 6, 9, 32, },
++ { 2, 0, 0, 6, 9, 28, },
++ { 1, 0, 0, 6, 9, 28, },
++ { 0, 0, 0, 6, 10, 32, },
++ { 2, 0, 0, 6, 10, 28, },
++ { 1, 0, 0, 6, 10, 28, },
++ { 0, 0, 0, 6, 11, 28, },
++ { 2, 0, 0, 6, 11, 28, },
++ { 1, 0, 0, 6, 11, 28, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 28, },
++ { 1, 0, 0, 6, 12, 28, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 28, },
++ { 1, 0, 0, 6, 13, 28, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 28, },
++ { 2, 0, 0, 7, 1, 26, },
++ { 1, 0, 0, 7, 1, 26, },
++ { 0, 0, 0, 7, 2, 30, },
++ { 2, 0, 0, 7, 2, 26, },
++ { 1, 0, 0, 7, 2, 26, },
++ { 0, 0, 0, 7, 3, 30, },
++ { 2, 0, 0, 7, 3, 26, },
++ { 1, 0, 0, 7, 3, 26, },
++ { 0, 0, 0, 7, 4, 30, },
++ { 2, 0, 0, 7, 4, 26, },
++ { 1, 0, 0, 7, 4, 26, },
++ { 0, 0, 0, 7, 5, 30, },
++ { 2, 0, 0, 7, 5, 26, },
++ { 1, 0, 0, 7, 5, 26, },
++ { 0, 0, 0, 7, 6, 30, },
++ { 2, 0, 0, 7, 6, 26, },
++ { 1, 0, 0, 7, 6, 26, },
++ { 0, 0, 0, 7, 7, 30, },
++ { 2, 0, 0, 7, 7, 26, },
++ { 1, 0, 0, 7, 7, 26, },
++ { 0, 0, 0, 7, 8, 30, },
++ { 2, 0, 0, 7, 8, 26, },
++ { 1, 0, 0, 7, 8, 26, },
++ { 0, 0, 0, 7, 9, 30, },
++ { 2, 0, 0, 7, 9, 26, },
++ { 1, 0, 0, 7, 9, 26, },
++ { 0, 0, 0, 7, 10, 30, },
++ { 2, 0, 0, 7, 10, 26, },
++ { 1, 0, 0, 7, 10, 26, },
++ { 0, 0, 0, 7, 11, 26, },
++ { 2, 0, 0, 7, 11, 26, },
++ { 1, 0, 0, 7, 11, 26, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 26, },
++ { 1, 0, 0, 7, 12, 26, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 26, },
++ { 1, 0, 0, 7, 13, 26, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 32, },
++ { 2, 0, 1, 2, 3, 32, },
++ { 1, 0, 1, 2, 3, 32, },
++ { 0, 0, 1, 2, 4, 36, },
++ { 2, 0, 1, 2, 4, 32, },
++ { 1, 0, 1, 2, 4, 32, },
++ { 0, 0, 1, 2, 5, 36, },
++ { 2, 0, 1, 2, 5, 32, },
++ { 1, 0, 1, 2, 5, 32, },
++ { 0, 0, 1, 2, 6, 36, },
++ { 2, 0, 1, 2, 6, 32, },
++ { 1, 0, 1, 2, 6, 32, },
++ { 0, 0, 1, 2, 7, 36, },
++ { 2, 0, 1, 2, 7, 32, },
++ { 1, 0, 1, 2, 7, 32, },
++ { 0, 0, 1, 2, 8, 36, },
++ { 2, 0, 1, 2, 8, 32, },
++ { 1, 0, 1, 2, 8, 32, },
++ { 0, 0, 1, 2, 9, 36, },
++ { 2, 0, 1, 2, 9, 32, },
++ { 1, 0, 1, 2, 9, 32, },
++ { 0, 0, 1, 2, 10, 36, },
++ { 2, 0, 1, 2, 10, 32, },
++ { 1, 0, 1, 2, 10, 32, },
++ { 0, 0, 1, 2, 11, 32, },
++ { 2, 0, 1, 2, 11, 32, },
++ { 1, 0, 1, 2, 11, 32, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 32, },
++ { 1, 0, 1, 2, 12, 32, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 32, },
++ { 1, 0, 1, 2, 13, 32, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 30, },
++ { 2, 0, 1, 3, 3, 30, },
++ { 1, 0, 1, 3, 3, 30, },
++ { 0, 0, 1, 3, 4, 34, },
++ { 2, 0, 1, 3, 4, 30, },
++ { 1, 0, 1, 3, 4, 30, },
++ { 0, 0, 1, 3, 5, 34, },
++ { 2, 0, 1, 3, 5, 30, },
++ { 1, 0, 1, 3, 5, 30, },
++ { 0, 0, 1, 3, 6, 34, },
++ { 2, 0, 1, 3, 6, 30, },
++ { 1, 0, 1, 3, 6, 30, },
++ { 0, 0, 1, 3, 7, 34, },
++ { 2, 0, 1, 3, 7, 30, },
++ { 1, 0, 1, 3, 7, 30, },
++ { 0, 0, 1, 3, 8, 34, },
++ { 2, 0, 1, 3, 8, 30, },
++ { 1, 0, 1, 3, 8, 30, },
++ { 0, 0, 1, 3, 9, 34, },
++ { 2, 0, 1, 3, 9, 30, },
++ { 1, 0, 1, 3, 9, 30, },
++ { 0, 0, 1, 3, 10, 34, },
++ { 2, 0, 1, 3, 10, 30, },
++ { 1, 0, 1, 3, 10, 30, },
++ { 0, 0, 1, 3, 11, 30, },
++ { 2, 0, 1, 3, 11, 30, },
++ { 1, 0, 1, 3, 11, 30, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 30, },
++ { 1, 0, 1, 3, 12, 30, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 30, },
++ { 1, 0, 1, 3, 13, 30, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 28, },
++ { 2, 0, 1, 6, 3, 28, },
++ { 1, 0, 1, 6, 3, 28, },
++ { 0, 0, 1, 6, 4, 32, },
++ { 2, 0, 1, 6, 4, 28, },
++ { 1, 0, 1, 6, 4, 28, },
++ { 0, 0, 1, 6, 5, 32, },
++ { 2, 0, 1, 6, 5, 28, },
++ { 1, 0, 1, 6, 5, 28, },
++ { 0, 0, 1, 6, 6, 32, },
++ { 2, 0, 1, 6, 6, 28, },
++ { 1, 0, 1, 6, 6, 28, },
++ { 0, 0, 1, 6, 7, 32, },
++ { 2, 0, 1, 6, 7, 28, },
++ { 1, 0, 1, 6, 7, 28, },
++ { 0, 0, 1, 6, 8, 32, },
++ { 2, 0, 1, 6, 8, 28, },
++ { 1, 0, 1, 6, 8, 28, },
++ { 0, 0, 1, 6, 9, 32, },
++ { 2, 0, 1, 6, 9, 28, },
++ { 1, 0, 1, 6, 9, 28, },
++ { 0, 0, 1, 6, 10, 32, },
++ { 2, 0, 1, 6, 10, 28, },
++ { 1, 0, 1, 6, 10, 28, },
++ { 0, 0, 1, 6, 11, 28, },
++ { 2, 0, 1, 6, 11, 28, },
++ { 1, 0, 1, 6, 11, 28, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 28, },
++ { 1, 0, 1, 6, 12, 28, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 28, },
++ { 1, 0, 1, 6, 13, 28, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 26, },
++ { 2, 0, 1, 7, 3, 26, },
++ { 1, 0, 1, 7, 3, 26, },
++ { 0, 0, 1, 7, 4, 30, },
++ { 2, 0, 1, 7, 4, 26, },
++ { 1, 0, 1, 7, 4, 26, },
++ { 0, 0, 1, 7, 5, 30, },
++ { 2, 0, 1, 7, 5, 26, },
++ { 1, 0, 1, 7, 5, 26, },
++ { 0, 0, 1, 7, 6, 30, },
++ { 2, 0, 1, 7, 6, 26, },
++ { 1, 0, 1, 7, 6, 26, },
++ { 0, 0, 1, 7, 7, 30, },
++ { 2, 0, 1, 7, 7, 26, },
++ { 1, 0, 1, 7, 7, 26, },
++ { 0, 0, 1, 7, 8, 30, },
++ { 2, 0, 1, 7, 8, 26, },
++ { 1, 0, 1, 7, 8, 26, },
++ { 0, 0, 1, 7, 9, 30, },
++ { 2, 0, 1, 7, 9, 26, },
++ { 1, 0, 1, 7, 9, 26, },
++ { 0, 0, 1, 7, 10, 30, },
++ { 2, 0, 1, 7, 10, 26, },
++ { 1, 0, 1, 7, 10, 26, },
++ { 0, 0, 1, 7, 11, 26, },
++ { 2, 0, 1, 7, 11, 26, },
++ { 1, 0, 1, 7, 11, 26, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 26, },
++ { 1, 0, 1, 7, 12, 26, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 26, },
++ { 1, 0, 1, 7, 13, 26, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 30, },
++ { 2, 1, 0, 1, 36, 32, },
++ { 1, 1, 0, 1, 36, 32, },
++ { 0, 1, 0, 1, 40, 30, },
++ { 2, 1, 0, 1, 40, 32, },
++ { 1, 1, 0, 1, 40, 32, },
++ { 0, 1, 0, 1, 44, 30, },
++ { 2, 1, 0, 1, 44, 32, },
++ { 1, 1, 0, 1, 44, 32, },
++ { 0, 1, 0, 1, 48, 30, },
++ { 2, 1, 0, 1, 48, 32, },
++ { 1, 1, 0, 1, 48, 32, },
++ { 0, 1, 0, 1, 52, 36, },
++ { 2, 1, 0, 1, 52, 32, },
++ { 1, 1, 0, 1, 52, 32, },
++ { 0, 1, 0, 1, 56, 34, },
++ { 2, 1, 0, 1, 56, 32, },
++ { 1, 1, 0, 1, 56, 32, },
++ { 0, 1, 0, 1, 60, 32, },
++ { 2, 1, 0, 1, 60, 32, },
++ { 1, 1, 0, 1, 60, 32, },
++ { 0, 1, 0, 1, 64, 28, },
++ { 2, 1, 0, 1, 64, 32, },
++ { 1, 1, 0, 1, 64, 32, },
++ { 0, 1, 0, 1, 100, 30, },
++ { 2, 1, 0, 1, 100, 32, },
++ { 1, 1, 0, 1, 100, 32, },
++ { 0, 1, 0, 1, 104, 30, },
++ { 2, 1, 0, 1, 104, 32, },
++ { 1, 1, 0, 1, 104, 32, },
++ { 0, 1, 0, 1, 108, 32, },
++ { 2, 1, 0, 1, 108, 32, },
++ { 1, 1, 0, 1, 108, 32, },
++ { 0, 1, 0, 1, 112, 34, },
++ { 2, 1, 0, 1, 112, 32, },
++ { 1, 1, 0, 1, 112, 32, },
++ { 0, 1, 0, 1, 116, 34, },
++ { 2, 1, 0, 1, 116, 32, },
++ { 1, 1, 0, 1, 116, 32, },
++ { 0, 1, 0, 1, 120, 36, },
++ { 2, 1, 0, 1, 120, 32, },
++ { 1, 1, 0, 1, 120, 32, },
++ { 0, 1, 0, 1, 124, 34, },
++ { 2, 1, 0, 1, 124, 32, },
++ { 1, 1, 0, 1, 124, 32, },
++ { 0, 1, 0, 1, 128, 32, },
++ { 2, 1, 0, 1, 128, 32, },
++ { 1, 1, 0, 1, 128, 32, },
++ { 0, 1, 0, 1, 132, 30, },
++ { 2, 1, 0, 1, 132, 32, },
++ { 1, 1, 0, 1, 132, 32, },
++ { 0, 1, 0, 1, 136, 30, },
++ { 2, 1, 0, 1, 136, 32, },
++ { 1, 1, 0, 1, 136, 32, },
++ { 0, 1, 0, 1, 140, 28, },
++ { 2, 1, 0, 1, 140, 32, },
++ { 1, 1, 0, 1, 140, 32, },
++ { 0, 1, 0, 1, 149, 36, },
++ { 2, 1, 0, 1, 149, 32, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 36, },
++ { 2, 1, 0, 1, 153, 32, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 36, },
++ { 2, 1, 0, 1, 157, 32, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 36, },
++ { 2, 1, 0, 1, 161, 32, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 36, },
++ { 2, 1, 0, 1, 165, 32, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 30, },
++ { 2, 1, 0, 2, 36, 32, },
++ { 1, 1, 0, 2, 36, 32, },
++ { 0, 1, 0, 2, 40, 30, },
++ { 2, 1, 0, 2, 40, 32, },
++ { 1, 1, 0, 2, 40, 32, },
++ { 0, 1, 0, 2, 44, 30, },
++ { 2, 1, 0, 2, 44, 32, },
++ { 1, 1, 0, 2, 44, 32, },
++ { 0, 1, 0, 2, 48, 30, },
++ { 2, 1, 0, 2, 48, 32, },
++ { 1, 1, 0, 2, 48, 32, },
++ { 0, 1, 0, 2, 52, 36, },
++ { 2, 1, 0, 2, 52, 32, },
++ { 1, 1, 0, 2, 52, 32, },
++ { 0, 1, 0, 2, 56, 34, },
++ { 2, 1, 0, 2, 56, 32, },
++ { 1, 1, 0, 2, 56, 32, },
++ { 0, 1, 0, 2, 60, 32, },
++ { 2, 1, 0, 2, 60, 32, },
++ { 1, 1, 0, 2, 60, 32, },
++ { 0, 1, 0, 2, 64, 28, },
++ { 2, 1, 0, 2, 64, 32, },
++ { 1, 1, 0, 2, 64, 32, },
++ { 0, 1, 0, 2, 100, 30, },
++ { 2, 1, 0, 2, 100, 32, },
++ { 1, 1, 0, 2, 100, 32, },
++ { 0, 1, 0, 2, 104, 30, },
++ { 2, 1, 0, 2, 104, 32, },
++ { 1, 1, 0, 2, 104, 32, },
++ { 0, 1, 0, 2, 108, 32, },
++ { 2, 1, 0, 2, 108, 32, },
++ { 1, 1, 0, 2, 108, 32, },
++ { 0, 1, 0, 2, 112, 34, },
++ { 2, 1, 0, 2, 112, 32, },
++ { 1, 1, 0, 2, 112, 32, },
++ { 0, 1, 0, 2, 116, 34, },
++ { 2, 1, 0, 2, 116, 32, },
++ { 1, 1, 0, 2, 116, 32, },
++ { 0, 1, 0, 2, 120, 36, },
++ { 2, 1, 0, 2, 120, 32, },
++ { 1, 1, 0, 2, 120, 32, },
++ { 0, 1, 0, 2, 124, 34, },
++ { 2, 1, 0, 2, 124, 32, },
++ { 1, 1, 0, 2, 124, 32, },
++ { 0, 1, 0, 2, 128, 32, },
++ { 2, 1, 0, 2, 128, 32, },
++ { 1, 1, 0, 2, 128, 32, },
++ { 0, 1, 0, 2, 132, 30, },
++ { 2, 1, 0, 2, 132, 32, },
++ { 1, 1, 0, 2, 132, 32, },
++ { 0, 1, 0, 2, 136, 30, },
++ { 2, 1, 0, 2, 136, 32, },
++ { 1, 1, 0, 2, 136, 32, },
++ { 0, 1, 0, 2, 140, 28, },
++ { 2, 1, 0, 2, 140, 32, },
++ { 1, 1, 0, 2, 140, 32, },
++ { 0, 1, 0, 2, 149, 36, },
++ { 2, 1, 0, 2, 149, 32, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 36, },
++ { 2, 1, 0, 2, 153, 32, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 36, },
++ { 2, 1, 0, 2, 157, 32, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 36, },
++ { 2, 1, 0, 2, 161, 32, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 36, },
++ { 2, 1, 0, 2, 165, 32, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 28, },
++ { 2, 1, 0, 3, 36, 30, },
++ { 1, 1, 0, 3, 36, 30, },
++ { 0, 1, 0, 3, 40, 28, },
++ { 2, 1, 0, 3, 40, 30, },
++ { 1, 1, 0, 3, 40, 30, },
++ { 0, 1, 0, 3, 44, 28, },
++ { 2, 1, 0, 3, 44, 30, },
++ { 1, 1, 0, 3, 44, 30, },
++ { 0, 1, 0, 3, 48, 28, },
++ { 2, 1, 0, 3, 48, 30, },
++ { 1, 1, 0, 3, 48, 30, },
++ { 0, 1, 0, 3, 52, 34, },
++ { 2, 1, 0, 3, 52, 30, },
++ { 1, 1, 0, 3, 52, 30, },
++ { 0, 1, 0, 3, 56, 32, },
++ { 2, 1, 0, 3, 56, 30, },
++ { 1, 1, 0, 3, 56, 30, },
++ { 0, 1, 0, 3, 60, 30, },
++ { 2, 1, 0, 3, 60, 30, },
++ { 1, 1, 0, 3, 60, 30, },
++ { 0, 1, 0, 3, 64, 26, },
++ { 2, 1, 0, 3, 64, 30, },
++ { 1, 1, 0, 3, 64, 30, },
++ { 0, 1, 0, 3, 100, 28, },
++ { 2, 1, 0, 3, 100, 30, },
++ { 1, 1, 0, 3, 100, 30, },
++ { 0, 1, 0, 3, 104, 28, },
++ { 2, 1, 0, 3, 104, 30, },
++ { 1, 1, 0, 3, 104, 30, },
++ { 0, 1, 0, 3, 108, 30, },
++ { 2, 1, 0, 3, 108, 30, },
++ { 1, 1, 0, 3, 108, 30, },
++ { 0, 1, 0, 3, 112, 32, },
++ { 2, 1, 0, 3, 112, 30, },
++ { 1, 1, 0, 3, 112, 30, },
++ { 0, 1, 0, 3, 116, 32, },
++ { 2, 1, 0, 3, 116, 30, },
++ { 1, 1, 0, 3, 116, 30, },
++ { 0, 1, 0, 3, 120, 34, },
++ { 2, 1, 0, 3, 120, 30, },
++ { 1, 1, 0, 3, 120, 30, },
++ { 0, 1, 0, 3, 124, 32, },
++ { 2, 1, 0, 3, 124, 30, },
++ { 1, 1, 0, 3, 124, 30, },
++ { 0, 1, 0, 3, 128, 30, },
++ { 2, 1, 0, 3, 128, 30, },
++ { 1, 1, 0, 3, 128, 30, },
++ { 0, 1, 0, 3, 132, 28, },
++ { 2, 1, 0, 3, 132, 30, },
++ { 1, 1, 0, 3, 132, 30, },
++ { 0, 1, 0, 3, 136, 28, },
++ { 2, 1, 0, 3, 136, 30, },
++ { 1, 1, 0, 3, 136, 30, },
++ { 0, 1, 0, 3, 140, 26, },
++ { 2, 1, 0, 3, 140, 30, },
++ { 1, 1, 0, 3, 140, 30, },
++ { 0, 1, 0, 3, 149, 34, },
++ { 2, 1, 0, 3, 149, 30, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 34, },
++ { 2, 1, 0, 3, 153, 30, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 34, },
++ { 2, 1, 0, 3, 157, 30, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 34, },
++ { 2, 1, 0, 3, 161, 30, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 34, },
++ { 2, 1, 0, 3, 165, 30, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 26, },
++ { 2, 1, 0, 6, 36, 28, },
++ { 1, 1, 0, 6, 36, 28, },
++ { 0, 1, 0, 6, 40, 26, },
++ { 2, 1, 0, 6, 40, 28, },
++ { 1, 1, 0, 6, 40, 28, },
++ { 0, 1, 0, 6, 44, 26, },
++ { 2, 1, 0, 6, 44, 28, },
++ { 1, 1, 0, 6, 44, 28, },
++ { 0, 1, 0, 6, 48, 26, },
++ { 2, 1, 0, 6, 48, 28, },
++ { 1, 1, 0, 6, 48, 28, },
++ { 0, 1, 0, 6, 52, 32, },
++ { 2, 1, 0, 6, 52, 28, },
++ { 1, 1, 0, 6, 52, 28, },
++ { 0, 1, 0, 6, 56, 30, },
++ { 2, 1, 0, 6, 56, 28, },
++ { 1, 1, 0, 6, 56, 28, },
++ { 0, 1, 0, 6, 60, 28, },
++ { 2, 1, 0, 6, 60, 28, },
++ { 1, 1, 0, 6, 60, 28, },
++ { 0, 1, 0, 6, 64, 24, },
++ { 2, 1, 0, 6, 64, 28, },
++ { 1, 1, 0, 6, 64, 28, },
++ { 0, 1, 0, 6, 100, 26, },
++ { 2, 1, 0, 6, 100, 28, },
++ { 1, 1, 0, 6, 100, 28, },
++ { 0, 1, 0, 6, 104, 26, },
++ { 2, 1, 0, 6, 104, 28, },
++ { 1, 1, 0, 6, 104, 28, },
++ { 0, 1, 0, 6, 108, 28, },
++ { 2, 1, 0, 6, 108, 28, },
++ { 1, 1, 0, 6, 108, 28, },
++ { 0, 1, 0, 6, 112, 30, },
++ { 2, 1, 0, 6, 112, 28, },
++ { 1, 1, 0, 6, 112, 28, },
++ { 0, 1, 0, 6, 116, 30, },
++ { 2, 1, 0, 6, 116, 28, },
++ { 1, 1, 0, 6, 116, 28, },
++ { 0, 1, 0, 6, 120, 32, },
++ { 2, 1, 0, 6, 120, 28, },
++ { 1, 1, 0, 6, 120, 28, },
++ { 0, 1, 0, 6, 124, 30, },
++ { 2, 1, 0, 6, 124, 28, },
++ { 1, 1, 0, 6, 124, 28, },
++ { 0, 1, 0, 6, 128, 28, },
++ { 2, 1, 0, 6, 128, 28, },
++ { 1, 1, 0, 6, 128, 28, },
++ { 0, 1, 0, 6, 132, 26, },
++ { 2, 1, 0, 6, 132, 28, },
++ { 1, 1, 0, 6, 132, 28, },
++ { 0, 1, 0, 6, 136, 26, },
++ { 2, 1, 0, 6, 136, 28, },
++ { 1, 1, 0, 6, 136, 28, },
++ { 0, 1, 0, 6, 140, 24, },
++ { 2, 1, 0, 6, 140, 28, },
++ { 1, 1, 0, 6, 140, 28, },
++ { 0, 1, 0, 6, 149, 32, },
++ { 2, 1, 0, 6, 149, 28, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 32, },
++ { 2, 1, 0, 6, 153, 28, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 32, },
++ { 2, 1, 0, 6, 157, 28, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 32, },
++ { 2, 1, 0, 6, 161, 28, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 32, },
++ { 2, 1, 0, 6, 165, 28, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 24, },
++ { 2, 1, 0, 7, 36, 26, },
++ { 1, 1, 0, 7, 36, 26, },
++ { 0, 1, 0, 7, 40, 24, },
++ { 2, 1, 0, 7, 40, 26, },
++ { 1, 1, 0, 7, 40, 26, },
++ { 0, 1, 0, 7, 44, 24, },
++ { 2, 1, 0, 7, 44, 26, },
++ { 1, 1, 0, 7, 44, 26, },
++ { 0, 1, 0, 7, 48, 24, },
++ { 2, 1, 0, 7, 48, 26, },
++ { 1, 1, 0, 7, 48, 26, },
++ { 0, 1, 0, 7, 52, 30, },
++ { 2, 1, 0, 7, 52, 26, },
++ { 1, 1, 0, 7, 52, 26, },
++ { 0, 1, 0, 7, 56, 28, },
++ { 2, 1, 0, 7, 56, 26, },
++ { 1, 1, 0, 7, 56, 26, },
++ { 0, 1, 0, 7, 60, 26, },
++ { 2, 1, 0, 7, 60, 26, },
++ { 1, 1, 0, 7, 60, 26, },
++ { 0, 1, 0, 7, 64, 22, },
++ { 2, 1, 0, 7, 64, 26, },
++ { 1, 1, 0, 7, 64, 26, },
++ { 0, 1, 0, 7, 100, 24, },
++ { 2, 1, 0, 7, 100, 26, },
++ { 1, 1, 0, 7, 100, 26, },
++ { 0, 1, 0, 7, 104, 24, },
++ { 2, 1, 0, 7, 104, 26, },
++ { 1, 1, 0, 7, 104, 26, },
++ { 0, 1, 0, 7, 108, 26, },
++ { 2, 1, 0, 7, 108, 26, },
++ { 1, 1, 0, 7, 108, 26, },
++ { 0, 1, 0, 7, 112, 28, },
++ { 2, 1, 0, 7, 112, 26, },
++ { 1, 1, 0, 7, 112, 26, },
++ { 0, 1, 0, 7, 116, 28, },
++ { 2, 1, 0, 7, 116, 26, },
++ { 1, 1, 0, 7, 116, 26, },
++ { 0, 1, 0, 7, 120, 30, },
++ { 2, 1, 0, 7, 120, 26, },
++ { 1, 1, 0, 7, 120, 26, },
++ { 0, 1, 0, 7, 124, 28, },
++ { 2, 1, 0, 7, 124, 26, },
++ { 1, 1, 0, 7, 124, 26, },
++ { 0, 1, 0, 7, 128, 26, },
++ { 2, 1, 0, 7, 128, 26, },
++ { 1, 1, 0, 7, 128, 26, },
++ { 0, 1, 0, 7, 132, 24, },
++ { 2, 1, 0, 7, 132, 26, },
++ { 1, 1, 0, 7, 132, 26, },
++ { 0, 1, 0, 7, 136, 24, },
++ { 2, 1, 0, 7, 136, 26, },
++ { 1, 1, 0, 7, 136, 26, },
++ { 0, 1, 0, 7, 140, 22, },
++ { 2, 1, 0, 7, 140, 26, },
++ { 1, 1, 0, 7, 140, 26, },
++ { 0, 1, 0, 7, 149, 30, },
++ { 2, 1, 0, 7, 149, 26, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 30, },
++ { 2, 1, 0, 7, 153, 26, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 30, },
++ { 2, 1, 0, 7, 157, 26, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 30, },
++ { 2, 1, 0, 7, 161, 26, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 30, },
++ { 2, 1, 0, 7, 165, 26, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 30, },
++ { 2, 1, 1, 2, 38, 32, },
++ { 1, 1, 1, 2, 38, 32, },
++ { 0, 1, 1, 2, 46, 30, },
++ { 2, 1, 1, 2, 46, 32, },
++ { 1, 1, 1, 2, 46, 32, },
++ { 0, 1, 1, 2, 54, 32, },
++ { 2, 1, 1, 2, 54, 32, },
++ { 1, 1, 1, 2, 54, 32, },
++ { 0, 1, 1, 2, 62, 32, },
++ { 2, 1, 1, 2, 62, 32, },
++ { 1, 1, 1, 2, 62, 32, },
++ { 0, 1, 1, 2, 102, 28, },
++ { 2, 1, 1, 2, 102, 32, },
++ { 1, 1, 1, 2, 102, 32, },
++ { 0, 1, 1, 2, 110, 32, },
++ { 2, 1, 1, 2, 110, 32, },
++ { 1, 1, 1, 2, 110, 32, },
++ { 0, 1, 1, 2, 118, 36, },
++ { 2, 1, 1, 2, 118, 32, },
++ { 1, 1, 1, 2, 118, 32, },
++ { 0, 1, 1, 2, 126, 34, },
++ { 2, 1, 1, 2, 126, 32, },
++ { 1, 1, 1, 2, 126, 32, },
++ { 0, 1, 1, 2, 134, 32, },
++ { 2, 1, 1, 2, 134, 32, },
++ { 1, 1, 1, 2, 134, 32, },
++ { 0, 1, 1, 2, 151, 36, },
++ { 2, 1, 1, 2, 151, 32, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 36, },
++ { 2, 1, 1, 2, 159, 32, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 28, },
++ { 2, 1, 1, 3, 38, 30, },
++ { 1, 1, 1, 3, 38, 30, },
++ { 0, 1, 1, 3, 46, 28, },
++ { 2, 1, 1, 3, 46, 30, },
++ { 1, 1, 1, 3, 46, 30, },
++ { 0, 1, 1, 3, 54, 30, },
++ { 2, 1, 1, 3, 54, 30, },
++ { 1, 1, 1, 3, 54, 30, },
++ { 0, 1, 1, 3, 62, 30, },
++ { 2, 1, 1, 3, 62, 30, },
++ { 1, 1, 1, 3, 62, 30, },
++ { 0, 1, 1, 3, 102, 26, },
++ { 2, 1, 1, 3, 102, 30, },
++ { 1, 1, 1, 3, 102, 30, },
++ { 0, 1, 1, 3, 110, 30, },
++ { 2, 1, 1, 3, 110, 30, },
++ { 1, 1, 1, 3, 110, 30, },
++ { 0, 1, 1, 3, 118, 34, },
++ { 2, 1, 1, 3, 118, 30, },
++ { 1, 1, 1, 3, 118, 30, },
++ { 0, 1, 1, 3, 126, 32, },
++ { 2, 1, 1, 3, 126, 30, },
++ { 1, 1, 1, 3, 126, 30, },
++ { 0, 1, 1, 3, 134, 30, },
++ { 2, 1, 1, 3, 134, 30, },
++ { 1, 1, 1, 3, 134, 30, },
++ { 0, 1, 1, 3, 151, 34, },
++ { 2, 1, 1, 3, 151, 30, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 34, },
++ { 2, 1, 1, 3, 159, 30, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 26, },
++ { 2, 1, 1, 6, 38, 28, },
++ { 1, 1, 1, 6, 38, 28, },
++ { 0, 1, 1, 6, 46, 26, },
++ { 2, 1, 1, 6, 46, 28, },
++ { 1, 1, 1, 6, 46, 28, },
++ { 0, 1, 1, 6, 54, 28, },
++ { 2, 1, 1, 6, 54, 28, },
++ { 1, 1, 1, 6, 54, 28, },
++ { 0, 1, 1, 6, 62, 28, },
++ { 2, 1, 1, 6, 62, 28, },
++ { 1, 1, 1, 6, 62, 28, },
++ { 0, 1, 1, 6, 102, 24, },
++ { 2, 1, 1, 6, 102, 28, },
++ { 1, 1, 1, 6, 102, 28, },
++ { 0, 1, 1, 6, 110, 28, },
++ { 2, 1, 1, 6, 110, 28, },
++ { 1, 1, 1, 6, 110, 28, },
++ { 0, 1, 1, 6, 118, 32, },
++ { 2, 1, 1, 6, 118, 28, },
++ { 1, 1, 1, 6, 118, 28, },
++ { 0, 1, 1, 6, 126, 30, },
++ { 2, 1, 1, 6, 126, 28, },
++ { 1, 1, 1, 6, 126, 28, },
++ { 0, 1, 1, 6, 134, 28, },
++ { 2, 1, 1, 6, 134, 28, },
++ { 1, 1, 1, 6, 134, 28, },
++ { 0, 1, 1, 6, 151, 32, },
++ { 2, 1, 1, 6, 151, 28, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 32, },
++ { 2, 1, 1, 6, 159, 28, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 24, },
++ { 2, 1, 1, 7, 38, 26, },
++ { 1, 1, 1, 7, 38, 26, },
++ { 0, 1, 1, 7, 46, 24, },
++ { 2, 1, 1, 7, 46, 26, },
++ { 1, 1, 1, 7, 46, 26, },
++ { 0, 1, 1, 7, 54, 26, },
++ { 2, 1, 1, 7, 54, 26, },
++ { 1, 1, 1, 7, 54, 26, },
++ { 0, 1, 1, 7, 62, 26, },
++ { 2, 1, 1, 7, 62, 26, },
++ { 1, 1, 1, 7, 62, 26, },
++ { 0, 1, 1, 7, 102, 22, },
++ { 2, 1, 1, 7, 102, 26, },
++ { 1, 1, 1, 7, 102, 26, },
++ { 0, 1, 1, 7, 110, 26, },
++ { 2, 1, 1, 7, 110, 26, },
++ { 1, 1, 1, 7, 110, 26, },
++ { 0, 1, 1, 7, 118, 30, },
++ { 2, 1, 1, 7, 118, 26, },
++ { 1, 1, 1, 7, 118, 26, },
++ { 0, 1, 1, 7, 126, 28, },
++ { 2, 1, 1, 7, 126, 26, },
++ { 1, 1, 1, 7, 126, 26, },
++ { 0, 1, 1, 7, 134, 26, },
++ { 2, 1, 1, 7, 134, 26, },
++ { 1, 1, 1, 7, 134, 26, },
++ { 0, 1, 1, 7, 151, 30, },
++ { 2, 1, 1, 7, 151, 26, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 30, },
++ { 2, 1, 1, 7, 159, 26, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 30, },
++ { 2, 1, 2, 4, 42, 32, },
++ { 1, 1, 2, 4, 42, 32, },
++ { 0, 1, 2, 4, 58, 28, },
++ { 2, 1, 2, 4, 58, 32, },
++ { 1, 1, 2, 4, 58, 32, },
++ { 0, 1, 2, 4, 106, 30, },
++ { 2, 1, 2, 4, 106, 32, },
++ { 1, 1, 2, 4, 106, 32, },
++ { 0, 1, 2, 4, 122, 34, },
++ { 2, 1, 2, 4, 122, 32, },
++ { 1, 1, 2, 4, 122, 32, },
++ { 0, 1, 2, 4, 155, 36, },
++ { 2, 1, 2, 4, 155, 32, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 28, },
++ { 2, 1, 2, 5, 42, 30, },
++ { 1, 1, 2, 5, 42, 30, },
++ { 0, 1, 2, 5, 58, 26, },
++ { 2, 1, 2, 5, 58, 30, },
++ { 1, 1, 2, 5, 58, 30, },
++ { 0, 1, 2, 5, 106, 28, },
++ { 2, 1, 2, 5, 106, 30, },
++ { 1, 1, 2, 5, 106, 30, },
++ { 0, 1, 2, 5, 122, 32, },
++ { 2, 1, 2, 5, 122, 30, },
++ { 1, 1, 2, 5, 122, 30, },
++ { 0, 1, 2, 5, 155, 34, },
++ { 2, 1, 2, 5, 155, 30, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 26, },
++ { 2, 1, 2, 8, 42, 28, },
++ { 1, 1, 2, 8, 42, 28, },
++ { 0, 1, 2, 8, 58, 24, },
++ { 2, 1, 2, 8, 58, 28, },
++ { 1, 1, 2, 8, 58, 28, },
++ { 0, 1, 2, 8, 106, 26, },
++ { 2, 1, 2, 8, 106, 28, },
++ { 1, 1, 2, 8, 106, 28, },
++ { 0, 1, 2, 8, 122, 30, },
++ { 2, 1, 2, 8, 122, 28, },
++ { 1, 1, 2, 8, 122, 28, },
++ { 0, 1, 2, 8, 155, 32, },
++ { 2, 1, 2, 8, 155, 28, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 24, },
++ { 2, 1, 2, 9, 42, 26, },
++ { 1, 1, 2, 9, 42, 26, },
++ { 0, 1, 2, 9, 58, 22, },
++ { 2, 1, 2, 9, 58, 26, },
++ { 1, 1, 2, 9, 58, 26, },
++ { 0, 1, 2, 9, 106, 24, },
++ { 2, 1, 2, 9, 106, 26, },
++ { 1, 1, 2, 9, 106, 26, },
++ { 0, 1, 2, 9, 122, 28, },
++ { 2, 1, 2, 9, 122, 26, },
++ { 1, 1, 2, 9, 122, 26, },
++ { 0, 1, 2, 9, 155, 30, },
++ { 2, 1, 2, 9, 155, 26, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type0[] = {
++ { 0, 0, 0, 0, 1, 32, },
++ { 2, 0, 0, 0, 1, 32, },
++ { 1, 0, 0, 0, 1, 32, },
++ { 0, 0, 0, 0, 2, 32, },
++ { 2, 0, 0, 0, 2, 32, },
++ { 1, 0, 0, 0, 2, 32, },
++ { 0, 0, 0, 0, 3, 32, },
++ { 2, 0, 0, 0, 3, 32, },
++ { 1, 0, 0, 0, 3, 32, },
++ { 0, 0, 0, 0, 4, 32, },
++ { 2, 0, 0, 0, 4, 32, },
++ { 1, 0, 0, 0, 4, 32, },
++ { 0, 0, 0, 0, 5, 32, },
++ { 2, 0, 0, 0, 5, 32, },
++ { 1, 0, 0, 0, 5, 32, },
++ { 0, 0, 0, 0, 6, 32, },
++ { 2, 0, 0, 0, 6, 32, },
++ { 1, 0, 0, 0, 6, 32, },
++ { 0, 0, 0, 0, 7, 32, },
++ { 2, 0, 0, 0, 7, 32, },
++ { 1, 0, 0, 0, 7, 32, },
++ { 0, 0, 0, 0, 8, 32, },
++ { 2, 0, 0, 0, 8, 32, },
++ { 1, 0, 0, 0, 8, 32, },
++ { 0, 0, 0, 0, 9, 32, },
++ { 2, 0, 0, 0, 9, 32, },
++ { 1, 0, 0, 0, 9, 32, },
++ { 0, 0, 0, 0, 10, 32, },
++ { 2, 0, 0, 0, 10, 32, },
++ { 1, 0, 0, 0, 10, 32, },
++ { 0, 0, 0, 0, 11, 32, },
++ { 2, 0, 0, 0, 11, 32, },
++ { 1, 0, 0, 0, 11, 32, },
++ { 0, 0, 0, 0, 12, 24, },
++ { 2, 0, 0, 0, 12, 32, },
++ { 1, 0, 0, 0, 12, 32, },
++ { 0, 0, 0, 0, 13, 16, },
++ { 2, 0, 0, 0, 13, 32, },
++ { 1, 0, 0, 0, 13, 32, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 32, },
++ { 0, 0, 0, 1, 1, 28, },
++ { 2, 0, 0, 1, 1, 32, },
++ { 1, 0, 0, 1, 1, 32, },
++ { 0, 0, 0, 1, 2, 32, },
++ { 2, 0, 0, 1, 2, 32, },
++ { 1, 0, 0, 1, 2, 32, },
++ { 0, 0, 0, 1, 3, 32, },
++ { 2, 0, 0, 1, 3, 32, },
++ { 1, 0, 0, 1, 3, 32, },
++ { 0, 0, 0, 1, 4, 32, },
++ { 2, 0, 0, 1, 4, 32, },
++ { 1, 0, 0, 1, 4, 32, },
++ { 0, 0, 0, 1, 5, 32, },
++ { 2, 0, 0, 1, 5, 32, },
++ { 1, 0, 0, 1, 5, 32, },
++ { 0, 0, 0, 1, 6, 32, },
++ { 2, 0, 0, 1, 6, 32, },
++ { 1, 0, 0, 1, 6, 32, },
++ { 0, 0, 0, 1, 7, 32, },
++ { 2, 0, 0, 1, 7, 32, },
++ { 1, 0, 0, 1, 7, 32, },
++ { 0, 0, 0, 1, 8, 32, },
++ { 2, 0, 0, 1, 8, 32, },
++ { 1, 0, 0, 1, 8, 32, },
++ { 0, 0, 0, 1, 9, 32, },
++ { 2, 0, 0, 1, 9, 32, },
++ { 1, 0, 0, 1, 9, 32, },
++ { 0, 0, 0, 1, 10, 32, },
++ { 2, 0, 0, 1, 10, 32, },
++ { 1, 0, 0, 1, 10, 32, },
++ { 0, 0, 0, 1, 11, 28, },
++ { 2, 0, 0, 1, 11, 32, },
++ { 1, 0, 0, 1, 11, 32, },
++ { 0, 0, 0, 1, 12, 18, },
++ { 2, 0, 0, 1, 12, 32, },
++ { 1, 0, 0, 1, 12, 32, },
++ { 0, 0, 0, 1, 13, 8, },
++ { 2, 0, 0, 1, 13, 32, },
++ { 1, 0, 0, 1, 13, 32, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 26, },
++ { 2, 0, 0, 2, 1, 32, },
++ { 1, 0, 0, 2, 1, 32, },
++ { 0, 0, 0, 2, 2, 32, },
++ { 2, 0, 0, 2, 2, 32, },
++ { 1, 0, 0, 2, 2, 32, },
++ { 0, 0, 0, 2, 3, 32, },
++ { 2, 0, 0, 2, 3, 32, },
++ { 1, 0, 0, 2, 3, 32, },
++ { 0, 0, 0, 2, 4, 32, },
++ { 2, 0, 0, 2, 4, 32, },
++ { 1, 0, 0, 2, 4, 32, },
++ { 0, 0, 0, 2, 5, 32, },
++ { 2, 0, 0, 2, 5, 32, },
++ { 1, 0, 0, 2, 5, 32, },
++ { 0, 0, 0, 2, 6, 32, },
++ { 2, 0, 0, 2, 6, 32, },
++ { 1, 0, 0, 2, 6, 32, },
++ { 0, 0, 0, 2, 7, 32, },
++ { 2, 0, 0, 2, 7, 32, },
++ { 1, 0, 0, 2, 7, 32, },
++ { 0, 0, 0, 2, 8, 32, },
++ { 2, 0, 0, 2, 8, 32, },
++ { 1, 0, 0, 2, 8, 32, },
++ { 0, 0, 0, 2, 9, 32, },
++ { 2, 0, 0, 2, 9, 32, },
++ { 1, 0, 0, 2, 9, 32, },
++ { 0, 0, 0, 2, 10, 32, },
++ { 2, 0, 0, 2, 10, 32, },
++ { 1, 0, 0, 2, 10, 32, },
++ { 0, 0, 0, 2, 11, 26, },
++ { 2, 0, 0, 2, 11, 32, },
++ { 1, 0, 0, 2, 11, 32, },
++ { 0, 0, 0, 2, 12, 16, },
++ { 2, 0, 0, 2, 12, 32, },
++ { 1, 0, 0, 2, 12, 32, },
++ { 0, 0, 0, 2, 13, 6, },
++ { 2, 0, 0, 2, 13, 32, },
++ { 1, 0, 0, 2, 13, 32, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 24, },
++ { 2, 0, 0, 3, 1, 30, },
++ { 1, 0, 0, 3, 1, 30, },
++ { 0, 0, 0, 3, 2, 30, },
++ { 2, 0, 0, 3, 2, 30, },
++ { 1, 0, 0, 3, 2, 30, },
++ { 0, 0, 0, 3, 3, 30, },
++ { 2, 0, 0, 3, 3, 30, },
++ { 1, 0, 0, 3, 3, 30, },
++ { 0, 0, 0, 3, 4, 30, },
++ { 2, 0, 0, 3, 4, 30, },
++ { 1, 0, 0, 3, 4, 30, },
++ { 0, 0, 0, 3, 5, 30, },
++ { 2, 0, 0, 3, 5, 30, },
++ { 1, 0, 0, 3, 5, 30, },
++ { 0, 0, 0, 3, 6, 30, },
++ { 2, 0, 0, 3, 6, 30, },
++ { 1, 0, 0, 3, 6, 30, },
++ { 0, 0, 0, 3, 7, 30, },
++ { 2, 0, 0, 3, 7, 30, },
++ { 1, 0, 0, 3, 7, 30, },
++ { 0, 0, 0, 3, 8, 30, },
++ { 2, 0, 0, 3, 8, 30, },
++ { 1, 0, 0, 3, 8, 30, },
++ { 0, 0, 0, 3, 9, 30, },
++ { 2, 0, 0, 3, 9, 30, },
++ { 1, 0, 0, 3, 9, 30, },
++ { 0, 0, 0, 3, 10, 30, },
++ { 2, 0, 0, 3, 10, 30, },
++ { 1, 0, 0, 3, 10, 30, },
++ { 0, 0, 0, 3, 11, 24, },
++ { 2, 0, 0, 3, 11, 30, },
++ { 1, 0, 0, 3, 11, 30, },
++ { 0, 0, 0, 3, 12, 14, },
++ { 2, 0, 0, 3, 12, 30, },
++ { 1, 0, 0, 3, 12, 30, },
++ { 0, 0, 0, 3, 13, 4, },
++ { 2, 0, 0, 3, 13, 30, },
++ { 1, 0, 0, 3, 13, 30, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 22, },
++ { 2, 0, 0, 6, 1, 28, },
++ { 1, 0, 0, 6, 1, 28, },
++ { 0, 0, 0, 6, 2, 28, },
++ { 2, 0, 0, 6, 2, 28, },
++ { 1, 0, 0, 6, 2, 28, },
++ { 0, 0, 0, 6, 3, 28, },
++ { 2, 0, 0, 6, 3, 28, },
++ { 1, 0, 0, 6, 3, 28, },
++ { 0, 0, 0, 6, 4, 28, },
++ { 2, 0, 0, 6, 4, 28, },
++ { 1, 0, 0, 6, 4, 28, },
++ { 0, 0, 0, 6, 5, 28, },
++ { 2, 0, 0, 6, 5, 28, },
++ { 1, 0, 0, 6, 5, 28, },
++ { 0, 0, 0, 6, 6, 28, },
++ { 2, 0, 0, 6, 6, 28, },
++ { 1, 0, 0, 6, 6, 28, },
++ { 0, 0, 0, 6, 7, 28, },
++ { 2, 0, 0, 6, 7, 28, },
++ { 1, 0, 0, 6, 7, 28, },
++ { 0, 0, 0, 6, 8, 28, },
++ { 2, 0, 0, 6, 8, 28, },
++ { 1, 0, 0, 6, 8, 28, },
++ { 0, 0, 0, 6, 9, 28, },
++ { 2, 0, 0, 6, 9, 28, },
++ { 1, 0, 0, 6, 9, 28, },
++ { 0, 0, 0, 6, 10, 28, },
++ { 2, 0, 0, 6, 10, 28, },
++ { 1, 0, 0, 6, 10, 28, },
++ { 0, 0, 0, 6, 11, 22, },
++ { 2, 0, 0, 6, 11, 28, },
++ { 1, 0, 0, 6, 11, 28, },
++ { 0, 0, 0, 6, 12, 14, },
++ { 2, 0, 0, 6, 12, 28, },
++ { 1, 0, 0, 6, 12, 28, },
++ { 0, 0, 0, 6, 13, 4, },
++ { 2, 0, 0, 6, 13, 28, },
++ { 1, 0, 0, 6, 13, 28, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 20, },
++ { 2, 0, 0, 7, 1, 26, },
++ { 1, 0, 0, 7, 1, 26, },
++ { 0, 0, 0, 7, 2, 26, },
++ { 2, 0, 0, 7, 2, 26, },
++ { 1, 0, 0, 7, 2, 26, },
++ { 0, 0, 0, 7, 3, 26, },
++ { 2, 0, 0, 7, 3, 26, },
++ { 1, 0, 0, 7, 3, 26, },
++ { 0, 0, 0, 7, 4, 26, },
++ { 2, 0, 0, 7, 4, 26, },
++ { 1, 0, 0, 7, 4, 26, },
++ { 0, 0, 0, 7, 5, 26, },
++ { 2, 0, 0, 7, 5, 26, },
++ { 1, 0, 0, 7, 5, 26, },
++ { 0, 0, 0, 7, 6, 26, },
++ { 2, 0, 0, 7, 6, 26, },
++ { 1, 0, 0, 7, 6, 26, },
++ { 0, 0, 0, 7, 7, 26, },
++ { 2, 0, 0, 7, 7, 26, },
++ { 1, 0, 0, 7, 7, 26, },
++ { 0, 0, 0, 7, 8, 26, },
++ { 2, 0, 0, 7, 8, 26, },
++ { 1, 0, 0, 7, 8, 26, },
++ { 0, 0, 0, 7, 9, 26, },
++ { 2, 0, 0, 7, 9, 26, },
++ { 1, 0, 0, 7, 9, 26, },
++ { 0, 0, 0, 7, 10, 26, },
++ { 2, 0, 0, 7, 10, 26, },
++ { 1, 0, 0, 7, 10, 26, },
++ { 0, 0, 0, 7, 11, 20, },
++ { 2, 0, 0, 7, 11, 26, },
++ { 1, 0, 0, 7, 11, 26, },
++ { 0, 0, 0, 7, 12, 14, },
++ { 2, 0, 0, 7, 12, 26, },
++ { 1, 0, 0, 7, 12, 26, },
++ { 0, 0, 0, 7, 13, 4, },
++ { 2, 0, 0, 7, 13, 26, },
++ { 1, 0, 0, 7, 13, 26, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 26, },
++ { 2, 0, 1, 2, 3, 32, },
++ { 1, 0, 1, 2, 3, 32, },
++ { 0, 0, 1, 2, 4, 32, },
++ { 2, 0, 1, 2, 4, 32, },
++ { 1, 0, 1, 2, 4, 32, },
++ { 0, 0, 1, 2, 5, 32, },
++ { 2, 0, 1, 2, 5, 32, },
++ { 1, 0, 1, 2, 5, 32, },
++ { 0, 0, 1, 2, 6, 32, },
++ { 2, 0, 1, 2, 6, 32, },
++ { 1, 0, 1, 2, 6, 32, },
++ { 0, 0, 1, 2, 7, 32, },
++ { 2, 0, 1, 2, 7, 32, },
++ { 1, 0, 1, 2, 7, 32, },
++ { 0, 0, 1, 2, 8, 32, },
++ { 2, 0, 1, 2, 8, 32, },
++ { 1, 0, 1, 2, 8, 32, },
++ { 0, 0, 1, 2, 9, 32, },
++ { 2, 0, 1, 2, 9, 32, },
++ { 1, 0, 1, 2, 9, 32, },
++ { 0, 0, 1, 2, 10, 32, },
++ { 2, 0, 1, 2, 10, 32, },
++ { 1, 0, 1, 2, 10, 32, },
++ { 0, 0, 1, 2, 11, 26, },
++ { 2, 0, 1, 2, 11, 32, },
++ { 1, 0, 1, 2, 11, 32, },
++ { 0, 0, 1, 2, 12, 16, },
++ { 2, 0, 1, 2, 12, 32, },
++ { 1, 0, 1, 2, 12, 32, },
++ { 0, 0, 1, 2, 13, 10, },
++ { 2, 0, 1, 2, 13, 32, },
++ { 1, 0, 1, 2, 13, 32, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 24, },
++ { 2, 0, 1, 3, 3, 30, },
++ { 1, 0, 1, 3, 3, 30, },
++ { 0, 0, 1, 3, 4, 30, },
++ { 2, 0, 1, 3, 4, 30, },
++ { 1, 0, 1, 3, 4, 30, },
++ { 0, 0, 1, 3, 5, 30, },
++ { 2, 0, 1, 3, 5, 30, },
++ { 1, 0, 1, 3, 5, 30, },
++ { 0, 0, 1, 3, 6, 30, },
++ { 2, 0, 1, 3, 6, 30, },
++ { 1, 0, 1, 3, 6, 30, },
++ { 0, 0, 1, 3, 7, 30, },
++ { 2, 0, 1, 3, 7, 30, },
++ { 1, 0, 1, 3, 7, 30, },
++ { 0, 0, 1, 3, 8, 30, },
++ { 2, 0, 1, 3, 8, 30, },
++ { 1, 0, 1, 3, 8, 30, },
++ { 0, 0, 1, 3, 9, 30, },
++ { 2, 0, 1, 3, 9, 30, },
++ { 1, 0, 1, 3, 9, 30, },
++ { 0, 0, 1, 3, 10, 30, },
++ { 2, 0, 1, 3, 10, 30, },
++ { 1, 0, 1, 3, 10, 30, },
++ { 0, 0, 1, 3, 11, 24, },
++ { 2, 0, 1, 3, 11, 30, },
++ { 1, 0, 1, 3, 11, 30, },
++ { 0, 0, 1, 3, 12, 14, },
++ { 2, 0, 1, 3, 12, 30, },
++ { 1, 0, 1, 3, 12, 30, },
++ { 0, 0, 1, 3, 13, 8, },
++ { 2, 0, 1, 3, 13, 30, },
++ { 1, 0, 1, 3, 13, 30, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 22, },
++ { 2, 0, 1, 6, 3, 28, },
++ { 1, 0, 1, 6, 3, 28, },
++ { 0, 0, 1, 6, 4, 28, },
++ { 2, 0, 1, 6, 4, 28, },
++ { 1, 0, 1, 6, 4, 28, },
++ { 0, 0, 1, 6, 5, 28, },
++ { 2, 0, 1, 6, 5, 28, },
++ { 1, 0, 1, 6, 5, 28, },
++ { 0, 0, 1, 6, 6, 28, },
++ { 2, 0, 1, 6, 6, 28, },
++ { 1, 0, 1, 6, 6, 28, },
++ { 0, 0, 1, 6, 7, 28, },
++ { 2, 0, 1, 6, 7, 28, },
++ { 1, 0, 1, 6, 7, 28, },
++ { 0, 0, 1, 6, 8, 28, },
++ { 2, 0, 1, 6, 8, 28, },
++ { 1, 0, 1, 6, 8, 28, },
++ { 0, 0, 1, 6, 9, 28, },
++ { 2, 0, 1, 6, 9, 28, },
++ { 1, 0, 1, 6, 9, 28, },
++ { 0, 0, 1, 6, 10, 28, },
++ { 2, 0, 1, 6, 10, 28, },
++ { 1, 0, 1, 6, 10, 28, },
++ { 0, 0, 1, 6, 11, 22, },
++ { 2, 0, 1, 6, 11, 28, },
++ { 1, 0, 1, 6, 11, 28, },
++ { 0, 0, 1, 6, 12, 14, },
++ { 2, 0, 1, 6, 12, 28, },
++ { 1, 0, 1, 6, 12, 28, },
++ { 0, 0, 1, 6, 13, 8, },
++ { 2, 0, 1, 6, 13, 28, },
++ { 1, 0, 1, 6, 13, 28, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 20, },
++ { 2, 0, 1, 7, 3, 26, },
++ { 1, 0, 1, 7, 3, 26, },
++ { 0, 0, 1, 7, 4, 26, },
++ { 2, 0, 1, 7, 4, 26, },
++ { 1, 0, 1, 7, 4, 26, },
++ { 0, 0, 1, 7, 5, 26, },
++ { 2, 0, 1, 7, 5, 26, },
++ { 1, 0, 1, 7, 5, 26, },
++ { 0, 0, 1, 7, 6, 26, },
++ { 2, 0, 1, 7, 6, 26, },
++ { 1, 0, 1, 7, 6, 26, },
++ { 0, 0, 1, 7, 7, 26, },
++ { 2, 0, 1, 7, 7, 26, },
++ { 1, 0, 1, 7, 7, 26, },
++ { 0, 0, 1, 7, 8, 26, },
++ { 2, 0, 1, 7, 8, 26, },
++ { 1, 0, 1, 7, 8, 26, },
++ { 0, 0, 1, 7, 9, 26, },
++ { 2, 0, 1, 7, 9, 26, },
++ { 1, 0, 1, 7, 9, 26, },
++ { 0, 0, 1, 7, 10, 26, },
++ { 2, 0, 1, 7, 10, 26, },
++ { 1, 0, 1, 7, 10, 26, },
++ { 0, 0, 1, 7, 11, 20, },
++ { 2, 0, 1, 7, 11, 26, },
++ { 1, 0, 1, 7, 11, 26, },
++ { 0, 0, 1, 7, 12, 14, },
++ { 2, 0, 1, 7, 12, 26, },
++ { 1, 0, 1, 7, 12, 26, },
++ { 0, 0, 1, 7, 13, 8, },
++ { 2, 0, 1, 7, 13, 26, },
++ { 1, 0, 1, 7, 13, 26, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 28, },
++ { 2, 1, 0, 1, 36, 32, },
++ { 1, 1, 0, 1, 36, 32, },
++ { 0, 1, 0, 1, 40, 32, },
++ { 2, 1, 0, 1, 40, 32, },
++ { 1, 1, 0, 1, 40, 32, },
++ { 0, 1, 0, 1, 44, 32, },
++ { 2, 1, 0, 1, 44, 32, },
++ { 1, 1, 0, 1, 44, 32, },
++ { 0, 1, 0, 1, 48, 32, },
++ { 2, 1, 0, 1, 48, 32, },
++ { 1, 1, 0, 1, 48, 32, },
++ { 0, 1, 0, 1, 52, 32, },
++ { 2, 1, 0, 1, 52, 32, },
++ { 1, 1, 0, 1, 52, 32, },
++ { 0, 1, 0, 1, 56, 32, },
++ { 2, 1, 0, 1, 56, 32, },
++ { 1, 1, 0, 1, 56, 32, },
++ { 0, 1, 0, 1, 60, 32, },
++ { 2, 1, 0, 1, 60, 32, },
++ { 1, 1, 0, 1, 60, 32, },
++ { 0, 1, 0, 1, 64, 28, },
++ { 2, 1, 0, 1, 64, 32, },
++ { 1, 1, 0, 1, 64, 32, },
++ { 0, 1, 0, 1, 100, 28, },
++ { 2, 1, 0, 1, 100, 32, },
++ { 1, 1, 0, 1, 100, 32, },
++ { 0, 1, 0, 1, 104, 32, },
++ { 2, 1, 0, 1, 104, 32, },
++ { 1, 1, 0, 1, 104, 32, },
++ { 0, 1, 0, 1, 108, 32, },
++ { 2, 1, 0, 1, 108, 32, },
++ { 1, 1, 0, 1, 108, 32, },
++ { 0, 1, 0, 1, 112, 32, },
++ { 2, 1, 0, 1, 112, 32, },
++ { 1, 1, 0, 1, 112, 32, },
++ { 0, 1, 0, 1, 116, 32, },
++ { 2, 1, 0, 1, 116, 32, },
++ { 1, 1, 0, 1, 116, 32, },
++ { 0, 1, 0, 1, 120, 32, },
++ { 2, 1, 0, 1, 120, 32, },
++ { 1, 1, 0, 1, 120, 32, },
++ { 0, 1, 0, 1, 124, 32, },
++ { 2, 1, 0, 1, 124, 32, },
++ { 1, 1, 0, 1, 124, 32, },
++ { 0, 1, 0, 1, 128, 32, },
++ { 2, 1, 0, 1, 128, 32, },
++ { 1, 1, 0, 1, 128, 32, },
++ { 0, 1, 0, 1, 132, 32, },
++ { 2, 1, 0, 1, 132, 32, },
++ { 1, 1, 0, 1, 132, 32, },
++ { 0, 1, 0, 1, 136, 32, },
++ { 2, 1, 0, 1, 136, 32, },
++ { 1, 1, 0, 1, 136, 32, },
++ { 0, 1, 0, 1, 140, 28, },
++ { 2, 1, 0, 1, 140, 32, },
++ { 1, 1, 0, 1, 140, 32, },
++ { 0, 1, 0, 1, 149, 28, },
++ { 2, 1, 0, 1, 149, 32, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 32, },
++ { 2, 1, 0, 1, 153, 32, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 32, },
++ { 2, 1, 0, 1, 157, 32, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 32, },
++ { 2, 1, 0, 1, 161, 32, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 32, },
++ { 2, 1, 0, 1, 165, 32, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 26, },
++ { 2, 1, 0, 2, 36, 32, },
++ { 1, 1, 0, 2, 36, 32, },
++ { 0, 1, 0, 2, 40, 32, },
++ { 2, 1, 0, 2, 40, 32, },
++ { 1, 1, 0, 2, 40, 32, },
++ { 0, 1, 0, 2, 44, 32, },
++ { 2, 1, 0, 2, 44, 32, },
++ { 1, 1, 0, 2, 44, 32, },
++ { 0, 1, 0, 2, 48, 32, },
++ { 2, 1, 0, 2, 48, 32, },
++ { 1, 1, 0, 2, 48, 32, },
++ { 0, 1, 0, 2, 52, 32, },
++ { 2, 1, 0, 2, 52, 32, },
++ { 1, 1, 0, 2, 52, 32, },
++ { 0, 1, 0, 2, 56, 32, },
++ { 2, 1, 0, 2, 56, 32, },
++ { 1, 1, 0, 2, 56, 32, },
++ { 0, 1, 0, 2, 60, 32, },
++ { 2, 1, 0, 2, 60, 32, },
++ { 1, 1, 0, 2, 60, 32, },
++ { 0, 1, 0, 2, 64, 26, },
++ { 2, 1, 0, 2, 64, 32, },
++ { 1, 1, 0, 2, 64, 32, },
++ { 0, 1, 0, 2, 100, 26, },
++ { 2, 1, 0, 2, 100, 32, },
++ { 1, 1, 0, 2, 100, 32, },
++ { 0, 1, 0, 2, 104, 32, },
++ { 2, 1, 0, 2, 104, 32, },
++ { 1, 1, 0, 2, 104, 32, },
++ { 0, 1, 0, 2, 108, 32, },
++ { 2, 1, 0, 2, 108, 32, },
++ { 1, 1, 0, 2, 108, 32, },
++ { 0, 1, 0, 2, 112, 32, },
++ { 2, 1, 0, 2, 112, 32, },
++ { 1, 1, 0, 2, 112, 32, },
++ { 0, 1, 0, 2, 116, 32, },
++ { 2, 1, 0, 2, 116, 32, },
++ { 1, 1, 0, 2, 116, 32, },
++ { 0, 1, 0, 2, 120, 32, },
++ { 2, 1, 0, 2, 120, 32, },
++ { 1, 1, 0, 2, 120, 32, },
++ { 0, 1, 0, 2, 124, 32, },
++ { 2, 1, 0, 2, 124, 32, },
++ { 1, 1, 0, 2, 124, 32, },
++ { 0, 1, 0, 2, 128, 32, },
++ { 2, 1, 0, 2, 128, 32, },
++ { 1, 1, 0, 2, 128, 32, },
++ { 0, 1, 0, 2, 132, 32, },
++ { 2, 1, 0, 2, 132, 32, },
++ { 1, 1, 0, 2, 132, 32, },
++ { 0, 1, 0, 2, 136, 32, },
++ { 2, 1, 0, 2, 136, 32, },
++ { 1, 1, 0, 2, 136, 32, },
++ { 0, 1, 0, 2, 140, 26, },
++ { 2, 1, 0, 2, 140, 32, },
++ { 1, 1, 0, 2, 140, 32, },
++ { 0, 1, 0, 2, 149, 26, },
++ { 2, 1, 0, 2, 149, 32, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 32, },
++ { 2, 1, 0, 2, 153, 32, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 32, },
++ { 2, 1, 0, 2, 157, 32, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 32, },
++ { 2, 1, 0, 2, 161, 32, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 32, },
++ { 2, 1, 0, 2, 165, 32, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 24, },
++ { 2, 1, 0, 3, 36, 28, },
++ { 1, 1, 0, 3, 36, 28, },
++ { 0, 1, 0, 3, 40, 28, },
++ { 2, 1, 0, 3, 40, 28, },
++ { 1, 1, 0, 3, 40, 28, },
++ { 0, 1, 0, 3, 44, 28, },
++ { 2, 1, 0, 3, 44, 28, },
++ { 1, 1, 0, 3, 44, 28, },
++ { 0, 1, 0, 3, 48, 28, },
++ { 2, 1, 0, 3, 48, 28, },
++ { 1, 1, 0, 3, 48, 28, },
++ { 0, 1, 0, 3, 52, 28, },
++ { 2, 1, 0, 3, 52, 28, },
++ { 1, 1, 0, 3, 52, 28, },
++ { 0, 1, 0, 3, 56, 28, },
++ { 2, 1, 0, 3, 56, 28, },
++ { 1, 1, 0, 3, 56, 28, },
++ { 0, 1, 0, 3, 60, 28, },
++ { 2, 1, 0, 3, 60, 28, },
++ { 1, 1, 0, 3, 60, 28, },
++ { 0, 1, 0, 3, 64, 24, },
++ { 2, 1, 0, 3, 64, 28, },
++ { 1, 1, 0, 3, 64, 28, },
++ { 0, 1, 0, 3, 100, 24, },
++ { 2, 1, 0, 3, 100, 28, },
++ { 1, 1, 0, 3, 100, 28, },
++ { 0, 1, 0, 3, 104, 28, },
++ { 2, 1, 0, 3, 104, 28, },
++ { 1, 1, 0, 3, 104, 28, },
++ { 0, 1, 0, 3, 108, 28, },
++ { 2, 1, 0, 3, 108, 28, },
++ { 1, 1, 0, 3, 108, 28, },
++ { 0, 1, 0, 3, 112, 28, },
++ { 2, 1, 0, 3, 112, 28, },
++ { 1, 1, 0, 3, 112, 28, },
++ { 0, 1, 0, 3, 116, 28, },
++ { 2, 1, 0, 3, 116, 28, },
++ { 1, 1, 0, 3, 116, 28, },
++ { 0, 1, 0, 3, 120, 28, },
++ { 2, 1, 0, 3, 120, 28, },
++ { 1, 1, 0, 3, 120, 28, },
++ { 0, 1, 0, 3, 124, 28, },
++ { 2, 1, 0, 3, 124, 28, },
++ { 1, 1, 0, 3, 124, 28, },
++ { 0, 1, 0, 3, 128, 28, },
++ { 2, 1, 0, 3, 128, 28, },
++ { 1, 1, 0, 3, 128, 28, },
++ { 0, 1, 0, 3, 132, 28, },
++ { 2, 1, 0, 3, 132, 28, },
++ { 1, 1, 0, 3, 132, 28, },
++ { 0, 1, 0, 3, 136, 28, },
++ { 2, 1, 0, 3, 136, 28, },
++ { 1, 1, 0, 3, 136, 28, },
++ { 0, 1, 0, 3, 140, 24, },
++ { 2, 1, 0, 3, 140, 28, },
++ { 1, 1, 0, 3, 140, 28, },
++ { 0, 1, 0, 3, 149, 24, },
++ { 2, 1, 0, 3, 149, 28, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 28, },
++ { 2, 1, 0, 3, 153, 28, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 28, },
++ { 2, 1, 0, 3, 157, 28, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 28, },
++ { 2, 1, 0, 3, 161, 28, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 28, },
++ { 2, 1, 0, 3, 165, 28, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 22, },
++ { 2, 1, 0, 6, 36, 26, },
++ { 1, 1, 0, 6, 36, 26, },
++ { 0, 1, 0, 6, 40, 26, },
++ { 2, 1, 0, 6, 40, 26, },
++ { 1, 1, 0, 6, 40, 26, },
++ { 0, 1, 0, 6, 44, 26, },
++ { 2, 1, 0, 6, 44, 26, },
++ { 1, 1, 0, 6, 44, 26, },
++ { 0, 1, 0, 6, 48, 26, },
++ { 2, 1, 0, 6, 48, 26, },
++ { 1, 1, 0, 6, 48, 26, },
++ { 0, 1, 0, 6, 52, 26, },
++ { 2, 1, 0, 6, 52, 26, },
++ { 1, 1, 0, 6, 52, 26, },
++ { 0, 1, 0, 6, 56, 26, },
++ { 2, 1, 0, 6, 56, 26, },
++ { 1, 1, 0, 6, 56, 26, },
++ { 0, 1, 0, 6, 60, 26, },
++ { 2, 1, 0, 6, 60, 26, },
++ { 1, 1, 0, 6, 60, 26, },
++ { 0, 1, 0, 6, 64, 22, },
++ { 2, 1, 0, 6, 64, 26, },
++ { 1, 1, 0, 6, 64, 26, },
++ { 0, 1, 0, 6, 100, 22, },
++ { 2, 1, 0, 6, 100, 26, },
++ { 1, 1, 0, 6, 100, 26, },
++ { 0, 1, 0, 6, 104, 26, },
++ { 2, 1, 0, 6, 104, 26, },
++ { 1, 1, 0, 6, 104, 26, },
++ { 0, 1, 0, 6, 108, 26, },
++ { 2, 1, 0, 6, 108, 26, },
++ { 1, 1, 0, 6, 108, 26, },
++ { 0, 1, 0, 6, 112, 26, },
++ { 2, 1, 0, 6, 112, 26, },
++ { 1, 1, 0, 6, 112, 26, },
++ { 0, 1, 0, 6, 116, 26, },
++ { 2, 1, 0, 6, 116, 26, },
++ { 1, 1, 0, 6, 116, 26, },
++ { 0, 1, 0, 6, 120, 26, },
++ { 2, 1, 0, 6, 120, 26, },
++ { 1, 1, 0, 6, 120, 26, },
++ { 0, 1, 0, 6, 124, 26, },
++ { 2, 1, 0, 6, 124, 26, },
++ { 1, 1, 0, 6, 124, 26, },
++ { 0, 1, 0, 6, 128, 26, },
++ { 2, 1, 0, 6, 128, 26, },
++ { 1, 1, 0, 6, 128, 26, },
++ { 0, 1, 0, 6, 132, 26, },
++ { 2, 1, 0, 6, 132, 26, },
++ { 1, 1, 0, 6, 132, 26, },
++ { 0, 1, 0, 6, 136, 26, },
++ { 2, 1, 0, 6, 136, 26, },
++ { 1, 1, 0, 6, 136, 26, },
++ { 0, 1, 0, 6, 140, 22, },
++ { 2, 1, 0, 6, 140, 26, },
++ { 1, 1, 0, 6, 140, 26, },
++ { 0, 1, 0, 6, 149, 22, },
++ { 2, 1, 0, 6, 149, 26, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 26, },
++ { 2, 1, 0, 6, 153, 26, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 26, },
++ { 2, 1, 0, 6, 157, 26, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 26, },
++ { 2, 1, 0, 6, 161, 26, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 26, },
++ { 2, 1, 0, 6, 165, 26, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 20, },
++ { 2, 1, 0, 7, 36, 24, },
++ { 1, 1, 0, 7, 36, 24, },
++ { 0, 1, 0, 7, 40, 24, },
++ { 2, 1, 0, 7, 40, 24, },
++ { 1, 1, 0, 7, 40, 24, },
++ { 0, 1, 0, 7, 44, 24, },
++ { 2, 1, 0, 7, 44, 24, },
++ { 1, 1, 0, 7, 44, 24, },
++ { 0, 1, 0, 7, 48, 24, },
++ { 2, 1, 0, 7, 48, 24, },
++ { 1, 1, 0, 7, 48, 24, },
++ { 0, 1, 0, 7, 52, 24, },
++ { 2, 1, 0, 7, 52, 24, },
++ { 1, 1, 0, 7, 52, 24, },
++ { 0, 1, 0, 7, 56, 24, },
++ { 2, 1, 0, 7, 56, 24, },
++ { 1, 1, 0, 7, 56, 24, },
++ { 0, 1, 0, 7, 60, 24, },
++ { 2, 1, 0, 7, 60, 24, },
++ { 1, 1, 0, 7, 60, 24, },
++ { 0, 1, 0, 7, 64, 20, },
++ { 2, 1, 0, 7, 64, 24, },
++ { 1, 1, 0, 7, 64, 24, },
++ { 0, 1, 0, 7, 100, 20, },
++ { 2, 1, 0, 7, 100, 24, },
++ { 1, 1, 0, 7, 100, 24, },
++ { 0, 1, 0, 7, 104, 24, },
++ { 2, 1, 0, 7, 104, 24, },
++ { 1, 1, 0, 7, 104, 24, },
++ { 0, 1, 0, 7, 108, 24, },
++ { 2, 1, 0, 7, 108, 24, },
++ { 1, 1, 0, 7, 108, 24, },
++ { 0, 1, 0, 7, 112, 24, },
++ { 2, 1, 0, 7, 112, 24, },
++ { 1, 1, 0, 7, 112, 24, },
++ { 0, 1, 0, 7, 116, 24, },
++ { 2, 1, 0, 7, 116, 24, },
++ { 1, 1, 0, 7, 116, 24, },
++ { 0, 1, 0, 7, 120, 24, },
++ { 2, 1, 0, 7, 120, 24, },
++ { 1, 1, 0, 7, 120, 24, },
++ { 0, 1, 0, 7, 124, 24, },
++ { 2, 1, 0, 7, 124, 24, },
++ { 1, 1, 0, 7, 124, 24, },
++ { 0, 1, 0, 7, 128, 24, },
++ { 2, 1, 0, 7, 128, 24, },
++ { 1, 1, 0, 7, 128, 24, },
++ { 0, 1, 0, 7, 132, 24, },
++ { 2, 1, 0, 7, 132, 24, },
++ { 1, 1, 0, 7, 132, 24, },
++ { 0, 1, 0, 7, 136, 24, },
++ { 2, 1, 0, 7, 136, 24, },
++ { 1, 1, 0, 7, 136, 24, },
++ { 0, 1, 0, 7, 140, 20, },
++ { 2, 1, 0, 7, 140, 24, },
++ { 1, 1, 0, 7, 140, 24, },
++ { 0, 1, 0, 7, 149, 20, },
++ { 2, 1, 0, 7, 149, 24, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 24, },
++ { 2, 1, 0, 7, 153, 24, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 24, },
++ { 2, 1, 0, 7, 157, 24, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 24, },
++ { 2, 1, 0, 7, 161, 24, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 24, },
++ { 2, 1, 0, 7, 165, 24, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 26, },
++ { 2, 1, 1, 2, 38, 32, },
++ { 1, 1, 1, 2, 38, 32, },
++ { 0, 1, 1, 2, 46, 32, },
++ { 2, 1, 1, 2, 46, 32, },
++ { 1, 1, 1, 2, 46, 32, },
++ { 0, 1, 1, 2, 54, 32, },
++ { 2, 1, 1, 2, 54, 32, },
++ { 1, 1, 1, 2, 54, 32, },
++ { 0, 1, 1, 2, 62, 26, },
++ { 2, 1, 1, 2, 62, 32, },
++ { 1, 1, 1, 2, 62, 32, },
++ { 0, 1, 1, 2, 102, 26, },
++ { 2, 1, 1, 2, 102, 32, },
++ { 1, 1, 1, 2, 102, 32, },
++ { 0, 1, 1, 2, 110, 32, },
++ { 2, 1, 1, 2, 110, 32, },
++ { 1, 1, 1, 2, 110, 32, },
++ { 0, 1, 1, 2, 118, 32, },
++ { 2, 1, 1, 2, 118, 32, },
++ { 1, 1, 1, 2, 118, 32, },
++ { 0, 1, 1, 2, 126, 32, },
++ { 2, 1, 1, 2, 126, 32, },
++ { 1, 1, 1, 2, 126, 32, },
++ { 0, 1, 1, 2, 134, 32, },
++ { 2, 1, 1, 2, 134, 32, },
++ { 1, 1, 1, 2, 134, 32, },
++ { 0, 1, 1, 2, 151, 26, },
++ { 2, 1, 1, 2, 151, 32, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 32, },
++ { 2, 1, 1, 2, 159, 32, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 24, },
++ { 2, 1, 1, 3, 38, 28, },
++ { 1, 1, 1, 3, 38, 28, },
++ { 0, 1, 1, 3, 46, 28, },
++ { 2, 1, 1, 3, 46, 28, },
++ { 1, 1, 1, 3, 46, 28, },
++ { 0, 1, 1, 3, 54, 28, },
++ { 2, 1, 1, 3, 54, 28, },
++ { 1, 1, 1, 3, 54, 28, },
++ { 0, 1, 1, 3, 62, 24, },
++ { 2, 1, 1, 3, 62, 28, },
++ { 1, 1, 1, 3, 62, 28, },
++ { 0, 1, 1, 3, 102, 24, },
++ { 2, 1, 1, 3, 102, 28, },
++ { 1, 1, 1, 3, 102, 28, },
++ { 0, 1, 1, 3, 110, 28, },
++ { 2, 1, 1, 3, 110, 28, },
++ { 1, 1, 1, 3, 110, 28, },
++ { 0, 1, 1, 3, 118, 28, },
++ { 2, 1, 1, 3, 118, 28, },
++ { 1, 1, 1, 3, 118, 28, },
++ { 0, 1, 1, 3, 126, 28, },
++ { 2, 1, 1, 3, 126, 28, },
++ { 1, 1, 1, 3, 126, 28, },
++ { 0, 1, 1, 3, 134, 28, },
++ { 2, 1, 1, 3, 134, 28, },
++ { 1, 1, 1, 3, 134, 28, },
++ { 0, 1, 1, 3, 151, 24, },
++ { 2, 1, 1, 3, 151, 28, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 28, },
++ { 2, 1, 1, 3, 159, 28, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 20, },
++ { 2, 1, 1, 6, 38, 26, },
++ { 1, 1, 1, 6, 38, 26, },
++ { 0, 1, 1, 6, 46, 26, },
++ { 2, 1, 1, 6, 46, 26, },
++ { 1, 1, 1, 6, 46, 26, },
++ { 0, 1, 1, 6, 54, 26, },
++ { 2, 1, 1, 6, 54, 26, },
++ { 1, 1, 1, 6, 54, 26, },
++ { 0, 1, 1, 6, 62, 20, },
++ { 2, 1, 1, 6, 62, 26, },
++ { 1, 1, 1, 6, 62, 26, },
++ { 0, 1, 1, 6, 102, 20, },
++ { 2, 1, 1, 6, 102, 26, },
++ { 1, 1, 1, 6, 102, 26, },
++ { 0, 1, 1, 6, 110, 26, },
++ { 2, 1, 1, 6, 110, 26, },
++ { 1, 1, 1, 6, 110, 26, },
++ { 0, 1, 1, 6, 118, 26, },
++ { 2, 1, 1, 6, 118, 26, },
++ { 1, 1, 1, 6, 118, 26, },
++ { 0, 1, 1, 6, 126, 26, },
++ { 2, 1, 1, 6, 126, 26, },
++ { 1, 1, 1, 6, 126, 26, },
++ { 0, 1, 1, 6, 134, 26, },
++ { 2, 1, 1, 6, 134, 26, },
++ { 1, 1, 1, 6, 134, 26, },
++ { 0, 1, 1, 6, 151, 20, },
++ { 2, 1, 1, 6, 151, 26, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 26, },
++ { 2, 1, 1, 6, 159, 26, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 18, },
++ { 2, 1, 1, 7, 38, 24, },
++ { 1, 1, 1, 7, 38, 24, },
++ { 0, 1, 1, 7, 46, 24, },
++ { 2, 1, 1, 7, 46, 24, },
++ { 1, 1, 1, 7, 46, 24, },
++ { 0, 1, 1, 7, 54, 24, },
++ { 2, 1, 1, 7, 54, 24, },
++ { 1, 1, 1, 7, 54, 24, },
++ { 0, 1, 1, 7, 62, 18, },
++ { 2, 1, 1, 7, 62, 24, },
++ { 1, 1, 1, 7, 62, 24, },
++ { 0, 1, 1, 7, 102, 18, },
++ { 2, 1, 1, 7, 102, 24, },
++ { 1, 1, 1, 7, 102, 24, },
++ { 0, 1, 1, 7, 110, 24, },
++ { 2, 1, 1, 7, 110, 24, },
++ { 1, 1, 1, 7, 110, 24, },
++ { 0, 1, 1, 7, 118, 24, },
++ { 2, 1, 1, 7, 118, 24, },
++ { 1, 1, 1, 7, 118, 24, },
++ { 0, 1, 1, 7, 126, 24, },
++ { 2, 1, 1, 7, 126, 24, },
++ { 1, 1, 1, 7, 126, 24, },
++ { 0, 1, 1, 7, 134, 24, },
++ { 2, 1, 1, 7, 134, 24, },
++ { 1, 1, 1, 7, 134, 24, },
++ { 0, 1, 1, 7, 151, 18, },
++ { 2, 1, 1, 7, 151, 24, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 24, },
++ { 2, 1, 1, 7, 159, 24, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 22, },
++ { 2, 1, 2, 4, 42, 30, },
++ { 1, 1, 2, 4, 42, 30, },
++ { 0, 1, 2, 4, 58, 22, },
++ { 2, 1, 2, 4, 58, 30, },
++ { 1, 1, 2, 4, 58, 30, },
++ { 0, 1, 2, 4, 106, 22, },
++ { 2, 1, 2, 4, 106, 30, },
++ { 1, 1, 2, 4, 106, 30, },
++ { 0, 1, 2, 4, 122, 30, },
++ { 2, 1, 2, 4, 122, 30, },
++ { 1, 1, 2, 4, 122, 30, },
++ { 0, 1, 2, 4, 155, 22, },
++ { 2, 1, 2, 4, 155, 30, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 20, },
++ { 2, 1, 2, 5, 42, 28, },
++ { 1, 1, 2, 5, 42, 28, },
++ { 0, 1, 2, 5, 58, 20, },
++ { 2, 1, 2, 5, 58, 28, },
++ { 1, 1, 2, 5, 58, 28, },
++ { 0, 1, 2, 5, 106, 20, },
++ { 2, 1, 2, 5, 106, 28, },
++ { 1, 1, 2, 5, 106, 28, },
++ { 0, 1, 2, 5, 122, 28, },
++ { 2, 1, 2, 5, 122, 28, },
++ { 1, 1, 2, 5, 122, 28, },
++ { 0, 1, 2, 5, 155, 20, },
++ { 2, 1, 2, 5, 155, 28, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 18, },
++ { 2, 1, 2, 8, 42, 26, },
++ { 1, 1, 2, 8, 42, 26, },
++ { 0, 1, 2, 8, 58, 18, },
++ { 2, 1, 2, 8, 58, 26, },
++ { 1, 1, 2, 8, 58, 26, },
++ { 0, 1, 2, 8, 106, 18, },
++ { 2, 1, 2, 8, 106, 26, },
++ { 1, 1, 2, 8, 106, 26, },
++ { 0, 1, 2, 8, 122, 26, },
++ { 2, 1, 2, 8, 122, 26, },
++ { 1, 1, 2, 8, 122, 26, },
++ { 0, 1, 2, 8, 155, 18, },
++ { 2, 1, 2, 8, 155, 26, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 16, },
++ { 2, 1, 2, 9, 42, 24, },
++ { 1, 1, 2, 9, 42, 24, },
++ { 0, 1, 2, 9, 58, 16, },
++ { 2, 1, 2, 9, 58, 24, },
++ { 1, 1, 2, 9, 58, 24, },
++ { 0, 1, 2, 9, 106, 16, },
++ { 2, 1, 2, 9, 106, 24, },
++ { 1, 1, 2, 9, 106, 24, },
++ { 0, 1, 2, 9, 122, 24, },
++ { 2, 1, 2, 9, 122, 24, },
++ { 1, 1, 2, 9, 122, 24, },
++ { 0, 1, 2, 9, 155, 16, },
++ { 2, 1, 2, 9, 155, 24, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type0);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type1[] = {
++ { 0, 0, 0, 0, 1, 34, },
++ { 2, 0, 0, 0, 1, 32, },
++ { 1, 0, 0, 0, 1, 32, },
++ { 0, 0, 0, 0, 2, 34, },
++ { 2, 0, 0, 0, 2, 32, },
++ { 1, 0, 0, 0, 2, 32, },
++ { 0, 0, 0, 0, 3, 34, },
++ { 2, 0, 0, 0, 3, 32, },
++ { 1, 0, 0, 0, 3, 32, },
++ { 0, 0, 0, 0, 4, 34, },
++ { 2, 0, 0, 0, 4, 32, },
++ { 1, 0, 0, 0, 4, 32, },
++ { 0, 0, 0, 0, 5, 34, },
++ { 2, 0, 0, 0, 5, 32, },
++ { 1, 0, 0, 0, 5, 32, },
++ { 0, 0, 0, 0, 6, 34, },
++ { 2, 0, 0, 0, 6, 32, },
++ { 1, 0, 0, 0, 6, 32, },
++ { 0, 0, 0, 0, 7, 34, },
++ { 2, 0, 0, 0, 7, 32, },
++ { 1, 0, 0, 0, 7, 32, },
++ { 0, 0, 0, 0, 8, 34, },
++ { 2, 0, 0, 0, 8, 32, },
++ { 1, 0, 0, 0, 8, 32, },
++ { 0, 0, 0, 0, 9, 34, },
++ { 2, 0, 0, 0, 9, 32, },
++ { 1, 0, 0, 0, 9, 32, },
++ { 0, 0, 0, 0, 10, 34, },
++ { 2, 0, 0, 0, 10, 32, },
++ { 1, 0, 0, 0, 10, 32, },
++ { 0, 0, 0, 0, 11, 34, },
++ { 2, 0, 0, 0, 11, 32, },
++ { 1, 0, 0, 0, 11, 32, },
++ { 0, 0, 0, 0, 12, 24, },
++ { 2, 0, 0, 0, 12, 32, },
++ { 1, 0, 0, 0, 12, 32, },
++ { 0, 0, 0, 0, 13, 16, },
++ { 2, 0, 0, 0, 13, 32, },
++ { 1, 0, 0, 0, 13, 32, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 32, },
++ { 0, 0, 0, 1, 1, 30, },
++ { 2, 0, 0, 1, 1, 32, },
++ { 1, 0, 0, 1, 1, 32, },
++ { 0, 0, 0, 1, 2, 32, },
++ { 2, 0, 0, 1, 2, 32, },
++ { 1, 0, 0, 1, 2, 32, },
++ { 0, 0, 0, 1, 3, 32, },
++ { 2, 0, 0, 1, 3, 32, },
++ { 1, 0, 0, 1, 3, 32, },
++ { 0, 0, 0, 1, 4, 32, },
++ { 2, 0, 0, 1, 4, 32, },
++ { 1, 0, 0, 1, 4, 32, },
++ { 0, 0, 0, 1, 5, 32, },
++ { 2, 0, 0, 1, 5, 32, },
++ { 1, 0, 0, 1, 5, 32, },
++ { 0, 0, 0, 1, 6, 32, },
++ { 2, 0, 0, 1, 6, 32, },
++ { 1, 0, 0, 1, 6, 32, },
++ { 0, 0, 0, 1, 7, 32, },
++ { 2, 0, 0, 1, 7, 32, },
++ { 1, 0, 0, 1, 7, 32, },
++ { 0, 0, 0, 1, 8, 32, },
++ { 2, 0, 0, 1, 8, 32, },
++ { 1, 0, 0, 1, 8, 32, },
++ { 0, 0, 0, 1, 9, 32, },
++ { 2, 0, 0, 1, 9, 32, },
++ { 1, 0, 0, 1, 9, 32, },
++ { 0, 0, 0, 1, 10, 32, },
++ { 2, 0, 0, 1, 10, 32, },
++ { 1, 0, 0, 1, 10, 32, },
++ { 0, 0, 0, 1, 11, 30, },
++ { 2, 0, 0, 1, 11, 32, },
++ { 1, 0, 0, 1, 11, 32, },
++ { 0, 0, 0, 1, 12, 18, },
++ { 2, 0, 0, 1, 12, 32, },
++ { 1, 0, 0, 1, 12, 32, },
++ { 0, 0, 0, 1, 13, 8, },
++ { 2, 0, 0, 1, 13, 32, },
++ { 1, 0, 0, 1, 13, 32, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 28, },
++ { 2, 0, 0, 2, 1, 32, },
++ { 1, 0, 0, 2, 1, 32, },
++ { 0, 0, 0, 2, 2, 32, },
++ { 2, 0, 0, 2, 2, 32, },
++ { 1, 0, 0, 2, 2, 32, },
++ { 0, 0, 0, 2, 3, 32, },
++ { 2, 0, 0, 2, 3, 32, },
++ { 1, 0, 0, 2, 3, 32, },
++ { 0, 0, 0, 2, 4, 32, },
++ { 2, 0, 0, 2, 4, 32, },
++ { 1, 0, 0, 2, 4, 32, },
++ { 0, 0, 0, 2, 5, 32, },
++ { 2, 0, 0, 2, 5, 32, },
++ { 1, 0, 0, 2, 5, 32, },
++ { 0, 0, 0, 2, 6, 32, },
++ { 2, 0, 0, 2, 6, 32, },
++ { 1, 0, 0, 2, 6, 32, },
++ { 0, 0, 0, 2, 7, 32, },
++ { 2, 0, 0, 2, 7, 32, },
++ { 1, 0, 0, 2, 7, 32, },
++ { 0, 0, 0, 2, 8, 32, },
++ { 2, 0, 0, 2, 8, 32, },
++ { 1, 0, 0, 2, 8, 32, },
++ { 0, 0, 0, 2, 9, 32, },
++ { 2, 0, 0, 2, 9, 32, },
++ { 1, 0, 0, 2, 9, 32, },
++ { 0, 0, 0, 2, 10, 32, },
++ { 2, 0, 0, 2, 10, 32, },
++ { 1, 0, 0, 2, 10, 32, },
++ { 0, 0, 0, 2, 11, 28, },
++ { 2, 0, 0, 2, 11, 32, },
++ { 1, 0, 0, 2, 11, 32, },
++ { 0, 0, 0, 2, 12, 16, },
++ { 2, 0, 0, 2, 12, 32, },
++ { 1, 0, 0, 2, 12, 32, },
++ { 0, 0, 0, 2, 13, 6, },
++ { 2, 0, 0, 2, 13, 32, },
++ { 1, 0, 0, 2, 13, 32, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 26, },
++ { 2, 0, 0, 3, 1, 30, },
++ { 1, 0, 0, 3, 1, 30, },
++ { 0, 0, 0, 3, 2, 30, },
++ { 2, 0, 0, 3, 2, 30, },
++ { 1, 0, 0, 3, 2, 30, },
++ { 0, 0, 0, 3, 3, 30, },
++ { 2, 0, 0, 3, 3, 30, },
++ { 1, 0, 0, 3, 3, 30, },
++ { 0, 0, 0, 3, 4, 30, },
++ { 2, 0, 0, 3, 4, 30, },
++ { 1, 0, 0, 3, 4, 30, },
++ { 0, 0, 0, 3, 5, 30, },
++ { 2, 0, 0, 3, 5, 30, },
++ { 1, 0, 0, 3, 5, 30, },
++ { 0, 0, 0, 3, 6, 30, },
++ { 2, 0, 0, 3, 6, 30, },
++ { 1, 0, 0, 3, 6, 30, },
++ { 0, 0, 0, 3, 7, 30, },
++ { 2, 0, 0, 3, 7, 30, },
++ { 1, 0, 0, 3, 7, 30, },
++ { 0, 0, 0, 3, 8, 30, },
++ { 2, 0, 0, 3, 8, 30, },
++ { 1, 0, 0, 3, 8, 30, },
++ { 0, 0, 0, 3, 9, 30, },
++ { 2, 0, 0, 3, 9, 30, },
++ { 1, 0, 0, 3, 9, 30, },
++ { 0, 0, 0, 3, 10, 30, },
++ { 2, 0, 0, 3, 10, 30, },
++ { 1, 0, 0, 3, 10, 30, },
++ { 0, 0, 0, 3, 11, 26, },
++ { 2, 0, 0, 3, 11, 30, },
++ { 1, 0, 0, 3, 11, 30, },
++ { 0, 0, 0, 3, 12, 14, },
++ { 2, 0, 0, 3, 12, 30, },
++ { 1, 0, 0, 3, 12, 30, },
++ { 0, 0, 0, 3, 13, 4, },
++ { 2, 0, 0, 3, 13, 30, },
++ { 1, 0, 0, 3, 13, 30, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 24, },
++ { 2, 0, 0, 6, 1, 28, },
++ { 1, 0, 0, 6, 1, 28, },
++ { 0, 0, 0, 6, 2, 28, },
++ { 2, 0, 0, 6, 2, 28, },
++ { 1, 0, 0, 6, 2, 28, },
++ { 0, 0, 0, 6, 3, 28, },
++ { 2, 0, 0, 6, 3, 28, },
++ { 1, 0, 0, 6, 3, 28, },
++ { 0, 0, 0, 6, 4, 28, },
++ { 2, 0, 0, 6, 4, 28, },
++ { 1, 0, 0, 6, 4, 28, },
++ { 0, 0, 0, 6, 5, 28, },
++ { 2, 0, 0, 6, 5, 28, },
++ { 1, 0, 0, 6, 5, 28, },
++ { 0, 0, 0, 6, 6, 28, },
++ { 2, 0, 0, 6, 6, 28, },
++ { 1, 0, 0, 6, 6, 28, },
++ { 0, 0, 0, 6, 7, 28, },
++ { 2, 0, 0, 6, 7, 28, },
++ { 1, 0, 0, 6, 7, 28, },
++ { 0, 0, 0, 6, 8, 28, },
++ { 2, 0, 0, 6, 8, 28, },
++ { 1, 0, 0, 6, 8, 28, },
++ { 0, 0, 0, 6, 9, 28, },
++ { 2, 0, 0, 6, 9, 28, },
++ { 1, 0, 0, 6, 9, 28, },
++ { 0, 0, 0, 6, 10, 28, },
++ { 2, 0, 0, 6, 10, 28, },
++ { 1, 0, 0, 6, 10, 28, },
++ { 0, 0, 0, 6, 11, 24, },
++ { 2, 0, 0, 6, 11, 28, },
++ { 1, 0, 0, 6, 11, 28, },
++ { 0, 0, 0, 6, 12, 14, },
++ { 2, 0, 0, 6, 12, 28, },
++ { 1, 0, 0, 6, 12, 28, },
++ { 0, 0, 0, 6, 13, 4, },
++ { 2, 0, 0, 6, 13, 28, },
++ { 1, 0, 0, 6, 13, 28, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 22, },
++ { 2, 0, 0, 7, 1, 26, },
++ { 1, 0, 0, 7, 1, 26, },
++ { 0, 0, 0, 7, 2, 26, },
++ { 2, 0, 0, 7, 2, 26, },
++ { 1, 0, 0, 7, 2, 26, },
++ { 0, 0, 0, 7, 3, 26, },
++ { 2, 0, 0, 7, 3, 26, },
++ { 1, 0, 0, 7, 3, 26, },
++ { 0, 0, 0, 7, 4, 26, },
++ { 2, 0, 0, 7, 4, 26, },
++ { 1, 0, 0, 7, 4, 26, },
++ { 0, 0, 0, 7, 5, 26, },
++ { 2, 0, 0, 7, 5, 26, },
++ { 1, 0, 0, 7, 5, 26, },
++ { 0, 0, 0, 7, 6, 26, },
++ { 2, 0, 0, 7, 6, 26, },
++ { 1, 0, 0, 7, 6, 26, },
++ { 0, 0, 0, 7, 7, 26, },
++ { 2, 0, 0, 7, 7, 26, },
++ { 1, 0, 0, 7, 7, 26, },
++ { 0, 0, 0, 7, 8, 26, },
++ { 2, 0, 0, 7, 8, 26, },
++ { 1, 0, 0, 7, 8, 26, },
++ { 0, 0, 0, 7, 9, 26, },
++ { 2, 0, 0, 7, 9, 26, },
++ { 1, 0, 0, 7, 9, 26, },
++ { 0, 0, 0, 7, 10, 26, },
++ { 2, 0, 0, 7, 10, 26, },
++ { 1, 0, 0, 7, 10, 26, },
++ { 0, 0, 0, 7, 11, 22, },
++ { 2, 0, 0, 7, 11, 26, },
++ { 1, 0, 0, 7, 11, 26, },
++ { 0, 0, 0, 7, 12, 14, },
++ { 2, 0, 0, 7, 12, 26, },
++ { 1, 0, 0, 7, 12, 26, },
++ { 0, 0, 0, 7, 13, 4, },
++ { 2, 0, 0, 7, 13, 26, },
++ { 1, 0, 0, 7, 13, 26, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 28, },
++ { 2, 0, 1, 2, 3, 32, },
++ { 1, 0, 1, 2, 3, 32, },
++ { 0, 0, 1, 2, 4, 32, },
++ { 2, 0, 1, 2, 4, 32, },
++ { 1, 0, 1, 2, 4, 32, },
++ { 0, 0, 1, 2, 5, 32, },
++ { 2, 0, 1, 2, 5, 32, },
++ { 1, 0, 1, 2, 5, 32, },
++ { 0, 0, 1, 2, 6, 32, },
++ { 2, 0, 1, 2, 6, 32, },
++ { 1, 0, 1, 2, 6, 32, },
++ { 0, 0, 1, 2, 7, 32, },
++ { 2, 0, 1, 2, 7, 32, },
++ { 1, 0, 1, 2, 7, 32, },
++ { 0, 0, 1, 2, 8, 32, },
++ { 2, 0, 1, 2, 8, 32, },
++ { 1, 0, 1, 2, 8, 32, },
++ { 0, 0, 1, 2, 9, 32, },
++ { 2, 0, 1, 2, 9, 32, },
++ { 1, 0, 1, 2, 9, 32, },
++ { 0, 0, 1, 2, 10, 32, },
++ { 2, 0, 1, 2, 10, 32, },
++ { 1, 0, 1, 2, 10, 32, },
++ { 0, 0, 1, 2, 11, 28, },
++ { 2, 0, 1, 2, 11, 32, },
++ { 1, 0, 1, 2, 11, 32, },
++ { 0, 0, 1, 2, 12, 16, },
++ { 2, 0, 1, 2, 12, 32, },
++ { 1, 0, 1, 2, 12, 32, },
++ { 0, 0, 1, 2, 13, 10, },
++ { 2, 0, 1, 2, 13, 32, },
++ { 1, 0, 1, 2, 13, 32, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 26, },
++ { 2, 0, 1, 3, 3, 30, },
++ { 1, 0, 1, 3, 3, 30, },
++ { 0, 0, 1, 3, 4, 30, },
++ { 2, 0, 1, 3, 4, 30, },
++ { 1, 0, 1, 3, 4, 30, },
++ { 0, 0, 1, 3, 5, 30, },
++ { 2, 0, 1, 3, 5, 30, },
++ { 1, 0, 1, 3, 5, 30, },
++ { 0, 0, 1, 3, 6, 30, },
++ { 2, 0, 1, 3, 6, 30, },
++ { 1, 0, 1, 3, 6, 30, },
++ { 0, 0, 1, 3, 7, 30, },
++ { 2, 0, 1, 3, 7, 30, },
++ { 1, 0, 1, 3, 7, 30, },
++ { 0, 0, 1, 3, 8, 30, },
++ { 2, 0, 1, 3, 8, 30, },
++ { 1, 0, 1, 3, 8, 30, },
++ { 0, 0, 1, 3, 9, 30, },
++ { 2, 0, 1, 3, 9, 30, },
++ { 1, 0, 1, 3, 9, 30, },
++ { 0, 0, 1, 3, 10, 30, },
++ { 2, 0, 1, 3, 10, 30, },
++ { 1, 0, 1, 3, 10, 30, },
++ { 0, 0, 1, 3, 11, 26, },
++ { 2, 0, 1, 3, 11, 30, },
++ { 1, 0, 1, 3, 11, 30, },
++ { 0, 0, 1, 3, 12, 14, },
++ { 2, 0, 1, 3, 12, 30, },
++ { 1, 0, 1, 3, 12, 30, },
++ { 0, 0, 1, 3, 13, 8, },
++ { 2, 0, 1, 3, 13, 30, },
++ { 1, 0, 1, 3, 13, 30, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 24, },
++ { 2, 0, 1, 6, 3, 28, },
++ { 1, 0, 1, 6, 3, 28, },
++ { 0, 0, 1, 6, 4, 28, },
++ { 2, 0, 1, 6, 4, 28, },
++ { 1, 0, 1, 6, 4, 28, },
++ { 0, 0, 1, 6, 5, 28, },
++ { 2, 0, 1, 6, 5, 28, },
++ { 1, 0, 1, 6, 5, 28, },
++ { 0, 0, 1, 6, 6, 28, },
++ { 2, 0, 1, 6, 6, 28, },
++ { 1, 0, 1, 6, 6, 28, },
++ { 0, 0, 1, 6, 7, 28, },
++ { 2, 0, 1, 6, 7, 28, },
++ { 1, 0, 1, 6, 7, 28, },
++ { 0, 0, 1, 6, 8, 28, },
++ { 2, 0, 1, 6, 8, 28, },
++ { 1, 0, 1, 6, 8, 28, },
++ { 0, 0, 1, 6, 9, 28, },
++ { 2, 0, 1, 6, 9, 28, },
++ { 1, 0, 1, 6, 9, 28, },
++ { 0, 0, 1, 6, 10, 28, },
++ { 2, 0, 1, 6, 10, 28, },
++ { 1, 0, 1, 6, 10, 28, },
++ { 0, 0, 1, 6, 11, 24, },
++ { 2, 0, 1, 6, 11, 28, },
++ { 1, 0, 1, 6, 11, 28, },
++ { 0, 0, 1, 6, 12, 14, },
++ { 2, 0, 1, 6, 12, 28, },
++ { 1, 0, 1, 6, 12, 28, },
++ { 0, 0, 1, 6, 13, 8, },
++ { 2, 0, 1, 6, 13, 28, },
++ { 1, 0, 1, 6, 13, 28, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 22, },
++ { 2, 0, 1, 7, 3, 26, },
++ { 1, 0, 1, 7, 3, 26, },
++ { 0, 0, 1, 7, 4, 26, },
++ { 2, 0, 1, 7, 4, 26, },
++ { 1, 0, 1, 7, 4, 26, },
++ { 0, 0, 1, 7, 5, 26, },
++ { 2, 0, 1, 7, 5, 26, },
++ { 1, 0, 1, 7, 5, 26, },
++ { 0, 0, 1, 7, 6, 26, },
++ { 2, 0, 1, 7, 6, 26, },
++ { 1, 0, 1, 7, 6, 26, },
++ { 0, 0, 1, 7, 7, 26, },
++ { 2, 0, 1, 7, 7, 26, },
++ { 1, 0, 1, 7, 7, 26, },
++ { 0, 0, 1, 7, 8, 26, },
++ { 2, 0, 1, 7, 8, 26, },
++ { 1, 0, 1, 7, 8, 26, },
++ { 0, 0, 1, 7, 9, 26, },
++ { 2, 0, 1, 7, 9, 26, },
++ { 1, 0, 1, 7, 9, 26, },
++ { 0, 0, 1, 7, 10, 26, },
++ { 2, 0, 1, 7, 10, 26, },
++ { 1, 0, 1, 7, 10, 26, },
++ { 0, 0, 1, 7, 11, 22, },
++ { 2, 0, 1, 7, 11, 26, },
++ { 1, 0, 1, 7, 11, 26, },
++ { 0, 0, 1, 7, 12, 14, },
++ { 2, 0, 1, 7, 12, 26, },
++ { 1, 0, 1, 7, 12, 26, },
++ { 0, 0, 1, 7, 13, 8, },
++ { 2, 0, 1, 7, 13, 26, },
++ { 1, 0, 1, 7, 13, 26, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 28, },
++ { 2, 1, 0, 1, 36, 32, },
++ { 1, 1, 0, 1, 36, 32, },
++ { 0, 1, 0, 1, 40, 32, },
++ { 2, 1, 0, 1, 40, 32, },
++ { 1, 1, 0, 1, 40, 32, },
++ { 0, 1, 0, 1, 44, 32, },
++ { 2, 1, 0, 1, 44, 32, },
++ { 1, 1, 0, 1, 44, 32, },
++ { 0, 1, 0, 1, 48, 32, },
++ { 2, 1, 0, 1, 48, 32, },
++ { 1, 1, 0, 1, 48, 32, },
++ { 0, 1, 0, 1, 52, 32, },
++ { 2, 1, 0, 1, 52, 32, },
++ { 1, 1, 0, 1, 52, 32, },
++ { 0, 1, 0, 1, 56, 32, },
++ { 2, 1, 0, 1, 56, 32, },
++ { 1, 1, 0, 1, 56, 32, },
++ { 0, 1, 0, 1, 60, 32, },
++ { 2, 1, 0, 1, 60, 32, },
++ { 1, 1, 0, 1, 60, 32, },
++ { 0, 1, 0, 1, 64, 30, },
++ { 2, 1, 0, 1, 64, 32, },
++ { 1, 1, 0, 1, 64, 32, },
++ { 0, 1, 0, 1, 100, 28, },
++ { 2, 1, 0, 1, 100, 32, },
++ { 1, 1, 0, 1, 100, 32, },
++ { 0, 1, 0, 1, 104, 32, },
++ { 2, 1, 0, 1, 104, 32, },
++ { 1, 1, 0, 1, 104, 32, },
++ { 0, 1, 0, 1, 108, 32, },
++ { 2, 1, 0, 1, 108, 32, },
++ { 1, 1, 0, 1, 108, 32, },
++ { 0, 1, 0, 1, 112, 32, },
++ { 2, 1, 0, 1, 112, 32, },
++ { 1, 1, 0, 1, 112, 32, },
++ { 0, 1, 0, 1, 116, 32, },
++ { 2, 1, 0, 1, 116, 32, },
++ { 1, 1, 0, 1, 116, 32, },
++ { 0, 1, 0, 1, 120, 32, },
++ { 2, 1, 0, 1, 120, 32, },
++ { 1, 1, 0, 1, 120, 32, },
++ { 0, 1, 0, 1, 124, 32, },
++ { 2, 1, 0, 1, 124, 32, },
++ { 1, 1, 0, 1, 124, 32, },
++ { 0, 1, 0, 1, 128, 32, },
++ { 2, 1, 0, 1, 128, 32, },
++ { 1, 1, 0, 1, 128, 32, },
++ { 0, 1, 0, 1, 132, 32, },
++ { 2, 1, 0, 1, 132, 32, },
++ { 1, 1, 0, 1, 132, 32, },
++ { 0, 1, 0, 1, 136, 32, },
++ { 2, 1, 0, 1, 136, 32, },
++ { 1, 1, 0, 1, 136, 32, },
++ { 0, 1, 0, 1, 140, 28, },
++ { 2, 1, 0, 1, 140, 32, },
++ { 1, 1, 0, 1, 140, 32, },
++ { 0, 1, 0, 1, 149, 28, },
++ { 2, 1, 0, 1, 149, 32, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 32, },
++ { 2, 1, 0, 1, 153, 32, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 32, },
++ { 2, 1, 0, 1, 157, 32, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 32, },
++ { 2, 1, 0, 1, 161, 32, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 32, },
++ { 2, 1, 0, 1, 165, 32, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 28, },
++ { 2, 1, 0, 2, 36, 32, },
++ { 1, 1, 0, 2, 36, 32, },
++ { 0, 1, 0, 2, 40, 32, },
++ { 2, 1, 0, 2, 40, 32, },
++ { 1, 1, 0, 2, 40, 32, },
++ { 0, 1, 0, 2, 44, 32, },
++ { 2, 1, 0, 2, 44, 32, },
++ { 1, 1, 0, 2, 44, 32, },
++ { 0, 1, 0, 2, 48, 32, },
++ { 2, 1, 0, 2, 48, 32, },
++ { 1, 1, 0, 2, 48, 32, },
++ { 0, 1, 0, 2, 52, 32, },
++ { 2, 1, 0, 2, 52, 32, },
++ { 1, 1, 0, 2, 52, 32, },
++ { 0, 1, 0, 2, 56, 32, },
++ { 2, 1, 0, 2, 56, 32, },
++ { 1, 1, 0, 2, 56, 32, },
++ { 0, 1, 0, 2, 60, 32, },
++ { 2, 1, 0, 2, 60, 32, },
++ { 1, 1, 0, 2, 60, 32, },
++ { 0, 1, 0, 2, 64, 30, },
++ { 2, 1, 0, 2, 64, 32, },
++ { 1, 1, 0, 2, 64, 32, },
++ { 0, 1, 0, 2, 100, 28, },
++ { 2, 1, 0, 2, 100, 32, },
++ { 1, 1, 0, 2, 100, 32, },
++ { 0, 1, 0, 2, 104, 32, },
++ { 2, 1, 0, 2, 104, 32, },
++ { 1, 1, 0, 2, 104, 32, },
++ { 0, 1, 0, 2, 108, 32, },
++ { 2, 1, 0, 2, 108, 32, },
++ { 1, 1, 0, 2, 108, 32, },
++ { 0, 1, 0, 2, 112, 32, },
++ { 2, 1, 0, 2, 112, 32, },
++ { 1, 1, 0, 2, 112, 32, },
++ { 0, 1, 0, 2, 116, 32, },
++ { 2, 1, 0, 2, 116, 32, },
++ { 1, 1, 0, 2, 116, 32, },
++ { 0, 1, 0, 2, 120, 32, },
++ { 2, 1, 0, 2, 120, 32, },
++ { 1, 1, 0, 2, 120, 32, },
++ { 0, 1, 0, 2, 124, 32, },
++ { 2, 1, 0, 2, 124, 32, },
++ { 1, 1, 0, 2, 124, 32, },
++ { 0, 1, 0, 2, 128, 32, },
++ { 2, 1, 0, 2, 128, 32, },
++ { 1, 1, 0, 2, 128, 32, },
++ { 0, 1, 0, 2, 132, 32, },
++ { 2, 1, 0, 2, 132, 32, },
++ { 1, 1, 0, 2, 132, 32, },
++ { 0, 1, 0, 2, 136, 32, },
++ { 2, 1, 0, 2, 136, 32, },
++ { 1, 1, 0, 2, 136, 32, },
++ { 0, 1, 0, 2, 140, 28, },
++ { 2, 1, 0, 2, 140, 32, },
++ { 1, 1, 0, 2, 140, 32, },
++ { 0, 1, 0, 2, 149, 28, },
++ { 2, 1, 0, 2, 149, 32, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 32, },
++ { 2, 1, 0, 2, 153, 32, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 32, },
++ { 2, 1, 0, 2, 157, 32, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 32, },
++ { 2, 1, 0, 2, 161, 32, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 32, },
++ { 2, 1, 0, 2, 165, 32, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 26, },
++ { 2, 1, 0, 3, 36, 30, },
++ { 1, 1, 0, 3, 36, 30, },
++ { 0, 1, 0, 3, 40, 30, },
++ { 2, 1, 0, 3, 40, 30, },
++ { 1, 1, 0, 3, 40, 30, },
++ { 0, 1, 0, 3, 44, 30, },
++ { 2, 1, 0, 3, 44, 30, },
++ { 1, 1, 0, 3, 44, 30, },
++ { 0, 1, 0, 3, 48, 30, },
++ { 2, 1, 0, 3, 48, 30, },
++ { 1, 1, 0, 3, 48, 30, },
++ { 0, 1, 0, 3, 52, 30, },
++ { 2, 1, 0, 3, 52, 30, },
++ { 1, 1, 0, 3, 52, 30, },
++ { 0, 1, 0, 3, 56, 30, },
++ { 2, 1, 0, 3, 56, 30, },
++ { 1, 1, 0, 3, 56, 30, },
++ { 0, 1, 0, 3, 60, 30, },
++ { 2, 1, 0, 3, 60, 30, },
++ { 1, 1, 0, 3, 60, 30, },
++ { 0, 1, 0, 3, 64, 28, },
++ { 2, 1, 0, 3, 64, 30, },
++ { 1, 1, 0, 3, 64, 30, },
++ { 0, 1, 0, 3, 100, 28, },
++ { 2, 1, 0, 3, 100, 30, },
++ { 1, 1, 0, 3, 100, 30, },
++ { 0, 1, 0, 3, 104, 30, },
++ { 2, 1, 0, 3, 104, 30, },
++ { 1, 1, 0, 3, 104, 30, },
++ { 0, 1, 0, 3, 108, 30, },
++ { 2, 1, 0, 3, 108, 30, },
++ { 1, 1, 0, 3, 108, 30, },
++ { 0, 1, 0, 3, 112, 30, },
++ { 2, 1, 0, 3, 112, 30, },
++ { 1, 1, 0, 3, 112, 30, },
++ { 0, 1, 0, 3, 116, 30, },
++ { 2, 1, 0, 3, 116, 30, },
++ { 1, 1, 0, 3, 116, 30, },
++ { 0, 1, 0, 3, 120, 30, },
++ { 2, 1, 0, 3, 120, 30, },
++ { 1, 1, 0, 3, 120, 30, },
++ { 0, 1, 0, 3, 124, 30, },
++ { 2, 1, 0, 3, 124, 30, },
++ { 1, 1, 0, 3, 124, 30, },
++ { 0, 1, 0, 3, 128, 30, },
++ { 2, 1, 0, 3, 128, 30, },
++ { 1, 1, 0, 3, 128, 30, },
++ { 0, 1, 0, 3, 132, 30, },
++ { 2, 1, 0, 3, 132, 30, },
++ { 1, 1, 0, 3, 132, 30, },
++ { 0, 1, 0, 3, 136, 30, },
++ { 2, 1, 0, 3, 136, 30, },
++ { 1, 1, 0, 3, 136, 30, },
++ { 0, 1, 0, 3, 140, 26, },
++ { 2, 1, 0, 3, 140, 30, },
++ { 1, 1, 0, 3, 140, 30, },
++ { 0, 1, 0, 3, 149, 26, },
++ { 2, 1, 0, 3, 149, 30, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 30, },
++ { 2, 1, 0, 3, 153, 30, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 30, },
++ { 2, 1, 0, 3, 157, 30, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 30, },
++ { 2, 1, 0, 3, 161, 30, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 30, },
++ { 2, 1, 0, 3, 165, 30, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 24, },
++ { 2, 1, 0, 6, 36, 28, },
++ { 1, 1, 0, 6, 36, 28, },
++ { 0, 1, 0, 6, 40, 28, },
++ { 2, 1, 0, 6, 40, 28, },
++ { 1, 1, 0, 6, 40, 28, },
++ { 0, 1, 0, 6, 44, 28, },
++ { 2, 1, 0, 6, 44, 28, },
++ { 1, 1, 0, 6, 44, 28, },
++ { 0, 1, 0, 6, 48, 28, },
++ { 2, 1, 0, 6, 48, 28, },
++ { 1, 1, 0, 6, 48, 28, },
++ { 0, 1, 0, 6, 52, 28, },
++ { 2, 1, 0, 6, 52, 28, },
++ { 1, 1, 0, 6, 52, 28, },
++ { 0, 1, 0, 6, 56, 28, },
++ { 2, 1, 0, 6, 56, 28, },
++ { 1, 1, 0, 6, 56, 28, },
++ { 0, 1, 0, 6, 60, 28, },
++ { 2, 1, 0, 6, 60, 28, },
++ { 1, 1, 0, 6, 60, 28, },
++ { 0, 1, 0, 6, 64, 26, },
++ { 2, 1, 0, 6, 64, 28, },
++ { 1, 1, 0, 6, 64, 28, },
++ { 0, 1, 0, 6, 100, 24, },
++ { 2, 1, 0, 6, 100, 28, },
++ { 1, 1, 0, 6, 100, 28, },
++ { 0, 1, 0, 6, 104, 28, },
++ { 2, 1, 0, 6, 104, 28, },
++ { 1, 1, 0, 6, 104, 28, },
++ { 0, 1, 0, 6, 108, 28, },
++ { 2, 1, 0, 6, 108, 28, },
++ { 1, 1, 0, 6, 108, 28, },
++ { 0, 1, 0, 6, 112, 28, },
++ { 2, 1, 0, 6, 112, 28, },
++ { 1, 1, 0, 6, 112, 28, },
++ { 0, 1, 0, 6, 116, 28, },
++ { 2, 1, 0, 6, 116, 28, },
++ { 1, 1, 0, 6, 116, 28, },
++ { 0, 1, 0, 6, 120, 28, },
++ { 2, 1, 0, 6, 120, 28, },
++ { 1, 1, 0, 6, 120, 28, },
++ { 0, 1, 0, 6, 124, 28, },
++ { 2, 1, 0, 6, 124, 28, },
++ { 1, 1, 0, 6, 124, 28, },
++ { 0, 1, 0, 6, 128, 28, },
++ { 2, 1, 0, 6, 128, 28, },
++ { 1, 1, 0, 6, 128, 28, },
++ { 0, 1, 0, 6, 132, 28, },
++ { 2, 1, 0, 6, 132, 28, },
++ { 1, 1, 0, 6, 132, 28, },
++ { 0, 1, 0, 6, 136, 28, },
++ { 2, 1, 0, 6, 136, 28, },
++ { 1, 1, 0, 6, 136, 28, },
++ { 0, 1, 0, 6, 140, 24, },
++ { 2, 1, 0, 6, 140, 28, },
++ { 1, 1, 0, 6, 140, 28, },
++ { 0, 1, 0, 6, 149, 24, },
++ { 2, 1, 0, 6, 149, 28, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 28, },
++ { 2, 1, 0, 6, 153, 28, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 28, },
++ { 2, 1, 0, 6, 157, 28, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 28, },
++ { 2, 1, 0, 6, 161, 28, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 28, },
++ { 2, 1, 0, 6, 165, 28, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 22, },
++ { 2, 1, 0, 7, 36, 26, },
++ { 1, 1, 0, 7, 36, 26, },
++ { 0, 1, 0, 7, 40, 26, },
++ { 2, 1, 0, 7, 40, 26, },
++ { 1, 1, 0, 7, 40, 26, },
++ { 0, 1, 0, 7, 44, 26, },
++ { 2, 1, 0, 7, 44, 26, },
++ { 1, 1, 0, 7, 44, 26, },
++ { 0, 1, 0, 7, 48, 26, },
++ { 2, 1, 0, 7, 48, 26, },
++ { 1, 1, 0, 7, 48, 26, },
++ { 0, 1, 0, 7, 52, 26, },
++ { 2, 1, 0, 7, 52, 26, },
++ { 1, 1, 0, 7, 52, 26, },
++ { 0, 1, 0, 7, 56, 26, },
++ { 2, 1, 0, 7, 56, 26, },
++ { 1, 1, 0, 7, 56, 26, },
++ { 0, 1, 0, 7, 60, 26, },
++ { 2, 1, 0, 7, 60, 26, },
++ { 1, 1, 0, 7, 60, 26, },
++ { 0, 1, 0, 7, 64, 24, },
++ { 2, 1, 0, 7, 64, 26, },
++ { 1, 1, 0, 7, 64, 26, },
++ { 0, 1, 0, 7, 100, 22, },
++ { 2, 1, 0, 7, 100, 26, },
++ { 1, 1, 0, 7, 100, 26, },
++ { 0, 1, 0, 7, 104, 26, },
++ { 2, 1, 0, 7, 104, 26, },
++ { 1, 1, 0, 7, 104, 26, },
++ { 0, 1, 0, 7, 108, 26, },
++ { 2, 1, 0, 7, 108, 26, },
++ { 1, 1, 0, 7, 108, 26, },
++ { 0, 1, 0, 7, 112, 26, },
++ { 2, 1, 0, 7, 112, 26, },
++ { 1, 1, 0, 7, 112, 26, },
++ { 0, 1, 0, 7, 116, 26, },
++ { 2, 1, 0, 7, 116, 26, },
++ { 1, 1, 0, 7, 116, 26, },
++ { 0, 1, 0, 7, 120, 26, },
++ { 2, 1, 0, 7, 120, 26, },
++ { 1, 1, 0, 7, 120, 26, },
++ { 0, 1, 0, 7, 124, 26, },
++ { 2, 1, 0, 7, 124, 26, },
++ { 1, 1, 0, 7, 124, 26, },
++ { 0, 1, 0, 7, 128, 26, },
++ { 2, 1, 0, 7, 128, 26, },
++ { 1, 1, 0, 7, 128, 26, },
++ { 0, 1, 0, 7, 132, 26, },
++ { 2, 1, 0, 7, 132, 26, },
++ { 1, 1, 0, 7, 132, 26, },
++ { 0, 1, 0, 7, 136, 26, },
++ { 2, 1, 0, 7, 136, 26, },
++ { 1, 1, 0, 7, 136, 26, },
++ { 0, 1, 0, 7, 140, 22, },
++ { 2, 1, 0, 7, 140, 26, },
++ { 1, 1, 0, 7, 140, 26, },
++ { 0, 1, 0, 7, 149, 22, },
++ { 2, 1, 0, 7, 149, 26, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 26, },
++ { 2, 1, 0, 7, 153, 26, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 26, },
++ { 2, 1, 0, 7, 157, 26, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 26, },
++ { 2, 1, 0, 7, 161, 26, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 26, },
++ { 2, 1, 0, 7, 165, 26, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 28, },
++ { 2, 1, 1, 2, 38, 32, },
++ { 1, 1, 1, 2, 38, 32, },
++ { 0, 1, 1, 2, 46, 32, },
++ { 2, 1, 1, 2, 46, 32, },
++ { 1, 1, 1, 2, 46, 32, },
++ { 0, 1, 1, 2, 54, 32, },
++ { 2, 1, 1, 2, 54, 32, },
++ { 1, 1, 1, 2, 54, 32, },
++ { 0, 1, 1, 2, 62, 28, },
++ { 2, 1, 1, 2, 62, 32, },
++ { 1, 1, 1, 2, 62, 32, },
++ { 0, 1, 1, 2, 102, 28, },
++ { 2, 1, 1, 2, 102, 32, },
++ { 1, 1, 1, 2, 102, 32, },
++ { 0, 1, 1, 2, 110, 32, },
++ { 2, 1, 1, 2, 110, 32, },
++ { 1, 1, 1, 2, 110, 32, },
++ { 0, 1, 1, 2, 118, 32, },
++ { 2, 1, 1, 2, 118, 32, },
++ { 1, 1, 1, 2, 118, 32, },
++ { 0, 1, 1, 2, 126, 32, },
++ { 2, 1, 1, 2, 126, 32, },
++ { 1, 1, 1, 2, 126, 32, },
++ { 0, 1, 1, 2, 134, 30, },
++ { 2, 1, 1, 2, 134, 32, },
++ { 1, 1, 1, 2, 134, 32, },
++ { 0, 1, 1, 2, 151, 28, },
++ { 2, 1, 1, 2, 151, 32, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 32, },
++ { 2, 1, 1, 2, 159, 32, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 26, },
++ { 2, 1, 1, 3, 38, 30, },
++ { 1, 1, 1, 3, 38, 30, },
++ { 0, 1, 1, 3, 46, 30, },
++ { 2, 1, 1, 3, 46, 30, },
++ { 1, 1, 1, 3, 46, 30, },
++ { 0, 1, 1, 3, 54, 30, },
++ { 2, 1, 1, 3, 54, 30, },
++ { 1, 1, 1, 3, 54, 30, },
++ { 0, 1, 1, 3, 62, 26, },
++ { 2, 1, 1, 3, 62, 30, },
++ { 1, 1, 1, 3, 62, 30, },
++ { 0, 1, 1, 3, 102, 26, },
++ { 2, 1, 1, 3, 102, 30, },
++ { 1, 1, 1, 3, 102, 30, },
++ { 0, 1, 1, 3, 110, 30, },
++ { 2, 1, 1, 3, 110, 30, },
++ { 1, 1, 1, 3, 110, 30, },
++ { 0, 1, 1, 3, 118, 30, },
++ { 2, 1, 1, 3, 118, 30, },
++ { 1, 1, 1, 3, 118, 30, },
++ { 0, 1, 1, 3, 126, 30, },
++ { 2, 1, 1, 3, 126, 30, },
++ { 1, 1, 1, 3, 126, 30, },
++ { 0, 1, 1, 3, 134, 28, },
++ { 2, 1, 1, 3, 134, 30, },
++ { 1, 1, 1, 3, 134, 30, },
++ { 0, 1, 1, 3, 151, 26, },
++ { 2, 1, 1, 3, 151, 30, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 30, },
++ { 2, 1, 1, 3, 159, 30, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 20, },
++ { 2, 1, 1, 6, 38, 28, },
++ { 1, 1, 1, 6, 38, 28, },
++ { 0, 1, 1, 6, 46, 28, },
++ { 2, 1, 1, 6, 46, 28, },
++ { 1, 1, 1, 6, 46, 28, },
++ { 0, 1, 1, 6, 54, 28, },
++ { 2, 1, 1, 6, 54, 28, },
++ { 1, 1, 1, 6, 54, 28, },
++ { 0, 1, 1, 6, 62, 20, },
++ { 2, 1, 1, 6, 62, 28, },
++ { 1, 1, 1, 6, 62, 28, },
++ { 0, 1, 1, 6, 102, 22, },
++ { 2, 1, 1, 6, 102, 28, },
++ { 1, 1, 1, 6, 102, 28, },
++ { 0, 1, 1, 6, 110, 28, },
++ { 2, 1, 1, 6, 110, 28, },
++ { 1, 1, 1, 6, 110, 28, },
++ { 0, 1, 1, 6, 118, 28, },
++ { 2, 1, 1, 6, 118, 28, },
++ { 1, 1, 1, 6, 118, 28, },
++ { 0, 1, 1, 6, 126, 28, },
++ { 2, 1, 1, 6, 126, 28, },
++ { 1, 1, 1, 6, 126, 28, },
++ { 0, 1, 1, 6, 134, 26, },
++ { 2, 1, 1, 6, 134, 28, },
++ { 1, 1, 1, 6, 134, 28, },
++ { 0, 1, 1, 6, 151, 22, },
++ { 2, 1, 1, 6, 151, 28, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 28, },
++ { 2, 1, 1, 6, 159, 28, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 18, },
++ { 2, 1, 1, 7, 38, 26, },
++ { 1, 1, 1, 7, 38, 26, },
++ { 0, 1, 1, 7, 46, 26, },
++ { 2, 1, 1, 7, 46, 26, },
++ { 1, 1, 1, 7, 46, 26, },
++ { 0, 1, 1, 7, 54, 26, },
++ { 2, 1, 1, 7, 54, 26, },
++ { 1, 1, 1, 7, 54, 26, },
++ { 0, 1, 1, 7, 62, 18, },
++ { 2, 1, 1, 7, 62, 26, },
++ { 1, 1, 1, 7, 62, 26, },
++ { 0, 1, 1, 7, 102, 20, },
++ { 2, 1, 1, 7, 102, 26, },
++ { 1, 1, 1, 7, 102, 26, },
++ { 0, 1, 1, 7, 110, 26, },
++ { 2, 1, 1, 7, 110, 26, },
++ { 1, 1, 1, 7, 110, 26, },
++ { 0, 1, 1, 7, 118, 26, },
++ { 2, 1, 1, 7, 118, 26, },
++ { 1, 1, 1, 7, 118, 26, },
++ { 0, 1, 1, 7, 126, 26, },
++ { 2, 1, 1, 7, 126, 26, },
++ { 1, 1, 1, 7, 126, 26, },
++ { 0, 1, 1, 7, 134, 24, },
++ { 2, 1, 1, 7, 134, 26, },
++ { 1, 1, 1, 7, 134, 26, },
++ { 0, 1, 1, 7, 151, 20, },
++ { 2, 1, 1, 7, 151, 26, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 26, },
++ { 2, 1, 1, 7, 159, 26, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 24, },
++ { 2, 1, 2, 4, 42, 32, },
++ { 1, 1, 2, 4, 42, 32, },
++ { 0, 1, 2, 4, 58, 24, },
++ { 2, 1, 2, 4, 58, 32, },
++ { 1, 1, 2, 4, 58, 32, },
++ { 0, 1, 2, 4, 106, 24, },
++ { 2, 1, 2, 4, 106, 32, },
++ { 1, 1, 2, 4, 106, 32, },
++ { 0, 1, 2, 4, 122, 32, },
++ { 2, 1, 2, 4, 122, 32, },
++ { 1, 1, 2, 4, 122, 32, },
++ { 0, 1, 2, 4, 155, 26, },
++ { 2, 1, 2, 4, 155, 32, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 22, },
++ { 2, 1, 2, 5, 42, 30, },
++ { 1, 1, 2, 5, 42, 30, },
++ { 0, 1, 2, 5, 58, 22, },
++ { 2, 1, 2, 5, 58, 30, },
++ { 1, 1, 2, 5, 58, 30, },
++ { 0, 1, 2, 5, 106, 22, },
++ { 2, 1, 2, 5, 106, 30, },
++ { 1, 1, 2, 5, 106, 30, },
++ { 0, 1, 2, 5, 122, 30, },
++ { 2, 1, 2, 5, 122, 30, },
++ { 1, 1, 2, 5, 122, 30, },
++ { 0, 1, 2, 5, 155, 24, },
++ { 2, 1, 2, 5, 155, 30, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 20, },
++ { 2, 1, 2, 8, 42, 28, },
++ { 1, 1, 2, 8, 42, 28, },
++ { 0, 1, 2, 8, 58, 20, },
++ { 2, 1, 2, 8, 58, 28, },
++ { 1, 1, 2, 8, 58, 28, },
++ { 0, 1, 2, 8, 106, 20, },
++ { 2, 1, 2, 8, 106, 28, },
++ { 1, 1, 2, 8, 106, 28, },
++ { 0, 1, 2, 8, 122, 28, },
++ { 2, 1, 2, 8, 122, 28, },
++ { 1, 1, 2, 8, 122, 28, },
++ { 0, 1, 2, 8, 155, 20, },
++ { 2, 1, 2, 8, 155, 28, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 18, },
++ { 2, 1, 2, 9, 42, 26, },
++ { 1, 1, 2, 9, 42, 26, },
++ { 0, 1, 2, 9, 58, 18, },
++ { 2, 1, 2, 9, 58, 26, },
++ { 1, 1, 2, 9, 58, 26, },
++ { 0, 1, 2, 9, 106, 18, },
++ { 2, 1, 2, 9, 106, 26, },
++ { 1, 1, 2, 9, 106, 26, },
++ { 0, 1, 2, 9, 122, 26, },
++ { 2, 1, 2, 9, 122, 26, },
++ { 1, 1, 2, 9, 122, 26, },
++ { 0, 1, 2, 9, 155, 18, },
++ { 2, 1, 2, 9, 155, 26, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type1);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type2[] = {
++ { 0, 0, 0, 0, 1, 42, },
++ { 2, 0, 0, 0, 1, 42, },
++ { 1, 0, 0, 0, 1, 42, },
++ { 0, 0, 0, 0, 2, 50, },
++ { 2, 0, 0, 0, 2, 42, },
++ { 1, 0, 0, 0, 2, 42, },
++ { 0, 0, 0, 0, 3, 50, },
++ { 2, 0, 0, 0, 3, 42, },
++ { 1, 0, 0, 0, 3, 42, },
++ { 0, 0, 0, 0, 4, 50, },
++ { 2, 0, 0, 0, 4, 42, },
++ { 1, 0, 0, 0, 4, 42, },
++ { 0, 0, 0, 0, 5, 50, },
++ { 2, 0, 0, 0, 5, 42, },
++ { 1, 0, 0, 0, 5, 42, },
++ { 0, 0, 0, 0, 6, 50, },
++ { 2, 0, 0, 0, 6, 42, },
++ { 1, 0, 0, 0, 6, 42, },
++ { 0, 0, 0, 0, 7, 50, },
++ { 2, 0, 0, 0, 7, 42, },
++ { 1, 0, 0, 0, 7, 42, },
++ { 0, 0, 0, 0, 8, 50, },
++ { 2, 0, 0, 0, 8, 42, },
++ { 1, 0, 0, 0, 8, 42, },
++ { 0, 0, 0, 0, 9, 50, },
++ { 2, 0, 0, 0, 9, 42, },
++ { 1, 0, 0, 0, 9, 42, },
++ { 0, 0, 0, 0, 10, 50, },
++ { 2, 0, 0, 0, 10, 42, },
++ { 1, 0, 0, 0, 10, 42, },
++ { 0, 0, 0, 0, 11, 44, },
++ { 2, 0, 0, 0, 11, 42, },
++ { 1, 0, 0, 0, 11, 42, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 42, },
++ { 1, 0, 0, 0, 12, 42, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 42, },
++ { 1, 0, 0, 0, 13, 42, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 42, },
++ { 0, 0, 0, 1, 1, 32, },
++ { 2, 0, 0, 1, 1, 42, },
++ { 1, 0, 0, 1, 1, 42, },
++ { 0, 0, 0, 1, 2, 42, },
++ { 2, 0, 0, 1, 2, 42, },
++ { 1, 0, 0, 1, 2, 42, },
++ { 0, 0, 0, 1, 3, 42, },
++ { 2, 0, 0, 1, 3, 42, },
++ { 1, 0, 0, 1, 3, 42, },
++ { 0, 0, 0, 1, 4, 42, },
++ { 2, 0, 0, 1, 4, 42, },
++ { 1, 0, 0, 1, 4, 42, },
++ { 0, 0, 0, 1, 5, 42, },
++ { 2, 0, 0, 1, 5, 42, },
++ { 1, 0, 0, 1, 5, 42, },
++ { 0, 0, 0, 1, 6, 42, },
++ { 2, 0, 0, 1, 6, 42, },
++ { 1, 0, 0, 1, 6, 42, },
++ { 0, 0, 0, 1, 7, 42, },
++ { 2, 0, 0, 1, 7, 42, },
++ { 1, 0, 0, 1, 7, 42, },
++ { 0, 0, 0, 1, 8, 42, },
++ { 2, 0, 0, 1, 8, 42, },
++ { 1, 0, 0, 1, 8, 42, },
++ { 0, 0, 0, 1, 9, 42, },
++ { 2, 0, 0, 1, 9, 42, },
++ { 1, 0, 0, 1, 9, 42, },
++ { 0, 0, 0, 1, 10, 42, },
++ { 2, 0, 0, 1, 10, 42, },
++ { 1, 0, 0, 1, 10, 42, },
++ { 0, 0, 0, 1, 11, 32, },
++ { 2, 0, 0, 1, 11, 42, },
++ { 1, 0, 0, 1, 11, 42, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 42, },
++ { 1, 0, 0, 1, 12, 42, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 42, },
++ { 1, 0, 0, 1, 13, 42, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 32, },
++ { 2, 0, 0, 2, 1, 42, },
++ { 1, 0, 0, 2, 1, 42, },
++ { 0, 0, 0, 2, 2, 40, },
++ { 2, 0, 0, 2, 2, 42, },
++ { 1, 0, 0, 2, 2, 42, },
++ { 0, 0, 0, 2, 3, 40, },
++ { 2, 0, 0, 2, 3, 42, },
++ { 1, 0, 0, 2, 3, 42, },
++ { 0, 0, 0, 2, 4, 40, },
++ { 2, 0, 0, 2, 4, 42, },
++ { 1, 0, 0, 2, 4, 42, },
++ { 0, 0, 0, 2, 5, 40, },
++ { 2, 0, 0, 2, 5, 42, },
++ { 1, 0, 0, 2, 5, 42, },
++ { 0, 0, 0, 2, 6, 40, },
++ { 2, 0, 0, 2, 6, 42, },
++ { 1, 0, 0, 2, 6, 42, },
++ { 0, 0, 0, 2, 7, 40, },
++ { 2, 0, 0, 2, 7, 42, },
++ { 1, 0, 0, 2, 7, 42, },
++ { 0, 0, 0, 2, 8, 40, },
++ { 2, 0, 0, 2, 8, 42, },
++ { 1, 0, 0, 2, 8, 42, },
++ { 0, 0, 0, 2, 9, 40, },
++ { 2, 0, 0, 2, 9, 42, },
++ { 1, 0, 0, 2, 9, 42, },
++ { 0, 0, 0, 2, 10, 40, },
++ { 2, 0, 0, 2, 10, 42, },
++ { 1, 0, 0, 2, 10, 42, },
++ { 0, 0, 0, 2, 11, 28, },
++ { 2, 0, 0, 2, 11, 42, },
++ { 1, 0, 0, 2, 11, 42, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 42, },
++ { 1, 0, 0, 2, 12, 42, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 42, },
++ { 1, 0, 0, 2, 13, 42, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 32, },
++ { 2, 0, 0, 3, 1, 40, },
++ { 1, 0, 0, 3, 1, 40, },
++ { 0, 0, 0, 3, 2, 40, },
++ { 2, 0, 0, 3, 2, 40, },
++ { 1, 0, 0, 3, 2, 40, },
++ { 0, 0, 0, 3, 3, 40, },
++ { 2, 0, 0, 3, 3, 40, },
++ { 1, 0, 0, 3, 3, 40, },
++ { 0, 0, 0, 3, 4, 40, },
++ { 2, 0, 0, 3, 4, 40, },
++ { 1, 0, 0, 3, 4, 40, },
++ { 0, 0, 0, 3, 5, 40, },
++ { 2, 0, 0, 3, 5, 40, },
++ { 1, 0, 0, 3, 5, 40, },
++ { 0, 0, 0, 3, 6, 40, },
++ { 2, 0, 0, 3, 6, 40, },
++ { 1, 0, 0, 3, 6, 40, },
++ { 0, 0, 0, 3, 7, 40, },
++ { 2, 0, 0, 3, 7, 40, },
++ { 1, 0, 0, 3, 7, 40, },
++ { 0, 0, 0, 3, 8, 40, },
++ { 2, 0, 0, 3, 8, 40, },
++ { 1, 0, 0, 3, 8, 40, },
++ { 0, 0, 0, 3, 9, 40, },
++ { 2, 0, 0, 3, 9, 40, },
++ { 1, 0, 0, 3, 9, 40, },
++ { 0, 0, 0, 3, 10, 40, },
++ { 2, 0, 0, 3, 10, 40, },
++ { 1, 0, 0, 3, 10, 40, },
++ { 0, 0, 0, 3, 11, 28, },
++ { 2, 0, 0, 3, 11, 40, },
++ { 1, 0, 0, 3, 11, 40, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 40, },
++ { 1, 0, 0, 3, 12, 40, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 40, },
++ { 1, 0, 0, 3, 13, 40, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 32, },
++ { 2, 0, 0, 6, 1, 40, },
++ { 1, 0, 0, 6, 1, 40, },
++ { 0, 0, 0, 6, 2, 40, },
++ { 2, 0, 0, 6, 2, 40, },
++ { 1, 0, 0, 6, 2, 40, },
++ { 0, 0, 0, 6, 3, 40, },
++ { 2, 0, 0, 6, 3, 40, },
++ { 1, 0, 0, 6, 3, 40, },
++ { 0, 0, 0, 6, 4, 40, },
++ { 2, 0, 0, 6, 4, 40, },
++ { 1, 0, 0, 6, 4, 40, },
++ { 0, 0, 0, 6, 5, 40, },
++ { 2, 0, 0, 6, 5, 40, },
++ { 1, 0, 0, 6, 5, 40, },
++ { 0, 0, 0, 6, 6, 40, },
++ { 2, 0, 0, 6, 6, 40, },
++ { 1, 0, 0, 6, 6, 40, },
++ { 0, 0, 0, 6, 7, 40, },
++ { 2, 0, 0, 6, 7, 40, },
++ { 1, 0, 0, 6, 7, 40, },
++ { 0, 0, 0, 6, 8, 40, },
++ { 2, 0, 0, 6, 8, 40, },
++ { 1, 0, 0, 6, 8, 40, },
++ { 0, 0, 0, 6, 9, 40, },
++ { 2, 0, 0, 6, 9, 40, },
++ { 1, 0, 0, 6, 9, 40, },
++ { 0, 0, 0, 6, 10, 40, },
++ { 2, 0, 0, 6, 10, 40, },
++ { 1, 0, 0, 6, 10, 40, },
++ { 0, 0, 0, 6, 11, 28, },
++ { 2, 0, 0, 6, 11, 40, },
++ { 1, 0, 0, 6, 11, 40, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 40, },
++ { 1, 0, 0, 6, 12, 40, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 40, },
++ { 1, 0, 0, 6, 13, 40, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 32, },
++ { 2, 0, 0, 7, 1, 40, },
++ { 1, 0, 0, 7, 1, 40, },
++ { 0, 0, 0, 7, 2, 40, },
++ { 2, 0, 0, 7, 2, 40, },
++ { 1, 0, 0, 7, 2, 40, },
++ { 0, 0, 0, 7, 3, 40, },
++ { 2, 0, 0, 7, 3, 40, },
++ { 1, 0, 0, 7, 3, 40, },
++ { 0, 0, 0, 7, 4, 40, },
++ { 2, 0, 0, 7, 4, 40, },
++ { 1, 0, 0, 7, 4, 40, },
++ { 0, 0, 0, 7, 5, 40, },
++ { 2, 0, 0, 7, 5, 40, },
++ { 1, 0, 0, 7, 5, 40, },
++ { 0, 0, 0, 7, 6, 40, },
++ { 2, 0, 0, 7, 6, 40, },
++ { 1, 0, 0, 7, 6, 40, },
++ { 0, 0, 0, 7, 7, 40, },
++ { 2, 0, 0, 7, 7, 40, },
++ { 1, 0, 0, 7, 7, 40, },
++ { 0, 0, 0, 7, 8, 40, },
++ { 2, 0, 0, 7, 8, 40, },
++ { 1, 0, 0, 7, 8, 40, },
++ { 0, 0, 0, 7, 9, 40, },
++ { 2, 0, 0, 7, 9, 40, },
++ { 1, 0, 0, 7, 9, 40, },
++ { 0, 0, 0, 7, 10, 40, },
++ { 2, 0, 0, 7, 10, 40, },
++ { 1, 0, 0, 7, 10, 40, },
++ { 0, 0, 0, 7, 11, 28, },
++ { 2, 0, 0, 7, 11, 40, },
++ { 1, 0, 0, 7, 11, 40, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 40, },
++ { 1, 0, 0, 7, 12, 40, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 40, },
++ { 1, 0, 0, 7, 13, 40, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 30, },
++ { 2, 0, 1, 2, 3, 34, },
++ { 1, 0, 1, 2, 3, 34, },
++ { 0, 0, 1, 2, 4, 34, },
++ { 2, 0, 1, 2, 4, 34, },
++ { 1, 0, 1, 2, 4, 34, },
++ { 0, 0, 1, 2, 5, 34, },
++ { 2, 0, 1, 2, 5, 34, },
++ { 1, 0, 1, 2, 5, 34, },
++ { 0, 0, 1, 2, 6, 34, },
++ { 2, 0, 1, 2, 6, 34, },
++ { 1, 0, 1, 2, 6, 34, },
++ { 0, 0, 1, 2, 7, 34, },
++ { 2, 0, 1, 2, 7, 34, },
++ { 1, 0, 1, 2, 7, 34, },
++ { 0, 0, 1, 2, 8, 34, },
++ { 2, 0, 1, 2, 8, 34, },
++ { 1, 0, 1, 2, 8, 34, },
++ { 0, 0, 1, 2, 9, 34, },
++ { 2, 0, 1, 2, 9, 34, },
++ { 1, 0, 1, 2, 9, 34, },
++ { 0, 0, 1, 2, 10, 34, },
++ { 2, 0, 1, 2, 10, 34, },
++ { 1, 0, 1, 2, 10, 34, },
++ { 0, 0, 1, 2, 11, 28, },
++ { 2, 0, 1, 2, 11, 34, },
++ { 1, 0, 1, 2, 11, 34, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 34, },
++ { 1, 0, 1, 2, 12, 34, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 34, },
++ { 1, 0, 1, 2, 13, 34, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 30, },
++ { 2, 0, 1, 3, 3, 34, },
++ { 1, 0, 1, 3, 3, 34, },
++ { 0, 0, 1, 3, 4, 34, },
++ { 2, 0, 1, 3, 4, 34, },
++ { 1, 0, 1, 3, 4, 34, },
++ { 0, 0, 1, 3, 5, 34, },
++ { 2, 0, 1, 3, 5, 34, },
++ { 1, 0, 1, 3, 5, 34, },
++ { 0, 0, 1, 3, 6, 34, },
++ { 2, 0, 1, 3, 6, 34, },
++ { 1, 0, 1, 3, 6, 34, },
++ { 0, 0, 1, 3, 7, 34, },
++ { 2, 0, 1, 3, 7, 34, },
++ { 1, 0, 1, 3, 7, 34, },
++ { 0, 0, 1, 3, 8, 34, },
++ { 2, 0, 1, 3, 8, 34, },
++ { 1, 0, 1, 3, 8, 34, },
++ { 0, 0, 1, 3, 9, 34, },
++ { 2, 0, 1, 3, 9, 34, },
++ { 1, 0, 1, 3, 9, 34, },
++ { 0, 0, 1, 3, 10, 34, },
++ { 2, 0, 1, 3, 10, 34, },
++ { 1, 0, 1, 3, 10, 34, },
++ { 0, 0, 1, 3, 11, 28, },
++ { 2, 0, 1, 3, 11, 34, },
++ { 1, 0, 1, 3, 11, 34, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 34, },
++ { 1, 0, 1, 3, 12, 34, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 34, },
++ { 1, 0, 1, 3, 13, 34, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 30, },
++ { 2, 0, 1, 6, 3, 34, },
++ { 1, 0, 1, 6, 3, 34, },
++ { 0, 0, 1, 6, 4, 34, },
++ { 2, 0, 1, 6, 4, 34, },
++ { 1, 0, 1, 6, 4, 34, },
++ { 0, 0, 1, 6, 5, 34, },
++ { 2, 0, 1, 6, 5, 34, },
++ { 1, 0, 1, 6, 5, 34, },
++ { 0, 0, 1, 6, 6, 34, },
++ { 2, 0, 1, 6, 6, 34, },
++ { 1, 0, 1, 6, 6, 34, },
++ { 0, 0, 1, 6, 7, 34, },
++ { 2, 0, 1, 6, 7, 34, },
++ { 1, 0, 1, 6, 7, 34, },
++ { 0, 0, 1, 6, 8, 34, },
++ { 2, 0, 1, 6, 8, 34, },
++ { 1, 0, 1, 6, 8, 34, },
++ { 0, 0, 1, 6, 9, 34, },
++ { 2, 0, 1, 6, 9, 34, },
++ { 1, 0, 1, 6, 9, 34, },
++ { 0, 0, 1, 6, 10, 34, },
++ { 2, 0, 1, 6, 10, 34, },
++ { 1, 0, 1, 6, 10, 34, },
++ { 0, 0, 1, 6, 11, 28, },
++ { 2, 0, 1, 6, 11, 34, },
++ { 1, 0, 1, 6, 11, 34, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 34, },
++ { 1, 0, 1, 6, 12, 34, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 34, },
++ { 1, 0, 1, 6, 13, 34, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 30, },
++ { 2, 0, 1, 7, 3, 34, },
++ { 1, 0, 1, 7, 3, 34, },
++ { 0, 0, 1, 7, 4, 34, },
++ { 2, 0, 1, 7, 4, 34, },
++ { 1, 0, 1, 7, 4, 34, },
++ { 0, 0, 1, 7, 5, 34, },
++ { 2, 0, 1, 7, 5, 34, },
++ { 1, 0, 1, 7, 5, 34, },
++ { 0, 0, 1, 7, 6, 34, },
++ { 2, 0, 1, 7, 6, 34, },
++ { 1, 0, 1, 7, 6, 34, },
++ { 0, 0, 1, 7, 7, 34, },
++ { 2, 0, 1, 7, 7, 34, },
++ { 1, 0, 1, 7, 7, 34, },
++ { 0, 0, 1, 7, 8, 34, },
++ { 2, 0, 1, 7, 8, 34, },
++ { 1, 0, 1, 7, 8, 34, },
++ { 0, 0, 1, 7, 9, 34, },
++ { 2, 0, 1, 7, 9, 34, },
++ { 1, 0, 1, 7, 9, 34, },
++ { 0, 0, 1, 7, 10, 34, },
++ { 2, 0, 1, 7, 10, 34, },
++ { 1, 0, 1, 7, 10, 34, },
++ { 0, 0, 1, 7, 11, 28, },
++ { 2, 0, 1, 7, 11, 34, },
++ { 1, 0, 1, 7, 11, 34, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 34, },
++ { 1, 0, 1, 7, 12, 34, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 34, },
++ { 1, 0, 1, 7, 13, 34, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 42, },
++ { 2, 1, 0, 1, 36, 42, },
++ { 1, 1, 0, 1, 36, 42, },
++ { 0, 1, 0, 1, 40, 42, },
++ { 2, 1, 0, 1, 40, 42, },
++ { 1, 1, 0, 1, 40, 42, },
++ { 0, 1, 0, 1, 44, 42, },
++ { 2, 1, 0, 1, 44, 42, },
++ { 1, 1, 0, 1, 44, 42, },
++ { 0, 1, 0, 1, 48, 42, },
++ { 2, 1, 0, 1, 48, 42, },
++ { 1, 1, 0, 1, 48, 42, },
++ { 0, 1, 0, 1, 52, 42, },
++ { 2, 1, 0, 1, 52, 42, },
++ { 1, 1, 0, 1, 52, 42, },
++ { 0, 1, 0, 1, 56, 42, },
++ { 2, 1, 0, 1, 56, 42, },
++ { 1, 1, 0, 1, 56, 42, },
++ { 0, 1, 0, 1, 60, 42, },
++ { 2, 1, 0, 1, 60, 42, },
++ { 1, 1, 0, 1, 60, 42, },
++ { 0, 1, 0, 1, 64, 42, },
++ { 2, 1, 0, 1, 64, 42, },
++ { 1, 1, 0, 1, 64, 42, },
++ { 0, 1, 0, 1, 100, 42, },
++ { 2, 1, 0, 1, 100, 42, },
++ { 1, 1, 0, 1, 100, 42, },
++ { 0, 1, 0, 1, 104, 42, },
++ { 2, 1, 0, 1, 104, 42, },
++ { 1, 1, 0, 1, 104, 42, },
++ { 0, 1, 0, 1, 108, 42, },
++ { 2, 1, 0, 1, 108, 42, },
++ { 1, 1, 0, 1, 108, 42, },
++ { 0, 1, 0, 1, 112, 42, },
++ { 2, 1, 0, 1, 112, 42, },
++ { 1, 1, 0, 1, 112, 42, },
++ { 0, 1, 0, 1, 116, 42, },
++ { 2, 1, 0, 1, 116, 42, },
++ { 1, 1, 0, 1, 116, 42, },
++ { 0, 1, 0, 1, 120, 42, },
++ { 2, 1, 0, 1, 120, 42, },
++ { 1, 1, 0, 1, 120, 42, },
++ { 0, 1, 0, 1, 124, 42, },
++ { 2, 1, 0, 1, 124, 42, },
++ { 1, 1, 0, 1, 124, 42, },
++ { 0, 1, 0, 1, 128, 42, },
++ { 2, 1, 0, 1, 128, 42, },
++ { 1, 1, 0, 1, 128, 42, },
++ { 0, 1, 0, 1, 132, 42, },
++ { 2, 1, 0, 1, 132, 42, },
++ { 1, 1, 0, 1, 132, 42, },
++ { 0, 1, 0, 1, 136, 42, },
++ { 2, 1, 0, 1, 136, 42, },
++ { 1, 1, 0, 1, 136, 42, },
++ { 0, 1, 0, 1, 140, 40, },
++ { 2, 1, 0, 1, 140, 40, },
++ { 1, 1, 0, 1, 140, 40, },
++ { 0, 1, 0, 1, 149, 44, },
++ { 2, 1, 0, 1, 149, 44, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 44, },
++ { 2, 1, 0, 1, 153, 44, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 44, },
++ { 2, 1, 0, 1, 157, 44, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 44, },
++ { 2, 1, 0, 1, 161, 44, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 44, },
++ { 2, 1, 0, 1, 165, 44, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 32, },
++ { 2, 1, 0, 2, 36, 32, },
++ { 1, 1, 0, 2, 36, 32, },
++ { 0, 1, 0, 2, 40, 32, },
++ { 2, 1, 0, 2, 40, 32, },
++ { 1, 1, 0, 2, 40, 32, },
++ { 0, 1, 0, 2, 44, 32, },
++ { 2, 1, 0, 2, 44, 32, },
++ { 1, 1, 0, 2, 44, 32, },
++ { 0, 1, 0, 2, 48, 36, },
++ { 2, 1, 0, 2, 48, 36, },
++ { 1, 1, 0, 2, 48, 36, },
++ { 0, 1, 0, 2, 52, 36, },
++ { 2, 1, 0, 2, 52, 36, },
++ { 1, 1, 0, 2, 52, 36, },
++ { 0, 1, 0, 2, 56, 32, },
++ { 2, 1, 0, 2, 56, 32, },
++ { 1, 1, 0, 2, 56, 32, },
++ { 0, 1, 0, 2, 60, 32, },
++ { 2, 1, 0, 2, 60, 32, },
++ { 1, 1, 0, 2, 60, 32, },
++ { 0, 1, 0, 2, 64, 32, },
++ { 2, 1, 0, 2, 64, 32, },
++ { 1, 1, 0, 2, 64, 32, },
++ { 0, 1, 0, 2, 100, 32, },
++ { 2, 1, 0, 2, 100, 32, },
++ { 1, 1, 0, 2, 100, 32, },
++ { 0, 1, 0, 2, 104, 32, },
++ { 2, 1, 0, 2, 104, 32, },
++ { 1, 1, 0, 2, 104, 32, },
++ { 0, 1, 0, 2, 108, 32, },
++ { 2, 1, 0, 2, 108, 32, },
++ { 1, 1, 0, 2, 108, 32, },
++ { 0, 1, 0, 2, 112, 32, },
++ { 2, 1, 0, 2, 112, 32, },
++ { 1, 1, 0, 2, 112, 32, },
++ { 0, 1, 0, 2, 116, 32, },
++ { 2, 1, 0, 2, 116, 32, },
++ { 1, 1, 0, 2, 116, 32, },
++ { 0, 1, 0, 2, 120, 32, },
++ { 2, 1, 0, 2, 120, 32, },
++ { 1, 1, 0, 2, 120, 32, },
++ { 0, 1, 0, 2, 124, 32, },
++ { 2, 1, 0, 2, 124, 32, },
++ { 1, 1, 0, 2, 124, 32, },
++ { 0, 1, 0, 2, 128, 32, },
++ { 2, 1, 0, 2, 128, 32, },
++ { 1, 1, 0, 2, 128, 32, },
++ { 0, 1, 0, 2, 132, 32, },
++ { 2, 1, 0, 2, 132, 32, },
++ { 1, 1, 0, 2, 132, 32, },
++ { 0, 1, 0, 2, 136, 32, },
++ { 2, 1, 0, 2, 136, 32, },
++ { 1, 1, 0, 2, 136, 32, },
++ { 0, 1, 0, 2, 140, 30, },
++ { 2, 1, 0, 2, 140, 30, },
++ { 1, 1, 0, 2, 140, 30, },
++ { 0, 1, 0, 2, 149, 40, },
++ { 2, 1, 0, 2, 149, 40, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 40, },
++ { 2, 1, 0, 2, 153, 40, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 40, },
++ { 2, 1, 0, 2, 157, 40, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 40, },
++ { 2, 1, 0, 2, 161, 40, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 42, },
++ { 2, 1, 0, 2, 165, 42, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 32, },
++ { 2, 1, 0, 3, 36, 32, },
++ { 1, 1, 0, 3, 36, 32, },
++ { 0, 1, 0, 3, 40, 32, },
++ { 2, 1, 0, 3, 40, 32, },
++ { 1, 1, 0, 3, 40, 32, },
++ { 0, 1, 0, 3, 44, 32, },
++ { 2, 1, 0, 3, 44, 32, },
++ { 1, 1, 0, 3, 44, 32, },
++ { 0, 1, 0, 3, 48, 36, },
++ { 2, 1, 0, 3, 48, 36, },
++ { 1, 1, 0, 3, 48, 36, },
++ { 0, 1, 0, 3, 52, 36, },
++ { 2, 1, 0, 3, 52, 36, },
++ { 1, 1, 0, 3, 52, 36, },
++ { 0, 1, 0, 3, 56, 32, },
++ { 2, 1, 0, 3, 56, 32, },
++ { 1, 1, 0, 3, 56, 32, },
++ { 0, 1, 0, 3, 60, 32, },
++ { 2, 1, 0, 3, 60, 32, },
++ { 1, 1, 0, 3, 60, 32, },
++ { 0, 1, 0, 3, 64, 32, },
++ { 2, 1, 0, 3, 64, 32, },
++ { 1, 1, 0, 3, 64, 32, },
++ { 0, 1, 0, 3, 100, 32, },
++ { 2, 1, 0, 3, 100, 32, },
++ { 1, 1, 0, 3, 100, 32, },
++ { 0, 1, 0, 3, 104, 32, },
++ { 2, 1, 0, 3, 104, 32, },
++ { 1, 1, 0, 3, 104, 32, },
++ { 0, 1, 0, 3, 108, 32, },
++ { 2, 1, 0, 3, 108, 32, },
++ { 1, 1, 0, 3, 108, 32, },
++ { 0, 1, 0, 3, 112, 32, },
++ { 2, 1, 0, 3, 112, 32, },
++ { 1, 1, 0, 3, 112, 32, },
++ { 0, 1, 0, 3, 116, 32, },
++ { 2, 1, 0, 3, 116, 32, },
++ { 1, 1, 0, 3, 116, 32, },
++ { 0, 1, 0, 3, 120, 32, },
++ { 2, 1, 0, 3, 120, 32, },
++ { 1, 1, 0, 3, 120, 32, },
++ { 0, 1, 0, 3, 124, 32, },
++ { 2, 1, 0, 3, 124, 32, },
++ { 1, 1, 0, 3, 124, 32, },
++ { 0, 1, 0, 3, 128, 32, },
++ { 2, 1, 0, 3, 128, 32, },
++ { 1, 1, 0, 3, 128, 32, },
++ { 0, 1, 0, 3, 132, 32, },
++ { 2, 1, 0, 3, 132, 32, },
++ { 1, 1, 0, 3, 132, 32, },
++ { 0, 1, 0, 3, 136, 32, },
++ { 2, 1, 0, 3, 136, 32, },
++ { 1, 1, 0, 3, 136, 32, },
++ { 0, 1, 0, 3, 140, 30, },
++ { 2, 1, 0, 3, 140, 30, },
++ { 1, 1, 0, 3, 140, 30, },
++ { 0, 1, 0, 3, 149, 40, },
++ { 2, 1, 0, 3, 149, 40, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 40, },
++ { 2, 1, 0, 3, 153, 40, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 40, },
++ { 2, 1, 0, 3, 157, 40, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 40, },
++ { 2, 1, 0, 3, 161, 40, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 42, },
++ { 2, 1, 0, 3, 165, 42, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 32, },
++ { 2, 1, 0, 6, 36, 32, },
++ { 1, 1, 0, 6, 36, 32, },
++ { 0, 1, 0, 6, 40, 32, },
++ { 2, 1, 0, 6, 40, 32, },
++ { 1, 1, 0, 6, 40, 32, },
++ { 0, 1, 0, 6, 44, 32, },
++ { 2, 1, 0, 6, 44, 32, },
++ { 1, 1, 0, 6, 44, 32, },
++ { 0, 1, 0, 6, 48, 36, },
++ { 2, 1, 0, 6, 48, 36, },
++ { 1, 1, 0, 6, 48, 36, },
++ { 0, 1, 0, 6, 52, 36, },
++ { 2, 1, 0, 6, 52, 36, },
++ { 1, 1, 0, 6, 52, 36, },
++ { 0, 1, 0, 6, 56, 32, },
++ { 2, 1, 0, 6, 56, 32, },
++ { 1, 1, 0, 6, 56, 32, },
++ { 0, 1, 0, 6, 60, 32, },
++ { 2, 1, 0, 6, 60, 32, },
++ { 1, 1, 0, 6, 60, 32, },
++ { 0, 1, 0, 6, 64, 32, },
++ { 2, 1, 0, 6, 64, 32, },
++ { 1, 1, 0, 6, 64, 32, },
++ { 0, 1, 0, 6, 100, 32, },
++ { 2, 1, 0, 6, 100, 32, },
++ { 1, 1, 0, 6, 100, 32, },
++ { 0, 1, 0, 6, 104, 32, },
++ { 2, 1, 0, 6, 104, 32, },
++ { 1, 1, 0, 6, 104, 32, },
++ { 0, 1, 0, 6, 108, 32, },
++ { 2, 1, 0, 6, 108, 32, },
++ { 1, 1, 0, 6, 108, 32, },
++ { 0, 1, 0, 6, 112, 32, },
++ { 2, 1, 0, 6, 112, 32, },
++ { 1, 1, 0, 6, 112, 32, },
++ { 0, 1, 0, 6, 116, 32, },
++ { 2, 1, 0, 6, 116, 32, },
++ { 1, 1, 0, 6, 116, 32, },
++ { 0, 1, 0, 6, 120, 32, },
++ { 2, 1, 0, 6, 120, 32, },
++ { 1, 1, 0, 6, 120, 32, },
++ { 0, 1, 0, 6, 124, 32, },
++ { 2, 1, 0, 6, 124, 32, },
++ { 1, 1, 0, 6, 124, 32, },
++ { 0, 1, 0, 6, 128, 32, },
++ { 2, 1, 0, 6, 128, 32, },
++ { 1, 1, 0, 6, 128, 32, },
++ { 0, 1, 0, 6, 132, 32, },
++ { 2, 1, 0, 6, 132, 32, },
++ { 1, 1, 0, 6, 132, 32, },
++ { 0, 1, 0, 6, 136, 32, },
++ { 2, 1, 0, 6, 136, 32, },
++ { 1, 1, 0, 6, 136, 32, },
++ { 0, 1, 0, 6, 140, 30, },
++ { 2, 1, 0, 6, 140, 30, },
++ { 1, 1, 0, 6, 140, 30, },
++ { 0, 1, 0, 6, 149, 40, },
++ { 2, 1, 0, 6, 149, 40, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 40, },
++ { 2, 1, 0, 6, 153, 40, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 40, },
++ { 2, 1, 0, 6, 157, 40, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 40, },
++ { 2, 1, 0, 6, 161, 40, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 42, },
++ { 2, 1, 0, 6, 165, 42, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 32, },
++ { 2, 1, 0, 7, 36, 32, },
++ { 1, 1, 0, 7, 36, 32, },
++ { 0, 1, 0, 7, 40, 32, },
++ { 2, 1, 0, 7, 40, 32, },
++ { 1, 1, 0, 7, 40, 32, },
++ { 0, 1, 0, 7, 44, 32, },
++ { 2, 1, 0, 7, 44, 32, },
++ { 1, 1, 0, 7, 44, 32, },
++ { 0, 1, 0, 7, 48, 36, },
++ { 2, 1, 0, 7, 48, 36, },
++ { 1, 1, 0, 7, 48, 36, },
++ { 0, 1, 0, 7, 52, 36, },
++ { 2, 1, 0, 7, 52, 36, },
++ { 1, 1, 0, 7, 52, 36, },
++ { 0, 1, 0, 7, 56, 32, },
++ { 2, 1, 0, 7, 56, 32, },
++ { 1, 1, 0, 7, 56, 32, },
++ { 0, 1, 0, 7, 60, 32, },
++ { 2, 1, 0, 7, 60, 32, },
++ { 1, 1, 0, 7, 60, 32, },
++ { 0, 1, 0, 7, 64, 32, },
++ { 2, 1, 0, 7, 64, 32, },
++ { 1, 1, 0, 7, 64, 32, },
++ { 0, 1, 0, 7, 100, 32, },
++ { 2, 1, 0, 7, 100, 32, },
++ { 1, 1, 0, 7, 100, 32, },
++ { 0, 1, 0, 7, 104, 32, },
++ { 2, 1, 0, 7, 104, 32, },
++ { 1, 1, 0, 7, 104, 32, },
++ { 0, 1, 0, 7, 108, 32, },
++ { 2, 1, 0, 7, 108, 32, },
++ { 1, 1, 0, 7, 108, 32, },
++ { 0, 1, 0, 7, 112, 32, },
++ { 2, 1, 0, 7, 112, 32, },
++ { 1, 1, 0, 7, 112, 32, },
++ { 0, 1, 0, 7, 116, 32, },
++ { 2, 1, 0, 7, 116, 32, },
++ { 1, 1, 0, 7, 116, 32, },
++ { 0, 1, 0, 7, 120, 32, },
++ { 2, 1, 0, 7, 120, 32, },
++ { 1, 1, 0, 7, 120, 32, },
++ { 0, 1, 0, 7, 124, 32, },
++ { 2, 1, 0, 7, 124, 32, },
++ { 1, 1, 0, 7, 124, 32, },
++ { 0, 1, 0, 7, 128, 32, },
++ { 2, 1, 0, 7, 128, 32, },
++ { 1, 1, 0, 7, 128, 32, },
++ { 0, 1, 0, 7, 132, 32, },
++ { 2, 1, 0, 7, 132, 32, },
++ { 1, 1, 0, 7, 132, 32, },
++ { 0, 1, 0, 7, 136, 32, },
++ { 2, 1, 0, 7, 136, 32, },
++ { 1, 1, 0, 7, 136, 32, },
++ { 0, 1, 0, 7, 140, 30, },
++ { 2, 1, 0, 7, 140, 30, },
++ { 1, 1, 0, 7, 140, 30, },
++ { 0, 1, 0, 7, 149, 40, },
++ { 2, 1, 0, 7, 149, 40, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 40, },
++ { 2, 1, 0, 7, 153, 40, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 40, },
++ { 2, 1, 0, 7, 157, 40, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 40, },
++ { 2, 1, 0, 7, 161, 40, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 42, },
++ { 2, 1, 0, 7, 165, 42, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 32, },
++ { 2, 1, 1, 2, 38, 32, },
++ { 1, 1, 1, 2, 38, 32, },
++ { 0, 1, 1, 2, 46, 36, },
++ { 2, 1, 1, 2, 46, 36, },
++ { 1, 1, 1, 2, 46, 36, },
++ { 0, 1, 1, 2, 54, 36, },
++ { 2, 1, 1, 2, 54, 36, },
++ { 1, 1, 1, 2, 54, 36, },
++ { 0, 1, 1, 2, 62, 32, },
++ { 2, 1, 1, 2, 62, 32, },
++ { 1, 1, 1, 2, 62, 32, },
++ { 0, 1, 1, 2, 102, 30, },
++ { 2, 1, 1, 2, 102, 30, },
++ { 1, 1, 1, 2, 102, 30, },
++ { 0, 1, 1, 2, 110, 32, },
++ { 2, 1, 1, 2, 110, 32, },
++ { 1, 1, 1, 2, 110, 32, },
++ { 0, 1, 1, 2, 118, 32, },
++ { 2, 1, 1, 2, 118, 32, },
++ { 1, 1, 1, 2, 118, 32, },
++ { 0, 1, 1, 2, 126, 32, },
++ { 2, 1, 1, 2, 126, 32, },
++ { 1, 1, 1, 2, 126, 32, },
++ { 0, 1, 1, 2, 134, 36, },
++ { 2, 1, 1, 2, 134, 36, },
++ { 1, 1, 1, 2, 134, 36, },
++ { 0, 1, 1, 2, 151, 36, },
++ { 2, 1, 1, 2, 151, 36, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 40, },
++ { 2, 1, 1, 2, 159, 40, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 32, },
++ { 2, 1, 1, 3, 38, 32, },
++ { 1, 1, 1, 3, 38, 32, },
++ { 0, 1, 1, 3, 46, 36, },
++ { 2, 1, 1, 3, 46, 36, },
++ { 1, 1, 1, 3, 46, 36, },
++ { 0, 1, 1, 3, 54, 36, },
++ { 2, 1, 1, 3, 54, 36, },
++ { 1, 1, 1, 3, 54, 36, },
++ { 0, 1, 1, 3, 62, 32, },
++ { 2, 1, 1, 3, 62, 32, },
++ { 1, 1, 1, 3, 62, 32, },
++ { 0, 1, 1, 3, 102, 30, },
++ { 2, 1, 1, 3, 102, 30, },
++ { 1, 1, 1, 3, 102, 30, },
++ { 0, 1, 1, 3, 110, 32, },
++ { 2, 1, 1, 3, 110, 32, },
++ { 1, 1, 1, 3, 110, 32, },
++ { 0, 1, 1, 3, 118, 32, },
++ { 2, 1, 1, 3, 118, 32, },
++ { 1, 1, 1, 3, 118, 32, },
++ { 0, 1, 1, 3, 126, 32, },
++ { 2, 1, 1, 3, 126, 32, },
++ { 1, 1, 1, 3, 126, 32, },
++ { 0, 1, 1, 3, 134, 36, },
++ { 2, 1, 1, 3, 134, 36, },
++ { 1, 1, 1, 3, 134, 36, },
++ { 0, 1, 1, 3, 151, 36, },
++ { 2, 1, 1, 3, 151, 36, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 40, },
++ { 2, 1, 1, 3, 159, 40, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 32, },
++ { 2, 1, 1, 6, 38, 32, },
++ { 1, 1, 1, 6, 38, 32, },
++ { 0, 1, 1, 6, 46, 36, },
++ { 2, 1, 1, 6, 46, 36, },
++ { 1, 1, 1, 6, 46, 36, },
++ { 0, 1, 1, 6, 54, 36, },
++ { 2, 1, 1, 6, 54, 36, },
++ { 1, 1, 1, 6, 54, 36, },
++ { 0, 1, 1, 6, 62, 32, },
++ { 2, 1, 1, 6, 62, 32, },
++ { 1, 1, 1, 6, 62, 32, },
++ { 0, 1, 1, 6, 102, 30, },
++ { 2, 1, 1, 6, 102, 30, },
++ { 1, 1, 1, 6, 102, 30, },
++ { 0, 1, 1, 6, 110, 32, },
++ { 2, 1, 1, 6, 110, 32, },
++ { 1, 1, 1, 6, 110, 32, },
++ { 0, 1, 1, 6, 118, 32, },
++ { 2, 1, 1, 6, 118, 32, },
++ { 1, 1, 1, 6, 118, 32, },
++ { 0, 1, 1, 6, 126, 32, },
++ { 2, 1, 1, 6, 126, 32, },
++ { 1, 1, 1, 6, 126, 32, },
++ { 0, 1, 1, 6, 134, 36, },
++ { 2, 1, 1, 6, 134, 36, },
++ { 1, 1, 1, 6, 134, 36, },
++ { 0, 1, 1, 6, 151, 36, },
++ { 2, 1, 1, 6, 151, 36, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 40, },
++ { 2, 1, 1, 6, 159, 40, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 32, },
++ { 2, 1, 1, 7, 38, 32, },
++ { 1, 1, 1, 7, 38, 32, },
++ { 0, 1, 1, 7, 46, 36, },
++ { 2, 1, 1, 7, 46, 36, },
++ { 1, 1, 1, 7, 46, 36, },
++ { 0, 1, 1, 7, 54, 36, },
++ { 2, 1, 1, 7, 54, 36, },
++ { 1, 1, 1, 7, 54, 36, },
++ { 0, 1, 1, 7, 62, 32, },
++ { 2, 1, 1, 7, 62, 32, },
++ { 1, 1, 1, 7, 62, 32, },
++ { 0, 1, 1, 7, 102, 30, },
++ { 2, 1, 1, 7, 102, 30, },
++ { 1, 1, 1, 7, 102, 30, },
++ { 0, 1, 1, 7, 110, 32, },
++ { 2, 1, 1, 7, 110, 32, },
++ { 1, 1, 1, 7, 110, 32, },
++ { 0, 1, 1, 7, 118, 32, },
++ { 2, 1, 1, 7, 118, 32, },
++ { 1, 1, 1, 7, 118, 32, },
++ { 0, 1, 1, 7, 126, 32, },
++ { 2, 1, 1, 7, 126, 32, },
++ { 1, 1, 1, 7, 126, 32, },
++ { 0, 1, 1, 7, 134, 36, },
++ { 2, 1, 1, 7, 134, 36, },
++ { 1, 1, 1, 7, 134, 36, },
++ { 0, 1, 1, 7, 151, 36, },
++ { 2, 1, 1, 7, 151, 36, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 40, },
++ { 2, 1, 1, 7, 159, 40, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 34, },
++ { 2, 1, 2, 4, 42, 34, },
++ { 1, 1, 2, 4, 42, 34, },
++ { 0, 1, 2, 4, 58, 34, },
++ { 2, 1, 2, 4, 58, 34, },
++ { 1, 1, 2, 4, 58, 34, },
++ { 0, 1, 2, 4, 106, 32, },
++ { 2, 1, 2, 4, 106, 32, },
++ { 1, 1, 2, 4, 106, 32, },
++ { 0, 1, 2, 4, 122, 34, },
++ { 2, 1, 2, 4, 122, 34, },
++ { 1, 1, 2, 4, 122, 34, },
++ { 0, 1, 2, 4, 155, 34, },
++ { 2, 1, 2, 4, 155, 34, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 34, },
++ { 2, 1, 2, 5, 42, 34, },
++ { 1, 1, 2, 5, 42, 34, },
++ { 0, 1, 2, 5, 58, 34, },
++ { 2, 1, 2, 5, 58, 34, },
++ { 1, 1, 2, 5, 58, 34, },
++ { 0, 1, 2, 5, 106, 32, },
++ { 2, 1, 2, 5, 106, 32, },
++ { 1, 1, 2, 5, 106, 32, },
++ { 0, 1, 2, 5, 122, 34, },
++ { 2, 1, 2, 5, 122, 34, },
++ { 1, 1, 2, 5, 122, 34, },
++ { 0, 1, 2, 5, 155, 34, },
++ { 2, 1, 2, 5, 155, 34, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 34, },
++ { 2, 1, 2, 8, 42, 34, },
++ { 1, 1, 2, 8, 42, 34, },
++ { 0, 1, 2, 8, 58, 34, },
++ { 2, 1, 2, 8, 58, 34, },
++ { 1, 1, 2, 8, 58, 34, },
++ { 0, 1, 2, 8, 106, 32, },
++ { 2, 1, 2, 8, 106, 32, },
++ { 1, 1, 2, 8, 106, 32, },
++ { 0, 1, 2, 8, 122, 34, },
++ { 2, 1, 2, 8, 122, 34, },
++ { 1, 1, 2, 8, 122, 34, },
++ { 0, 1, 2, 8, 155, 34, },
++ { 2, 1, 2, 8, 155, 34, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 34, },
++ { 2, 1, 2, 9, 42, 34, },
++ { 1, 1, 2, 9, 42, 34, },
++ { 0, 1, 2, 9, 58, 34, },
++ { 2, 1, 2, 9, 58, 34, },
++ { 1, 1, 2, 9, 58, 34, },
++ { 0, 1, 2, 9, 106, 32, },
++ { 2, 1, 2, 9, 106, 32, },
++ { 1, 1, 2, 9, 106, 32, },
++ { 0, 1, 2, 9, 122, 34, },
++ { 2, 1, 2, 9, 122, 34, },
++ { 1, 1, 2, 9, 122, 34, },
++ { 0, 1, 2, 9, 155, 34, },
++ { 2, 1, 2, 9, 155, 34, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type2);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type3[] = {
++ { 0, 0, 0, 0, 1, 46, },
++ { 2, 0, 0, 0, 1, 40, },
++ { 1, 0, 0, 0, 1, 40, },
++ { 0, 0, 0, 0, 2, 46, },
++ { 2, 0, 0, 0, 2, 40, },
++ { 1, 0, 0, 0, 2, 40, },
++ { 0, 0, 0, 0, 3, 46, },
++ { 2, 0, 0, 0, 3, 40, },
++ { 1, 0, 0, 0, 3, 40, },
++ { 0, 0, 0, 0, 4, 46, },
++ { 2, 0, 0, 0, 4, 40, },
++ { 1, 0, 0, 0, 4, 40, },
++ { 0, 0, 0, 0, 5, 46, },
++ { 2, 0, 0, 0, 5, 40, },
++ { 1, 0, 0, 0, 5, 40, },
++ { 0, 0, 0, 0, 6, 46, },
++ { 2, 0, 0, 0, 6, 40, },
++ { 1, 0, 0, 0, 6, 40, },
++ { 0, 0, 0, 0, 7, 46, },
++ { 2, 0, 0, 0, 7, 40, },
++ { 1, 0, 0, 0, 7, 40, },
++ { 0, 0, 0, 0, 8, 46, },
++ { 2, 0, 0, 0, 8, 40, },
++ { 1, 0, 0, 0, 8, 40, },
++ { 0, 0, 0, 0, 9, 46, },
++ { 2, 0, 0, 0, 9, 40, },
++ { 1, 0, 0, 0, 9, 40, },
++ { 0, 0, 0, 0, 10, 46, },
++ { 2, 0, 0, 0, 10, 40, },
++ { 1, 0, 0, 0, 10, 40, },
++ { 0, 0, 0, 0, 11, 46, },
++ { 2, 0, 0, 0, 11, 40, },
++ { 1, 0, 0, 0, 11, 40, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 40, },
++ { 1, 0, 0, 0, 12, 40, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 40, },
++ { 1, 0, 0, 0, 13, 40, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 40, },
++ { 0, 0, 0, 1, 1, 46, },
++ { 2, 0, 0, 1, 1, 40, },
++ { 1, 0, 0, 1, 1, 40, },
++ { 0, 0, 0, 1, 2, 46, },
++ { 2, 0, 0, 1, 2, 40, },
++ { 1, 0, 0, 1, 2, 40, },
++ { 0, 0, 0, 1, 3, 46, },
++ { 2, 0, 0, 1, 3, 40, },
++ { 1, 0, 0, 1, 3, 40, },
++ { 0, 0, 0, 1, 4, 46, },
++ { 2, 0, 0, 1, 4, 40, },
++ { 1, 0, 0, 1, 4, 40, },
++ { 0, 0, 0, 1, 5, 46, },
++ { 2, 0, 0, 1, 5, 40, },
++ { 1, 0, 0, 1, 5, 40, },
++ { 0, 0, 0, 1, 6, 46, },
++ { 2, 0, 0, 1, 6, 40, },
++ { 1, 0, 0, 1, 6, 40, },
++ { 0, 0, 0, 1, 7, 46, },
++ { 2, 0, 0, 1, 7, 40, },
++ { 1, 0, 0, 1, 7, 40, },
++ { 0, 0, 0, 1, 8, 46, },
++ { 2, 0, 0, 1, 8, 40, },
++ { 1, 0, 0, 1, 8, 40, },
++ { 0, 0, 0, 1, 9, 46, },
++ { 2, 0, 0, 1, 9, 40, },
++ { 1, 0, 0, 1, 9, 40, },
++ { 0, 0, 0, 1, 10, 46, },
++ { 2, 0, 0, 1, 10, 40, },
++ { 1, 0, 0, 1, 10, 40, },
++ { 0, 0, 0, 1, 11, 46, },
++ { 2, 0, 0, 1, 11, 40, },
++ { 1, 0, 0, 1, 11, 40, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 40, },
++ { 1, 0, 0, 1, 12, 40, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 40, },
++ { 1, 0, 0, 1, 13, 40, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 46, },
++ { 2, 0, 0, 2, 1, 40, },
++ { 1, 0, 0, 2, 1, 40, },
++ { 0, 0, 0, 2, 2, 46, },
++ { 2, 0, 0, 2, 2, 40, },
++ { 1, 0, 0, 2, 2, 40, },
++ { 0, 0, 0, 2, 3, 46, },
++ { 2, 0, 0, 2, 3, 40, },
++ { 1, 0, 0, 2, 3, 40, },
++ { 0, 0, 0, 2, 4, 46, },
++ { 2, 0, 0, 2, 4, 40, },
++ { 1, 0, 0, 2, 4, 40, },
++ { 0, 0, 0, 2, 5, 46, },
++ { 2, 0, 0, 2, 5, 40, },
++ { 1, 0, 0, 2, 5, 40, },
++ { 0, 0, 0, 2, 6, 46, },
++ { 2, 0, 0, 2, 6, 40, },
++ { 1, 0, 0, 2, 6, 40, },
++ { 0, 0, 0, 2, 7, 46, },
++ { 2, 0, 0, 2, 7, 40, },
++ { 1, 0, 0, 2, 7, 40, },
++ { 0, 0, 0, 2, 8, 46, },
++ { 2, 0, 0, 2, 8, 40, },
++ { 1, 0, 0, 2, 8, 40, },
++ { 0, 0, 0, 2, 9, 46, },
++ { 2, 0, 0, 2, 9, 40, },
++ { 1, 0, 0, 2, 9, 40, },
++ { 0, 0, 0, 2, 10, 46, },
++ { 2, 0, 0, 2, 10, 40, },
++ { 1, 0, 0, 2, 10, 40, },
++ { 0, 0, 0, 2, 11, 46, },
++ { 2, 0, 0, 2, 11, 40, },
++ { 1, 0, 0, 2, 11, 40, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 40, },
++ { 1, 0, 0, 2, 12, 40, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 40, },
++ { 1, 0, 0, 2, 13, 40, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 46, },
++ { 2, 0, 0, 3, 1, 40, },
++ { 1, 0, 0, 3, 1, 40, },
++ { 0, 0, 0, 3, 2, 46, },
++ { 2, 0, 0, 3, 2, 40, },
++ { 1, 0, 0, 3, 2, 40, },
++ { 0, 0, 0, 3, 3, 46, },
++ { 2, 0, 0, 3, 3, 40, },
++ { 1, 0, 0, 3, 3, 40, },
++ { 0, 0, 0, 3, 4, 46, },
++ { 2, 0, 0, 3, 4, 40, },
++ { 1, 0, 0, 3, 4, 40, },
++ { 0, 0, 0, 3, 5, 46, },
++ { 2, 0, 0, 3, 5, 40, },
++ { 1, 0, 0, 3, 5, 40, },
++ { 0, 0, 0, 3, 6, 46, },
++ { 2, 0, 0, 3, 6, 40, },
++ { 1, 0, 0, 3, 6, 40, },
++ { 0, 0, 0, 3, 7, 46, },
++ { 2, 0, 0, 3, 7, 40, },
++ { 1, 0, 0, 3, 7, 40, },
++ { 0, 0, 0, 3, 8, 46, },
++ { 2, 0, 0, 3, 8, 40, },
++ { 1, 0, 0, 3, 8, 40, },
++ { 0, 0, 0, 3, 9, 46, },
++ { 2, 0, 0, 3, 9, 40, },
++ { 1, 0, 0, 3, 9, 40, },
++ { 0, 0, 0, 3, 10, 46, },
++ { 2, 0, 0, 3, 10, 40, },
++ { 1, 0, 0, 3, 10, 40, },
++ { 0, 0, 0, 3, 11, 46, },
++ { 2, 0, 0, 3, 11, 40, },
++ { 1, 0, 0, 3, 11, 40, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 40, },
++ { 1, 0, 0, 3, 12, 40, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 40, },
++ { 1, 0, 0, 3, 13, 40, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 46, },
++ { 2, 0, 0, 6, 1, 40, },
++ { 1, 0, 0, 6, 1, 40, },
++ { 0, 0, 0, 6, 2, 46, },
++ { 2, 0, 0, 6, 2, 40, },
++ { 1, 0, 0, 6, 2, 40, },
++ { 0, 0, 0, 6, 3, 46, },
++ { 2, 0, 0, 6, 3, 40, },
++ { 1, 0, 0, 6, 3, 40, },
++ { 0, 0, 0, 6, 4, 46, },
++ { 2, 0, 0, 6, 4, 40, },
++ { 1, 0, 0, 6, 4, 40, },
++ { 0, 0, 0, 6, 5, 46, },
++ { 2, 0, 0, 6, 5, 40, },
++ { 1, 0, 0, 6, 5, 40, },
++ { 0, 0, 0, 6, 6, 46, },
++ { 2, 0, 0, 6, 6, 40, },
++ { 1, 0, 0, 6, 6, 40, },
++ { 0, 0, 0, 6, 7, 46, },
++ { 2, 0, 0, 6, 7, 40, },
++ { 1, 0, 0, 6, 7, 40, },
++ { 0, 0, 0, 6, 8, 46, },
++ { 2, 0, 0, 6, 8, 40, },
++ { 1, 0, 0, 6, 8, 40, },
++ { 0, 0, 0, 6, 9, 46, },
++ { 2, 0, 0, 6, 9, 40, },
++ { 1, 0, 0, 6, 9, 40, },
++ { 0, 0, 0, 6, 10, 46, },
++ { 2, 0, 0, 6, 10, 40, },
++ { 1, 0, 0, 6, 10, 40, },
++ { 0, 0, 0, 6, 11, 46, },
++ { 2, 0, 0, 6, 11, 40, },
++ { 1, 0, 0, 6, 11, 40, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 40, },
++ { 1, 0, 0, 6, 12, 40, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 40, },
++ { 1, 0, 0, 6, 13, 40, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 46, },
++ { 2, 0, 0, 7, 1, 40, },
++ { 1, 0, 0, 7, 1, 40, },
++ { 0, 0, 0, 7, 2, 46, },
++ { 2, 0, 0, 7, 2, 40, },
++ { 1, 0, 0, 7, 2, 40, },
++ { 0, 0, 0, 7, 3, 46, },
++ { 2, 0, 0, 7, 3, 40, },
++ { 1, 0, 0, 7, 3, 40, },
++ { 0, 0, 0, 7, 4, 46, },
++ { 2, 0, 0, 7, 4, 40, },
++ { 1, 0, 0, 7, 4, 40, },
++ { 0, 0, 0, 7, 5, 46, },
++ { 2, 0, 0, 7, 5, 40, },
++ { 1, 0, 0, 7, 5, 40, },
++ { 0, 0, 0, 7, 6, 46, },
++ { 2, 0, 0, 7, 6, 40, },
++ { 1, 0, 0, 7, 6, 40, },
++ { 0, 0, 0, 7, 7, 46, },
++ { 2, 0, 0, 7, 7, 40, },
++ { 1, 0, 0, 7, 7, 40, },
++ { 0, 0, 0, 7, 8, 46, },
++ { 2, 0, 0, 7, 8, 40, },
++ { 1, 0, 0, 7, 8, 40, },
++ { 0, 0, 0, 7, 9, 46, },
++ { 2, 0, 0, 7, 9, 40, },
++ { 1, 0, 0, 7, 9, 40, },
++ { 0, 0, 0, 7, 10, 46, },
++ { 2, 0, 0, 7, 10, 40, },
++ { 1, 0, 0, 7, 10, 40, },
++ { 0, 0, 0, 7, 11, 46, },
++ { 2, 0, 0, 7, 11, 40, },
++ { 1, 0, 0, 7, 11, 40, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 40, },
++ { 1, 0, 0, 7, 12, 40, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 40, },
++ { 1, 0, 0, 7, 13, 40, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 46, },
++ { 2, 0, 1, 2, 3, 40, },
++ { 1, 0, 1, 2, 3, 40, },
++ { 0, 0, 1, 2, 4, 46, },
++ { 2, 0, 1, 2, 4, 40, },
++ { 1, 0, 1, 2, 4, 40, },
++ { 0, 0, 1, 2, 5, 46, },
++ { 2, 0, 1, 2, 5, 40, },
++ { 1, 0, 1, 2, 5, 40, },
++ { 0, 0, 1, 2, 6, 46, },
++ { 2, 0, 1, 2, 6, 40, },
++ { 1, 0, 1, 2, 6, 40, },
++ { 0, 0, 1, 2, 7, 46, },
++ { 2, 0, 1, 2, 7, 40, },
++ { 1, 0, 1, 2, 7, 40, },
++ { 0, 0, 1, 2, 8, 46, },
++ { 2, 0, 1, 2, 8, 40, },
++ { 1, 0, 1, 2, 8, 40, },
++ { 0, 0, 1, 2, 9, 46, },
++ { 2, 0, 1, 2, 9, 40, },
++ { 1, 0, 1, 2, 9, 40, },
++ { 0, 0, 1, 2, 10, 46, },
++ { 2, 0, 1, 2, 10, 40, },
++ { 1, 0, 1, 2, 10, 40, },
++ { 0, 0, 1, 2, 11, 46, },
++ { 2, 0, 1, 2, 11, 40, },
++ { 1, 0, 1, 2, 11, 40, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 40, },
++ { 1, 0, 1, 2, 12, 40, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 40, },
++ { 1, 0, 1, 2, 13, 40, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 46, },
++ { 2, 0, 1, 3, 3, 40, },
++ { 1, 0, 1, 3, 3, 40, },
++ { 0, 0, 1, 3, 4, 46, },
++ { 2, 0, 1, 3, 4, 40, },
++ { 1, 0, 1, 3, 4, 40, },
++ { 0, 0, 1, 3, 5, 46, },
++ { 2, 0, 1, 3, 5, 40, },
++ { 1, 0, 1, 3, 5, 40, },
++ { 0, 0, 1, 3, 6, 46, },
++ { 2, 0, 1, 3, 6, 40, },
++ { 1, 0, 1, 3, 6, 40, },
++ { 0, 0, 1, 3, 7, 46, },
++ { 2, 0, 1, 3, 7, 40, },
++ { 1, 0, 1, 3, 7, 40, },
++ { 0, 0, 1, 3, 8, 46, },
++ { 2, 0, 1, 3, 8, 40, },
++ { 1, 0, 1, 3, 8, 40, },
++ { 0, 0, 1, 3, 9, 46, },
++ { 2, 0, 1, 3, 9, 40, },
++ { 1, 0, 1, 3, 9, 40, },
++ { 0, 0, 1, 3, 10, 46, },
++ { 2, 0, 1, 3, 10, 40, },
++ { 1, 0, 1, 3, 10, 40, },
++ { 0, 0, 1, 3, 11, 46, },
++ { 2, 0, 1, 3, 11, 40, },
++ { 1, 0, 1, 3, 11, 40, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 40, },
++ { 1, 0, 1, 3, 12, 40, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 40, },
++ { 1, 0, 1, 3, 13, 40, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 46, },
++ { 2, 0, 1, 6, 3, 40, },
++ { 1, 0, 1, 6, 3, 40, },
++ { 0, 0, 1, 6, 4, 46, },
++ { 2, 0, 1, 6, 4, 40, },
++ { 1, 0, 1, 6, 4, 40, },
++ { 0, 0, 1, 6, 5, 46, },
++ { 2, 0, 1, 6, 5, 40, },
++ { 1, 0, 1, 6, 5, 40, },
++ { 0, 0, 1, 6, 6, 46, },
++ { 2, 0, 1, 6, 6, 40, },
++ { 1, 0, 1, 6, 6, 40, },
++ { 0, 0, 1, 6, 7, 46, },
++ { 2, 0, 1, 6, 7, 40, },
++ { 1, 0, 1, 6, 7, 40, },
++ { 0, 0, 1, 6, 8, 46, },
++ { 2, 0, 1, 6, 8, 40, },
++ { 1, 0, 1, 6, 8, 40, },
++ { 0, 0, 1, 6, 9, 46, },
++ { 2, 0, 1, 6, 9, 40, },
++ { 1, 0, 1, 6, 9, 40, },
++ { 0, 0, 1, 6, 10, 46, },
++ { 2, 0, 1, 6, 10, 40, },
++ { 1, 0, 1, 6, 10, 40, },
++ { 0, 0, 1, 6, 11, 46, },
++ { 2, 0, 1, 6, 11, 40, },
++ { 1, 0, 1, 6, 11, 40, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 40, },
++ { 1, 0, 1, 6, 12, 40, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 40, },
++ { 1, 0, 1, 6, 13, 40, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 46, },
++ { 2, 0, 1, 7, 3, 40, },
++ { 1, 0, 1, 7, 3, 40, },
++ { 0, 0, 1, 7, 4, 46, },
++ { 2, 0, 1, 7, 4, 40, },
++ { 1, 0, 1, 7, 4, 40, },
++ { 0, 0, 1, 7, 5, 46, },
++ { 2, 0, 1, 7, 5, 40, },
++ { 1, 0, 1, 7, 5, 40, },
++ { 0, 0, 1, 7, 6, 46, },
++ { 2, 0, 1, 7, 6, 40, },
++ { 1, 0, 1, 7, 6, 40, },
++ { 0, 0, 1, 7, 7, 46, },
++ { 2, 0, 1, 7, 7, 40, },
++ { 1, 0, 1, 7, 7, 40, },
++ { 0, 0, 1, 7, 8, 46, },
++ { 2, 0, 1, 7, 8, 40, },
++ { 1, 0, 1, 7, 8, 40, },
++ { 0, 0, 1, 7, 9, 46, },
++ { 2, 0, 1, 7, 9, 40, },
++ { 1, 0, 1, 7, 9, 40, },
++ { 0, 0, 1, 7, 10, 46, },
++ { 2, 0, 1, 7, 10, 40, },
++ { 1, 0, 1, 7, 10, 40, },
++ { 0, 0, 1, 7, 11, 46, },
++ { 2, 0, 1, 7, 11, 40, },
++ { 1, 0, 1, 7, 11, 40, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 40, },
++ { 1, 0, 1, 7, 12, 40, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 40, },
++ { 1, 0, 1, 7, 13, 40, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 46, },
++ { 2, 1, 0, 1, 36, 40, },
++ { 1, 1, 0, 1, 36, 40, },
++ { 0, 1, 0, 1, 40, 46, },
++ { 2, 1, 0, 1, 40, 40, },
++ { 1, 1, 0, 1, 40, 40, },
++ { 0, 1, 0, 1, 44, 46, },
++ { 2, 1, 0, 1, 44, 40, },
++ { 1, 1, 0, 1, 44, 40, },
++ { 0, 1, 0, 1, 48, 46, },
++ { 2, 1, 0, 1, 48, 40, },
++ { 1, 1, 0, 1, 48, 40, },
++ { 0, 1, 0, 1, 52, 46, },
++ { 2, 1, 0, 1, 52, 40, },
++ { 1, 1, 0, 1, 52, 40, },
++ { 0, 1, 0, 1, 56, 46, },
++ { 2, 1, 0, 1, 56, 40, },
++ { 1, 1, 0, 1, 56, 40, },
++ { 0, 1, 0, 1, 60, 46, },
++ { 2, 1, 0, 1, 60, 40, },
++ { 1, 1, 0, 1, 60, 40, },
++ { 0, 1, 0, 1, 64, 46, },
++ { 2, 1, 0, 1, 64, 40, },
++ { 1, 1, 0, 1, 64, 40, },
++ { 0, 1, 0, 1, 100, 46, },
++ { 2, 1, 0, 1, 100, 40, },
++ { 1, 1, 0, 1, 100, 40, },
++ { 0, 1, 0, 1, 104, 46, },
++ { 2, 1, 0, 1, 104, 40, },
++ { 1, 1, 0, 1, 104, 40, },
++ { 0, 1, 0, 1, 108, 46, },
++ { 2, 1, 0, 1, 108, 40, },
++ { 1, 1, 0, 1, 108, 40, },
++ { 0, 1, 0, 1, 112, 46, },
++ { 2, 1, 0, 1, 112, 40, },
++ { 1, 1, 0, 1, 112, 40, },
++ { 0, 1, 0, 1, 116, 46, },
++ { 2, 1, 0, 1, 116, 40, },
++ { 1, 1, 0, 1, 116, 40, },
++ { 0, 1, 0, 1, 120, 46, },
++ { 2, 1, 0, 1, 120, 40, },
++ { 1, 1, 0, 1, 120, 40, },
++ { 0, 1, 0, 1, 124, 46, },
++ { 2, 1, 0, 1, 124, 40, },
++ { 1, 1, 0, 1, 124, 40, },
++ { 0, 1, 0, 1, 128, 46, },
++ { 2, 1, 0, 1, 128, 40, },
++ { 1, 1, 0, 1, 128, 40, },
++ { 0, 1, 0, 1, 132, 46, },
++ { 2, 1, 0, 1, 132, 40, },
++ { 1, 1, 0, 1, 132, 40, },
++ { 0, 1, 0, 1, 136, 46, },
++ { 2, 1, 0, 1, 136, 40, },
++ { 1, 1, 0, 1, 136, 40, },
++ { 0, 1, 0, 1, 140, 46, },
++ { 2, 1, 0, 1, 140, 40, },
++ { 1, 1, 0, 1, 140, 40, },
++ { 0, 1, 0, 1, 149, 46, },
++ { 2, 1, 0, 1, 149, 40, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 46, },
++ { 2, 1, 0, 1, 153, 40, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 46, },
++ { 2, 1, 0, 1, 157, 40, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 46, },
++ { 2, 1, 0, 1, 161, 40, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 46, },
++ { 2, 1, 0, 1, 165, 40, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 46, },
++ { 2, 1, 0, 2, 36, 40, },
++ { 1, 1, 0, 2, 36, 40, },
++ { 0, 1, 0, 2, 40, 46, },
++ { 2, 1, 0, 2, 40, 40, },
++ { 1, 1, 0, 2, 40, 40, },
++ { 0, 1, 0, 2, 44, 46, },
++ { 2, 1, 0, 2, 44, 40, },
++ { 1, 1, 0, 2, 44, 40, },
++ { 0, 1, 0, 2, 48, 46, },
++ { 2, 1, 0, 2, 48, 40, },
++ { 1, 1, 0, 2, 48, 40, },
++ { 0, 1, 0, 2, 52, 46, },
++ { 2, 1, 0, 2, 52, 40, },
++ { 1, 1, 0, 2, 52, 40, },
++ { 0, 1, 0, 2, 56, 46, },
++ { 2, 1, 0, 2, 56, 40, },
++ { 1, 1, 0, 2, 56, 40, },
++ { 0, 1, 0, 2, 60, 46, },
++ { 2, 1, 0, 2, 60, 40, },
++ { 1, 1, 0, 2, 60, 40, },
++ { 0, 1, 0, 2, 64, 46, },
++ { 2, 1, 0, 2, 64, 40, },
++ { 1, 1, 0, 2, 64, 40, },
++ { 0, 1, 0, 2, 100, 46, },
++ { 2, 1, 0, 2, 100, 40, },
++ { 1, 1, 0, 2, 100, 40, },
++ { 0, 1, 0, 2, 104, 46, },
++ { 2, 1, 0, 2, 104, 40, },
++ { 1, 1, 0, 2, 104, 40, },
++ { 0, 1, 0, 2, 108, 46, },
++ { 2, 1, 0, 2, 108, 40, },
++ { 1, 1, 0, 2, 108, 40, },
++ { 0, 1, 0, 2, 112, 46, },
++ { 2, 1, 0, 2, 112, 40, },
++ { 1, 1, 0, 2, 112, 40, },
++ { 0, 1, 0, 2, 116, 46, },
++ { 2, 1, 0, 2, 116, 40, },
++ { 1, 1, 0, 2, 116, 40, },
++ { 0, 1, 0, 2, 120, 46, },
++ { 2, 1, 0, 2, 120, 40, },
++ { 1, 1, 0, 2, 120, 40, },
++ { 0, 1, 0, 2, 124, 46, },
++ { 2, 1, 0, 2, 124, 40, },
++ { 1, 1, 0, 2, 124, 40, },
++ { 0, 1, 0, 2, 128, 46, },
++ { 2, 1, 0, 2, 128, 40, },
++ { 1, 1, 0, 2, 128, 40, },
++ { 0, 1, 0, 2, 132, 46, },
++ { 2, 1, 0, 2, 132, 40, },
++ { 1, 1, 0, 2, 132, 40, },
++ { 0, 1, 0, 2, 136, 46, },
++ { 2, 1, 0, 2, 136, 40, },
++ { 1, 1, 0, 2, 136, 40, },
++ { 0, 1, 0, 2, 140, 46, },
++ { 2, 1, 0, 2, 140, 40, },
++ { 1, 1, 0, 2, 140, 40, },
++ { 0, 1, 0, 2, 149, 46, },
++ { 2, 1, 0, 2, 149, 40, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 46, },
++ { 2, 1, 0, 2, 153, 40, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 46, },
++ { 2, 1, 0, 2, 157, 40, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 46, },
++ { 2, 1, 0, 2, 161, 40, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 46, },
++ { 2, 1, 0, 2, 165, 40, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 46, },
++ { 2, 1, 0, 3, 36, 40, },
++ { 1, 1, 0, 3, 36, 40, },
++ { 0, 1, 0, 3, 40, 46, },
++ { 2, 1, 0, 3, 40, 40, },
++ { 1, 1, 0, 3, 40, 40, },
++ { 0, 1, 0, 3, 44, 46, },
++ { 2, 1, 0, 3, 44, 40, },
++ { 1, 1, 0, 3, 44, 40, },
++ { 0, 1, 0, 3, 48, 46, },
++ { 2, 1, 0, 3, 48, 40, },
++ { 1, 1, 0, 3, 48, 40, },
++ { 0, 1, 0, 3, 52, 46, },
++ { 2, 1, 0, 3, 52, 40, },
++ { 1, 1, 0, 3, 52, 40, },
++ { 0, 1, 0, 3, 56, 46, },
++ { 2, 1, 0, 3, 56, 40, },
++ { 1, 1, 0, 3, 56, 40, },
++ { 0, 1, 0, 3, 60, 46, },
++ { 2, 1, 0, 3, 60, 40, },
++ { 1, 1, 0, 3, 60, 40, },
++ { 0, 1, 0, 3, 64, 46, },
++ { 2, 1, 0, 3, 64, 40, },
++ { 1, 1, 0, 3, 64, 40, },
++ { 0, 1, 0, 3, 100, 46, },
++ { 2, 1, 0, 3, 100, 40, },
++ { 1, 1, 0, 3, 100, 40, },
++ { 0, 1, 0, 3, 104, 46, },
++ { 2, 1, 0, 3, 104, 40, },
++ { 1, 1, 0, 3, 104, 40, },
++ { 0, 1, 0, 3, 108, 46, },
++ { 2, 1, 0, 3, 108, 40, },
++ { 1, 1, 0, 3, 108, 40, },
++ { 0, 1, 0, 3, 112, 46, },
++ { 2, 1, 0, 3, 112, 40, },
++ { 1, 1, 0, 3, 112, 40, },
++ { 0, 1, 0, 3, 116, 46, },
++ { 2, 1, 0, 3, 116, 40, },
++ { 1, 1, 0, 3, 116, 40, },
++ { 0, 1, 0, 3, 120, 46, },
++ { 2, 1, 0, 3, 120, 40, },
++ { 1, 1, 0, 3, 120, 40, },
++ { 0, 1, 0, 3, 124, 46, },
++ { 2, 1, 0, 3, 124, 40, },
++ { 1, 1, 0, 3, 124, 40, },
++ { 0, 1, 0, 3, 128, 46, },
++ { 2, 1, 0, 3, 128, 40, },
++ { 1, 1, 0, 3, 128, 40, },
++ { 0, 1, 0, 3, 132, 46, },
++ { 2, 1, 0, 3, 132, 40, },
++ { 1, 1, 0, 3, 132, 40, },
++ { 0, 1, 0, 3, 136, 46, },
++ { 2, 1, 0, 3, 136, 40, },
++ { 1, 1, 0, 3, 136, 40, },
++ { 0, 1, 0, 3, 140, 46, },
++ { 2, 1, 0, 3, 140, 40, },
++ { 1, 1, 0, 3, 140, 40, },
++ { 0, 1, 0, 3, 149, 46, },
++ { 2, 1, 0, 3, 149, 40, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 46, },
++ { 2, 1, 0, 3, 153, 40, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 46, },
++ { 2, 1, 0, 3, 157, 40, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 46, },
++ { 2, 1, 0, 3, 161, 40, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 46, },
++ { 2, 1, 0, 3, 165, 40, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 46, },
++ { 2, 1, 0, 6, 36, 40, },
++ { 1, 1, 0, 6, 36, 40, },
++ { 0, 1, 0, 6, 40, 46, },
++ { 2, 1, 0, 6, 40, 40, },
++ { 1, 1, 0, 6, 40, 40, },
++ { 0, 1, 0, 6, 44, 46, },
++ { 2, 1, 0, 6, 44, 40, },
++ { 1, 1, 0, 6, 44, 40, },
++ { 0, 1, 0, 6, 48, 46, },
++ { 2, 1, 0, 6, 48, 40, },
++ { 1, 1, 0, 6, 48, 40, },
++ { 0, 1, 0, 6, 52, 46, },
++ { 2, 1, 0, 6, 52, 40, },
++ { 1, 1, 0, 6, 52, 40, },
++ { 0, 1, 0, 6, 56, 46, },
++ { 2, 1, 0, 6, 56, 40, },
++ { 1, 1, 0, 6, 56, 40, },
++ { 0, 1, 0, 6, 60, 46, },
++ { 2, 1, 0, 6, 60, 40, },
++ { 1, 1, 0, 6, 60, 40, },
++ { 0, 1, 0, 6, 64, 46, },
++ { 2, 1, 0, 6, 64, 40, },
++ { 1, 1, 0, 6, 64, 40, },
++ { 0, 1, 0, 6, 100, 46, },
++ { 2, 1, 0, 6, 100, 40, },
++ { 1, 1, 0, 6, 100, 40, },
++ { 0, 1, 0, 6, 104, 46, },
++ { 2, 1, 0, 6, 104, 40, },
++ { 1, 1, 0, 6, 104, 40, },
++ { 0, 1, 0, 6, 108, 46, },
++ { 2, 1, 0, 6, 108, 40, },
++ { 1, 1, 0, 6, 108, 40, },
++ { 0, 1, 0, 6, 112, 46, },
++ { 2, 1, 0, 6, 112, 40, },
++ { 1, 1, 0, 6, 112, 40, },
++ { 0, 1, 0, 6, 116, 46, },
++ { 2, 1, 0, 6, 116, 40, },
++ { 1, 1, 0, 6, 116, 40, },
++ { 0, 1, 0, 6, 120, 46, },
++ { 2, 1, 0, 6, 120, 40, },
++ { 1, 1, 0, 6, 120, 40, },
++ { 0, 1, 0, 6, 124, 46, },
++ { 2, 1, 0, 6, 124, 40, },
++ { 1, 1, 0, 6, 124, 40, },
++ { 0, 1, 0, 6, 128, 46, },
++ { 2, 1, 0, 6, 128, 40, },
++ { 1, 1, 0, 6, 128, 40, },
++ { 0, 1, 0, 6, 132, 46, },
++ { 2, 1, 0, 6, 132, 40, },
++ { 1, 1, 0, 6, 132, 40, },
++ { 0, 1, 0, 6, 136, 46, },
++ { 2, 1, 0, 6, 136, 40, },
++ { 1, 1, 0, 6, 136, 40, },
++ { 0, 1, 0, 6, 140, 46, },
++ { 2, 1, 0, 6, 140, 40, },
++ { 1, 1, 0, 6, 140, 40, },
++ { 0, 1, 0, 6, 149, 46, },
++ { 2, 1, 0, 6, 149, 40, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 46, },
++ { 2, 1, 0, 6, 153, 40, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 46, },
++ { 2, 1, 0, 6, 157, 40, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 46, },
++ { 2, 1, 0, 6, 161, 40, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 46, },
++ { 2, 1, 0, 6, 165, 40, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 46, },
++ { 2, 1, 0, 7, 36, 40, },
++ { 1, 1, 0, 7, 36, 40, },
++ { 0, 1, 0, 7, 40, 46, },
++ { 2, 1, 0, 7, 40, 40, },
++ { 1, 1, 0, 7, 40, 40, },
++ { 0, 1, 0, 7, 44, 46, },
++ { 2, 1, 0, 7, 44, 40, },
++ { 1, 1, 0, 7, 44, 40, },
++ { 0, 1, 0, 7, 48, 46, },
++ { 2, 1, 0, 7, 48, 40, },
++ { 1, 1, 0, 7, 48, 40, },
++ { 0, 1, 0, 7, 52, 46, },
++ { 2, 1, 0, 7, 52, 40, },
++ { 1, 1, 0, 7, 52, 40, },
++ { 0, 1, 0, 7, 56, 46, },
++ { 2, 1, 0, 7, 56, 40, },
++ { 1, 1, 0, 7, 56, 40, },
++ { 0, 1, 0, 7, 60, 46, },
++ { 2, 1, 0, 7, 60, 40, },
++ { 1, 1, 0, 7, 60, 40, },
++ { 0, 1, 0, 7, 64, 46, },
++ { 2, 1, 0, 7, 64, 40, },
++ { 1, 1, 0, 7, 64, 40, },
++ { 0, 1, 0, 7, 100, 46, },
++ { 2, 1, 0, 7, 100, 40, },
++ { 1, 1, 0, 7, 100, 40, },
++ { 0, 1, 0, 7, 104, 46, },
++ { 2, 1, 0, 7, 104, 40, },
++ { 1, 1, 0, 7, 104, 40, },
++ { 0, 1, 0, 7, 108, 46, },
++ { 2, 1, 0, 7, 108, 40, },
++ { 1, 1, 0, 7, 108, 40, },
++ { 0, 1, 0, 7, 112, 46, },
++ { 2, 1, 0, 7, 112, 40, },
++ { 1, 1, 0, 7, 112, 40, },
++ { 0, 1, 0, 7, 116, 46, },
++ { 2, 1, 0, 7, 116, 40, },
++ { 1, 1, 0, 7, 116, 40, },
++ { 0, 1, 0, 7, 120, 46, },
++ { 2, 1, 0, 7, 120, 40, },
++ { 1, 1, 0, 7, 120, 40, },
++ { 0, 1, 0, 7, 124, 46, },
++ { 2, 1, 0, 7, 124, 40, },
++ { 1, 1, 0, 7, 124, 40, },
++ { 0, 1, 0, 7, 128, 46, },
++ { 2, 1, 0, 7, 128, 40, },
++ { 1, 1, 0, 7, 128, 40, },
++ { 0, 1, 0, 7, 132, 46, },
++ { 2, 1, 0, 7, 132, 40, },
++ { 1, 1, 0, 7, 132, 40, },
++ { 0, 1, 0, 7, 136, 46, },
++ { 2, 1, 0, 7, 136, 40, },
++ { 1, 1, 0, 7, 136, 40, },
++ { 0, 1, 0, 7, 140, 46, },
++ { 2, 1, 0, 7, 140, 40, },
++ { 1, 1, 0, 7, 140, 40, },
++ { 0, 1, 0, 7, 149, 46, },
++ { 2, 1, 0, 7, 149, 40, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 46, },
++ { 2, 1, 0, 7, 153, 40, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 46, },
++ { 2, 1, 0, 7, 157, 40, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 46, },
++ { 2, 1, 0, 7, 161, 40, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 46, },
++ { 2, 1, 0, 7, 165, 40, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 46, },
++ { 2, 1, 1, 2, 38, 40, },
++ { 1, 1, 1, 2, 38, 40, },
++ { 0, 1, 1, 2, 46, 46, },
++ { 2, 1, 1, 2, 46, 40, },
++ { 1, 1, 1, 2, 46, 40, },
++ { 0, 1, 1, 2, 54, 46, },
++ { 2, 1, 1, 2, 54, 40, },
++ { 1, 1, 1, 2, 54, 40, },
++ { 0, 1, 1, 2, 62, 46, },
++ { 2, 1, 1, 2, 62, 40, },
++ { 1, 1, 1, 2, 62, 40, },
++ { 0, 1, 1, 2, 102, 46, },
++ { 2, 1, 1, 2, 102, 40, },
++ { 1, 1, 1, 2, 102, 40, },
++ { 0, 1, 1, 2, 110, 46, },
++ { 2, 1, 1, 2, 110, 40, },
++ { 1, 1, 1, 2, 110, 40, },
++ { 0, 1, 1, 2, 118, 46, },
++ { 2, 1, 1, 2, 118, 40, },
++ { 1, 1, 1, 2, 118, 40, },
++ { 0, 1, 1, 2, 126, 46, },
++ { 2, 1, 1, 2, 126, 40, },
++ { 1, 1, 1, 2, 126, 40, },
++ { 0, 1, 1, 2, 134, 46, },
++ { 2, 1, 1, 2, 134, 40, },
++ { 1, 1, 1, 2, 134, 40, },
++ { 0, 1, 1, 2, 151, 46, },
++ { 2, 1, 1, 2, 151, 40, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 46, },
++ { 2, 1, 1, 2, 159, 40, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 46, },
++ { 2, 1, 1, 3, 38, 40, },
++ { 1, 1, 1, 3, 38, 40, },
++ { 0, 1, 1, 3, 46, 46, },
++ { 2, 1, 1, 3, 46, 40, },
++ { 1, 1, 1, 3, 46, 40, },
++ { 0, 1, 1, 3, 54, 46, },
++ { 2, 1, 1, 3, 54, 40, },
++ { 1, 1, 1, 3, 54, 40, },
++ { 0, 1, 1, 3, 62, 46, },
++ { 2, 1, 1, 3, 62, 40, },
++ { 1, 1, 1, 3, 62, 40, },
++ { 0, 1, 1, 3, 102, 46, },
++ { 2, 1, 1, 3, 102, 40, },
++ { 1, 1, 1, 3, 102, 40, },
++ { 0, 1, 1, 3, 110, 46, },
++ { 2, 1, 1, 3, 110, 40, },
++ { 1, 1, 1, 3, 110, 40, },
++ { 0, 1, 1, 3, 118, 46, },
++ { 2, 1, 1, 3, 118, 40, },
++ { 1, 1, 1, 3, 118, 40, },
++ { 0, 1, 1, 3, 126, 46, },
++ { 2, 1, 1, 3, 126, 40, },
++ { 1, 1, 1, 3, 126, 40, },
++ { 0, 1, 1, 3, 134, 46, },
++ { 2, 1, 1, 3, 134, 40, },
++ { 1, 1, 1, 3, 134, 40, },
++ { 0, 1, 1, 3, 151, 46, },
++ { 2, 1, 1, 3, 151, 40, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 46, },
++ { 2, 1, 1, 3, 159, 40, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 46, },
++ { 2, 1, 1, 6, 38, 40, },
++ { 1, 1, 1, 6, 38, 40, },
++ { 0, 1, 1, 6, 46, 46, },
++ { 2, 1, 1, 6, 46, 40, },
++ { 1, 1, 1, 6, 46, 40, },
++ { 0, 1, 1, 6, 54, 46, },
++ { 2, 1, 1, 6, 54, 40, },
++ { 1, 1, 1, 6, 54, 40, },
++ { 0, 1, 1, 6, 62, 46, },
++ { 2, 1, 1, 6, 62, 40, },
++ { 1, 1, 1, 6, 62, 40, },
++ { 0, 1, 1, 6, 102, 46, },
++ { 2, 1, 1, 6, 102, 40, },
++ { 1, 1, 1, 6, 102, 40, },
++ { 0, 1, 1, 6, 110, 46, },
++ { 2, 1, 1, 6, 110, 40, },
++ { 1, 1, 1, 6, 110, 40, },
++ { 0, 1, 1, 6, 118, 46, },
++ { 2, 1, 1, 6, 118, 40, },
++ { 1, 1, 1, 6, 118, 40, },
++ { 0, 1, 1, 6, 126, 46, },
++ { 2, 1, 1, 6, 126, 40, },
++ { 1, 1, 1, 6, 126, 40, },
++ { 0, 1, 1, 6, 134, 46, },
++ { 2, 1, 1, 6, 134, 40, },
++ { 1, 1, 1, 6, 134, 40, },
++ { 0, 1, 1, 6, 151, 46, },
++ { 2, 1, 1, 6, 151, 40, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 46, },
++ { 2, 1, 1, 6, 159, 40, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 46, },
++ { 2, 1, 1, 7, 38, 40, },
++ { 1, 1, 1, 7, 38, 40, },
++ { 0, 1, 1, 7, 46, 46, },
++ { 2, 1, 1, 7, 46, 40, },
++ { 1, 1, 1, 7, 46, 40, },
++ { 0, 1, 1, 7, 54, 46, },
++ { 2, 1, 1, 7, 54, 40, },
++ { 1, 1, 1, 7, 54, 40, },
++ { 0, 1, 1, 7, 62, 46, },
++ { 2, 1, 1, 7, 62, 40, },
++ { 1, 1, 1, 7, 62, 40, },
++ { 0, 1, 1, 7, 102, 46, },
++ { 2, 1, 1, 7, 102, 40, },
++ { 1, 1, 1, 7, 102, 40, },
++ { 0, 1, 1, 7, 110, 46, },
++ { 2, 1, 1, 7, 110, 40, },
++ { 1, 1, 1, 7, 110, 40, },
++ { 0, 1, 1, 7, 118, 46, },
++ { 2, 1, 1, 7, 118, 40, },
++ { 1, 1, 1, 7, 118, 40, },
++ { 0, 1, 1, 7, 126, 46, },
++ { 2, 1, 1, 7, 126, 40, },
++ { 1, 1, 1, 7, 126, 40, },
++ { 0, 1, 1, 7, 134, 46, },
++ { 2, 1, 1, 7, 134, 40, },
++ { 1, 1, 1, 7, 134, 40, },
++ { 0, 1, 1, 7, 151, 46, },
++ { 2, 1, 1, 7, 151, 40, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 46, },
++ { 2, 1, 1, 7, 159, 40, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 46, },
++ { 2, 1, 2, 4, 42, 40, },
++ { 1, 1, 2, 4, 42, 40, },
++ { 0, 1, 2, 4, 58, 46, },
++ { 2, 1, 2, 4, 58, 40, },
++ { 1, 1, 2, 4, 58, 40, },
++ { 0, 1, 2, 4, 106, 46, },
++ { 2, 1, 2, 4, 106, 40, },
++ { 1, 1, 2, 4, 106, 40, },
++ { 0, 1, 2, 4, 122, 46, },
++ { 2, 1, 2, 4, 122, 40, },
++ { 1, 1, 2, 4, 122, 40, },
++ { 0, 1, 2, 4, 155, 46, },
++ { 2, 1, 2, 4, 155, 40, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 46, },
++ { 2, 1, 2, 5, 42, 40, },
++ { 1, 1, 2, 5, 42, 40, },
++ { 0, 1, 2, 5, 58, 46, },
++ { 2, 1, 2, 5, 58, 40, },
++ { 1, 1, 2, 5, 58, 40, },
++ { 0, 1, 2, 5, 106, 46, },
++ { 2, 1, 2, 5, 106, 40, },
++ { 1, 1, 2, 5, 106, 40, },
++ { 0, 1, 2, 5, 122, 46, },
++ { 2, 1, 2, 5, 122, 40, },
++ { 1, 1, 2, 5, 122, 40, },
++ { 0, 1, 2, 5, 155, 46, },
++ { 2, 1, 2, 5, 155, 40, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 46, },
++ { 2, 1, 2, 8, 42, 40, },
++ { 1, 1, 2, 8, 42, 40, },
++ { 0, 1, 2, 8, 58, 46, },
++ { 2, 1, 2, 8, 58, 40, },
++ { 1, 1, 2, 8, 58, 40, },
++ { 0, 1, 2, 8, 106, 46, },
++ { 2, 1, 2, 8, 106, 40, },
++ { 1, 1, 2, 8, 106, 40, },
++ { 0, 1, 2, 8, 122, 46, },
++ { 2, 1, 2, 8, 122, 40, },
++ { 1, 1, 2, 8, 122, 40, },
++ { 0, 1, 2, 8, 155, 46, },
++ { 2, 1, 2, 8, 155, 40, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 46, },
++ { 2, 1, 2, 9, 42, 40, },
++ { 1, 1, 2, 9, 42, 40, },
++ { 0, 1, 2, 9, 58, 46, },
++ { 2, 1, 2, 9, 58, 40, },
++ { 1, 1, 2, 9, 58, 40, },
++ { 0, 1, 2, 9, 106, 46, },
++ { 2, 1, 2, 9, 106, 40, },
++ { 1, 1, 2, 9, 106, 40, },
++ { 0, 1, 2, 9, 122, 46, },
++ { 2, 1, 2, 9, 122, 40, },
++ { 1, 1, 2, 9, 122, 40, },
++ { 0, 1, 2, 9, 155, 46, },
++ { 2, 1, 2, 9, 155, 40, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type3);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type5[] = {
++ { 0, 0, 0, 0, 1, 46, },
++ { 2, 0, 0, 0, 1, 40, },
++ { 1, 0, 0, 0, 1, 40, },
++ { 0, 0, 0, 0, 2, 46, },
++ { 2, 0, 0, 0, 2, 40, },
++ { 1, 0, 0, 0, 2, 40, },
++ { 0, 0, 0, 0, 3, 46, },
++ { 2, 0, 0, 0, 3, 40, },
++ { 1, 0, 0, 0, 3, 40, },
++ { 0, 0, 0, 0, 4, 46, },
++ { 2, 0, 0, 0, 4, 40, },
++ { 1, 0, 0, 0, 4, 40, },
++ { 0, 0, 0, 0, 5, 46, },
++ { 2, 0, 0, 0, 5, 40, },
++ { 1, 0, 0, 0, 5, 40, },
++ { 0, 0, 0, 0, 6, 46, },
++ { 2, 0, 0, 0, 6, 40, },
++ { 1, 0, 0, 0, 6, 40, },
++ { 0, 0, 0, 0, 7, 46, },
++ { 2, 0, 0, 0, 7, 40, },
++ { 1, 0, 0, 0, 7, 40, },
++ { 0, 0, 0, 0, 8, 46, },
++ { 2, 0, 0, 0, 8, 40, },
++ { 1, 0, 0, 0, 8, 40, },
++ { 0, 0, 0, 0, 9, 46, },
++ { 2, 0, 0, 0, 9, 40, },
++ { 1, 0, 0, 0, 9, 40, },
++ { 0, 0, 0, 0, 10, 46, },
++ { 2, 0, 0, 0, 10, 40, },
++ { 1, 0, 0, 0, 10, 40, },
++ { 0, 0, 0, 0, 11, 46, },
++ { 2, 0, 0, 0, 11, 40, },
++ { 1, 0, 0, 0, 11, 40, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 40, },
++ { 1, 0, 0, 0, 12, 40, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 40, },
++ { 1, 0, 0, 0, 13, 40, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 40, },
++ { 0, 0, 0, 1, 1, 46, },
++ { 2, 0, 0, 1, 1, 40, },
++ { 1, 0, 0, 1, 1, 40, },
++ { 0, 0, 0, 1, 2, 46, },
++ { 2, 0, 0, 1, 2, 40, },
++ { 1, 0, 0, 1, 2, 40, },
++ { 0, 0, 0, 1, 3, 46, },
++ { 2, 0, 0, 1, 3, 40, },
++ { 1, 0, 0, 1, 3, 40, },
++ { 0, 0, 0, 1, 4, 46, },
++ { 2, 0, 0, 1, 4, 40, },
++ { 1, 0, 0, 1, 4, 40, },
++ { 0, 0, 0, 1, 5, 46, },
++ { 2, 0, 0, 1, 5, 40, },
++ { 1, 0, 0, 1, 5, 40, },
++ { 0, 0, 0, 1, 6, 46, },
++ { 2, 0, 0, 1, 6, 40, },
++ { 1, 0, 0, 1, 6, 40, },
++ { 0, 0, 0, 1, 7, 46, },
++ { 2, 0, 0, 1, 7, 40, },
++ { 1, 0, 0, 1, 7, 40, },
++ { 0, 0, 0, 1, 8, 46, },
++ { 2, 0, 0, 1, 8, 40, },
++ { 1, 0, 0, 1, 8, 40, },
++ { 0, 0, 0, 1, 9, 46, },
++ { 2, 0, 0, 1, 9, 40, },
++ { 1, 0, 0, 1, 9, 40, },
++ { 0, 0, 0, 1, 10, 46, },
++ { 2, 0, 0, 1, 10, 40, },
++ { 1, 0, 0, 1, 10, 40, },
++ { 0, 0, 0, 1, 11, 46, },
++ { 2, 0, 0, 1, 11, 40, },
++ { 1, 0, 0, 1, 11, 40, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 40, },
++ { 1, 0, 0, 1, 12, 40, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 40, },
++ { 1, 0, 0, 1, 13, 40, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 46, },
++ { 2, 0, 0, 2, 1, 40, },
++ { 1, 0, 0, 2, 1, 40, },
++ { 0, 0, 0, 2, 2, 46, },
++ { 2, 0, 0, 2, 2, 40, },
++ { 1, 0, 0, 2, 2, 40, },
++ { 0, 0, 0, 2, 3, 46, },
++ { 2, 0, 0, 2, 3, 40, },
++ { 1, 0, 0, 2, 3, 40, },
++ { 0, 0, 0, 2, 4, 46, },
++ { 2, 0, 0, 2, 4, 40, },
++ { 1, 0, 0, 2, 4, 40, },
++ { 0, 0, 0, 2, 5, 46, },
++ { 2, 0, 0, 2, 5, 40, },
++ { 1, 0, 0, 2, 5, 40, },
++ { 0, 0, 0, 2, 6, 46, },
++ { 2, 0, 0, 2, 6, 40, },
++ { 1, 0, 0, 2, 6, 40, },
++ { 0, 0, 0, 2, 7, 46, },
++ { 2, 0, 0, 2, 7, 40, },
++ { 1, 0, 0, 2, 7, 40, },
++ { 0, 0, 0, 2, 8, 46, },
++ { 2, 0, 0, 2, 8, 40, },
++ { 1, 0, 0, 2, 8, 40, },
++ { 0, 0, 0, 2, 9, 46, },
++ { 2, 0, 0, 2, 9, 40, },
++ { 1, 0, 0, 2, 9, 40, },
++ { 0, 0, 0, 2, 10, 46, },
++ { 2, 0, 0, 2, 10, 40, },
++ { 1, 0, 0, 2, 10, 40, },
++ { 0, 0, 0, 2, 11, 46, },
++ { 2, 0, 0, 2, 11, 40, },
++ { 1, 0, 0, 2, 11, 40, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 40, },
++ { 1, 0, 0, 2, 12, 40, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 40, },
++ { 1, 0, 0, 2, 13, 40, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 46, },
++ { 2, 0, 0, 3, 1, 40, },
++ { 1, 0, 0, 3, 1, 40, },
++ { 0, 0, 0, 3, 2, 46, },
++ { 2, 0, 0, 3, 2, 40, },
++ { 1, 0, 0, 3, 2, 40, },
++ { 0, 0, 0, 3, 3, 46, },
++ { 2, 0, 0, 3, 3, 40, },
++ { 1, 0, 0, 3, 3, 40, },
++ { 0, 0, 0, 3, 4, 46, },
++ { 2, 0, 0, 3, 4, 40, },
++ { 1, 0, 0, 3, 4, 40, },
++ { 0, 0, 0, 3, 5, 46, },
++ { 2, 0, 0, 3, 5, 40, },
++ { 1, 0, 0, 3, 5, 40, },
++ { 0, 0, 0, 3, 6, 46, },
++ { 2, 0, 0, 3, 6, 40, },
++ { 1, 0, 0, 3, 6, 40, },
++ { 0, 0, 0, 3, 7, 46, },
++ { 2, 0, 0, 3, 7, 40, },
++ { 1, 0, 0, 3, 7, 40, },
++ { 0, 0, 0, 3, 8, 46, },
++ { 2, 0, 0, 3, 8, 40, },
++ { 1, 0, 0, 3, 8, 40, },
++ { 0, 0, 0, 3, 9, 46, },
++ { 2, 0, 0, 3, 9, 40, },
++ { 1, 0, 0, 3, 9, 40, },
++ { 0, 0, 0, 3, 10, 46, },
++ { 2, 0, 0, 3, 10, 40, },
++ { 1, 0, 0, 3, 10, 40, },
++ { 0, 0, 0, 3, 11, 46, },
++ { 2, 0, 0, 3, 11, 40, },
++ { 1, 0, 0, 3, 11, 40, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 40, },
++ { 1, 0, 0, 3, 12, 40, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 40, },
++ { 1, 0, 0, 3, 13, 40, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 46, },
++ { 2, 0, 0, 6, 1, 40, },
++ { 1, 0, 0, 6, 1, 40, },
++ { 0, 0, 0, 6, 2, 46, },
++ { 2, 0, 0, 6, 2, 40, },
++ { 1, 0, 0, 6, 2, 40, },
++ { 0, 0, 0, 6, 3, 46, },
++ { 2, 0, 0, 6, 3, 40, },
++ { 1, 0, 0, 6, 3, 40, },
++ { 0, 0, 0, 6, 4, 46, },
++ { 2, 0, 0, 6, 4, 40, },
++ { 1, 0, 0, 6, 4, 40, },
++ { 0, 0, 0, 6, 5, 46, },
++ { 2, 0, 0, 6, 5, 40, },
++ { 1, 0, 0, 6, 5, 40, },
++ { 0, 0, 0, 6, 6, 46, },
++ { 2, 0, 0, 6, 6, 40, },
++ { 1, 0, 0, 6, 6, 40, },
++ { 0, 0, 0, 6, 7, 46, },
++ { 2, 0, 0, 6, 7, 40, },
++ { 1, 0, 0, 6, 7, 40, },
++ { 0, 0, 0, 6, 8, 46, },
++ { 2, 0, 0, 6, 8, 40, },
++ { 1, 0, 0, 6, 8, 40, },
++ { 0, 0, 0, 6, 9, 46, },
++ { 2, 0, 0, 6, 9, 40, },
++ { 1, 0, 0, 6, 9, 40, },
++ { 0, 0, 0, 6, 10, 46, },
++ { 2, 0, 0, 6, 10, 40, },
++ { 1, 0, 0, 6, 10, 40, },
++ { 0, 0, 0, 6, 11, 46, },
++ { 2, 0, 0, 6, 11, 40, },
++ { 1, 0, 0, 6, 11, 40, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 40, },
++ { 1, 0, 0, 6, 12, 40, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 40, },
++ { 1, 0, 0, 6, 13, 40, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 46, },
++ { 2, 0, 0, 7, 1, 40, },
++ { 1, 0, 0, 7, 1, 40, },
++ { 0, 0, 0, 7, 2, 46, },
++ { 2, 0, 0, 7, 2, 40, },
++ { 1, 0, 0, 7, 2, 40, },
++ { 0, 0, 0, 7, 3, 46, },
++ { 2, 0, 0, 7, 3, 40, },
++ { 1, 0, 0, 7, 3, 40, },
++ { 0, 0, 0, 7, 4, 46, },
++ { 2, 0, 0, 7, 4, 40, },
++ { 1, 0, 0, 7, 4, 40, },
++ { 0, 0, 0, 7, 5, 46, },
++ { 2, 0, 0, 7, 5, 40, },
++ { 1, 0, 0, 7, 5, 40, },
++ { 0, 0, 0, 7, 6, 46, },
++ { 2, 0, 0, 7, 6, 40, },
++ { 1, 0, 0, 7, 6, 40, },
++ { 0, 0, 0, 7, 7, 46, },
++ { 2, 0, 0, 7, 7, 40, },
++ { 1, 0, 0, 7, 7, 40, },
++ { 0, 0, 0, 7, 8, 46, },
++ { 2, 0, 0, 7, 8, 40, },
++ { 1, 0, 0, 7, 8, 40, },
++ { 0, 0, 0, 7, 9, 46, },
++ { 2, 0, 0, 7, 9, 40, },
++ { 1, 0, 0, 7, 9, 40, },
++ { 0, 0, 0, 7, 10, 46, },
++ { 2, 0, 0, 7, 10, 40, },
++ { 1, 0, 0, 7, 10, 40, },
++ { 0, 0, 0, 7, 11, 46, },
++ { 2, 0, 0, 7, 11, 40, },
++ { 1, 0, 0, 7, 11, 40, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 40, },
++ { 1, 0, 0, 7, 12, 40, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 40, },
++ { 1, 0, 0, 7, 13, 40, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 46, },
++ { 2, 0, 1, 2, 3, 40, },
++ { 1, 0, 1, 2, 3, 40, },
++ { 0, 0, 1, 2, 4, 46, },
++ { 2, 0, 1, 2, 4, 40, },
++ { 1, 0, 1, 2, 4, 40, },
++ { 0, 0, 1, 2, 5, 46, },
++ { 2, 0, 1, 2, 5, 40, },
++ { 1, 0, 1, 2, 5, 40, },
++ { 0, 0, 1, 2, 6, 46, },
++ { 2, 0, 1, 2, 6, 40, },
++ { 1, 0, 1, 2, 6, 40, },
++ { 0, 0, 1, 2, 7, 46, },
++ { 2, 0, 1, 2, 7, 40, },
++ { 1, 0, 1, 2, 7, 40, },
++ { 0, 0, 1, 2, 8, 46, },
++ { 2, 0, 1, 2, 8, 40, },
++ { 1, 0, 1, 2, 8, 40, },
++ { 0, 0, 1, 2, 9, 46, },
++ { 2, 0, 1, 2, 9, 40, },
++ { 1, 0, 1, 2, 9, 40, },
++ { 0, 0, 1, 2, 10, 46, },
++ { 2, 0, 1, 2, 10, 40, },
++ { 1, 0, 1, 2, 10, 40, },
++ { 0, 0, 1, 2, 11, 46, },
++ { 2, 0, 1, 2, 11, 40, },
++ { 1, 0, 1, 2, 11, 40, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 40, },
++ { 1, 0, 1, 2, 12, 40, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 40, },
++ { 1, 0, 1, 2, 13, 40, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 46, },
++ { 2, 0, 1, 3, 3, 40, },
++ { 1, 0, 1, 3, 3, 40, },
++ { 0, 0, 1, 3, 4, 46, },
++ { 2, 0, 1, 3, 4, 40, },
++ { 1, 0, 1, 3, 4, 40, },
++ { 0, 0, 1, 3, 5, 46, },
++ { 2, 0, 1, 3, 5, 40, },
++ { 1, 0, 1, 3, 5, 40, },
++ { 0, 0, 1, 3, 6, 46, },
++ { 2, 0, 1, 3, 6, 40, },
++ { 1, 0, 1, 3, 6, 40, },
++ { 0, 0, 1, 3, 7, 46, },
++ { 2, 0, 1, 3, 7, 40, },
++ { 1, 0, 1, 3, 7, 40, },
++ { 0, 0, 1, 3, 8, 46, },
++ { 2, 0, 1, 3, 8, 40, },
++ { 1, 0, 1, 3, 8, 40, },
++ { 0, 0, 1, 3, 9, 46, },
++ { 2, 0, 1, 3, 9, 40, },
++ { 1, 0, 1, 3, 9, 40, },
++ { 0, 0, 1, 3, 10, 46, },
++ { 2, 0, 1, 3, 10, 40, },
++ { 1, 0, 1, 3, 10, 40, },
++ { 0, 0, 1, 3, 11, 46, },
++ { 2, 0, 1, 3, 11, 40, },
++ { 1, 0, 1, 3, 11, 40, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 40, },
++ { 1, 0, 1, 3, 12, 40, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 40, },
++ { 1, 0, 1, 3, 13, 40, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 46, },
++ { 2, 0, 1, 6, 3, 40, },
++ { 1, 0, 1, 6, 3, 40, },
++ { 0, 0, 1, 6, 4, 46, },
++ { 2, 0, 1, 6, 4, 40, },
++ { 1, 0, 1, 6, 4, 40, },
++ { 0, 0, 1, 6, 5, 46, },
++ { 2, 0, 1, 6, 5, 40, },
++ { 1, 0, 1, 6, 5, 40, },
++ { 0, 0, 1, 6, 6, 46, },
++ { 2, 0, 1, 6, 6, 40, },
++ { 1, 0, 1, 6, 6, 40, },
++ { 0, 0, 1, 6, 7, 46, },
++ { 2, 0, 1, 6, 7, 40, },
++ { 1, 0, 1, 6, 7, 40, },
++ { 0, 0, 1, 6, 8, 46, },
++ { 2, 0, 1, 6, 8, 40, },
++ { 1, 0, 1, 6, 8, 40, },
++ { 0, 0, 1, 6, 9, 46, },
++ { 2, 0, 1, 6, 9, 40, },
++ { 1, 0, 1, 6, 9, 40, },
++ { 0, 0, 1, 6, 10, 46, },
++ { 2, 0, 1, 6, 10, 40, },
++ { 1, 0, 1, 6, 10, 40, },
++ { 0, 0, 1, 6, 11, 46, },
++ { 2, 0, 1, 6, 11, 40, },
++ { 1, 0, 1, 6, 11, 40, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 40, },
++ { 1, 0, 1, 6, 12, 40, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 40, },
++ { 1, 0, 1, 6, 13, 40, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 46, },
++ { 2, 0, 1, 7, 3, 40, },
++ { 1, 0, 1, 7, 3, 40, },
++ { 0, 0, 1, 7, 4, 46, },
++ { 2, 0, 1, 7, 4, 40, },
++ { 1, 0, 1, 7, 4, 40, },
++ { 0, 0, 1, 7, 5, 46, },
++ { 2, 0, 1, 7, 5, 40, },
++ { 1, 0, 1, 7, 5, 40, },
++ { 0, 0, 1, 7, 6, 46, },
++ { 2, 0, 1, 7, 6, 40, },
++ { 1, 0, 1, 7, 6, 40, },
++ { 0, 0, 1, 7, 7, 46, },
++ { 2, 0, 1, 7, 7, 40, },
++ { 1, 0, 1, 7, 7, 40, },
++ { 0, 0, 1, 7, 8, 46, },
++ { 2, 0, 1, 7, 8, 40, },
++ { 1, 0, 1, 7, 8, 40, },
++ { 0, 0, 1, 7, 9, 46, },
++ { 2, 0, 1, 7, 9, 40, },
++ { 1, 0, 1, 7, 9, 40, },
++ { 0, 0, 1, 7, 10, 46, },
++ { 2, 0, 1, 7, 10, 40, },
++ { 1, 0, 1, 7, 10, 40, },
++ { 0, 0, 1, 7, 11, 46, },
++ { 2, 0, 1, 7, 11, 40, },
++ { 1, 0, 1, 7, 11, 40, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 40, },
++ { 1, 0, 1, 7, 12, 40, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 40, },
++ { 1, 0, 1, 7, 13, 40, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 46, },
++ { 2, 1, 0, 1, 36, 40, },
++ { 1, 1, 0, 1, 36, 40, },
++ { 0, 1, 0, 1, 40, 46, },
++ { 2, 1, 0, 1, 40, 40, },
++ { 1, 1, 0, 1, 40, 40, },
++ { 0, 1, 0, 1, 44, 46, },
++ { 2, 1, 0, 1, 44, 40, },
++ { 1, 1, 0, 1, 44, 40, },
++ { 0, 1, 0, 1, 48, 46, },
++ { 2, 1, 0, 1, 48, 40, },
++ { 1, 1, 0, 1, 48, 40, },
++ { 0, 1, 0, 1, 52, 46, },
++ { 2, 1, 0, 1, 52, 40, },
++ { 1, 1, 0, 1, 52, 40, },
++ { 0, 1, 0, 1, 56, 46, },
++ { 2, 1, 0, 1, 56, 40, },
++ { 1, 1, 0, 1, 56, 40, },
++ { 0, 1, 0, 1, 60, 46, },
++ { 2, 1, 0, 1, 60, 40, },
++ { 1, 1, 0, 1, 60, 40, },
++ { 0, 1, 0, 1, 64, 46, },
++ { 2, 1, 0, 1, 64, 40, },
++ { 1, 1, 0, 1, 64, 40, },
++ { 0, 1, 0, 1, 100, 46, },
++ { 2, 1, 0, 1, 100, 40, },
++ { 1, 1, 0, 1, 100, 40, },
++ { 0, 1, 0, 1, 104, 46, },
++ { 2, 1, 0, 1, 104, 40, },
++ { 1, 1, 0, 1, 104, 40, },
++ { 0, 1, 0, 1, 108, 46, },
++ { 2, 1, 0, 1, 108, 40, },
++ { 1, 1, 0, 1, 108, 40, },
++ { 0, 1, 0, 1, 112, 46, },
++ { 2, 1, 0, 1, 112, 40, },
++ { 1, 1, 0, 1, 112, 40, },
++ { 0, 1, 0, 1, 116, 46, },
++ { 2, 1, 0, 1, 116, 40, },
++ { 1, 1, 0, 1, 116, 40, },
++ { 0, 1, 0, 1, 120, 46, },
++ { 2, 1, 0, 1, 120, 40, },
++ { 1, 1, 0, 1, 120, 40, },
++ { 0, 1, 0, 1, 124, 46, },
++ { 2, 1, 0, 1, 124, 40, },
++ { 1, 1, 0, 1, 124, 40, },
++ { 0, 1, 0, 1, 128, 46, },
++ { 2, 1, 0, 1, 128, 40, },
++ { 1, 1, 0, 1, 128, 40, },
++ { 0, 1, 0, 1, 132, 46, },
++ { 2, 1, 0, 1, 132, 40, },
++ { 1, 1, 0, 1, 132, 40, },
++ { 0, 1, 0, 1, 136, 46, },
++ { 2, 1, 0, 1, 136, 40, },
++ { 1, 1, 0, 1, 136, 40, },
++ { 0, 1, 0, 1, 140, 46, },
++ { 2, 1, 0, 1, 140, 40, },
++ { 1, 1, 0, 1, 140, 40, },
++ { 0, 1, 0, 1, 149, 46, },
++ { 2, 1, 0, 1, 149, 40, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 46, },
++ { 2, 1, 0, 1, 153, 40, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 46, },
++ { 2, 1, 0, 1, 157, 40, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 46, },
++ { 2, 1, 0, 1, 161, 40, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 46, },
++ { 2, 1, 0, 1, 165, 40, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 46, },
++ { 2, 1, 0, 2, 36, 40, },
++ { 1, 1, 0, 2, 36, 40, },
++ { 0, 1, 0, 2, 40, 46, },
++ { 2, 1, 0, 2, 40, 40, },
++ { 1, 1, 0, 2, 40, 40, },
++ { 0, 1, 0, 2, 44, 46, },
++ { 2, 1, 0, 2, 44, 40, },
++ { 1, 1, 0, 2, 44, 40, },
++ { 0, 1, 0, 2, 48, 46, },
++ { 2, 1, 0, 2, 48, 40, },
++ { 1, 1, 0, 2, 48, 40, },
++ { 0, 1, 0, 2, 52, 46, },
++ { 2, 1, 0, 2, 52, 40, },
++ { 1, 1, 0, 2, 52, 40, },
++ { 0, 1, 0, 2, 56, 46, },
++ { 2, 1, 0, 2, 56, 40, },
++ { 1, 1, 0, 2, 56, 40, },
++ { 0, 1, 0, 2, 60, 46, },
++ { 2, 1, 0, 2, 60, 40, },
++ { 1, 1, 0, 2, 60, 40, },
++ { 0, 1, 0, 2, 64, 46, },
++ { 2, 1, 0, 2, 64, 40, },
++ { 1, 1, 0, 2, 64, 40, },
++ { 0, 1, 0, 2, 100, 46, },
++ { 2, 1, 0, 2, 100, 40, },
++ { 1, 1, 0, 2, 100, 40, },
++ { 0, 1, 0, 2, 104, 46, },
++ { 2, 1, 0, 2, 104, 40, },
++ { 1, 1, 0, 2, 104, 40, },
++ { 0, 1, 0, 2, 108, 46, },
++ { 2, 1, 0, 2, 108, 40, },
++ { 1, 1, 0, 2, 108, 40, },
++ { 0, 1, 0, 2, 112, 46, },
++ { 2, 1, 0, 2, 112, 40, },
++ { 1, 1, 0, 2, 112, 40, },
++ { 0, 1, 0, 2, 116, 46, },
++ { 2, 1, 0, 2, 116, 40, },
++ { 1, 1, 0, 2, 116, 40, },
++ { 0, 1, 0, 2, 120, 46, },
++ { 2, 1, 0, 2, 120, 40, },
++ { 1, 1, 0, 2, 120, 40, },
++ { 0, 1, 0, 2, 124, 46, },
++ { 2, 1, 0, 2, 124, 40, },
++ { 1, 1, 0, 2, 124, 40, },
++ { 0, 1, 0, 2, 128, 46, },
++ { 2, 1, 0, 2, 128, 40, },
++ { 1, 1, 0, 2, 128, 40, },
++ { 0, 1, 0, 2, 132, 46, },
++ { 2, 1, 0, 2, 132, 40, },
++ { 1, 1, 0, 2, 132, 40, },
++ { 0, 1, 0, 2, 136, 46, },
++ { 2, 1, 0, 2, 136, 40, },
++ { 1, 1, 0, 2, 136, 40, },
++ { 0, 1, 0, 2, 140, 46, },
++ { 2, 1, 0, 2, 140, 40, },
++ { 1, 1, 0, 2, 140, 40, },
++ { 0, 1, 0, 2, 149, 46, },
++ { 2, 1, 0, 2, 149, 40, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 46, },
++ { 2, 1, 0, 2, 153, 40, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 46, },
++ { 2, 1, 0, 2, 157, 40, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 46, },
++ { 2, 1, 0, 2, 161, 40, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 46, },
++ { 2, 1, 0, 2, 165, 40, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 46, },
++ { 2, 1, 0, 3, 36, 40, },
++ { 1, 1, 0, 3, 36, 40, },
++ { 0, 1, 0, 3, 40, 46, },
++ { 2, 1, 0, 3, 40, 40, },
++ { 1, 1, 0, 3, 40, 40, },
++ { 0, 1, 0, 3, 44, 46, },
++ { 2, 1, 0, 3, 44, 40, },
++ { 1, 1, 0, 3, 44, 40, },
++ { 0, 1, 0, 3, 48, 46, },
++ { 2, 1, 0, 3, 48, 40, },
++ { 1, 1, 0, 3, 48, 40, },
++ { 0, 1, 0, 3, 52, 46, },
++ { 2, 1, 0, 3, 52, 40, },
++ { 1, 1, 0, 3, 52, 40, },
++ { 0, 1, 0, 3, 56, 46, },
++ { 2, 1, 0, 3, 56, 40, },
++ { 1, 1, 0, 3, 56, 40, },
++ { 0, 1, 0, 3, 60, 46, },
++ { 2, 1, 0, 3, 60, 40, },
++ { 1, 1, 0, 3, 60, 40, },
++ { 0, 1, 0, 3, 64, 46, },
++ { 2, 1, 0, 3, 64, 40, },
++ { 1, 1, 0, 3, 64, 40, },
++ { 0, 1, 0, 3, 100, 46, },
++ { 2, 1, 0, 3, 100, 40, },
++ { 1, 1, 0, 3, 100, 40, },
++ { 0, 1, 0, 3, 104, 46, },
++ { 2, 1, 0, 3, 104, 40, },
++ { 1, 1, 0, 3, 104, 40, },
++ { 0, 1, 0, 3, 108, 46, },
++ { 2, 1, 0, 3, 108, 40, },
++ { 1, 1, 0, 3, 108, 40, },
++ { 0, 1, 0, 3, 112, 46, },
++ { 2, 1, 0, 3, 112, 40, },
++ { 1, 1, 0, 3, 112, 40, },
++ { 0, 1, 0, 3, 116, 46, },
++ { 2, 1, 0, 3, 116, 40, },
++ { 1, 1, 0, 3, 116, 40, },
++ { 0, 1, 0, 3, 120, 46, },
++ { 2, 1, 0, 3, 120, 40, },
++ { 1, 1, 0, 3, 120, 40, },
++ { 0, 1, 0, 3, 124, 46, },
++ { 2, 1, 0, 3, 124, 40, },
++ { 1, 1, 0, 3, 124, 40, },
++ { 0, 1, 0, 3, 128, 46, },
++ { 2, 1, 0, 3, 128, 40, },
++ { 1, 1, 0, 3, 128, 40, },
++ { 0, 1, 0, 3, 132, 46, },
++ { 2, 1, 0, 3, 132, 40, },
++ { 1, 1, 0, 3, 132, 40, },
++ { 0, 1, 0, 3, 136, 46, },
++ { 2, 1, 0, 3, 136, 40, },
++ { 1, 1, 0, 3, 136, 40, },
++ { 0, 1, 0, 3, 140, 46, },
++ { 2, 1, 0, 3, 140, 40, },
++ { 1, 1, 0, 3, 140, 40, },
++ { 0, 1, 0, 3, 149, 46, },
++ { 2, 1, 0, 3, 149, 40, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 46, },
++ { 2, 1, 0, 3, 153, 40, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 46, },
++ { 2, 1, 0, 3, 157, 40, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 46, },
++ { 2, 1, 0, 3, 161, 40, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 46, },
++ { 2, 1, 0, 3, 165, 40, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 46, },
++ { 2, 1, 0, 6, 36, 40, },
++ { 1, 1, 0, 6, 36, 40, },
++ { 0, 1, 0, 6, 40, 46, },
++ { 2, 1, 0, 6, 40, 40, },
++ { 1, 1, 0, 6, 40, 40, },
++ { 0, 1, 0, 6, 44, 46, },
++ { 2, 1, 0, 6, 44, 40, },
++ { 1, 1, 0, 6, 44, 40, },
++ { 0, 1, 0, 6, 48, 46, },
++ { 2, 1, 0, 6, 48, 40, },
++ { 1, 1, 0, 6, 48, 40, },
++ { 0, 1, 0, 6, 52, 46, },
++ { 2, 1, 0, 6, 52, 40, },
++ { 1, 1, 0, 6, 52, 40, },
++ { 0, 1, 0, 6, 56, 46, },
++ { 2, 1, 0, 6, 56, 40, },
++ { 1, 1, 0, 6, 56, 40, },
++ { 0, 1, 0, 6, 60, 46, },
++ { 2, 1, 0, 6, 60, 40, },
++ { 1, 1, 0, 6, 60, 40, },
++ { 0, 1, 0, 6, 64, 46, },
++ { 2, 1, 0, 6, 64, 40, },
++ { 1, 1, 0, 6, 64, 40, },
++ { 0, 1, 0, 6, 100, 46, },
++ { 2, 1, 0, 6, 100, 40, },
++ { 1, 1, 0, 6, 100, 40, },
++ { 0, 1, 0, 6, 104, 46, },
++ { 2, 1, 0, 6, 104, 40, },
++ { 1, 1, 0, 6, 104, 40, },
++ { 0, 1, 0, 6, 108, 46, },
++ { 2, 1, 0, 6, 108, 40, },
++ { 1, 1, 0, 6, 108, 40, },
++ { 0, 1, 0, 6, 112, 46, },
++ { 2, 1, 0, 6, 112, 40, },
++ { 1, 1, 0, 6, 112, 40, },
++ { 0, 1, 0, 6, 116, 46, },
++ { 2, 1, 0, 6, 116, 40, },
++ { 1, 1, 0, 6, 116, 40, },
++ { 0, 1, 0, 6, 120, 46, },
++ { 2, 1, 0, 6, 120, 40, },
++ { 1, 1, 0, 6, 120, 40, },
++ { 0, 1, 0, 6, 124, 46, },
++ { 2, 1, 0, 6, 124, 40, },
++ { 1, 1, 0, 6, 124, 40, },
++ { 0, 1, 0, 6, 128, 46, },
++ { 2, 1, 0, 6, 128, 40, },
++ { 1, 1, 0, 6, 128, 40, },
++ { 0, 1, 0, 6, 132, 46, },
++ { 2, 1, 0, 6, 132, 40, },
++ { 1, 1, 0, 6, 132, 40, },
++ { 0, 1, 0, 6, 136, 46, },
++ { 2, 1, 0, 6, 136, 40, },
++ { 1, 1, 0, 6, 136, 40, },
++ { 0, 1, 0, 6, 140, 46, },
++ { 2, 1, 0, 6, 140, 40, },
++ { 1, 1, 0, 6, 140, 40, },
++ { 0, 1, 0, 6, 149, 46, },
++ { 2, 1, 0, 6, 149, 40, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 46, },
++ { 2, 1, 0, 6, 153, 40, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 46, },
++ { 2, 1, 0, 6, 157, 40, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 46, },
++ { 2, 1, 0, 6, 161, 40, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 46, },
++ { 2, 1, 0, 6, 165, 40, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 46, },
++ { 2, 1, 0, 7, 36, 40, },
++ { 1, 1, 0, 7, 36, 40, },
++ { 0, 1, 0, 7, 40, 46, },
++ { 2, 1, 0, 7, 40, 40, },
++ { 1, 1, 0, 7, 40, 40, },
++ { 0, 1, 0, 7, 44, 46, },
++ { 2, 1, 0, 7, 44, 40, },
++ { 1, 1, 0, 7, 44, 40, },
++ { 0, 1, 0, 7, 48, 46, },
++ { 2, 1, 0, 7, 48, 40, },
++ { 1, 1, 0, 7, 48, 40, },
++ { 0, 1, 0, 7, 52, 46, },
++ { 2, 1, 0, 7, 52, 40, },
++ { 1, 1, 0, 7, 52, 40, },
++ { 0, 1, 0, 7, 56, 46, },
++ { 2, 1, 0, 7, 56, 40, },
++ { 1, 1, 0, 7, 56, 40, },
++ { 0, 1, 0, 7, 60, 46, },
++ { 2, 1, 0, 7, 60, 40, },
++ { 1, 1, 0, 7, 60, 40, },
++ { 0, 1, 0, 7, 64, 46, },
++ { 2, 1, 0, 7, 64, 40, },
++ { 1, 1, 0, 7, 64, 40, },
++ { 0, 1, 0, 7, 100, 46, },
++ { 2, 1, 0, 7, 100, 40, },
++ { 1, 1, 0, 7, 100, 40, },
++ { 0, 1, 0, 7, 104, 46, },
++ { 2, 1, 0, 7, 104, 40, },
++ { 1, 1, 0, 7, 104, 40, },
++ { 0, 1, 0, 7, 108, 46, },
++ { 2, 1, 0, 7, 108, 40, },
++ { 1, 1, 0, 7, 108, 40, },
++ { 0, 1, 0, 7, 112, 46, },
++ { 2, 1, 0, 7, 112, 40, },
++ { 1, 1, 0, 7, 112, 40, },
++ { 0, 1, 0, 7, 116, 46, },
++ { 2, 1, 0, 7, 116, 40, },
++ { 1, 1, 0, 7, 116, 40, },
++ { 0, 1, 0, 7, 120, 46, },
++ { 2, 1, 0, 7, 120, 40, },
++ { 1, 1, 0, 7, 120, 40, },
++ { 0, 1, 0, 7, 124, 46, },
++ { 2, 1, 0, 7, 124, 40, },
++ { 1, 1, 0, 7, 124, 40, },
++ { 0, 1, 0, 7, 128, 46, },
++ { 2, 1, 0, 7, 128, 40, },
++ { 1, 1, 0, 7, 128, 40, },
++ { 0, 1, 0, 7, 132, 46, },
++ { 2, 1, 0, 7, 132, 40, },
++ { 1, 1, 0, 7, 132, 40, },
++ { 0, 1, 0, 7, 136, 46, },
++ { 2, 1, 0, 7, 136, 40, },
++ { 1, 1, 0, 7, 136, 40, },
++ { 0, 1, 0, 7, 140, 46, },
++ { 2, 1, 0, 7, 140, 40, },
++ { 1, 1, 0, 7, 140, 40, },
++ { 0, 1, 0, 7, 149, 46, },
++ { 2, 1, 0, 7, 149, 40, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 46, },
++ { 2, 1, 0, 7, 153, 40, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 46, },
++ { 2, 1, 0, 7, 157, 40, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 46, },
++ { 2, 1, 0, 7, 161, 40, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 46, },
++ { 2, 1, 0, 7, 165, 40, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 46, },
++ { 2, 1, 1, 2, 38, 40, },
++ { 1, 1, 1, 2, 38, 40, },
++ { 0, 1, 1, 2, 46, 46, },
++ { 2, 1, 1, 2, 46, 40, },
++ { 1, 1, 1, 2, 46, 40, },
++ { 0, 1, 1, 2, 54, 46, },
++ { 2, 1, 1, 2, 54, 40, },
++ { 1, 1, 1, 2, 54, 40, },
++ { 0, 1, 1, 2, 62, 46, },
++ { 2, 1, 1, 2, 62, 40, },
++ { 1, 1, 1, 2, 62, 40, },
++ { 0, 1, 1, 2, 102, 46, },
++ { 2, 1, 1, 2, 102, 40, },
++ { 1, 1, 1, 2, 102, 40, },
++ { 0, 1, 1, 2, 110, 46, },
++ { 2, 1, 1, 2, 110, 40, },
++ { 1, 1, 1, 2, 110, 40, },
++ { 0, 1, 1, 2, 118, 46, },
++ { 2, 1, 1, 2, 118, 40, },
++ { 1, 1, 1, 2, 118, 40, },
++ { 0, 1, 1, 2, 126, 46, },
++ { 2, 1, 1, 2, 126, 40, },
++ { 1, 1, 1, 2, 126, 40, },
++ { 0, 1, 1, 2, 134, 46, },
++ { 2, 1, 1, 2, 134, 40, },
++ { 1, 1, 1, 2, 134, 40, },
++ { 0, 1, 1, 2, 151, 46, },
++ { 2, 1, 1, 2, 151, 40, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 46, },
++ { 2, 1, 1, 2, 159, 40, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 46, },
++ { 2, 1, 1, 3, 38, 40, },
++ { 1, 1, 1, 3, 38, 40, },
++ { 0, 1, 1, 3, 46, 46, },
++ { 2, 1, 1, 3, 46, 40, },
++ { 1, 1, 1, 3, 46, 40, },
++ { 0, 1, 1, 3, 54, 46, },
++ { 2, 1, 1, 3, 54, 40, },
++ { 1, 1, 1, 3, 54, 40, },
++ { 0, 1, 1, 3, 62, 46, },
++ { 2, 1, 1, 3, 62, 40, },
++ { 1, 1, 1, 3, 62, 40, },
++ { 0, 1, 1, 3, 102, 46, },
++ { 2, 1, 1, 3, 102, 40, },
++ { 1, 1, 1, 3, 102, 40, },
++ { 0, 1, 1, 3, 110, 46, },
++ { 2, 1, 1, 3, 110, 40, },
++ { 1, 1, 1, 3, 110, 40, },
++ { 0, 1, 1, 3, 118, 46, },
++ { 2, 1, 1, 3, 118, 40, },
++ { 1, 1, 1, 3, 118, 40, },
++ { 0, 1, 1, 3, 126, 46, },
++ { 2, 1, 1, 3, 126, 40, },
++ { 1, 1, 1, 3, 126, 40, },
++ { 0, 1, 1, 3, 134, 46, },
++ { 2, 1, 1, 3, 134, 40, },
++ { 1, 1, 1, 3, 134, 40, },
++ { 0, 1, 1, 3, 151, 46, },
++ { 2, 1, 1, 3, 151, 40, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 46, },
++ { 2, 1, 1, 3, 159, 40, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 46, },
++ { 2, 1, 1, 6, 38, 40, },
++ { 1, 1, 1, 6, 38, 40, },
++ { 0, 1, 1, 6, 46, 46, },
++ { 2, 1, 1, 6, 46, 40, },
++ { 1, 1, 1, 6, 46, 40, },
++ { 0, 1, 1, 6, 54, 46, },
++ { 2, 1, 1, 6, 54, 40, },
++ { 1, 1, 1, 6, 54, 40, },
++ { 0, 1, 1, 6, 62, 46, },
++ { 2, 1, 1, 6, 62, 40, },
++ { 1, 1, 1, 6, 62, 40, },
++ { 0, 1, 1, 6, 102, 46, },
++ { 2, 1, 1, 6, 102, 40, },
++ { 1, 1, 1, 6, 102, 40, },
++ { 0, 1, 1, 6, 110, 46, },
++ { 2, 1, 1, 6, 110, 40, },
++ { 1, 1, 1, 6, 110, 40, },
++ { 0, 1, 1, 6, 118, 46, },
++ { 2, 1, 1, 6, 118, 40, },
++ { 1, 1, 1, 6, 118, 40, },
++ { 0, 1, 1, 6, 126, 46, },
++ { 2, 1, 1, 6, 126, 40, },
++ { 1, 1, 1, 6, 126, 40, },
++ { 0, 1, 1, 6, 134, 46, },
++ { 2, 1, 1, 6, 134, 40, },
++ { 1, 1, 1, 6, 134, 40, },
++ { 0, 1, 1, 6, 151, 46, },
++ { 2, 1, 1, 6, 151, 40, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 46, },
++ { 2, 1, 1, 6, 159, 40, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 46, },
++ { 2, 1, 1, 7, 38, 40, },
++ { 1, 1, 1, 7, 38, 40, },
++ { 0, 1, 1, 7, 46, 46, },
++ { 2, 1, 1, 7, 46, 40, },
++ { 1, 1, 1, 7, 46, 40, },
++ { 0, 1, 1, 7, 54, 46, },
++ { 2, 1, 1, 7, 54, 40, },
++ { 1, 1, 1, 7, 54, 40, },
++ { 0, 1, 1, 7, 62, 46, },
++ { 2, 1, 1, 7, 62, 40, },
++ { 1, 1, 1, 7, 62, 40, },
++ { 0, 1, 1, 7, 102, 46, },
++ { 2, 1, 1, 7, 102, 40, },
++ { 1, 1, 1, 7, 102, 40, },
++ { 0, 1, 1, 7, 110, 46, },
++ { 2, 1, 1, 7, 110, 40, },
++ { 1, 1, 1, 7, 110, 40, },
++ { 0, 1, 1, 7, 118, 46, },
++ { 2, 1, 1, 7, 118, 40, },
++ { 1, 1, 1, 7, 118, 40, },
++ { 0, 1, 1, 7, 126, 46, },
++ { 2, 1, 1, 7, 126, 40, },
++ { 1, 1, 1, 7, 126, 40, },
++ { 0, 1, 1, 7, 134, 46, },
++ { 2, 1, 1, 7, 134, 40, },
++ { 1, 1, 1, 7, 134, 40, },
++ { 0, 1, 1, 7, 151, 46, },
++ { 2, 1, 1, 7, 151, 40, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 46, },
++ { 2, 1, 1, 7, 159, 40, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 46, },
++ { 2, 1, 2, 4, 42, 40, },
++ { 1, 1, 2, 4, 42, 40, },
++ { 0, 1, 2, 4, 58, 46, },
++ { 2, 1, 2, 4, 58, 40, },
++ { 1, 1, 2, 4, 58, 40, },
++ { 0, 1, 2, 4, 106, 46, },
++ { 2, 1, 2, 4, 106, 40, },
++ { 1, 1, 2, 4, 106, 40, },
++ { 0, 1, 2, 4, 122, 46, },
++ { 2, 1, 2, 4, 122, 40, },
++ { 1, 1, 2, 4, 122, 40, },
++ { 0, 1, 2, 4, 155, 46, },
++ { 2, 1, 2, 4, 155, 40, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 46, },
++ { 2, 1, 2, 5, 42, 40, },
++ { 1, 1, 2, 5, 42, 40, },
++ { 0, 1, 2, 5, 58, 46, },
++ { 2, 1, 2, 5, 58, 40, },
++ { 1, 1, 2, 5, 58, 40, },
++ { 0, 1, 2, 5, 106, 46, },
++ { 2, 1, 2, 5, 106, 40, },
++ { 1, 1, 2, 5, 106, 40, },
++ { 0, 1, 2, 5, 122, 46, },
++ { 2, 1, 2, 5, 122, 40, },
++ { 1, 1, 2, 5, 122, 40, },
++ { 0, 1, 2, 5, 155, 46, },
++ { 2, 1, 2, 5, 155, 40, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 46, },
++ { 2, 1, 2, 8, 42, 40, },
++ { 1, 1, 2, 8, 42, 40, },
++ { 0, 1, 2, 8, 58, 46, },
++ { 2, 1, 2, 8, 58, 40, },
++ { 1, 1, 2, 8, 58, 40, },
++ { 0, 1, 2, 8, 106, 46, },
++ { 2, 1, 2, 8, 106, 40, },
++ { 1, 1, 2, 8, 106, 40, },
++ { 0, 1, 2, 8, 122, 46, },
++ { 2, 1, 2, 8, 122, 40, },
++ { 1, 1, 2, 8, 122, 40, },
++ { 0, 1, 2, 8, 155, 46, },
++ { 2, 1, 2, 8, 155, 40, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 46, },
++ { 2, 1, 2, 9, 42, 40, },
++ { 1, 1, 2, 9, 42, 40, },
++ { 0, 1, 2, 9, 58, 46, },
++ { 2, 1, 2, 9, 58, 40, },
++ { 1, 1, 2, 9, 58, 40, },
++ { 0, 1, 2, 9, 106, 46, },
++ { 2, 1, 2, 9, 106, 40, },
++ { 1, 1, 2, 9, 106, 40, },
++ { 0, 1, 2, 9, 122, 46, },
++ { 2, 1, 2, 9, 122, 40, },
++ { 1, 1, 2, 9, 122, 40, },
++ { 0, 1, 2, 9, 155, 46, },
++ { 2, 1, 2, 9, 155, 40, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type5);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type7[] = {
++ { 0, 0, 0, 0, 1, 44, },
++ { 2, 0, 0, 0, 1, 32, },
++ { 1, 0, 0, 0, 1, 32, },
++ { 0, 0, 0, 0, 2, 52, },
++ { 2, 0, 0, 0, 2, 32, },
++ { 1, 0, 0, 0, 2, 32, },
++ { 0, 0, 0, 0, 3, 52, },
++ { 2, 0, 0, 0, 3, 32, },
++ { 1, 0, 0, 0, 3, 32, },
++ { 0, 0, 0, 0, 4, 52, },
++ { 2, 0, 0, 0, 4, 32, },
++ { 1, 0, 0, 0, 4, 32, },
++ { 0, 0, 0, 0, 5, 52, },
++ { 2, 0, 0, 0, 5, 32, },
++ { 1, 0, 0, 0, 5, 32, },
++ { 0, 0, 0, 0, 6, 52, },
++ { 2, 0, 0, 0, 6, 32, },
++ { 1, 0, 0, 0, 6, 32, },
++ { 0, 0, 0, 0, 7, 52, },
++ { 2, 0, 0, 0, 7, 32, },
++ { 1, 0, 0, 0, 7, 32, },
++ { 0, 0, 0, 0, 8, 52, },
++ { 2, 0, 0, 0, 8, 32, },
++ { 1, 0, 0, 0, 8, 32, },
++ { 0, 0, 0, 0, 9, 52, },
++ { 2, 0, 0, 0, 9, 32, },
++ { 1, 0, 0, 0, 9, 32, },
++ { 0, 0, 0, 0, 10, 52, },
++ { 2, 0, 0, 0, 10, 32, },
++ { 1, 0, 0, 0, 10, 32, },
++ { 0, 0, 0, 0, 11, 44, },
++ { 2, 0, 0, 0, 11, 32, },
++ { 1, 0, 0, 0, 11, 32, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 32, },
++ { 1, 0, 0, 0, 12, 32, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 32, },
++ { 1, 0, 0, 0, 13, 32, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 32, },
++ { 0, 0, 0, 1, 1, 38, },
++ { 2, 0, 0, 1, 1, 32, },
++ { 1, 0, 0, 1, 1, 32, },
++ { 0, 0, 0, 1, 2, 46, },
++ { 2, 0, 0, 1, 2, 32, },
++ { 1, 0, 0, 1, 2, 32, },
++ { 0, 0, 0, 1, 3, 46, },
++ { 2, 0, 0, 1, 3, 32, },
++ { 1, 0, 0, 1, 3, 32, },
++ { 0, 0, 0, 1, 4, 46, },
++ { 2, 0, 0, 1, 4, 32, },
++ { 1, 0, 0, 1, 4, 32, },
++ { 0, 0, 0, 1, 5, 46, },
++ { 2, 0, 0, 1, 5, 32, },
++ { 1, 0, 0, 1, 5, 32, },
++ { 0, 0, 0, 1, 6, 46, },
++ { 2, 0, 0, 1, 6, 32, },
++ { 1, 0, 0, 1, 6, 32, },
++ { 0, 0, 0, 1, 7, 46, },
++ { 2, 0, 0, 1, 7, 32, },
++ { 1, 0, 0, 1, 7, 32, },
++ { 0, 0, 0, 1, 8, 46, },
++ { 2, 0, 0, 1, 8, 32, },
++ { 1, 0, 0, 1, 8, 32, },
++ { 0, 0, 0, 1, 9, 46, },
++ { 2, 0, 0, 1, 9, 32, },
++ { 1, 0, 0, 1, 9, 32, },
++ { 0, 0, 0, 1, 10, 46, },
++ { 2, 0, 0, 1, 10, 32, },
++ { 1, 0, 0, 1, 10, 32, },
++ { 0, 0, 0, 1, 11, 38, },
++ { 2, 0, 0, 1, 11, 32, },
++ { 1, 0, 0, 1, 11, 32, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 32, },
++ { 1, 0, 0, 1, 12, 32, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 32, },
++ { 1, 0, 0, 1, 13, 32, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 63, },
++ { 0, 0, 0, 2, 1, 34, },
++ { 2, 0, 0, 2, 1, 32, },
++ { 1, 0, 0, 2, 1, 32, },
++ { 0, 0, 0, 2, 2, 46, },
++ { 2, 0, 0, 2, 2, 32, },
++ { 1, 0, 0, 2, 2, 32, },
++ { 0, 0, 0, 2, 3, 46, },
++ { 2, 0, 0, 2, 3, 32, },
++ { 1, 0, 0, 2, 3, 32, },
++ { 0, 0, 0, 2, 4, 46, },
++ { 2, 0, 0, 2, 4, 32, },
++ { 1, 0, 0, 2, 4, 32, },
++ { 0, 0, 0, 2, 5, 46, },
++ { 2, 0, 0, 2, 5, 32, },
++ { 1, 0, 0, 2, 5, 32, },
++ { 0, 0, 0, 2, 6, 46, },
++ { 2, 0, 0, 2, 6, 32, },
++ { 1, 0, 0, 2, 6, 32, },
++ { 0, 0, 0, 2, 7, 46, },
++ { 2, 0, 0, 2, 7, 32, },
++ { 1, 0, 0, 2, 7, 32, },
++ { 0, 0, 0, 2, 8, 46, },
++ { 2, 0, 0, 2, 8, 32, },
++ { 1, 0, 0, 2, 8, 32, },
++ { 0, 0, 0, 2, 9, 46, },
++ { 2, 0, 0, 2, 9, 32, },
++ { 1, 0, 0, 2, 9, 32, },
++ { 0, 0, 0, 2, 10, 46, },
++ { 2, 0, 0, 2, 10, 32, },
++ { 1, 0, 0, 2, 10, 32, },
++ { 0, 0, 0, 2, 11, 34, },
++ { 2, 0, 0, 2, 11, 32, },
++ { 1, 0, 0, 2, 11, 32, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 32, },
++ { 1, 0, 0, 2, 12, 32, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 32, },
++ { 1, 0, 0, 2, 13, 32, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 63, },
++ { 0, 0, 0, 3, 1, 32, },
++ { 2, 0, 0, 3, 1, 30, },
++ { 1, 0, 0, 3, 1, 30, },
++ { 0, 0, 0, 3, 2, 44, },
++ { 2, 0, 0, 3, 2, 30, },
++ { 1, 0, 0, 3, 2, 30, },
++ { 0, 0, 0, 3, 3, 44, },
++ { 2, 0, 0, 3, 3, 30, },
++ { 1, 0, 0, 3, 3, 30, },
++ { 0, 0, 0, 3, 4, 44, },
++ { 2, 0, 0, 3, 4, 30, },
++ { 1, 0, 0, 3, 4, 30, },
++ { 0, 0, 0, 3, 5, 44, },
++ { 2, 0, 0, 3, 5, 30, },
++ { 1, 0, 0, 3, 5, 30, },
++ { 0, 0, 0, 3, 6, 44, },
++ { 2, 0, 0, 3, 6, 30, },
++ { 1, 0, 0, 3, 6, 30, },
++ { 0, 0, 0, 3, 7, 44, },
++ { 2, 0, 0, 3, 7, 30, },
++ { 1, 0, 0, 3, 7, 30, },
++ { 0, 0, 0, 3, 8, 44, },
++ { 2, 0, 0, 3, 8, 30, },
++ { 1, 0, 0, 3, 8, 30, },
++ { 0, 0, 0, 3, 9, 44, },
++ { 2, 0, 0, 3, 9, 30, },
++ { 1, 0, 0, 3, 9, 30, },
++ { 0, 0, 0, 3, 10, 44, },
++ { 2, 0, 0, 3, 10, 30, },
++ { 1, 0, 0, 3, 10, 30, },
++ { 0, 0, 0, 3, 11, 32, },
++ { 2, 0, 0, 3, 11, 30, },
++ { 1, 0, 0, 3, 11, 30, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 30, },
++ { 1, 0, 0, 3, 12, 30, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 30, },
++ { 1, 0, 0, 3, 13, 30, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 63, },
++ { 0, 0, 0, 6, 1, 30, },
++ { 2, 0, 0, 6, 1, 28, },
++ { 1, 0, 0, 6, 1, 28, },
++ { 0, 0, 0, 6, 2, 42, },
++ { 2, 0, 0, 6, 2, 28, },
++ { 1, 0, 0, 6, 2, 28, },
++ { 0, 0, 0, 6, 3, 42, },
++ { 2, 0, 0, 6, 3, 28, },
++ { 1, 0, 0, 6, 3, 28, },
++ { 0, 0, 0, 6, 4, 42, },
++ { 2, 0, 0, 6, 4, 28, },
++ { 1, 0, 0, 6, 4, 28, },
++ { 0, 0, 0, 6, 5, 42, },
++ { 2, 0, 0, 6, 5, 28, },
++ { 1, 0, 0, 6, 5, 28, },
++ { 0, 0, 0, 6, 6, 42, },
++ { 2, 0, 0, 6, 6, 28, },
++ { 1, 0, 0, 6, 6, 28, },
++ { 0, 0, 0, 6, 7, 42, },
++ { 2, 0, 0, 6, 7, 28, },
++ { 1, 0, 0, 6, 7, 28, },
++ { 0, 0, 0, 6, 8, 42, },
++ { 2, 0, 0, 6, 8, 28, },
++ { 1, 0, 0, 6, 8, 28, },
++ { 0, 0, 0, 6, 9, 42, },
++ { 2, 0, 0, 6, 9, 28, },
++ { 1, 0, 0, 6, 9, 28, },
++ { 0, 0, 0, 6, 10, 42, },
++ { 2, 0, 0, 6, 10, 28, },
++ { 1, 0, 0, 6, 10, 28, },
++ { 0, 0, 0, 6, 11, 30, },
++ { 2, 0, 0, 6, 11, 28, },
++ { 1, 0, 0, 6, 11, 28, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 28, },
++ { 1, 0, 0, 6, 12, 28, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 28, },
++ { 1, 0, 0, 6, 13, 28, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 63, },
++ { 0, 0, 0, 7, 1, 28, },
++ { 2, 0, 0, 7, 1, 26, },
++ { 1, 0, 0, 7, 1, 26, },
++ { 0, 0, 0, 7, 2, 40, },
++ { 2, 0, 0, 7, 2, 26, },
++ { 1, 0, 0, 7, 2, 26, },
++ { 0, 0, 0, 7, 3, 40, },
++ { 2, 0, 0, 7, 3, 26, },
++ { 1, 0, 0, 7, 3, 26, },
++ { 0, 0, 0, 7, 4, 40, },
++ { 2, 0, 0, 7, 4, 26, },
++ { 1, 0, 0, 7, 4, 26, },
++ { 0, 0, 0, 7, 5, 40, },
++ { 2, 0, 0, 7, 5, 26, },
++ { 1, 0, 0, 7, 5, 26, },
++ { 0, 0, 0, 7, 6, 40, },
++ { 2, 0, 0, 7, 6, 26, },
++ { 1, 0, 0, 7, 6, 26, },
++ { 0, 0, 0, 7, 7, 40, },
++ { 2, 0, 0, 7, 7, 26, },
++ { 1, 0, 0, 7, 7, 26, },
++ { 0, 0, 0, 7, 8, 40, },
++ { 2, 0, 0, 7, 8, 26, },
++ { 1, 0, 0, 7, 8, 26, },
++ { 0, 0, 0, 7, 9, 40, },
++ { 2, 0, 0, 7, 9, 26, },
++ { 1, 0, 0, 7, 9, 26, },
++ { 0, 0, 0, 7, 10, 40, },
++ { 2, 0, 0, 7, 10, 26, },
++ { 1, 0, 0, 7, 10, 26, },
++ { 0, 0, 0, 7, 11, 28, },
++ { 2, 0, 0, 7, 11, 26, },
++ { 1, 0, 0, 7, 11, 26, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 26, },
++ { 1, 0, 0, 7, 12, 26, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 26, },
++ { 1, 0, 0, 7, 13, 26, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 63, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 36, },
++ { 2, 0, 1, 2, 3, 32, },
++ { 1, 0, 1, 2, 3, 32, },
++ { 0, 0, 1, 2, 4, 40, },
++ { 2, 0, 1, 2, 4, 32, },
++ { 1, 0, 1, 2, 4, 32, },
++ { 0, 0, 1, 2, 5, 40, },
++ { 2, 0, 1, 2, 5, 32, },
++ { 1, 0, 1, 2, 5, 32, },
++ { 0, 0, 1, 2, 6, 40, },
++ { 2, 0, 1, 2, 6, 32, },
++ { 1, 0, 1, 2, 6, 32, },
++ { 0, 0, 1, 2, 7, 40, },
++ { 2, 0, 1, 2, 7, 32, },
++ { 1, 0, 1, 2, 7, 32, },
++ { 0, 0, 1, 2, 8, 40, },
++ { 2, 0, 1, 2, 8, 32, },
++ { 1, 0, 1, 2, 8, 32, },
++ { 0, 0, 1, 2, 9, 40, },
++ { 2, 0, 1, 2, 9, 32, },
++ { 1, 0, 1, 2, 9, 32, },
++ { 0, 0, 1, 2, 10, 40, },
++ { 2, 0, 1, 2, 10, 32, },
++ { 1, 0, 1, 2, 10, 32, },
++ { 0, 0, 1, 2, 11, 34, },
++ { 2, 0, 1, 2, 11, 32, },
++ { 1, 0, 1, 2, 11, 32, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 32, },
++ { 1, 0, 1, 2, 12, 32, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 32, },
++ { 1, 0, 1, 2, 13, 32, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 34, },
++ { 2, 0, 1, 3, 3, 30, },
++ { 1, 0, 1, 3, 3, 30, },
++ { 0, 0, 1, 3, 4, 38, },
++ { 2, 0, 1, 3, 4, 30, },
++ { 1, 0, 1, 3, 4, 30, },
++ { 0, 0, 1, 3, 5, 38, },
++ { 2, 0, 1, 3, 5, 30, },
++ { 1, 0, 1, 3, 5, 30, },
++ { 0, 0, 1, 3, 6, 38, },
++ { 2, 0, 1, 3, 6, 30, },
++ { 1, 0, 1, 3, 6, 30, },
++ { 0, 0, 1, 3, 7, 38, },
++ { 2, 0, 1, 3, 7, 30, },
++ { 1, 0, 1, 3, 7, 30, },
++ { 0, 0, 1, 3, 8, 38, },
++ { 2, 0, 1, 3, 8, 30, },
++ { 1, 0, 1, 3, 8, 30, },
++ { 0, 0, 1, 3, 9, 38, },
++ { 2, 0, 1, 3, 9, 30, },
++ { 1, 0, 1, 3, 9, 30, },
++ { 0, 0, 1, 3, 10, 38, },
++ { 2, 0, 1, 3, 10, 30, },
++ { 1, 0, 1, 3, 10, 30, },
++ { 0, 0, 1, 3, 11, 32, },
++ { 2, 0, 1, 3, 11, 30, },
++ { 1, 0, 1, 3, 11, 30, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 30, },
++ { 1, 0, 1, 3, 12, 30, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 30, },
++ { 1, 0, 1, 3, 13, 30, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 32, },
++ { 2, 0, 1, 6, 3, 28, },
++ { 1, 0, 1, 6, 3, 28, },
++ { 0, 0, 1, 6, 4, 36, },
++ { 2, 0, 1, 6, 4, 28, },
++ { 1, 0, 1, 6, 4, 28, },
++ { 0, 0, 1, 6, 5, 36, },
++ { 2, 0, 1, 6, 5, 28, },
++ { 1, 0, 1, 6, 5, 28, },
++ { 0, 0, 1, 6, 6, 36, },
++ { 2, 0, 1, 6, 6, 28, },
++ { 1, 0, 1, 6, 6, 28, },
++ { 0, 0, 1, 6, 7, 36, },
++ { 2, 0, 1, 6, 7, 28, },
++ { 1, 0, 1, 6, 7, 28, },
++ { 0, 0, 1, 6, 8, 36, },
++ { 2, 0, 1, 6, 8, 28, },
++ { 1, 0, 1, 6, 8, 28, },
++ { 0, 0, 1, 6, 9, 36, },
++ { 2, 0, 1, 6, 9, 28, },
++ { 1, 0, 1, 6, 9, 28, },
++ { 0, 0, 1, 6, 10, 36, },
++ { 2, 0, 1, 6, 10, 28, },
++ { 1, 0, 1, 6, 10, 28, },
++ { 0, 0, 1, 6, 11, 30, },
++ { 2, 0, 1, 6, 11, 28, },
++ { 1, 0, 1, 6, 11, 28, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 28, },
++ { 1, 0, 1, 6, 12, 28, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 28, },
++ { 1, 0, 1, 6, 13, 28, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 32, },
++ { 2, 0, 1, 7, 3, 26, },
++ { 1, 0, 1, 7, 3, 26, },
++ { 0, 0, 1, 7, 4, 36, },
++ { 2, 0, 1, 7, 4, 26, },
++ { 1, 0, 1, 7, 4, 26, },
++ { 0, 0, 1, 7, 5, 36, },
++ { 2, 0, 1, 7, 5, 26, },
++ { 1, 0, 1, 7, 5, 26, },
++ { 0, 0, 1, 7, 6, 36, },
++ { 2, 0, 1, 7, 6, 26, },
++ { 1, 0, 1, 7, 6, 26, },
++ { 0, 0, 1, 7, 7, 36, },
++ { 2, 0, 1, 7, 7, 26, },
++ { 1, 0, 1, 7, 7, 26, },
++ { 0, 0, 1, 7, 8, 36, },
++ { 2, 0, 1, 7, 8, 26, },
++ { 1, 0, 1, 7, 8, 26, },
++ { 0, 0, 1, 7, 9, 36, },
++ { 2, 0, 1, 7, 9, 26, },
++ { 1, 0, 1, 7, 9, 26, },
++ { 0, 0, 1, 7, 10, 36, },
++ { 2, 0, 1, 7, 10, 26, },
++ { 1, 0, 1, 7, 10, 26, },
++ { 0, 0, 1, 7, 11, 30, },
++ { 2, 0, 1, 7, 11, 26, },
++ { 1, 0, 1, 7, 11, 26, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 26, },
++ { 1, 0, 1, 7, 12, 26, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 26, },
++ { 1, 0, 1, 7, 13, 26, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 38, },
++ { 2, 1, 0, 1, 36, 32, },
++ { 1, 1, 0, 1, 36, 32, },
++ { 0, 1, 0, 1, 40, 38, },
++ { 2, 1, 0, 1, 40, 32, },
++ { 1, 1, 0, 1, 40, 32, },
++ { 0, 1, 0, 1, 44, 38, },
++ { 2, 1, 0, 1, 44, 32, },
++ { 1, 1, 0, 1, 44, 32, },
++ { 0, 1, 0, 1, 48, 38, },
++ { 2, 1, 0, 1, 48, 32, },
++ { 1, 1, 0, 1, 48, 32, },
++ { 0, 1, 0, 1, 52, 38, },
++ { 2, 1, 0, 1, 52, 32, },
++ { 1, 1, 0, 1, 52, 32, },
++ { 0, 1, 0, 1, 56, 38, },
++ { 2, 1, 0, 1, 56, 32, },
++ { 1, 1, 0, 1, 56, 32, },
++ { 0, 1, 0, 1, 60, 38, },
++ { 2, 1, 0, 1, 60, 32, },
++ { 1, 1, 0, 1, 60, 32, },
++ { 0, 1, 0, 1, 64, 38, },
++ { 2, 1, 0, 1, 64, 32, },
++ { 1, 1, 0, 1, 64, 32, },
++ { 0, 1, 0, 1, 100, 36, },
++ { 2, 1, 0, 1, 100, 32, },
++ { 1, 1, 0, 1, 100, 32, },
++ { 0, 1, 0, 1, 104, 36, },
++ { 2, 1, 0, 1, 104, 32, },
++ { 1, 1, 0, 1, 104, 32, },
++ { 0, 1, 0, 1, 108, 36, },
++ { 2, 1, 0, 1, 108, 32, },
++ { 1, 1, 0, 1, 108, 32, },
++ { 0, 1, 0, 1, 112, 36, },
++ { 2, 1, 0, 1, 112, 32, },
++ { 1, 1, 0, 1, 112, 32, },
++ { 0, 1, 0, 1, 116, 36, },
++ { 2, 1, 0, 1, 116, 32, },
++ { 1, 1, 0, 1, 116, 32, },
++ { 0, 1, 0, 1, 120, 36, },
++ { 2, 1, 0, 1, 120, 32, },
++ { 1, 1, 0, 1, 120, 32, },
++ { 0, 1, 0, 1, 124, 36, },
++ { 2, 1, 0, 1, 124, 32, },
++ { 1, 1, 0, 1, 124, 32, },
++ { 0, 1, 0, 1, 128, 36, },
++ { 2, 1, 0, 1, 128, 32, },
++ { 1, 1, 0, 1, 128, 32, },
++ { 0, 1, 0, 1, 132, 36, },
++ { 2, 1, 0, 1, 132, 32, },
++ { 1, 1, 0, 1, 132, 32, },
++ { 0, 1, 0, 1, 136, 36, },
++ { 2, 1, 0, 1, 136, 32, },
++ { 1, 1, 0, 1, 136, 32, },
++ { 0, 1, 0, 1, 140, 36, },
++ { 2, 1, 0, 1, 140, 32, },
++ { 1, 1, 0, 1, 140, 32, },
++ { 0, 1, 0, 1, 149, 36, },
++ { 2, 1, 0, 1, 149, 32, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 36, },
++ { 2, 1, 0, 1, 153, 32, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 36, },
++ { 2, 1, 0, 1, 157, 32, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 36, },
++ { 2, 1, 0, 1, 161, 32, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 36, },
++ { 2, 1, 0, 1, 165, 32, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 36, },
++ { 2, 1, 0, 2, 36, 32, },
++ { 1, 1, 0, 2, 36, 32, },
++ { 0, 1, 0, 2, 40, 36, },
++ { 2, 1, 0, 2, 40, 32, },
++ { 1, 1, 0, 2, 40, 32, },
++ { 0, 1, 0, 2, 44, 36, },
++ { 2, 1, 0, 2, 44, 32, },
++ { 1, 1, 0, 2, 44, 32, },
++ { 0, 1, 0, 2, 48, 36, },
++ { 2, 1, 0, 2, 48, 32, },
++ { 1, 1, 0, 2, 48, 32, },
++ { 0, 1, 0, 2, 52, 36, },
++ { 2, 1, 0, 2, 52, 32, },
++ { 1, 1, 0, 2, 52, 32, },
++ { 0, 1, 0, 2, 56, 36, },
++ { 2, 1, 0, 2, 56, 32, },
++ { 1, 1, 0, 2, 56, 32, },
++ { 0, 1, 0, 2, 60, 36, },
++ { 2, 1, 0, 2, 60, 32, },
++ { 1, 1, 0, 2, 60, 32, },
++ { 0, 1, 0, 2, 64, 36, },
++ { 2, 1, 0, 2, 64, 32, },
++ { 1, 1, 0, 2, 64, 32, },
++ { 0, 1, 0, 2, 100, 36, },
++ { 2, 1, 0, 2, 100, 32, },
++ { 1, 1, 0, 2, 100, 32, },
++ { 0, 1, 0, 2, 104, 36, },
++ { 2, 1, 0, 2, 104, 32, },
++ { 1, 1, 0, 2, 104, 32, },
++ { 0, 1, 0, 2, 108, 36, },
++ { 2, 1, 0, 2, 108, 32, },
++ { 1, 1, 0, 2, 108, 32, },
++ { 0, 1, 0, 2, 112, 36, },
++ { 2, 1, 0, 2, 112, 32, },
++ { 1, 1, 0, 2, 112, 32, },
++ { 0, 1, 0, 2, 116, 36, },
++ { 2, 1, 0, 2, 116, 32, },
++ { 1, 1, 0, 2, 116, 32, },
++ { 0, 1, 0, 2, 120, 36, },
++ { 2, 1, 0, 2, 120, 32, },
++ { 1, 1, 0, 2, 120, 32, },
++ { 0, 1, 0, 2, 124, 36, },
++ { 2, 1, 0, 2, 124, 32, },
++ { 1, 1, 0, 2, 124, 32, },
++ { 0, 1, 0, 2, 128, 36, },
++ { 2, 1, 0, 2, 128, 32, },
++ { 1, 1, 0, 2, 128, 32, },
++ { 0, 1, 0, 2, 132, 36, },
++ { 2, 1, 0, 2, 132, 32, },
++ { 1, 1, 0, 2, 132, 32, },
++ { 0, 1, 0, 2, 136, 36, },
++ { 2, 1, 0, 2, 136, 32, },
++ { 1, 1, 0, 2, 136, 32, },
++ { 0, 1, 0, 2, 140, 34, },
++ { 2, 1, 0, 2, 140, 32, },
++ { 1, 1, 0, 2, 140, 32, },
++ { 0, 1, 0, 2, 149, 32, },
++ { 2, 1, 0, 2, 149, 32, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 38, },
++ { 2, 1, 0, 2, 153, 32, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 38, },
++ { 2, 1, 0, 2, 157, 32, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 38, },
++ { 2, 1, 0, 2, 161, 32, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 38, },
++ { 2, 1, 0, 2, 165, 32, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 34, },
++ { 2, 1, 0, 3, 36, 30, },
++ { 1, 1, 0, 3, 36, 30, },
++ { 0, 1, 0, 3, 40, 34, },
++ { 2, 1, 0, 3, 40, 30, },
++ { 1, 1, 0, 3, 40, 30, },
++ { 0, 1, 0, 3, 44, 34, },
++ { 2, 1, 0, 3, 44, 30, },
++ { 1, 1, 0, 3, 44, 30, },
++ { 0, 1, 0, 3, 48, 34, },
++ { 2, 1, 0, 3, 48, 30, },
++ { 1, 1, 0, 3, 48, 30, },
++ { 0, 1, 0, 3, 52, 34, },
++ { 2, 1, 0, 3, 52, 30, },
++ { 1, 1, 0, 3, 52, 30, },
++ { 0, 1, 0, 3, 56, 34, },
++ { 2, 1, 0, 3, 56, 30, },
++ { 1, 1, 0, 3, 56, 30, },
++ { 0, 1, 0, 3, 60, 34, },
++ { 2, 1, 0, 3, 60, 30, },
++ { 1, 1, 0, 3, 60, 30, },
++ { 0, 1, 0, 3, 64, 34, },
++ { 2, 1, 0, 3, 64, 30, },
++ { 1, 1, 0, 3, 64, 30, },
++ { 0, 1, 0, 3, 100, 34, },
++ { 2, 1, 0, 3, 100, 30, },
++ { 1, 1, 0, 3, 100, 30, },
++ { 0, 1, 0, 3, 104, 34, },
++ { 2, 1, 0, 3, 104, 30, },
++ { 1, 1, 0, 3, 104, 30, },
++ { 0, 1, 0, 3, 108, 34, },
++ { 2, 1, 0, 3, 108, 30, },
++ { 1, 1, 0, 3, 108, 30, },
++ { 0, 1, 0, 3, 112, 34, },
++ { 2, 1, 0, 3, 112, 30, },
++ { 1, 1, 0, 3, 112, 30, },
++ { 0, 1, 0, 3, 116, 34, },
++ { 2, 1, 0, 3, 116, 30, },
++ { 1, 1, 0, 3, 116, 30, },
++ { 0, 1, 0, 3, 120, 34, },
++ { 2, 1, 0, 3, 120, 30, },
++ { 1, 1, 0, 3, 120, 30, },
++ { 0, 1, 0, 3, 124, 34, },
++ { 2, 1, 0, 3, 124, 30, },
++ { 1, 1, 0, 3, 124, 30, },
++ { 0, 1, 0, 3, 128, 34, },
++ { 2, 1, 0, 3, 128, 30, },
++ { 1, 1, 0, 3, 128, 30, },
++ { 0, 1, 0, 3, 132, 34, },
++ { 2, 1, 0, 3, 132, 30, },
++ { 1, 1, 0, 3, 132, 30, },
++ { 0, 1, 0, 3, 136, 34, },
++ { 2, 1, 0, 3, 136, 30, },
++ { 1, 1, 0, 3, 136, 30, },
++ { 0, 1, 0, 3, 140, 32, },
++ { 2, 1, 0, 3, 140, 30, },
++ { 1, 1, 0, 3, 140, 30, },
++ { 0, 1, 0, 3, 149, 30, },
++ { 2, 1, 0, 3, 149, 30, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 36, },
++ { 2, 1, 0, 3, 153, 30, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 36, },
++ { 2, 1, 0, 3, 157, 30, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 36, },
++ { 2, 1, 0, 3, 161, 30, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 36, },
++ { 2, 1, 0, 3, 165, 30, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 32, },
++ { 2, 1, 0, 6, 36, 28, },
++ { 1, 1, 0, 6, 36, 28, },
++ { 0, 1, 0, 6, 40, 32, },
++ { 2, 1, 0, 6, 40, 28, },
++ { 1, 1, 0, 6, 40, 28, },
++ { 0, 1, 0, 6, 44, 32, },
++ { 2, 1, 0, 6, 44, 28, },
++ { 1, 1, 0, 6, 44, 28, },
++ { 0, 1, 0, 6, 48, 32, },
++ { 2, 1, 0, 6, 48, 28, },
++ { 1, 1, 0, 6, 48, 28, },
++ { 0, 1, 0, 6, 52, 32, },
++ { 2, 1, 0, 6, 52, 28, },
++ { 1, 1, 0, 6, 52, 28, },
++ { 0, 1, 0, 6, 56, 32, },
++ { 2, 1, 0, 6, 56, 28, },
++ { 1, 1, 0, 6, 56, 28, },
++ { 0, 1, 0, 6, 60, 32, },
++ { 2, 1, 0, 6, 60, 28, },
++ { 1, 1, 0, 6, 60, 28, },
++ { 0, 1, 0, 6, 64, 32, },
++ { 2, 1, 0, 6, 64, 28, },
++ { 1, 1, 0, 6, 64, 28, },
++ { 0, 1, 0, 6, 100, 32, },
++ { 2, 1, 0, 6, 100, 28, },
++ { 1, 1, 0, 6, 100, 28, },
++ { 0, 1, 0, 6, 104, 32, },
++ { 2, 1, 0, 6, 104, 28, },
++ { 1, 1, 0, 6, 104, 28, },
++ { 0, 1, 0, 6, 108, 32, },
++ { 2, 1, 0, 6, 108, 28, },
++ { 1, 1, 0, 6, 108, 28, },
++ { 0, 1, 0, 6, 112, 32, },
++ { 2, 1, 0, 6, 112, 28, },
++ { 1, 1, 0, 6, 112, 28, },
++ { 0, 1, 0, 6, 116, 32, },
++ { 2, 1, 0, 6, 116, 28, },
++ { 1, 1, 0, 6, 116, 28, },
++ { 0, 1, 0, 6, 120, 32, },
++ { 2, 1, 0, 6, 120, 28, },
++ { 1, 1, 0, 6, 120, 28, },
++ { 0, 1, 0, 6, 124, 32, },
++ { 2, 1, 0, 6, 124, 28, },
++ { 1, 1, 0, 6, 124, 28, },
++ { 0, 1, 0, 6, 128, 32, },
++ { 2, 1, 0, 6, 128, 28, },
++ { 1, 1, 0, 6, 128, 28, },
++ { 0, 1, 0, 6, 132, 32, },
++ { 2, 1, 0, 6, 132, 28, },
++ { 1, 1, 0, 6, 132, 28, },
++ { 0, 1, 0, 6, 136, 32, },
++ { 2, 1, 0, 6, 136, 28, },
++ { 1, 1, 0, 6, 136, 28, },
++ { 0, 1, 0, 6, 140, 30, },
++ { 2, 1, 0, 6, 140, 28, },
++ { 1, 1, 0, 6, 140, 28, },
++ { 0, 1, 0, 6, 149, 28, },
++ { 2, 1, 0, 6, 149, 28, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 34, },
++ { 2, 1, 0, 6, 153, 28, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 34, },
++ { 2, 1, 0, 6, 157, 28, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 34, },
++ { 2, 1, 0, 6, 161, 28, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 34, },
++ { 2, 1, 0, 6, 165, 28, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 30, },
++ { 2, 1, 0, 7, 36, 26, },
++ { 1, 1, 0, 7, 36, 26, },
++ { 0, 1, 0, 7, 40, 30, },
++ { 2, 1, 0, 7, 40, 26, },
++ { 1, 1, 0, 7, 40, 26, },
++ { 0, 1, 0, 7, 44, 30, },
++ { 2, 1, 0, 7, 44, 26, },
++ { 1, 1, 0, 7, 44, 26, },
++ { 0, 1, 0, 7, 48, 30, },
++ { 2, 1, 0, 7, 48, 26, },
++ { 1, 1, 0, 7, 48, 26, },
++ { 0, 1, 0, 7, 52, 30, },
++ { 2, 1, 0, 7, 52, 26, },
++ { 1, 1, 0, 7, 52, 26, },
++ { 0, 1, 0, 7, 56, 30, },
++ { 2, 1, 0, 7, 56, 26, },
++ { 1, 1, 0, 7, 56, 26, },
++ { 0, 1, 0, 7, 60, 30, },
++ { 2, 1, 0, 7, 60, 26, },
++ { 1, 1, 0, 7, 60, 26, },
++ { 0, 1, 0, 7, 64, 30, },
++ { 2, 1, 0, 7, 64, 26, },
++ { 1, 1, 0, 7, 64, 26, },
++ { 0, 1, 0, 7, 100, 30, },
++ { 2, 1, 0, 7, 100, 26, },
++ { 1, 1, 0, 7, 100, 26, },
++ { 0, 1, 0, 7, 104, 30, },
++ { 2, 1, 0, 7, 104, 26, },
++ { 1, 1, 0, 7, 104, 26, },
++ { 0, 1, 0, 7, 108, 30, },
++ { 2, 1, 0, 7, 108, 26, },
++ { 1, 1, 0, 7, 108, 26, },
++ { 0, 1, 0, 7, 112, 30, },
++ { 2, 1, 0, 7, 112, 26, },
++ { 1, 1, 0, 7, 112, 26, },
++ { 0, 1, 0, 7, 116, 30, },
++ { 2, 1, 0, 7, 116, 26, },
++ { 1, 1, 0, 7, 116, 26, },
++ { 0, 1, 0, 7, 120, 30, },
++ { 2, 1, 0, 7, 120, 26, },
++ { 1, 1, 0, 7, 120, 26, },
++ { 0, 1, 0, 7, 124, 30, },
++ { 2, 1, 0, 7, 124, 26, },
++ { 1, 1, 0, 7, 124, 26, },
++ { 0, 1, 0, 7, 128, 30, },
++ { 2, 1, 0, 7, 128, 26, },
++ { 1, 1, 0, 7, 128, 26, },
++ { 0, 1, 0, 7, 132, 30, },
++ { 2, 1, 0, 7, 132, 26, },
++ { 1, 1, 0, 7, 132, 26, },
++ { 0, 1, 0, 7, 136, 30, },
++ { 2, 1, 0, 7, 136, 26, },
++ { 1, 1, 0, 7, 136, 26, },
++ { 0, 1, 0, 7, 140, 28, },
++ { 2, 1, 0, 7, 140, 26, },
++ { 1, 1, 0, 7, 140, 26, },
++ { 0, 1, 0, 7, 149, 26, },
++ { 2, 1, 0, 7, 149, 26, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 32, },
++ { 2, 1, 0, 7, 153, 26, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 32, },
++ { 2, 1, 0, 7, 157, 26, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 32, },
++ { 2, 1, 0, 7, 161, 26, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 32, },
++ { 2, 1, 0, 7, 165, 26, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 32, },
++ { 2, 1, 1, 2, 38, 32, },
++ { 1, 1, 1, 2, 38, 32, },
++ { 0, 1, 1, 2, 46, 32, },
++ { 2, 1, 1, 2, 46, 32, },
++ { 1, 1, 1, 2, 46, 32, },
++ { 0, 1, 1, 2, 54, 32, },
++ { 2, 1, 1, 2, 54, 32, },
++ { 1, 1, 1, 2, 54, 32, },
++ { 0, 1, 1, 2, 62, 30, },
++ { 2, 1, 1, 2, 62, 32, },
++ { 1, 1, 1, 2, 62, 32, },
++ { 0, 1, 1, 2, 102, 30, },
++ { 2, 1, 1, 2, 102, 32, },
++ { 1, 1, 1, 2, 102, 32, },
++ { 0, 1, 1, 2, 110, 38, },
++ { 2, 1, 1, 2, 110, 32, },
++ { 1, 1, 1, 2, 110, 32, },
++ { 0, 1, 1, 2, 118, 38, },
++ { 2, 1, 1, 2, 118, 32, },
++ { 1, 1, 1, 2, 118, 32, },
++ { 0, 1, 1, 2, 126, 38, },
++ { 2, 1, 1, 2, 126, 32, },
++ { 1, 1, 1, 2, 126, 32, },
++ { 0, 1, 1, 2, 134, 38, },
++ { 2, 1, 1, 2, 134, 32, },
++ { 1, 1, 1, 2, 134, 32, },
++ { 0, 1, 1, 2, 151, 32, },
++ { 2, 1, 1, 2, 151, 32, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 32, },
++ { 2, 1, 1, 2, 159, 32, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 30, },
++ { 2, 1, 1, 3, 38, 30, },
++ { 1, 1, 1, 3, 38, 30, },
++ { 0, 1, 1, 3, 46, 30, },
++ { 2, 1, 1, 3, 46, 30, },
++ { 1, 1, 1, 3, 46, 30, },
++ { 0, 1, 1, 3, 54, 30, },
++ { 2, 1, 1, 3, 54, 30, },
++ { 1, 1, 1, 3, 54, 30, },
++ { 0, 1, 1, 3, 62, 28, },
++ { 2, 1, 1, 3, 62, 30, },
++ { 1, 1, 1, 3, 62, 30, },
++ { 0, 1, 1, 3, 102, 28, },
++ { 2, 1, 1, 3, 102, 30, },
++ { 1, 1, 1, 3, 102, 30, },
++ { 0, 1, 1, 3, 110, 36, },
++ { 2, 1, 1, 3, 110, 30, },
++ { 1, 1, 1, 3, 110, 30, },
++ { 0, 1, 1, 3, 118, 36, },
++ { 2, 1, 1, 3, 118, 30, },
++ { 1, 1, 1, 3, 118, 30, },
++ { 0, 1, 1, 3, 126, 36, },
++ { 2, 1, 1, 3, 126, 30, },
++ { 1, 1, 1, 3, 126, 30, },
++ { 0, 1, 1, 3, 134, 36, },
++ { 2, 1, 1, 3, 134, 30, },
++ { 1, 1, 1, 3, 134, 30, },
++ { 0, 1, 1, 3, 151, 30, },
++ { 2, 1, 1, 3, 151, 30, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 30, },
++ { 2, 1, 1, 3, 159, 30, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 28, },
++ { 2, 1, 1, 6, 38, 28, },
++ { 1, 1, 1, 6, 38, 28, },
++ { 0, 1, 1, 6, 46, 28, },
++ { 2, 1, 1, 6, 46, 28, },
++ { 1, 1, 1, 6, 46, 28, },
++ { 0, 1, 1, 6, 54, 28, },
++ { 2, 1, 1, 6, 54, 28, },
++ { 1, 1, 1, 6, 54, 28, },
++ { 0, 1, 1, 6, 62, 26, },
++ { 2, 1, 1, 6, 62, 28, },
++ { 1, 1, 1, 6, 62, 28, },
++ { 0, 1, 1, 6, 102, 26, },
++ { 2, 1, 1, 6, 102, 28, },
++ { 1, 1, 1, 6, 102, 28, },
++ { 0, 1, 1, 6, 110, 34, },
++ { 2, 1, 1, 6, 110, 28, },
++ { 1, 1, 1, 6, 110, 28, },
++ { 0, 1, 1, 6, 118, 34, },
++ { 2, 1, 1, 6, 118, 28, },
++ { 1, 1, 1, 6, 118, 28, },
++ { 0, 1, 1, 6, 126, 34, },
++ { 2, 1, 1, 6, 126, 28, },
++ { 1, 1, 1, 6, 126, 28, },
++ { 0, 1, 1, 6, 134, 34, },
++ { 2, 1, 1, 6, 134, 28, },
++ { 1, 1, 1, 6, 134, 28, },
++ { 0, 1, 1, 6, 151, 28, },
++ { 2, 1, 1, 6, 151, 28, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 28, },
++ { 2, 1, 1, 6, 159, 28, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 26, },
++ { 2, 1, 1, 7, 38, 26, },
++ { 1, 1, 1, 7, 38, 26, },
++ { 0, 1, 1, 7, 46, 26, },
++ { 2, 1, 1, 7, 46, 26, },
++ { 1, 1, 1, 7, 46, 26, },
++ { 0, 1, 1, 7, 54, 26, },
++ { 2, 1, 1, 7, 54, 26, },
++ { 1, 1, 1, 7, 54, 26, },
++ { 0, 1, 1, 7, 62, 24, },
++ { 2, 1, 1, 7, 62, 26, },
++ { 1, 1, 1, 7, 62, 26, },
++ { 0, 1, 1, 7, 102, 24, },
++ { 2, 1, 1, 7, 102, 26, },
++ { 1, 1, 1, 7, 102, 26, },
++ { 0, 1, 1, 7, 110, 32, },
++ { 2, 1, 1, 7, 110, 26, },
++ { 1, 1, 1, 7, 110, 26, },
++ { 0, 1, 1, 7, 118, 32, },
++ { 2, 1, 1, 7, 118, 26, },
++ { 1, 1, 1, 7, 118, 26, },
++ { 0, 1, 1, 7, 126, 32, },
++ { 2, 1, 1, 7, 126, 26, },
++ { 1, 1, 1, 7, 126, 26, },
++ { 0, 1, 1, 7, 134, 32, },
++ { 2, 1, 1, 7, 134, 26, },
++ { 1, 1, 1, 7, 134, 26, },
++ { 0, 1, 1, 7, 151, 26, },
++ { 2, 1, 1, 7, 151, 26, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 26, },
++ { 2, 1, 1, 7, 159, 26, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 26, },
++ { 2, 1, 2, 4, 42, 32, },
++ { 1, 1, 2, 4, 42, 32, },
++ { 0, 1, 2, 4, 58, 26, },
++ { 2, 1, 2, 4, 58, 32, },
++ { 1, 1, 2, 4, 58, 32, },
++ { 0, 1, 2, 4, 106, 28, },
++ { 2, 1, 2, 4, 106, 32, },
++ { 1, 1, 2, 4, 106, 32, },
++ { 0, 1, 2, 4, 122, 28, },
++ { 2, 1, 2, 4, 122, 32, },
++ { 1, 1, 2, 4, 122, 32, },
++ { 0, 1, 2, 4, 155, 28, },
++ { 2, 1, 2, 4, 155, 32, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 24, },
++ { 2, 1, 2, 5, 42, 30, },
++ { 1, 1, 2, 5, 42, 30, },
++ { 0, 1, 2, 5, 58, 24, },
++ { 2, 1, 2, 5, 58, 30, },
++ { 1, 1, 2, 5, 58, 30, },
++ { 0, 1, 2, 5, 106, 26, },
++ { 2, 1, 2, 5, 106, 30, },
++ { 1, 1, 2, 5, 106, 30, },
++ { 0, 1, 2, 5, 122, 26, },
++ { 2, 1, 2, 5, 122, 30, },
++ { 1, 1, 2, 5, 122, 30, },
++ { 0, 1, 2, 5, 155, 26, },
++ { 2, 1, 2, 5, 155, 30, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 22, },
++ { 2, 1, 2, 8, 42, 28, },
++ { 1, 1, 2, 8, 42, 28, },
++ { 0, 1, 2, 8, 58, 22, },
++ { 2, 1, 2, 8, 58, 28, },
++ { 1, 1, 2, 8, 58, 28, },
++ { 0, 1, 2, 8, 106, 24, },
++ { 2, 1, 2, 8, 106, 28, },
++ { 1, 1, 2, 8, 106, 28, },
++ { 0, 1, 2, 8, 122, 24, },
++ { 2, 1, 2, 8, 122, 28, },
++ { 1, 1, 2, 8, 122, 28, },
++ { 0, 1, 2, 8, 155, 24, },
++ { 2, 1, 2, 8, 155, 28, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 20, },
++ { 2, 1, 2, 9, 42, 26, },
++ { 1, 1, 2, 9, 42, 26, },
++ { 0, 1, 2, 9, 58, 20, },
++ { 2, 1, 2, 9, 58, 26, },
++ { 1, 1, 2, 9, 58, 26, },
++ { 0, 1, 2, 9, 106, 22, },
++ { 2, 1, 2, 9, 106, 26, },
++ { 1, 1, 2, 9, 106, 26, },
++ { 0, 1, 2, 9, 122, 22, },
++ { 2, 1, 2, 9, 122, 26, },
++ { 1, 1, 2, 9, 122, 26, },
++ { 0, 1, 2, 9, 155, 22, },
++ { 2, 1, 2, 9, 155, 26, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type7);
++
++static const struct rtw_txpwr_lmt_cfg_pair rtw8814a_txpwr_lmt_type8[] = {
++ { 0, 0, 0, 0, 1, 46, },
++ { 2, 0, 0, 0, 1, 46, },
++ { 1, 0, 0, 0, 1, 46, },
++ { 0, 0, 0, 0, 2, 46, },
++ { 2, 0, 0, 0, 2, 46, },
++ { 1, 0, 0, 0, 2, 46, },
++ { 0, 0, 0, 0, 3, 46, },
++ { 2, 0, 0, 0, 3, 46, },
++ { 1, 0, 0, 0, 3, 46, },
++ { 0, 0, 0, 0, 4, 46, },
++ { 2, 0, 0, 0, 4, 46, },
++ { 1, 0, 0, 0, 4, 46, },
++ { 0, 0, 0, 0, 5, 46, },
++ { 2, 0, 0, 0, 5, 46, },
++ { 1, 0, 0, 0, 5, 46, },
++ { 0, 0, 0, 0, 6, 46, },
++ { 2, 0, 0, 0, 6, 46, },
++ { 1, 0, 0, 0, 6, 46, },
++ { 0, 0, 0, 0, 7, 46, },
++ { 2, 0, 0, 0, 7, 46, },
++ { 1, 0, 0, 0, 7, 46, },
++ { 0, 0, 0, 0, 8, 46, },
++ { 2, 0, 0, 0, 8, 46, },
++ { 1, 0, 0, 0, 8, 46, },
++ { 0, 0, 0, 0, 9, 46, },
++ { 2, 0, 0, 0, 9, 46, },
++ { 1, 0, 0, 0, 9, 46, },
++ { 0, 0, 0, 0, 10, 46, },
++ { 2, 0, 0, 0, 10, 46, },
++ { 1, 0, 0, 0, 10, 46, },
++ { 0, 0, 0, 0, 11, 46, },
++ { 2, 0, 0, 0, 11, 46, },
++ { 1, 0, 0, 0, 11, 46, },
++ { 0, 0, 0, 0, 12, 63, },
++ { 2, 0, 0, 0, 12, 46, },
++ { 1, 0, 0, 0, 12, 46, },
++ { 0, 0, 0, 0, 13, 63, },
++ { 2, 0, 0, 0, 13, 46, },
++ { 1, 0, 0, 0, 13, 46, },
++ { 0, 0, 0, 0, 14, 63, },
++ { 2, 0, 0, 0, 14, 63, },
++ { 1, 0, 0, 0, 14, 46, },
++ { 0, 0, 0, 1, 1, 46, },
++ { 2, 0, 0, 1, 1, 46, },
++ { 1, 0, 0, 1, 1, 46, },
++ { 0, 0, 0, 1, 2, 46, },
++ { 2, 0, 0, 1, 2, 46, },
++ { 1, 0, 0, 1, 2, 46, },
++ { 0, 0, 0, 1, 3, 46, },
++ { 2, 0, 0, 1, 3, 46, },
++ { 1, 0, 0, 1, 3, 46, },
++ { 0, 0, 0, 1, 4, 46, },
++ { 2, 0, 0, 1, 4, 46, },
++ { 1, 0, 0, 1, 4, 46, },
++ { 0, 0, 0, 1, 5, 46, },
++ { 2, 0, 0, 1, 5, 46, },
++ { 1, 0, 0, 1, 5, 46, },
++ { 0, 0, 0, 1, 6, 46, },
++ { 2, 0, 0, 1, 6, 46, },
++ { 1, 0, 0, 1, 6, 46, },
++ { 0, 0, 0, 1, 7, 46, },
++ { 2, 0, 0, 1, 7, 46, },
++ { 1, 0, 0, 1, 7, 46, },
++ { 0, 0, 0, 1, 8, 46, },
++ { 2, 0, 0, 1, 8, 46, },
++ { 1, 0, 0, 1, 8, 46, },
++ { 0, 0, 0, 1, 9, 46, },
++ { 2, 0, 0, 1, 9, 46, },
++ { 1, 0, 0, 1, 9, 46, },
++ { 0, 0, 0, 1, 10, 46, },
++ { 2, 0, 0, 1, 10, 46, },
++ { 1, 0, 0, 1, 10, 46, },
++ { 0, 0, 0, 1, 11, 46, },
++ { 2, 0, 0, 1, 11, 46, },
++ { 1, 0, 0, 1, 11, 46, },
++ { 0, 0, 0, 1, 12, 63, },
++ { 2, 0, 0, 1, 12, 46, },
++ { 1, 0, 0, 1, 12, 46, },
++ { 0, 0, 0, 1, 13, 63, },
++ { 2, 0, 0, 1, 13, 46, },
++ { 1, 0, 0, 1, 13, 46, },
++ { 0, 0, 0, 1, 14, 63, },
++ { 2, 0, 0, 1, 14, 63, },
++ { 1, 0, 0, 1, 14, 46, },
++ { 0, 0, 0, 2, 1, 46, },
++ { 2, 0, 0, 2, 1, 46, },
++ { 1, 0, 0, 2, 1, 46, },
++ { 0, 0, 0, 2, 2, 46, },
++ { 2, 0, 0, 2, 2, 46, },
++ { 1, 0, 0, 2, 2, 46, },
++ { 0, 0, 0, 2, 3, 46, },
++ { 2, 0, 0, 2, 3, 46, },
++ { 1, 0, 0, 2, 3, 46, },
++ { 0, 0, 0, 2, 4, 46, },
++ { 2, 0, 0, 2, 4, 46, },
++ { 1, 0, 0, 2, 4, 46, },
++ { 0, 0, 0, 2, 5, 46, },
++ { 2, 0, 0, 2, 5, 46, },
++ { 1, 0, 0, 2, 5, 46, },
++ { 0, 0, 0, 2, 6, 46, },
++ { 2, 0, 0, 2, 6, 46, },
++ { 1, 0, 0, 2, 6, 46, },
++ { 0, 0, 0, 2, 7, 46, },
++ { 2, 0, 0, 2, 7, 46, },
++ { 1, 0, 0, 2, 7, 46, },
++ { 0, 0, 0, 2, 8, 46, },
++ { 2, 0, 0, 2, 8, 46, },
++ { 1, 0, 0, 2, 8, 46, },
++ { 0, 0, 0, 2, 9, 46, },
++ { 2, 0, 0, 2, 9, 46, },
++ { 1, 0, 0, 2, 9, 46, },
++ { 0, 0, 0, 2, 10, 46, },
++ { 2, 0, 0, 2, 10, 46, },
++ { 1, 0, 0, 2, 10, 46, },
++ { 0, 0, 0, 2, 11, 46, },
++ { 2, 0, 0, 2, 11, 46, },
++ { 1, 0, 0, 2, 11, 46, },
++ { 0, 0, 0, 2, 12, 63, },
++ { 2, 0, 0, 2, 12, 46, },
++ { 1, 0, 0, 2, 12, 46, },
++ { 0, 0, 0, 2, 13, 63, },
++ { 2, 0, 0, 2, 13, 46, },
++ { 1, 0, 0, 2, 13, 46, },
++ { 0, 0, 0, 2, 14, 63, },
++ { 2, 0, 0, 2, 14, 63, },
++ { 1, 0, 0, 2, 14, 46, },
++ { 0, 0, 0, 3, 1, 46, },
++ { 2, 0, 0, 3, 1, 46, },
++ { 1, 0, 0, 3, 1, 46, },
++ { 0, 0, 0, 3, 2, 46, },
++ { 2, 0, 0, 3, 2, 46, },
++ { 1, 0, 0, 3, 2, 46, },
++ { 0, 0, 0, 3, 3, 46, },
++ { 2, 0, 0, 3, 3, 46, },
++ { 1, 0, 0, 3, 3, 46, },
++ { 0, 0, 0, 3, 4, 46, },
++ { 2, 0, 0, 3, 4, 46, },
++ { 1, 0, 0, 3, 4, 46, },
++ { 0, 0, 0, 3, 5, 46, },
++ { 2, 0, 0, 3, 5, 46, },
++ { 1, 0, 0, 3, 5, 46, },
++ { 0, 0, 0, 3, 6, 46, },
++ { 2, 0, 0, 3, 6, 46, },
++ { 1, 0, 0, 3, 6, 46, },
++ { 0, 0, 0, 3, 7, 46, },
++ { 2, 0, 0, 3, 7, 46, },
++ { 1, 0, 0, 3, 7, 46, },
++ { 0, 0, 0, 3, 8, 46, },
++ { 2, 0, 0, 3, 8, 46, },
++ { 1, 0, 0, 3, 8, 46, },
++ { 0, 0, 0, 3, 9, 46, },
++ { 2, 0, 0, 3, 9, 46, },
++ { 1, 0, 0, 3, 9, 46, },
++ { 0, 0, 0, 3, 10, 46, },
++ { 2, 0, 0, 3, 10, 46, },
++ { 1, 0, 0, 3, 10, 46, },
++ { 0, 0, 0, 3, 11, 46, },
++ { 2, 0, 0, 3, 11, 46, },
++ { 1, 0, 0, 3, 11, 46, },
++ { 0, 0, 0, 3, 12, 63, },
++ { 2, 0, 0, 3, 12, 46, },
++ { 1, 0, 0, 3, 12, 46, },
++ { 0, 0, 0, 3, 13, 63, },
++ { 2, 0, 0, 3, 13, 46, },
++ { 1, 0, 0, 3, 13, 46, },
++ { 0, 0, 0, 3, 14, 63, },
++ { 2, 0, 0, 3, 14, 63, },
++ { 1, 0, 0, 3, 14, 46, },
++ { 0, 0, 0, 6, 1, 46, },
++ { 2, 0, 0, 6, 1, 46, },
++ { 1, 0, 0, 6, 1, 46, },
++ { 0, 0, 0, 6, 2, 46, },
++ { 2, 0, 0, 6, 2, 46, },
++ { 1, 0, 0, 6, 2, 46, },
++ { 0, 0, 0, 6, 3, 46, },
++ { 2, 0, 0, 6, 3, 46, },
++ { 1, 0, 0, 6, 3, 46, },
++ { 0, 0, 0, 6, 4, 46, },
++ { 2, 0, 0, 6, 4, 46, },
++ { 1, 0, 0, 6, 4, 46, },
++ { 0, 0, 0, 6, 5, 46, },
++ { 2, 0, 0, 6, 5, 46, },
++ { 1, 0, 0, 6, 5, 46, },
++ { 0, 0, 0, 6, 6, 46, },
++ { 2, 0, 0, 6, 6, 46, },
++ { 1, 0, 0, 6, 6, 46, },
++ { 0, 0, 0, 6, 7, 46, },
++ { 2, 0, 0, 6, 7, 46, },
++ { 1, 0, 0, 6, 7, 46, },
++ { 0, 0, 0, 6, 8, 46, },
++ { 2, 0, 0, 6, 8, 46, },
++ { 1, 0, 0, 6, 8, 46, },
++ { 0, 0, 0, 6, 9, 46, },
++ { 2, 0, 0, 6, 9, 46, },
++ { 1, 0, 0, 6, 9, 46, },
++ { 0, 0, 0, 6, 10, 46, },
++ { 2, 0, 0, 6, 10, 46, },
++ { 1, 0, 0, 6, 10, 46, },
++ { 0, 0, 0, 6, 11, 46, },
++ { 2, 0, 0, 6, 11, 46, },
++ { 1, 0, 0, 6, 11, 46, },
++ { 0, 0, 0, 6, 12, 63, },
++ { 2, 0, 0, 6, 12, 46, },
++ { 1, 0, 0, 6, 12, 46, },
++ { 0, 0, 0, 6, 13, 63, },
++ { 2, 0, 0, 6, 13, 46, },
++ { 1, 0, 0, 6, 13, 46, },
++ { 0, 0, 0, 6, 14, 63, },
++ { 2, 0, 0, 6, 14, 63, },
++ { 1, 0, 0, 6, 14, 46, },
++ { 0, 0, 0, 7, 1, 46, },
++ { 2, 0, 0, 7, 1, 46, },
++ { 1, 0, 0, 7, 1, 46, },
++ { 0, 0, 0, 7, 2, 46, },
++ { 2, 0, 0, 7, 2, 46, },
++ { 1, 0, 0, 7, 2, 46, },
++ { 0, 0, 0, 7, 3, 46, },
++ { 2, 0, 0, 7, 3, 46, },
++ { 1, 0, 0, 7, 3, 46, },
++ { 0, 0, 0, 7, 4, 46, },
++ { 2, 0, 0, 7, 4, 46, },
++ { 1, 0, 0, 7, 4, 46, },
++ { 0, 0, 0, 7, 5, 46, },
++ { 2, 0, 0, 7, 5, 46, },
++ { 1, 0, 0, 7, 5, 46, },
++ { 0, 0, 0, 7, 6, 46, },
++ { 2, 0, 0, 7, 6, 46, },
++ { 1, 0, 0, 7, 6, 46, },
++ { 0, 0, 0, 7, 7, 46, },
++ { 2, 0, 0, 7, 7, 46, },
++ { 1, 0, 0, 7, 7, 46, },
++ { 0, 0, 0, 7, 8, 46, },
++ { 2, 0, 0, 7, 8, 46, },
++ { 1, 0, 0, 7, 8, 46, },
++ { 0, 0, 0, 7, 9, 46, },
++ { 2, 0, 0, 7, 9, 46, },
++ { 1, 0, 0, 7, 9, 46, },
++ { 0, 0, 0, 7, 10, 46, },
++ { 2, 0, 0, 7, 10, 46, },
++ { 1, 0, 0, 7, 10, 46, },
++ { 0, 0, 0, 7, 11, 46, },
++ { 2, 0, 0, 7, 11, 46, },
++ { 1, 0, 0, 7, 11, 46, },
++ { 0, 0, 0, 7, 12, 63, },
++ { 2, 0, 0, 7, 12, 46, },
++ { 1, 0, 0, 7, 12, 46, },
++ { 0, 0, 0, 7, 13, 63, },
++ { 2, 0, 0, 7, 13, 46, },
++ { 1, 0, 0, 7, 13, 46, },
++ { 0, 0, 0, 7, 14, 63, },
++ { 2, 0, 0, 7, 14, 63, },
++ { 1, 0, 0, 7, 14, 46, },
++ { 0, 0, 1, 2, 1, 63, },
++ { 2, 0, 1, 2, 1, 63, },
++ { 1, 0, 1, 2, 1, 63, },
++ { 0, 0, 1, 2, 2, 63, },
++ { 2, 0, 1, 2, 2, 63, },
++ { 1, 0, 1, 2, 2, 63, },
++ { 0, 0, 1, 2, 3, 30, },
++ { 2, 0, 1, 2, 3, 34, },
++ { 1, 0, 1, 2, 3, 34, },
++ { 0, 0, 1, 2, 4, 34, },
++ { 2, 0, 1, 2, 4, 34, },
++ { 1, 0, 1, 2, 4, 34, },
++ { 0, 0, 1, 2, 5, 34, },
++ { 2, 0, 1, 2, 5, 34, },
++ { 1, 0, 1, 2, 5, 34, },
++ { 0, 0, 1, 2, 6, 34, },
++ { 2, 0, 1, 2, 6, 34, },
++ { 1, 0, 1, 2, 6, 34, },
++ { 0, 0, 1, 2, 7, 34, },
++ { 2, 0, 1, 2, 7, 34, },
++ { 1, 0, 1, 2, 7, 34, },
++ { 0, 0, 1, 2, 8, 34, },
++ { 2, 0, 1, 2, 8, 34, },
++ { 1, 0, 1, 2, 8, 34, },
++ { 0, 0, 1, 2, 9, 34, },
++ { 2, 0, 1, 2, 9, 34, },
++ { 1, 0, 1, 2, 9, 34, },
++ { 0, 0, 1, 2, 10, 34, },
++ { 2, 0, 1, 2, 10, 34, },
++ { 1, 0, 1, 2, 10, 34, },
++ { 0, 0, 1, 2, 11, 28, },
++ { 2, 0, 1, 2, 11, 34, },
++ { 1, 0, 1, 2, 11, 34, },
++ { 0, 0, 1, 2, 12, 63, },
++ { 2, 0, 1, 2, 12, 34, },
++ { 1, 0, 1, 2, 12, 34, },
++ { 0, 0, 1, 2, 13, 63, },
++ { 2, 0, 1, 2, 13, 34, },
++ { 1, 0, 1, 2, 13, 34, },
++ { 0, 0, 1, 2, 14, 63, },
++ { 2, 0, 1, 2, 14, 63, },
++ { 1, 0, 1, 2, 14, 63, },
++ { 0, 0, 1, 3, 1, 63, },
++ { 2, 0, 1, 3, 1, 63, },
++ { 1, 0, 1, 3, 1, 63, },
++ { 0, 0, 1, 3, 2, 63, },
++ { 2, 0, 1, 3, 2, 63, },
++ { 1, 0, 1, 3, 2, 63, },
++ { 0, 0, 1, 3, 3, 30, },
++ { 2, 0, 1, 3, 3, 34, },
++ { 1, 0, 1, 3, 3, 34, },
++ { 0, 0, 1, 3, 4, 34, },
++ { 2, 0, 1, 3, 4, 34, },
++ { 1, 0, 1, 3, 4, 34, },
++ { 0, 0, 1, 3, 5, 34, },
++ { 2, 0, 1, 3, 5, 34, },
++ { 1, 0, 1, 3, 5, 34, },
++ { 0, 0, 1, 3, 6, 34, },
++ { 2, 0, 1, 3, 6, 34, },
++ { 1, 0, 1, 3, 6, 34, },
++ { 0, 0, 1, 3, 7, 34, },
++ { 2, 0, 1, 3, 7, 34, },
++ { 1, 0, 1, 3, 7, 34, },
++ { 0, 0, 1, 3, 8, 34, },
++ { 2, 0, 1, 3, 8, 34, },
++ { 1, 0, 1, 3, 8, 34, },
++ { 0, 0, 1, 3, 9, 34, },
++ { 2, 0, 1, 3, 9, 34, },
++ { 1, 0, 1, 3, 9, 34, },
++ { 0, 0, 1, 3, 10, 34, },
++ { 2, 0, 1, 3, 10, 34, },
++ { 1, 0, 1, 3, 10, 34, },
++ { 0, 0, 1, 3, 11, 28, },
++ { 2, 0, 1, 3, 11, 34, },
++ { 1, 0, 1, 3, 11, 34, },
++ { 0, 0, 1, 3, 12, 63, },
++ { 2, 0, 1, 3, 12, 34, },
++ { 1, 0, 1, 3, 12, 34, },
++ { 0, 0, 1, 3, 13, 63, },
++ { 2, 0, 1, 3, 13, 34, },
++ { 1, 0, 1, 3, 13, 34, },
++ { 0, 0, 1, 3, 14, 63, },
++ { 2, 0, 1, 3, 14, 63, },
++ { 1, 0, 1, 3, 14, 63, },
++ { 0, 0, 1, 6, 1, 63, },
++ { 2, 0, 1, 6, 1, 63, },
++ { 1, 0, 1, 6, 1, 63, },
++ { 0, 0, 1, 6, 2, 63, },
++ { 2, 0, 1, 6, 2, 63, },
++ { 1, 0, 1, 6, 2, 63, },
++ { 0, 0, 1, 6, 3, 30, },
++ { 2, 0, 1, 6, 3, 34, },
++ { 1, 0, 1, 6, 3, 34, },
++ { 0, 0, 1, 6, 4, 34, },
++ { 2, 0, 1, 6, 4, 34, },
++ { 1, 0, 1, 6, 4, 34, },
++ { 0, 0, 1, 6, 5, 34, },
++ { 2, 0, 1, 6, 5, 34, },
++ { 1, 0, 1, 6, 5, 34, },
++ { 0, 0, 1, 6, 6, 34, },
++ { 2, 0, 1, 6, 6, 34, },
++ { 1, 0, 1, 6, 6, 34, },
++ { 0, 0, 1, 6, 7, 34, },
++ { 2, 0, 1, 6, 7, 34, },
++ { 1, 0, 1, 6, 7, 34, },
++ { 0, 0, 1, 6, 8, 34, },
++ { 2, 0, 1, 6, 8, 34, },
++ { 1, 0, 1, 6, 8, 34, },
++ { 0, 0, 1, 6, 9, 34, },
++ { 2, 0, 1, 6, 9, 34, },
++ { 1, 0, 1, 6, 9, 34, },
++ { 0, 0, 1, 6, 10, 34, },
++ { 2, 0, 1, 6, 10, 34, },
++ { 1, 0, 1, 6, 10, 34, },
++ { 0, 0, 1, 6, 11, 28, },
++ { 2, 0, 1, 6, 11, 34, },
++ { 1, 0, 1, 6, 11, 34, },
++ { 0, 0, 1, 6, 12, 63, },
++ { 2, 0, 1, 6, 12, 34, },
++ { 1, 0, 1, 6, 12, 34, },
++ { 0, 0, 1, 6, 13, 63, },
++ { 2, 0, 1, 6, 13, 34, },
++ { 1, 0, 1, 6, 13, 34, },
++ { 0, 0, 1, 6, 14, 63, },
++ { 2, 0, 1, 6, 14, 63, },
++ { 1, 0, 1, 6, 14, 63, },
++ { 0, 0, 1, 7, 1, 63, },
++ { 2, 0, 1, 7, 1, 63, },
++ { 1, 0, 1, 7, 1, 63, },
++ { 0, 0, 1, 7, 2, 63, },
++ { 2, 0, 1, 7, 2, 63, },
++ { 1, 0, 1, 7, 2, 63, },
++ { 0, 0, 1, 7, 3, 30, },
++ { 2, 0, 1, 7, 3, 34, },
++ { 1, 0, 1, 7, 3, 34, },
++ { 0, 0, 1, 7, 4, 34, },
++ { 2, 0, 1, 7, 4, 34, },
++ { 1, 0, 1, 7, 4, 34, },
++ { 0, 0, 1, 7, 5, 34, },
++ { 2, 0, 1, 7, 5, 34, },
++ { 1, 0, 1, 7, 5, 34, },
++ { 0, 0, 1, 7, 6, 34, },
++ { 2, 0, 1, 7, 6, 34, },
++ { 1, 0, 1, 7, 6, 34, },
++ { 0, 0, 1, 7, 7, 34, },
++ { 2, 0, 1, 7, 7, 34, },
++ { 1, 0, 1, 7, 7, 34, },
++ { 0, 0, 1, 7, 8, 34, },
++ { 2, 0, 1, 7, 8, 34, },
++ { 1, 0, 1, 7, 8, 34, },
++ { 0, 0, 1, 7, 9, 34, },
++ { 2, 0, 1, 7, 9, 34, },
++ { 1, 0, 1, 7, 9, 34, },
++ { 0, 0, 1, 7, 10, 34, },
++ { 2, 0, 1, 7, 10, 34, },
++ { 1, 0, 1, 7, 10, 34, },
++ { 0, 0, 1, 7, 11, 28, },
++ { 2, 0, 1, 7, 11, 34, },
++ { 1, 0, 1, 7, 11, 34, },
++ { 0, 0, 1, 7, 12, 63, },
++ { 2, 0, 1, 7, 12, 34, },
++ { 1, 0, 1, 7, 12, 34, },
++ { 0, 0, 1, 7, 13, 63, },
++ { 2, 0, 1, 7, 13, 34, },
++ { 1, 0, 1, 7, 13, 34, },
++ { 0, 0, 1, 7, 14, 63, },
++ { 2, 0, 1, 7, 14, 63, },
++ { 1, 0, 1, 7, 14, 63, },
++ { 0, 1, 0, 1, 36, 46, },
++ { 2, 1, 0, 1, 36, 46, },
++ { 1, 1, 0, 1, 36, 46, },
++ { 0, 1, 0, 1, 40, 46, },
++ { 2, 1, 0, 1, 40, 46, },
++ { 1, 1, 0, 1, 40, 46, },
++ { 0, 1, 0, 1, 44, 46, },
++ { 2, 1, 0, 1, 44, 46, },
++ { 1, 1, 0, 1, 44, 46, },
++ { 0, 1, 0, 1, 48, 46, },
++ { 2, 1, 0, 1, 48, 46, },
++ { 1, 1, 0, 1, 48, 46, },
++ { 0, 1, 0, 1, 52, 46, },
++ { 2, 1, 0, 1, 52, 46, },
++ { 1, 1, 0, 1, 52, 46, },
++ { 0, 1, 0, 1, 56, 46, },
++ { 2, 1, 0, 1, 56, 46, },
++ { 1, 1, 0, 1, 56, 46, },
++ { 0, 1, 0, 1, 60, 46, },
++ { 2, 1, 0, 1, 60, 46, },
++ { 1, 1, 0, 1, 60, 46, },
++ { 0, 1, 0, 1, 64, 46, },
++ { 2, 1, 0, 1, 64, 46, },
++ { 1, 1, 0, 1, 64, 46, },
++ { 0, 1, 0, 1, 100, 46, },
++ { 2, 1, 0, 1, 100, 46, },
++ { 1, 1, 0, 1, 100, 46, },
++ { 0, 1, 0, 1, 104, 46, },
++ { 2, 1, 0, 1, 104, 46, },
++ { 1, 1, 0, 1, 104, 46, },
++ { 0, 1, 0, 1, 108, 46, },
++ { 2, 1, 0, 1, 108, 46, },
++ { 1, 1, 0, 1, 108, 46, },
++ { 0, 1, 0, 1, 112, 46, },
++ { 2, 1, 0, 1, 112, 46, },
++ { 1, 1, 0, 1, 112, 46, },
++ { 0, 1, 0, 1, 116, 46, },
++ { 2, 1, 0, 1, 116, 46, },
++ { 1, 1, 0, 1, 116, 46, },
++ { 0, 1, 0, 1, 120, 46, },
++ { 2, 1, 0, 1, 120, 46, },
++ { 1, 1, 0, 1, 120, 46, },
++ { 0, 1, 0, 1, 124, 46, },
++ { 2, 1, 0, 1, 124, 46, },
++ { 1, 1, 0, 1, 124, 46, },
++ { 0, 1, 0, 1, 128, 46, },
++ { 2, 1, 0, 1, 128, 46, },
++ { 1, 1, 0, 1, 128, 46, },
++ { 0, 1, 0, 1, 132, 46, },
++ { 2, 1, 0, 1, 132, 46, },
++ { 1, 1, 0, 1, 132, 46, },
++ { 0, 1, 0, 1, 136, 46, },
++ { 2, 1, 0, 1, 136, 46, },
++ { 1, 1, 0, 1, 136, 46, },
++ { 0, 1, 0, 1, 140, 46, },
++ { 2, 1, 0, 1, 140, 46, },
++ { 1, 1, 0, 1, 140, 46, },
++ { 0, 1, 0, 1, 149, 46, },
++ { 2, 1, 0, 1, 149, 46, },
++ { 1, 1, 0, 1, 149, 63, },
++ { 0, 1, 0, 1, 153, 46, },
++ { 2, 1, 0, 1, 153, 46, },
++ { 1, 1, 0, 1, 153, 63, },
++ { 0, 1, 0, 1, 157, 46, },
++ { 2, 1, 0, 1, 157, 46, },
++ { 1, 1, 0, 1, 157, 63, },
++ { 0, 1, 0, 1, 161, 46, },
++ { 2, 1, 0, 1, 161, 46, },
++ { 1, 1, 0, 1, 161, 63, },
++ { 0, 1, 0, 1, 165, 46, },
++ { 2, 1, 0, 1, 165, 46, },
++ { 1, 1, 0, 1, 165, 63, },
++ { 0, 1, 0, 2, 36, 46, },
++ { 2, 1, 0, 2, 36, 46, },
++ { 1, 1, 0, 2, 36, 46, },
++ { 0, 1, 0, 2, 40, 46, },
++ { 2, 1, 0, 2, 40, 46, },
++ { 1, 1, 0, 2, 40, 46, },
++ { 0, 1, 0, 2, 44, 46, },
++ { 2, 1, 0, 2, 44, 46, },
++ { 1, 1, 0, 2, 44, 46, },
++ { 0, 1, 0, 2, 48, 46, },
++ { 2, 1, 0, 2, 48, 46, },
++ { 1, 1, 0, 2, 48, 46, },
++ { 0, 1, 0, 2, 52, 46, },
++ { 2, 1, 0, 2, 52, 46, },
++ { 1, 1, 0, 2, 52, 46, },
++ { 0, 1, 0, 2, 56, 46, },
++ { 2, 1, 0, 2, 56, 46, },
++ { 1, 1, 0, 2, 56, 46, },
++ { 0, 1, 0, 2, 60, 46, },
++ { 2, 1, 0, 2, 60, 46, },
++ { 1, 1, 0, 2, 60, 46, },
++ { 0, 1, 0, 2, 64, 46, },
++ { 2, 1, 0, 2, 64, 46, },
++ { 1, 1, 0, 2, 64, 46, },
++ { 0, 1, 0, 2, 100, 46, },
++ { 2, 1, 0, 2, 100, 46, },
++ { 1, 1, 0, 2, 100, 46, },
++ { 0, 1, 0, 2, 104, 46, },
++ { 2, 1, 0, 2, 104, 46, },
++ { 1, 1, 0, 2, 104, 46, },
++ { 0, 1, 0, 2, 108, 46, },
++ { 2, 1, 0, 2, 108, 46, },
++ { 1, 1, 0, 2, 108, 46, },
++ { 0, 1, 0, 2, 112, 46, },
++ { 2, 1, 0, 2, 112, 46, },
++ { 1, 1, 0, 2, 112, 46, },
++ { 0, 1, 0, 2, 116, 46, },
++ { 2, 1, 0, 2, 116, 46, },
++ { 1, 1, 0, 2, 116, 46, },
++ { 0, 1, 0, 2, 120, 46, },
++ { 2, 1, 0, 2, 120, 46, },
++ { 1, 1, 0, 2, 120, 46, },
++ { 0, 1, 0, 2, 124, 46, },
++ { 2, 1, 0, 2, 124, 46, },
++ { 1, 1, 0, 2, 124, 46, },
++ { 0, 1, 0, 2, 128, 46, },
++ { 2, 1, 0, 2, 128, 46, },
++ { 1, 1, 0, 2, 128, 46, },
++ { 0, 1, 0, 2, 132, 46, },
++ { 2, 1, 0, 2, 132, 46, },
++ { 1, 1, 0, 2, 132, 46, },
++ { 0, 1, 0, 2, 136, 46, },
++ { 2, 1, 0, 2, 136, 46, },
++ { 1, 1, 0, 2, 136, 46, },
++ { 0, 1, 0, 2, 140, 46, },
++ { 2, 1, 0, 2, 140, 46, },
++ { 1, 1, 0, 2, 140, 46, },
++ { 0, 1, 0, 2, 149, 46, },
++ { 2, 1, 0, 2, 149, 46, },
++ { 1, 1, 0, 2, 149, 63, },
++ { 0, 1, 0, 2, 153, 46, },
++ { 2, 1, 0, 2, 153, 46, },
++ { 1, 1, 0, 2, 153, 63, },
++ { 0, 1, 0, 2, 157, 46, },
++ { 2, 1, 0, 2, 157, 46, },
++ { 1, 1, 0, 2, 157, 63, },
++ { 0, 1, 0, 2, 161, 46, },
++ { 2, 1, 0, 2, 161, 46, },
++ { 1, 1, 0, 2, 161, 63, },
++ { 0, 1, 0, 2, 165, 46, },
++ { 2, 1, 0, 2, 165, 46, },
++ { 1, 1, 0, 2, 165, 63, },
++ { 0, 1, 0, 3, 36, 46, },
++ { 2, 1, 0, 3, 36, 46, },
++ { 1, 1, 0, 3, 36, 46, },
++ { 0, 1, 0, 3, 40, 46, },
++ { 2, 1, 0, 3, 40, 46, },
++ { 1, 1, 0, 3, 40, 46, },
++ { 0, 1, 0, 3, 44, 46, },
++ { 2, 1, 0, 3, 44, 46, },
++ { 1, 1, 0, 3, 44, 46, },
++ { 0, 1, 0, 3, 48, 46, },
++ { 2, 1, 0, 3, 48, 46, },
++ { 1, 1, 0, 3, 48, 46, },
++ { 0, 1, 0, 3, 52, 46, },
++ { 2, 1, 0, 3, 52, 46, },
++ { 1, 1, 0, 3, 52, 46, },
++ { 0, 1, 0, 3, 56, 46, },
++ { 2, 1, 0, 3, 56, 46, },
++ { 1, 1, 0, 3, 56, 46, },
++ { 0, 1, 0, 3, 60, 46, },
++ { 2, 1, 0, 3, 60, 46, },
++ { 1, 1, 0, 3, 60, 46, },
++ { 0, 1, 0, 3, 64, 46, },
++ { 2, 1, 0, 3, 64, 46, },
++ { 1, 1, 0, 3, 64, 46, },
++ { 0, 1, 0, 3, 100, 46, },
++ { 2, 1, 0, 3, 100, 46, },
++ { 1, 1, 0, 3, 100, 46, },
++ { 0, 1, 0, 3, 104, 46, },
++ { 2, 1, 0, 3, 104, 46, },
++ { 1, 1, 0, 3, 104, 46, },
++ { 0, 1, 0, 3, 108, 46, },
++ { 2, 1, 0, 3, 108, 46, },
++ { 1, 1, 0, 3, 108, 46, },
++ { 0, 1, 0, 3, 112, 46, },
++ { 2, 1, 0, 3, 112, 46, },
++ { 1, 1, 0, 3, 112, 46, },
++ { 0, 1, 0, 3, 116, 46, },
++ { 2, 1, 0, 3, 116, 46, },
++ { 1, 1, 0, 3, 116, 46, },
++ { 0, 1, 0, 3, 120, 46, },
++ { 2, 1, 0, 3, 120, 46, },
++ { 1, 1, 0, 3, 120, 46, },
++ { 0, 1, 0, 3, 124, 46, },
++ { 2, 1, 0, 3, 124, 46, },
++ { 1, 1, 0, 3, 124, 46, },
++ { 0, 1, 0, 3, 128, 46, },
++ { 2, 1, 0, 3, 128, 46, },
++ { 1, 1, 0, 3, 128, 46, },
++ { 0, 1, 0, 3, 132, 46, },
++ { 2, 1, 0, 3, 132, 46, },
++ { 1, 1, 0, 3, 132, 46, },
++ { 0, 1, 0, 3, 136, 46, },
++ { 2, 1, 0, 3, 136, 46, },
++ { 1, 1, 0, 3, 136, 46, },
++ { 0, 1, 0, 3, 140, 46, },
++ { 2, 1, 0, 3, 140, 46, },
++ { 1, 1, 0, 3, 140, 46, },
++ { 0, 1, 0, 3, 149, 46, },
++ { 2, 1, 0, 3, 149, 46, },
++ { 1, 1, 0, 3, 149, 63, },
++ { 0, 1, 0, 3, 153, 46, },
++ { 2, 1, 0, 3, 153, 46, },
++ { 1, 1, 0, 3, 153, 63, },
++ { 0, 1, 0, 3, 157, 46, },
++ { 2, 1, 0, 3, 157, 46, },
++ { 1, 1, 0, 3, 157, 63, },
++ { 0, 1, 0, 3, 161, 46, },
++ { 2, 1, 0, 3, 161, 46, },
++ { 1, 1, 0, 3, 161, 63, },
++ { 0, 1, 0, 3, 165, 46, },
++ { 2, 1, 0, 3, 165, 46, },
++ { 1, 1, 0, 3, 165, 63, },
++ { 0, 1, 0, 6, 36, 46, },
++ { 2, 1, 0, 6, 36, 46, },
++ { 1, 1, 0, 6, 36, 46, },
++ { 0, 1, 0, 6, 40, 46, },
++ { 2, 1, 0, 6, 40, 46, },
++ { 1, 1, 0, 6, 40, 46, },
++ { 0, 1, 0, 6, 44, 46, },
++ { 2, 1, 0, 6, 44, 46, },
++ { 1, 1, 0, 6, 44, 46, },
++ { 0, 1, 0, 6, 48, 46, },
++ { 2, 1, 0, 6, 48, 46, },
++ { 1, 1, 0, 6, 48, 46, },
++ { 0, 1, 0, 6, 52, 46, },
++ { 2, 1, 0, 6, 52, 46, },
++ { 1, 1, 0, 6, 52, 46, },
++ { 0, 1, 0, 6, 56, 46, },
++ { 2, 1, 0, 6, 56, 46, },
++ { 1, 1, 0, 6, 56, 46, },
++ { 0, 1, 0, 6, 60, 46, },
++ { 2, 1, 0, 6, 60, 46, },
++ { 1, 1, 0, 6, 60, 46, },
++ { 0, 1, 0, 6, 64, 46, },
++ { 2, 1, 0, 6, 64, 46, },
++ { 1, 1, 0, 6, 64, 46, },
++ { 0, 1, 0, 6, 100, 46, },
++ { 2, 1, 0, 6, 100, 46, },
++ { 1, 1, 0, 6, 100, 46, },
++ { 0, 1, 0, 6, 104, 46, },
++ { 2, 1, 0, 6, 104, 46, },
++ { 1, 1, 0, 6, 104, 46, },
++ { 0, 1, 0, 6, 108, 46, },
++ { 2, 1, 0, 6, 108, 46, },
++ { 1, 1, 0, 6, 108, 46, },
++ { 0, 1, 0, 6, 112, 46, },
++ { 2, 1, 0, 6, 112, 46, },
++ { 1, 1, 0, 6, 112, 46, },
++ { 0, 1, 0, 6, 116, 46, },
++ { 2, 1, 0, 6, 116, 46, },
++ { 1, 1, 0, 6, 116, 46, },
++ { 0, 1, 0, 6, 120, 46, },
++ { 2, 1, 0, 6, 120, 46, },
++ { 1, 1, 0, 6, 120, 46, },
++ { 0, 1, 0, 6, 124, 46, },
++ { 2, 1, 0, 6, 124, 46, },
++ { 1, 1, 0, 6, 124, 46, },
++ { 0, 1, 0, 6, 128, 46, },
++ { 2, 1, 0, 6, 128, 46, },
++ { 1, 1, 0, 6, 128, 46, },
++ { 0, 1, 0, 6, 132, 46, },
++ { 2, 1, 0, 6, 132, 46, },
++ { 1, 1, 0, 6, 132, 46, },
++ { 0, 1, 0, 6, 136, 46, },
++ { 2, 1, 0, 6, 136, 46, },
++ { 1, 1, 0, 6, 136, 46, },
++ { 0, 1, 0, 6, 140, 46, },
++ { 2, 1, 0, 6, 140, 46, },
++ { 1, 1, 0, 6, 140, 46, },
++ { 0, 1, 0, 6, 149, 46, },
++ { 2, 1, 0, 6, 149, 46, },
++ { 1, 1, 0, 6, 149, 63, },
++ { 0, 1, 0, 6, 153, 46, },
++ { 2, 1, 0, 6, 153, 46, },
++ { 1, 1, 0, 6, 153, 63, },
++ { 0, 1, 0, 6, 157, 46, },
++ { 2, 1, 0, 6, 157, 46, },
++ { 1, 1, 0, 6, 157, 63, },
++ { 0, 1, 0, 6, 161, 46, },
++ { 2, 1, 0, 6, 161, 46, },
++ { 1, 1, 0, 6, 161, 63, },
++ { 0, 1, 0, 6, 165, 46, },
++ { 2, 1, 0, 6, 165, 46, },
++ { 1, 1, 0, 6, 165, 63, },
++ { 0, 1, 0, 7, 36, 46, },
++ { 2, 1, 0, 7, 36, 46, },
++ { 1, 1, 0, 7, 36, 46, },
++ { 0, 1, 0, 7, 40, 46, },
++ { 2, 1, 0, 7, 40, 46, },
++ { 1, 1, 0, 7, 40, 46, },
++ { 0, 1, 0, 7, 44, 46, },
++ { 2, 1, 0, 7, 44, 46, },
++ { 1, 1, 0, 7, 44, 46, },
++ { 0, 1, 0, 7, 48, 46, },
++ { 2, 1, 0, 7, 48, 46, },
++ { 1, 1, 0, 7, 48, 46, },
++ { 0, 1, 0, 7, 52, 46, },
++ { 2, 1, 0, 7, 52, 46, },
++ { 1, 1, 0, 7, 52, 46, },
++ { 0, 1, 0, 7, 56, 46, },
++ { 2, 1, 0, 7, 56, 46, },
++ { 1, 1, 0, 7, 56, 46, },
++ { 0, 1, 0, 7, 60, 46, },
++ { 2, 1, 0, 7, 60, 46, },
++ { 1, 1, 0, 7, 60, 46, },
++ { 0, 1, 0, 7, 64, 46, },
++ { 2, 1, 0, 7, 64, 46, },
++ { 1, 1, 0, 7, 64, 46, },
++ { 0, 1, 0, 7, 100, 46, },
++ { 2, 1, 0, 7, 100, 46, },
++ { 1, 1, 0, 7, 100, 46, },
++ { 0, 1, 0, 7, 104, 46, },
++ { 2, 1, 0, 7, 104, 46, },
++ { 1, 1, 0, 7, 104, 46, },
++ { 0, 1, 0, 7, 108, 46, },
++ { 2, 1, 0, 7, 108, 46, },
++ { 1, 1, 0, 7, 108, 46, },
++ { 0, 1, 0, 7, 112, 46, },
++ { 2, 1, 0, 7, 112, 46, },
++ { 1, 1, 0, 7, 112, 46, },
++ { 0, 1, 0, 7, 116, 46, },
++ { 2, 1, 0, 7, 116, 46, },
++ { 1, 1, 0, 7, 116, 46, },
++ { 0, 1, 0, 7, 120, 46, },
++ { 2, 1, 0, 7, 120, 46, },
++ { 1, 1, 0, 7, 120, 46, },
++ { 0, 1, 0, 7, 124, 46, },
++ { 2, 1, 0, 7, 124, 46, },
++ { 1, 1, 0, 7, 124, 46, },
++ { 0, 1, 0, 7, 128, 46, },
++ { 2, 1, 0, 7, 128, 46, },
++ { 1, 1, 0, 7, 128, 46, },
++ { 0, 1, 0, 7, 132, 46, },
++ { 2, 1, 0, 7, 132, 46, },
++ { 1, 1, 0, 7, 132, 46, },
++ { 0, 1, 0, 7, 136, 46, },
++ { 2, 1, 0, 7, 136, 46, },
++ { 1, 1, 0, 7, 136, 46, },
++ { 0, 1, 0, 7, 140, 46, },
++ { 2, 1, 0, 7, 140, 46, },
++ { 1, 1, 0, 7, 140, 46, },
++ { 0, 1, 0, 7, 149, 46, },
++ { 2, 1, 0, 7, 149, 46, },
++ { 1, 1, 0, 7, 149, 63, },
++ { 0, 1, 0, 7, 153, 46, },
++ { 2, 1, 0, 7, 153, 46, },
++ { 1, 1, 0, 7, 153, 63, },
++ { 0, 1, 0, 7, 157, 46, },
++ { 2, 1, 0, 7, 157, 46, },
++ { 1, 1, 0, 7, 157, 63, },
++ { 0, 1, 0, 7, 161, 46, },
++ { 2, 1, 0, 7, 161, 46, },
++ { 1, 1, 0, 7, 161, 63, },
++ { 0, 1, 0, 7, 165, 46, },
++ { 2, 1, 0, 7, 165, 46, },
++ { 1, 1, 0, 7, 165, 63, },
++ { 0, 1, 1, 2, 38, 46, },
++ { 2, 1, 1, 2, 38, 46, },
++ { 1, 1, 1, 2, 38, 46, },
++ { 0, 1, 1, 2, 46, 46, },
++ { 2, 1, 1, 2, 46, 46, },
++ { 1, 1, 1, 2, 46, 46, },
++ { 0, 1, 1, 2, 54, 46, },
++ { 2, 1, 1, 2, 54, 46, },
++ { 1, 1, 1, 2, 54, 46, },
++ { 0, 1, 1, 2, 62, 46, },
++ { 2, 1, 1, 2, 62, 46, },
++ { 1, 1, 1, 2, 62, 46, },
++ { 0, 1, 1, 2, 102, 46, },
++ { 2, 1, 1, 2, 102, 46, },
++ { 1, 1, 1, 2, 102, 46, },
++ { 0, 1, 1, 2, 110, 46, },
++ { 2, 1, 1, 2, 110, 46, },
++ { 1, 1, 1, 2, 110, 46, },
++ { 0, 1, 1, 2, 118, 46, },
++ { 2, 1, 1, 2, 118, 46, },
++ { 1, 1, 1, 2, 118, 46, },
++ { 0, 1, 1, 2, 126, 46, },
++ { 2, 1, 1, 2, 126, 46, },
++ { 1, 1, 1, 2, 126, 46, },
++ { 0, 1, 1, 2, 134, 46, },
++ { 2, 1, 1, 2, 134, 46, },
++ { 1, 1, 1, 2, 134, 46, },
++ { 0, 1, 1, 2, 151, 46, },
++ { 2, 1, 1, 2, 151, 46, },
++ { 1, 1, 1, 2, 151, 63, },
++ { 0, 1, 1, 2, 159, 46, },
++ { 2, 1, 1, 2, 159, 46, },
++ { 1, 1, 1, 2, 159, 63, },
++ { 0, 1, 1, 3, 38, 46, },
++ { 2, 1, 1, 3, 38, 46, },
++ { 1, 1, 1, 3, 38, 46, },
++ { 0, 1, 1, 3, 46, 46, },
++ { 2, 1, 1, 3, 46, 46, },
++ { 1, 1, 1, 3, 46, 46, },
++ { 0, 1, 1, 3, 54, 46, },
++ { 2, 1, 1, 3, 54, 46, },
++ { 1, 1, 1, 3, 54, 46, },
++ { 0, 1, 1, 3, 62, 46, },
++ { 2, 1, 1, 3, 62, 46, },
++ { 1, 1, 1, 3, 62, 46, },
++ { 0, 1, 1, 3, 102, 46, },
++ { 2, 1, 1, 3, 102, 46, },
++ { 1, 1, 1, 3, 102, 46, },
++ { 0, 1, 1, 3, 110, 46, },
++ { 2, 1, 1, 3, 110, 46, },
++ { 1, 1, 1, 3, 110, 46, },
++ { 0, 1, 1, 3, 118, 46, },
++ { 2, 1, 1, 3, 118, 46, },
++ { 1, 1, 1, 3, 118, 46, },
++ { 0, 1, 1, 3, 126, 46, },
++ { 2, 1, 1, 3, 126, 46, },
++ { 1, 1, 1, 3, 126, 46, },
++ { 0, 1, 1, 3, 134, 46, },
++ { 2, 1, 1, 3, 134, 46, },
++ { 1, 1, 1, 3, 134, 46, },
++ { 0, 1, 1, 3, 151, 46, },
++ { 2, 1, 1, 3, 151, 46, },
++ { 1, 1, 1, 3, 151, 63, },
++ { 0, 1, 1, 3, 159, 46, },
++ { 2, 1, 1, 3, 159, 46, },
++ { 1, 1, 1, 3, 159, 63, },
++ { 0, 1, 1, 6, 38, 46, },
++ { 2, 1, 1, 6, 38, 46, },
++ { 1, 1, 1, 6, 38, 46, },
++ { 0, 1, 1, 6, 46, 46, },
++ { 2, 1, 1, 6, 46, 46, },
++ { 1, 1, 1, 6, 46, 46, },
++ { 0, 1, 1, 6, 54, 46, },
++ { 2, 1, 1, 6, 54, 46, },
++ { 1, 1, 1, 6, 54, 46, },
++ { 0, 1, 1, 6, 62, 46, },
++ { 2, 1, 1, 6, 62, 46, },
++ { 1, 1, 1, 6, 62, 46, },
++ { 0, 1, 1, 6, 102, 46, },
++ { 2, 1, 1, 6, 102, 46, },
++ { 1, 1, 1, 6, 102, 46, },
++ { 0, 1, 1, 6, 110, 46, },
++ { 2, 1, 1, 6, 110, 46, },
++ { 1, 1, 1, 6, 110, 46, },
++ { 0, 1, 1, 6, 118, 46, },
++ { 2, 1, 1, 6, 118, 46, },
++ { 1, 1, 1, 6, 118, 46, },
++ { 0, 1, 1, 6, 126, 46, },
++ { 2, 1, 1, 6, 126, 46, },
++ { 1, 1, 1, 6, 126, 46, },
++ { 0, 1, 1, 6, 134, 46, },
++ { 2, 1, 1, 6, 134, 46, },
++ { 1, 1, 1, 6, 134, 46, },
++ { 0, 1, 1, 6, 151, 46, },
++ { 2, 1, 1, 6, 151, 46, },
++ { 1, 1, 1, 6, 151, 63, },
++ { 0, 1, 1, 6, 159, 46, },
++ { 2, 1, 1, 6, 159, 46, },
++ { 1, 1, 1, 6, 159, 63, },
++ { 0, 1, 1, 7, 38, 46, },
++ { 2, 1, 1, 7, 38, 46, },
++ { 1, 1, 1, 7, 38, 46, },
++ { 0, 1, 1, 7, 46, 46, },
++ { 2, 1, 1, 7, 46, 46, },
++ { 1, 1, 1, 7, 46, 46, },
++ { 0, 1, 1, 7, 54, 46, },
++ { 2, 1, 1, 7, 54, 46, },
++ { 1, 1, 1, 7, 54, 46, },
++ { 0, 1, 1, 7, 62, 46, },
++ { 2, 1, 1, 7, 62, 46, },
++ { 1, 1, 1, 7, 62, 46, },
++ { 0, 1, 1, 7, 102, 46, },
++ { 2, 1, 1, 7, 102, 46, },
++ { 1, 1, 1, 7, 102, 46, },
++ { 0, 1, 1, 7, 110, 46, },
++ { 2, 1, 1, 7, 110, 46, },
++ { 1, 1, 1, 7, 110, 46, },
++ { 0, 1, 1, 7, 118, 46, },
++ { 2, 1, 1, 7, 118, 46, },
++ { 1, 1, 1, 7, 118, 46, },
++ { 0, 1, 1, 7, 126, 46, },
++ { 2, 1, 1, 7, 126, 46, },
++ { 1, 1, 1, 7, 126, 46, },
++ { 0, 1, 1, 7, 134, 46, },
++ { 2, 1, 1, 7, 134, 46, },
++ { 1, 1, 1, 7, 134, 46, },
++ { 0, 1, 1, 7, 151, 46, },
++ { 2, 1, 1, 7, 151, 46, },
++ { 1, 1, 1, 7, 151, 63, },
++ { 0, 1, 1, 7, 159, 46, },
++ { 2, 1, 1, 7, 159, 46, },
++ { 1, 1, 1, 7, 159, 63, },
++ { 0, 1, 2, 4, 42, 46, },
++ { 2, 1, 2, 4, 42, 46, },
++ { 1, 1, 2, 4, 42, 46, },
++ { 0, 1, 2, 4, 58, 46, },
++ { 2, 1, 2, 4, 58, 46, },
++ { 1, 1, 2, 4, 58, 46, },
++ { 0, 1, 2, 4, 106, 46, },
++ { 2, 1, 2, 4, 106, 46, },
++ { 1, 1, 2, 4, 106, 46, },
++ { 0, 1, 2, 4, 122, 46, },
++ { 2, 1, 2, 4, 122, 46, },
++ { 1, 1, 2, 4, 122, 46, },
++ { 0, 1, 2, 4, 155, 46, },
++ { 2, 1, 2, 4, 155, 46, },
++ { 1, 1, 2, 4, 155, 63, },
++ { 0, 1, 2, 5, 42, 46, },
++ { 2, 1, 2, 5, 42, 46, },
++ { 1, 1, 2, 5, 42, 46, },
++ { 0, 1, 2, 5, 58, 46, },
++ { 2, 1, 2, 5, 58, 46, },
++ { 1, 1, 2, 5, 58, 46, },
++ { 0, 1, 2, 5, 106, 46, },
++ { 2, 1, 2, 5, 106, 46, },
++ { 1, 1, 2, 5, 106, 46, },
++ { 0, 1, 2, 5, 122, 46, },
++ { 2, 1, 2, 5, 122, 46, },
++ { 1, 1, 2, 5, 122, 46, },
++ { 0, 1, 2, 5, 155, 46, },
++ { 2, 1, 2, 5, 155, 46, },
++ { 1, 1, 2, 5, 155, 63, },
++ { 0, 1, 2, 8, 42, 46, },
++ { 2, 1, 2, 8, 42, 46, },
++ { 1, 1, 2, 8, 42, 46, },
++ { 0, 1, 2, 8, 58, 46, },
++ { 2, 1, 2, 8, 58, 46, },
++ { 1, 1, 2, 8, 58, 46, },
++ { 0, 1, 2, 8, 106, 46, },
++ { 2, 1, 2, 8, 106, 46, },
++ { 1, 1, 2, 8, 106, 46, },
++ { 0, 1, 2, 8, 122, 46, },
++ { 2, 1, 2, 8, 122, 46, },
++ { 1, 1, 2, 8, 122, 46, },
++ { 0, 1, 2, 8, 155, 46, },
++ { 2, 1, 2, 8, 155, 46, },
++ { 1, 1, 2, 8, 155, 63, },
++ { 0, 1, 2, 9, 42, 46, },
++ { 2, 1, 2, 9, 42, 46, },
++ { 1, 1, 2, 9, 42, 46, },
++ { 0, 1, 2, 9, 58, 46, },
++ { 2, 1, 2, 9, 58, 46, },
++ { 1, 1, 2, 9, 58, 46, },
++ { 0, 1, 2, 9, 106, 46, },
++ { 2, 1, 2, 9, 106, 46, },
++ { 1, 1, 2, 9, 106, 46, },
++ { 0, 1, 2, 9, 122, 46, },
++ { 2, 1, 2, 9, 122, 46, },
++ { 1, 1, 2, 9, 122, 46, },
++ { 0, 1, 2, 9, 155, 46, },
++ { 2, 1, 2, 9, 155, 46, },
++ { 1, 1, 2, 9, 155, 63, },
++};
++
++RTW_DECL_TABLE_TXPWR_LMT(rtw8814a_txpwr_lmt_type8);
++
++static const u8
++rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 11,
++ 11, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19},
++ {0, 1, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10,
++ 11, 12, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18},
++ {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19},
++};
++
++static const u8
++rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25, 25},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
++};
++
++static const u8
++rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
++ 11, 12, 13, 14, 15, 15, 15, 15, 16, 16, 17, 18},
++ {0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11,
++ 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20},
++ {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11,
++ 12, 13, 13, 14, 14, 15, 16, 17, 18, 18, 19, 20, 20},
++};
++
++static const u8
++rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++ 16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 25},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 17, 18, 19, 20, 21, 22, 23, 24, 24, 25, 25, 25},
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++ 16, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 25},
++};
++
++static const u8
++rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 17, 17},
++ {0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11,
++ 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20},
++ {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11,
++ 12, 13, 13, 14, 14, 15, 16, 17, 18, 18, 19, 20, 20},
++};
++
++static const u8
++rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
++ 15, 15, 16, 17, 18, 18, 19, 20, 21, 22, 23, 23, 24},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 18, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
++ 16, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 25},
++};
++
++static const u8
++rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
++ 8, 9, 9, 10, 11, 11, 11, 11, 12, 12, 13, 13, 14},
++ {0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 11,
++ 12, 13, 14, 14, 15, 16, 16, 17, 18, 19, 19, 20, 21},
++ {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19},
++};
++
++static const u8
++rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 12, 13,
++ 14, 15, 16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 25, 25, 25},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25},
++};
++
++static const u8 rtw8814a_pwrtrk_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7,
++ 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
++ 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
++ 7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
++ 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
++ 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6,
++ 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7,
++ 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6,
++ 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7,
++ 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7,
++ 7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7,
++ 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_2g_cck_a_p,
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type0_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type0_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type0_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_type0_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_type0_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_type0_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_type0_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_type0_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_type0_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_type0_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_type0_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type0_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type0_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type0_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type0_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type0_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type0_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type0_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type0_2g_cck_a_p,
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 12, 12,
++ 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16},
++ {0, 1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 9, 10, 10, 10, 10,
++ 11, 11, 12, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 12,
++ 12, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
++ 17, 18, 19, 20, 21, 22, 23, 23, 23, 23, 23, 23, 23},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 12,
++ 12, 13, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12,
++ 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
++ 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
++ {0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 20, 20, 21, 21, 21, 21, 21},
++ {0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 13,
++ 13, 13, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12,
++ 13, 13, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
++ 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15,
++ 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21, 21},
++ {0, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 12, 13,
++ 14, 15, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 20},
++ {0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14,
++ 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9, 10, 10, 11, 11, 11,
++ 12, 13, 13, 13, 13, 14, 15, 15, 15, 15, 15, 15, 15},
++ {0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 10, 11, 12, 12,
++ 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11, 11, 12,
++ 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++};
++
++static const u8
++rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14,
++ 15, 15, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 20},
++ {0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14,
++ 15, 16, 16, 17, 18, 19, 20, 20, 20, 20, 20, 20, 20},
++ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15,
++ 15, 16, 17, 18, 19, 19, 20, 20, 20, 20, 20, 20, 20},
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
++ 6, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 8, 8, 9, 10, 10,
++ 11, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8,
++ 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9,
++ 10, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
++ 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8,
++ 9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 10,
++ 10, 11, 11, 11, 12, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
++ 10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 9, 9,
++ 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type2_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10,
++ 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type2_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type2_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_type2_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_type2_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_type2_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_type2_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_type2_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_type2_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_type2_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_type2_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type2_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type2_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type2_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type2_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type2_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type2_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type2_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type2_2g_cck_a_p,
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 3, 3, 3, 4, 6, 6, 7, 7, 8, 9, 10, 11, 12, 13, 13, 14,
++ 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 4, 5, 6, 7, 7, 8, 7, 8, 10, 11, 12, 12, 13, 13, 14, 14,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 5, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16,
++ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 10, 11, 12,
++ 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 11, 12,
++ 12, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 0, 1, 1, 2, 2, 3, 5, 7, 8, 9, 10, 11, 12, 13, 13,
++ 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 2, 3, 3, 4, 6, 7, 7, 8, 9, 9, 9, 10, 10, 10,
++ 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12},
++ {0, 1, 2, 3, 3, 7, 7, 8, 8, 9, 11, 12, 12, 13, 14, 14, 15,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 0, 1, 2, 3, 4, 5, 7, 8, 8, 10, 11, 12, 12, 13, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 11, 11,
++ 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13},
++ {0, 0, 1, 2, 3, 3, 5, 5, 6, 8, 8, 9, 10, 11, 13, 13, 13,
++ 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 4, 4, 5, 7, 8, 9, 9, 10, 11, 12, 12, 12,
++ 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 9, 10, 10, 10, 10, 10,
++ 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12},
++ {0, 1, 2, 3, 3, 7, 7, 8, 8, 9, 11, 12, 12, 13, 14, 14, 15,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 0, 1, 2, 3, 4, 5, 7, 8, 8, 10, 11, 12, 12, 13, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 1, 2, 2, 4, 5, 6, 6, 7, 8, 9, 10, 11, 11, 11,
++ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 0, 2, 3, 4, 5, 6, 8, 8, 9, 9, 11, 12, 13, 13, 13,
++ 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 0, 1, 2, 3, 3, 4, 6, 7, 8, 9, 10, 11, 12, 12, 12,
++ 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 0, 1, 2, 3, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12},
++ {0, 2, 3, 4, 5, 7, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 17,
++ 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18},
++ {0, 1, 2, 3, 3, 4, 6, 7, 8, 8, 10, 11, 11, 12, 13, 13, 13,
++ 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 1, 3, 3, 3, 5, 5, 6, 6, 8, 8, 9, 10, 11, 11, 11,
++ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 11, 12, 13, 14, 15,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 0, 1, 3, 3, 4, 5, 5, 6, 7, 7, 8, 10, 10, 11, 11, 11,
++ 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13},
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 7, 8, 9, 9, 9,
++ 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 10,
++ 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 8, 8, 9, 9, 9,
++ 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 10, 10, 10,
++ 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 8, 9, 9, 9, 9,
++ 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10, 10,
++ 10, 11, 11, 11, 11, 111, 12, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9,
++ 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9,
++ 10, 10, 10, 10, 10, 11, 11, 10, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
++ 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 8, 8, 9, 10, 10, 10,
++ 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
++ 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 2, 3, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10, 10, 10,
++ 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 8,
++ 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10,
++ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
++};
++
++static const u8 rtw8814a_pwrtrk_type5_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9,
++ 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type5_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type5_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_type5_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_type5_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_type5_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_type5_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_type5_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_type5_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_type5_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_type5_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type5_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type5_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type5_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type5_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type5_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type5_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type5_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type5_2g_cck_a_p,
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++ {0, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
++ 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
++};
++
++static const u8
++rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7,
++ 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++static const u8 rtw8814a_pwrtrk_type7_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
++ 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type7_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type7_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_type7_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_type7_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_type7_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_type7_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_type7_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_type7_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_type7_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_type7_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type7_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type7_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type7_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type7_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type7_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type7_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type7_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type7_2g_cck_a_p,
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 4, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11, 12,
++ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 4, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12,
++ 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9, 10, 10,
++ 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 14,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 0, 1, 2, 3, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 12,
++ 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11,
++ 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11,
++ 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 3, 4, 4, 5, 6, 7, 7, 8, 10, 11, 12, 13, 14,
++ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
++ {0, 0, 1, 2, 4, 5, 5, 6, 6, 7, 7, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11,
++ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11,
++ 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 10, 10, 11, 11,
++ 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 10, 11, 11, 13, 13,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 10, 10, 11, 13, 13,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 11, 11,
++ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12},
++ {0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10, 10, 11, 11,
++ 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++ {0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 10, 10, 11, 12,
++ 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13},
++};
++
++static const u8
++rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_NUM][RTW_PWR_TRK_TBL_SZ] = {
++ {0, 0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++ {0, 0, 1, 2, 3, 3, 4, 4, 6, 7, 7, 9, 10, 11, 12, 13, 14,
++ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14},
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gd_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5,
++ 6, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gd_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gc_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gc_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7, 8, 8, 9, 10, 10,
++ 11, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gb_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8,
++ 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2gb_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2ga_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 9,
++ 10, 11, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2ga_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 4, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
++ 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_d_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8,
++ 9, 9, 9, 9, 9, 9, 10, 10, 11, 11, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_d_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10,
++ 10, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 14
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_c_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 10,
++ 10, 11, 11, 11, 12, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_c_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_b_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 10,
++ 10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_b_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, 10,
++ 10, 11, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_a_n[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 1, 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 9, 9,
++ 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12
++};
++
++static const u8 rtw8814a_pwrtrk_type8_2g_cck_a_p[RTW_PWR_TRK_TBL_SZ] = {
++ 0, 0, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10,
++ 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13
++};
++
++const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type8_tbl = {
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gd_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gd_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gd_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gc_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gc_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gc_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gb_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5gb_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5gb_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_n[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5ga_n[RTW_PWR_TRK_5G_3],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_1] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_1],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_2] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_2],
++ .pwrtrk_5ga_p[RTW_PWR_TRK_5G_3] = rtw8814a_pwrtrk_type8_5ga_p[RTW_PWR_TRK_5G_3],
++ .pwrtrk_2gd_n = rtw8814a_pwrtrk_type8_2gd_n,
++ .pwrtrk_2gd_p = rtw8814a_pwrtrk_type8_2gd_p,
++ .pwrtrk_2gc_n = rtw8814a_pwrtrk_type8_2gc_n,
++ .pwrtrk_2gc_p = rtw8814a_pwrtrk_type8_2gc_p,
++ .pwrtrk_2gb_n = rtw8814a_pwrtrk_type8_2gb_n,
++ .pwrtrk_2gb_p = rtw8814a_pwrtrk_type8_2gb_p,
++ .pwrtrk_2ga_n = rtw8814a_pwrtrk_type8_2ga_n,
++ .pwrtrk_2ga_p = rtw8814a_pwrtrk_type8_2ga_p,
++ .pwrtrk_2g_cckd_n = rtw8814a_pwrtrk_type8_2g_cck_d_n,
++ .pwrtrk_2g_cckd_p = rtw8814a_pwrtrk_type8_2g_cck_d_p,
++ .pwrtrk_2g_cckc_n = rtw8814a_pwrtrk_type8_2g_cck_c_n,
++ .pwrtrk_2g_cckc_p = rtw8814a_pwrtrk_type8_2g_cck_c_p,
++ .pwrtrk_2g_cckb_n = rtw8814a_pwrtrk_type8_2g_cck_b_n,
++ .pwrtrk_2g_cckb_p = rtw8814a_pwrtrk_type8_2g_cck_b_p,
++ .pwrtrk_2g_ccka_n = rtw8814a_pwrtrk_type8_2g_cck_a_n,
++ .pwrtrk_2g_ccka_p = rtw8814a_pwrtrk_type8_2g_cck_a_p,
++};
++
++static const struct rtw_pwr_seq_cmd init_power_on_8814a[] = {
++ {0x10c2,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
++ {0xFFFF,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ 0,
++ RTW_PWR_CMD_END, 0, 0},
++};
++
++static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8814a[] = {
++ {0x0012,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
++ {0x0015,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(5), 0},
++ {0x0015,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(6), 0},
++ {0x0023,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(4), 0},
++ {0x0046,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x00},
++ {0x0062,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x00},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_PCI_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(2), 0},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(3), 0},
++ {0x0301,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_PCI_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0},
++ {0x0071,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_PCI_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(2), 0},
++ {0xFFFF,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ 0,
++ RTW_PWR_CMD_END, 0, 0},
++};
++
++static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8814a[] = {
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(2), 0},
++ {0x0006,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_POLLING, BIT(1), BIT(1)},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(3), 0},
++ {0x00F0,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(7), 0},
++ {0x0081,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0x30, 0x20},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(0), BIT(0)},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_POLLING, BIT(0), 0},
++ {0xFFFF,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ 0,
++ RTW_PWR_CMD_END, 0, 0},
++};
++
++static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8814a[] = {
++ {0x0c00,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x04},
++ {0x0e00,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x04},
++ {0x1002,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(0), 0},
++ {0x0002,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_DELAY, 1, RTW_PWR_DELAY_US},
++ {0x1002,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_PCI_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x001F,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0},
++ {0x0007,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x28},
++ {0x0008,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0x02, 0},
++ {0x0066,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(7), 0},
++ {0x0041,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(4), 0},
++ {0x0042,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x004e,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
++ {0x0041,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_USB_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(0), 0},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), BIT(1)},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_POLLING, BIT(1), 0},
++ {0xFFFF,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ 0,
++ RTW_PWR_CMD_END, 0, 0},
++};
++
++static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8814a[] = {
++ {0x0003,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(2), 0},
++ {0x0080,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x01},
++ {0x0081,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x30},
++ {0x0045,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x00},
++ {0x0046,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0xff},
++ {0x0047,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0},
++ {0x0015,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(6), BIT(6)},
++ {0x0015,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(5), BIT(5)},
++ {0x0012,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(6), 0},
++ {0x0023,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(4), BIT(4)},
++ {0x0008,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x0007,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xFF, 0x20},
++ {0x001f,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x0020,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x0021,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x0076,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(1), 0},
++ {0x0091,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, 0xA0, 0xA0},
++ {0x0070,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(3), BIT(3)},
++ {0x0005,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ RTW_PWR_ADDR_MAC,
++ RTW_PWR_CMD_WRITE, BIT(3), BIT(3)},
++ {0xFFFF,
++ RTW_PWR_CUT_ALL_MSK,
++ RTW_PWR_INTF_ALL_MSK,
++ 0,
++ RTW_PWR_CMD_END, 0, 0},
++};
++
++const struct rtw_pwr_seq_cmd * const card_enable_flow_8814a[] = {
++ init_power_on_8814a,
++ trans_carddis_to_cardemu_8814a,
++ trans_cardemu_to_act_8814a,
++ NULL
++};
++
++const struct rtw_pwr_seq_cmd * const card_disable_flow_8814a[] = {
++ trans_act_to_cardemu_8814a,
++ trans_cardemu_to_carddis_8814a,
++ NULL
++};
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a_table.h
+@@ -0,0 +1,40 @@
++/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#ifndef __RTW8814A_TABLE_H__
++#define __RTW8814A_TABLE_H__
++
++extern const struct rtw_table rtw8814a_mac_tbl;
++extern const struct rtw_table rtw8814a_agc_tbl;
++extern const struct rtw_table rtw8814a_bb_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type0_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type2_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type3_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type4_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type5_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type7_tbl;
++extern const struct rtw_table rtw8814a_bb_pg_type8_tbl;
++extern const struct rtw_table rtw8814a_rf_a_tbl;
++extern const struct rtw_table rtw8814a_rf_b_tbl;
++extern const struct rtw_table rtw8814a_rf_c_tbl;
++extern const struct rtw_table rtw8814a_rf_d_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type0_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type1_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type2_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type3_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type5_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type7_tbl;
++extern const struct rtw_table rtw8814a_txpwr_lmt_type8_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type0_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type2_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type5_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type7_tbl;
++extern const struct rtw_pwr_track_tbl rtw8814a_rtw_pwrtrk_type8_tbl;
++extern const struct rtw_pwr_seq_cmd * const card_disable_flow_8814a[];
++extern const struct rtw_pwr_seq_cmd * const card_enable_flow_8814a[];
++
++#endif
diff --git a/package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch b/package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch
new file mode 100644
index 0000000000..3d8ccd8d28
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/088-v6.15-wifi-rtw88-Add-rtw8814a.-c-h.patch
@@ -0,0 +1,2343 @@
+From 1a75457846424b77978d0ba1feb836913ed60637 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:24:40 +0200
+Subject: [PATCH] wifi: rtw88: Add rtw8814a.{c,h}
+
+These contain all the logic for the RTL8814A chip.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/5d3b8c03-63c1-4f20-860a-89d424badad8@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8814a.c | 2257 +++++++++++++++++
+ drivers/net/wireless/realtek/rtw88/rtw8814a.h | 62 +
+ 2 files changed, 2319 insertions(+)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a.c
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814a.h
+
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
+@@ -0,0 +1,2257 @@
++// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#include <linux/usb.h>
++#include "main.h"
++#include "coex.h"
++#include "tx.h"
++#include "phy.h"
++#include "rtw8814a.h"
++#include "rtw8814a_table.h"
++#include "rtw88xxa.h"
++#include "reg.h"
++#include "debug.h"
++#include "efuse.h"
++#include "regd.h"
++#include "usb.h"
++
++static void rtw8814a_efuse_grant(struct rtw_dev *rtwdev, bool on)
++{
++ if (on) {
++ rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_ON);
++
++ rtw_write16_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_ELDR);
++ rtw_write16_set(rtwdev, REG_SYS_CLKR,
++ BIT_LOADER_CLK_EN | BIT_ANA8M);
++ } else {
++ rtw_write8(rtwdev, REG_EFUSE_ACCESS, EFUSE_ACCESS_OFF);
++ }
++}
++
++static void rtw8814a_read_rfe_type(struct rtw_dev *rtwdev)
++{
++ struct rtw_efuse *efuse = &rtwdev->efuse;
++
++ if (!(efuse->rfe_option & BIT(7)))
++ return;
++
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
++ efuse->rfe_option = 0;
++ else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
++ efuse->rfe_option = 1;
++}
++
++static void rtw8814a_read_amplifier_type(struct rtw_dev *rtwdev)
++{
++ struct rtw_efuse *efuse = &rtwdev->efuse;
++
++ switch (efuse->rfe_option) {
++ case 1:
++ /* Internal 2G */
++ efuse->pa_type_2g = 0;
++ efuse->lna_type_2g = 0;
++ /* External 5G */
++ efuse->pa_type_5g = BIT(0);
++ efuse->lna_type_5g = BIT(3);
++ break;
++ case 2 ... 5:
++ /* External everything */
++ efuse->pa_type_2g = BIT(4);
++ efuse->lna_type_2g = BIT(3);
++ efuse->pa_type_5g = BIT(0);
++ efuse->lna_type_5g = BIT(3);
++ break;
++ case 6:
++ efuse->lna_type_5g = BIT(3);
++ break;
++ default:
++ break;
++ }
++}
++
++static void rtw8814a_read_rf_type(struct rtw_dev *rtwdev,
++ struct rtw8814a_efuse *map)
++{
++ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
++ struct rtw_hal *hal = &rtwdev->hal;
++
++ switch (map->trx_antenna_option) {
++ case 0xff: /* 4T4R */
++ case 0xee: /* 3T3R */
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB &&
++ rtwusb->udev->speed != USB_SPEED_SUPER)
++ hal->rf_type = RF_2T2R;
++ else
++ hal->rf_type = RF_3T3R;
++
++ break;
++ case 0x66: /* 2T2R */
++ case 0x6f: /* 2T4R */
++ default:
++ hal->rf_type = RF_2T2R;
++ break;
++ }
++
++ hal->rf_path_num = 4;
++ hal->rf_phy_num = 4;
++
++ if (hal->rf_type == RF_3T3R) {
++ hal->antenna_rx = BB_PATH_ABC;
++ hal->antenna_tx = BB_PATH_ABC;
++ } else {
++ hal->antenna_rx = BB_PATH_AB;
++ hal->antenna_tx = BB_PATH_AB;
++ }
++}
++
++static void rtw8814a_init_hwcap(struct rtw_dev *rtwdev)
++{
++ struct rtw_efuse *efuse = &rtwdev->efuse;
++ struct rtw_hal *hal = &rtwdev->hal;
++
++ efuse->hw_cap.bw = BIT(RTW_CHANNEL_WIDTH_20) |
++ BIT(RTW_CHANNEL_WIDTH_40) |
++ BIT(RTW_CHANNEL_WIDTH_80);
++ efuse->hw_cap.ptcl = EFUSE_HW_CAP_PTCL_VHT;
++
++ if (hal->rf_type == RF_3T3R)
++ efuse->hw_cap.nss = 3;
++ else
++ efuse->hw_cap.nss = 2;
++
++ rtw_dbg(rtwdev, RTW_DBG_EFUSE,
++ "hw cap: hci=0x%02x, bw=0x%02x, ptcl=0x%02x, ant_num=%d, nss=%d\n",
++ efuse->hw_cap.hci, efuse->hw_cap.bw, efuse->hw_cap.ptcl,
++ efuse->hw_cap.ant_num, efuse->hw_cap.nss);
++}
++
++static int rtw8814a_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
++{
++ struct rtw_efuse *efuse = &rtwdev->efuse;
++ struct rtw8814a_efuse *map;
++ int i;
++
++ if (rtw_dbg_is_enabled(rtwdev, RTW_DBG_EFUSE))
++ print_hex_dump(KERN_INFO, "", DUMP_PREFIX_OFFSET, 16, 1,
++ log_map, rtwdev->chip->log_efuse_size, true);
++
++ map = (struct rtw8814a_efuse *)log_map;
++
++ efuse->usb_mode_switch = u8_get_bits(map->usb_mode, BIT(4));
++ efuse->rfe_option = map->rfe_option;
++ efuse->rf_board_option = map->rf_board_option;
++ efuse->crystal_cap = map->xtal_k;
++ efuse->channel_plan = map->channel_plan;
++ efuse->country_code[0] = map->country_code[0];
++ efuse->country_code[1] = map->country_code[1];
++ efuse->bt_setting = map->rf_bt_setting;
++ efuse->regd = map->rf_board_option & 0x7;
++ efuse->thermal_meter[RF_PATH_A] = map->thermal_meter;
++ efuse->thermal_meter_k = map->thermal_meter;
++ efuse->tx_bb_swing_setting_2g = map->tx_bb_swing_setting_2g;
++ efuse->tx_bb_swing_setting_5g = map->tx_bb_swing_setting_5g;
++
++ rtw8814a_read_rfe_type(rtwdev);
++ rtw8814a_read_amplifier_type(rtwdev);
++
++ /* Override rtw_chip_parameter_setup() */
++ rtw8814a_read_rf_type(rtwdev, map);
++
++ rtw8814a_init_hwcap(rtwdev);
++
++ for (i = 0; i < 4; i++)
++ efuse->txpwr_idx_table[i] = map->txpwr_idx_table[i];
++
++ switch (rtw_hci_type(rtwdev)) {
++ case RTW_HCI_TYPE_USB:
++ ether_addr_copy(efuse->addr, map->u.mac_addr);
++ break;
++ case RTW_HCI_TYPE_PCIE:
++ ether_addr_copy(efuse->addr, map->e.mac_addr);
++ break;
++ case RTW_HCI_TYPE_SDIO:
++ default:
++ /* unsupported now */
++ return -EOPNOTSUPP;
++ }
++
++ return 0;
++}
++
++static void rtw8814a_init_rfe_reg(struct rtw_dev *rtwdev)
++{
++ u8 rfe_option = rtwdev->efuse.rfe_option;
++
++ if (rfe_option == 2 || rfe_option == 1) {
++ rtw_write32_mask(rtwdev, 0x1994, 0xf, 0xf);
++ rtw_write8_set(rtwdev, REG_GPIO_MUXCFG + 2, 0xf0);
++ } else if (rfe_option == 0) {
++ rtw_write32_mask(rtwdev, 0x1994, 0xf, 0xf);
++ rtw_write8_set(rtwdev, REG_GPIO_MUXCFG + 2, 0xc0);
++ }
++}
++
++#define RTW_TXSCALE_SIZE 37
++static const u32 rtw8814a_txscale_tbl[RTW_TXSCALE_SIZE] = {
++ 0x081, 0x088, 0x090, 0x099, 0x0a2, 0x0ac, 0x0b6, 0x0c0, 0x0cc, 0x0d8,
++ 0x0e5, 0x0f2, 0x101, 0x110, 0x120, 0x131, 0x143, 0x156, 0x16a, 0x180,
++ 0x197, 0x1af, 0x1c8, 0x1e3, 0x200, 0x21e, 0x23e, 0x261, 0x285, 0x2ab,
++ 0x2d3, 0x2fe, 0x32b, 0x35c, 0x38e, 0x3c4, 0x3fe
++};
++
++static u32 rtw8814a_get_bb_swing(struct rtw_dev *rtwdev, u8 band, u8 rf_path)
++{
++ static const u32 swing2setting[4] = {0x200, 0x16a, 0x101, 0x0b6};
++ struct rtw_efuse *efuse = &rtwdev->efuse;
++ u8 tx_bb_swing;
++
++ if (band == RTW_BAND_2G)
++ tx_bb_swing = efuse->tx_bb_swing_setting_2g;
++ else
++ tx_bb_swing = efuse->tx_bb_swing_setting_5g;
++
++ tx_bb_swing >>= 2 * rf_path;
++ tx_bb_swing &= 0x3;
++
++ return swing2setting[tx_bb_swing];
++}
++
++static u8 rtw8814a_get_swing_index(struct rtw_dev *rtwdev)
++{
++ u32 swing, table_value;
++ u8 i;
++
++ swing = rtw8814a_get_bb_swing(rtwdev, rtwdev->hal.current_band_type,
++ RF_PATH_A);
++
++ for (i = 0; i < ARRAY_SIZE(rtw8814a_txscale_tbl); i++) {
++ table_value = rtw8814a_txscale_tbl[i];
++ if (swing == table_value)
++ return i;
++ }
++
++ return 24;
++}
++
++static void rtw8814a_pwrtrack_init(struct rtw_dev *rtwdev)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ u8 path;
++
++ dm_info->default_ofdm_index = rtw8814a_get_swing_index(rtwdev);
++
++ for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
++ ewma_thermal_init(&dm_info->avg_thermal[path]);
++ dm_info->delta_power_index[path] = 0;
++ dm_info->delta_power_index_last[path] = 0;
++ }
++ dm_info->pwr_trk_triggered = false;
++ dm_info->pwr_trk_init_trigger = true;
++ dm_info->thermal_meter_k = rtwdev->efuse.thermal_meter_k;
++}
++
++static void rtw8814a_config_trx_path(struct rtw_dev *rtwdev)
++{
++ /* RX CCK disable 2R CCA */
++ rtw_write32_clr(rtwdev, REG_CCK0_FAREPORT,
++ BIT_CCK0_2RX | BIT_CCK0_MRC);
++ /* pathB tx on, path A/C/D tx off */
++ rtw_write32_mask(rtwdev, REG_CCK_RX, 0xf0000000, 0x4);
++ /* pathB rx */
++ rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0x5);
++}
++
++static void rtw8814a_config_cck_rx_antenna_init(struct rtw_dev *rtwdev)
++{
++ /* CCK 2R CCA parameters */
++
++ /* Disable Ant diversity */
++ rtw_write32_mask(rtwdev, REG_RXSB, BIT_RXSB_ANA_DIV, 0x0);
++ /* Concurrent CCA at LSB & USB */
++ rtw_write32_mask(rtwdev, REG_CCA, BIT_CCA_CO, 0);
++ /* RX path diversity enable */
++ rtw_write32_mask(rtwdev, REG_ANTSEL, BIT_ANT_BYCO, 0);
++ /* r_en_mrc_antsel */
++ rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_DIS_CO_PATHSEL, 0);
++ /* MBC weighting */
++ rtw_write32_mask(rtwdev, REG_CCA_MF, BIT_MBC_WIN, 1);
++ /* 2R CCA only */
++ rtw_write32_mask(rtwdev, REG_CCKTX, BIT_CMB_CCA_2R, 1);
++}
++
++static void rtw8814a_phy_set_param(struct rtw_dev *rtwdev)
++{
++ u32 crystal_cap, val32;
++ u8 val8, rf_path;
++
++ /* power on BB/RF domain */
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
++ rtw_write8_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_USBA);
++ else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
++ rtw_write8_set(rtwdev, REG_SYS_FUNC_EN, BIT_FEN_PCIEA);
++
++ rtw_write8_set(rtwdev, REG_SYS_CFG3_8814A + 2,
++ BIT_FEN_BB_GLB_RST | BIT_FEN_BB_RSTB);
++
++ /* Power on RF paths A..D */
++ val8 = BIT_RF_EN | BIT_RF_RSTB | BIT_RF_SDM_RSTB;
++ rtw_write8(rtwdev, REG_RF_CTRL, val8);
++ rtw_write8(rtwdev, REG_RF_CTRL1, val8);
++ rtw_write8(rtwdev, REG_RF_CTRL2, val8);
++ rtw_write8(rtwdev, REG_RF_CTRL3, val8);
++
++ rtw_load_table(rtwdev, rtwdev->chip->bb_tbl);
++ rtw_load_table(rtwdev, rtwdev->chip->agc_tbl);
++
++ crystal_cap = rtwdev->efuse.crystal_cap & 0x3F;
++ crystal_cap |= crystal_cap << 6;
++ rtw_write32_mask(rtwdev, REG_AFE_CTRL3, 0x07ff8000, crystal_cap);
++
++ rtw8814a_config_trx_path(rtwdev);
++
++ for (rf_path = 0; rf_path < rtwdev->hal.rf_path_num; rf_path++)
++ rtw_load_table(rtwdev, rtwdev->chip->rf_tbl[rf_path]);
++
++ val32 = rtw_read_rf(rtwdev, RF_PATH_A, RF_RCK1_V1, RFREG_MASK);
++ rtw_write_rf(rtwdev, RF_PATH_B, RF_RCK1_V1, RFREG_MASK, val32);
++ rtw_write_rf(rtwdev, RF_PATH_C, RF_RCK1_V1, RFREG_MASK, val32);
++ rtw_write_rf(rtwdev, RF_PATH_D, RF_RCK1_V1, RFREG_MASK, val32);
++
++ rtw_write32_set(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST);
++
++ rtw_write8(rtwdev, REG_HWSEQ_CTRL, 0xFF);
++
++ rtw_write32(rtwdev, REG_BAR_MODE_CTRL, 0x0201ffff);
++
++ rtw_write8(rtwdev, REG_MISC_CTRL, BIT_DIS_SECOND_CCA);
++
++ rtw_write8(rtwdev, REG_NAV_CTRL + 2, 0);
++
++ rtw_write8_clr(rtwdev, REG_GPIO_MUXCFG, BIT(5));
++
++ rtw8814a_config_cck_rx_antenna_init(rtwdev);
++
++ rtw_phy_init(rtwdev);
++ rtw8814a_pwrtrack_init(rtwdev);
++
++ rtw8814a_init_rfe_reg(rtwdev);
++
++ rtw_write8_clr(rtwdev, REG_QUEUE_CTRL, BIT(3));
++
++ rtw_write8(rtwdev, REG_NAV_CTRL + 2, 235);
++
++ /* enable Tx report. */
++ rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 1, 0x1F);
++
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB) {
++ /* Reset USB mode switch setting */
++ rtw_write8(rtwdev, REG_SYS_SDIO_CTRL, 0x0);
++ rtw_write8(rtwdev, REG_ACLK_MON, 0x0);
++ }
++}
++
++static void rtw8814ae_enable_rf_1_2v(struct rtw_dev *rtwdev)
++{
++ /* This is for fullsize card, because GPIO7 there is floating.
++ * We should pull GPIO7 high to enable RF 1.2V Switch Power Supply
++ */
++
++ /* 1. set 0x40[1:0] to 0, BIT_GPIOSEL=0, select pin as GPIO */
++ rtw_write8_clr(rtwdev, REG_GPIO_MUXCFG, BIT(1) | BIT(0));
++
++ /* 2. set 0x44[31] to 0
++ * mode=0: data port;
++ * mode=1 and BIT_GPIO_IO_SEL=0: interrupt mode;
++ */
++ rtw_write8_clr(rtwdev, REG_GPIO_PIN_CTRL + 3, BIT(7));
++
++ /* 3. data mode
++ * 3.1 set 0x44[23] to 1
++ * sel=0: input;
++ * sel=1: output;
++ */
++ rtw_write8_set(rtwdev, REG_GPIO_PIN_CTRL + 2, BIT(7));
++
++ /* 3.2 set 0x44[15] to 1
++ * output high value;
++ */
++ rtw_write8_set(rtwdev, REG_GPIO_PIN_CTRL + 1, BIT(7));
++}
++
++static int rtw8814a_mac_init(struct rtw_dev *rtwdev)
++{
++ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
++
++ rtw_write16(rtwdev, REG_CR,
++ MAC_TRX_ENABLE | BIT_MAC_SEC_EN | BIT_32K_CAL_TMR_EN);
++
++ rtw_load_table(rtwdev, rtwdev->chip->mac_tbl);
++
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB)
++ rtw_write8(rtwdev, REG_AUTO_LLT_V1 + 3,
++ rtwdev->chip->usb_tx_agg_desc_num << 1);
++
++ rtw_write32(rtwdev, REG_HIMR0, 0);
++ rtw_write32(rtwdev, REG_HIMR1, 0);
++
++ rtw_write32_mask(rtwdev, REG_RRSR, 0xfffff, 0xfffff);
++
++ rtw_write16(rtwdev, REG_RETRY_LIMIT, 0x3030);
++
++ rtw_write16(rtwdev, REG_RXFLTMAP0, 0xffff);
++ rtw_write16(rtwdev, REG_RXFLTMAP1, 0x0400);
++ rtw_write16(rtwdev, REG_RXFLTMAP2, 0xffff);
++
++ rtw_write8(rtwdev, REG_MAX_AGGR_NUM, 0x36);
++ rtw_write8(rtwdev, REG_MAX_AGGR_NUM + 1, 0x36);
++
++ /* Set Spec SIFS (used in NAV) */
++ rtw_write16(rtwdev, REG_SPEC_SIFS, 0x100a);
++ rtw_write16(rtwdev, REG_MAC_SPEC_SIFS, 0x100a);
++
++ /* Set SIFS for CCK */
++ rtw_write16(rtwdev, REG_SIFS, 0x100a);
++
++ /* Set SIFS for OFDM */
++ rtw_write16(rtwdev, REG_SIFS + 2, 0x100a);
++
++ /* TXOP */
++ rtw_write32(rtwdev, REG_EDCA_BE_PARAM, 0x005EA42B);
++ rtw_write32(rtwdev, REG_EDCA_BK_PARAM, 0x0000A44F);
++ rtw_write32(rtwdev, REG_EDCA_VI_PARAM, 0x005EA324);
++ rtw_write32(rtwdev, REG_EDCA_VO_PARAM, 0x002FA226);
++
++ rtw_write8_set(rtwdev, REG_FWHW_TXQ_CTRL, BIT(7));
++
++ rtw_write8(rtwdev, REG_ACKTO, 0x80);
++
++ rtw_write16(rtwdev, REG_BCN_CTRL,
++ BIT_DIS_TSF_UDT | (BIT_DIS_TSF_UDT << 8));
++ rtw_write32_mask(rtwdev, REG_TBTT_PROHIBIT, 0xfffff, WLAN_TBTT_TIME);
++ rtw_write8(rtwdev, REG_DRVERLYINT, 0x05);
++ rtw_write8(rtwdev, REG_BCNDMATIM, WLAN_BCN_DMA_TIME);
++ rtw_write16(rtwdev, REG_BCNTCFG, 0x4413);
++ rtw_write8(rtwdev, REG_BCN_MAX_ERR, 0xFF);
++
++ rtw_write32(rtwdev, REG_FAST_EDCA_VOVI_SETTING, 0x08070807);
++ rtw_write32(rtwdev, REG_FAST_EDCA_BEBK_SETTING, 0x08070807);
++
++ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_USB &&
++ rtwusb->udev->speed == USB_SPEED_SUPER) {
++ /* Disable U1/U2 Mode to avoid 2.5G spur in USB3.0. */
++ rtw_write8_clr(rtwdev, REG_USB_MOD, BIT(4) | BIT(3));
++ /* To avoid usb 3.0 H2C fail. */
++ rtw_write16(rtwdev, 0xf002, 0);
++
++ rtw_write8_clr(rtwdev, REG_SW_AMPDU_BURST_MODE_CTRL,
++ BIT_PRE_TX_CMD);
++ } else if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE) {
++ rtw8814ae_enable_rf_1_2v(rtwdev);
++
++ /* Force the antenna b to wifi. */
++ rtw_write8_set(rtwdev, REG_PAD_CTRL1, BIT(2));
++ rtw_write8_set(rtwdev, REG_PAD_CTRL1 + 1, BIT(0));
++ rtw_write8_set(rtwdev, REG_LED_CFG + 3,
++ (BIT(27) | BIT_DPDT_WL_SEL) >> 24);
++ }
++
++ return 0;
++}
++
++static void rtw8814a_set_rfe_reg_24g(struct rtw_dev *rtwdev)
++{
++ switch (rtwdev->efuse.rfe_option) {
++ case 2:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x72707270);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x72707270);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x72707270);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77707770);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x72);
++
++ break;
++ case 1:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77777777);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x77);
++
++ break;
++ case 0:
++ default:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
++ /* Is it not necessary to set REG_RFE_PINMUX_D ? */
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x77);
++
++ break;
++ }
++}
++
++static void rtw8814a_set_rfe_reg_5g(struct rtw_dev *rtwdev)
++{
++ switch (rtwdev->efuse.rfe_option) {
++ case 2:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x37173717);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x37173717);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x37173717);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77177717);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x37);
++
++ break;
++ case 1:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x33173317);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x33173317);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x33173317);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77177717);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x33);
++
++ break;
++ case 0:
++ default:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x54775477);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x54775477);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x54775477);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x54775477);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D,
++ BIT_RFE_SELSW0_D, 0x54);
++
++ break;
++ }
++}
++
++static void rtw8814a_set_channel_bb_swing(struct rtw_dev *rtwdev, u8 band)
++{
++ rtw_write32_mask(rtwdev, REG_TXSCALE_A, BB_SWING_MASK,
++ rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_A));
++ rtw_write32_mask(rtwdev, REG_TXSCALE_B, BB_SWING_MASK,
++ rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_B));
++ rtw_write32_mask(rtwdev, REG_TXSCALE_C, BB_SWING_MASK,
++ rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_C));
++ rtw_write32_mask(rtwdev, REG_TXSCALE_D, BB_SWING_MASK,
++ rtw8814a_get_bb_swing(rtwdev, band, RF_PATH_D));
++ rtw8814a_pwrtrack_init(rtwdev);
++}
++
++static void rtw8814a_set_bw_reg_adc(struct rtw_dev *rtwdev, u8 bw)
++{
++ u32 adc = 0;
++
++ if (bw == RTW_CHANNEL_WIDTH_20)
++ adc = 0;
++ else if (bw == RTW_CHANNEL_WIDTH_40)
++ adc = 1;
++ else if (bw == RTW_CHANNEL_WIDTH_80)
++ adc = 2;
++
++ rtw_write32_mask(rtwdev, REG_ADCCLK, BIT(1) | BIT(0), adc);
++}
++
++static void rtw8814a_set_bw_reg_agc(struct rtw_dev *rtwdev, u8 new_band, u8 bw)
++{
++ u32 agc = 7;
++
++ if (bw == RTW_CHANNEL_WIDTH_20) {
++ agc = 6;
++ } else if (bw == RTW_CHANNEL_WIDTH_40) {
++ if (new_band == RTW_BAND_5G)
++ agc = 8;
++ else
++ agc = 7;
++ } else if (bw == RTW_CHANNEL_WIDTH_80) {
++ agc = 3;
++ }
++
++ rtw_write32_mask(rtwdev, REG_CCASEL, 0xf000, agc);
++}
++
++static void rtw8814a_switch_band(struct rtw_dev *rtwdev, u8 new_band, u8 bw)
++{
++ /* Clear 0x1000[16], When this bit is set to 0, CCK and OFDM
++ * are disabled, and clock are gated. Otherwise, CCK and OFDM
++ * are enabled.
++ */
++ rtw_write8_clr(rtwdev, REG_SYS_CFG3_8814A + 2, BIT_FEN_BB_RSTB);
++
++ if (new_band == RTW_BAND_2G) {
++ rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 0);
++
++ rtw8814a_set_rfe_reg_24g(rtwdev);
++
++ rtw_write32_mask(rtwdev, REG_TXPSEL, 0xf0, 0x2);
++ rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0x5);
++
++ rtw_write32_mask(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST, 0x3);
++
++ rtw_write8(rtwdev, REG_CCK_CHECK, 0);
++
++ rtw_write32_mask(rtwdev, 0xa80, BIT(18), 0);
++ } else {
++ rtw_write8(rtwdev, REG_CCK_CHECK, BIT_CHECK_CCK_EN);
++
++ /* Enable CCK Tx function, even when CCK is off */
++ rtw_write32_mask(rtwdev, 0xa80, BIT(18), 1);
++
++ rtw8814a_set_rfe_reg_5g(rtwdev);
++
++ rtw_write32_mask(rtwdev, REG_TXPSEL, 0xf0, 0x0);
++ rtw_write32_mask(rtwdev, REG_CCK_RX, 0x0f000000, 0xf);
++
++ rtw_write32_mask(rtwdev, REG_RXPSEL, BIT_RX_PSEL_RST, 0x2);
++ }
++
++ rtw8814a_set_channel_bb_swing(rtwdev, new_band);
++
++ rtw8814a_set_bw_reg_adc(rtwdev, bw);
++ rtw8814a_set_bw_reg_agc(rtwdev, new_band, bw);
++
++ rtw_write8_set(rtwdev, REG_SYS_CFG3_8814A + 2, BIT_FEN_BB_RSTB);
++}
++
++static void rtw8814a_switch_channel(struct rtw_dev *rtwdev, u8 channel)
++{
++ struct rtw_hal *hal = &rtwdev->hal;
++ u32 fc_area, rf_mod_ag, cfgch;
++ u8 path;
++
++ switch (channel) {
++ case 36 ... 48:
++ fc_area = 0x494;
++ break;
++ case 50 ... 64:
++ fc_area = 0x453;
++ break;
++ case 100 ... 116:
++ fc_area = 0x452;
++ break;
++ default:
++ if (channel >= 118)
++ fc_area = 0x412;
++ else
++ fc_area = 0x96a;
++ break;
++ }
++
++ rtw_write32_mask(rtwdev, REG_CLKTRK, 0x1ffe0000, fc_area);
++
++ for (path = 0; path < hal->rf_path_num; path++) {
++ switch (channel) {
++ case 36 ... 64:
++ rf_mod_ag = 0x101;
++ break;
++ case 100 ... 140:
++ rf_mod_ag = 0x301;
++ break;
++ default:
++ if (channel > 140)
++ rf_mod_ag = 0x501;
++ else
++ rf_mod_ag = 0x000;
++ break;
++ }
++
++ cfgch = (rf_mod_ag << 8) | channel;
++
++ rtw_write_rf(rtwdev, path, RF_CFGCH,
++ RF18_RFSI_MASK | RF18_BAND_MASK | RF18_CHANNEL_MASK, cfgch);
++ }
++
++ switch (channel) {
++ case 36 ... 64:
++ rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 1);
++ break;
++ case 100 ... 144:
++ rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 2);
++ break;
++ default:
++ if (channel >= 149)
++ rtw_write32_mask(rtwdev, REG_AGC_TABLE, 0x1f, 3);
++
++ break;
++ }
++}
++
++static void rtw8814a_24g_cck_tx_dfir(struct rtw_dev *rtwdev, u8 channel)
++{
++ if (channel >= 1 && channel <= 11) {
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x090e1317);
++ rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000204);
++ } else if (channel >= 12 && channel <= 13) {
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x090e1217);
++ rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000305);
++ } else if (channel == 14) {
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER1, 0x1a1b0030);
++ rtw_write32(rtwdev, REG_CCK0_TX_FILTER2, 0x00000E17);
++ rtw_write32(rtwdev, REG_CCK0_DEBUG_PORT, 0x00000000);
++ }
++}
++
++static void rtw8814a_set_bw_reg_mac(struct rtw_dev *rtwdev, u8 bw)
++{
++ u16 val16 = rtw_read16(rtwdev, REG_WMAC_TRXPTCL_CTL);
++
++ val16 &= ~BIT_RFMOD;
++ if (bw == RTW_CHANNEL_WIDTH_80)
++ val16 |= BIT_RFMOD_80M;
++ else if (bw == RTW_CHANNEL_WIDTH_40)
++ val16 |= BIT_RFMOD_40M;
++
++ rtw_write16(rtwdev, REG_WMAC_TRXPTCL_CTL, val16);
++}
++
++static void rtw8814a_set_bw_rf(struct rtw_dev *rtwdev, u8 bw)
++{
++ u8 path;
++
++ for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++) {
++ switch (bw) {
++ case RTW_CHANNEL_WIDTH_5:
++ case RTW_CHANNEL_WIDTH_10:
++ case RTW_CHANNEL_WIDTH_20:
++ default:
++ rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 3);
++ break;
++ case RTW_CHANNEL_WIDTH_40:
++ rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 1);
++ break;
++ case RTW_CHANNEL_WIDTH_80:
++ rtw_write_rf(rtwdev, path, RF_CFGCH, RF18_BW_MASK, 0);
++ break;
++ }
++ }
++}
++
++static void rtw8814a_adc_clk(struct rtw_dev *rtwdev)
++{
++ static const u32 rxiqc_reg[2][4] = {
++ { REG_RX_IQC_AB_A, REG_RX_IQC_AB_B,
++ REG_RX_IQC_AB_C, REG_RX_IQC_AB_D },
++ { REG_RX_IQC_CD_A, REG_RX_IQC_CD_B,
++ REG_RX_IQC_CD_C, REG_RX_IQC_CD_D }
++ };
++ u32 bb_reg_8fc, bb_reg_808, rxiqc[4];
++ u32 i = 0, mac_active = 1;
++ u8 mac_reg_522;
++
++ if (rtwdev->hal.cut_version != RTW_CHIP_VER_CUT_A)
++ return;
++
++ /* 1 Step1. MAC TX pause */
++ mac_reg_522 = rtw_read8(rtwdev, REG_TXPAUSE);
++ bb_reg_8fc = rtw_read32(rtwdev, REG_DBGSEL);
++ bb_reg_808 = rtw_read32(rtwdev, REG_RXPSEL);
++ rtw_write8(rtwdev, REG_TXPAUSE, 0x3f);
++
++ /* 1 Step 2. Backup rxiqc & rxiqc = 0 */
++ for (i = 0; i < 4; i++) {
++ rxiqc[i] = rtw_read32(rtwdev, rxiqc_reg[0][i]);
++ rtw_write32(rtwdev, rxiqc_reg[0][i], 0x0);
++ rtw_write32(rtwdev, rxiqc_reg[1][i], 0x0);
++ }
++ rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_IQ_WGT, 0x3);
++ i = 0;
++
++ /* 1 Step 3. Monitor MAC IDLE */
++ rtw_write32(rtwdev, REG_DBGSEL, 0x0);
++ while (mac_active) {
++ mac_active = rtw_read32(rtwdev, REG_DBGRPT) & 0x803e0008;
++ i++;
++ if (i > 1000)
++ break;
++ }
++
++ /* 1 Step 4. ADC clk flow */
++ rtw_write8(rtwdev, REG_RXPSEL, 0x11);
++ rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x1);
++ rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2) | BIT(1), 0x3);
++ rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x1);
++
++ /* 0xc1c/0xe1c/0x181c/0x1a1c[4] must=1 to ensure table can be
++ * written when bbrstb=0
++ * 0xc60/0xe60/0x1860/0x1a60[15] always = 1 after this line
++ * 0xc60/0xe60/0x1860/0x1a60[14] always = 0 bcz its error in A-cut
++ */
++
++ /* power_off/clk_off @ anapar_state=idle mode */
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x15800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x01808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x15800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x01808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x15800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x01808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x15800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x01808003);
++
++ rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2), 0x0);
++ rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x0);
++ /* [19] = 1 to turn off ADC */
++ rtw_write32(rtwdev, REG_CK_MONHA, 0x0D080058);
++ rtw_write32(rtwdev, REG_CK_MONHB, 0x0D080058);
++ rtw_write32(rtwdev, REG_CK_MONHC, 0x0D080058);
++ rtw_write32(rtwdev, REG_CK_MONHD, 0x0D080058);
++
++ /* power_on/clk_off */
++ /* [19] = 0 to turn on ADC */
++ rtw_write32(rtwdev, REG_CK_MONHA, 0x0D000058);
++ rtw_write32(rtwdev, REG_CK_MONHB, 0x0D000058);
++ rtw_write32(rtwdev, REG_CK_MONHC, 0x0D000058);
++ rtw_write32(rtwdev, REG_CK_MONHD, 0x0D000058);
++
++ /* power_on/clk_on @ anapar_state=BT mode */
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05808032);
++ rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2), 0x1);
++ rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x1);
++
++ /* recover original setting @ anapar_state=BT mode */
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05808032);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05808032);
++
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x05800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x05800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x05800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x05800002);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x07808003);
++
++ rtw_write8_mask(rtwdev, REG_GNT_BT, BIT(2) | BIT(1), 0x0);
++ rtw_write32_mask(rtwdev, REG_CCK_RPT_FORMAT, BIT(2), 0x0);
++ rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x0);
++
++ /* 1 Step 5. Recover MAC TX & IQC */
++ rtw_write8(rtwdev, REG_TXPAUSE, mac_reg_522);
++ rtw_write32(rtwdev, REG_DBGSEL, bb_reg_8fc);
++ rtw_write32(rtwdev, REG_RXPSEL, bb_reg_808);
++ for (i = 0; i < 4; i++) {
++ rtw_write32(rtwdev, rxiqc_reg[0][i], rxiqc[i]);
++ rtw_write32(rtwdev, rxiqc_reg[1][i], 0x01000000);
++ }
++ rtw_write32_mask(rtwdev, REG_PRECTRL, BIT_IQ_WGT, 0x0);
++}
++
++static void rtw8814a_spur_calibration_ch140(struct rtw_dev *rtwdev, u8 channel)
++{
++ struct rtw_hal *hal = &rtwdev->hal;
++
++ /* Add for 8814AE module ch140 MP Rx */
++ if (channel == 140) {
++ if (hal->ch_param[0] == 0)
++ hal->ch_param[0] = rtw_read32(rtwdev, REG_CCASEL);
++ if (hal->ch_param[1] == 0)
++ hal->ch_param[1] = rtw_read32(rtwdev, REG_PDMFTH);
++
++ rtw_write32(rtwdev, REG_CCASEL, 0x75438170);
++ rtw_write32(rtwdev, REG_PDMFTH, 0x79a18a0a);
++ } else {
++ if (rtw_read32(rtwdev, REG_CCASEL) == 0x75438170 &&
++ hal->ch_param[0] != 0)
++ rtw_write32(rtwdev, REG_CCASEL, hal->ch_param[0]);
++
++ if (rtw_read32(rtwdev, REG_PDMFTH) == 0x79a18a0a &&
++ hal->ch_param[1] != 0)
++ rtw_write32(rtwdev, REG_PDMFTH, hal->ch_param[1]);
++
++ hal->ch_param[0] = rtw_read32(rtwdev, REG_CCASEL);
++ hal->ch_param[1] = rtw_read32(rtwdev, REG_PDMFTH);
++ }
++}
++
++static void rtw8814a_set_nbi_reg(struct rtw_dev *rtwdev, u32 tone_idx)
++{
++ /* tone_idx X 10 */
++ static const u32 nbi_128[] = {
++ 25, 55, 85, 115, 135,
++ 155, 185, 205, 225, 245,
++ 265, 285, 305, 335, 355,
++ 375, 395, 415, 435, 455,
++ 485, 505, 525, 555, 585, 615, 635
++ };
++ u32 reg_idx = 0;
++ u32 i;
++
++ for (i = 0; i < ARRAY_SIZE(nbi_128); i++) {
++ if (tone_idx < nbi_128[i]) {
++ reg_idx = i + 1;
++ break;
++ }
++ }
++
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING, 0xfc000, reg_idx);
++}
++
++static void rtw8814a_nbi_setting(struct rtw_dev *rtwdev, u32 ch, u32 f_intf)
++{
++ u32 fc, int_distance, tone_idx;
++
++ fc = 2412 + (ch - 1) * 5;
++ int_distance = abs_diff(fc, f_intf);
++
++ /* 10 * (int_distance / 0.3125) */
++ tone_idx = int_distance << 5;
++
++ rtw8814a_set_nbi_reg(rtwdev, tone_idx);
++
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING, BIT_NBI_ENABLE, 1);
++}
++
++static void rtw8814a_spur_nbi_setting(struct rtw_dev *rtwdev)
++{
++ u8 primary_channel = rtwdev->hal.primary_channel;
++ u8 rfe_type = rtwdev->efuse.rfe_option;
++
++ if (rfe_type != 0 && rfe_type != 1 && rfe_type != 6 && rfe_type != 7)
++ return;
++
++ if (primary_channel == 14)
++ rtw8814a_nbi_setting(rtwdev, primary_channel, 2480);
++ else if (primary_channel >= 4 && primary_channel <= 8)
++ rtw8814a_nbi_setting(rtwdev, primary_channel, 2440);
++ else
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING, BIT_NBI_ENABLE, 0);
++}
++
++/* A workaround to eliminate the 5280 MHz & 5600 MHz & 5760 MHz spur of 8814A */
++static void rtw8814a_spur_calibration(struct rtw_dev *rtwdev, u8 channel, u8 bw)
++{
++ u8 rfe_type = rtwdev->efuse.rfe_option;
++ bool reset_nbi_csi = true;
++
++ if (rfe_type == 0) {
++ switch (bw) {
++ case RTW_CHANNEL_WIDTH_40:
++ if (channel == 54 || channel == 118) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x3e >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++
++ reset_nbi_csi = false;
++ } else if (channel == 151) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x1e >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK0,
++ BIT(16), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++
++ reset_nbi_csi = false;
++ }
++ break;
++ case RTW_CHANNEL_WIDTH_80:
++ if (channel == 58 || channel == 122) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x3a >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
++ BIT(0), 1);
++
++ reset_nbi_csi = false;
++ } else if (channel == 155) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x5a >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK6,
++ BIT(16), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++
++ reset_nbi_csi = false;
++ }
++ break;
++ case RTW_CHANNEL_WIDTH_20:
++ if (channel == 153) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x1e >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
++ BIT(16), 1);
++
++ reset_nbi_csi = false;
++ }
++
++ rtw8814a_spur_calibration_ch140(rtwdev, channel);
++ break;
++ default:
++ break;
++ }
++ } else if (rfe_type == 1 || rfe_type == 2) {
++ switch (bw) {
++ case RTW_CHANNEL_WIDTH_20:
++ if (channel == 153) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x1E >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK7,
++ BIT(16), 1);
++
++ reset_nbi_csi = false;
++ }
++ break;
++ case RTW_CHANNEL_WIDTH_40:
++ if (channel == 151) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x1e >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK0,
++ BIT(16), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++
++ reset_nbi_csi = false;
++ }
++ break;
++ case RTW_CHANNEL_WIDTH_80:
++ if (channel == 155) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0x5a >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1,
++ BIT(0), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32_mask(rtwdev, REG_CSI_FIX_MASK6,
++ BIT(16), 1);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++
++ reset_nbi_csi = false;
++ }
++ break;
++ default:
++ break;
++ }
++ }
++
++ if (reset_nbi_csi) {
++ rtw_write32_mask(rtwdev, REG_NBI_SETTING,
++ 0x000fe000, 0xfc >> 1);
++ rtw_write32_mask(rtwdev, REG_CSI_MASK_SETTING1, BIT(0), 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK0, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK1, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK6, 0);
++ rtw_write32(rtwdev, REG_CSI_FIX_MASK7, 0);
++ }
++
++ rtw8814a_spur_nbi_setting(rtwdev);
++}
++
++static void rtw8814a_set_bw_mode(struct rtw_dev *rtwdev, u8 new_band,
++ u8 channel, u8 bw, u8 primary_chan_idx)
++{
++ u8 txsc40 = 0, txsc20, txsc;
++
++ rtw8814a_set_bw_reg_mac(rtwdev, bw);
++
++ txsc20 = primary_chan_idx;
++ if (bw == RTW_CHANNEL_WIDTH_80) {
++ if (txsc20 == RTW_SC_20_UPPER || txsc20 == RTW_SC_20_UPMOST)
++ txsc40 = RTW_SC_40_UPPER;
++ else
++ txsc40 = RTW_SC_40_LOWER;
++ }
++
++ txsc = BIT_TXSC_20M(txsc20) | BIT_TXSC_40M(txsc40);
++ rtw_write8(rtwdev, REG_DATA_SC, txsc);
++
++ rtw8814a_set_bw_reg_adc(rtwdev, bw);
++ rtw8814a_set_bw_reg_agc(rtwdev, new_band, bw);
++
++ if (bw == RTW_CHANNEL_WIDTH_80) {
++ rtw_write32_mask(rtwdev, REG_ADCCLK, 0x3c, txsc);
++ } else if (bw == RTW_CHANNEL_WIDTH_40) {
++ rtw_write32_mask(rtwdev, REG_ADCCLK, 0x3c, txsc);
++
++ if (txsc == RTW_SC_20_UPPER)
++ rtw_write32_set(rtwdev, REG_RXSB, BIT(4));
++ else
++ rtw_write32_clr(rtwdev, REG_RXSB, BIT(4));
++ }
++
++ rtw8814a_set_bw_rf(rtwdev, bw);
++
++ rtw8814a_adc_clk(rtwdev);
++
++ rtw8814a_spur_calibration(rtwdev, channel, bw);
++}
++
++static void rtw8814a_set_channel(struct rtw_dev *rtwdev, u8 channel, u8 bw,
++ u8 primary_chan_idx)
++{
++ u8 old_band, new_band;
++
++ if (rtw_read8(rtwdev, REG_CCK_CHECK) & BIT_CHECK_CCK_EN)
++ old_band = RTW_BAND_5G;
++ else
++ old_band = RTW_BAND_2G;
++
++ if (channel > 14)
++ new_band = RTW_BAND_5G;
++ else
++ new_band = RTW_BAND_2G;
++
++ if (new_band != old_band)
++ rtw8814a_switch_band(rtwdev, new_band, bw);
++
++ rtw8814a_switch_channel(rtwdev, channel);
++
++ rtw8814a_24g_cck_tx_dfir(rtwdev, channel);
++
++ rtw8814a_set_bw_mode(rtwdev, new_band, channel, bw, primary_chan_idx);
++}
++
++static s8 rtw8814a_cck_rx_pwr(u8 lna_idx, u8 vga_idx)
++{
++ s8 rx_pwr_all = 0;
++
++ switch (lna_idx) {
++ case 7:
++ rx_pwr_all = -38 - 2 * vga_idx;
++ break;
++ case 5:
++ rx_pwr_all = -28 - 2 * vga_idx;
++ break;
++ case 3:
++ rx_pwr_all = -8 - 2 * vga_idx;
++ break;
++ case 2:
++ rx_pwr_all = -1 - 2 * vga_idx;
++ break;
++ default:
++ break;
++ }
++
++ return rx_pwr_all;
++}
++
++static void rtw8814a_query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status,
++ struct rtw_rx_pkt_stat *pkt_stat)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ struct rtw_jaguar_phy_status_rpt *rpt;
++ u8 gain[RTW_RF_PATH_MAX], rssi, i;
++ s8 rx_pwr_db, middle1, middle2;
++ s8 snr[RTW_RF_PATH_MAX];
++ s8 evm[RTW_RF_PATH_MAX];
++ u8 rfmode, subchannel;
++ u8 lna, vga;
++ s8 cfo[2];
++
++ rpt = (struct rtw_jaguar_phy_status_rpt *)phy_status;
++
++ pkt_stat->bw = RTW_CHANNEL_WIDTH_20;
++
++ if (pkt_stat->rate <= DESC_RATE11M) {
++ lna = le32_get_bits(rpt->w1, RTW_JGRPHY_W1_AGC_RPT_LNA_IDX);
++ vga = le32_get_bits(rpt->w1, RTW_JGRPHY_W1_AGC_RPT_VGA_IDX);
++
++ rx_pwr_db = rtw8814a_cck_rx_pwr(lna, vga);
++
++ pkt_stat->rx_power[RF_PATH_A] = rx_pwr_db;
++ pkt_stat->rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power, 1);
++ dm_info->rssi[RF_PATH_A] = pkt_stat->rssi;
++ pkt_stat->signal_power = rx_pwr_db;
++ } else { /* OFDM rate */
++ gain[RF_PATH_A] = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_GAIN_A);
++ gain[RF_PATH_B] = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_GAIN_B);
++ gain[RF_PATH_C] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_GAIN_C);
++ gain[RF_PATH_D] = le32_get_bits(rpt->w6, RTW_JGRPHY_W6_GAIN_D);
++
++ snr[RF_PATH_A] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXSNR_A);
++ snr[RF_PATH_B] = le32_get_bits(rpt->w4, RTW_JGRPHY_W4_RXSNR_B);
++ snr[RF_PATH_C] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXSNR_C);
++ snr[RF_PATH_D] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXSNR_D);
++
++ evm[RF_PATH_A] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXEVM_1);
++ evm[RF_PATH_B] = le32_get_bits(rpt->w3, RTW_JGRPHY_W3_RXEVM_2);
++ evm[RF_PATH_C] = le32_get_bits(rpt->w4, RTW_JGRPHY_W4_RXEVM_3);
++ evm[RF_PATH_D] = le32_get_bits(rpt->w5, RTW_JGRPHY_W5_RXEVM_4);
++
++ if (pkt_stat->rate <= DESC_RATE54M)
++ evm[RF_PATH_A] = le32_get_bits(rpt->w6,
++ RTW_JGRPHY_W6_SIGEVM);
++
++ for (i = RF_PATH_A; i < RTW_RF_PATH_MAX; i++) {
++ pkt_stat->rx_power[i] = gain[i] - 110;
++
++ rssi = rtw_phy_rf_power_2_rssi(&pkt_stat->rx_power[i], 1);
++ dm_info->rssi[i] = rssi;
++
++ pkt_stat->rx_snr[i] = snr[i];
++ dm_info->rx_snr[i] = snr[i] >> 1;
++
++ pkt_stat->rx_evm[i] = evm[i];
++ evm[i] = max_t(s8, -127, evm[i]);
++ dm_info->rx_evm_dbm[i] = abs(evm[i]) >> 1;
++ }
++
++ rssi = rtw_phy_rf_power_2_rssi(pkt_stat->rx_power,
++ RTW_RF_PATH_MAX);
++ pkt_stat->rssi = rssi;
++
++ /* When power saving is enabled the hardware sometimes
++ * reports unbelievably high gain for paths A and C
++ * (e.g. one frame 64 68 68 72, the next frame 106 66 88 72,
++ * the next 66 66 68 72), so use the second lowest gain
++ * instead of the highest.
++ */
++ middle1 = max(min(gain[RF_PATH_A], gain[RF_PATH_B]),
++ min(gain[RF_PATH_C], gain[RF_PATH_D]));
++ middle2 = min(max(gain[RF_PATH_A], gain[RF_PATH_B]),
++ max(gain[RF_PATH_C], gain[RF_PATH_D]));
++ rx_pwr_db = min(middle1, middle2);
++ rx_pwr_db -= 110;
++ pkt_stat->signal_power = rx_pwr_db;
++
++ rfmode = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_R_RFMOD);
++ subchannel = le32_get_bits(rpt->w0, RTW_JGRPHY_W0_SUB_CHNL);
++
++ if (rfmode == 1 && subchannel == 0) {
++ pkt_stat->bw = RTW_CHANNEL_WIDTH_40;
++ } else if (rfmode == 2) {
++ if (subchannel == 0)
++ pkt_stat->bw = RTW_CHANNEL_WIDTH_80;
++ else if (subchannel == 9 || subchannel == 10)
++ pkt_stat->bw = RTW_CHANNEL_WIDTH_40;
++ }
++
++ cfo[RF_PATH_A] = le32_get_bits(rpt->w2, RTW_JGRPHY_W2_CFO_TAIL_A);
++ cfo[RF_PATH_B] = le32_get_bits(rpt->w2, RTW_JGRPHY_W2_CFO_TAIL_B);
++
++ for (i = RF_PATH_A; i < 2; i++) {
++ pkt_stat->cfo_tail[i] = cfo[i];
++ dm_info->cfo_tail[i] = (cfo[i] * 5) >> 1;
++ }
++ }
++}
++
++static void
++rtw8814a_set_tx_power_index_by_rate(struct rtw_dev *rtwdev, u8 path, u8 rs)
++{
++ struct rtw_hal *hal = &rtwdev->hal;
++ u32 txagc_table_wd;
++ u8 rate, pwr_index;
++ int j;
++
++ for (j = 0; j < rtw_rate_size[rs]; j++) {
++ rate = rtw_rate_section[rs][j];
++
++ pwr_index = hal->tx_pwr_tbl[path][rate] + 2;
++ if (pwr_index > rtwdev->chip->max_power_index)
++ pwr_index = rtwdev->chip->max_power_index;
++
++ txagc_table_wd = 0x00801000;
++ txagc_table_wd |= (pwr_index << 24) | (path << 8) | rate;
++
++ rtw_write32(rtwdev, REG_AGC_TBL, txagc_table_wd);
++
++ /* first time to turn on the txagc table
++ * second to write the addr0
++ */
++ if (rate == DESC_RATE1M)
++ rtw_write32(rtwdev, REG_AGC_TBL, txagc_table_wd);
++ }
++}
++
++static void rtw8814a_set_tx_power_index(struct rtw_dev *rtwdev)
++{
++ struct rtw_hal *hal = &rtwdev->hal;
++ int path;
++
++ for (path = 0; path < hal->rf_path_num; path++) {
++ if (hal->current_band_type == RTW_BAND_2G)
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_CCK);
++
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_OFDM);
++
++ if (test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
++ continue;
++
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_HT_1S);
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_VHT_1S);
++
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_HT_2S);
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_VHT_2S);
++
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_HT_3S);
++ rtw8814a_set_tx_power_index_by_rate(rtwdev, path,
++ RTW_RATE_SECTION_VHT_3S);
++ }
++}
++
++static void rtw8814a_cfg_ldo25(struct rtw_dev *rtwdev, bool enable)
++{
++}
++
++static void rtw8814a_false_alarm_statistics(struct rtw_dev *rtwdev)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ u32 cck_fa_cnt, ofdm_fa_cnt;
++ u32 crc32_cnt, cca32_cnt;
++ u32 cck_enable;
++
++ cck_enable = rtw_read32(rtwdev, REG_RXPSEL) & BIT(28);
++ cck_fa_cnt = rtw_read16(rtwdev, REG_FA_CCK);
++ ofdm_fa_cnt = rtw_read16(rtwdev, REG_FA_OFDM);
++
++ dm_info->cck_fa_cnt = cck_fa_cnt;
++ dm_info->ofdm_fa_cnt = ofdm_fa_cnt;
++ dm_info->total_fa_cnt = ofdm_fa_cnt;
++ if (cck_enable)
++ dm_info->total_fa_cnt += cck_fa_cnt;
++
++ crc32_cnt = rtw_read32(rtwdev, REG_CRC_CCK);
++ dm_info->cck_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
++ dm_info->cck_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
++
++ crc32_cnt = rtw_read32(rtwdev, REG_CRC_OFDM);
++ dm_info->ofdm_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
++ dm_info->ofdm_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
++
++ crc32_cnt = rtw_read32(rtwdev, REG_CRC_HT);
++ dm_info->ht_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
++ dm_info->ht_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
++
++ crc32_cnt = rtw_read32(rtwdev, REG_CRC_VHT);
++ dm_info->vht_ok_cnt = u32_get_bits(crc32_cnt, MASKLWORD);
++ dm_info->vht_err_cnt = u32_get_bits(crc32_cnt, MASKHWORD);
++
++ cca32_cnt = rtw_read32(rtwdev, REG_CCA_OFDM);
++ dm_info->ofdm_cca_cnt = u32_get_bits(cca32_cnt, MASKHWORD);
++ dm_info->total_cca_cnt = dm_info->ofdm_cca_cnt;
++ if (cck_enable) {
++ cca32_cnt = rtw_read32(rtwdev, REG_CCA_CCK);
++ dm_info->cck_cca_cnt = u32_get_bits(cca32_cnt, MASKLWORD);
++ dm_info->total_cca_cnt += dm_info->cck_cca_cnt;
++ }
++
++ rtw_write32_set(rtwdev, REG_FAS, BIT(17));
++ rtw_write32_clr(rtwdev, REG_FAS, BIT(17));
++ rtw_write32_clr(rtwdev, REG_CCK0_FAREPORT, BIT(15));
++ rtw_write32_set(rtwdev, REG_CCK0_FAREPORT, BIT(15));
++ rtw_write32_set(rtwdev, REG_CNTRST, BIT(0));
++ rtw_write32_clr(rtwdev, REG_CNTRST, BIT(0));
++}
++
++#define MAC_REG_NUM_8814 2
++#define BB_REG_NUM_8814 14
++#define RF_REG_NUM_8814 1
++
++static void rtw8814a_iqk_backup_mac_bb(struct rtw_dev *rtwdev,
++ u32 *mac_backup, u32 *bb_backup,
++ const u32 *mac_regs,
++ const u32 *bb_regs)
++{
++ u32 i;
++
++ /* save MACBB default value */
++ for (i = 0; i < MAC_REG_NUM_8814; i++)
++ mac_backup[i] = rtw_read32(rtwdev, mac_regs[i]);
++
++ for (i = 0; i < BB_REG_NUM_8814; i++)
++ bb_backup[i] = rtw_read32(rtwdev, bb_regs[i]);
++}
++
++static void rtw8814a_iqk_backup_rf(struct rtw_dev *rtwdev,
++ u32 rf_backup[][4], const u32 *rf_regs)
++{
++ u32 i;
++
++ /* Save RF Parameters */
++ for (i = 0; i < RF_REG_NUM_8814; i++) {
++ rf_backup[i][RF_PATH_A] = rtw_read_rf(rtwdev, RF_PATH_A,
++ rf_regs[i], RFREG_MASK);
++ rf_backup[i][RF_PATH_B] = rtw_read_rf(rtwdev, RF_PATH_B,
++ rf_regs[i], RFREG_MASK);
++ rf_backup[i][RF_PATH_C] = rtw_read_rf(rtwdev, RF_PATH_C,
++ rf_regs[i], RFREG_MASK);
++ rf_backup[i][RF_PATH_D] = rtw_read_rf(rtwdev, RF_PATH_D,
++ rf_regs[i], RFREG_MASK);
++ }
++}
++
++static void rtw8814a_iqk_afe_setting(struct rtw_dev *rtwdev, bool do_iqk)
++{
++ if (do_iqk) {
++ /* IQK AFE setting RX_WAIT_CCA mode */
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x0e808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x0e808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x0e808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x0e808003);
++ } else {
++ rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_B, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_C, 0x07808003);
++ rtw_write32(rtwdev, REG_AFE_PWR1_D, 0x07808003);
++ }
++
++ rtw_write32_mask(rtwdev, REG_DAC_RSTB, BIT(13), 0x1);
++
++ rtw_write8_set(rtwdev, REG_GNT_BT, BIT(2) | BIT(1));
++ rtw_write8_clr(rtwdev, REG_GNT_BT, BIT(2) | BIT(1));
++
++ rtw_write32_set(rtwdev, REG_CCK_RPT_FORMAT, BIT(2));
++ rtw_write32_clr(rtwdev, REG_CCK_RPT_FORMAT, BIT(2));
++}
++
++static void rtw8814a_iqk_restore_mac_bb(struct rtw_dev *rtwdev,
++ u32 *mac_backup, u32 *bb_backup,
++ const u32 *mac_regs,
++ const u32 *bb_regs)
++{
++ u32 i;
++
++ /* Reload MacBB Parameters */
++ for (i = 0; i < MAC_REG_NUM_8814; i++)
++ rtw_write32(rtwdev, mac_regs[i], mac_backup[i]);
++
++ for (i = 0; i < BB_REG_NUM_8814; i++)
++ rtw_write32(rtwdev, bb_regs[i], bb_backup[i]);
++}
++
++static void rtw8814a_iqk_restore_rf(struct rtw_dev *rtwdev,
++ const u32 rf_backup[][4],
++ const u32 *rf_regs)
++{
++ u32 i;
++
++ rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x0);
++ rtw_write_rf(rtwdev, RF_PATH_B, RF_LUTWE, RFREG_MASK, 0x0);
++ rtw_write_rf(rtwdev, RF_PATH_C, RF_LUTWE, RFREG_MASK, 0x0);
++ rtw_write_rf(rtwdev, RF_PATH_D, RF_LUTWE, RFREG_MASK, 0x0);
++
++ rtw_write_rf(rtwdev, RF_PATH_A, RF_RXBB2, RFREG_MASK, 0x88001);
++ rtw_write_rf(rtwdev, RF_PATH_B, RF_RXBB2, RFREG_MASK, 0x88001);
++ rtw_write_rf(rtwdev, RF_PATH_C, RF_RXBB2, RFREG_MASK, 0x88001);
++ rtw_write_rf(rtwdev, RF_PATH_D, RF_RXBB2, RFREG_MASK, 0x88001);
++
++ for (i = 0; i < RF_REG_NUM_8814; i++) {
++ rtw_write_rf(rtwdev, RF_PATH_A, rf_regs[i],
++ RFREG_MASK, rf_backup[i][RF_PATH_A]);
++ rtw_write_rf(rtwdev, RF_PATH_B, rf_regs[i],
++ RFREG_MASK, rf_backup[i][RF_PATH_B]);
++ rtw_write_rf(rtwdev, RF_PATH_C, rf_regs[i],
++ RFREG_MASK, rf_backup[i][RF_PATH_C]);
++ rtw_write_rf(rtwdev, RF_PATH_D, rf_regs[i],
++ RFREG_MASK, rf_backup[i][RF_PATH_D]);
++ }
++}
++
++static void rtw8814a_iqk_reset_nctl(struct rtw_dev *rtwdev)
++{
++ rtw_write32(rtwdev, 0x1b00, 0xf8000000);
++ rtw_write32(rtwdev, 0x1b80, 0x00000006);
++
++ rtw_write32(rtwdev, 0x1b00, 0xf8000000);
++ rtw_write32(rtwdev, 0x1b80, 0x00000002);
++}
++
++static void rtw8814a_iqk_configure_mac(struct rtw_dev *rtwdev)
++{
++ rtw_write8(rtwdev, REG_TXPAUSE, 0x3f);
++ rtw_write32_clr(rtwdev, REG_BCN_CTRL,
++ (BIT_EN_BCN_FUNCTION << 8) | BIT_EN_BCN_FUNCTION);
++
++ /* RX ante off */
++ rtw_write8(rtwdev, REG_RXPSEL, 0x00);
++ /* CCA off */
++ rtw_write32_mask(rtwdev, REG_CCA2ND, 0xf, 0xe);
++ /* CCK RX path off */
++ rtw_write32_set(rtwdev, REG_PRECTRL, BIT_IQ_WGT);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_A, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C, 0x77777777);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D, 0x77777777);
++ rtw_write32_mask(rtwdev, REG_RFE_INVSEL_D, BIT_RFE_SELSW0_D, 0x77);
++ rtw_write32_mask(rtwdev, REG_PSD, BIT_PSD_INI, 0x0);
++
++ rtw_write32_mask(rtwdev, REG_RFE_INV0, 0xf, 0x0);
++}
++
++static void rtw8814a_lok_one_shot(struct rtw_dev *rtwdev, u8 path)
++{
++ u32 lok_temp1, lok_temp2;
++ bool lok_ready;
++ u8 ii;
++
++ /* ADC Clock source */
++ rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
++ /* LOK: CMD ID = 0
++ * {0xf8000011, 0xf8000021, 0xf8000041, 0xf8000081}
++ */
++ rtw_write32(rtwdev, 0x1b00, 0xf8000001 | (BIT(path) << 4));
++
++ usleep_range(1000, 1100);
++
++ if (read_poll_timeout(!rtw_read32_mask, lok_ready, lok_ready,
++ 1000, 10000, false,
++ rtwdev, 0x1b00, BIT(0))) {
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "==>S%d LOK timed out\n", path);
++
++ rtw8814a_iqk_reset_nctl(rtwdev);
++
++ rtw_write_rf(rtwdev, path, RF_DTXLOK, RFREG_MASK, 0x08400);
++
++ return;
++ }
++
++ rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
++ rtw_write32(rtwdev, 0x1bd4, 0x003f0001);
++
++ lok_temp2 = rtw_read32_mask(rtwdev, 0x1bfc, 0x003e0000);
++ lok_temp2 = (lok_temp2 + 0x10) & 0x1f;
++
++ lok_temp1 = rtw_read32_mask(rtwdev, 0x1bfc, 0x0000003e);
++ lok_temp1 = (lok_temp1 + 0x10) & 0x1f;
++
++ for (ii = 1; ii < 5; ii++) {
++ lok_temp1 += (lok_temp1 & BIT(4 - ii)) << (ii * 2);
++ lok_temp2 += (lok_temp2 & BIT(4 - ii)) << (ii * 2);
++ }
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK,
++ "path %d lok_temp1 = %#x, lok_temp2 = %#x\n",
++ path, lok_temp1 >> 4, lok_temp2 >> 4);
++
++ rtw_write_rf(rtwdev, path, RF_DTXLOK, 0x07c00, lok_temp1 >> 4);
++ rtw_write_rf(rtwdev, path, RF_DTXLOK, 0xf8000, lok_temp2 >> 4);
++}
++
++static void rtw8814a_iqk_tx_one_shot(struct rtw_dev *rtwdev, u8 path,
++ u32 *tx_matrix, bool *tx_ok)
++{
++ u8 bw = rtwdev->hal.current_band_width;
++ u8 cal_retry;
++ u32 iqk_cmd;
++
++ for (cal_retry = 0; cal_retry < 4; cal_retry++) {
++ rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
++
++ iqk_cmd = 0xf8000001 | ((bw + 3) << 8) | (BIT(path) << 4);
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "TXK_Trigger = %#x\n", iqk_cmd);
++
++ rtw_write32(rtwdev, 0x1b00, iqk_cmd);
++
++ usleep_range(10000, 11000);
++
++ if (read_poll_timeout(!rtw_read32_mask, *tx_ok, *tx_ok,
++ 1000, 20000, false,
++ rtwdev, 0x1b00, BIT(0))) {
++ rtw_dbg(rtwdev, RTW_DBG_RFK,
++ "tx iqk S%d timed out\n", path);
++
++ rtw8814a_iqk_reset_nctl(rtwdev);
++ } else {
++ *tx_ok = !rtw_read32_mask(rtwdev, 0x1b08, BIT(26));
++
++ if (*tx_ok)
++ break;
++ }
++ }
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> 0x1b00 = 0x%x\n",
++ path, rtw_read32(rtwdev, 0x1b00));
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> 0x1b08 = 0x%x\n",
++ path, rtw_read32(rtwdev, 0x1b08));
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d tx ==> cal_retry = %x\n",
++ path, cal_retry);
++
++ rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
++
++ if (*tx_ok) {
++ *tx_matrix = rtw_read32(rtwdev, 0x1b38);
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d_IQC = 0x%x\n",
++ path, *tx_matrix);
++ }
++}
++
++static void rtw8814a_iqk_rx_one_shot(struct rtw_dev *rtwdev, u8 path,
++ u32 *tx_matrix, bool *tx_ok)
++{
++ static const u16 iqk_apply[RTW_RF_PATH_MAX] = {
++ REG_TXAGCIDX, REG_TX_AGC_B, REG_TX_AGC_C, REG_TX_AGC_D
++ };
++ u8 band = rtwdev->hal.current_band_type;
++ u8 bw = rtwdev->hal.current_band_width;
++ u32 rx_matrix;
++ u8 cal_retry;
++ u32 iqk_cmd;
++ bool rx_ok;
++
++ for (cal_retry = 0; cal_retry < 4; cal_retry++) {
++ rtw_write32_mask(rtwdev, REG_FAS, BIT(21) | BIT(20), path);
++
++ if (band == RTW_BAND_2G) {
++ rtw_write_rf(rtwdev, path, RF_LUTDBG, BIT(11), 0x1);
++ rtw_write_rf(rtwdev, path, RF_GAINTX, 0xfffff, 0x51ce1);
++
++ switch (path) {
++ case 0:
++ case 1:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_B,
++ 0x54775477);
++ break;
++ case 2:
++ rtw_write32(rtwdev, REG_RFE_PINMUX_C,
++ 0x54775477);
++ break;
++ case 3:
++ rtw_write32(rtwdev, REG_RFE_INVSEL_D, 0x75400000);
++ rtw_write32(rtwdev, REG_RFE_PINMUX_D,
++ 0x77777777);
++ break;
++ }
++ }
++
++ iqk_cmd = 0xf8000001 | ((9 - bw) << 8) | (BIT(path) << 4);
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "RXK_Trigger = 0x%x\n", iqk_cmd);
++
++ rtw_write32(rtwdev, 0x1b00, iqk_cmd);
++
++ usleep_range(10000, 11000);
++
++ if (read_poll_timeout(!rtw_read32_mask, rx_ok, rx_ok,
++ 1000, 20000, false,
++ rtwdev, 0x1b00, BIT(0))) {
++ rtw_dbg(rtwdev, RTW_DBG_RFK,
++ "rx iqk S%d timed out\n", path);
++
++ rtw8814a_iqk_reset_nctl(rtwdev);
++ } else {
++ rx_ok = !rtw_read32_mask(rtwdev, 0x1b08, BIT(26));
++
++ if (rx_ok)
++ break;
++ }
++ }
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> 0x1b00 = 0x%x\n",
++ path, rtw_read32(rtwdev, 0x1b00));
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> 0x1b08 = 0x%x\n",
++ path, rtw_read32(rtwdev, 0x1b08));
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d rx ==> cal_retry = %x\n",
++ path, cal_retry);
++
++ rtw_write32(rtwdev, 0x1b00, 0xf8000000 | (path << 1));
++
++ if (rx_ok) {
++ rtw_write32(rtwdev, 0x1b3c, 0x20000000);
++ rx_matrix = rtw_read32(rtwdev, 0x1b3c);
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "S%d_IQC = 0x%x\n",
++ path, rx_matrix);
++ }
++
++ if (*tx_ok)
++ rtw_write32(rtwdev, 0x1b38, *tx_matrix);
++ else
++ rtw_write32_mask(rtwdev, iqk_apply[path], BIT(0), 0x0);
++
++ if (!rx_ok)
++ rtw_write32_mask(rtwdev, iqk_apply[path],
++ BIT(11) | BIT(10), 0x0);
++
++ if (band == RTW_BAND_2G)
++ rtw_write_rf(rtwdev, path, RF_LUTDBG, BIT(11), 0x0);
++}
++
++static void rtw8814a_iqk(struct rtw_dev *rtwdev)
++{
++ u8 band = rtwdev->hal.current_band_type;
++ u8 bw = rtwdev->hal.current_band_width;
++ u32 tx_matrix[RTW_RF_PATH_MAX];
++ bool tx_ok[RTW_RF_PATH_MAX];
++ u8 path;
++
++ rtw_dbg(rtwdev, RTW_DBG_RFK, "IQK band = %d GHz bw = %d MHz\n",
++ band == RTW_BAND_2G ? 2 : 5, (1 << (bw + 1)) * 10);
++
++ rtw_write_rf(rtwdev, RF_PATH_A, RF_TXMOD, BIT(19), 0x1);
++ rtw_write_rf(rtwdev, RF_PATH_B, RF_TXMOD, BIT(19), 0x1);
++ rtw_write_rf(rtwdev, RF_PATH_C, RF_TXMOD, BIT(19), 0x1);
++ rtw_write_rf(rtwdev, RF_PATH_D, RF_TXMOD, BIT(19), 0x1);
++
++ rtw_write32_mask(rtwdev, REG_TXAGCIDX,
++ (BIT(11) | BIT(10) | BIT(0)), 0x401);
++ rtw_write32_mask(rtwdev, REG_TX_AGC_B,
++ (BIT(11) | BIT(10) | BIT(0)), 0x401);
++ rtw_write32_mask(rtwdev, REG_TX_AGC_C,
++ (BIT(11) | BIT(10) | BIT(0)), 0x401);
++ rtw_write32_mask(rtwdev, REG_TX_AGC_D,
++ (BIT(11) | BIT(10) | BIT(0)), 0x401);
++
++ if (band == RTW_BAND_5G)
++ rtw_write32(rtwdev, 0x1b00, 0xf8000ff1);
++ else
++ rtw_write32(rtwdev, 0x1b00, 0xf8000ef1);
++
++ usleep_range(1000, 1100);
++
++ rtw_write32(rtwdev, 0x810, 0x20101063);
++ rtw_write32(rtwdev, REG_DAC_RSTB, 0x0B00C000);
++
++ for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
++ rtw8814a_lok_one_shot(rtwdev, path);
++
++ for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
++ rtw8814a_iqk_tx_one_shot(rtwdev, path,
++ &tx_matrix[path], &tx_ok[path]);
++
++ for (path = RF_PATH_A; path < RTW_RF_PATH_MAX; path++)
++ rtw8814a_iqk_rx_one_shot(rtwdev, path,
++ &tx_matrix[path], &tx_ok[path]);
++}
++
++static void rtw8814a_do_iqk(struct rtw_dev *rtwdev)
++{
++ static const u32 backup_mac_reg[MAC_REG_NUM_8814] = {0x520, 0x550};
++ static const u32 backup_bb_reg[BB_REG_NUM_8814] = {
++ 0xa14, 0x808, 0x838, 0x90c, 0x810, 0xcb0, 0xeb0,
++ 0x18b4, 0x1ab4, 0x1abc, 0x9a4, 0x764, 0xcbc, 0x910
++ };
++ static const u32 backup_rf_reg[RF_REG_NUM_8814] = {0x0};
++ u32 rf_backup[RF_REG_NUM_8814][RTW_RF_PATH_MAX];
++ u32 mac_backup[MAC_REG_NUM_8814];
++ u32 bb_backup[BB_REG_NUM_8814];
++
++ rtw8814a_iqk_backup_mac_bb(rtwdev, mac_backup, bb_backup,
++ backup_mac_reg, backup_bb_reg);
++ rtw8814a_iqk_afe_setting(rtwdev, true);
++ rtw8814a_iqk_backup_rf(rtwdev, rf_backup, backup_rf_reg);
++ rtw8814a_iqk_configure_mac(rtwdev);
++ rtw8814a_iqk(rtwdev);
++ rtw8814a_iqk_reset_nctl(rtwdev); /* for 3-wire to BB use */
++ rtw8814a_iqk_afe_setting(rtwdev, false);
++ rtw8814a_iqk_restore_mac_bb(rtwdev, mac_backup, bb_backup,
++ backup_mac_reg, backup_bb_reg);
++ rtw8814a_iqk_restore_rf(rtwdev, rf_backup, backup_rf_reg);
++}
++
++static void rtw8814a_phy_calibration(struct rtw_dev *rtwdev)
++{
++ rtw8814a_do_iqk(rtwdev);
++}
++
++static void rtw8814a_coex_cfg_init(struct rtw_dev *rtwdev)
++{
++}
++
++static void rtw8814a_coex_cfg_ant_switch(struct rtw_dev *rtwdev, u8 ctrl_type,
++ u8 pos_type)
++{
++ /* Override rtw_coex_coex_ctrl_owner(). RF path C does not
++ * function when BIT_LTE_MUX_CTRL_PATH is set.
++ */
++ rtw_write8_clr(rtwdev, REG_SYS_SDIO_CTRL + 3,
++ BIT_LTE_MUX_CTRL_PATH >> 24);
++}
++
++static void rtw8814a_coex_cfg_gnt_fix(struct rtw_dev *rtwdev)
++{
++}
++
++static void rtw8814a_coex_cfg_gnt_debug(struct rtw_dev *rtwdev)
++{
++}
++
++static void rtw8814a_coex_cfg_rfe_type(struct rtw_dev *rtwdev)
++{
++ struct rtw_coex *coex = &rtwdev->coex;
++ struct rtw_coex_rfe *coex_rfe = &coex->rfe;
++
++ /* Only needed to make rtw8814a_coex_cfg_ant_switch() run. */
++ coex_rfe->ant_switch_exist = true;
++}
++
++static void rtw8814a_coex_cfg_wl_tx_power(struct rtw_dev *rtwdev, u8 wl_pwr)
++{
++}
++
++static void rtw8814a_coex_cfg_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain)
++{
++}
++
++static void rtw8814a_txagc_swing_offset(struct rtw_dev *rtwdev, u8 path,
++ u8 tx_pwr_idx_offset,
++ s8 *txagc_idx, u8 *swing_idx)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ u8 swing_upper_bound = dm_info->default_ofdm_index + 10;
++ s8 delta_pwr_idx = dm_info->delta_power_index[path];
++ u8 swing_index = dm_info->default_ofdm_index;
++ u8 max_tx_pwr_idx_offset = 0xf;
++ u8 swing_lower_bound = 0;
++ s8 agc_index = 0;
++
++ tx_pwr_idx_offset = min_t(u8, tx_pwr_idx_offset, max_tx_pwr_idx_offset);
++
++ if (delta_pwr_idx >= 0) {
++ if (delta_pwr_idx <= tx_pwr_idx_offset) {
++ agc_index = delta_pwr_idx;
++ swing_index = dm_info->default_ofdm_index;
++ } else if (delta_pwr_idx > tx_pwr_idx_offset) {
++ agc_index = tx_pwr_idx_offset;
++ swing_index = dm_info->default_ofdm_index +
++ delta_pwr_idx - tx_pwr_idx_offset;
++ swing_index = min_t(u8, swing_index, swing_upper_bound);
++ }
++ } else {
++ if (dm_info->default_ofdm_index > abs(delta_pwr_idx))
++ swing_index =
++ dm_info->default_ofdm_index + delta_pwr_idx;
++ else
++ swing_index = swing_lower_bound;
++ swing_index = max_t(u8, swing_index, swing_lower_bound);
++
++ agc_index = 0;
++ }
++
++ if (swing_index >= RTW_TXSCALE_SIZE) {
++ rtw_warn(rtwdev, "swing index overflow\n");
++ swing_index = RTW_TXSCALE_SIZE - 1;
++ }
++ *txagc_idx = agc_index;
++ *swing_idx = swing_index;
++}
++
++static void rtw8814a_pwrtrack_set_pwr(struct rtw_dev *rtwdev, u8 path,
++ u8 pwr_idx_offset)
++{
++ static const u32 txagc_reg[RTW_RF_PATH_MAX] = {
++ REG_TX_AGC_A, REG_TX_AGC_B, REG_TX_AGC_C, REG_TX_AGC_D
++ };
++ static const u32 txscale_reg[RTW_RF_PATH_MAX] = {
++ REG_TXSCALE_A, REG_TXSCALE_B, REG_TXSCALE_C, REG_TXSCALE_D
++ };
++ s8 txagc_idx;
++ u8 swing_idx;
++
++ rtw8814a_txagc_swing_offset(rtwdev, path, pwr_idx_offset,
++ &txagc_idx, &swing_idx);
++ rtw_write32_mask(rtwdev, txagc_reg[path], GENMASK(29, 25),
++ txagc_idx);
++ rtw_write32_mask(rtwdev, txscale_reg[path], BB_SWING_MASK,
++ rtw8814a_txscale_tbl[swing_idx]);
++}
++
++static void rtw8814a_pwrtrack_set(struct rtw_dev *rtwdev, u8 path)
++{
++ u8 max_pwr_idx = rtwdev->chip->max_power_index;
++ u8 band_width = rtwdev->hal.current_band_width;
++ u8 channel = rtwdev->hal.current_channel;
++ u8 tx_rate = rtwdev->dm_info.tx_rate;
++ u8 regd = rtw_regd_get(rtwdev);
++ u8 pwr_idx_offset, tx_pwr_idx;
++
++ tx_pwr_idx = rtw_phy_get_tx_power_index(rtwdev, path, tx_rate,
++ band_width, channel, regd);
++
++ tx_pwr_idx = min_t(u8, tx_pwr_idx, max_pwr_idx);
++
++ pwr_idx_offset = max_pwr_idx - tx_pwr_idx;
++
++ rtw8814a_pwrtrack_set_pwr(rtwdev, path, pwr_idx_offset);
++}
++
++static void rtw8814a_phy_pwrtrack_path(struct rtw_dev *rtwdev,
++ struct rtw_swing_table *swing_table,
++ u8 path)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ u8 power_idx_cur, power_idx_last;
++ u8 delta;
++
++ /* 8814A only has one thermal meter at PATH A */
++ delta = rtw_phy_pwrtrack_get_delta(rtwdev, RF_PATH_A);
++
++ power_idx_last = dm_info->delta_power_index[path];
++ power_idx_cur = rtw_phy_pwrtrack_get_pwridx(rtwdev, swing_table,
++ path, RF_PATH_A, delta);
++
++ /* if delta of power indexes are the same, just skip */
++ if (power_idx_cur == power_idx_last)
++ return;
++
++ dm_info->delta_power_index[path] = power_idx_cur;
++ rtw8814a_pwrtrack_set(rtwdev, path);
++}
++
++static void rtw8814a_phy_pwrtrack(struct rtw_dev *rtwdev)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++ struct rtw_swing_table swing_table;
++ u8 thermal_value, path;
++
++ rtw_phy_config_swing_table(rtwdev, &swing_table);
++
++ if (rtwdev->efuse.thermal_meter[RF_PATH_A] == 0xff)
++ return;
++
++ thermal_value = rtw_read_rf(rtwdev, RF_PATH_A, RF_T_METER, 0xfc00);
++
++ rtw_phy_pwrtrack_avg(rtwdev, thermal_value, RF_PATH_A);
++
++ if (dm_info->pwr_trk_init_trigger)
++ dm_info->pwr_trk_init_trigger = false;
++ else if (!rtw_phy_pwrtrack_thermal_changed(rtwdev, thermal_value,
++ RF_PATH_A))
++ goto iqk;
++
++ for (path = RF_PATH_A; path < rtwdev->hal.rf_path_num; path++)
++ rtw8814a_phy_pwrtrack_path(rtwdev, &swing_table, path);
++
++iqk:
++ if (rtw_phy_pwrtrack_need_iqk(rtwdev))
++ rtw8814a_do_iqk(rtwdev);
++}
++
++static void rtw8814a_pwr_track(struct rtw_dev *rtwdev)
++{
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++
++ if (!dm_info->pwr_trk_triggered) {
++ rtw_write_rf(rtwdev, RF_PATH_A, RF_T_METER,
++ GENMASK(17, 16), 0x03);
++ dm_info->pwr_trk_triggered = true;
++ return;
++ }
++
++ rtw8814a_phy_pwrtrack(rtwdev);
++ dm_info->pwr_trk_triggered = false;
++}
++
++static void rtw8814a_phy_cck_pd_set(struct rtw_dev *rtwdev, u8 new_lvl)
++{
++ static const u8 pd[CCK_PD_LV_MAX] = {0x40, 0x83, 0xcd, 0xdd, 0xed};
++ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
++
++ /* Override rtw_phy_cck_pd_lv_link(). It implements something
++ * like type 2/3/4. We need type 1 here.
++ */
++ if (rtw_is_assoc(rtwdev)) {
++ if (dm_info->min_rssi > 60) {
++ new_lvl = CCK_PD_LV3;
++ } else if (dm_info->min_rssi > 35) {
++ new_lvl = CCK_PD_LV2;
++ } else if (dm_info->min_rssi > 20) {
++ if (dm_info->cck_fa_avg > 500)
++ new_lvl = CCK_PD_LV2;
++ else if (dm_info->cck_fa_avg < 250)
++ new_lvl = CCK_PD_LV1;
++ else
++ return;
++ } else {
++ new_lvl = CCK_PD_LV1;
++ }
++ }
++
++ rtw_dbg(rtwdev, RTW_DBG_PHY, "lv: (%d) -> (%d)\n",
++ dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A], new_lvl);
++
++ if (dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] == new_lvl)
++ return;
++
++ dm_info->cck_fa_avg = CCK_FA_AVG_RESET;
++ dm_info->cck_pd_lv[RTW_CHANNEL_WIDTH_20][RF_PATH_A] = new_lvl;
++
++ rtw_write8(rtwdev, REG_CCK_PD_TH, pd[new_lvl]);
++}
++
++static void rtw8814a_led_set(struct led_classdev *led,
++ enum led_brightness brightness)
++{
++ struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
++ u32 led_gpio_cfg;
++
++ led_gpio_cfg = rtw_read32(rtwdev, REG_GPIO_PIN_CTRL_2);
++ led_gpio_cfg |= BIT(16) | BIT(17) | BIT(21) | BIT(22);
++
++ if (brightness == LED_OFF) {
++ led_gpio_cfg |= BIT(8) | BIT(9) | BIT(13) | BIT(14);
++ } else {
++ led_gpio_cfg &= ~(BIT(8) | BIT(9) | BIT(13) | BIT(14));
++ led_gpio_cfg &= ~(BIT(0) | BIT(1) | BIT(5) | BIT(6));
++ }
++
++ rtw_write32(rtwdev, REG_GPIO_PIN_CTRL_2, led_gpio_cfg);
++}
++
++static void rtw8814a_fill_txdesc_checksum(struct rtw_dev *rtwdev,
++ struct rtw_tx_pkt_info *pkt_info,
++ u8 *txdesc)
++{
++ size_t words = 32 / 2; /* calculate the first 32 bytes (16 words) */
++
++ fill_txdesc_checksum_common(txdesc, words);
++}
++
++static const struct rtw_chip_ops rtw8814a_ops = {
++ .power_on = rtw_power_on,
++ .power_off = rtw_power_off,
++ .phy_set_param = rtw8814a_phy_set_param,
++ .read_efuse = rtw8814a_read_efuse,
++ .query_phy_status = rtw8814a_query_phy_status,
++ .set_channel = rtw8814a_set_channel,
++ .mac_init = rtw8814a_mac_init,
++ .read_rf = rtw_phy_read_rf,
++ .write_rf = rtw_phy_write_rf_reg_sipi,
++ .set_tx_power_index = rtw8814a_set_tx_power_index,
++ .set_antenna = NULL,
++ .cfg_ldo25 = rtw8814a_cfg_ldo25,
++ .efuse_grant = rtw8814a_efuse_grant,
++ .false_alarm_statistics = rtw8814a_false_alarm_statistics,
++ .phy_calibration = rtw8814a_phy_calibration,
++ .cck_pd_set = rtw8814a_phy_cck_pd_set,
++ .pwr_track = rtw8814a_pwr_track,
++ .config_bfee = NULL,
++ .set_gid_table = NULL,
++ .cfg_csi_rate = NULL,
++ .led_set = rtw8814a_led_set,
++ .fill_txdesc_checksum = rtw8814a_fill_txdesc_checksum,
++
++ .coex_set_init = rtw8814a_coex_cfg_init,
++ .coex_set_ant_switch = rtw8814a_coex_cfg_ant_switch,
++ .coex_set_gnt_fix = rtw8814a_coex_cfg_gnt_fix,
++ .coex_set_gnt_debug = rtw8814a_coex_cfg_gnt_debug,
++ .coex_set_rfe_type = rtw8814a_coex_cfg_rfe_type,
++ .coex_set_wl_tx_power = rtw8814a_coex_cfg_wl_tx_power,
++ .coex_set_wl_rx_gain = rtw8814a_coex_cfg_wl_rx_gain,
++};
++
++static const struct rtw_rqpn rqpn_table_8814a[] = {
++ /* SDIO */
++ {RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL, /* vo vi */
++ RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW, /* be bk */
++ RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH}, /* mg hi */
++ /* PCIE */
++ {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
++ RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
++ RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
++ /* USB, 2 bulk out */
++ {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH,
++ RTW_DMA_MAPPING_NORMAL, RTW_DMA_MAPPING_NORMAL,
++ RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
++ /* USB, 3 bulk out */
++ {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
++ RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
++ RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
++ /* USB, 4 bulk out */
++ {RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_NORMAL,
++ RTW_DMA_MAPPING_LOW, RTW_DMA_MAPPING_LOW,
++ RTW_DMA_MAPPING_HIGH, RTW_DMA_MAPPING_HIGH},
++};
++
++static const struct rtw_prioq_addrs prioq_addrs_8814a = {
++ .prio[RTW_DMA_MAPPING_EXTRA] = {
++ .rsvd = REG_FIFOPAGE_INFO_4, .avail = REG_FIFOPAGE_INFO_4 + 2,
++ },
++ .prio[RTW_DMA_MAPPING_LOW] = {
++ .rsvd = REG_FIFOPAGE_INFO_2, .avail = REG_FIFOPAGE_INFO_2 + 2,
++ },
++ .prio[RTW_DMA_MAPPING_NORMAL] = {
++ .rsvd = REG_FIFOPAGE_INFO_3, .avail = REG_FIFOPAGE_INFO_3 + 2,
++ },
++ .prio[RTW_DMA_MAPPING_HIGH] = {
++ .rsvd = REG_FIFOPAGE_INFO_1, .avail = REG_FIFOPAGE_INFO_1 + 2,
++ },
++ .wsize = true,
++};
++
++static const struct rtw_page_table page_table_8814a[] = {
++ /* SDIO */
++ {0, 0, 0, 0, 0}, /* hq nq lq exq gapq */
++ /* PCIE */
++ {32, 32, 32, 32, 0},
++ /* USB, 2 bulk out */
++ {32, 32, 32, 32, 0},
++ /* USB, 3 bulk out */
++ {32, 32, 32, 32, 0},
++ /* USB, 4 bulk out */
++ {32, 32, 32, 32, 0},
++};
++
++static const struct rtw_intf_phy_para_table phy_para_table_8814a = {};
++
++static const struct rtw_hw_reg rtw8814a_dig[] = {
++ [0] = { .addr = 0xc50, .mask = 0x7f },
++ [1] = { .addr = 0xe50, .mask = 0x7f },
++ [2] = { .addr = 0x1850, .mask = 0x7f },
++ [3] = { .addr = 0x1a50, .mask = 0x7f },
++};
++
++static const struct rtw_rfe_def rtw8814a_rfe_defs[] = {
++ [0] = { .phy_pg_tbl = &rtw8814a_bb_pg_type0_tbl,
++ .txpwr_lmt_tbl = &rtw8814a_txpwr_lmt_type0_tbl,
++ .pwr_track_tbl = &rtw8814a_rtw_pwrtrk_type0_tbl },
++ [1] = { .phy_pg_tbl = &rtw8814a_bb_pg_tbl,
++ .txpwr_lmt_tbl = &rtw8814a_txpwr_lmt_type1_tbl,
++ .pwr_track_tbl = &rtw8814a_rtw_pwrtrk_tbl },
++};
++
++/* rssi in percentage % (dbm = % - 100) */
++static const u8 wl_rssi_step_8814a[] = {60, 50, 44, 30};
++static const u8 bt_rssi_step_8814a[] = {30, 30, 30, 30};
++
++/* wl_tx_dec_power, bt_tx_dec_power, wl_rx_gain, bt_rx_lna_constrain */
++static const struct coex_rf_para rf_para_tx_8814a[] = {
++ {0, 0, false, 7}, /* for normal */
++ {0, 16, false, 7}, /* for WL-CPT */
++ {4, 0, true, 1},
++ {3, 6, true, 1},
++ {2, 9, true, 1},
++ {1, 13, true, 1}
++};
++
++static const struct coex_rf_para rf_para_rx_8814a[] = {
++ {0, 0, false, 7}, /* for normal */
++ {0, 16, false, 7}, /* for WL-CPT */
++ {4, 0, true, 1},
++ {3, 6, true, 1},
++ {2, 9, true, 1},
++ {1, 13, true, 1}
++};
++
++static_assert(ARRAY_SIZE(rf_para_tx_8814a) == ARRAY_SIZE(rf_para_rx_8814a));
++
++const struct rtw_chip_info rtw8814a_hw_spec = {
++ .ops = &rtw8814a_ops,
++ .id = RTW_CHIP_TYPE_8814A,
++ .fw_name = "rtw88/rtw8814a_fw.bin",
++ .wlan_cpu = RTW_WCPU_11AC,
++ .tx_pkt_desc_sz = 40,
++ .tx_buf_desc_sz = 16,
++ .rx_pkt_desc_sz = 24,
++ .rx_buf_desc_sz = 8,
++ .phy_efuse_size = 1024,
++ .log_efuse_size = 512,
++ .ptct_efuse_size = 0,
++ .txff_size = (2048 - 10) * TX_PAGE_SIZE,
++ .rxff_size = 23552,
++ .rsvd_drv_pg_num = 8,
++ .band = RTW_BAND_2G | RTW_BAND_5G,
++ .page_size = TX_PAGE_SIZE,
++ .csi_buf_pg_num = 0,
++ .dig_min = 0x1c,
++ .txgi_factor = 1,
++ .is_pwr_by_rate_dec = true,
++ .rx_ldpc = true,
++ .max_power_index = 0x3f,
++ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
++ .usb_tx_agg_desc_num = 3,
++ .hw_feature_report = false,
++ .c2h_ra_report_size = 6,
++ .old_datarate_fb_limit = false,
++ .ht_supported = true,
++ .vht_supported = true,
++ .lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
++ .sys_func_en = 0xDC,
++ .pwr_on_seq = card_enable_flow_8814a,
++ .pwr_off_seq = card_disable_flow_8814a,
++ .rqpn_table = rqpn_table_8814a,
++ .prioq_addrs = &prioq_addrs_8814a,
++ .page_table = page_table_8814a,
++ .intf_table = &phy_para_table_8814a,
++ .dig = rtw8814a_dig,
++ .dig_cck = NULL,
++ .rf_base_addr = {0x2800, 0x2c00, 0x3800, 0x3c00},
++ .rf_sipi_addr = {0xc90, 0xe90, 0x1890, 0x1a90},
++ .ltecoex_addr = NULL,
++ .mac_tbl = &rtw8814a_mac_tbl,
++ .agc_tbl = &rtw8814a_agc_tbl,
++ .bb_tbl = &rtw8814a_bb_tbl,
++ .rf_tbl = {&rtw8814a_rf_a_tbl, &rtw8814a_rf_b_tbl,
++ &rtw8814a_rf_c_tbl, &rtw8814a_rf_d_tbl},
++ .rfe_defs = rtw8814a_rfe_defs,
++ .rfe_defs_size = ARRAY_SIZE(rtw8814a_rfe_defs),
++ .iqk_threshold = 8,
++ .max_scan_ie_len = IEEE80211_MAX_DATA_LEN,
++
++ .coex_para_ver = 0,
++ .bt_desired_ver = 0,
++ .scbd_support = false,
++ .new_scbd10_def = false,
++ .ble_hid_profile_support = false,
++ .wl_mimo_ps_support = false,
++ .pstdma_type = COEX_PSTDMA_FORCE_LPSOFF,
++ .bt_rssi_type = COEX_BTRSSI_RATIO,
++ .ant_isolation = 15,
++ .rssi_tolerance = 2,
++ .wl_rssi_step = wl_rssi_step_8814a,
++ .bt_rssi_step = bt_rssi_step_8814a,
++ .table_sant_num = 0,
++ .table_sant = NULL,
++ .table_nsant_num = 0,
++ .table_nsant = NULL,
++ .tdma_sant_num = 0,
++ .tdma_sant = NULL,
++ .tdma_nsant_num = 0,
++ .tdma_nsant = NULL,
++ .wl_rf_para_num = ARRAY_SIZE(rf_para_tx_8814a),
++ .wl_rf_para_tx = rf_para_tx_8814a,
++ .wl_rf_para_rx = rf_para_rx_8814a,
++ .bt_afh_span_bw20 = 0x24,
++ .bt_afh_span_bw40 = 0x36,
++ .afh_5g_num = 0,
++ .afh_5g = NULL,
++ .coex_info_hw_regs_num = 0,
++ .coex_info_hw_regs = NULL,
++};
++EXPORT_SYMBOL(rtw8814a_hw_spec);
++
++MODULE_FIRMWARE("rtw88/rtw8814a_fw.bin");
++
++MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>");
++MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814a driver");
++MODULE_LICENSE("Dual BSD/GPL");
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.h
+@@ -0,0 +1,62 @@
++/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#ifndef __RTW8814A_H__
++#define __RTW8814A_H__
++
++struct rtw8814au_efuse {
++ u8 vid[2]; /* 0xd0 */
++ u8 pid[2]; /* 0xd2 */
++ u8 res[4]; /* 0xd4 */
++ u8 mac_addr[ETH_ALEN]; /* 0xd8 */
++} __packed;
++
++struct rtw8814ae_efuse {
++ u8 mac_addr[ETH_ALEN]; /* 0xd0 */
++ u8 vid[2]; /* 0xd6 */
++ u8 did[2]; /* 0xd8 */
++ u8 svid[2]; /* 0xda */
++ u8 smid[2]; /* 0xdc */
++} __packed;
++
++struct rtw8814a_efuse {
++ __le16 rtl_id;
++ u8 res0[0x0c];
++ u8 usb_mode; /* 0x0e */
++ u8 res1;
++
++ /* power index for four RF paths */
++ struct rtw_txpwr_idx txpwr_idx_table[4];
++
++ u8 channel_plan; /* 0xb8 */
++ u8 xtal_k; /* 0xb9 */
++ u8 thermal_meter; /* 0xba */
++ u8 iqk_lck; /* 0xbb */
++ u8 pa_type; /* 0xbc */
++ u8 lna_type_2g[2]; /* 0xbd */
++ u8 lna_type_5g[2]; /* 0xbf */
++ u8 rf_board_option; /* 0xc1 */
++ u8 res2;
++ u8 rf_bt_setting; /* 0xc3 */
++ u8 eeprom_version; /* 0xc4 */
++ u8 eeprom_customer_id; /* 0xc5 */
++ u8 tx_bb_swing_setting_2g; /* 0xc6 */
++ u8 tx_bb_swing_setting_5g; /* 0xc7 */
++ u8 res3;
++ u8 trx_antenna_option; /* 0xc9 */
++ u8 rfe_option; /* 0xca */
++ u8 country_code[2]; /* 0xcb */
++ u8 res4[3];
++ union {
++ struct rtw8814au_efuse u;
++ struct rtw8814ae_efuse e;
++ };
++ u8 res5[0x122]; /* 0xde */
++} __packed;
++
++static_assert(sizeof(struct rtw8814a_efuse) == 512);
++
++extern const struct rtw_chip_info rtw8814a_hw_spec;
++
++#endif
diff --git a/package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch b/package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch
new file mode 100644
index 0000000000..0aa9a90360
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/089-v6.15-wifi-rtw88-Add-rtw8814ae.c.patch
@@ -0,0 +1,50 @@
+From dad8e879310211c1e02f09c35f169388bccbfa42 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:25:09 +0200
+Subject: [PATCH] wifi: rtw88: Add rtw8814ae.c
+
+This is the entry point for the new module rtw88_8814ae.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/74ebab2f-a23e-4d87-935f-0af2b5cba672@gmail.com
+---
+ .../net/wireless/realtek/rtw88/rtw8814ae.c | 31 +++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814ae.c
+
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
+@@ -0,0 +1,31 @@
++// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#include <linux/module.h>
++#include <linux/pci.h>
++#include "pci.h"
++#include "rtw8814a.h"
++
++static const struct pci_device_id rtw_8814ae_id_table[] = {
++ {
++ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8813),
++ .driver_data = (kernel_ulong_t)&rtw8814a_hw_spec
++ },
++ {}
++};
++MODULE_DEVICE_TABLE(pci, rtw_8814ae_id_table);
++
++static struct pci_driver rtw_8814ae_driver = {
++ .name = "rtw_8814ae",
++ .id_table = rtw_8814ae_id_table,
++ .probe = rtw_pci_probe,
++ .remove = rtw_pci_remove,
++ .driver.pm = &rtw_pm_ops,
++ .shutdown = rtw_pci_shutdown,
++};
++module_pci_driver(rtw_8814ae_driver);
++
++MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>");
++MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814ae driver");
++MODULE_LICENSE("Dual BSD/GPL");
diff --git a/package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch b/package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch
new file mode 100644
index 0000000000..b83174d73e
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/090-v6.15-wifi-rtw88-Add-rtw8814au.c.patch
@@ -0,0 +1,73 @@
+From bad060e8a425182809bfc2586a2e7f5ccd1a994d Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:25:37 +0200
+Subject: [PATCH] wifi: rtw88: Add rtw8814au.c
+
+This is the entry point for the new module rtw88_8814au.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/71457787-5a9e-4ead-a62c-22ca44e00b89@gmail.com
+---
+ .../net/wireless/realtek/rtw88/rtw8814au.c | 54 +++++++++++++++++++
+ 1 file changed, 54 insertions(+)
+ create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8814au.c
+
+--- /dev/null
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814au.c
+@@ -0,0 +1,54 @@
++// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
++/* Copyright(c) 2025 Realtek Corporation
++ */
++
++#include <linux/module.h>
++#include <linux/usb.h>
++#include "main.h"
++#include "rtw8814a.h"
++#include "usb.h"
++
++static const struct usb_device_id rtw_8814au_id_table[] = {
++ { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8813, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400b, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400d, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0846, 0x9054, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1817, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1852, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1853, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0e66, 0x0026, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331a, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809a, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809b, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0106, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa834, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa833, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) },
++ {},
++};
++MODULE_DEVICE_TABLE(usb, rtw_8814au_id_table);
++
++static struct usb_driver rtw_8814au_driver = {
++ .name = "rtw_8814au",
++ .id_table = rtw_8814au_id_table,
++ .probe = rtw_usb_probe,
++ .disconnect = rtw_usb_disconnect,
++};
++module_usb_driver(rtw_8814au_driver);
++
++MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>");
++MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814au driver");
++MODULE_LICENSE("Dual BSD/GPL");
diff --git a/package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch b/package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch
new file mode 100644
index 0000000000..4bb3253d50
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/091-v6.15-wifi-rtw88-Add-__nonstring-annotations-for-untermina.patch
@@ -0,0 +1,34 @@
+From d58ad77d5cc2a6d04db622a898e54d93fc7002a2 Mon Sep 17 00:00:00 2001
+From: Kees Cook <kees@kernel.org>
+Date: Mon, 10 Mar 2025 15:22:58 -0700
+Subject: [PATCH] wifi: rtw88: Add __nonstring annotations for unterminated
+ strings
+
+When a character array without a terminating NUL character has a static
+initializer, GCC 15's -Wunterminated-string-initialization will only
+warn if the array lacks the "nonstring" attribute[1]. Mark the arrays
+with __nonstring to and correctly identify the char array as "not a C
+string" and thereby eliminate the warning.
+
+Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117178 [1]
+Cc: Ping-Ke Shih <pkshih@realtek.com>
+Cc: Johannes Berg <johannes@sipsolutions.net>
+Cc: linux-wireless@vger.kernel.org
+Signed-off-by: Kees Cook <kees@kernel.org>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250310222257.work.866-kees@kernel.org
+---
+ drivers/net/wireless/realtek/rtw88/main.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -835,7 +835,7 @@ struct rtw_vif {
+ };
+
+ struct rtw_regulatory {
+- char alpha2[2];
++ char alpha2[2] __nonstring;
+ u8 txpwr_regd_2g;
+ u8 txpwr_regd_5g;
+ };
diff --git a/package/kernel/mac80211/patches/rtl/091-v6.15wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch b/package/kernel/mac80211/patches/rtl/091-v6.15wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch
new file mode 100644
index 0000000000..8446ad3a96
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/091-v6.15wifi-rtw88-Enable-the-new-RTL8814AE-RTL8814AU-driver.patch
@@ -0,0 +1,147 @@
+From deb3ddeb18652118956fb581a39ac299e1ee5623 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 7 Mar 2025 02:26:25 +0200
+Subject: [PATCH] wifi: rtw88: Enable the new RTL8814AE/RTL8814AU drivers
+
+RTL8814A is a wifi 5 chip with 4 RF paths (chains), 3 spatial streams,
+and probably no Bluetooth.
+
+The USB-based RTL8814AU can reach 800 Mbps in the 5 GHz band in USB 3
+mode. In USB 2 mode it only uses 2 spatial streams.
+
+The PCI-based RTL8814AE is not as popular and didn't get as much
+testing so it's unclear how fast it goes. It's more like a bonus on top
+of the RTL8814AU support.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/5795b0a7-511e-40b5-ac36-476b63f174c7@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/Kconfig | 25 +++++++++++++++++++++
+ drivers/net/wireless/realtek/rtw88/Makefile | 9 ++++++++
+ 2 files changed, 34 insertions(+)
+
+--- a/Kconfig.local
++++ b/Kconfig.local
+@@ -1153,6 +1153,9 @@ config BACKPORTED_RTW88_8821A
+ config BACKPORTED_RTW88_8812A
+ tristate
+ default RTW88_8812A
++config BACKPORTED_RTW88_8814A
++ tristate
++ default RTW88_8814A
+ config BACKPORTED_RTW88_8822BE
+ tristate
+ default RTW88_8822BE
+@@ -1198,12 +1201,21 @@ config BACKPORTED_RTW88_8821AU
+ config BACKPORTED_RTW88_8812AU
+ tristate
+ default RTW88_8812AU
++config BACKPORTED_RTW88_8814AE
++ tristate
++ default RTW88_8814AE
++config BACKPORTED_RTW88_8814AU
++ tristate
++ default RTW88_8814AU
+ config BACKPORTED_RTW88_DEBUG
+ tristate
+ default RTW88_DEBUG
+ config BACKPORTED_RTW88_DEBUGFS
+ tristate
+ default RTW88_DEBUGFS
++config BACKPORTED_RTW88_LEDS
++ tristate
++ default RTW88_LEDS
+ config BACKPORTED_RTW89
+ tristate
+ default RTW89
+--- a/drivers/net/wireless/realtek/rtw88/Kconfig
++++ b/drivers/net/wireless/realtek/rtw88/Kconfig
+@@ -68,6 +68,10 @@ config RTW88_8812A
+ depends on m
+ select RTW88_88XXA
+
++config RTW88_8814A
++ tristate
++ depends on m
++
+ config RTW88_8822BE
+ tristate "Realtek 8822BE PCI wireless network adapter"
+ depends on m
+@@ -251,6 +255,30 @@ config RTW88_8812AU
+
+ 802.11ac USB wireless network adapter
+
++config RTW88_8814AE
++ tristate "Realtek 8814AE PCI wireless network adapter"
++ depends on m
++ depends on PCI
++ select RTW88_CORE
++ select RTW88_PCI
++ select RTW88_8814A
++ help
++ Select this option will enable support for 8814AE chipset
++
++ 802.11ac PCIe wireless network adapter
++
++config RTW88_8814AU
++ tristate "Realtek 8814AU USB wireless network adapter"
++ depends on m
++ depends on USB
++ select RTW88_CORE
++ select RTW88_USB
++ select RTW88_8814A
++ help
++ Select this option will enable support for 8814AU chipset
++
++ 802.11ac USB wireless network adapter
++
+ config RTW88_DEBUG
+ bool "Realtek rtw88 debug support"
+ depends on RTW88_CORE
+--- a/drivers/net/wireless/realtek/rtw88/Makefile
++++ b/drivers/net/wireless/realtek/rtw88/Makefile
+@@ -94,6 +94,15 @@ rtw88_8821au-objs := rtw8821au.o
+ obj-$(CPTCFG_RTW88_8812AU) += rtw88_8812au.o
+ rtw88_8812au-objs := rtw8812au.o
+
++obj-$(CPTCFG_RTW88_8814A) += rtw88_8814a.o
++rtw88_8814a-objs := rtw8814a.o rtw8814a_table.o
++
++obj-$(CPTCFG_RTW88_8814AE) += rtw88_8814ae.o
++rtw88_8814ae-objs := rtw8814ae.o
++
++obj-$(CPTCFG_RTW88_8814AU) += rtw88_8814au.o
++rtw88_8814au-objs := rtw8814au.o
++
+ obj-$(CPTCFG_RTW88_PCI) += rtw88_pci.o
+ rtw88_pci-objs := pci.o
+
+--- a/local-symbols
++++ b/local-symbols
+@@ -377,6 +377,10 @@ RTW88_8723X=
+ RTW88_8703B=
+ RTW88_8723D=
+ RTW88_8821C=
++RTW88_88XXA=
++RTW88_8821A=
++RTW88_8812A=
++RTW88_8814A=
+ RTW88_8822BE=
+ RTW88_8822BS=
+ RTW88_8822BU=
+@@ -390,8 +394,13 @@ RTW88_8723DU=
+ RTW88_8821CE=
+ RTW88_8821CS=
+ RTW88_8821CU=
++RTW88_8821AU=
++RTW88_8812AU=
++RTW88_8814AE=
++RTW88_8814AU=
+ RTW88_DEBUG=
+ RTW88_DEBUGFS=
++RTW88_LEDS=
+ RTW89=
+ RTW89_CORE=
+ RTW89_PCI=
diff --git a/package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch b/package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch
new file mode 100644
index 0000000000..9852bdff94
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/093-v6.16-wifi-rtw88-sdio-Remove-redundant-flush_workqueue-cal.patch
@@ -0,0 +1,36 @@
+From 5c4cf36c538bb2714e43654e365cb77b19c4a93e Mon Sep 17 00:00:00 2001
+From: Chen Ni <nichen@iscas.ac.cn>
+Date: Mon, 24 Mar 2025 15:59:10 +0800
+Subject: [PATCH] wifi: rtw88: sdio: Remove redundant 'flush_workqueue()' calls
+
+'destroy_workqueue()' already drains the queue before destroying it, so
+there is no need to flush it explicitly.
+
+Remove the redundant 'flush_workqueue()' calls.
+
+This was generated with coccinelle:
+
+@@
+expression E;
+@@
+
+- flush_workqueue(E);
+ destroy_workqueue(E);
+
+Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250324075910.407999-1-nichen@iscas.ac.cn
+---
+ drivers/net/wireless/realtek/rtw88/sdio.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -1298,7 +1298,6 @@ static void rtw_sdio_deinit_tx(struct rt
+ struct rtw_sdio *rtwsdio = (struct rtw_sdio *)rtwdev->priv;
+ int i;
+
+- flush_workqueue(rtwsdio->txwq);
+ destroy_workqueue(rtwsdio->txwq);
+ kfree(rtwsdio->tx_handler_data);
+
diff --git a/package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch b/package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch
new file mode 100644
index 0000000000..41e670fd11
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/094-v6.16-wifi-rtw88-usb-Remove-redundant-flush_workqueue-call.patch
@@ -0,0 +1,44 @@
+From 625fbc16524a45488f6eb8561d98b3328efe79cd Mon Sep 17 00:00:00 2001
+From: Chen Ni <nichen@iscas.ac.cn>
+Date: Mon, 24 Mar 2025 16:03:03 +0800
+Subject: [PATCH] wifi: rtw88: usb: Remove redundant 'flush_workqueue()' calls
+
+'destroy_workqueue()' already drains the queue before destroying it, so
+there is no need to flush it explicitly.
+
+Remove the redundant 'flush_workqueue()' calls.
+
+This was generated with coccinelle:
+
+@@
+expression E;
+@@
+
+- flush_workqueue(E);
+ destroy_workqueue(E);
+
+Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250324080303.408084-1-nichen@iscas.ac.cn
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -901,7 +901,6 @@ static void rtw_usb_deinit_rx(struct rtw
+
+ skb_queue_purge(&rtwusb->rx_queue);
+
+- flush_workqueue(rtwusb->rxwq);
+ destroy_workqueue(rtwusb->rxwq);
+ }
+
+@@ -928,7 +927,6 @@ static void rtw_usb_deinit_tx(struct rtw
+ {
+ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
+
+- flush_workqueue(rtwusb->txwq);
+ destroy_workqueue(rtwusb->txwq);
+ rtw_usb_tx_queue_purge(rtwusb);
+ }
diff --git a/package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch b/package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch
new file mode 100644
index 0000000000..edd3cd5e70
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/095-v6.16-wifi-rtw88-usb-Enable-switching-the-RTL8814AU-to-USB.patch
@@ -0,0 +1,32 @@
+From bf1103654df99d50724a022c8b9fca8908a86f50 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 2 Apr 2025 18:30:02 +0300
+Subject: [PATCH] wifi: rtw88: usb: Enable switching the RTL8814AU to USB 3
+
+The Realtek wifi 5 devices which support USB 3 are weird: when first
+plugged in, they pretend to be USB 2. The driver needs to send some
+commands to the device, which make it disappear and come back as a
+USB 3 device.
+
+The method used to switch the RTL8812AU also works for the RTL8814AU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/d3608f70-e04f-4f6b-987a-022c8e317165@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -1043,7 +1043,8 @@ static int rtw_usb_switch_mode_new(struc
+
+ static bool rtw_usb3_chip_old(u8 chip_id)
+ {
+- return chip_id == RTW_CHIP_TYPE_8812A;
++ return chip_id == RTW_CHIP_TYPE_8812A ||
++ chip_id == RTW_CHIP_TYPE_8814A;
+ }
+
+ static bool rtw_usb3_chip_new(u8 chip_id)
diff --git a/package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch b/package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch
new file mode 100644
index 0000000000..9709528e70
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/096-v6.16-wifi-rtw88-usb-Enable-RX-aggregation-for-RTL8814AU.patch
@@ -0,0 +1,28 @@
+From dcbb7bb3a364f218411761e2e5ee2f6818d9bdfc Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 2 Apr 2025 18:30:28 +0300
+Subject: [PATCH] wifi: rtw88: usb: Enable RX aggregation for RTL8814AU
+
+Let the chip transfer several frames in a single USB Request Block.
+This is supposed to improve the RX speed.
+
+It can use the same code used for RTL8822CU, RTL8822BU, and RTL8821CU.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/672397ac-dd4d-4420-8b3e-7011578e2243@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -829,6 +829,7 @@ static void rtw_usb_dynamic_rx_agg(struc
+ case RTW_CHIP_TYPE_8822C:
+ case RTW_CHIP_TYPE_8822B:
+ case RTW_CHIP_TYPE_8821C:
++ case RTW_CHIP_TYPE_8814A:
+ rtw_usb_dynamic_rx_agg_v1(rtwdev, enable);
+ break;
+ case RTW_CHIP_TYPE_8821A:
diff --git a/package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch b/package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch
new file mode 100644
index 0000000000..bdac02c8c6
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/097-v6.16-wifi-rtw88-Set-AMPDU-factor-to-hardware-for-RTL8814A.patch
@@ -0,0 +1,192 @@
+From 0d2a88690e583168effb03c64fd217a323b2c444 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 2 Apr 2025 18:31:12 +0300
+Subject: [PATCH] wifi: rtw88: Set AMPDU factor to hardware for RTL8814A
+
+Tell the chip the maximum AMPDU size supported by the AP. This greatly
+improves the TX speed of RTL8814AU in the 2.4 GHz band. Before: ~90
+Mbps. After: ~300 Mbps.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/4edc2a63-81b3-431c-9a37-5a7d899a6cc2@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/mac80211.c | 2 ++
+ drivers/net/wireless/realtek/rtw88/main.c | 32 +++++++++++++++++++
+ drivers/net/wireless/realtek/rtw88/main.h | 3 ++
+ drivers/net/wireless/realtek/rtw88/rtw8703b.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8812a.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8814a.c | 11 +++++++
+ drivers/net/wireless/realtek/rtw88/rtw8821a.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
+ 11 files changed, 55 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/mac80211.c
++++ b/drivers/net/wireless/realtek/rtw88/mac80211.c
+@@ -396,6 +396,8 @@ static void rtw_ops_bss_info_changed(str
+ if (rtw_bf_support)
+ rtw_bf_assoc(rtwdev, vif, conf);
+
++ rtw_set_ampdu_factor(rtwdev, vif, conf);
++
+ rtw_fw_beacon_filter_config(rtwdev, true, vif);
+ } else {
+ rtw_leave_lps(rtwdev);
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -2447,6 +2447,38 @@ void rtw_core_enable_beacon(struct rtw_d
+ }
+ }
+
++void rtw_set_ampdu_factor(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
++ struct ieee80211_bss_conf *bss_conf)
++{
++ const struct rtw_chip_ops *ops = rtwdev->chip->ops;
++ struct ieee80211_sta *sta;
++ u8 factor = 0xff;
++
++ if (!ops->set_ampdu_factor)
++ return;
++
++ rcu_read_lock();
++
++ sta = ieee80211_find_sta(vif, bss_conf->bssid);
++ if (!sta) {
++ rcu_read_unlock();
++ rtw_warn(rtwdev, "%s: failed to find station %pM\n",
++ __func__, bss_conf->bssid);
++ return;
++ }
++
++ if (sta->deflink.vht_cap.vht_supported)
++ factor = u32_get_bits(sta->deflink.vht_cap.cap,
++ IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK);
++ else if (sta->deflink.ht_cap.ht_supported)
++ factor = sta->deflink.ht_cap.ampdu_factor;
++
++ rcu_read_unlock();
++
++ if (factor != 0xff)
++ ops->set_ampdu_factor(rtwdev, factor);
++}
++
+ MODULE_AUTHOR("Realtek Corporation");
+ MODULE_DESCRIPTION("Realtek 802.11ac wireless core module");
+ MODULE_LICENSE("Dual BSD/GPL");
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -878,6 +878,7 @@ struct rtw_chip_ops {
+ u32 antenna_rx);
+ void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable);
+ void (*efuse_grant)(struct rtw_dev *rtwdev, bool enable);
++ void (*set_ampdu_factor)(struct rtw_dev *rtwdev, u8 factor);
+ void (*false_alarm_statistics)(struct rtw_dev *rtwdev);
+ void (*phy_calibration)(struct rtw_dev *rtwdev);
+ void (*dpk_track)(struct rtw_dev *rtwdev);
+@@ -2272,4 +2273,6 @@ void rtw_update_channel(struct rtw_dev *
+ void rtw_core_port_switch(struct rtw_dev *rtwdev, struct ieee80211_vif *vif);
+ bool rtw_core_check_sta_active(struct rtw_dev *rtwdev);
+ void rtw_core_enable_beacon(struct rtw_dev *rtwdev, bool enable);
++void rtw_set_ampdu_factor(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
++ struct ieee80211_bss_conf *bss_conf);
+ #endif
+--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
+@@ -1904,6 +1904,7 @@ static const struct rtw_chip_ops rtw8703
+ .set_antenna = NULL,
+ .cfg_ldo25 = rtw8723x_cfg_ldo25,
+ .efuse_grant = rtw8723x_efuse_grant,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw8723x_false_alarm_statistics,
+ .phy_calibration = rtw8703b_phy_calibration,
+ .dpk_track = NULL,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
+@@ -1404,6 +1404,7 @@ static const struct rtw_chip_ops rtw8723
+ .set_antenna = NULL,
+ .cfg_ldo25 = rtw8723x_cfg_ldo25,
+ .efuse_grant = rtw8723x_efuse_grant,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw8723x_false_alarm_statistics,
+ .phy_calibration = rtw8723d_phy_calibration,
+ .cck_pd_set = rtw8723d_phy_cck_pd_set,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
+@@ -925,6 +925,7 @@ static const struct rtw_chip_ops rtw8812
+ .set_tx_power_index = rtw88xxa_set_tx_power_index,
+ .cfg_ldo25 = rtw8812a_cfg_ldo25,
+ .efuse_grant = rtw88xxa_efuse_grant,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw88xxa_false_alarm_statistics,
+ .phy_calibration = rtw8812a_phy_calibration,
+ .cck_pd_set = rtw88xxa_phy_cck_pd_set,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8814a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
+@@ -1332,6 +1332,16 @@ static void rtw8814a_cfg_ldo25(struct rt
+ {
+ }
+
++/* Without this RTL8814A sends too many frames and (some?) 11n AP
++ * can't handle it, resulting in low TX speed. Other chips seem fine.
++ */
++static void rtw8814a_set_ampdu_factor(struct rtw_dev *rtwdev, u8 factor)
++{
++ factor = min_t(u8, factor, IEEE80211_VHT_MAX_AMPDU_256K);
++
++ rtw_write32(rtwdev, REG_AMPDU_MAX_LENGTH, (8192 << factor) - 1);
++}
++
+ static void rtw8814a_false_alarm_statistics(struct rtw_dev *rtwdev)
+ {
+ struct rtw_dm_info *dm_info = &rtwdev->dm_info;
+@@ -2051,6 +2061,7 @@ static const struct rtw_chip_ops rtw8814
+ .set_antenna = NULL,
+ .cfg_ldo25 = rtw8814a_cfg_ldo25,
+ .efuse_grant = rtw8814a_efuse_grant,
++ .set_ampdu_factor = rtw8814a_set_ampdu_factor,
+ .false_alarm_statistics = rtw8814a_false_alarm_statistics,
+ .phy_calibration = rtw8814a_phy_calibration,
+ .cck_pd_set = rtw8814a_phy_cck_pd_set,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
+@@ -871,6 +871,7 @@ static const struct rtw_chip_ops rtw8821
+ .set_tx_power_index = rtw88xxa_set_tx_power_index,
+ .cfg_ldo25 = rtw8821a_cfg_ldo25,
+ .efuse_grant = rtw88xxa_efuse_grant,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw88xxa_false_alarm_statistics,
+ .phy_calibration = rtw8821a_phy_calibration,
+ .cck_pd_set = rtw88xxa_phy_cck_pd_set,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -1668,6 +1668,7 @@ static const struct rtw_chip_ops rtw8821
+ .set_antenna = NULL,
+ .set_tx_power_index = rtw8821c_set_tx_power_index,
+ .cfg_ldo25 = rtw8821c_cfg_ldo25,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw8821c_false_alarm_statistics,
+ .phy_calibration = rtw8821c_phy_calibration,
+ .cck_pd_set = rtw8821c_phy_cck_pd_set,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -2158,6 +2158,7 @@ static const struct rtw_chip_ops rtw8822
+ .set_tx_power_index = rtw8822b_set_tx_power_index,
+ .set_antenna = rtw8822b_set_antenna,
+ .cfg_ldo25 = rtw8822b_cfg_ldo25,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw8822b_false_alarm_statistics,
+ .phy_calibration = rtw8822b_phy_calibration,
+ .pwr_track = rtw8822b_pwr_track,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -4968,6 +4968,7 @@ static const struct rtw_chip_ops rtw8822
+ .set_tx_power_index = rtw8822c_set_tx_power_index,
+ .set_antenna = rtw8822c_set_antenna,
+ .cfg_ldo25 = rtw8822c_cfg_ldo25,
++ .set_ampdu_factor = NULL,
+ .false_alarm_statistics = rtw8822c_false_alarm_statistics,
+ .dpk_track = rtw8822c_dpk_track,
+ .phy_calibration = rtw8822c_phy_calibration,
diff --git a/package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch b/package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch
new file mode 100644
index 0000000000..1b030761d3
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/098-v6.16-wifi-rtw88-Don-t-set-SUPPORTS_AMSDU_IN_AMPDU-for-RTL.patch
@@ -0,0 +1,169 @@
+From b8d49bb8d16ae7dde8e05b275d6e3b8bbf27f011 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 2 Apr 2025 18:31:36 +0300
+Subject: [PATCH] wifi: rtw88: Don't set SUPPORTS_AMSDU_IN_AMPDU for RTL8814AU
+
+RTL8814AU doesn't work well with SUPPORTS_AMSDU_IN_AMPDU. The RX speed
+is noticeably lower and the VHT RX statistics are strange. Typical
+values with SUPPORTS_AMSDU_IN_AMPDU:
+
+Reverse mode, remote host 192.168.0.1 is sending
+[ 5] local 192.168.0.50 port 60710 connected to 192.168.0.1 port 5201
+[ ID] Interval Transfer Bitrate
+[ 5] 0.00-1.00 sec 74.6 MBytes 626 Mbits/sec
+[ 5] 1.00-2.00 sec 79.2 MBytes 665 Mbits/sec
+[ 5] 2.00-3.00 sec 84.9 MBytes 712 Mbits/sec
+[ 5] 3.00-4.00 sec 83.8 MBytes 703 Mbits/sec
+[ 5] 4.00-5.00 sec 85.9 MBytes 720 Mbits/sec
+[ 5] 5.00-6.00 sec 78.9 MBytes 662 Mbits/sec
+[ 5] 6.00-7.00 sec 81.2 MBytes 682 Mbits/sec
+[ 5] 7.00-8.00 sec 80.5 MBytes 675 Mbits/sec
+[ 5] 8.00-9.00 sec 79.4 MBytes 666 Mbits/sec
+[ 5] 9.00-10.00 sec 82.2 MBytes 689 Mbits/sec
+[ 5] 10.00-11.00 sec 82.0 MBytes 688 Mbits/sec
+[ 5] 11.00-12.00 sec 84.2 MBytes 707 Mbits/sec
+[ 5] 12.00-13.00 sec 71.0 MBytes 596 Mbits/sec
+[ 5] 13.00-14.00 sec 69.4 MBytes 582 Mbits/sec
+[ 5] 14.00-15.00 sec 80.2 MBytes 673 Mbits/sec
+[ 5] 15.00-16.00 sec 74.5 MBytes 625 Mbits/sec
+
+[Rx Counter]:
+ * CCA (CCK, OFDM, Total) = (0, 2455, 2455)
+ * False Alarm (CCK, OFDM, Total) = (0, 69, 69)
+ * CCK cnt (ok, err) = (0, 0)
+ * OFDM cnt (ok, err) = (1239, 2)
+ * HT cnt (ok, err) = (0, 0)
+ * VHT cnt (ok, err) = (21, 12109)
+
+The "VHT ok" number is not believable.
+
+And without SUPPORTS_AMSDU_IN_AMPDU:
+
+Reverse mode, remote host 192.168.0.1 is sending
+[ 5] local 192.168.0.50 port 50030 connected to 192.168.0.1 port 5201
+[ ID] Interval Transfer Bitrate
+[ 5] 0.00-1.00 sec 70.5 MBytes 591 Mbits/sec
+[ 5] 1.00-2.00 sec 86.9 MBytes 729 Mbits/sec
+[ 5] 2.00-3.00 sec 98.6 MBytes 827 Mbits/sec
+[ 5] 3.00-4.00 sec 97.4 MBytes 817 Mbits/sec
+[ 5] 4.00-5.00 sec 98.6 MBytes 827 Mbits/sec
+[ 5] 5.00-6.00 sec 96.9 MBytes 813 Mbits/sec
+[ 5] 6.00-7.00 sec 98.2 MBytes 824 Mbits/sec
+[ 5] 7.00-8.00 sec 98.0 MBytes 822 Mbits/sec
+[ 5] 8.00-9.00 sec 99.9 MBytes 838 Mbits/sec
+[ 5] 9.00-10.00 sec 99.2 MBytes 833 Mbits/sec
+[ 5] 10.00-11.00 sec 98.0 MBytes 822 Mbits/sec
+[ 5] 11.00-12.00 sec 98.1 MBytes 823 Mbits/sec
+[ 5] 12.00-13.00 sec 97.0 MBytes 814 Mbits/sec
+[ 5] 13.00-14.00 sec 98.2 MBytes 824 Mbits/sec
+[ 5] 14.00-15.00 sec 98.5 MBytes 826 Mbits/sec
+[ 5] 15.00-16.00 sec 97.4 MBytes 817 Mbits/sec
+
+[Rx Counter]:
+ * CCA (CCK, OFDM, Total) = (0, 3860, 3860)
+ * False Alarm (CCK, OFDM, Total) = (0, 2, 2)
+ * CCK cnt (ok, err) = (0, 0)
+ * OFDM cnt (ok, err) = (1486, 0)
+ * HT cnt (ok, err) = (0, 0)
+ * VHT cnt (ok, err) = (7399, 9118)
+
+Add a new member "amsdu_in_ampdu" in struct rtw_chip_info and use it
+to set SUPPORTS_AMSDU_IN_AMPDU only for the other chips.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/6202ccfb-feb0-4107-a08d-db2699e179f0@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/main.c | 3 ++-
+ drivers/net/wireless/realtek/rtw88/main.h | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8812a.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8814a.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8821a.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
+ 8 files changed, 9 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/main.c
++++ b/drivers/net/wireless/realtek/rtw88/main.c
+@@ -2242,7 +2242,8 @@ int rtw_register_hw(struct rtw_dev *rtwd
+ ieee80211_hw_set(hw, SUPPORTS_PS);
+ ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
+ ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
+- ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
++ if (rtwdev->chip->amsdu_in_ampdu)
++ ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
+ ieee80211_hw_set(hw, HAS_RATE_CONTROL);
+ ieee80211_hw_set(hw, TX_AMSDU);
+ ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS);
+--- a/drivers/net/wireless/realtek/rtw88/main.h
++++ b/drivers/net/wireless/realtek/rtw88/main.h
+@@ -1230,6 +1230,7 @@ struct rtw_chip_info {
+ u16 fw_fifo_addr[RTW_FW_FIFO_MAX];
+ const struct rtw_fwcd_segs *fwcd_segs;
+
++ bool amsdu_in_ampdu;
+ u8 usb_tx_agg_desc_num;
+ bool hw_feature_report;
+ u8 c2h_ra_report_size;
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812a.c
+@@ -1076,6 +1076,7 @@ const struct rtw_chip_info rtw8812a_hw_s
+ .rfe_defs = rtw8812a_rfe_defs,
+ .rfe_defs_size = ARRAY_SIZE(rtw8812a_rfe_defs),
+ .rx_ldpc = false,
++ .amsdu_in_ampdu = true,
+ .hw_feature_report = false,
+ .c2h_ra_report_size = 4,
+ .old_datarate_fb_limit = true,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8814a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814a.c
+@@ -2200,6 +2200,7 @@ const struct rtw_chip_info rtw8814a_hw_s
+ .rx_ldpc = true,
+ .max_power_index = 0x3f,
+ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
++ .amsdu_in_ampdu = false, /* RX speed is better without AMSDU */
+ .usb_tx_agg_desc_num = 3,
+ .hw_feature_report = false,
+ .c2h_ra_report_size = 6,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821a.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821a.c
+@@ -1176,6 +1176,7 @@ const struct rtw_chip_info rtw8821a_hw_s
+ .rfe_defs = rtw8821a_rfe_defs,
+ .rfe_defs_size = ARRAY_SIZE(rtw8821a_rfe_defs),
+ .rx_ldpc = false,
++ .amsdu_in_ampdu = true,
+ .hw_feature_report = false,
+ .c2h_ra_report_size = 4,
+ .old_datarate_fb_limit = true,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+@@ -1991,6 +1991,7 @@ const struct rtw_chip_info rtw8821c_hw_s
+ .band = RTW_BAND_2G | RTW_BAND_5G,
+ .page_size = TX_PAGE_SIZE,
+ .dig_min = 0x1c,
++ .amsdu_in_ampdu = true,
+ .usb_tx_agg_desc_num = 3,
+ .hw_feature_report = true,
+ .c2h_ra_report_size = 7,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+@@ -2532,6 +2532,7 @@ const struct rtw_chip_info rtw8822b_hw_s
+ .band = RTW_BAND_2G | RTW_BAND_5G,
+ .page_size = TX_PAGE_SIZE,
+ .dig_min = 0x1c,
++ .amsdu_in_ampdu = true,
+ .usb_tx_agg_desc_num = 3,
+ .hw_feature_report = true,
+ .c2h_ra_report_size = 7,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -5350,6 +5350,7 @@ const struct rtw_chip_info rtw8822c_hw_s
+ .band = RTW_BAND_2G | RTW_BAND_5G,
+ .page_size = TX_PAGE_SIZE,
+ .dig_min = 0x20,
++ .amsdu_in_ampdu = true,
+ .usb_tx_agg_desc_num = 3,
+ .hw_feature_report = true,
+ .c2h_ra_report_size = 7,
diff --git a/package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch b/package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch
new file mode 100644
index 0000000000..5082d77c5e
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/099-v6.16-wifi-rtw88-Fix-the-module-names-printed-in-dmesg.patch
@@ -0,0 +1,230 @@
+From 581cf3a9cb61daae1009c2380b228f40177046d8 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Wed, 2 Apr 2025 20:54:30 +0300
+Subject: [PATCH] wifi: rtw88: Fix the module names printed in dmesg
+
+The rtw88 module names all start with the "rtw88_" prefix, but the
+messages in dmesg mostly use the "rtw_" prefix. The messages from
+rtw88_8723cs don't even have the underscore.
+
+Use the KBUILD_MODNAME macro in every driver. This ensures that the
+messages in dmesg will always use the module name.
+
+Before:
+
+Mar 17 15:54:19 ideapad2 kernel: rtw_8814au 2-4:1.0: Firmware version 33.6.0, H2C version 6
+
+After:
+
+Mar 17 16:33:35 ideapad2 kernel: rtw88_8814au 2-4:1.0: Firmware version 33.6.0, H2C version 6
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/29cd29ba-bc51-4d5b-ad48-a43c6ce72d56@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8723cs.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8723de.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8723ds.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8723du.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8812au.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8814ae.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8814au.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8821au.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8821cs.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8821cu.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822be.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822bs.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822ce.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822cs.c | 2 +-
+ drivers/net/wireless/realtek/rtw88/rtw8822cu.c | 2 +-
+ 17 files changed, 17 insertions(+), 17 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723cs.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723cs.c
+@@ -19,7 +19,7 @@ static const struct sdio_device_id rtw_8
+ MODULE_DEVICE_TABLE(sdio, rtw_8723cs_id_table);
+
+ static struct sdio_driver rtw_8723cs_driver = {
+- .name = "rtw8723cs",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8723cs_id_table,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723de.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723de.c
+@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_87
+ MODULE_DEVICE_TABLE(pci, rtw_8723de_id_table);
+
+ static struct pci_driver rtw_8723de_driver = {
+- .name = "rtw_8723de",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8723de_id_table,
+ .probe = rtw_pci_probe,
+ .remove = rtw_pci_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723ds.c
+@@ -25,7 +25,7 @@ static const struct sdio_device_id rtw_8
+ MODULE_DEVICE_TABLE(sdio, rtw_8723ds_id_table);
+
+ static struct sdio_driver rtw_8723ds_driver = {
+- .name = "rtw_8723ds",
++ .name = KBUILD_MODNAME,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+ .id_table = rtw_8723ds_id_table,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723du.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723du.c
+@@ -24,7 +24,7 @@ static int rtw8723du_probe(struct usb_in
+ }
+
+ static struct usb_driver rtw_8723du_driver = {
+- .name = "rtw_8723du",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8723du_id_table,
+ .probe = rtw8723du_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8812au.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8812au.c
+@@ -82,7 +82,7 @@ static const struct usb_device_id rtw_88
+ MODULE_DEVICE_TABLE(usb, rtw_8812au_id_table);
+
+ static struct usb_driver rtw_8812au_driver = {
+- .name = "rtw_8812au",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8812au_id_table,
+ .probe = rtw_usb_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814ae.c
+@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_88
+ MODULE_DEVICE_TABLE(pci, rtw_8814ae_id_table);
+
+ static struct pci_driver rtw_8814ae_driver = {
+- .name = "rtw_8814ae",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8814ae_id_table,
+ .probe = rtw_pci_probe,
+ .remove = rtw_pci_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8814au.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8814au.c
+@@ -42,7 +42,7 @@ static const struct usb_device_id rtw_88
+ MODULE_DEVICE_TABLE(usb, rtw_8814au_id_table);
+
+ static struct usb_driver rtw_8814au_driver = {
+- .name = "rtw_8814au",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8814au_id_table,
+ .probe = rtw_usb_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821au.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821au.c
+@@ -66,7 +66,7 @@ static const struct usb_device_id rtw_88
+ MODULE_DEVICE_TABLE(usb, rtw_8821au_id_table);
+
+ static struct usb_driver rtw_8821au_driver = {
+- .name = "rtw_8821au",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8821au_id_table,
+ .probe = rtw_usb_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
+@@ -21,7 +21,7 @@ static const struct pci_device_id rtw_88
+ MODULE_DEVICE_TABLE(pci, rtw_8821ce_id_table);
+
+ static struct pci_driver rtw_8821ce_driver = {
+- .name = "rtw_8821ce",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8821ce_id_table,
+ .probe = rtw_pci_probe,
+ .remove = rtw_pci_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821cs.c
+@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
+ MODULE_DEVICE_TABLE(sdio, rtw_8821cs_id_table);
+
+ static struct sdio_driver rtw_8821cs_driver = {
+- .name = "rtw_8821cs",
++ .name = KBUILD_MODNAME,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+ .id_table = rtw_8821cs_id_table,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c
+@@ -48,7 +48,7 @@ static int rtw_8821cu_probe(struct usb_i
+ }
+
+ static struct usb_driver rtw_8821cu_driver = {
+- .name = "rtw_8821cu",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8821cu_id_table,
+ .probe = rtw_8821cu_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822be.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822be.c
+@@ -17,7 +17,7 @@ static const struct pci_device_id rtw_88
+ MODULE_DEVICE_TABLE(pci, rtw_8822be_id_table);
+
+ static struct pci_driver rtw_8822be_driver = {
+- .name = "rtw_8822be",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8822be_id_table,
+ .probe = rtw_pci_probe,
+ .remove = rtw_pci_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822bs.c
+@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
+ MODULE_DEVICE_TABLE(sdio, rtw_8822bs_id_table);
+
+ static struct sdio_driver rtw_8822bs_driver = {
+- .name = "rtw_8822bs",
++ .name = KBUILD_MODNAME,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+ .id_table = rtw_8822bs_id_table,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
+@@ -88,7 +88,7 @@ static int rtw8822bu_probe(struct usb_in
+ }
+
+ static struct usb_driver rtw_8822bu_driver = {
+- .name = "rtw_8822bu",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8822bu_id_table,
+ .probe = rtw8822bu_probe,
+ .disconnect = rtw_usb_disconnect,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
+@@ -21,7 +21,7 @@ static const struct pci_device_id rtw_88
+ MODULE_DEVICE_TABLE(pci, rtw_8822ce_id_table);
+
+ static struct pci_driver rtw_8822ce_driver = {
+- .name = "rtw_8822ce",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8822ce_id_table,
+ .probe = rtw_pci_probe,
+ .remove = rtw_pci_remove,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822cs.c
+@@ -20,7 +20,7 @@ static const struct sdio_device_id rtw_8
+ MODULE_DEVICE_TABLE(sdio, rtw_8822cs_id_table);
+
+ static struct sdio_driver rtw_8822cs_driver = {
+- .name = "rtw_8822cs",
++ .name = KBUILD_MODNAME,
+ .probe = rtw_sdio_probe,
+ .remove = rtw_sdio_remove,
+ .id_table = rtw_8822cs_id_table,
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822cu.c
+@@ -32,7 +32,7 @@ static int rtw8822cu_probe(struct usb_in
+ }
+
+ static struct usb_driver rtw_8822cu_driver = {
+- .name = "rtw_8822cu",
++ .name = KBUILD_MODNAME,
+ .id_table = rtw_8822cu_id_table,
+ .probe = rtw8822cu_probe,
+ .disconnect = rtw_usb_disconnect,
diff --git a/package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch b/package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch
new file mode 100644
index 0000000000..ae2d2f5cff
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/100-v6.16-wifi-rtw88-sdio-map-mgmt-frames-to-queue-TX_DESC_QSE.patch
@@ -0,0 +1,36 @@
+From b2effcdc237979dcc533d446a792fc54fd0e1213 Mon Sep 17 00:00:00 2001
+From: Zhen XIN <zhen.xin@nokia-sbell.com>
+Date: Thu, 10 Apr 2025 15:42:17 +0000
+Subject: [PATCH] wifi: rtw88: sdio: map mgmt frames to queue TX_DESC_QSEL_MGMT
+
+The rtw88-sdio do not work in AP mode due to the lack of TX status report
+for management frames.
+
+Map the management frames to queue TX_DESC_QSEL_MGMT, which enables the
+chip to generate TX reports for these frames
+
+Tested-on: rtl8723ds
+
+Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
+Signed-off-by: Zhen XIN <zhen.xin@nokia-sbell.com>
+Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250410154217.1849977-3-zhen.xin@nokia-sbell.com
+---
+ drivers/net/wireless/realtek/rtw88/sdio.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -718,10 +718,7 @@ static u8 rtw_sdio_get_tx_qsel(struct rt
+ case RTW_TX_QUEUE_H2C:
+ return TX_DESC_QSEL_H2C;
+ case RTW_TX_QUEUE_MGMT:
+- if (rtw_chip_wcpu_11n(rtwdev))
+- return TX_DESC_QSEL_HIGH;
+- else
+- return TX_DESC_QSEL_MGMT;
++ return TX_DESC_QSEL_MGMT;
+ case RTW_TX_QUEUE_HI0:
+ return TX_DESC_QSEL_HIGH;
+ default:
diff --git a/package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch b/package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch
new file mode 100644
index 0000000000..aa85137ae2
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/101-v6.16-wifi-rtw88-sdio-call-rtw_sdio_indicate_tx_status-unc.patch
@@ -0,0 +1,37 @@
+From fc5f5a0ec463ae6a07850428bd3082947e01d276 Mon Sep 17 00:00:00 2001
+From: Zhen XIN <zhen.xin@nokia-sbell.com>
+Date: Thu, 10 Apr 2025 15:42:16 +0000
+Subject: [PATCH] wifi: rtw88: sdio: call rtw_sdio_indicate_tx_status
+ unconditionally
+
+The rtw88-sdio do not work in AP mode due to the lack of TX status report
+for management frames.
+
+Make the invocation of rtw_sdio_indicate_tx_status unconditional and cover
+all packet queues
+
+Tested-on: rtl8723ds
+
+Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
+Signed-off-by: Zhen XIN <zhen.xin@nokia-sbell.com>
+Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250410154217.1849977-2-zhen.xin@nokia-sbell.com
+---
+ drivers/net/wireless/realtek/rtw88/sdio.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -1224,10 +1224,7 @@ static void rtw_sdio_process_tx_queue(st
+ return;
+ }
+
+- if (queue <= RTW_TX_QUEUE_VO)
+- rtw_sdio_indicate_tx_status(rtwdev, skb);
+- else
+- dev_kfree_skb_any(skb);
++ rtw_sdio_indicate_tx_status(rtwdev, skb);
+ }
+
+ static void rtw_sdio_tx_handler(struct work_struct *work)
diff --git a/package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch b/package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch
new file mode 100644
index 0000000000..87d72bf88b
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/102-v6.16-wifi-rtw88-do-not-ignore-hardware-read-error-during-.patch
@@ -0,0 +1,32 @@
+From 20d3c19bd8f9b498173c198eadf54580c8caa336 Mon Sep 17 00:00:00 2001
+From: Dmitry Antipov <dmantipov@yandex.ru>
+Date: Tue, 15 Apr 2025 12:07:20 +0300
+Subject: [PATCH] wifi: rtw88: do not ignore hardware read error during DPK
+
+In 'rtw8822c_dpk_cal_coef1()', do not ignore error returned
+by 'check_hw_ready()' but issue a warning to denote possible
+DPK issue. Compile tested only.
+
+Found by Linux Verification Center (linuxtesting.org) with SVACE.
+
+Fixes: 5227c2ee453d ("rtw88: 8822c: add SW DPK support")
+Suggested-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250415090720.194048-1-dmantipov@yandex.ru
+---
+ drivers/net/wireless/realtek/rtw88/rtw8822c.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+@@ -3951,7 +3951,8 @@ static void rtw8822c_dpk_cal_coef1(struc
+ rtw_write32(rtwdev, REG_NCTL0, 0x00001148);
+ rtw_write32(rtwdev, REG_NCTL0, 0x00001149);
+
+- check_hw_ready(rtwdev, 0x2d9c, MASKBYTE0, 0x55);
++ if (!check_hw_ready(rtwdev, 0x2d9c, MASKBYTE0, 0x55))
++ rtw_warn(rtwdev, "DPK stuck, performance may be suboptimal");
+
+ rtw_write8(rtwdev, 0x1b10, 0x0);
+ rtw_write32_mask(rtwdev, REG_NCTL0, BIT_SUBPAGE, 0x0000000c);
diff --git a/package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch b/package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch
new file mode 100644
index 0000000000..901e471508
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/103-v6.16-wifi-rtw88-Fix-RX-aggregation-settings-for-RTL8723DS.patch
@@ -0,0 +1,44 @@
+From 0ffa1ba81b35ba147c9df6206a61499a156b0128 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 2 May 2025 14:49:01 +0300
+Subject: [PATCH] wifi: rtw88: Fix RX aggregation settings for RTL8723DS
+
+Use the same RX aggregation size and timeout used by the out-of-tree
+RTL8723DS driver. Also set mystery bit 31 of REG_RXDMA_AGG_PG_TH. This
+improves the RX speed from ~44 Mbps to ~67 Mbps.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/4c79fdc1-54bc-4986-9931-bb3ceb418b97@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/sdio.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -677,12 +677,22 @@ static void rtw_sdio_enable_rx_aggregati
+ {
+ u8 size, timeout;
+
+- if (rtw_chip_wcpu_11n(rtwdev)) {
++ switch (rtwdev->chip->id) {
++ case RTW_CHIP_TYPE_8703B:
++ case RTW_CHIP_TYPE_8821A:
++ case RTW_CHIP_TYPE_8812A:
+ size = 0x6;
+ timeout = 0x6;
+- } else {
++ break;
++ case RTW_CHIP_TYPE_8723D:
++ size = 0xa;
++ timeout = 0x3;
++ rtw_write8_set(rtwdev, REG_RXDMA_AGG_PG_TH + 3, BIT(7));
++ break;
++ default:
+ size = 0xff;
+ timeout = 0x1;
++ break;
+ }
+
+ /* Make the firmware honor the size limit configured below */
diff --git a/package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch b/package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch
new file mode 100644
index 0000000000..d994a6aa69
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/104-v6.16-wifi-rtw88-Handle-RTL8723D-S-with-blank-efuse.patch
@@ -0,0 +1,198 @@
+From 2c17afde9ff6713f3e080ed1ea1a4bd7480be9aa Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Fri, 2 May 2025 14:49:34 +0300
+Subject: [PATCH] wifi: rtw88: Handle RTL8723D(S) with blank efuse
+
+Some users have RTL8723DS chips with nearly blank efuse. Currently these
+chips cannot connect when using rtw88, but they do work using the old
+out-of-tree driver.
+
+Use reasonable default values for TX power, antenna configuration, and
+crystal cap if the chip's efuse is missing these things.
+
+RTL8723D can use the same default values as RTL8703B, so simply move
+the code from rtl8703b_read_efuse() to the shared function
+__rtl8723x_read_efuse().
+
+Link: https://github.com/lwfinger/rtw88/issues/157
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/5734afe7-0870-40b2-acd4-5657a02d7c56@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8703b.c | 60 -------------------
+ drivers/net/wireless/realtek/rtw88/rtw8723x.c | 59 ++++++++++++++++++
+ 2 files changed, 59 insertions(+), 60 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
+@@ -519,15 +519,6 @@ static const struct rtw_rqpn rqpn_table_
+ RTW_DMA_MAPPING_EXTRA, RTW_DMA_MAPPING_HIGH},
+ };
+
+-/* Default power index table for RTL8703B, used if EFUSE does not
+- * contain valid data. Replaces EFUSE data from offset 0x10 (start of
+- * txpwr_idx_table).
+- */
+-static const u8 rtw8703b_txpwr_idx_table[] = {
+- 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
+- 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02
+-};
+-
+ static void try_mac_from_devicetree(struct rtw_dev *rtwdev)
+ {
+ struct device_node *node = rtwdev->dev->of_node;
+@@ -544,15 +535,9 @@ static void try_mac_from_devicetree(stru
+ }
+ }
+
+-#define DBG_EFUSE_FIX(rtwdev, name) \
+- rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Fixed invalid EFUSE value: " \
+- # name "=0x%x\n", rtwdev->efuse.name)
+-
+ static int rtw8703b_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+ {
+ struct rtw_efuse *efuse = &rtwdev->efuse;
+- u8 *pwr = (u8 *)efuse->txpwr_idx_table;
+- bool valid = false;
+ int ret;
+
+ ret = rtw8723x_read_efuse(rtwdev, log_map);
+@@ -562,51 +547,6 @@ static int rtw8703b_read_efuse(struct rt
+ if (!is_valid_ether_addr(efuse->addr))
+ try_mac_from_devicetree(rtwdev);
+
+- /* If TX power index table in EFUSE is invalid, fall back to
+- * built-in table.
+- */
+- for (int i = 0; i < ARRAY_SIZE(rtw8703b_txpwr_idx_table); i++)
+- if (pwr[i] != 0xff) {
+- valid = true;
+- break;
+- }
+- if (!valid) {
+- for (int i = 0; i < ARRAY_SIZE(rtw8703b_txpwr_idx_table); i++)
+- pwr[i] = rtw8703b_txpwr_idx_table[i];
+- rtw_dbg(rtwdev, RTW_DBG_EFUSE,
+- "Replaced invalid EFUSE TX power index table.");
+- rtw8723x_debug_txpwr_limit(rtwdev,
+- efuse->txpwr_idx_table, 2);
+- }
+-
+- /* Override invalid antenna settings. */
+- if (efuse->bt_setting == 0xff) {
+- /* shared antenna */
+- efuse->bt_setting |= BIT(0);
+- /* RF path A */
+- efuse->bt_setting &= ~BIT(6);
+- DBG_EFUSE_FIX(rtwdev, bt_setting);
+- }
+-
+- /* Override invalid board options: The coex code incorrectly
+- * assumes that if bits 6 & 7 are set the board doesn't
+- * support coex. Regd is also derived from rf_board_option and
+- * should be 0 if there's no valid data.
+- */
+- if (efuse->rf_board_option == 0xff) {
+- efuse->regd = 0;
+- efuse->rf_board_option &= GENMASK(5, 0);
+- DBG_EFUSE_FIX(rtwdev, rf_board_option);
+- }
+-
+- /* Override invalid crystal cap setting, default comes from
+- * vendor driver. Chip specific.
+- */
+- if (efuse->crystal_cap == 0xff) {
+- efuse->crystal_cap = 0x20;
+- DBG_EFUSE_FIX(rtwdev, crystal_cap);
+- }
+-
+ return 0;
+ }
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.c
+@@ -69,6 +69,9 @@ static void __rtw8723x_lck(struct rtw_de
+ #define DBG_EFUSE_2BYTE(rtwdev, map, name) \
+ rtw_dbg(rtwdev, RTW_DBG_EFUSE, # name "=0x%02x%02x\n", \
+ (map)->name[0], (map)->name[1])
++#define DBG_EFUSE_FIX(rtwdev, name) \
++ rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Fixed invalid EFUSE value: " \
++ # name "=0x%x\n", rtwdev->efuse.name)
+
+ static void rtw8723xe_efuse_debug(struct rtw_dev *rtwdev,
+ struct rtw8723x_efuse *map)
+@@ -238,10 +241,21 @@ static void rtw8723xs_efuse_parsing(stru
+ ether_addr_copy(efuse->addr, map->s.mac_addr);
+ }
+
++/* Default power index table for RTL8703B/RTL8723D, used if EFUSE does
++ * not contain valid data. Replaces EFUSE data from offset 0x10 (start
++ * of txpwr_idx_table).
++ */
++static const u8 rtw8723x_txpwr_idx_table[] = {
++ 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D,
++ 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x02
++};
++
+ static int __rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
+ {
+ struct rtw_efuse *efuse = &rtwdev->efuse;
++ u8 *pwr = (u8 *)efuse->txpwr_idx_table;
+ struct rtw8723x_efuse *map;
++ bool valid = false;
+ int i;
+
+ map = (struct rtw8723x_efuse *)log_map;
+@@ -279,6 +293,51 @@ static int __rtw8723x_read_efuse(struct
+ return -EOPNOTSUPP;
+ }
+
++ /* If TX power index table in EFUSE is invalid, fall back to
++ * built-in table.
++ */
++ for (i = 0; i < ARRAY_SIZE(rtw8723x_txpwr_idx_table); i++)
++ if (pwr[i] != 0xff) {
++ valid = true;
++ break;
++ }
++ if (!valid) {
++ for (i = 0; i < ARRAY_SIZE(rtw8723x_txpwr_idx_table); i++)
++ pwr[i] = rtw8723x_txpwr_idx_table[i];
++ rtw_dbg(rtwdev, RTW_DBG_EFUSE,
++ "Replaced invalid EFUSE TX power index table.");
++ rtw8723x_debug_txpwr_limit(rtwdev,
++ efuse->txpwr_idx_table, 2);
++ }
++
++ /* Override invalid antenna settings. */
++ if (efuse->bt_setting == 0xff) {
++ /* shared antenna */
++ efuse->bt_setting |= BIT(0);
++ /* RF path A */
++ efuse->bt_setting &= ~BIT(6);
++ DBG_EFUSE_FIX(rtwdev, bt_setting);
++ }
++
++ /* Override invalid board options: The coex code incorrectly
++ * assumes that if bits 6 & 7 are set the board doesn't
++ * support coex. Regd is also derived from rf_board_option and
++ * should be 0 if there's no valid data.
++ */
++ if (efuse->rf_board_option == 0xff) {
++ efuse->regd = 0;
++ efuse->rf_board_option &= GENMASK(5, 0);
++ DBG_EFUSE_FIX(rtwdev, rf_board_option);
++ }
++
++ /* Override invalid crystal cap setting, default comes from
++ * vendor driver. Chip specific.
++ */
++ if (efuse->crystal_cap == 0xff) {
++ efuse->crystal_cap = 0x20;
++ DBG_EFUSE_FIX(rtwdev, crystal_cap);
++ }
++
+ return 0;
+ }
+
diff --git a/package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch b/package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch
new file mode 100644
index 0000000000..8321ca8c94
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/105-v6.16-wifi-rtw88-rtw8822bu-VID-PID-for-BUFFALO-WI-U2-866DM.patch
@@ -0,0 +1,27 @@
+From b7f0cc647e52296a3d4dd727b6479dcd6d7e364e Mon Sep 17 00:00:00 2001
+From: Yuuki NAGAO <wf.yn386@gmail.com>
+Date: Sat, 3 May 2025 09:32:27 +0900
+Subject: [PATCH] wifi: rtw88: rtw8822bu VID/PID for BUFFALO WI-U2-866DM
+
+Add VID/PID 0411/03d1 for recently released
+BUFFALO WI-U2-866DM USB WiFi adapter.
+
+Signed-off-by: Yuuki NAGAO <wf.yn386@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250503003227.6673-1-wf.yn386@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
++++ b/drivers/net/wireless/realtek/rtw88/rtw8822bu.c
+@@ -77,6 +77,8 @@ static const struct usb_device_id rtw_88
+ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* Mercusys MA30N */
+ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3322, 0xff, 0xff, 0xff),
+ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* D-Link DWA-T185 rev. A1 */
++ { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x03d1, 0xff, 0xff, 0xff),
++ .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* BUFFALO WI-U2-866DM */
+ {},
+ };
+ MODULE_DEVICE_TABLE(usb, rtw_8822bu_id_table);
diff --git a/package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch b/package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch
new file mode 100644
index 0000000000..9ed1162ab8
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/106-v6.16-wifi-rtw88-usb-Reduce-control-message-timeout-to-500.patch
@@ -0,0 +1,52 @@
+From 490340faddea461319652ce36dbc7c1b4482c35e Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Sat, 10 May 2025 15:21:25 +0300
+Subject: [PATCH] wifi: rtw88: usb: Reduce control message timeout to 500 ms
+
+RTL8811AU stops responding during the firmware download on some systems:
+
+[ 809.256440] rtw_8821au 5-2.1:1.0: Firmware version 42.4.0, H2C version 0
+[ 812.759142] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: renamed from wlan0
+[ 837.315388] rtw_8821au 1-4:1.0: write register 0x1ef4 failed with -110
+[ 867.524259] rtw_8821au 1-4:1.0: write register 0x1ef8 failed with -110
+[ 868.930976] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: entered promiscuous mode
+[ 897.730952] rtw_8821au 1-4:1.0: write register 0x1efc failed with -110
+
+Each write takes 30 seconds to fail because that's the timeout currently
+used for control messages in rtw_usb_write().
+
+In this scenario the firmware download takes at least 2000 seconds.
+Because this is done from the USB probe function, the long delay makes
+other things in the system hang.
+
+Reduce the timeout to 500 ms. This is the value used by the official USB
+wifi drivers from Realtek.
+
+Of course this only makes things hang for ~30 seconds instead of ~30
+minutes. It doesn't fix the firmware download.
+
+Tested with RTL8822CU, RTL8812BU, RTL8811CU, RTL8814AU, RTL8811AU,
+RTL8812AU, RTL8821AU, RTL8723DU.
+
+Cc: stable@vger.kernel.org
+Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support")
+Link: https://github.com/lwfinger/rtw88/issues/344
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/1e35dd26-3f10-40b1-b2b4-f72184a26611@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/usb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -139,7 +139,7 @@ static void rtw_usb_write(struct rtw_dev
+
+ ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
+ RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE,
+- addr, 0, data, len, 30000);
++ addr, 0, data, len, 500);
+ if (ret < 0 && ret != -ENODEV && count++ < 4)
+ rtw_err(rtwdev, "write register 0x%x failed with %d\n",
+ addr, ret);
diff --git a/package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch b/package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch
new file mode 100644
index 0000000000..8031e46556
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/107-v6.16-wifi-rtw88-usb-Upload-the-firmware-in-bigger-chunks.patch
@@ -0,0 +1,214 @@
+From 80fe0bc1659c0ccc79d082e426fa376be5df9c04 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Sat, 10 May 2025 15:22:24 +0300
+Subject: [PATCH] wifi: rtw88: usb: Upload the firmware in bigger chunks
+
+RTL8811AU stops responding during the firmware download on some systems:
+
+[ 809.256440] rtw_8821au 5-2.1:1.0: Firmware version 42.4.0, H2C version 0
+[ 812.759142] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: renamed from wlan0
+[ 837.315388] rtw_8821au 1-4:1.0: write register 0x1ef4 failed with -110
+[ 867.524259] rtw_8821au 1-4:1.0: write register 0x1ef8 failed with -110
+[ 868.930976] rtw_8821au 5-2.1:1.0 wlp48s0f4u2u1: entered promiscuous mode
+[ 897.730952] rtw_8821au 1-4:1.0: write register 0x1efc failed with -110
+
+Maybe it takes too long when writing the firmware 4 bytes at a time.
+
+Write 196 bytes at a time for RTL8821AU, RTL8811AU, and RTL8812AU,
+and 254 bytes at a time for RTL8723DU. These are the sizes used in
+their official drivers. Tested with all these chips.
+
+Cc: stable@vger.kernel.org
+Link: https://github.com/lwfinger/rtw88/issues/344
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Acked-by: Ping-Ke Shih <pkshih@realtek.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/43f1daad-3ec0-4a3b-a50c-9cd9eb2c2f52@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/hci.h | 8 ++++
+ drivers/net/wireless/realtek/rtw88/mac.c | 11 +++--
+ drivers/net/wireless/realtek/rtw88/mac.h | 2 +
+ drivers/net/wireless/realtek/rtw88/pci.c | 2 +
+ drivers/net/wireless/realtek/rtw88/sdio.c | 2 +
+ drivers/net/wireless/realtek/rtw88/usb.c | 55 +++++++++++++++++++++++
+ 6 files changed, 76 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/hci.h
++++ b/drivers/net/wireless/realtek/rtw88/hci.h
+@@ -19,6 +19,8 @@ struct rtw_hci_ops {
+ void (*link_ps)(struct rtw_dev *rtwdev, bool enter);
+ void (*interface_cfg)(struct rtw_dev *rtwdev);
+ void (*dynamic_rx_agg)(struct rtw_dev *rtwdev, bool enable);
++ void (*write_firmware_page)(struct rtw_dev *rtwdev, u32 page,
++ const u8 *data, u32 size);
+
+ int (*write_data_rsvd_page)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
+ int (*write_data_h2c)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
+@@ -79,6 +81,12 @@ static inline void rtw_hci_dynamic_rx_ag
+ rtwdev->hci.ops->dynamic_rx_agg(rtwdev, enable);
+ }
+
++static inline void rtw_hci_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
++ const u8 *data, u32 size)
++{
++ rtwdev->hci.ops->write_firmware_page(rtwdev, page, data, size);
++}
++
+ static inline int
+ rtw_hci_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf, u32 size)
+ {
+--- a/drivers/net/wireless/realtek/rtw88/mac.c
++++ b/drivers/net/wireless/realtek/rtw88/mac.c
+@@ -856,8 +856,8 @@ fwdl_ready:
+ }
+ }
+
+-static void
+-write_firmware_page(struct rtw_dev *rtwdev, u32 page, const u8 *data, u32 size)
++void rtw_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
++ const u8 *data, u32 size)
+ {
+ u32 val32;
+ u32 block_nr;
+@@ -887,6 +887,7 @@ write_firmware_page(struct rtw_dev *rtwd
+ rtw_write32(rtwdev, write_addr, le32_to_cpu(remain_data));
+ }
+ }
++EXPORT_SYMBOL(rtw_write_firmware_page);
+
+ static int
+ download_firmware_legacy(struct rtw_dev *rtwdev, const u8 *data, u32 size)
+@@ -904,11 +905,13 @@ download_firmware_legacy(struct rtw_dev
+ rtw_write8_set(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT);
+
+ for (page = 0; page < total_page; page++) {
+- write_firmware_page(rtwdev, page, data, DLFW_PAGE_SIZE_LEGACY);
++ rtw_hci_write_firmware_page(rtwdev, page, data,
++ DLFW_PAGE_SIZE_LEGACY);
+ data += DLFW_PAGE_SIZE_LEGACY;
+ }
+ if (last_page_size)
+- write_firmware_page(rtwdev, page, data, last_page_size);
++ rtw_hci_write_firmware_page(rtwdev, page, data,
++ last_page_size);
+
+ if (!check_hw_ready(rtwdev, REG_MCUFW_CTRL, BIT_FWDL_CHK_RPT, 1)) {
+ rtw_err(rtwdev, "failed to check download firmware report\n");
+--- a/drivers/net/wireless/realtek/rtw88/mac.h
++++ b/drivers/net/wireless/realtek/rtw88/mac.h
+@@ -34,6 +34,8 @@ int rtw_pwr_seq_parser(struct rtw_dev *r
+ const struct rtw_pwr_seq_cmd * const *cmd_seq);
+ int rtw_mac_power_on(struct rtw_dev *rtwdev);
+ void rtw_mac_power_off(struct rtw_dev *rtwdev);
++void rtw_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
++ const u8 *data, u32 size);
+ int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw);
+ int rtw_mac_init(struct rtw_dev *rtwdev);
+ void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop);
+--- a/drivers/net/wireless/realtek/rtw88/pci.c
++++ b/drivers/net/wireless/realtek/rtw88/pci.c
+@@ -12,6 +12,7 @@
+ #include "fw.h"
+ #include "ps.h"
+ #include "debug.h"
++#include "mac.h"
+
+ static bool rtw_disable_msi;
+ static bool rtw_pci_disable_aspm;
+@@ -1602,6 +1603,7 @@ static const struct rtw_hci_ops rtw_pci_
+ .link_ps = rtw_pci_link_ps,
+ .interface_cfg = rtw_pci_interface_cfg,
+ .dynamic_rx_agg = NULL,
++ .write_firmware_page = rtw_write_firmware_page,
+
+ .read8 = rtw_pci_read8,
+ .read16 = rtw_pci_read16,
+--- a/drivers/net/wireless/realtek/rtw88/sdio.c
++++ b/drivers/net/wireless/realtek/rtw88/sdio.c
+@@ -10,6 +10,7 @@
+ #include <linux/mmc/host.h>
+ #include <linux/mmc/sdio_func.h>
+ #include "main.h"
++#include "mac.h"
+ #include "debug.h"
+ #include "fw.h"
+ #include "ps.h"
+@@ -1164,6 +1165,7 @@ static const struct rtw_hci_ops rtw_sdio
+ .link_ps = rtw_sdio_link_ps,
+ .interface_cfg = rtw_sdio_interface_cfg,
+ .dynamic_rx_agg = NULL,
++ .write_firmware_page = rtw_write_firmware_page,
+
+ .read8 = rtw_sdio_read8,
+ .read16 = rtw_sdio_read16,
+--- a/drivers/net/wireless/realtek/rtw88/usb.c
++++ b/drivers/net/wireless/realtek/rtw88/usb.c
+@@ -165,6 +165,60 @@ static void rtw_usb_write32(struct rtw_d
+ rtw_usb_write(rtwdev, addr, val, 4);
+ }
+
++static void rtw_usb_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
++ const u8 *data, u32 size)
++{
++ struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
++ struct usb_device *udev = rtwusb->udev;
++ u32 addr = FW_START_ADDR_LEGACY;
++ u8 *data_dup, *buf;
++ u32 n, block_size;
++ int ret;
++
++ switch (rtwdev->chip->id) {
++ case RTW_CHIP_TYPE_8723D:
++ block_size = 254;
++ break;
++ default:
++ block_size = 196;
++ break;
++ }
++
++ data_dup = kmemdup(data, size, GFP_KERNEL);
++ if (!data_dup)
++ return;
++
++ buf = data_dup;
++
++ rtw_write32_mask(rtwdev, REG_MCUFW_CTRL, BIT_ROM_PGE, page);
++
++ while (size > 0) {
++ if (size >= block_size)
++ n = block_size;
++ else if (size >= 8)
++ n = 8;
++ else
++ n = 1;
++
++ ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
++ RTW_USB_CMD_REQ, RTW_USB_CMD_WRITE,
++ addr, 0, buf, n, 500);
++ if (ret != n) {
++ if (ret != -ENODEV)
++ rtw_err(rtwdev,
++ "write 0x%x len %d failed: %d\n",
++ addr, n, ret);
++ break;
++ }
++
++ addr += n;
++ buf += n;
++ size -= n;
++ }
++
++ kfree(data_dup);
++}
++
+ static int dma_mapping_to_ep(enum rtw_dma_mapping dma_mapping)
+ {
+ switch (dma_mapping) {
+@@ -855,6 +909,7 @@ static const struct rtw_hci_ops rtw_usb_
+ .link_ps = rtw_usb_link_ps,
+ .interface_cfg = rtw_usb_interface_cfg,
+ .dynamic_rx_agg = rtw_usb_dynamic_rx_agg,
++ .write_firmware_page = rtw_usb_write_firmware_page,
+
+ .write8 = rtw_usb_write8,
+ .write16 = rtw_usb_write16,
diff --git a/package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch b/package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch
new file mode 100644
index 0000000000..8008b58ff4
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/108-v6.16-wifi-rtw88-Fix-the-random-error-beacon-valid-message.patch
@@ -0,0 +1,73 @@
+From f24d0d8c3cd7e4237f802c4d2f3bd4ac04572948 Mon Sep 17 00:00:00 2001
+From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Date: Sat, 10 May 2025 16:12:34 +0300
+Subject: [PATCH] wifi: rtw88: Fix the random "error beacon valid" messages for
+ USB
+
+All the USB devices have a problem in AP mode: uploading the updated
+beacon to the chip's reserved page can randomly fail:
+
+[34996.474304] rtw88_8723du 1-2:1.2: error beacon valid
+[34996.474788] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
+[34999.956369] rtw88_8723du 1-2:1.2: error beacon valid
+[34999.956846] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
+[34999.956855] rtw88_8723du 1-2:1.2: failed to download beacon
+[35017.978296] rtw88_8723du 1-2:1.2: error beacon valid
+[35017.978805] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
+[35017.978823] rtw88_8723du 1-2:1.2: failed to download beacon
+[35023.200395] rtw88_8723du 1-2:1.2: error beacon valid
+[35023.200869] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
+[35023.200875] rtw88_8723du 1-2:1.2: failed to download beacon
+[35478.680547] rtw88_8723du 1-2:1.2: error beacon valid
+[35478.681023] rtw88_8723du 1-2:1.2: failed to download drv rsvd page
+
+Disable some beacon-related hardware functions before uploading the
+beacon and enable them again after.
+
+Tested with RTL8723DU, RTL8812BU, RTL8822CE.
+
+Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/c248c40a-d432-47ed-90e0-d81ee6c32464@gmail.com
+---
+ drivers/net/wireless/realtek/rtw88/fw.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/fw.c
++++ b/drivers/net/wireless/realtek/rtw88/fw.c
+@@ -1467,7 +1467,7 @@ void rtw_add_rsvd_page_sta(struct rtw_de
+ int rtw_fw_write_data_rsvd_page(struct rtw_dev *rtwdev, u16 pg_addr,
+ u8 *buf, u32 size)
+ {
+- u8 bckp[2];
++ u8 bckp[3];
+ u8 val;
+ u16 rsvd_pg_head;
+ u32 bcn_valid_addr;
+@@ -1479,6 +1479,8 @@ int rtw_fw_write_data_rsvd_page(struct r
+ if (!size)
+ return -EINVAL;
+
++ bckp[2] = rtw_read8(rtwdev, REG_BCN_CTRL);
++
+ if (rtw_chip_wcpu_11n(rtwdev)) {
+ rtw_write32_set(rtwdev, REG_DWBCN0_CTRL, BIT_BCN_VALID);
+ } else {
+@@ -1492,6 +1494,9 @@ int rtw_fw_write_data_rsvd_page(struct r
+ val |= BIT_ENSWBCN >> 8;
+ rtw_write8(rtwdev, REG_CR + 1, val);
+
++ rtw_write8(rtwdev, REG_BCN_CTRL,
++ (bckp[2] & ~BIT_EN_BCN_FUNCTION) | BIT_DIS_TSF_UDT);
++
+ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE) {
+ val = rtw_read8(rtwdev, REG_FWHW_TXQ_CTRL + 2);
+ bckp[1] = val;
+@@ -1522,6 +1527,7 @@ restore:
+ rsvd_pg_head = rtwdev->fifo.rsvd_boundary;
+ rtw_write16(rtwdev, REG_FIFOPAGE_CTRL_2,
+ rsvd_pg_head | BIT_BCN_VALID_V1);
++ rtw_write8(rtwdev, REG_BCN_CTRL, bckp[2]);
+ if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
+ rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 2, bckp[1]);
+ rtw_write8(rtwdev, REG_CR + 1, bckp[0]);
diff --git a/package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch b/package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch
new file mode 100644
index 0000000000..11b73128db
--- /dev/null
+++ b/package/kernel/mac80211/patches/rtl/109-v6.16-wifi-rtw88-fix-the-para-buffer-size-to-avoid-reading.patch
@@ -0,0 +1,38 @@
+From 4c2c372de2e108319236203cce6de44d70ae15cd Mon Sep 17 00:00:00 2001
+From: Alexey Kodanev <aleksei.kodanev@bell-sw.com>
+Date: Tue, 13 May 2025 12:13:04 +0000
+Subject: [PATCH] wifi: rtw88: fix the 'para' buffer size to avoid reading out
+ of bounds
+
+Set the size to 6 instead of 2, since 'para' array is passed to
+'rtw_fw_bt_wifi_control(rtwdev, para[0], &para[1])', which reads
+5 bytes:
+
+void rtw_fw_bt_wifi_control(struct rtw_dev *rtwdev, u8 op_code, u8 *data)
+{
+ ...
+ SET_BT_WIFI_CONTROL_DATA1(h2c_pkt, *data);
+ SET_BT_WIFI_CONTROL_DATA2(h2c_pkt, *(data + 1));
+ ...
+ SET_BT_WIFI_CONTROL_DATA5(h2c_pkt, *(data + 4));
+
+Detected using the static analysis tool - Svace.
+Fixes: 4136214f7c46 ("rtw88: add BT co-existence support")
+Signed-off-by: Alexey Kodanev <aleksei.kodanev@bell-sw.com>
+Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
+Link: https://patch.msgid.link/20250513121304.124141-1-aleksei.kodanev@bell-sw.com
+---
+ drivers/net/wireless/realtek/rtw88/coex.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/realtek/rtw88/coex.c
++++ b/drivers/net/wireless/realtek/rtw88/coex.c
+@@ -309,7 +309,7 @@ static void rtw_coex_tdma_timer_base(str
+ {
+ struct rtw_coex *coex = &rtwdev->coex;
+ struct rtw_coex_stat *coex_stat = &coex->stat;
+- u8 para[2] = {0};
++ u8 para[6] = {};
+ u8 times;
+ u16 tbtt_interval = coex_stat->wl_beacon_interval;
+