* [RFC] MAINTAINERS: add status information
@ 2023-07-16 21:25 Stephen Hemminger
2023-07-19 16:07 ` [PATCH v2] " Stephen Hemminger
` (7 more replies)
0 siblings, 8 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-16 21:25 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Thomas Monjalon
Add a new field S: which indicates the status of support for
individual sub-trees. Almost everything is marked as supported
but components without any maintainer are listed as Orphan.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
MAINTAINERS | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 266 insertions(+), 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5bb8090ebe7e..d523ea34d4f3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17,6 +17,16 @@ Descriptions of section entries:
X: Files and directories exclusion, same rules as F:
K: Keyword regex pattern to match content.
One regex pattern per line. Multiple K: lines acceptable.
+ S: *Status*, one of the following:
+ Supported: Someone is actually paid to look after this.
+ Maintained: Someone actually looks after it.
+ Odd Fixes: It has a maintainer but they don't have time to do
+ much other than throw the odd patch in. See below..
+ Orphan: No current maintainer [but maybe you could take the
+ role as you write your new code].
+ Obsolete: Old code. Something tagged obsolete generally means
+ it has been replaced by a better system and you
+ should be using that.
General Project Administration
@@ -25,44 +35,54 @@ General Project Administration
Main Branch
M: Thomas Monjalon <thomas@monjalon.net>
M: David Marchand <david.marchand@redhat.com>
+S: Supported
T: git://dpdk.org/dpdk
Next-net Tree
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
Next-net-brcm Tree
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
Next-net-intel Tree
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
Next-net-mrvl Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
Next-net-mlx Tree
M: Raslan Darawsheh <rasland@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
Next-virtio Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
Next-crypto Tree
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
Next-eventdev Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Next-baseband Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
Stable Branches
@@ -70,17 +90,21 @@ M: Luca Boccassi <bluca@debian.org>
M: Kevin Traynor <ktraynor@redhat.com>
M: Christian Ehrhardt <christian.ehrhardt@canonical.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
T: git://dpdk.org/dpdk-stable
Security Issues
M: maintainers@dpdk.org
+S: Supported
Documentation (with overlaps)
F: README
F: doc/
+S: Supported
Developers and Maintainers Tools
M: Thomas Monjalon <thomas@monjalon.net>
+S: Supported
F: MAINTAINERS
F: devtools/build-dict.sh
F: devtools/check-abi.sh
@@ -110,7 +134,7 @@ F: .mailmap
Build System
M: Bruce Richardson <bruce.richardson@intel.com>
-F: Makefile
+S: Maintained
F: meson.build
F: meson_options.txt
F: config/
@@ -130,11 +154,13 @@ F: devtools/check-meson.py
Public CI
M: Aaron Conole <aconole@redhat.com>
M: Michael Santana <maicolgabriel@hotmail.com>
+S: Supported
F: .github/workflows/build.yml
F: .ci/
Driver information
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Maintained
F: buildtools/coff.py
F: buildtools/gen-pmdinfo-cfile.py
F: buildtools/pmdinfogen.py
@@ -147,6 +173,7 @@ Environment Abstraction Layer
T: git://dpdk.org/dpdk
EAL API and common code
+S: Supported
F: lib/eal/common/
F: lib/eal/unix/
F: lib/eal/include/
@@ -180,6 +207,7 @@ F: app/test/test_version.c
Trace - EXPERIMENTAL
M: Jerin Jacob <jerinj@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
+S: Supported
F: lib/eal/include/rte_trace*.h
F: lib/eal/common/eal_common_trace*.c
F: lib/eal/common/eal_trace.h
@@ -188,6 +216,7 @@ F: app/test/test_trace*
Memory Allocation
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/include/rte_fbarray.h
F: lib/eal/include/rte_mem*
F: lib/eal/include/rte_malloc.h
@@ -209,11 +238,13 @@ F: app/test/test_memzone.c
Interrupt Subsystem
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
F: lib/eal/include/rte_epoll.h
F: lib/eal/*/*interrupts.*
F: app/test/test_interrupts.c
Keep alive
+S: Orphan
F: lib/eal/include/rte_keepalive.h
F: lib/eal/common/rte_keepalive.c
F: examples/l2fwd-keepalive/
@@ -221,6 +252,7 @@ F: doc/guides/sample_app_ug/keep_alive.rst
Secondary process
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Maintained
K: RTE_PROC_
F: lib/eal/common/eal_common_proc.c
F: doc/guides/prog_guide/multi_proc_support.rst
@@ -230,6 +262,7 @@ F: doc/guides/sample_app_ug/multi_process.rst
Service Cores
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: lib/eal/include/rte_service.h
F: lib/eal/include/rte_service_component.h
F: lib/eal/common/rte_service.c
@@ -240,44 +273,52 @@ F: doc/guides/sample_app_ug/service_cores.rst
Bitops
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_bitops.h
F: app/test/test_bitops.c
Bitmap
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/eal/include/rte_bitmap.h
F: app/test/test_bitmap.c
MCSlock
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/eal/include/rte_mcslock.h
F: app/test/test_mcslock.c
Sequence Lock
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_seqcount.h
F: lib/eal/include/rte_seqlock.h
F: app/test/test_seqlock.c
Ticketlock
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_ticketlock.h
F: app/test/test_ticketlock.c
Pseudo-random Number Generation
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_random.h
F: lib/eal/common/rte_random.c
F: app/test/test_rand_perf.c
ARM v7
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: lib/eal/arm/
X: lib/eal/arm/include/*_64.h
ARM v8
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
F: lib/eal/arm/
@@ -291,12 +332,14 @@ F: examples/common/neon/
LoongArch
M: Min Zhou <zhoumin@loongson.cn>
+S: Supported
F: config/loongarch/
F: doc/guides/linux_gsg/cross_build_dpdk_for_loongarch.rst
F: lib/eal/loongarch/
IBM POWER (alpha)
M: David Christensen <drc@linux.vnet.ibm.com>
+S: Supported
F: config/ppc/
F: lib/eal/ppc/
F: lib/*/*_altivec*
@@ -307,6 +350,7 @@ F: examples/common/altivec/
RISC-V
M: Stanislaw Kardach <kda@semihalf.com>
+S: Supported
F: config/riscv/
F: doc/guides/linux_gsg/cross_build_dpdk_for_riscv.rst
F: lib/eal/riscv/
@@ -314,6 +358,7 @@ F: lib/eal/riscv/
Intel x86
M: Bruce Richardson <bruce.richardson@intel.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: config/x86/
F: doc/guides/linux_gsg/nic_perf_intel_platform.rst
F: buildtools/binutils-avx512-check.py
@@ -330,28 +375,34 @@ F: examples/*/*_avx*
F: examples/common/sse/
Linux EAL (with overlaps)
+S: Maintained
F: lib/eal/linux/
F: doc/guides/linux_gsg/
Linux UIO
+S: Maintained
F: drivers/bus/pci/linux/*uio*
Linux VFIO
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/linux/*vfio*
F: drivers/bus/pci/linux/*vfio*
FreeBSD EAL (with overlaps)
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: lib/eal/freebsd/
F: doc/guides/freebsd_gsg/
FreeBSD contigmem
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: kernel/freebsd/contigmem/
FreeBSD UIO
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: kernel/freebsd/nic_uio/
Windows support
@@ -359,12 +410,14 @@ M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
M: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
M: Dmitry Malloy <dmitrym@microsoft.com>
M: Pallavi Kadam <pallavi.kadam@intel.com>
+S: Supported
F: lib/eal/windows/
F: buildtools/map_to_win.py
F: doc/guides/windows_gsg/
Windows memory allocation
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Supported
F: lib/eal/windows/eal_hugepages.c
F: lib/eal/windows/eal_mem*
@@ -372,10 +425,12 @@ F: lib/eal/windows/eal_mem*
Core Libraries
--------------
T: git://dpdk.org/dpdk
+S: Maintained
Memory pool
M: Olivier Matz <olivier.matz@6wind.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: lib/mempool/
F: drivers/mempool/ring/
F: doc/guides/prog_guide/mempool_lib.rst
@@ -385,6 +440,7 @@ F: app/test/test_func_reentrancy.c
Ring queue
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ring/
F: doc/guides/prog_guide/ring_lib.rst
F: app/test/test_ring*
@@ -392,6 +448,7 @@ F: app/test/test_func_reentrancy.c
Stack
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/stack/
F: drivers/mempool/stack/
F: app/test/test_stack*
@@ -399,6 +456,7 @@ F: doc/guides/prog_guide/stack_lib.rst
Packet buffer
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/mbuf/
F: doc/guides/prog_guide/mbuf_lib.rst
F: app/test/test_mbuf.c
@@ -407,6 +465,7 @@ Ethernet API
M: Thomas Monjalon <thomas@monjalon.net>
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/
F: app/test/test_ethdev*
@@ -415,6 +474,7 @@ F: doc/guides/prog_guide/switch_representation.rst
Flow API
M: Ori Kam <orika@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/cmdline_flow.c
F: doc/guides/prog_guide/rte_flow.rst
@@ -422,18 +482,21 @@ F: lib/ethdev/rte_flow*
Traffic Management API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_tm*
F: app/test-pmd/cmdline_tm.*
Traffic Metering and Policing API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_mtr*
F: app/test-pmd/cmdline_mtr.*
Baseband API
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: lib/bbdev/
F: doc/guides/prog_guide/bbdev.rst
@@ -446,6 +509,7 @@ F: doc/guides/sample_app_ug/bbdev_app.rst
Crypto API
M: Akhil Goyal <gakhil@marvell.com>
M: Fan Zhang <fanzhang.oss@gmail.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/cryptodev/
F: app/test/test_cryptodev*
@@ -453,6 +517,7 @@ F: examples/l2fwd-crypto/
Security API
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/security/
F: doc/guides/prog_guide/rte_security.rst
@@ -461,6 +526,7 @@ F: app/test/test_security*
Compression API - EXPERIMENTAL
M: Fan Zhang <fanzhang.oss@gmail.com>
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/compressdev/
F: drivers/compress/
@@ -470,6 +536,7 @@ F: doc/guides/compressdevs/features/default.ini
RegEx API - EXPERIMENTAL
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: lib/regexdev/
F: app/test-regex/
F: doc/guides/prog_guide/regexdev.rst
@@ -477,6 +544,7 @@ F: doc/guides/regexdevs/features/default.ini
Machine Learning device API - EXPERIMENTAL
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: lib/mldev/
F: doc/guides/prog_guide/mldev.rst
F: app/test-mldev/
@@ -484,6 +552,7 @@ F: doc/guides/tools/testmldev.rst
DMA device API - EXPERIMENTAL
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: lib/dmadev/
F: drivers/dma/skeleton/
F: app/test/test_dmadev*
@@ -495,6 +564,7 @@ F: doc/guides/sample_app_ug/dma.rst
General-Purpose Graphics Processing Unit (GPU) API - EXPERIMENTAL
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: lib/gpudev/
F: doc/guides/prog_guide/gpudev.rst
F: doc/guides/gpus/features/default.ini
@@ -502,6 +572,7 @@ F: app/test-gpudev/
Eventdev API
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/
F: drivers/event/skeleton/
@@ -510,6 +581,7 @@ F: examples/l3fwd/l3fwd_event*
Eventdev Ethdev Rx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_rx_adapter*
F: app/test/test_event_eth_rx_adapter.c
@@ -517,6 +589,7 @@ F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst
Eventdev Ethdev Tx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_tx_adapter*
F: app/test/test_event_eth_tx_adapter.c
@@ -524,6 +597,7 @@ F: doc/guides/prog_guide/event_ethernet_tx_adapter.rst
Eventdev Timer Adapter API
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*timer_adapter*
F: app/test/test_event_timer_adapter.c
@@ -531,6 +605,7 @@ F: doc/guides/prog_guide/event_timer_adapter.rst
Eventdev Crypto Adapter API
M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*crypto_adapter*
F: app/test/test_event_crypto_adapter.c
@@ -539,6 +614,7 @@ F: doc/guides/prog_guide/event_crypto_adapter.rst
Raw device API
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: lib/rawdev/
F: drivers/raw/skeleton/
F: app/test/test_rawdev.c
@@ -551,11 +627,13 @@ Memory Pool Drivers
Bucket memory pool
M: Artem V. Andreev <artem.andreev@oktetlabs.ru>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/mempool/bucket/
Marvell cnxk
M: Ashwin Sekhar T K <asekhar@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/mempool/cnxk/
F: doc/guides/mempool/cnxk.rst
@@ -567,20 +645,24 @@ Bus Drivers
AMD CDX bus
M: Nipun Gupta <nipun.gupta@amd.com>
M: Nikhil Agarwal <nikhil.agarwal@amd.com>
+S: Supported
F: drivers/bus/cdx/
Auxiliary bus driver - EXPERIMENTAL
M: Parav Pandit <parav@nvidia.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
F: drivers/bus/auxiliary/
Intel FPGA bus
M: Rosen Xu <rosen.xu@intel.com>
+S: Supported
F: drivers/bus/ifpga/
NXP buses
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/common/dpaax/
F: drivers/bus/dpaa/
F: drivers/bus/fslmc/
@@ -588,36 +670,43 @@ F: drivers/bus/fslmc/
PCI bus driver
M: Chenbo Xia <chenbo.xia@intel.com>
M: Nipun Gupta <nipun.gupta@amd.com>
+S: Supported
F: drivers/bus/pci/
Platform bus driver
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: drivers/bus/platform/
VDEV bus driver
+S: Maintained
F: drivers/bus/vdev/
F: app/test/test_vdev.c
VMBUS bus driver
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/bus/vmbus/
Networking Drivers
------------------
M: Ferruh Yigit <ferruh.yigit@amd.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: doc/guides/nics/features/default.ini
Link bonding
M: Chas Williams <chas3@att.com>
M: Min Hu (Connor) <humin29@huawei.com>
+S: Supported
F: drivers/net/bonding/
F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
F: app/test/test_link_bonding*
F: examples/bond/
Linux KNI
+S: Obsolete
F: kernel/linux/kni/
F: lib/kni/
F: doc/guides/prog_guide/kernel_nic_interface.rst
@@ -625,12 +714,14 @@ F: app/test/test_kni.c
Linux AF_PACKET
M: John W. Linville <linville@tuxdriver.com>
+S: Odd Fixes
F: drivers/net/af_packet/
F: doc/guides/nics/features/afpacket.ini
Linux AF_XDP
M: Ciara Loftus <ciara.loftus@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
F: drivers/net/af_xdp/
F: doc/guides/nics/af_xdp.rst
F: doc/guides/nics/features/af_xdp.ini
@@ -641,24 +732,28 @@ M: Shai Brandes <shaibran@amazon.com>
M: Evgeny Schemeilin <evgenys@amazon.com>
M: Igor Chauskin <igorch@amazon.com>
M: Ron Beider <rbeider@amazon.com>
+S: Supported
F: drivers/net/ena/
F: doc/guides/nics/ena.rst
F: doc/guides/nics/features/ena.ini
AMD axgbe
M: Chandubabu Namburu <chandu@amd.com>
+S: Supported
F: drivers/net/axgbe/
F: doc/guides/nics/axgbe.rst
F: doc/guides/nics/features/axgbe.ini
AMD Pensando ionic
M: Andrew Boyer <andrew.boyer@amd.com>
+S: Supported
F: drivers/net/ionic/
F: doc/guides/nics/ionic.rst
F: doc/guides/nics/features/ionic.ini
Marvell/Aquantia atlantic
M: Igor Russkikh <irusskikh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/atlantic/
F: doc/guides/nics/atlantic.rst
@@ -668,6 +763,7 @@ Atomic Rules ARK
M: Shepard Siegel <shepard.siegel@atomicrules.com>
M: Ed Czeck <ed.czeck@atomicrules.com>
M: John Miller <john.miller@atomicrules.com>
+S: Supported
F: drivers/net/ark/
F: doc/guides/nics/ark.rst
F: doc/guides/nics/features/ark.ini
@@ -675,6 +771,7 @@ F: doc/guides/nics/features/ark.ini
Broadcom bnxt
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Somnath Kotur <somnath.kotur@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
F: drivers/net/bnxt/
F: doc/guides/nics/bnxt.rst
@@ -683,6 +780,7 @@ F: doc/guides/nics/features/bnxt.ini
Cavium ThunderX nicvf
M: Jerin Jacob <jerinj@marvell.com>
M: Maciej Czekaj <mczekaj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/thunderx/
F: doc/guides/nics/thunderx.rst
@@ -690,6 +788,7 @@ F: doc/guides/nics/features/thunderx.ini
Cavium OCTEON TX
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/octeontx/
F: drivers/mempool/octeontx/
@@ -699,6 +798,7 @@ F: doc/guides/nics/features/octeontx.ini
Chelsio cxgbe
M: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+S: Supported
F: drivers/net/cxgbe/
F: doc/guides/nics/cxgbe.rst
F: doc/guides/nics/features/cxgbe.ini
@@ -706,6 +806,7 @@ F: doc/guides/nics/features/cxgbe.ini
Cisco enic
M: John Daley <johndale@cisco.com>
M: Hyong Youb Kim <hyonkim@cisco.com>
+S: Supported
F: drivers/net/enic/
F: doc/guides/nics/enic.rst
F: doc/guides/nics/features/enic.ini
@@ -715,6 +816,7 @@ M: Junfeng Guo <junfeng.guo@intel.com>
M: Jeroen de Borst <jeroendb@google.com>
M: Rushil Gupta <rushilg@google.com>
M: Joshua Washington <joshwash@google.com>
+S: Supported
F: drivers/net/gve/
F: doc/guides/nics/gve.rst
F: doc/guides/nics/features/gve.ini
@@ -722,6 +824,7 @@ F: doc/guides/nics/features/gve.ini
Hisilicon hns3
M: Dongdong Liu <liudongdong3@huawei.com>
M: Yisen Zhuang <yisen.zhuang@huawei.com>
+S: Supported
F: drivers/net/hns3/
F: doc/guides/nics/hns3.rst
F: doc/guides/nics/features/hns3.ini
@@ -730,6 +833,7 @@ Huawei hinic
M: Ziyang Xuan <xuanziyang2@huawei.com>
M: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
M: Guoyang Zhou <zhouguoyang@huawei.com>
+S: Supported
F: drivers/net/hinic/
F: doc/guides/nics/hinic.rst
F: doc/guides/nics/features/hinic.ini
@@ -737,6 +841,7 @@ F: doc/guides/nics/features/hinic.ini
Intel e1000
M: Simei Su <simei.su@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/e1000/
F: doc/guides/nics/e1000em.rst
@@ -747,6 +852,7 @@ F: doc/guides/nics/features/igb*.ini
Intel ixgbe
M: Qiming Yang <qiming.yang@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ixgbe/
F: doc/guides/nics/ixgbe.rst
@@ -756,6 +862,7 @@ F: doc/guides/nics/features/ixgbe*.ini
Intel i40e
M: Yuying Zhang <Yuying.Zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/i40e/
F: doc/guides/nics/i40e.rst
@@ -765,6 +872,7 @@ F: doc/guides/nics/features/i40e*.ini
Intel fm10k
M: Qi Zhang <qi.z.zhang@intel.com>
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/fm10k/
F: doc/guides/nics/fm10k.rst
@@ -773,6 +881,7 @@ F: doc/guides/nics/features/fm10k*.ini
Intel iavf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/iavf/
F: drivers/common/iavf/
@@ -781,6 +890,7 @@ F: doc/guides/nics/features/iavf*.ini
Intel ice
M: Qiming Yang <qiming.yang@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ice/
F: doc/guides/nics/ice.rst
@@ -789,6 +899,7 @@ F: doc/guides/nics/features/ice.ini
Intel idpf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/idpf/
F: drivers/common/idpf/
@@ -798,6 +909,7 @@ F: doc/guides/nics/features/idpf.ini
Intel cpfl - EXPERIMENTAL
M: Yuying Zhang <yuying.zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/cpfl/
F: doc/guides/nics/cpfl.rst
@@ -806,6 +918,7 @@ F: doc/guides/nics/features/cpfl.ini
Intel igc
M: Junfeng Guo <junfeng.guo@intel.com>
M: Simei Su <simei.su@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/igc/
F: doc/guides/nics/igc.rst
@@ -814,6 +927,7 @@ F: doc/guides/nics/features/igc.ini
Intel ipn3ke
M: Rosen Xu <rosen.xu@intel.com>
T: git://dpdk.org/next/dpdk-next-net-intel
+S: Supported
F: drivers/net/ipn3ke/
F: doc/guides/nics/ipn3ke.rst
F: doc/guides/nics/features/ipn3ke.ini
@@ -823,6 +937,7 @@ M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
M: Satha Rao <skoteshwar@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/cnxk/
F: drivers/net/cnxk/
@@ -832,6 +947,7 @@ F: doc/guides/platform/cnxk.rst
Marvell mvpp2
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/mvep/
F: drivers/net/mvpp2/
@@ -841,6 +957,7 @@ F: doc/guides/nics/features/mvpp2.ini
Marvell mvneta
M: Zyta Szpak <zr@semihalf.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/mvneta/
F: doc/guides/nics/mvneta.rst
@@ -848,6 +965,7 @@ F: doc/guides/nics/features/mvneta.ini
Marvell OCTEON TX EP - endpoint
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/octeon_ep/
F: doc/guides/nics/features/octeon_ep.ini
@@ -856,6 +974,7 @@ F: doc/guides/nics/octeon_ep.rst
NVIDIA mlx4
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/net/mlx4/
F: doc/guides/nics/mlx4.rst
@@ -866,6 +985,7 @@ M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
M: Ori Kam <orika@nvidia.com>
M: Suanming Mou <suanmingm@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/common/mlx5/
F: drivers/net/mlx5/
@@ -875,23 +995,27 @@ F: doc/guides/nics/features/mlx5.ini
Microsoft mana
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/mana/
F: doc/guides/nics/mana.rst
F: doc/guides/nics/features/mana.ini
Microsoft vdev_netvsc - EXPERIMENTAL
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/net/vdev_netvsc/
F: doc/guides/nics/vdev_netvsc.rst
Microsoft Hyper-V netvsc
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/netvsc/
F: doc/guides/nics/netvsc.rst
F: doc/guides/nics/features/netvsc.ini
Netcope nfb
M: Martin Spinler <spinler@cesnet.cz>
+S: Supported
F: drivers/net/nfb/
F: doc/guides/nics/nfb.rst
F: doc/guides/nics/features/nfb.ini
@@ -899,6 +1023,7 @@ F: doc/guides/nics/features/nfb.ini
Netronome nfp
M: Chaoyong He <chaoyong.he@corigine.com>
M: Niklas Soderlund <niklas.soderlund@corigine.com>
+S: Supported
F: drivers/net/nfp/
F: doc/guides/nics/nfp.rst
F: doc/guides/nics/features/nfp*.ini
@@ -906,6 +1031,7 @@ F: doc/guides/nics/features/nfp*.ini
NXP dpaa
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa/
F: drivers/net/dpaa/
F: doc/guides/nics/dpaa.rst
@@ -914,6 +1040,7 @@ F: doc/guides/nics/features/dpaa.ini
NXP dpaa2
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa2/
F: drivers/net/dpaa2/
F: doc/guides/nics/dpaa2.rst
@@ -922,6 +1049,7 @@ F: doc/guides/nics/features/dpaa2.ini
NXP enetc
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/net/enetc/
F: doc/guides/nics/enetc.rst
F: doc/guides/nics/features/enetc.ini
@@ -929,18 +1057,21 @@ F: doc/guides/nics/features/enetc.ini
NXP enetfec - EXPERIMENTAL
M: Apeksha Gupta <apeksha.gupta@nxp.com>
M: Sachin Saxena <sachin.saxena@nxp.com>
+S: Supported
F: drivers/net/enetfec/
F: doc/guides/nics/enetfec.rst
F: doc/guides/nics/features/enetfec.ini
NXP pfe
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: doc/guides/nics/pfe.rst
F: drivers/net/pfe/
F: doc/guides/nics/features/pfe.ini
Marvell QLogic bnx2x
M: Julien Aube <julien_dpdk@jaube.fr>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/bnx2x/
F: doc/guides/nics/bnx2x.rst
@@ -949,6 +1080,7 @@ F: doc/guides/nics/features/bnx2x*.ini
Marvell QLogic qede PMD
M: Devendra Singh Rawat <dsinghrawat@marvell.com>
M: Alok Prasad <palok@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/qede/
F: doc/guides/nics/qede.rst
@@ -956,6 +1088,7 @@ F: doc/guides/nics/features/qede*.ini
Solarflare sfc_efx
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/common/sfc_efx/
F: drivers/net/sfc/
F: doc/guides/nics/sfc_efx.rst
@@ -963,6 +1096,7 @@ F: doc/guides/nics/features/sfc.ini
Wangxun ngbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
+S: Supported
F: drivers/net/ngbe/
F: doc/guides/nics/ngbe.rst
F: doc/guides/nics/features/ngbe.ini
@@ -970,12 +1104,14 @@ F: doc/guides/nics/features/ngbe.ini
Wangxun txgbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
M: Jian Wang <jianwang@trustnetic.com>
+S: Supported
F: drivers/net/txgbe/
F: doc/guides/nics/txgbe.rst
F: doc/guides/nics/features/txgbe.ini
VMware vmxnet3
M: Jochen Behrens <jbehrens@vmware.com>
+S: Supported
F: drivers/net/vmxnet3/
F: doc/guides/nics/vmxnet3.rst
F: doc/guides/nics/features/vmxnet3.ini
@@ -983,6 +1119,7 @@ F: doc/guides/nics/features/vmxnet3.ini
Vhost-user
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: lib/vhost/
F: doc/guides/prog_guide/vhost_lib.rst
@@ -997,6 +1134,7 @@ F: doc/guides/sample_app_ug/vdpa.rst
Vhost PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/vhost/
F: doc/guides/nics/vhost.rst
@@ -1005,6 +1143,7 @@ F: doc/guides/nics/features/vhost.ini
Virtio PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/virtio/
F: doc/guides/nics/virtio.rst
@@ -1013,26 +1152,31 @@ F: doc/guides/nics/features/virtio*.ini
Wind River AVP
M: Steven Webster <steven.webster@windriver.com>
M: Matt Peters <matt.peters@windriver.com>
+S: Supported
F: drivers/net/avp/
F: doc/guides/nics/avp.rst
F: doc/guides/nics/features/avp.ini
PCAP PMD
+S: Orphan
F: drivers/net/pcap/
F: doc/guides/nics/pcap_ring.rst
F: doc/guides/nics/features/pcap.ini
Tap PMD
+S: Orphan
F: drivers/net/tap/
F: doc/guides/nics/tap.rst
F: doc/guides/nics/features/tap.ini
KNI PMD
+S: Obsolete
F: drivers/net/kni/
F: doc/guides/nics/kni.rst
Ring PMD
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: drivers/net/ring/
F: doc/guides/nics/pcap_ring.rst
F: app/test/test_pmd_ring.c
@@ -1040,21 +1184,25 @@ F: app/test/test_pmd_ring_perf.c
Null Networking PMD
M: Tetsuya Mukawa <mtetsuyah@gmail.com>
+S: Supported
F: drivers/net/null/
Fail-safe PMD
M: Gaetan Rivet <grive@u256.net>
+S: Supported
F: drivers/net/failsafe/
F: doc/guides/nics/fail_safe.rst
F: doc/guides/nics/features/failsafe.ini
Softnic PMD
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: drivers/net/softnic/
F: doc/guides/nics/softnic.rst
Memif PMD
M: Jakub Grajciar <jgrajcia@cisco.com>
+S: Supported
F: drivers/net/memif/
F: doc/guides/nics/memif.rst
F: doc/guides/nics/features/memif.ini
@@ -1062,17 +1210,20 @@ F: doc/guides/nics/features/memif.ini
Crypto Drivers
--------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
F: doc/guides/cryptodevs/features/default.ini
AMD CCP Crypto
M: Sunil Uttarwar <sunilprakashrao.uttarwar@amd.com>
+S: Supported
F: drivers/crypto/ccp/
F: doc/guides/cryptodevs/ccp.rst
F: doc/guides/cryptodevs/features/ccp.ini
ARMv8 Crypto
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: drivers/crypto/armv8/
F: doc/guides/cryptodevs/armv8.rst
F: doc/guides/cryptodevs/features/armv8.ini
@@ -1081,12 +1232,14 @@ Broadcom FlexSparc
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
M: Vikas Gupta <vikas.gupta@broadcom.com>
+S: Supported
F: drivers/crypto/bcmfs/
F: doc/guides/cryptodevs/bcmfs.rst
F: doc/guides/cryptodevs/features/bcmfs.ini
Cavium OCTEON TX crypto
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
F: drivers/common/cpt/
F: drivers/crypto/octeontx/
F: doc/guides/cryptodevs/octeontx.rst
@@ -1094,17 +1247,20 @@ F: doc/guides/cryptodevs/features/octeontx.ini
Crypto Scheduler
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/scheduler/
F: doc/guides/cryptodevs/scheduler.rst
HiSilicon UADK crypto
M: Zhangfei Gao <zhangfei.gao@linaro.org>
+S: Supported
F: drivers/crypto/uadk/
F: doc/guides/cryptodevs/uadk.rst
F: doc/guides/cryptodevs/features/uadk.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/qat/
F: drivers/common/qat/
F: doc/guides/cryptodevs/qat.rst
@@ -1113,6 +1269,7 @@ F: doc/guides/cryptodevs/features/qat.ini
IPsec MB
M: Kai Ji <kai.ji@intel.com>
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
+S: Supported
F: drivers/crypto/ipsec_mb/
F: doc/guides/cryptodevs/aesni_gcm.rst
F: doc/guides/cryptodevs/aesni_mb.rst
@@ -1131,6 +1288,7 @@ Marvell cnxk crypto
M: Ankur Dwivedi <adwivedi@marvell.com>
M: Anoob Joseph <anoobj@marvell.com>
M: Tejasree Kondoj <ktejasree@marvell.com>
+S: Supported
F: drivers/crypto/cnxk/
F: doc/guides/cryptodevs/cnxk.rst
F: doc/guides/cryptodevs/features/cn9k.ini
@@ -1139,6 +1297,7 @@ F: doc/guides/cryptodevs/features/cn10k.ini
Marvell mvsam
M: Michael Shamis <michaelsh@marvell.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/crypto/mvsam/
F: doc/guides/cryptodevs/mvsam.rst
F: doc/guides/cryptodevs/features/mvsam.ini
@@ -1146,18 +1305,21 @@ F: doc/guides/cryptodevs/features/mvsam.ini
Marvell Nitrox
M: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
M: Srikanth Jampala <jsrikanth@marvell.com>
+S: Supported
F: drivers/crypto/nitrox/
F: doc/guides/cryptodevs/nitrox.rst
F: doc/guides/cryptodevs/features/nitrox.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/crypto/mlx5/
F: doc/guides/cryptodevs/mlx5.rst
F: doc/guides/cryptodevs/features/mlx5.ini
Null Crypto
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/null/
F: doc/guides/cryptodevs/null.rst
F: doc/guides/cryptodevs/features/null.ini
@@ -1165,6 +1327,7 @@ F: doc/guides/cryptodevs/features/null.ini
NXP CAAM JR
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/caam_jr/
F: doc/guides/cryptodevs/caam_jr.rst
F: doc/guides/cryptodevs/features/caam_jr.ini
@@ -1172,6 +1335,7 @@ F: doc/guides/cryptodevs/features/caam_jr.ini
NXP DPAA_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa_sec/
F: doc/guides/cryptodevs/dpaa_sec.rst
F: doc/guides/cryptodevs/features/dpaa_sec.ini
@@ -1179,18 +1343,21 @@ F: doc/guides/cryptodevs/features/dpaa_sec.ini
NXP DPAA2_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa2_sec/
F: doc/guides/cryptodevs/dpaa2_sec.rst
F: doc/guides/cryptodevs/features/dpaa2_sec.ini
OpenSSL
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/openssl/
F: doc/guides/cryptodevs/openssl.rst
F: doc/guides/cryptodevs/features/openssl.ini
Virtio
M: Jay Zhou <jianjay.zhou@huawei.com>
+S: Supported
F: drivers/crypto/virtio/
F: doc/guides/cryptodevs/virtio.rst
F: doc/guides/cryptodevs/features/virtio.ini
@@ -1198,31 +1365,37 @@ F: doc/guides/cryptodevs/features/virtio.ini
Compression Drivers
-------------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
Cavium OCTEON TX zipvf
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
F: drivers/compress/octeontx/
F: doc/guides/compressdevs/octeontx.rst
F: doc/guides/compressdevs/features/octeontx.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/compress/qat/
F: drivers/common/qat/
ISA-L
M: Lee Daly <lee.daly@intel.com>
+S: Supported
F: drivers/compress/isal/
F: doc/guides/compressdevs/isal.rst
F: doc/guides/compressdevs/features/isal.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/compress/mlx5/
ZLIB
M: Sunila Sahu <ssahu@marvell.com>
+S: Supported
F: drivers/compress/zlib/
F: doc/guides/compressdevs/zlib.rst
F: doc/guides/compressdevs/features/zlib.ini
@@ -1234,34 +1407,40 @@ DMAdev Drivers
Intel IDXD - EXPERIMENTAL
M: Bruce Richardson <bruce.richardson@intel.com>
M: Kevin Laatz <kevin.laatz@intel.com>
+S: Supported
F: drivers/dma/idxd/
F: doc/guides/dmadevs/idxd.rst
Intel IOAT
M: Bruce Richardson <bruce.richardson@intel.com>
M: Conor Walsh <conor.walsh@intel.com>
+S: Supported
F: drivers/dma/ioat/
F: doc/guides/dmadevs/ioat.rst
HiSilicon DMA
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: drivers/dma/hisilicon/
F: doc/guides/dmadevs/hisilicon.rst
Marvell CNXK DPI DMA
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
F: drivers/dma/cnxk/
F: doc/guides/dmadevs/cnxk.rst
NXP DPAA DMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/dma/dpaa/
F: doc/guides/dmadevs/dpaa.rst
NXP DPAA2 QDMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/dma/dpaa2/
F: doc/guides/dmadevs/dpaa2.rst
@@ -1271,12 +1450,14 @@ RegEx Drivers
Marvell OCTEON CN9K regex
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/regex/cn9k/
F: doc/guides/regexdevs/cn9k.rst
F: doc/guides/regexdevs/features/cn9k.ini
NVIDIA mlx5
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: drivers/regex/mlx5/
F: doc/guides/regexdevs/mlx5.rst
F: doc/guides/regexdevs/features/mlx5.ini
@@ -1287,6 +1468,7 @@ MLdev Drivers
Marvell ML CNXK
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: drivers/common/cnxk/hw/ml.h
F: drivers/common/cnxk/roc_ml*
F: drivers/ml/cnxk/
@@ -1299,6 +1481,7 @@ T: git://dpdk.org/next/dpdk-next-virtio
Intel ifc
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
F: drivers/vdpa/ifc/
F: doc/guides/vdpadevs/ifc.rst
F: doc/guides/vdpadevs/features/ifcvf.ini
@@ -1306,12 +1489,14 @@ F: doc/guides/vdpadevs/features/ifcvf.ini
NVIDIA mlx5 vDPA
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
F: drivers/vdpa/mlx5/
F: doc/guides/vdpadevs/mlx5.rst
F: doc/guides/vdpadevs/features/mlx5.ini
Xilinx sfc vDPA
M: Vijay Kumar Srivastava <vsrivast@xilinx.com>
+S: Supported
F: drivers/vdpa/sfc/
F: doc/guides/vdpadevs/sfc.rst
F: doc/guides/vdpadevs/features/sfc.ini
@@ -1320,42 +1505,50 @@ F: doc/guides/vdpadevs/features/sfc.ini
Eventdev Drivers
----------------
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Cavium OCTEON TX ssovf
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
F: drivers/event/octeontx/
F: doc/guides/eventdevs/octeontx.rst
Cavium OCTEON TX timvf
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: drivers/event/octeontx/timvf_*
Intel DLB2
M: Timothy McDaniel <timothy.mcdaniel@intel.com>
+S: Supported
F: drivers/event/dlb2/
F: doc/guides/eventdevs/dlb2.rst
Marvell cnxk
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
M: Shijith Thotton <sthotton@marvell.com>
+S: Supported
F: drivers/event/cnxk/
F: doc/guides/eventdevs/cnxk.rst
NXP DPAA eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa/
F: doc/guides/eventdevs/dpaa.rst
NXP DPAA2 eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa2/
F: doc/guides/eventdevs/dpaa2.rst
Software Eventdev PMD
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: drivers/event/sw/
F: doc/guides/eventdevs/sw.rst
F: examples/eventdev_pipeline/
@@ -1363,11 +1556,13 @@ F: doc/guides/sample_app_ug/eventdev_pipeline.rst
Distributed Software Eventdev PMD
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: drivers/event/dsw/
F: doc/guides/eventdevs/dsw.rst
Software OPDL Eventdev PMD
M: Liang Ma <liangma@liangbit.com>
+S: Supported
M: Peter Mccarthy <peter.mccarthy@intel.com>
F: drivers/event/opdl/
F: doc/guides/eventdevs/opdl.rst
@@ -1378,6 +1573,7 @@ Baseband Drivers
Intel baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/turbo_sw/
F: doc/guides/bbdevs/turbo_sw.rst
@@ -1397,6 +1593,7 @@ F: doc/guides/bbdevs/features/vrb1.ini
Null baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/null/
F: doc/guides/bbdevs/null.rst
@@ -1405,6 +1602,7 @@ F: doc/guides/bbdevs/features/null.ini
NXP LA12xx
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/la12xx/
F: doc/guides/bbdevs/la12xx.rst
@@ -1416,6 +1614,7 @@ GPU Drivers
NVIDIA CUDA
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: drivers/gpu/cuda/
F: doc/guides/gpus/cuda.rst
@@ -1426,6 +1625,7 @@ Rawdev Drivers
Intel FPGA
M: Rosen Xu <rosen.xu@intel.com>
M: Tianfei zhang <tianfei.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/raw/ifpga/
F: doc/guides/rawdevs/ifpga.rst
@@ -1433,18 +1633,21 @@ F: doc/guides/rawdevs/ifpga.rst
Marvell CNXK BPHY
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_bphy.rst
F: drivers/raw/cnxk_bphy/
Marvell CNXK GPIO
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_gpio.rst
F: drivers/raw/cnxk_gpio/
NTB
M: Jingjing Wu <jingjing.wu@intel.com>
M: Junfeng Guo <junfeng.guo@intel.com>
+S: Supported
F: drivers/raw/ntb/
F: doc/guides/rawdevs/ntb.rst
F: examples/ntb/
@@ -1452,6 +1655,7 @@ F: doc/guides/sample_app_ug/ntb.rst
NXP DPAA2 CMDIF
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: drivers/raw/dpaa2_cmdif/
F: doc/guides/rawdevs/dpaa2_cmdif.rst
@@ -1461,12 +1665,14 @@ Packet processing
Network headers
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/net/
F: app/test/test_cksum.c
F: app/test/test_cksum_perf.c
Packet CRC
M: Jasvinder Singh <jasvinder.singh@intel.com>
+S: Supported
F: lib/net/net_crc.h
F: lib/net/rte_net_crc*
F: lib/net/net_crc_avx512.c
@@ -1475,6 +1681,7 @@ F: app/test/test_crc.c
IP fragmentation & reassembly
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ip_frag/
F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
F: app/test/test_ipfrag.c
@@ -1486,16 +1693,19 @@ F: doc/guides/sample_app_ug/ip_reassembly.rst
Generic Receive Offload - EXPERIMENTAL
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gro/
F: doc/guides/prog_guide/generic_receive_offload_lib.rst
Generic Segmentation Offload
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gso/
F: doc/guides/prog_guide/generic_segmentation_offload_lib.rst
IPsec
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/ipsec/
F: app/test/test_ipsec*
@@ -1506,12 +1716,14 @@ F: app/test-sad/
PDCP - EXPERIMENTAL
M: Anoob Joseph <anoobj@marvell.com>
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/pdcp/
F: doc/guides/prog_guide/pdcp_lib.rst
F: app/test/test_pdcp*
Flow Classify - EXPERIMENTAL - UNMAINTAINED
+S: Orphan
F: lib/flow_classify/
F: app/test/test_flow_classify*
F: doc/guides/prog_guide/flow_classify_lib.rst
@@ -1520,6 +1732,7 @@ F: doc/guides/sample_app_ug/flow_classify.rst
Distributor
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/distributor/
F: doc/guides/prog_guide/packet_distrib_lib.rst
F: app/test/test_distributor*
@@ -1528,6 +1741,7 @@ F: doc/guides/sample_app_ug/dist_app.rst
Reorder
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
F: lib/reorder/
F: doc/guides/prog_guide/reorder_lib.rst
F: app/test/test_reorder*
@@ -1536,6 +1750,7 @@ F: doc/guides/sample_app_ug/packet_ordering.rst
Hierarchical scheduler
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/sched/
F: doc/guides/prog_guide/qos_framework.rst
F: app/test/test_pie.c
@@ -1547,6 +1762,7 @@ F: doc/guides/sample_app_ug/qos_scheduler.rst
Packet capture
M: Reshma Pattan <reshma.pattan@intel.com>
M: Stephen Hemminger <stephen@networkplumber.org>
+S: Maintained
F: lib/pdump/
F: doc/guides/prog_guide/pdump_lib.rst
F: app/test/test_pdump.*
@@ -1562,6 +1778,7 @@ F: doc/guides/tools/dumpcap.rst
Packet Framework
----------------
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/pipeline/
F: lib/port/
F: lib/table/
@@ -1579,6 +1796,7 @@ Algorithms
ACL
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/acl/
F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
F: app/test-acl/
@@ -1587,6 +1805,7 @@ F: app/test/test_acl.*
EFD
M: Byron Marohn <byron.marohn@intel.com>
M: Yipeng Wang <yipeng1.wang@intel.com>
+S: Supported
F: lib/efd/
F: doc/guides/prog_guide/efd_lib.rst
F: app/test/test_efd*
@@ -1598,6 +1817,7 @@ M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/hash/
F: doc/guides/prog_guide/hash_lib.rst
F: doc/guides/prog_guide/toeplitz_hash_lib.rst
@@ -1607,6 +1827,7 @@ F: app/test/test_func_reentrancy.c
LPM
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/lpm/
F: doc/guides/prog_guide/lpm*
F: app/test/test_lpm*
@@ -1616,12 +1837,14 @@ F: app/test/test_xmmt_ops.h
Membership - EXPERIMENTAL
M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
+S: Supported
F: lib/member/
F: doc/guides/prog_guide/member_lib.rst
F: app/test/test_member*
RIB/FIB
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/rib/
F: app/test/test_rib*
F: lib/fib/
@@ -1630,6 +1853,7 @@ F: app/test-fib/
Traffic metering
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/meter/
F: doc/guides/sample_app_ug/qos_scheduler.rst
F: app/test/test_meter.c
@@ -1642,12 +1866,14 @@ Other libraries
Configuration file
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/cfgfile/
F: app/test/test_cfgfile.c
F: app/test/test_cfgfiles/
Interactive command line
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/cmdline/
F: app/test-cmdline/
F: app/test/test_cmdline*
@@ -1656,11 +1882,13 @@ F: doc/guides/sample_app_ug/cmd_line.rst
Key/Value parsing
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/kvargs/
F: app/test/test_kvargs.c
RCU
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/rcu/
F: app/test/test_rcu*
F: doc/guides/prog_guide/rcu_lib.rst
@@ -1668,11 +1896,13 @@ F: doc/guides/prog_guide/rcu_lib.rst
PCI
M: Chenbo Xia <chenbo.xia@intel.com>
M: Gaetan Rivet <grive@u256.net>
+S: Supported
F: lib/pci/
Power management
M: Anatoly Burakov <anatoly.burakov@intel.com>
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/power/
F: doc/guides/prog_guide/power_man.rst
F: app/test/test_power*
@@ -1683,6 +1913,7 @@ F: doc/guides/sample_app_ug/vm_power_management.rst
Timers
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
F: lib/timer/
F: doc/guides/prog_guide/timer_lib.rst
F: app/test/test_timer*
@@ -1690,25 +1921,30 @@ F: examples/timer/
F: doc/guides/sample_app_ug/timer.rst
Job statistics
+S: Orphan
F: lib/jobstats/
F: examples/l2fwd-jobstats/
F: doc/guides/sample_app_ug/l2_forward_job_stats.rst
Metrics
+S: Orphan
F: lib/metrics/
F: app/test/test_metrics.c
Bit-rate statistics
+S: Orphan
F: lib/bitratestats/
F: app/test/test_bitratestats.c
Latency statistics
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: lib/latencystats/
F: app/test/test_latencystats.c
Telemetry
M: Ciara Power <ciara.power@intel.com>
+S: Supported
F: lib/telemetry/
F: app/test/test_telemetry*
F: usertools/dpdk-telemetry*
@@ -1716,6 +1952,7 @@ F: doc/guides/howto/telemetry.rst
BPF
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/bpf/
F: examples/bpf/
F: app/test/test_bpf.c
@@ -1727,6 +1964,7 @@ M: Jerin Jacob <jerinj@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Zhirun Yan <zhirun.yan@intel.com>
+S: Supported
F: lib/graph/
F: doc/guides/prog_guide/graph_lib.rst
F: app/test/test_graph*
@@ -1736,6 +1974,7 @@ F: doc/guides/sample_app_ug/l3_forward_graph.rst
Nodes - EXPERIMENTAL
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: lib/node/
@@ -1743,6 +1982,7 @@ Test Applications
-----------------
Unit tests framework
+S: Maintained
F: app/test/commands.c
F: app/test/has_hugepage.py
F: app/test/packet_burst_generator.c
@@ -1758,45 +1998,53 @@ F: app/test/virtual_pmd.h
Sample packet helper functions for unit test
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/test/sample_packet_forward.c
F: app/test/sample_packet_forward.h
Networking drivers testing tool
M: Aman Singh <aman.deep.singh@intel.com>
M: Yuying Zhang <yuying.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/
F: doc/guides/testpmd_app_ug/
DMA device performance tool
M: Cheng Jiang <cheng1.jiang@intel.com>
+S: Supported
F: app/test-dma-perf/
F: doc/guides/tools/dmaperf.rst
Flow performance tool
M: Wisam Jaddo <wisamm@nvidia.com>
+S: Supported
F: app/test-flow-perf/
F: doc/guides/tools/flow-perf.rst
Security performance tool
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-security-perf/
F: doc/guides/tools/securityperf.rst
Compression performance test application
T: git://dpdk.org/next/dpdk-next-crypto
+S: Orphan
F: app/test-compress-perf/
F: doc/guides/tools/comp_perf.rst
Crypto performance test application
M: Ciara Power <ciara.power@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-crypto-perf/
F: doc/guides/tools/cryptoperf.rst
Eventdev test application
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: app/test-eventdev/
F: doc/guides/tools/testeventdev.rst
@@ -1806,12 +2054,14 @@ F: app/test/test_event_ring.c
Procinfo tool
M: Maryam Tahhan <maryam.tahhan@intel.com>
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/proc-info/
F: doc/guides/tools/proc_info.rst
DTS
M: Lijuan Tu <lijuan.tu@intel.com>
M: Juraj Linkeš <juraj.linkes@pantheon.tech>
+S: Supported
F: dts/
F: devtools/dts-check-format.sh
F: doc/guides/tools/dts.rst
@@ -1821,77 +2071,92 @@ Other Example Applications
--------------------------
Ethtool example
+S: Orphan
F: examples/ethtool/
F: doc/guides/sample_app_ug/ethtool.rst
FIPS validation example
M: Brian Dooley <brian.dooley@intel.com>
M: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
+S: Supported
F: examples/fips_validation/
F: doc/guides/sample_app_ug/fips_validation.rst
Flow filtering example
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: examples/flow_filtering/
F: doc/guides/sample_app_ug/flow_filtering.rst
Helloworld example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/helloworld/
F: doc/guides/sample_app_ug/hello_world.rst
IPsec security gateway example
M: Radu Nicolau <radu.nicolau@intel.com>
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
F: examples/ipsec-secgw/
F: doc/guides/sample_app_ug/ipsec_secgw.rst
IPv4 multicast example
+S: Orphan
F: examples/ipv4_multicast/
F: doc/guides/sample_app_ug/ipv4_multicast.rst
L2 forwarding example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/l2fwd/
F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
L2 forwarding with cache allocation example
M: Tomasz Kantecki <tomasz.kantecki@intel.com>
+S: Supported
F: doc/guides/sample_app_ug/l2_forward_cat.rst
F: examples/l2fwd-cat/
L2 forwarding with eventdev example
M: Sunil Kumar Kori <skori@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: examples/l2fwd-event/
F: doc/guides/sample_app_ug/l2_forward_event.rst
L3 forwarding example
+S: Maintained
F: examples/l3fwd/
F: doc/guides/sample_app_ug/l3_forward.rst
Link status interrupt example
+S: Maintained
F: examples/link_status_interrupt/
F: doc/guides/sample_app_ug/link_status_intr.rst
PTP client example
M: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
+S: Supported
F: examples/ptpclient/
Rx/Tx callbacks example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/rxtx_callbacks/
F: doc/guides/sample_app_ug/rxtx_callbacks.rst
Skeleton example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/skeleton/
F: doc/guides/sample_app_ug/skeleton.rst
VMDq examples
+S: Orphan
F: examples/vmdq/
F: doc/guides/sample_app_ug/vmdq_forwarding.rst
F: examples/vmdq_dcb/
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v2] MAINTAINERS: add status information
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
@ 2023-07-19 16:07 ` Stephen Hemminger
2023-07-20 17:21 ` [PATCH v3] " Stephen Hemminger
` (6 subsequent siblings)
7 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-19 16:07 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Add a new field S: which indicates the status of support for
individual sub-trees. Almost everything is marked as supported
but components without any maintainer are listed as Orphan.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - mark FreeBSD as Odd Fixes
- pipeline, table, port are marked as deprecated so should be Obsolete
MAINTAINERS | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 266 insertions(+), 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5bb8090ebe7e..7882a3c020bc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17,6 +17,16 @@ Descriptions of section entries:
X: Files and directories exclusion, same rules as F:
K: Keyword regex pattern to match content.
One regex pattern per line. Multiple K: lines acceptable.
+ S: *Status*, one of the following:
+ Supported: Someone is actually paid to look after this.
+ Maintained: Someone actually looks after it.
+ Odd Fixes: It has a maintainer but they don't have time to do
+ much other than throw the odd patch in. See below..
+ Orphan: No current maintainer [but maybe you could take the
+ role as you write your new code].
+ Obsolete: Old code. Something tagged obsolete generally means
+ it has been replaced by a better system and you
+ should be using that.
General Project Administration
@@ -25,44 +35,54 @@ General Project Administration
Main Branch
M: Thomas Monjalon <thomas@monjalon.net>
M: David Marchand <david.marchand@redhat.com>
+S: Supported
T: git://dpdk.org/dpdk
Next-net Tree
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
Next-net-brcm Tree
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
Next-net-intel Tree
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
Next-net-mrvl Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
Next-net-mlx Tree
M: Raslan Darawsheh <rasland@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
Next-virtio Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
Next-crypto Tree
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
Next-eventdev Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Next-baseband Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
Stable Branches
@@ -70,17 +90,21 @@ M: Luca Boccassi <bluca@debian.org>
M: Kevin Traynor <ktraynor@redhat.com>
M: Christian Ehrhardt <christian.ehrhardt@canonical.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
T: git://dpdk.org/dpdk-stable
Security Issues
M: maintainers@dpdk.org
+S: Supported
Documentation (with overlaps)
F: README
F: doc/
+S: Supported
Developers and Maintainers Tools
M: Thomas Monjalon <thomas@monjalon.net>
+S: Supported
F: MAINTAINERS
F: devtools/build-dict.sh
F: devtools/check-abi.sh
@@ -110,7 +134,7 @@ F: .mailmap
Build System
M: Bruce Richardson <bruce.richardson@intel.com>
-F: Makefile
+S: Maintained
F: meson.build
F: meson_options.txt
F: config/
@@ -130,11 +154,13 @@ F: devtools/check-meson.py
Public CI
M: Aaron Conole <aconole@redhat.com>
M: Michael Santana <maicolgabriel@hotmail.com>
+S: Supported
F: .github/workflows/build.yml
F: .ci/
Driver information
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Maintained
F: buildtools/coff.py
F: buildtools/gen-pmdinfo-cfile.py
F: buildtools/pmdinfogen.py
@@ -147,6 +173,7 @@ Environment Abstraction Layer
T: git://dpdk.org/dpdk
EAL API and common code
+S: Supported
F: lib/eal/common/
F: lib/eal/unix/
F: lib/eal/include/
@@ -180,6 +207,7 @@ F: app/test/test_version.c
Trace - EXPERIMENTAL
M: Jerin Jacob <jerinj@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
+S: Supported
F: lib/eal/include/rte_trace*.h
F: lib/eal/common/eal_common_trace*.c
F: lib/eal/common/eal_trace.h
@@ -188,6 +216,7 @@ F: app/test/test_trace*
Memory Allocation
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/include/rte_fbarray.h
F: lib/eal/include/rte_mem*
F: lib/eal/include/rte_malloc.h
@@ -209,11 +238,13 @@ F: app/test/test_memzone.c
Interrupt Subsystem
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
F: lib/eal/include/rte_epoll.h
F: lib/eal/*/*interrupts.*
F: app/test/test_interrupts.c
Keep alive
+S: Orphan
F: lib/eal/include/rte_keepalive.h
F: lib/eal/common/rte_keepalive.c
F: examples/l2fwd-keepalive/
@@ -221,6 +252,7 @@ F: doc/guides/sample_app_ug/keep_alive.rst
Secondary process
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Maintained
K: RTE_PROC_
F: lib/eal/common/eal_common_proc.c
F: doc/guides/prog_guide/multi_proc_support.rst
@@ -230,6 +262,7 @@ F: doc/guides/sample_app_ug/multi_process.rst
Service Cores
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: lib/eal/include/rte_service.h
F: lib/eal/include/rte_service_component.h
F: lib/eal/common/rte_service.c
@@ -240,44 +273,52 @@ F: doc/guides/sample_app_ug/service_cores.rst
Bitops
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_bitops.h
F: app/test/test_bitops.c
Bitmap
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/eal/include/rte_bitmap.h
F: app/test/test_bitmap.c
MCSlock
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/eal/include/rte_mcslock.h
F: app/test/test_mcslock.c
Sequence Lock
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_seqcount.h
F: lib/eal/include/rte_seqlock.h
F: app/test/test_seqlock.c
Ticketlock
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_ticketlock.h
F: app/test/test_ticketlock.c
Pseudo-random Number Generation
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_random.h
F: lib/eal/common/rte_random.c
F: app/test/test_rand_perf.c
ARM v7
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: lib/eal/arm/
X: lib/eal/arm/include/*_64.h
ARM v8
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
F: lib/eal/arm/
@@ -291,12 +332,14 @@ F: examples/common/neon/
LoongArch
M: Min Zhou <zhoumin@loongson.cn>
+S: Supported
F: config/loongarch/
F: doc/guides/linux_gsg/cross_build_dpdk_for_loongarch.rst
F: lib/eal/loongarch/
IBM POWER (alpha)
M: David Christensen <drc@linux.vnet.ibm.com>
+S: Supported
F: config/ppc/
F: lib/eal/ppc/
F: lib/*/*_altivec*
@@ -307,6 +350,7 @@ F: examples/common/altivec/
RISC-V
M: Stanislaw Kardach <kda@semihalf.com>
+S: Supported
F: config/riscv/
F: doc/guides/linux_gsg/cross_build_dpdk_for_riscv.rst
F: lib/eal/riscv/
@@ -314,6 +358,7 @@ F: lib/eal/riscv/
Intel x86
M: Bruce Richardson <bruce.richardson@intel.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: config/x86/
F: doc/guides/linux_gsg/nic_perf_intel_platform.rst
F: buildtools/binutils-avx512-check.py
@@ -330,28 +375,34 @@ F: examples/*/*_avx*
F: examples/common/sse/
Linux EAL (with overlaps)
+S: Maintained
F: lib/eal/linux/
F: doc/guides/linux_gsg/
Linux UIO
+S: Maintained
F: drivers/bus/pci/linux/*uio*
Linux VFIO
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/linux/*vfio*
F: drivers/bus/pci/linux/*vfio*
FreeBSD EAL (with overlaps)
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Odd Fixes
F: lib/eal/freebsd/
F: doc/guides/freebsd_gsg/
FreeBSD contigmem
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Oddd Fixes
F: kernel/freebsd/contigmem/
FreeBSD UIO
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Odd Fixes
F: kernel/freebsd/nic_uio/
Windows support
@@ -359,12 +410,14 @@ M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
M: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
M: Dmitry Malloy <dmitrym@microsoft.com>
M: Pallavi Kadam <pallavi.kadam@intel.com>
+S: Supported
F: lib/eal/windows/
F: buildtools/map_to_win.py
F: doc/guides/windows_gsg/
Windows memory allocation
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Supported
F: lib/eal/windows/eal_hugepages.c
F: lib/eal/windows/eal_mem*
@@ -372,10 +425,12 @@ F: lib/eal/windows/eal_mem*
Core Libraries
--------------
T: git://dpdk.org/dpdk
+S: Maintained
Memory pool
M: Olivier Matz <olivier.matz@6wind.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: lib/mempool/
F: drivers/mempool/ring/
F: doc/guides/prog_guide/mempool_lib.rst
@@ -385,6 +440,7 @@ F: app/test/test_func_reentrancy.c
Ring queue
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ring/
F: doc/guides/prog_guide/ring_lib.rst
F: app/test/test_ring*
@@ -392,6 +448,7 @@ F: app/test/test_func_reentrancy.c
Stack
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/stack/
F: drivers/mempool/stack/
F: app/test/test_stack*
@@ -399,6 +456,7 @@ F: doc/guides/prog_guide/stack_lib.rst
Packet buffer
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/mbuf/
F: doc/guides/prog_guide/mbuf_lib.rst
F: app/test/test_mbuf.c
@@ -407,6 +465,7 @@ Ethernet API
M: Thomas Monjalon <thomas@monjalon.net>
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/
F: app/test/test_ethdev*
@@ -415,6 +474,7 @@ F: doc/guides/prog_guide/switch_representation.rst
Flow API
M: Ori Kam <orika@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/cmdline_flow.c
F: doc/guides/prog_guide/rte_flow.rst
@@ -422,18 +482,21 @@ F: lib/ethdev/rte_flow*
Traffic Management API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_tm*
F: app/test-pmd/cmdline_tm.*
Traffic Metering and Policing API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_mtr*
F: app/test-pmd/cmdline_mtr.*
Baseband API
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: lib/bbdev/
F: doc/guides/prog_guide/bbdev.rst
@@ -446,6 +509,7 @@ F: doc/guides/sample_app_ug/bbdev_app.rst
Crypto API
M: Akhil Goyal <gakhil@marvell.com>
M: Fan Zhang <fanzhang.oss@gmail.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/cryptodev/
F: app/test/test_cryptodev*
@@ -453,6 +517,7 @@ F: examples/l2fwd-crypto/
Security API
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/security/
F: doc/guides/prog_guide/rte_security.rst
@@ -461,6 +526,7 @@ F: app/test/test_security*
Compression API - EXPERIMENTAL
M: Fan Zhang <fanzhang.oss@gmail.com>
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/compressdev/
F: drivers/compress/
@@ -470,6 +536,7 @@ F: doc/guides/compressdevs/features/default.ini
RegEx API - EXPERIMENTAL
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: lib/regexdev/
F: app/test-regex/
F: doc/guides/prog_guide/regexdev.rst
@@ -477,6 +544,7 @@ F: doc/guides/regexdevs/features/default.ini
Machine Learning device API - EXPERIMENTAL
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: lib/mldev/
F: doc/guides/prog_guide/mldev.rst
F: app/test-mldev/
@@ -484,6 +552,7 @@ F: doc/guides/tools/testmldev.rst
DMA device API - EXPERIMENTAL
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: lib/dmadev/
F: drivers/dma/skeleton/
F: app/test/test_dmadev*
@@ -495,6 +564,7 @@ F: doc/guides/sample_app_ug/dma.rst
General-Purpose Graphics Processing Unit (GPU) API - EXPERIMENTAL
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: lib/gpudev/
F: doc/guides/prog_guide/gpudev.rst
F: doc/guides/gpus/features/default.ini
@@ -502,6 +572,7 @@ F: app/test-gpudev/
Eventdev API
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/
F: drivers/event/skeleton/
@@ -510,6 +581,7 @@ F: examples/l3fwd/l3fwd_event*
Eventdev Ethdev Rx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_rx_adapter*
F: app/test/test_event_eth_rx_adapter.c
@@ -517,6 +589,7 @@ F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst
Eventdev Ethdev Tx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_tx_adapter*
F: app/test/test_event_eth_tx_adapter.c
@@ -524,6 +597,7 @@ F: doc/guides/prog_guide/event_ethernet_tx_adapter.rst
Eventdev Timer Adapter API
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*timer_adapter*
F: app/test/test_event_timer_adapter.c
@@ -531,6 +605,7 @@ F: doc/guides/prog_guide/event_timer_adapter.rst
Eventdev Crypto Adapter API
M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*crypto_adapter*
F: app/test/test_event_crypto_adapter.c
@@ -539,6 +614,7 @@ F: doc/guides/prog_guide/event_crypto_adapter.rst
Raw device API
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: lib/rawdev/
F: drivers/raw/skeleton/
F: app/test/test_rawdev.c
@@ -551,11 +627,13 @@ Memory Pool Drivers
Bucket memory pool
M: Artem V. Andreev <artem.andreev@oktetlabs.ru>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/mempool/bucket/
Marvell cnxk
M: Ashwin Sekhar T K <asekhar@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/mempool/cnxk/
F: doc/guides/mempool/cnxk.rst
@@ -567,20 +645,24 @@ Bus Drivers
AMD CDX bus
M: Nipun Gupta <nipun.gupta@amd.com>
M: Nikhil Agarwal <nikhil.agarwal@amd.com>
+S: Supported
F: drivers/bus/cdx/
Auxiliary bus driver - EXPERIMENTAL
M: Parav Pandit <parav@nvidia.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
F: drivers/bus/auxiliary/
Intel FPGA bus
M: Rosen Xu <rosen.xu@intel.com>
+S: Supported
F: drivers/bus/ifpga/
NXP buses
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/common/dpaax/
F: drivers/bus/dpaa/
F: drivers/bus/fslmc/
@@ -588,36 +670,43 @@ F: drivers/bus/fslmc/
PCI bus driver
M: Chenbo Xia <chenbo.xia@intel.com>
M: Nipun Gupta <nipun.gupta@amd.com>
+S: Supported
F: drivers/bus/pci/
Platform bus driver
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: drivers/bus/platform/
VDEV bus driver
+S: Maintained
F: drivers/bus/vdev/
F: app/test/test_vdev.c
VMBUS bus driver
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/bus/vmbus/
Networking Drivers
------------------
M: Ferruh Yigit <ferruh.yigit@amd.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: doc/guides/nics/features/default.ini
Link bonding
M: Chas Williams <chas3@att.com>
M: Min Hu (Connor) <humin29@huawei.com>
+S: Supported
F: drivers/net/bonding/
F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
F: app/test/test_link_bonding*
F: examples/bond/
Linux KNI
+S: Obsolete
F: kernel/linux/kni/
F: lib/kni/
F: doc/guides/prog_guide/kernel_nic_interface.rst
@@ -625,12 +714,14 @@ F: app/test/test_kni.c
Linux AF_PACKET
M: John W. Linville <linville@tuxdriver.com>
+S: Odd Fixes
F: drivers/net/af_packet/
F: doc/guides/nics/features/afpacket.ini
Linux AF_XDP
M: Ciara Loftus <ciara.loftus@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
F: drivers/net/af_xdp/
F: doc/guides/nics/af_xdp.rst
F: doc/guides/nics/features/af_xdp.ini
@@ -641,24 +732,28 @@ M: Shai Brandes <shaibran@amazon.com>
M: Evgeny Schemeilin <evgenys@amazon.com>
M: Igor Chauskin <igorch@amazon.com>
M: Ron Beider <rbeider@amazon.com>
+S: Supported
F: drivers/net/ena/
F: doc/guides/nics/ena.rst
F: doc/guides/nics/features/ena.ini
AMD axgbe
M: Chandubabu Namburu <chandu@amd.com>
+S: Supported
F: drivers/net/axgbe/
F: doc/guides/nics/axgbe.rst
F: doc/guides/nics/features/axgbe.ini
AMD Pensando ionic
M: Andrew Boyer <andrew.boyer@amd.com>
+S: Supported
F: drivers/net/ionic/
F: doc/guides/nics/ionic.rst
F: doc/guides/nics/features/ionic.ini
Marvell/Aquantia atlantic
M: Igor Russkikh <irusskikh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/atlantic/
F: doc/guides/nics/atlantic.rst
@@ -668,6 +763,7 @@ Atomic Rules ARK
M: Shepard Siegel <shepard.siegel@atomicrules.com>
M: Ed Czeck <ed.czeck@atomicrules.com>
M: John Miller <john.miller@atomicrules.com>
+S: Supported
F: drivers/net/ark/
F: doc/guides/nics/ark.rst
F: doc/guides/nics/features/ark.ini
@@ -675,6 +771,7 @@ F: doc/guides/nics/features/ark.ini
Broadcom bnxt
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Somnath Kotur <somnath.kotur@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
F: drivers/net/bnxt/
F: doc/guides/nics/bnxt.rst
@@ -683,6 +780,7 @@ F: doc/guides/nics/features/bnxt.ini
Cavium ThunderX nicvf
M: Jerin Jacob <jerinj@marvell.com>
M: Maciej Czekaj <mczekaj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/thunderx/
F: doc/guides/nics/thunderx.rst
@@ -690,6 +788,7 @@ F: doc/guides/nics/features/thunderx.ini
Cavium OCTEON TX
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/octeontx/
F: drivers/mempool/octeontx/
@@ -699,6 +798,7 @@ F: doc/guides/nics/features/octeontx.ini
Chelsio cxgbe
M: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+S: Supported
F: drivers/net/cxgbe/
F: doc/guides/nics/cxgbe.rst
F: doc/guides/nics/features/cxgbe.ini
@@ -706,6 +806,7 @@ F: doc/guides/nics/features/cxgbe.ini
Cisco enic
M: John Daley <johndale@cisco.com>
M: Hyong Youb Kim <hyonkim@cisco.com>
+S: Supported
F: drivers/net/enic/
F: doc/guides/nics/enic.rst
F: doc/guides/nics/features/enic.ini
@@ -715,6 +816,7 @@ M: Junfeng Guo <junfeng.guo@intel.com>
M: Jeroen de Borst <jeroendb@google.com>
M: Rushil Gupta <rushilg@google.com>
M: Joshua Washington <joshwash@google.com>
+S: Supported
F: drivers/net/gve/
F: doc/guides/nics/gve.rst
F: doc/guides/nics/features/gve.ini
@@ -722,6 +824,7 @@ F: doc/guides/nics/features/gve.ini
Hisilicon hns3
M: Dongdong Liu <liudongdong3@huawei.com>
M: Yisen Zhuang <yisen.zhuang@huawei.com>
+S: Supported
F: drivers/net/hns3/
F: doc/guides/nics/hns3.rst
F: doc/guides/nics/features/hns3.ini
@@ -730,6 +833,7 @@ Huawei hinic
M: Ziyang Xuan <xuanziyang2@huawei.com>
M: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
M: Guoyang Zhou <zhouguoyang@huawei.com>
+S: Supported
F: drivers/net/hinic/
F: doc/guides/nics/hinic.rst
F: doc/guides/nics/features/hinic.ini
@@ -737,6 +841,7 @@ F: doc/guides/nics/features/hinic.ini
Intel e1000
M: Simei Su <simei.su@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/e1000/
F: doc/guides/nics/e1000em.rst
@@ -747,6 +852,7 @@ F: doc/guides/nics/features/igb*.ini
Intel ixgbe
M: Qiming Yang <qiming.yang@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ixgbe/
F: doc/guides/nics/ixgbe.rst
@@ -756,6 +862,7 @@ F: doc/guides/nics/features/ixgbe*.ini
Intel i40e
M: Yuying Zhang <Yuying.Zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/i40e/
F: doc/guides/nics/i40e.rst
@@ -765,6 +872,7 @@ F: doc/guides/nics/features/i40e*.ini
Intel fm10k
M: Qi Zhang <qi.z.zhang@intel.com>
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/fm10k/
F: doc/guides/nics/fm10k.rst
@@ -773,6 +881,7 @@ F: doc/guides/nics/features/fm10k*.ini
Intel iavf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/iavf/
F: drivers/common/iavf/
@@ -781,6 +890,7 @@ F: doc/guides/nics/features/iavf*.ini
Intel ice
M: Qiming Yang <qiming.yang@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ice/
F: doc/guides/nics/ice.rst
@@ -789,6 +899,7 @@ F: doc/guides/nics/features/ice.ini
Intel idpf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/idpf/
F: drivers/common/idpf/
@@ -798,6 +909,7 @@ F: doc/guides/nics/features/idpf.ini
Intel cpfl - EXPERIMENTAL
M: Yuying Zhang <yuying.zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/cpfl/
F: doc/guides/nics/cpfl.rst
@@ -806,6 +918,7 @@ F: doc/guides/nics/features/cpfl.ini
Intel igc
M: Junfeng Guo <junfeng.guo@intel.com>
M: Simei Su <simei.su@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/igc/
F: doc/guides/nics/igc.rst
@@ -814,6 +927,7 @@ F: doc/guides/nics/features/igc.ini
Intel ipn3ke
M: Rosen Xu <rosen.xu@intel.com>
T: git://dpdk.org/next/dpdk-next-net-intel
+S: Supported
F: drivers/net/ipn3ke/
F: doc/guides/nics/ipn3ke.rst
F: doc/guides/nics/features/ipn3ke.ini
@@ -823,6 +937,7 @@ M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
M: Satha Rao <skoteshwar@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/cnxk/
F: drivers/net/cnxk/
@@ -832,6 +947,7 @@ F: doc/guides/platform/cnxk.rst
Marvell mvpp2
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/mvep/
F: drivers/net/mvpp2/
@@ -841,6 +957,7 @@ F: doc/guides/nics/features/mvpp2.ini
Marvell mvneta
M: Zyta Szpak <zr@semihalf.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/mvneta/
F: doc/guides/nics/mvneta.rst
@@ -848,6 +965,7 @@ F: doc/guides/nics/features/mvneta.ini
Marvell OCTEON TX EP - endpoint
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/octeon_ep/
F: doc/guides/nics/features/octeon_ep.ini
@@ -856,6 +974,7 @@ F: doc/guides/nics/octeon_ep.rst
NVIDIA mlx4
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/net/mlx4/
F: doc/guides/nics/mlx4.rst
@@ -866,6 +985,7 @@ M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
M: Ori Kam <orika@nvidia.com>
M: Suanming Mou <suanmingm@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/common/mlx5/
F: drivers/net/mlx5/
@@ -875,23 +995,27 @@ F: doc/guides/nics/features/mlx5.ini
Microsoft mana
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/mana/
F: doc/guides/nics/mana.rst
F: doc/guides/nics/features/mana.ini
Microsoft vdev_netvsc - EXPERIMENTAL
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/net/vdev_netvsc/
F: doc/guides/nics/vdev_netvsc.rst
Microsoft Hyper-V netvsc
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/netvsc/
F: doc/guides/nics/netvsc.rst
F: doc/guides/nics/features/netvsc.ini
Netcope nfb
M: Martin Spinler <spinler@cesnet.cz>
+S: Supported
F: drivers/net/nfb/
F: doc/guides/nics/nfb.rst
F: doc/guides/nics/features/nfb.ini
@@ -899,6 +1023,7 @@ F: doc/guides/nics/features/nfb.ini
Netronome nfp
M: Chaoyong He <chaoyong.he@corigine.com>
M: Niklas Soderlund <niklas.soderlund@corigine.com>
+S: Supported
F: drivers/net/nfp/
F: doc/guides/nics/nfp.rst
F: doc/guides/nics/features/nfp*.ini
@@ -906,6 +1031,7 @@ F: doc/guides/nics/features/nfp*.ini
NXP dpaa
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa/
F: drivers/net/dpaa/
F: doc/guides/nics/dpaa.rst
@@ -914,6 +1040,7 @@ F: doc/guides/nics/features/dpaa.ini
NXP dpaa2
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa2/
F: drivers/net/dpaa2/
F: doc/guides/nics/dpaa2.rst
@@ -922,6 +1049,7 @@ F: doc/guides/nics/features/dpaa2.ini
NXP enetc
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/net/enetc/
F: doc/guides/nics/enetc.rst
F: doc/guides/nics/features/enetc.ini
@@ -929,18 +1057,21 @@ F: doc/guides/nics/features/enetc.ini
NXP enetfec - EXPERIMENTAL
M: Apeksha Gupta <apeksha.gupta@nxp.com>
M: Sachin Saxena <sachin.saxena@nxp.com>
+S: Supported
F: drivers/net/enetfec/
F: doc/guides/nics/enetfec.rst
F: doc/guides/nics/features/enetfec.ini
NXP pfe
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: doc/guides/nics/pfe.rst
F: drivers/net/pfe/
F: doc/guides/nics/features/pfe.ini
Marvell QLogic bnx2x
M: Julien Aube <julien_dpdk@jaube.fr>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/bnx2x/
F: doc/guides/nics/bnx2x.rst
@@ -949,6 +1080,7 @@ F: doc/guides/nics/features/bnx2x*.ini
Marvell QLogic qede PMD
M: Devendra Singh Rawat <dsinghrawat@marvell.com>
M: Alok Prasad <palok@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/qede/
F: doc/guides/nics/qede.rst
@@ -956,6 +1088,7 @@ F: doc/guides/nics/features/qede*.ini
Solarflare sfc_efx
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/common/sfc_efx/
F: drivers/net/sfc/
F: doc/guides/nics/sfc_efx.rst
@@ -963,6 +1096,7 @@ F: doc/guides/nics/features/sfc.ini
Wangxun ngbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
+S: Supported
F: drivers/net/ngbe/
F: doc/guides/nics/ngbe.rst
F: doc/guides/nics/features/ngbe.ini
@@ -970,12 +1104,14 @@ F: doc/guides/nics/features/ngbe.ini
Wangxun txgbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
M: Jian Wang <jianwang@trustnetic.com>
+S: Supported
F: drivers/net/txgbe/
F: doc/guides/nics/txgbe.rst
F: doc/guides/nics/features/txgbe.ini
VMware vmxnet3
M: Jochen Behrens <jbehrens@vmware.com>
+S: Supported
F: drivers/net/vmxnet3/
F: doc/guides/nics/vmxnet3.rst
F: doc/guides/nics/features/vmxnet3.ini
@@ -983,6 +1119,7 @@ F: doc/guides/nics/features/vmxnet3.ini
Vhost-user
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: lib/vhost/
F: doc/guides/prog_guide/vhost_lib.rst
@@ -997,6 +1134,7 @@ F: doc/guides/sample_app_ug/vdpa.rst
Vhost PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/vhost/
F: doc/guides/nics/vhost.rst
@@ -1005,6 +1143,7 @@ F: doc/guides/nics/features/vhost.ini
Virtio PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/virtio/
F: doc/guides/nics/virtio.rst
@@ -1013,26 +1152,31 @@ F: doc/guides/nics/features/virtio*.ini
Wind River AVP
M: Steven Webster <steven.webster@windriver.com>
M: Matt Peters <matt.peters@windriver.com>
+S: Supported
F: drivers/net/avp/
F: doc/guides/nics/avp.rst
F: doc/guides/nics/features/avp.ini
PCAP PMD
+S: Orphan
F: drivers/net/pcap/
F: doc/guides/nics/pcap_ring.rst
F: doc/guides/nics/features/pcap.ini
Tap PMD
+S: Orphan
F: drivers/net/tap/
F: doc/guides/nics/tap.rst
F: doc/guides/nics/features/tap.ini
KNI PMD
+S: Obsolete
F: drivers/net/kni/
F: doc/guides/nics/kni.rst
Ring PMD
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: drivers/net/ring/
F: doc/guides/nics/pcap_ring.rst
F: app/test/test_pmd_ring.c
@@ -1040,21 +1184,25 @@ F: app/test/test_pmd_ring_perf.c
Null Networking PMD
M: Tetsuya Mukawa <mtetsuyah@gmail.com>
+S: Supported
F: drivers/net/null/
Fail-safe PMD
M: Gaetan Rivet <grive@u256.net>
+S: Supported
F: drivers/net/failsafe/
F: doc/guides/nics/fail_safe.rst
F: doc/guides/nics/features/failsafe.ini
Softnic PMD
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: drivers/net/softnic/
F: doc/guides/nics/softnic.rst
Memif PMD
M: Jakub Grajciar <jgrajcia@cisco.com>
+S: Supported
F: drivers/net/memif/
F: doc/guides/nics/memif.rst
F: doc/guides/nics/features/memif.ini
@@ -1062,17 +1210,20 @@ F: doc/guides/nics/features/memif.ini
Crypto Drivers
--------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
F: doc/guides/cryptodevs/features/default.ini
AMD CCP Crypto
M: Sunil Uttarwar <sunilprakashrao.uttarwar@amd.com>
+S: Supported
F: drivers/crypto/ccp/
F: doc/guides/cryptodevs/ccp.rst
F: doc/guides/cryptodevs/features/ccp.ini
ARMv8 Crypto
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: drivers/crypto/armv8/
F: doc/guides/cryptodevs/armv8.rst
F: doc/guides/cryptodevs/features/armv8.ini
@@ -1081,12 +1232,14 @@ Broadcom FlexSparc
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
M: Vikas Gupta <vikas.gupta@broadcom.com>
+S: Supported
F: drivers/crypto/bcmfs/
F: doc/guides/cryptodevs/bcmfs.rst
F: doc/guides/cryptodevs/features/bcmfs.ini
Cavium OCTEON TX crypto
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
F: drivers/common/cpt/
F: drivers/crypto/octeontx/
F: doc/guides/cryptodevs/octeontx.rst
@@ -1094,17 +1247,20 @@ F: doc/guides/cryptodevs/features/octeontx.ini
Crypto Scheduler
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/scheduler/
F: doc/guides/cryptodevs/scheduler.rst
HiSilicon UADK crypto
M: Zhangfei Gao <zhangfei.gao@linaro.org>
+S: Supported
F: drivers/crypto/uadk/
F: doc/guides/cryptodevs/uadk.rst
F: doc/guides/cryptodevs/features/uadk.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/qat/
F: drivers/common/qat/
F: doc/guides/cryptodevs/qat.rst
@@ -1113,6 +1269,7 @@ F: doc/guides/cryptodevs/features/qat.ini
IPsec MB
M: Kai Ji <kai.ji@intel.com>
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
+S: Supported
F: drivers/crypto/ipsec_mb/
F: doc/guides/cryptodevs/aesni_gcm.rst
F: doc/guides/cryptodevs/aesni_mb.rst
@@ -1131,6 +1288,7 @@ Marvell cnxk crypto
M: Ankur Dwivedi <adwivedi@marvell.com>
M: Anoob Joseph <anoobj@marvell.com>
M: Tejasree Kondoj <ktejasree@marvell.com>
+S: Supported
F: drivers/crypto/cnxk/
F: doc/guides/cryptodevs/cnxk.rst
F: doc/guides/cryptodevs/features/cn9k.ini
@@ -1139,6 +1297,7 @@ F: doc/guides/cryptodevs/features/cn10k.ini
Marvell mvsam
M: Michael Shamis <michaelsh@marvell.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/crypto/mvsam/
F: doc/guides/cryptodevs/mvsam.rst
F: doc/guides/cryptodevs/features/mvsam.ini
@@ -1146,18 +1305,21 @@ F: doc/guides/cryptodevs/features/mvsam.ini
Marvell Nitrox
M: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
M: Srikanth Jampala <jsrikanth@marvell.com>
+S: Supported
F: drivers/crypto/nitrox/
F: doc/guides/cryptodevs/nitrox.rst
F: doc/guides/cryptodevs/features/nitrox.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/crypto/mlx5/
F: doc/guides/cryptodevs/mlx5.rst
F: doc/guides/cryptodevs/features/mlx5.ini
Null Crypto
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/null/
F: doc/guides/cryptodevs/null.rst
F: doc/guides/cryptodevs/features/null.ini
@@ -1165,6 +1327,7 @@ F: doc/guides/cryptodevs/features/null.ini
NXP CAAM JR
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/caam_jr/
F: doc/guides/cryptodevs/caam_jr.rst
F: doc/guides/cryptodevs/features/caam_jr.ini
@@ -1172,6 +1335,7 @@ F: doc/guides/cryptodevs/features/caam_jr.ini
NXP DPAA_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa_sec/
F: doc/guides/cryptodevs/dpaa_sec.rst
F: doc/guides/cryptodevs/features/dpaa_sec.ini
@@ -1179,18 +1343,21 @@ F: doc/guides/cryptodevs/features/dpaa_sec.ini
NXP DPAA2_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa2_sec/
F: doc/guides/cryptodevs/dpaa2_sec.rst
F: doc/guides/cryptodevs/features/dpaa2_sec.ini
OpenSSL
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/openssl/
F: doc/guides/cryptodevs/openssl.rst
F: doc/guides/cryptodevs/features/openssl.ini
Virtio
M: Jay Zhou <jianjay.zhou@huawei.com>
+S: Supported
F: drivers/crypto/virtio/
F: doc/guides/cryptodevs/virtio.rst
F: doc/guides/cryptodevs/features/virtio.ini
@@ -1198,31 +1365,37 @@ F: doc/guides/cryptodevs/features/virtio.ini
Compression Drivers
-------------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
Cavium OCTEON TX zipvf
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
F: drivers/compress/octeontx/
F: doc/guides/compressdevs/octeontx.rst
F: doc/guides/compressdevs/features/octeontx.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/compress/qat/
F: drivers/common/qat/
ISA-L
M: Lee Daly <lee.daly@intel.com>
+S: Supported
F: drivers/compress/isal/
F: doc/guides/compressdevs/isal.rst
F: doc/guides/compressdevs/features/isal.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/compress/mlx5/
ZLIB
M: Sunila Sahu <ssahu@marvell.com>
+S: Supported
F: drivers/compress/zlib/
F: doc/guides/compressdevs/zlib.rst
F: doc/guides/compressdevs/features/zlib.ini
@@ -1234,34 +1407,40 @@ DMAdev Drivers
Intel IDXD - EXPERIMENTAL
M: Bruce Richardson <bruce.richardson@intel.com>
M: Kevin Laatz <kevin.laatz@intel.com>
+S: Supported
F: drivers/dma/idxd/
F: doc/guides/dmadevs/idxd.rst
Intel IOAT
M: Bruce Richardson <bruce.richardson@intel.com>
M: Conor Walsh <conor.walsh@intel.com>
+S: Supported
F: drivers/dma/ioat/
F: doc/guides/dmadevs/ioat.rst
HiSilicon DMA
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: drivers/dma/hisilicon/
F: doc/guides/dmadevs/hisilicon.rst
Marvell CNXK DPI DMA
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
F: drivers/dma/cnxk/
F: doc/guides/dmadevs/cnxk.rst
NXP DPAA DMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/dma/dpaa/
F: doc/guides/dmadevs/dpaa.rst
NXP DPAA2 QDMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/dma/dpaa2/
F: doc/guides/dmadevs/dpaa2.rst
@@ -1271,12 +1450,14 @@ RegEx Drivers
Marvell OCTEON CN9K regex
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/regex/cn9k/
F: doc/guides/regexdevs/cn9k.rst
F: doc/guides/regexdevs/features/cn9k.ini
NVIDIA mlx5
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: drivers/regex/mlx5/
F: doc/guides/regexdevs/mlx5.rst
F: doc/guides/regexdevs/features/mlx5.ini
@@ -1287,6 +1468,7 @@ MLdev Drivers
Marvell ML CNXK
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: drivers/common/cnxk/hw/ml.h
F: drivers/common/cnxk/roc_ml*
F: drivers/ml/cnxk/
@@ -1299,6 +1481,7 @@ T: git://dpdk.org/next/dpdk-next-virtio
Intel ifc
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
F: drivers/vdpa/ifc/
F: doc/guides/vdpadevs/ifc.rst
F: doc/guides/vdpadevs/features/ifcvf.ini
@@ -1306,12 +1489,14 @@ F: doc/guides/vdpadevs/features/ifcvf.ini
NVIDIA mlx5 vDPA
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
F: drivers/vdpa/mlx5/
F: doc/guides/vdpadevs/mlx5.rst
F: doc/guides/vdpadevs/features/mlx5.ini
Xilinx sfc vDPA
M: Vijay Kumar Srivastava <vsrivast@xilinx.com>
+S: Supported
F: drivers/vdpa/sfc/
F: doc/guides/vdpadevs/sfc.rst
F: doc/guides/vdpadevs/features/sfc.ini
@@ -1320,42 +1505,50 @@ F: doc/guides/vdpadevs/features/sfc.ini
Eventdev Drivers
----------------
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Cavium OCTEON TX ssovf
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
F: drivers/event/octeontx/
F: doc/guides/eventdevs/octeontx.rst
Cavium OCTEON TX timvf
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: drivers/event/octeontx/timvf_*
Intel DLB2
M: Timothy McDaniel <timothy.mcdaniel@intel.com>
+S: Supported
F: drivers/event/dlb2/
F: doc/guides/eventdevs/dlb2.rst
Marvell cnxk
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
M: Shijith Thotton <sthotton@marvell.com>
+S: Supported
F: drivers/event/cnxk/
F: doc/guides/eventdevs/cnxk.rst
NXP DPAA eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa/
F: doc/guides/eventdevs/dpaa.rst
NXP DPAA2 eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa2/
F: doc/guides/eventdevs/dpaa2.rst
Software Eventdev PMD
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: drivers/event/sw/
F: doc/guides/eventdevs/sw.rst
F: examples/eventdev_pipeline/
@@ -1363,11 +1556,13 @@ F: doc/guides/sample_app_ug/eventdev_pipeline.rst
Distributed Software Eventdev PMD
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: drivers/event/dsw/
F: doc/guides/eventdevs/dsw.rst
Software OPDL Eventdev PMD
M: Liang Ma <liangma@liangbit.com>
+S: Supported
M: Peter Mccarthy <peter.mccarthy@intel.com>
F: drivers/event/opdl/
F: doc/guides/eventdevs/opdl.rst
@@ -1378,6 +1573,7 @@ Baseband Drivers
Intel baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/turbo_sw/
F: doc/guides/bbdevs/turbo_sw.rst
@@ -1397,6 +1593,7 @@ F: doc/guides/bbdevs/features/vrb1.ini
Null baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/null/
F: doc/guides/bbdevs/null.rst
@@ -1405,6 +1602,7 @@ F: doc/guides/bbdevs/features/null.ini
NXP LA12xx
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/la12xx/
F: doc/guides/bbdevs/la12xx.rst
@@ -1416,6 +1614,7 @@ GPU Drivers
NVIDIA CUDA
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: drivers/gpu/cuda/
F: doc/guides/gpus/cuda.rst
@@ -1426,6 +1625,7 @@ Rawdev Drivers
Intel FPGA
M: Rosen Xu <rosen.xu@intel.com>
M: Tianfei zhang <tianfei.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/raw/ifpga/
F: doc/guides/rawdevs/ifpga.rst
@@ -1433,18 +1633,21 @@ F: doc/guides/rawdevs/ifpga.rst
Marvell CNXK BPHY
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_bphy.rst
F: drivers/raw/cnxk_bphy/
Marvell CNXK GPIO
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_gpio.rst
F: drivers/raw/cnxk_gpio/
NTB
M: Jingjing Wu <jingjing.wu@intel.com>
M: Junfeng Guo <junfeng.guo@intel.com>
+S: Supported
F: drivers/raw/ntb/
F: doc/guides/rawdevs/ntb.rst
F: examples/ntb/
@@ -1452,6 +1655,7 @@ F: doc/guides/sample_app_ug/ntb.rst
NXP DPAA2 CMDIF
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: drivers/raw/dpaa2_cmdif/
F: doc/guides/rawdevs/dpaa2_cmdif.rst
@@ -1461,12 +1665,14 @@ Packet processing
Network headers
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/net/
F: app/test/test_cksum.c
F: app/test/test_cksum_perf.c
Packet CRC
M: Jasvinder Singh <jasvinder.singh@intel.com>
+S: Supported
F: lib/net/net_crc.h
F: lib/net/rte_net_crc*
F: lib/net/net_crc_avx512.c
@@ -1475,6 +1681,7 @@ F: app/test/test_crc.c
IP fragmentation & reassembly
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ip_frag/
F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
F: app/test/test_ipfrag.c
@@ -1486,16 +1693,19 @@ F: doc/guides/sample_app_ug/ip_reassembly.rst
Generic Receive Offload - EXPERIMENTAL
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gro/
F: doc/guides/prog_guide/generic_receive_offload_lib.rst
Generic Segmentation Offload
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gso/
F: doc/guides/prog_guide/generic_segmentation_offload_lib.rst
IPsec
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/ipsec/
F: app/test/test_ipsec*
@@ -1506,12 +1716,14 @@ F: app/test-sad/
PDCP - EXPERIMENTAL
M: Anoob Joseph <anoobj@marvell.com>
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/pdcp/
F: doc/guides/prog_guide/pdcp_lib.rst
F: app/test/test_pdcp*
Flow Classify - EXPERIMENTAL - UNMAINTAINED
+S: Orphan
F: lib/flow_classify/
F: app/test/test_flow_classify*
F: doc/guides/prog_guide/flow_classify_lib.rst
@@ -1520,6 +1732,7 @@ F: doc/guides/sample_app_ug/flow_classify.rst
Distributor
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/distributor/
F: doc/guides/prog_guide/packet_distrib_lib.rst
F: app/test/test_distributor*
@@ -1528,6 +1741,7 @@ F: doc/guides/sample_app_ug/dist_app.rst
Reorder
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
F: lib/reorder/
F: doc/guides/prog_guide/reorder_lib.rst
F: app/test/test_reorder*
@@ -1536,6 +1750,7 @@ F: doc/guides/sample_app_ug/packet_ordering.rst
Hierarchical scheduler
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/sched/
F: doc/guides/prog_guide/qos_framework.rst
F: app/test/test_pie.c
@@ -1547,6 +1762,7 @@ F: doc/guides/sample_app_ug/qos_scheduler.rst
Packet capture
M: Reshma Pattan <reshma.pattan@intel.com>
M: Stephen Hemminger <stephen@networkplumber.org>
+S: Maintained
F: lib/pdump/
F: doc/guides/prog_guide/pdump_lib.rst
F: app/test/test_pdump.*
@@ -1562,6 +1778,7 @@ F: doc/guides/tools/dumpcap.rst
Packet Framework
----------------
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Obsolete
F: lib/pipeline/
F: lib/port/
F: lib/table/
@@ -1579,6 +1796,7 @@ Algorithms
ACL
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/acl/
F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
F: app/test-acl/
@@ -1587,6 +1805,7 @@ F: app/test/test_acl.*
EFD
M: Byron Marohn <byron.marohn@intel.com>
M: Yipeng Wang <yipeng1.wang@intel.com>
+S: Supported
F: lib/efd/
F: doc/guides/prog_guide/efd_lib.rst
F: app/test/test_efd*
@@ -1598,6 +1817,7 @@ M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/hash/
F: doc/guides/prog_guide/hash_lib.rst
F: doc/guides/prog_guide/toeplitz_hash_lib.rst
@@ -1607,6 +1827,7 @@ F: app/test/test_func_reentrancy.c
LPM
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/lpm/
F: doc/guides/prog_guide/lpm*
F: app/test/test_lpm*
@@ -1616,12 +1837,14 @@ F: app/test/test_xmmt_ops.h
Membership - EXPERIMENTAL
M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
+S: Supported
F: lib/member/
F: doc/guides/prog_guide/member_lib.rst
F: app/test/test_member*
RIB/FIB
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/rib/
F: app/test/test_rib*
F: lib/fib/
@@ -1630,6 +1853,7 @@ F: app/test-fib/
Traffic metering
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/meter/
F: doc/guides/sample_app_ug/qos_scheduler.rst
F: app/test/test_meter.c
@@ -1642,12 +1866,14 @@ Other libraries
Configuration file
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/cfgfile/
F: app/test/test_cfgfile.c
F: app/test/test_cfgfiles/
Interactive command line
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/cmdline/
F: app/test-cmdline/
F: app/test/test_cmdline*
@@ -1656,11 +1882,13 @@ F: doc/guides/sample_app_ug/cmd_line.rst
Key/Value parsing
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/kvargs/
F: app/test/test_kvargs.c
RCU
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/rcu/
F: app/test/test_rcu*
F: doc/guides/prog_guide/rcu_lib.rst
@@ -1668,11 +1896,13 @@ F: doc/guides/prog_guide/rcu_lib.rst
PCI
M: Chenbo Xia <chenbo.xia@intel.com>
M: Gaetan Rivet <grive@u256.net>
+S: Supported
F: lib/pci/
Power management
M: Anatoly Burakov <anatoly.burakov@intel.com>
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/power/
F: doc/guides/prog_guide/power_man.rst
F: app/test/test_power*
@@ -1683,6 +1913,7 @@ F: doc/guides/sample_app_ug/vm_power_management.rst
Timers
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
F: lib/timer/
F: doc/guides/prog_guide/timer_lib.rst
F: app/test/test_timer*
@@ -1690,25 +1921,30 @@ F: examples/timer/
F: doc/guides/sample_app_ug/timer.rst
Job statistics
+S: Orphan
F: lib/jobstats/
F: examples/l2fwd-jobstats/
F: doc/guides/sample_app_ug/l2_forward_job_stats.rst
Metrics
+S: Orphan
F: lib/metrics/
F: app/test/test_metrics.c
Bit-rate statistics
+S: Orphan
F: lib/bitratestats/
F: app/test/test_bitratestats.c
Latency statistics
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: lib/latencystats/
F: app/test/test_latencystats.c
Telemetry
M: Ciara Power <ciara.power@intel.com>
+S: Supported
F: lib/telemetry/
F: app/test/test_telemetry*
F: usertools/dpdk-telemetry*
@@ -1716,6 +1952,7 @@ F: doc/guides/howto/telemetry.rst
BPF
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/bpf/
F: examples/bpf/
F: app/test/test_bpf.c
@@ -1727,6 +1964,7 @@ M: Jerin Jacob <jerinj@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Zhirun Yan <zhirun.yan@intel.com>
+S: Supported
F: lib/graph/
F: doc/guides/prog_guide/graph_lib.rst
F: app/test/test_graph*
@@ -1736,6 +1974,7 @@ F: doc/guides/sample_app_ug/l3_forward_graph.rst
Nodes - EXPERIMENTAL
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: lib/node/
@@ -1743,6 +1982,7 @@ Test Applications
-----------------
Unit tests framework
+S: Maintained
F: app/test/commands.c
F: app/test/has_hugepage.py
F: app/test/packet_burst_generator.c
@@ -1758,45 +1998,53 @@ F: app/test/virtual_pmd.h
Sample packet helper functions for unit test
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/test/sample_packet_forward.c
F: app/test/sample_packet_forward.h
Networking drivers testing tool
M: Aman Singh <aman.deep.singh@intel.com>
M: Yuying Zhang <yuying.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/
F: doc/guides/testpmd_app_ug/
DMA device performance tool
M: Cheng Jiang <cheng1.jiang@intel.com>
+S: Supported
F: app/test-dma-perf/
F: doc/guides/tools/dmaperf.rst
Flow performance tool
M: Wisam Jaddo <wisamm@nvidia.com>
+S: Supported
F: app/test-flow-perf/
F: doc/guides/tools/flow-perf.rst
Security performance tool
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-security-perf/
F: doc/guides/tools/securityperf.rst
Compression performance test application
T: git://dpdk.org/next/dpdk-next-crypto
+S: Orphan
F: app/test-compress-perf/
F: doc/guides/tools/comp_perf.rst
Crypto performance test application
M: Ciara Power <ciara.power@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-crypto-perf/
F: doc/guides/tools/cryptoperf.rst
Eventdev test application
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: app/test-eventdev/
F: doc/guides/tools/testeventdev.rst
@@ -1806,12 +2054,14 @@ F: app/test/test_event_ring.c
Procinfo tool
M: Maryam Tahhan <maryam.tahhan@intel.com>
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/proc-info/
F: doc/guides/tools/proc_info.rst
DTS
M: Lijuan Tu <lijuan.tu@intel.com>
M: Juraj Linkeš <juraj.linkes@pantheon.tech>
+S: Supported
F: dts/
F: devtools/dts-check-format.sh
F: doc/guides/tools/dts.rst
@@ -1821,77 +2071,92 @@ Other Example Applications
--------------------------
Ethtool example
+S: Orphan
F: examples/ethtool/
F: doc/guides/sample_app_ug/ethtool.rst
FIPS validation example
M: Brian Dooley <brian.dooley@intel.com>
M: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
+S: Supported
F: examples/fips_validation/
F: doc/guides/sample_app_ug/fips_validation.rst
Flow filtering example
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: examples/flow_filtering/
F: doc/guides/sample_app_ug/flow_filtering.rst
Helloworld example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/helloworld/
F: doc/guides/sample_app_ug/hello_world.rst
IPsec security gateway example
M: Radu Nicolau <radu.nicolau@intel.com>
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
F: examples/ipsec-secgw/
F: doc/guides/sample_app_ug/ipsec_secgw.rst
IPv4 multicast example
+S: Orphan
F: examples/ipv4_multicast/
F: doc/guides/sample_app_ug/ipv4_multicast.rst
L2 forwarding example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/l2fwd/
F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
L2 forwarding with cache allocation example
M: Tomasz Kantecki <tomasz.kantecki@intel.com>
+S: Supported
F: doc/guides/sample_app_ug/l2_forward_cat.rst
F: examples/l2fwd-cat/
L2 forwarding with eventdev example
M: Sunil Kumar Kori <skori@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: examples/l2fwd-event/
F: doc/guides/sample_app_ug/l2_forward_event.rst
L3 forwarding example
+S: Maintained
F: examples/l3fwd/
F: doc/guides/sample_app_ug/l3_forward.rst
Link status interrupt example
+S: Maintained
F: examples/link_status_interrupt/
F: doc/guides/sample_app_ug/link_status_intr.rst
PTP client example
M: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
+S: Supported
F: examples/ptpclient/
Rx/Tx callbacks example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/rxtx_callbacks/
F: doc/guides/sample_app_ug/rxtx_callbacks.rst
Skeleton example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/skeleton/
F: doc/guides/sample_app_ug/skeleton.rst
VMDq examples
+S: Orphan
F: examples/vmdq/
F: doc/guides/sample_app_ug/vmdq_forwarding.rst
F: examples/vmdq_dcb/
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v3] MAINTAINERS: add status information
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
2023-07-19 16:07 ` [PATCH v2] " Stephen Hemminger
@ 2023-07-20 17:21 ` Stephen Hemminger
2023-07-20 17:45 ` [PATCH v2 ] tap: fix build of TAP BPF program Stephen Hemminger
` (5 subsequent siblings)
7 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-20 17:21 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Add a new field S: which indicates the status of support for
individual sub-trees. Almost everything is marked as supported
but components without any maintainer are listed as Orphan.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v3 - add back Makefile
mark vdev_netvsc as Odd Fixes
MAINTAINERS | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 266 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 18bc05fccd0d..42cc29e6c475 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17,6 +17,16 @@ Descriptions of section entries:
X: Files and directories exclusion, same rules as F:
K: Keyword regex pattern to match content.
One regex pattern per line. Multiple K: lines acceptable.
+ S: *Status*, one of the following:
+ Supported: Someone is actually paid to look after this.
+ Maintained: Someone actually looks after it.
+ Odd Fixes: It has a maintainer but they don't have time to do
+ much other than throw the odd patch in. See below..
+ Orphan: No current maintainer [but maybe you could take the
+ role as you write your new code].
+ Obsolete: Old code. Something tagged obsolete generally means
+ it has been replaced by a better system and you
+ should be using that.
General Project Administration
@@ -25,44 +35,54 @@ General Project Administration
Main Branch
M: Thomas Monjalon <thomas@monjalon.net>
M: David Marchand <david.marchand@redhat.com>
+S: Supported
T: git://dpdk.org/dpdk
Next-net Tree
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
Next-net-brcm Tree
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
Next-net-intel Tree
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
Next-net-mrvl Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
Next-net-mlx Tree
M: Raslan Darawsheh <rasland@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
Next-virtio Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
Next-crypto Tree
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
Next-eventdev Tree
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Next-baseband Tree
M: Maxime Coquelin <maxime.coquelin@redhat.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
Stable Branches
@@ -70,17 +90,21 @@ M: Luca Boccassi <bluca@debian.org>
M: Kevin Traynor <ktraynor@redhat.com>
M: Christian Ehrhardt <christian.ehrhardt@canonical.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
T: git://dpdk.org/dpdk-stable
Security Issues
M: maintainers@dpdk.org
+S: Supported
Documentation (with overlaps)
F: README
F: doc/
+S: Supported
Developers and Maintainers Tools
M: Thomas Monjalon <thomas@monjalon.net>
+S: Supported
F: MAINTAINERS
F: devtools/build-dict.sh
F: devtools/check-abi.sh
@@ -110,6 +134,7 @@ F: .mailmap
Build System
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: Makefile
F: meson.build
F: meson_options.txt
@@ -130,11 +155,13 @@ F: devtools/check-meson.py
Public CI
M: Aaron Conole <aconole@redhat.com>
M: Michael Santana <maicolgabriel@hotmail.com>
+S: Supported
F: .github/workflows/build.yml
F: .ci/
Driver information
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Maintained
F: buildtools/coff.py
F: buildtools/gen-pmdinfo-cfile.py
F: buildtools/pmdinfogen.py
@@ -147,6 +174,7 @@ Environment Abstraction Layer
T: git://dpdk.org/dpdk
EAL API and common code
+S: Supported
F: lib/eal/common/
F: lib/eal/unix/
F: lib/eal/include/
@@ -180,6 +208,7 @@ F: app/test/test_version.c
Trace - EXPERIMENTAL
M: Jerin Jacob <jerinj@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
+S: Supported
F: lib/eal/include/rte_trace*.h
F: lib/eal/common/eal_common_trace*.c
F: lib/eal/common/eal_trace.h
@@ -188,6 +217,7 @@ F: app/test/test_trace*
Memory Allocation
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/include/rte_fbarray.h
F: lib/eal/include/rte_mem*
F: lib/eal/include/rte_malloc.h
@@ -209,11 +239,13 @@ F: app/test/test_memzone.c
Interrupt Subsystem
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
F: lib/eal/include/rte_epoll.h
F: lib/eal/*/*interrupts.*
F: app/test/test_interrupts.c
Keep alive
+S: Orphan
F: lib/eal/include/rte_keepalive.h
F: lib/eal/common/rte_keepalive.c
F: examples/l2fwd-keepalive/
@@ -221,6 +253,7 @@ F: doc/guides/sample_app_ug/keep_alive.rst
Secondary process
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Maintained
K: RTE_PROC_
F: lib/eal/common/eal_common_proc.c
F: doc/guides/prog_guide/multi_proc_support.rst
@@ -230,6 +263,7 @@ F: doc/guides/sample_app_ug/multi_process.rst
Service Cores
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: lib/eal/include/rte_service.h
F: lib/eal/include/rte_service_component.h
F: lib/eal/common/rte_service.c
@@ -240,44 +274,52 @@ F: doc/guides/sample_app_ug/service_cores.rst
Bitops
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_bitops.h
F: app/test/test_bitops.c
Bitmap
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/eal/include/rte_bitmap.h
F: app/test/test_bitmap.c
MCSlock
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/eal/include/rte_mcslock.h
F: app/test/test_mcslock.c
Sequence Lock
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_seqcount.h
F: lib/eal/include/rte_seqlock.h
F: app/test/test_seqlock.c
Ticketlock
M: Joyce Kong <joyce.kong@arm.com>
+S: Supported
F: lib/eal/include/rte_ticketlock.h
F: app/test/test_ticketlock.c
Pseudo-random Number Generation
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: lib/eal/include/rte_random.h
F: lib/eal/common/rte_random.c
F: app/test/test_rand_perf.c
ARM v7
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: lib/eal/arm/
X: lib/eal/arm/include/*_64.h
ARM v8
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: config/arm/
F: doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
F: lib/eal/arm/
@@ -291,12 +333,14 @@ F: examples/common/neon/
LoongArch
M: Min Zhou <zhoumin@loongson.cn>
+S: Supported
F: config/loongarch/
F: doc/guides/linux_gsg/cross_build_dpdk_for_loongarch.rst
F: lib/eal/loongarch/
IBM POWER (alpha)
M: David Christensen <drc@linux.vnet.ibm.com>
+S: Supported
F: config/ppc/
F: lib/eal/ppc/
F: lib/*/*_altivec*
@@ -307,6 +351,7 @@ F: examples/common/altivec/
RISC-V
M: Stanislaw Kardach <kda@semihalf.com>
+S: Supported
F: config/riscv/
F: doc/guides/linux_gsg/cross_build_dpdk_for_riscv.rst
F: lib/eal/riscv/
@@ -314,6 +359,7 @@ F: lib/eal/riscv/
Intel x86
M: Bruce Richardson <bruce.richardson@intel.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: config/x86/
F: doc/guides/linux_gsg/nic_perf_intel_platform.rst
F: buildtools/binutils-avx512-check.py
@@ -330,28 +376,34 @@ F: examples/*/*_avx*
F: examples/common/sse/
Linux EAL (with overlaps)
+S: Supported
F: lib/eal/linux/
F: doc/guides/linux_gsg/
Linux UIO
+S: Supported
F: drivers/bus/pci/linux/*uio*
Linux VFIO
M: Anatoly Burakov <anatoly.burakov@intel.com>
+S: Supported
F: lib/eal/linux/*vfio*
F: drivers/bus/pci/linux/*vfio*
FreeBSD EAL (with overlaps)
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Odd Fixes
F: lib/eal/freebsd/
F: doc/guides/freebsd_gsg/
FreeBSD contigmem
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Oddd Fixes
F: kernel/freebsd/contigmem/
FreeBSD UIO
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Odd Fixes
F: kernel/freebsd/nic_uio/
Windows support
@@ -359,12 +411,14 @@ M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
M: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
M: Dmitry Malloy <dmitrym@microsoft.com>
M: Pallavi Kadam <pallavi.kadam@intel.com>
+S: Supported
F: lib/eal/windows/
F: buildtools/map_to_win.py
F: doc/guides/windows_gsg/
Windows memory allocation
M: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
+S: Supported
F: lib/eal/windows/eal_hugepages.c
F: lib/eal/windows/eal_mem*
@@ -372,10 +426,12 @@ F: lib/eal/windows/eal_mem*
Core Libraries
--------------
T: git://dpdk.org/dpdk
+S: Maintained
Memory pool
M: Olivier Matz <olivier.matz@6wind.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: lib/mempool/
F: drivers/mempool/ring/
F: doc/guides/prog_guide/mempool_lib.rst
@@ -385,6 +441,7 @@ F: app/test/test_func_reentrancy.c
Ring queue
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ring/
F: doc/guides/prog_guide/ring_lib.rst
F: app/test/test_ring*
@@ -392,6 +449,7 @@ F: app/test/test_func_reentrancy.c
Stack
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/stack/
F: drivers/mempool/stack/
F: app/test/test_stack*
@@ -399,6 +457,7 @@ F: doc/guides/prog_guide/stack_lib.rst
Packet buffer
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/mbuf/
F: doc/guides/prog_guide/mbuf_lib.rst
F: app/test/test_mbuf.c
@@ -407,6 +466,7 @@ Ethernet API
M: Thomas Monjalon <thomas@monjalon.net>
M: Ferruh Yigit <ferruh.yigit@amd.com>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/
F: app/test/test_ethdev*
@@ -415,6 +475,7 @@ F: doc/guides/prog_guide/switch_representation.rst
Flow API
M: Ori Kam <orika@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/cmdline_flow.c
F: doc/guides/prog_guide/rte_flow.rst
@@ -422,18 +483,21 @@ F: lib/ethdev/rte_flow*
Traffic Management API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_tm*
F: app/test-pmd/cmdline_tm.*
Traffic Metering and Policing API - EXPERIMENTAL
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: lib/ethdev/rte_mtr*
F: app/test-pmd/cmdline_mtr.*
Baseband API
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: lib/bbdev/
F: doc/guides/prog_guide/bbdev.rst
@@ -446,6 +510,7 @@ F: doc/guides/sample_app_ug/bbdev_app.rst
Crypto API
M: Akhil Goyal <gakhil@marvell.com>
M: Fan Zhang <fanzhang.oss@gmail.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/cryptodev/
F: app/test/test_cryptodev*
@@ -453,6 +518,7 @@ F: examples/l2fwd-crypto/
Security API
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/security/
F: doc/guides/prog_guide/rte_security.rst
@@ -461,6 +527,7 @@ F: app/test/test_security*
Compression API - EXPERIMENTAL
M: Fan Zhang <fanzhang.oss@gmail.com>
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/compressdev/
F: drivers/compress/
@@ -470,6 +537,7 @@ F: doc/guides/compressdevs/features/default.ini
RegEx API - EXPERIMENTAL
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: lib/regexdev/
F: app/test-regex/
F: doc/guides/prog_guide/regexdev.rst
@@ -477,6 +545,7 @@ F: doc/guides/regexdevs/features/default.ini
Machine Learning device API - EXPERIMENTAL
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: lib/mldev/
F: doc/guides/prog_guide/mldev.rst
F: app/test-mldev/
@@ -484,6 +553,7 @@ F: doc/guides/tools/testmldev.rst
DMA device API - EXPERIMENTAL
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: lib/dmadev/
F: drivers/dma/skeleton/
F: app/test/test_dmadev*
@@ -495,6 +565,7 @@ F: doc/guides/sample_app_ug/dma.rst
General-Purpose Graphics Processing Unit (GPU) API - EXPERIMENTAL
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: lib/gpudev/
F: doc/guides/prog_guide/gpudev.rst
F: doc/guides/gpus/features/default.ini
@@ -502,6 +573,7 @@ F: app/test-gpudev/
Eventdev API
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/
F: drivers/event/skeleton/
@@ -510,6 +582,7 @@ F: examples/l3fwd/l3fwd_event*
Eventdev Ethdev Rx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_rx_adapter*
F: app/test/test_event_eth_rx_adapter.c
@@ -517,6 +590,7 @@ F: doc/guides/prog_guide/event_ethernet_rx_adapter.rst
Eventdev Ethdev Tx Adapter API
M: Naga Harish K S V <s.v.naga.harish.k@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*eth_tx_adapter*
F: app/test/test_event_eth_tx_adapter.c
@@ -524,6 +598,7 @@ F: doc/guides/prog_guide/event_ethernet_tx_adapter.rst
Eventdev Timer Adapter API
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*timer_adapter*
F: app/test/test_event_timer_adapter.c
@@ -531,6 +606,7 @@ F: doc/guides/prog_guide/event_timer_adapter.rst
Eventdev Crypto Adapter API
M: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: lib/eventdev/*crypto_adapter*
F: app/test/test_event_crypto_adapter.c
@@ -539,6 +615,7 @@ F: doc/guides/prog_guide/event_crypto_adapter.rst
Raw device API
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: lib/rawdev/
F: drivers/raw/skeleton/
F: app/test/test_rawdev.c
@@ -551,11 +628,13 @@ Memory Pool Drivers
Bucket memory pool
M: Artem V. Andreev <artem.andreev@oktetlabs.ru>
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/mempool/bucket/
Marvell cnxk
M: Ashwin Sekhar T K <asekhar@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/mempool/cnxk/
F: doc/guides/mempool/cnxk.rst
@@ -567,20 +646,24 @@ Bus Drivers
AMD CDX bus
M: Nipun Gupta <nipun.gupta@amd.com>
M: Nikhil Agarwal <nikhil.agarwal@amd.com>
+S: Supported
F: drivers/bus/cdx/
Auxiliary bus driver - EXPERIMENTAL
M: Parav Pandit <parav@nvidia.com>
M: Xueming Li <xuemingl@nvidia.com>
+S: Supported
F: drivers/bus/auxiliary/
Intel FPGA bus
M: Rosen Xu <rosen.xu@intel.com>
+S: Supported
F: drivers/bus/ifpga/
NXP buses
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/common/dpaax/
F: drivers/bus/dpaa/
F: drivers/bus/fslmc/
@@ -588,36 +671,43 @@ F: drivers/bus/fslmc/
PCI bus driver
M: Chenbo Xia <chenbo.xia@intel.com>
M: Nipun Gupta <nipun.gupta@amd.com>
+S: Supported
F: drivers/bus/pci/
Platform bus driver
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: drivers/bus/platform/
VDEV bus driver
+S: Maintained
F: drivers/bus/vdev/
F: app/test/test_vdev.c
VMBUS bus driver
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/bus/vmbus/
Networking Drivers
------------------
M: Ferruh Yigit <ferruh.yigit@amd.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: doc/guides/nics/features/default.ini
Link bonding
M: Chas Williams <chas3@att.com>
M: Min Hu (Connor) <humin29@huawei.com>
+S: Supported
F: drivers/net/bonding/
F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
F: app/test/test_link_bonding*
F: examples/bond/
Linux KNI
+S: Obsolete
F: kernel/linux/kni/
F: lib/kni/
F: doc/guides/prog_guide/kernel_nic_interface.rst
@@ -625,12 +715,14 @@ F: app/test/test_kni.c
Linux AF_PACKET
M: John W. Linville <linville@tuxdriver.com>
+S: Odd Fixes
F: drivers/net/af_packet/
F: doc/guides/nics/features/afpacket.ini
Linux AF_XDP
M: Ciara Loftus <ciara.loftus@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
F: drivers/net/af_xdp/
F: doc/guides/nics/af_xdp.rst
F: doc/guides/nics/features/af_xdp.ini
@@ -641,24 +733,28 @@ M: Shai Brandes <shaibran@amazon.com>
M: Evgeny Schemeilin <evgenys@amazon.com>
M: Igor Chauskin <igorch@amazon.com>
M: Ron Beider <rbeider@amazon.com>
+S: Supported
F: drivers/net/ena/
F: doc/guides/nics/ena.rst
F: doc/guides/nics/features/ena.ini
AMD axgbe
M: Chandubabu Namburu <chandu@amd.com>
+S: Supported
F: drivers/net/axgbe/
F: doc/guides/nics/axgbe.rst
F: doc/guides/nics/features/axgbe.ini
AMD Pensando ionic
M: Andrew Boyer <andrew.boyer@amd.com>
+S: Supported
F: drivers/net/ionic/
F: doc/guides/nics/ionic.rst
F: doc/guides/nics/features/ionic.ini
Marvell/Aquantia atlantic
M: Igor Russkikh <irusskikh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/atlantic/
F: doc/guides/nics/atlantic.rst
@@ -668,6 +764,7 @@ Atomic Rules ARK
M: Shepard Siegel <shepard.siegel@atomicrules.com>
M: Ed Czeck <ed.czeck@atomicrules.com>
M: John Miller <john.miller@atomicrules.com>
+S: Supported
F: drivers/net/ark/
F: doc/guides/nics/ark.rst
F: doc/guides/nics/features/ark.ini
@@ -675,6 +772,7 @@ F: doc/guides/nics/features/ark.ini
Broadcom bnxt
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Somnath Kotur <somnath.kotur@broadcom.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-brcm
F: drivers/net/bnxt/
F: doc/guides/nics/bnxt.rst
@@ -683,6 +781,7 @@ F: doc/guides/nics/features/bnxt.ini
Cavium ThunderX nicvf
M: Jerin Jacob <jerinj@marvell.com>
M: Maciej Czekaj <mczekaj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/thunderx/
F: doc/guides/nics/thunderx.rst
@@ -690,6 +789,7 @@ F: doc/guides/nics/features/thunderx.ini
Cavium OCTEON TX
M: Harman Kalra <hkalra@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/octeontx/
F: drivers/mempool/octeontx/
@@ -699,6 +799,7 @@ F: doc/guides/nics/features/octeontx.ini
Chelsio cxgbe
M: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
+S: Supported
F: drivers/net/cxgbe/
F: doc/guides/nics/cxgbe.rst
F: doc/guides/nics/features/cxgbe.ini
@@ -706,6 +807,7 @@ F: doc/guides/nics/features/cxgbe.ini
Cisco enic
M: John Daley <johndale@cisco.com>
M: Hyong Youb Kim <hyonkim@cisco.com>
+S: Supported
F: drivers/net/enic/
F: doc/guides/nics/enic.rst
F: doc/guides/nics/features/enic.ini
@@ -715,6 +817,7 @@ M: Junfeng Guo <junfeng.guo@intel.com>
M: Jeroen de Borst <jeroendb@google.com>
M: Rushil Gupta <rushilg@google.com>
M: Joshua Washington <joshwash@google.com>
+S: Supported
F: drivers/net/gve/
F: doc/guides/nics/gve.rst
F: doc/guides/nics/features/gve.ini
@@ -722,6 +825,7 @@ F: doc/guides/nics/features/gve.ini
Hisilicon hns3
M: Dongdong Liu <liudongdong3@huawei.com>
M: Yisen Zhuang <yisen.zhuang@huawei.com>
+S: Supported
F: drivers/net/hns3/
F: doc/guides/nics/hns3.rst
F: doc/guides/nics/features/hns3.ini
@@ -730,6 +834,7 @@ Huawei hinic
M: Ziyang Xuan <xuanziyang2@huawei.com>
M: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>
M: Guoyang Zhou <zhouguoyang@huawei.com>
+S: Supported
F: drivers/net/hinic/
F: doc/guides/nics/hinic.rst
F: doc/guides/nics/features/hinic.ini
@@ -737,6 +842,7 @@ F: doc/guides/nics/features/hinic.ini
Intel e1000
M: Simei Su <simei.su@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/e1000/
F: doc/guides/nics/e1000em.rst
@@ -747,6 +853,7 @@ F: doc/guides/nics/features/igb*.ini
Intel ixgbe
M: Qiming Yang <qiming.yang@intel.com>
M: Wenjun Wu <wenjun1.wu@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ixgbe/
F: doc/guides/nics/ixgbe.rst
@@ -756,6 +863,7 @@ F: doc/guides/nics/features/ixgbe*.ini
Intel i40e
M: Yuying Zhang <Yuying.Zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/i40e/
F: doc/guides/nics/i40e.rst
@@ -765,6 +873,7 @@ F: doc/guides/nics/features/i40e*.ini
Intel fm10k
M: Qi Zhang <qi.z.zhang@intel.com>
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/fm10k/
F: doc/guides/nics/fm10k.rst
@@ -773,6 +882,7 @@ F: doc/guides/nics/features/fm10k*.ini
Intel iavf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/iavf/
F: drivers/common/iavf/
@@ -781,6 +891,7 @@ F: doc/guides/nics/features/iavf*.ini
Intel ice
M: Qiming Yang <qiming.yang@intel.com>
M: Qi Zhang <qi.z.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/ice/
F: doc/guides/nics/ice.rst
@@ -789,6 +900,7 @@ F: doc/guides/nics/features/ice.ini
Intel idpf
M: Jingjing Wu <jingjing.wu@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/idpf/
F: drivers/common/idpf/
@@ -798,6 +910,7 @@ F: doc/guides/nics/features/idpf.ini
Intel cpfl - EXPERIMENTAL
M: Yuying Zhang <yuying.zhang@intel.com>
M: Beilei Xing <beilei.xing@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/cpfl/
F: doc/guides/nics/cpfl.rst
@@ -806,6 +919,7 @@ F: doc/guides/nics/features/cpfl.ini
Intel igc
M: Junfeng Guo <junfeng.guo@intel.com>
M: Simei Su <simei.su@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/net/igc/
F: doc/guides/nics/igc.rst
@@ -814,6 +928,7 @@ F: doc/guides/nics/features/igc.ini
Intel ipn3ke
M: Rosen Xu <rosen.xu@intel.com>
T: git://dpdk.org/next/dpdk-next-net-intel
+S: Supported
F: drivers/net/ipn3ke/
F: doc/guides/nics/ipn3ke.rst
F: doc/guides/nics/features/ipn3ke.ini
@@ -823,6 +938,7 @@ M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Sunil Kumar Kori <skori@marvell.com>
M: Satha Rao <skoteshwar@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/cnxk/
F: drivers/net/cnxk/
@@ -832,6 +948,7 @@ F: doc/guides/platform/cnxk.rst
Marvell mvpp2
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/mvep/
F: drivers/net/mvpp2/
@@ -841,6 +958,7 @@ F: doc/guides/nics/features/mvpp2.ini
Marvell mvneta
M: Zyta Szpak <zr@semihalf.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/mvneta/
F: doc/guides/nics/mvneta.rst
@@ -848,6 +966,7 @@ F: doc/guides/nics/features/mvneta.ini
Marvell OCTEON TX EP - endpoint
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/octeon_ep/
F: doc/guides/nics/features/octeon_ep.ini
@@ -856,6 +975,7 @@ F: doc/guides/nics/octeon_ep.rst
NVIDIA mlx4
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/net/mlx4/
F: doc/guides/nics/mlx4.rst
@@ -866,6 +986,7 @@ M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
M: Ori Kam <orika@nvidia.com>
M: Suanming Mou <suanmingm@nvidia.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mlx
F: drivers/common/mlx5/
F: drivers/net/mlx5/
@@ -875,23 +996,27 @@ F: doc/guides/nics/features/mlx5.ini
Microsoft mana
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/mana/
F: doc/guides/nics/mana.rst
F: doc/guides/nics/features/mana.ini
Microsoft vdev_netvsc - EXPERIMENTAL
M: Matan Azrad <matan@nvidia.com>
+S: Odd Fixes
F: drivers/net/vdev_netvsc/
F: doc/guides/nics/vdev_netvsc.rst
Microsoft Hyper-V netvsc
M: Long Li <longli@microsoft.com>
+S: Supported
F: drivers/net/netvsc/
F: doc/guides/nics/netvsc.rst
F: doc/guides/nics/features/netvsc.ini
Netcope nfb
M: Martin Spinler <spinler@cesnet.cz>
+S: Supported
F: drivers/net/nfb/
F: doc/guides/nics/nfb.rst
F: doc/guides/nics/features/nfb.ini
@@ -899,6 +1024,7 @@ F: doc/guides/nics/features/nfb.ini
Netronome nfp
M: Chaoyong He <chaoyong.he@corigine.com>
M: Niklas Soderlund <niklas.soderlund@corigine.com>
+S: Supported
F: drivers/net/nfp/
F: doc/guides/nics/nfp.rst
F: doc/guides/nics/features/nfp*.ini
@@ -906,6 +1032,7 @@ F: doc/guides/nics/features/nfp*.ini
NXP dpaa
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa/
F: drivers/net/dpaa/
F: doc/guides/nics/dpaa.rst
@@ -914,6 +1041,7 @@ F: doc/guides/nics/features/dpaa.ini
NXP dpaa2
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/mempool/dpaa2/
F: drivers/net/dpaa2/
F: doc/guides/nics/dpaa2.rst
@@ -922,6 +1050,7 @@ F: doc/guides/nics/features/dpaa2.ini
NXP enetc
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/net/enetc/
F: doc/guides/nics/enetc.rst
F: doc/guides/nics/features/enetc.ini
@@ -929,18 +1058,21 @@ F: doc/guides/nics/features/enetc.ini
NXP enetfec - EXPERIMENTAL
M: Apeksha Gupta <apeksha.gupta@nxp.com>
M: Sachin Saxena <sachin.saxena@nxp.com>
+S: Supported
F: drivers/net/enetfec/
F: doc/guides/nics/enetfec.rst
F: doc/guides/nics/features/enetfec.ini
NXP pfe
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: doc/guides/nics/pfe.rst
F: drivers/net/pfe/
F: doc/guides/nics/features/pfe.ini
Marvell QLogic bnx2x
M: Julien Aube <julien_dpdk@jaube.fr>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/bnx2x/
F: doc/guides/nics/bnx2x.rst
@@ -949,6 +1081,7 @@ F: doc/guides/nics/features/bnx2x*.ini
Marvell QLogic qede PMD
M: Devendra Singh Rawat <dsinghrawat@marvell.com>
M: Alok Prasad <palok@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/net/qede/
F: doc/guides/nics/qede.rst
@@ -956,6 +1089,7 @@ F: doc/guides/nics/features/qede*.ini
Solarflare sfc_efx
M: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
+S: Supported
F: drivers/common/sfc_efx/
F: drivers/net/sfc/
F: doc/guides/nics/sfc_efx.rst
@@ -963,6 +1097,7 @@ F: doc/guides/nics/features/sfc.ini
Wangxun ngbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
+S: Supported
F: drivers/net/ngbe/
F: doc/guides/nics/ngbe.rst
F: doc/guides/nics/features/ngbe.ini
@@ -970,12 +1105,14 @@ F: doc/guides/nics/features/ngbe.ini
Wangxun txgbe
M: Jiawen Wu <jiawenwu@trustnetic.com>
M: Jian Wang <jianwang@trustnetic.com>
+S: Supported
F: drivers/net/txgbe/
F: doc/guides/nics/txgbe.rst
F: doc/guides/nics/features/txgbe.ini
VMware vmxnet3
M: Jochen Behrens <jbehrens@vmware.com>
+S: Supported
F: drivers/net/vmxnet3/
F: doc/guides/nics/vmxnet3.rst
F: doc/guides/nics/features/vmxnet3.ini
@@ -983,6 +1120,7 @@ F: doc/guides/nics/features/vmxnet3.ini
Vhost-user
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: lib/vhost/
F: doc/guides/prog_guide/vhost_lib.rst
@@ -997,6 +1135,7 @@ F: doc/guides/sample_app_ug/vdpa.rst
Vhost PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/vhost/
F: doc/guides/nics/vhost.rst
@@ -1005,6 +1144,7 @@ F: doc/guides/nics/features/vhost.ini
Virtio PMD
M: Maxime Coquelin <maxime.coquelin@redhat.com>
M: Chenbo Xia <chenbo.xia@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-virtio
F: drivers/net/virtio/
F: doc/guides/nics/virtio.rst
@@ -1013,26 +1153,31 @@ F: doc/guides/nics/features/virtio*.ini
Wind River AVP
M: Steven Webster <steven.webster@windriver.com>
M: Matt Peters <matt.peters@windriver.com>
+S: Supported
F: drivers/net/avp/
F: doc/guides/nics/avp.rst
F: doc/guides/nics/features/avp.ini
PCAP PMD
+S: Orphan
F: drivers/net/pcap/
F: doc/guides/nics/pcap_ring.rst
F: doc/guides/nics/features/pcap.ini
Tap PMD
+S: Orphan
F: drivers/net/tap/
F: doc/guides/nics/tap.rst
F: doc/guides/nics/features/tap.ini
KNI PMD
+S: Obsolete
F: drivers/net/kni/
F: doc/guides/nics/kni.rst
Ring PMD
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: drivers/net/ring/
F: doc/guides/nics/pcap_ring.rst
F: app/test/test_pmd_ring.c
@@ -1040,21 +1185,25 @@ F: app/test/test_pmd_ring_perf.c
Null Networking PMD
M: Tetsuya Mukawa <mtetsuyah@gmail.com>
+S: Supported
F: drivers/net/null/
Fail-safe PMD
M: Gaetan Rivet <grive@u256.net>
+S: Odd Fixes
F: drivers/net/failsafe/
F: doc/guides/nics/fail_safe.rst
F: doc/guides/nics/features/failsafe.ini
Softnic PMD
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: drivers/net/softnic/
F: doc/guides/nics/softnic.rst
Memif PMD
M: Jakub Grajciar <jgrajcia@cisco.com>
+S: Supported
F: drivers/net/memif/
F: doc/guides/nics/memif.rst
F: doc/guides/nics/features/memif.ini
@@ -1062,17 +1211,20 @@ F: doc/guides/nics/features/memif.ini
Crypto Drivers
--------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
F: doc/guides/cryptodevs/features/default.ini
AMD CCP Crypto
M: Sunil Uttarwar <sunilprakashrao.uttarwar@amd.com>
+S: Supported
F: drivers/crypto/ccp/
F: doc/guides/cryptodevs/ccp.rst
F: doc/guides/cryptodevs/features/ccp.ini
ARMv8 Crypto
M: Ruifeng Wang <ruifeng.wang@arm.com>
+S: Supported
F: drivers/crypto/armv8/
F: doc/guides/cryptodevs/armv8.rst
F: doc/guides/cryptodevs/features/armv8.ini
@@ -1081,12 +1233,14 @@ Broadcom FlexSparc
M: Ajit Khaparde <ajit.khaparde@broadcom.com>
M: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
M: Vikas Gupta <vikas.gupta@broadcom.com>
+S: Supported
F: drivers/crypto/bcmfs/
F: doc/guides/cryptodevs/bcmfs.rst
F: doc/guides/cryptodevs/features/bcmfs.ini
Cavium OCTEON TX crypto
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
F: drivers/common/cpt/
F: drivers/crypto/octeontx/
F: doc/guides/cryptodevs/octeontx.rst
@@ -1094,17 +1248,20 @@ F: doc/guides/cryptodevs/features/octeontx.ini
Crypto Scheduler
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/scheduler/
F: doc/guides/cryptodevs/scheduler.rst
HiSilicon UADK crypto
M: Zhangfei Gao <zhangfei.gao@linaro.org>
+S: Supported
F: drivers/crypto/uadk/
F: doc/guides/cryptodevs/uadk.rst
F: doc/guides/cryptodevs/features/uadk.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/qat/
F: drivers/common/qat/
F: doc/guides/cryptodevs/qat.rst
@@ -1113,6 +1270,7 @@ F: doc/guides/cryptodevs/features/qat.ini
IPsec MB
M: Kai Ji <kai.ji@intel.com>
M: Pablo de Lara <pablo.de.lara.guarch@intel.com>
+S: Supported
F: drivers/crypto/ipsec_mb/
F: doc/guides/cryptodevs/aesni_gcm.rst
F: doc/guides/cryptodevs/aesni_mb.rst
@@ -1131,6 +1289,7 @@ Marvell cnxk crypto
M: Ankur Dwivedi <adwivedi@marvell.com>
M: Anoob Joseph <anoobj@marvell.com>
M: Tejasree Kondoj <ktejasree@marvell.com>
+S: Supported
F: drivers/crypto/cnxk/
F: doc/guides/cryptodevs/cnxk.rst
F: doc/guides/cryptodevs/features/cn9k.ini
@@ -1139,6 +1298,7 @@ F: doc/guides/cryptodevs/features/cn10k.ini
Marvell mvsam
M: Michael Shamis <michaelsh@marvell.com>
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/crypto/mvsam/
F: doc/guides/cryptodevs/mvsam.rst
F: doc/guides/cryptodevs/features/mvsam.ini
@@ -1146,18 +1306,21 @@ F: doc/guides/cryptodevs/features/mvsam.ini
Marvell Nitrox
M: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
M: Srikanth Jampala <jsrikanth@marvell.com>
+S: Supported
F: drivers/crypto/nitrox/
F: doc/guides/cryptodevs/nitrox.rst
F: doc/guides/cryptodevs/features/nitrox.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/crypto/mlx5/
F: doc/guides/cryptodevs/mlx5.rst
F: doc/guides/cryptodevs/features/mlx5.ini
Null Crypto
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/null/
F: doc/guides/cryptodevs/null.rst
F: doc/guides/cryptodevs/features/null.ini
@@ -1165,6 +1328,7 @@ F: doc/guides/cryptodevs/features/null.ini
NXP CAAM JR
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/caam_jr/
F: doc/guides/cryptodevs/caam_jr.rst
F: doc/guides/cryptodevs/features/caam_jr.ini
@@ -1172,6 +1336,7 @@ F: doc/guides/cryptodevs/features/caam_jr.ini
NXP DPAA_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa_sec/
F: doc/guides/cryptodevs/dpaa_sec.rst
F: doc/guides/cryptodevs/features/dpaa_sec.ini
@@ -1179,18 +1344,21 @@ F: doc/guides/cryptodevs/features/dpaa_sec.ini
NXP DPAA2_SEC
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/crypto/dpaa2_sec/
F: doc/guides/cryptodevs/dpaa2_sec.rst
F: doc/guides/cryptodevs/features/dpaa2_sec.ini
OpenSSL
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/crypto/openssl/
F: doc/guides/cryptodevs/openssl.rst
F: doc/guides/cryptodevs/features/openssl.ini
Virtio
M: Jay Zhou <jianjay.zhou@huawei.com>
+S: Supported
F: drivers/crypto/virtio/
F: doc/guides/cryptodevs/virtio.rst
F: doc/guides/cryptodevs/features/virtio.ini
@@ -1198,31 +1366,37 @@ F: doc/guides/cryptodevs/features/virtio.ini
Compression Drivers
-------------------
+S: Maintained
T: git://dpdk.org/next/dpdk-next-crypto
Cavium OCTEON TX zipvf
M: Ashish Gupta <ashish.gupta@marvell.com>
+S: Supported
F: drivers/compress/octeontx/
F: doc/guides/compressdevs/octeontx.rst
F: doc/guides/compressdevs/features/octeontx.ini
Intel QuickAssist
M: Kai Ji <kai.ji@intel.com>
+S: Supported
F: drivers/compress/qat/
F: drivers/common/qat/
ISA-L
M: Lee Daly <lee.daly@intel.com>
+S: Supported
F: drivers/compress/isal/
F: doc/guides/compressdevs/isal.rst
F: doc/guides/compressdevs/features/isal.ini
NVIDIA mlx5
M: Matan Azrad <matan@nvidia.com>
+S: Supported
F: drivers/compress/mlx5/
ZLIB
M: Sunila Sahu <ssahu@marvell.com>
+S: Supported
F: drivers/compress/zlib/
F: doc/guides/compressdevs/zlib.rst
F: doc/guides/compressdevs/features/zlib.ini
@@ -1234,34 +1408,40 @@ DMAdev Drivers
Intel IDXD - EXPERIMENTAL
M: Bruce Richardson <bruce.richardson@intel.com>
M: Kevin Laatz <kevin.laatz@intel.com>
+S: Supported
F: drivers/dma/idxd/
F: doc/guides/dmadevs/idxd.rst
Intel IOAT
M: Bruce Richardson <bruce.richardson@intel.com>
M: Conor Walsh <conor.walsh@intel.com>
+S: Supported
F: drivers/dma/ioat/
F: doc/guides/dmadevs/ioat.rst
HiSilicon DMA
M: Chengwen Feng <fengchengwen@huawei.com>
+S: Supported
F: drivers/dma/hisilicon/
F: doc/guides/dmadevs/hisilicon.rst
Marvell CNXK DPI DMA
M: Vamsi Attunuru <vattunuru@marvell.com>
+S: Supported
F: drivers/dma/cnxk/
F: doc/guides/dmadevs/cnxk.rst
NXP DPAA DMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/dma/dpaa/
F: doc/guides/dmadevs/dpaa.rst
NXP DPAA2 QDMA
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
F: drivers/dma/dpaa2/
F: doc/guides/dmadevs/dpaa2.rst
@@ -1271,12 +1451,14 @@ RegEx Drivers
Marvell OCTEON CN9K regex
M: Liron Himi <lironh@marvell.com>
+S: Supported
F: drivers/regex/cn9k/
F: doc/guides/regexdevs/cn9k.rst
F: doc/guides/regexdevs/features/cn9k.ini
NVIDIA mlx5
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: drivers/regex/mlx5/
F: doc/guides/regexdevs/mlx5.rst
F: doc/guides/regexdevs/features/mlx5.ini
@@ -1287,6 +1469,7 @@ MLdev Drivers
Marvell ML CNXK
M: Srikanth Yalavarthi <syalavarthi@marvell.com>
+S: Supported
F: drivers/common/cnxk/hw/ml.h
F: drivers/common/cnxk/roc_ml*
F: drivers/ml/cnxk/
@@ -1299,6 +1482,7 @@ T: git://dpdk.org/next/dpdk-next-virtio
Intel ifc
M: Xiao Wang <xiao.w.wang@intel.com>
+S: Supported
F: drivers/vdpa/ifc/
F: doc/guides/vdpadevs/ifc.rst
F: doc/guides/vdpadevs/features/ifcvf.ini
@@ -1306,12 +1490,14 @@ F: doc/guides/vdpadevs/features/ifcvf.ini
NVIDIA mlx5 vDPA
M: Matan Azrad <matan@nvidia.com>
M: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
+S: Supported
F: drivers/vdpa/mlx5/
F: doc/guides/vdpadevs/mlx5.rst
F: doc/guides/vdpadevs/features/mlx5.ini
Xilinx sfc vDPA
M: Vijay Kumar Srivastava <vsrivast@xilinx.com>
+S: Supported
F: drivers/vdpa/sfc/
F: doc/guides/vdpadevs/sfc.rst
F: doc/guides/vdpadevs/features/sfc.ini
@@ -1320,42 +1506,50 @@ F: doc/guides/vdpadevs/features/sfc.ini
Eventdev Drivers
----------------
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
Cavium OCTEON TX ssovf
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
F: drivers/event/octeontx/
F: doc/guides/eventdevs/octeontx.rst
Cavium OCTEON TX timvf
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: drivers/event/octeontx/timvf_*
Intel DLB2
M: Timothy McDaniel <timothy.mcdaniel@intel.com>
+S: Supported
F: drivers/event/dlb2/
F: doc/guides/eventdevs/dlb2.rst
Marvell cnxk
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
M: Shijith Thotton <sthotton@marvell.com>
+S: Supported
F: drivers/event/cnxk/
F: doc/guides/eventdevs/cnxk.rst
NXP DPAA eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa/
F: doc/guides/eventdevs/dpaa.rst
NXP DPAA2 eventdev
M: Hemant Agrawal <hemant.agrawal@nxp.com>
M: Sachin Saxena <sachin.saxena@oss.nxp.com>
+S: Supported
F: drivers/event/dpaa2/
F: doc/guides/eventdevs/dpaa2.rst
Software Eventdev PMD
M: Harry van Haaren <harry.van.haaren@intel.com>
+S: Supported
F: drivers/event/sw/
F: doc/guides/eventdevs/sw.rst
F: examples/eventdev_pipeline/
@@ -1363,11 +1557,13 @@ F: doc/guides/sample_app_ug/eventdev_pipeline.rst
Distributed Software Eventdev PMD
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
+S: Supported
F: drivers/event/dsw/
F: doc/guides/eventdevs/dsw.rst
Software OPDL Eventdev PMD
M: Liang Ma <liangma@liangbit.com>
+S: Supported
M: Peter Mccarthy <peter.mccarthy@intel.com>
F: drivers/event/opdl/
F: doc/guides/eventdevs/opdl.rst
@@ -1378,6 +1574,7 @@ Baseband Drivers
Intel baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/turbo_sw/
F: doc/guides/bbdevs/turbo_sw.rst
@@ -1397,6 +1594,7 @@ F: doc/guides/bbdevs/features/vrb1.ini
Null baseband
M: Nicolas Chautru <nicolas.chautru@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/null/
F: doc/guides/bbdevs/null.rst
@@ -1405,6 +1603,7 @@ F: doc/guides/bbdevs/features/null.ini
NXP LA12xx
M: Gagandeep Singh <g.singh@nxp.com>
M: Hemant Agrawal <hemant.agrawal@nxp.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-baseband
F: drivers/baseband/la12xx/
F: doc/guides/bbdevs/la12xx.rst
@@ -1416,6 +1615,7 @@ GPU Drivers
NVIDIA CUDA
M: Elena Agostini <eagostini@nvidia.com>
+S: Supported
F: drivers/gpu/cuda/
F: doc/guides/gpus/cuda.rst
@@ -1426,6 +1626,7 @@ Rawdev Drivers
Intel FPGA
M: Rosen Xu <rosen.xu@intel.com>
M: Tianfei zhang <tianfei.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net-intel
F: drivers/raw/ifpga/
F: doc/guides/rawdevs/ifpga.rst
@@ -1433,18 +1634,21 @@ F: doc/guides/rawdevs/ifpga.rst
Marvell CNXK BPHY
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_bphy.rst
F: drivers/raw/cnxk_bphy/
Marvell CNXK GPIO
M: Jakub Palider <jpalider@marvell.com>
M: Tomasz Duszynski <tduszynski@marvell.com>
+S: Supported
F: doc/guides/rawdevs/cnxk_gpio.rst
F: drivers/raw/cnxk_gpio/
NTB
M: Jingjing Wu <jingjing.wu@intel.com>
M: Junfeng Guo <junfeng.guo@intel.com>
+S: Supported
F: drivers/raw/ntb/
F: doc/guides/rawdevs/ntb.rst
F: examples/ntb/
@@ -1452,6 +1656,7 @@ F: doc/guides/sample_app_ug/ntb.rst
NXP DPAA2 CMDIF
M: Gagandeep Singh <g.singh@nxp.com>
+S: Supported
F: drivers/raw/dpaa2_cmdif/
F: doc/guides/rawdevs/dpaa2_cmdif.rst
@@ -1461,12 +1666,14 @@ Packet processing
Network headers
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/net/
F: app/test/test_cksum.c
F: app/test/test_cksum_perf.c
Packet CRC
M: Jasvinder Singh <jasvinder.singh@intel.com>
+S: Supported
F: lib/net/net_crc.h
F: lib/net/rte_net_crc*
F: lib/net/net_crc_avx512.c
@@ -1475,6 +1682,7 @@ F: app/test/test_crc.c
IP fragmentation & reassembly
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/ip_frag/
F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
F: app/test/test_ipfrag.c
@@ -1486,16 +1694,19 @@ F: doc/guides/sample_app_ug/ip_reassembly.rst
Generic Receive Offload - EXPERIMENTAL
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gro/
F: doc/guides/prog_guide/generic_receive_offload_lib.rst
Generic Segmentation Offload
M: Jiayu Hu <jiayu.hu@intel.com>
+S: Supported
F: lib/gso/
F: doc/guides/prog_guide/generic_segmentation_offload_lib.rst
IPsec
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/ipsec/
F: app/test/test_ipsec*
@@ -1506,12 +1717,14 @@ F: app/test-sad/
PDCP - EXPERIMENTAL
M: Anoob Joseph <anoobj@marvell.com>
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: lib/pdcp/
F: doc/guides/prog_guide/pdcp_lib.rst
F: app/test/test_pdcp*
Flow Classify - EXPERIMENTAL - UNMAINTAINED
+S: Orphan
F: lib/flow_classify/
F: app/test/test_flow_classify*
F: doc/guides/prog_guide/flow_classify_lib.rst
@@ -1520,6 +1733,7 @@ F: doc/guides/sample_app_ug/flow_classify.rst
Distributor
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/distributor/
F: doc/guides/prog_guide/packet_distrib_lib.rst
F: app/test/test_distributor*
@@ -1528,6 +1742,7 @@ F: doc/guides/sample_app_ug/dist_app.rst
Reorder
M: Volodymyr Fialko <vfialko@marvell.com>
+S: Supported
F: lib/reorder/
F: doc/guides/prog_guide/reorder_lib.rst
F: app/test/test_reorder*
@@ -1536,6 +1751,7 @@ F: doc/guides/sample_app_ug/packet_ordering.rst
Hierarchical scheduler
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/sched/
F: doc/guides/prog_guide/qos_framework.rst
F: app/test/test_pie.c
@@ -1547,6 +1763,7 @@ F: doc/guides/sample_app_ug/qos_scheduler.rst
Packet capture
M: Reshma Pattan <reshma.pattan@intel.com>
M: Stephen Hemminger <stephen@networkplumber.org>
+S: Maintained
F: lib/pdump/
F: doc/guides/prog_guide/pdump_lib.rst
F: app/test/test_pdump.*
@@ -1562,6 +1779,7 @@ F: doc/guides/tools/dumpcap.rst
Packet Framework
----------------
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Obsolete
F: lib/pipeline/
F: lib/port/
F: lib/table/
@@ -1579,6 +1797,7 @@ Algorithms
ACL
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/acl/
F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
F: app/test-acl/
@@ -1587,6 +1806,7 @@ F: app/test/test_acl.*
EFD
M: Byron Marohn <byron.marohn@intel.com>
M: Yipeng Wang <yipeng1.wang@intel.com>
+S: Supported
F: lib/efd/
F: doc/guides/prog_guide/efd_lib.rst
F: app/test/test_efd*
@@ -1598,6 +1818,7 @@ M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/hash/
F: doc/guides/prog_guide/hash_lib.rst
F: doc/guides/prog_guide/toeplitz_hash_lib.rst
@@ -1607,6 +1828,7 @@ F: app/test/test_func_reentrancy.c
LPM
M: Bruce Richardson <bruce.richardson@intel.com>
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/lpm/
F: doc/guides/prog_guide/lpm*
F: app/test/test_lpm*
@@ -1616,12 +1838,14 @@ F: app/test/test_xmmt_ops.h
Membership - EXPERIMENTAL
M: Yipeng Wang <yipeng1.wang@intel.com>
M: Sameh Gobriel <sameh.gobriel@intel.com>
+S: Supported
F: lib/member/
F: doc/guides/prog_guide/member_lib.rst
F: app/test/test_member*
RIB/FIB
M: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
+S: Supported
F: lib/rib/
F: app/test/test_rib*
F: lib/fib/
@@ -1630,6 +1854,7 @@ F: app/test-fib/
Traffic metering
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/meter/
F: doc/guides/sample_app_ug/qos_scheduler.rst
F: app/test/test_meter.c
@@ -1642,12 +1867,14 @@ Other libraries
Configuration file
M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
+S: Supported
F: lib/cfgfile/
F: app/test/test_cfgfile.c
F: app/test/test_cfgfiles/
Interactive command line
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/cmdline/
F: app/test-cmdline/
F: app/test/test_cmdline*
@@ -1656,11 +1883,13 @@ F: doc/guides/sample_app_ug/cmd_line.rst
Key/Value parsing
M: Olivier Matz <olivier.matz@6wind.com>
+S: Supported
F: lib/kvargs/
F: app/test/test_kvargs.c
RCU
M: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
+S: Supported
F: lib/rcu/
F: app/test/test_rcu*
F: doc/guides/prog_guide/rcu_lib.rst
@@ -1668,11 +1897,13 @@ F: doc/guides/prog_guide/rcu_lib.rst
PCI
M: Chenbo Xia <chenbo.xia@intel.com>
M: Gaetan Rivet <grive@u256.net>
+S: Supported
F: lib/pci/
Power management
M: Anatoly Burakov <anatoly.burakov@intel.com>
M: David Hunt <david.hunt@intel.com>
+S: Supported
F: lib/power/
F: doc/guides/prog_guide/power_man.rst
F: app/test/test_power*
@@ -1683,6 +1914,7 @@ F: doc/guides/sample_app_ug/vm_power_management.rst
Timers
M: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
+S: Supported
F: lib/timer/
F: doc/guides/prog_guide/timer_lib.rst
F: app/test/test_timer*
@@ -1690,25 +1922,30 @@ F: examples/timer/
F: doc/guides/sample_app_ug/timer.rst
Job statistics
+S: Orphan
F: lib/jobstats/
F: examples/l2fwd-jobstats/
F: doc/guides/sample_app_ug/l2_forward_job_stats.rst
Metrics
+S: Orphan
F: lib/metrics/
F: app/test/test_metrics.c
Bit-rate statistics
+S: Orphan
F: lib/bitratestats/
F: app/test/test_bitratestats.c
Latency statistics
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: lib/latencystats/
F: app/test/test_latencystats.c
Telemetry
M: Ciara Power <ciara.power@intel.com>
+S: Supported
F: lib/telemetry/
F: app/test/test_telemetry*
F: usertools/dpdk-telemetry*
@@ -1716,6 +1953,7 @@ F: doc/guides/howto/telemetry.rst
BPF
M: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
+S: Supported
F: lib/bpf/
F: examples/bpf/
F: app/test/test_bpf.c
@@ -1727,6 +1965,7 @@ M: Jerin Jacob <jerinj@marvell.com>
M: Kiran Kumar K <kirankumark@marvell.com>
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Zhirun Yan <zhirun.yan@intel.com>
+S: Supported
F: lib/graph/
F: doc/guides/prog_guide/graph_lib.rst
F: app/test/test_graph*
@@ -1736,6 +1975,7 @@ F: doc/guides/sample_app_ug/l3_forward_graph.rst
Nodes - EXPERIMENTAL
M: Nithin Dabilpuram <ndabilpuram@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
F: lib/node/
@@ -1743,6 +1983,7 @@ Test Applications
-----------------
Unit tests framework
+S: Maintained
F: app/test/commands.c
F: app/test/has_hugepage.py
F: app/test/packet_burst_generator.c
@@ -1758,45 +1999,53 @@ F: app/test/virtual_pmd.h
Sample packet helper functions for unit test
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/test/sample_packet_forward.c
F: app/test/sample_packet_forward.h
Networking drivers testing tool
M: Aman Singh <aman.deep.singh@intel.com>
M: Yuying Zhang <yuying.zhang@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-net
F: app/test-pmd/
F: doc/guides/testpmd_app_ug/
DMA device performance tool
M: Cheng Jiang <cheng1.jiang@intel.com>
+S: Supported
F: app/test-dma-perf/
F: doc/guides/tools/dmaperf.rst
Flow performance tool
M: Wisam Jaddo <wisamm@nvidia.com>
+S: Supported
F: app/test-flow-perf/
F: doc/guides/tools/flow-perf.rst
Security performance tool
M: Anoob Joseph <anoobj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-security-perf/
F: doc/guides/tools/securityperf.rst
Compression performance test application
T: git://dpdk.org/next/dpdk-next-crypto
+S: Orphan
F: app/test-compress-perf/
F: doc/guides/tools/comp_perf.rst
Crypto performance test application
M: Ciara Power <ciara.power@intel.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-crypto
F: app/test-crypto-perf/
F: doc/guides/tools/cryptoperf.rst
Eventdev test application
M: Jerin Jacob <jerinj@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: app/test-eventdev/
F: doc/guides/tools/testeventdev.rst
@@ -1805,12 +2054,14 @@ F: app/test/test_event_ring.c
Procinfo tool
M: Reshma Pattan <reshma.pattan@intel.com>
+S: Supported
F: app/proc-info/
F: doc/guides/tools/proc_info.rst
DTS
M: Lijuan Tu <lijuan.tu@intel.com>
M: Juraj Linkeš <juraj.linkes@pantheon.tech>
+S: Supported
F: dts/
F: devtools/dts-check-format.sh
F: doc/guides/tools/dts.rst
@@ -1820,77 +2071,92 @@ Other Example Applications
--------------------------
Ethtool example
+S: Orphan
F: examples/ethtool/
F: doc/guides/sample_app_ug/ethtool.rst
FIPS validation example
M: Brian Dooley <brian.dooley@intel.com>
M: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
+S: Supported
F: examples/fips_validation/
F: doc/guides/sample_app_ug/fips_validation.rst
Flow filtering example
M: Ori Kam <orika@nvidia.com>
+S: Supported
F: examples/flow_filtering/
F: doc/guides/sample_app_ug/flow_filtering.rst
Helloworld example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/helloworld/
F: doc/guides/sample_app_ug/hello_world.rst
IPsec security gateway example
M: Radu Nicolau <radu.nicolau@intel.com>
M: Akhil Goyal <gakhil@marvell.com>
+S: Supported
F: examples/ipsec-secgw/
F: doc/guides/sample_app_ug/ipsec_secgw.rst
IPv4 multicast example
+S: Orphan
F: examples/ipv4_multicast/
F: doc/guides/sample_app_ug/ipv4_multicast.rst
L2 forwarding example
M: Bruce Richardson <bruce.richardson@intel.com>
+S: Supported
F: examples/l2fwd/
F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
L2 forwarding with cache allocation example
M: Tomasz Kantecki <tomasz.kantecki@intel.com>
+S: Supported
F: doc/guides/sample_app_ug/l2_forward_cat.rst
F: examples/l2fwd-cat/
L2 forwarding with eventdev example
M: Sunil Kumar Kori <skori@marvell.com>
M: Pavan Nikhilesh <pbhagavatula@marvell.com>
+S: Supported
T: git://dpdk.org/next/dpdk-next-eventdev
F: examples/l2fwd-event/
F: doc/guides/sample_app_ug/l2_forward_event.rst
L3 forwarding example
+S: Maintained
F: examples/l3fwd/
F: doc/guides/sample_app_ug/l3_forward.rst
Link status interrupt example
+S: Maintained
F: examples/link_status_interrupt/
F: doc/guides/sample_app_ug/link_status_intr.rst
PTP client example
M: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
+S: Supported
F: examples/ptpclient/
Rx/Tx callbacks example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/rxtx_callbacks/
F: doc/guides/sample_app_ug/rxtx_callbacks.rst
Skeleton example
M: Bruce Richardson <bruce.richardson@intel.com>
M: John McNamara <john.mcnamara@intel.com>
+S: Supported
F: examples/skeleton/
F: doc/guides/sample_app_ug/skeleton.rst
VMDq examples
+S: Orphan
F: examples/vmdq/
F: doc/guides/sample_app_ug/vmdq_forwarding.rst
F: examples/vmdq_dcb/
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v2 ] tap: fix build of TAP BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
2023-07-19 16:07 ` [PATCH v2] " Stephen Hemminger
2023-07-20 17:21 ` [PATCH v3] " Stephen Hemminger
@ 2023-07-20 17:45 ` Stephen Hemminger
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
` (4 subsequent siblings)
7 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-20 17:45 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
The code was depending on old versions of headers from iproute2.
Include those headers here so that build works.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
This patch does not address several other issues with this
BPF code. It should be using BTF and the conversion into
array is a mess.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/bpf_api.h | 261 ++++++++++++++++++++++++++++++
drivers/net/tap/bpf_elf.h | 43 +++++
drivers/net/tap/tap_bpf_program.c | 14 +-
| 2 +-
4 files changed, 316 insertions(+), 4 deletions(-)
create mode 100644 drivers/net/tap/bpf_api.h
create mode 100644 drivers/net/tap/bpf_elf.h
diff --git a/drivers/net/tap/bpf_api.h b/drivers/net/tap/bpf_api.h
new file mode 100644
index 000000000000..d13247199c9a
--- /dev/null
+++ b/drivers/net/tap/bpf_api.h
@@ -0,0 +1,261 @@
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf_elf.h b/drivers/net/tap/bpf_elf.h
new file mode 100644
index 000000000000..406c30874ac3
--- /dev/null
+++ b/drivers/net/tap/bpf_elf.h
@@ -0,0 +1,43 @@
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#endif /* __BPF_ELF__ */
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/tap_bpf_program.c
index 20c310e5e7ba..daf30c4aba86 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/tap_bpf_program.c
@@ -1,5 +1,12 @@
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
* Copyright 2017 Mellanox Technologies, Ltd
+ *
+ * This file is not built as part of normal DPDK build.
+ * It is used to generate the eBPF code for TAP RSS.
+ *
+ * To build it use:
+ * clang -O2 -emit-llvm -c tap_bpf_program.c -o - | \
+ * llc -march=bpf -filetype=obj -o tap_bpf_program.o
*/
#include <stdint.h>
@@ -14,8 +21,9 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
+#include "bpf_api.h"
+#include "bpf_elf.h"
#include "tap_rss.h"
/** Create IPv4 address */
@@ -75,14 +83,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b68..dff46a012f94 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v3] tap: fix build of TAP BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
` (2 preceding siblings ...)
2023-07-20 17:45 ` [PATCH v2 ] tap: fix build of TAP BPF program Stephen Hemminger
@ 2023-07-20 23:25 ` Stephen Hemminger
2023-07-21 13:05 ` Ferruh Yigit
` (2 more replies)
2023-07-22 16:32 ` [PATCH v4] " Stephen Hemminger
` (3 subsequent siblings)
7 siblings, 3 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-20 23:25 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Move the BPF program related code into a subdirectory.
And add a Makefile for building it.
The code was depending on old versions of headers from iproute2.
Include those headers here so that build works.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
Add a python program to extract the resulting BPF into
a format that can be consumed by the TAP driver.
Update the documentation.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 ++
drivers/net/tap/bpf/bpf_api.h | 261 ++++++++++++++++++++
drivers/net/tap/bpf/bpf_elf.h | 43 ++++
| 80 ++++++
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 9 +-
| 2 +-
8 files changed, 413 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (97%)
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 07df0d35a2ec..449e747994bd 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -256,15 +256,12 @@ C functions under different ELF sections.
2. Install ``LLVM`` library and ``clang`` compiler versions 3.7 and above
-3. Compile ``tap_bpf_program.c`` via ``LLVM`` into an object file::
+3. Use make to compile `tap_bpf_program.c`` via ``LLVM`` into an object file
+ and extract the resulting instructions into ``tap_bpf_insn.h``.
- clang -O2 -emit-llvm -c tap_bpf_program.c -o - | llc -march=bpf \
- -filetype=obj -o <tap_bpf_program.o>
+ cd bpf; make
-
-4. Use a tool that receives two parameters: an eBPF object file and a section
-name, and prints out the section as a C array of eBPF instructions.
-Embed the C array in your TAP PMD tree.
+4. Recompile the TAP PMD.
The C arrays are uploaded to the kernel using BPF system calls.
diff --git a/drivers/net/tap/bpf/.gitignore b/drivers/net/tap/bpf/.gitignore
new file mode 100644
index 000000000000..30a258f1af3b
--- /dev/null
+++ b/drivers/net/tap/bpf/.gitignore
@@ -0,0 +1 @@
+tap_bpf_program.o
diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
new file mode 100644
index 000000000000..e5ae4e1f5adc
--- /dev/null
+++ b/drivers/net/tap/bpf/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# This file is not built as part of normal DPDK build.
+# It is used to generate the eBPF code for TAP RSS.
+CLANG=clang
+CLANG_OPTS=-O2
+TARGET=../tap_bpf_insns.h
+
+all: $(TARGET)
+
+clean:
+ rm tap_bpf_program.o $(TARGET)
+
+tap_bpf_program.o: tap_bpf_program.c
+ $(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
+ llc -march=bpf -filetype=obj -o $@
+
+$(TARGET): bpf_extract.py tap_bpf_program.o
+ python3 bpf_extract.py tap_bpf_program.o $@
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
new file mode 100644
index 000000000000..d13247199c9a
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_api.h
@@ -0,0 +1,261 @@
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
new file mode 100644
index 000000000000..406c30874ac3
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_elf.h
@@ -0,0 +1,43 @@
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#endif /* __BPF_ELF__ */
--git a/drivers/net/tap/bpf/bpf_extract.py b/drivers/net/tap/bpf/bpf_extract.py
new file mode 100644
index 000000000000..d79fc61020b3
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_extract.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org>
+
+import argparse
+import sys
+import struct
+from tempfile import TemporaryFile
+from elftools.elf.elffile import ELFFile
+
+
+def load_sections(elffile):
+ result = []
+ DATA = [("cls_q", "cls_q_insns"), ("l3_l4", "l3_l4_hash_insns")]
+ for name, tag in DATA:
+ section = elffile.get_section_by_name(name)
+ if section:
+ insns = struct.iter_unpack('<BBhL', section.data())
+ result.append([tag, insns])
+ return result
+
+
+def dump_sections(sections, out):
+ for name, insns in sections:
+ print(f'\nstatic const struct bpf_insn {name} = {{', file=out)
+ for bpf in insns:
+ code = bpf[0]
+ src = bpf[1] >> 4
+ dst = bpf[1] & 0xf
+ off = bpf[2]
+ imm = bpf[3]
+ print('\t{{{:#02x}, {:4d}, {:4d}, {:8d}, {:#010x}}},'.format(
+ code, dst, src, off, imm),
+ file=out)
+ print('};', file=out)
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("input",
+ nargs='+',
+ help="input object file path or '-' for stdin")
+ parser.add_argument("output", help="output C file path or '-' for stdout")
+ return parser.parse_args()
+
+
+def open_input(path):
+ if path == "-":
+ temp = TemporaryFile()
+ temp.write(sys.stdin.buffer.read())
+ return temp
+ return open(path, "rb")
+
+
+def open_output(path):
+ if path == "-":
+ return sys.stdout
+ return open(path, "w")
+
+
+def write_header(output):
+ print("/* SPDX-License-Identifier: BSD-3-Clause", file=output)
+ print(" * Compiled BPF instructions do not edit", file=output)
+ print(" */\n", file=output)
+ print("#include <tap_bpf.h>", file=output)
+
+
+def main():
+ args = parse_args()
+
+ output = open_output(args.output)
+ write_header(output)
+ for path in args.input:
+ elffile = ELFFile(open_input(path))
+ sections = load_sections(elffile)
+ dump_sections(sections, output)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
similarity index 97%
rename from drivers/net/tap/tap_bpf_program.c
rename to drivers/net/tap/bpf/tap_bpf_program.c
index 20c310e5e7ba..ff6f1606fb38 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -14,9 +14,10 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
-#include "tap_rss.h"
+#include "bpf_api.h"
+#include "bpf_elf.h"
+#include "../tap_rss.h"
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
@@ -75,14 +76,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b68..dff46a012f94 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v3] tap: fix build of TAP BPF program
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
@ 2023-07-21 13:05 ` Ferruh Yigit
2023-07-21 15:43 ` Stephen Hemminger
2023-07-23 2:21 ` Stephen Hemminger
2023-07-26 16:31 ` Stephen Hemminger
2 siblings, 1 reply; 34+ messages in thread
From: Ferruh Yigit @ 2023-07-21 13:05 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev, Long Li, Ophir Munk, Thomas Monjalon
On 7/21/2023 12:25 AM, Stephen Hemminger wrote:
> Move the BPF program related code into a subdirectory.
> And add a Makefile for building it.
>
> The code was depending on old versions of headers from iproute2.
> Include those headers here so that build works.
>
Thanks Stephen, build works now.
But I am not sure about importing dependent headers to DPDK, could build
work with latest external headers if application updated accordingly?
> The standalone build was also broken because by
> commit ef5baf3486e0 ("replace packed attributes")
> which introduced __rte_packed into this code.
>
> Add a python program to extract the resulting BPF into
> a format that can be consumed by the TAP driver.
>
> Update the documentation.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
<...>
> --- /dev/null
> +++ b/drivers/net/tap/bpf/bpf_api.h
> @@ -0,0 +1,261 @@
> +#ifndef __BPF_API__
> +#define __BPF_API__
> +
What should be License and Copyright of these files?
Same for all imported headers.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v3] tap: fix build of TAP BPF program
2023-07-21 13:05 ` Ferruh Yigit
@ 2023-07-21 15:43 ` Stephen Hemminger
0 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-21 15:43 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev, Long Li, Ophir Munk, Thomas Monjalon
On Fri, 21 Jul 2023 14:05:52 +0100
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> On 7/21/2023 12:25 AM, Stephen Hemminger wrote:
> > Move the BPF program related code into a subdirectory.
> > And add a Makefile for building it.
> >
> > The code was depending on old versions of headers from iproute2.
> > Include those headers here so that build works.
> >
>
> Thanks Stephen, build works now.
> But I am not sure about importing dependent headers to DPDK, could build
> work with latest external headers if application updated accordingly?
These are not exported headers, it looks like Ophir was extracting them
from iproute2. The headers are GPL-2.0 licensed; though just asked Daniel
to allow BSD-3-clause version.
Not much is being used so we could just open code the parts that are
used.
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v4] tap: fix build of TAP BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
` (3 preceding siblings ...)
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
@ 2023-07-22 16:32 ` Stephen Hemminger
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
` (2 subsequent siblings)
7 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-22 16:32 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Move the BPF program related code into a subdirectory.
And add a Makefile for building it.
The code depends on include files from iproute2.
But these are not public headers which iproute2 exports
as a package API. Therefore make a local copy here.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
Add a python program to extract the resulting BPF into
a format that can be consumed by the TAP driver.
Update the documentation.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v4 - update bpf_api.h and bpf_elf.h with SPDK headers from upstream
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 ++
drivers/net/tap/bpf/bpf_api.h | 275 ++++++++++++++++++++
drivers/net/tap/bpf/bpf_elf.h | 53 ++++
| 80 ++++++
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 9 +-
| 2 +-
8 files changed, 437 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (97%)
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 07df0d35a2ec..449e747994bd 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -256,15 +256,12 @@ C functions under different ELF sections.
2. Install ``LLVM`` library and ``clang`` compiler versions 3.7 and above
-3. Compile ``tap_bpf_program.c`` via ``LLVM`` into an object file::
+3. Use make to compile `tap_bpf_program.c`` via ``LLVM`` into an object file
+ and extract the resulting instructions into ``tap_bpf_insn.h``.
- clang -O2 -emit-llvm -c tap_bpf_program.c -o - | llc -march=bpf \
- -filetype=obj -o <tap_bpf_program.o>
+ cd bpf; make
-
-4. Use a tool that receives two parameters: an eBPF object file and a section
-name, and prints out the section as a C array of eBPF instructions.
-Embed the C array in your TAP PMD tree.
+4. Recompile the TAP PMD.
The C arrays are uploaded to the kernel using BPF system calls.
diff --git a/drivers/net/tap/bpf/.gitignore b/drivers/net/tap/bpf/.gitignore
new file mode 100644
index 000000000000..30a258f1af3b
--- /dev/null
+++ b/drivers/net/tap/bpf/.gitignore
@@ -0,0 +1 @@
+tap_bpf_program.o
diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
new file mode 100644
index 000000000000..e5ae4e1f5adc
--- /dev/null
+++ b/drivers/net/tap/bpf/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# This file is not built as part of normal DPDK build.
+# It is used to generate the eBPF code for TAP RSS.
+CLANG=clang
+CLANG_OPTS=-O2
+TARGET=../tap_bpf_insns.h
+
+all: $(TARGET)
+
+clean:
+ rm tap_bpf_program.o $(TARGET)
+
+tap_bpf_program.o: tap_bpf_program.c
+ $(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
+ llc -march=bpf -filetype=obj -o $@
+
+$(TARGET): bpf_extract.py tap_bpf_program.o
+ python3 bpf_extract.py tap_bpf_program.o $@
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
new file mode 100644
index 000000000000..5887d3a851cf
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_api.h
@@ -0,0 +1,275 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** libbpf pin type. */
+enum libbpf_pin_type {
+ LIBBPF_PIN_NONE,
+ /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */
+ LIBBPF_PIN_BY_NAME,
+};
+
+/** Type helper macros. */
+
+#define __uint(name, val) int (*name)[val]
+#define __type(name, val) typeof(val) *name
+#define __array(name, val) typeof(val) *name[]
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
new file mode 100644
index 000000000000..ea8a11c95c0f
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_elf.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val) \
+ struct ____btf_map_##name { \
+ type_key key; \
+ type_val value; \
+ }; \
+ struct ____btf_map_##name \
+ __attribute__ ((section(".maps." #name), used)) \
+ ____btf_map_##name = { }
+
+#endif /* __BPF_ELF__ */
--git a/drivers/net/tap/bpf/bpf_extract.py b/drivers/net/tap/bpf/bpf_extract.py
new file mode 100644
index 000000000000..d79fc61020b3
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_extract.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org>
+
+import argparse
+import sys
+import struct
+from tempfile import TemporaryFile
+from elftools.elf.elffile import ELFFile
+
+
+def load_sections(elffile):
+ result = []
+ DATA = [("cls_q", "cls_q_insns"), ("l3_l4", "l3_l4_hash_insns")]
+ for name, tag in DATA:
+ section = elffile.get_section_by_name(name)
+ if section:
+ insns = struct.iter_unpack('<BBhL', section.data())
+ result.append([tag, insns])
+ return result
+
+
+def dump_sections(sections, out):
+ for name, insns in sections:
+ print(f'\nstatic const struct bpf_insn {name} = {{', file=out)
+ for bpf in insns:
+ code = bpf[0]
+ src = bpf[1] >> 4
+ dst = bpf[1] & 0xf
+ off = bpf[2]
+ imm = bpf[3]
+ print('\t{{{:#02x}, {:4d}, {:4d}, {:8d}, {:#010x}}},'.format(
+ code, dst, src, off, imm),
+ file=out)
+ print('};', file=out)
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("input",
+ nargs='+',
+ help="input object file path or '-' for stdin")
+ parser.add_argument("output", help="output C file path or '-' for stdout")
+ return parser.parse_args()
+
+
+def open_input(path):
+ if path == "-":
+ temp = TemporaryFile()
+ temp.write(sys.stdin.buffer.read())
+ return temp
+ return open(path, "rb")
+
+
+def open_output(path):
+ if path == "-":
+ return sys.stdout
+ return open(path, "w")
+
+
+def write_header(output):
+ print("/* SPDX-License-Identifier: BSD-3-Clause", file=output)
+ print(" * Compiled BPF instructions do not edit", file=output)
+ print(" */\n", file=output)
+ print("#include <tap_bpf.h>", file=output)
+
+
+def main():
+ args = parse_args()
+
+ output = open_output(args.output)
+ write_header(output)
+ for path in args.input:
+ elffile = ELFFile(open_input(path))
+ sections = load_sections(elffile)
+ dump_sections(sections, output)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
similarity index 97%
rename from drivers/net/tap/tap_bpf_program.c
rename to drivers/net/tap/bpf/tap_bpf_program.c
index 20c310e5e7ba..ff6f1606fb38 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -14,9 +14,10 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
-#include "tap_rss.h"
+#include "bpf_api.h"
+#include "bpf_elf.h"
+#include "../tap_rss.h"
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
@@ -75,14 +76,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b68..dff46a012f94 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.39.2
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v3] tap: fix build of TAP BPF program
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
2023-07-21 13:05 ` Ferruh Yigit
@ 2023-07-23 2:21 ` Stephen Hemminger
2023-07-26 16:31 ` Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-23 2:21 UTC (permalink / raw)
To: dev
On Thu, 20 Jul 2023 16:25:49 -0700
Stephen Hemminger <stephen@networkplumber.org> wrote:
> Move the BPF program related code into a subdirectory.
> And add a Makefile for building it.
>
> The code was depending on old versions of headers from iproute2.
> Include those headers here so that build works.
>
> The standalone build was also broken because by
> commit ef5baf3486e0 ("replace packed attributes")
> which introduced __rte_packed into this code.
>
> Add a python program to extract the resulting BPF into
> a format that can be consumed by the TAP driver.
>
> Update the documentation.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Note: there are a couple of bogus checkpatch warnings from this.
The tap_bpf_program is not a regular DPDK library so it doesn't use
the DPDK macros. And the bpf_api.h and bpf_elf.h are from iproute2
upstream and won't conform to DPDK checkpatch requirements.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v3] tap: fix build of TAP BPF program
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
2023-07-21 13:05 ` Ferruh Yigit
2023-07-23 2:21 ` Stephen Hemminger
@ 2023-07-26 16:31 ` Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-07-26 16:31 UTC (permalink / raw)
To: dev
On Thu, 20 Jul 2023 16:25:49 -0700
Stephen Hemminger <stephen@networkplumber.org> wrote:
> Move the BPF program related code into a subdirectory.
> And add a Makefile for building it.
>
> The code was depending on old versions of headers from iproute2.
> Include those headers here so that build works.
>
> The standalone build was also broken because by
> commit ef5baf3486e0 ("replace packed attributes")
> which introduced __rte_packed into this code.
>
> Add a python program to extract the resulting BPF into
> a format that can be consumed by the TAP driver.
>
> Update the documentation.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Some backstory notes:
0. No longer work for Microsoft, so don't have Azure/Failsafe/TAP setup.
Therefore compile tested only.
1. Went down this rabbit hole while trying to clear some of the DPDK
patch backlog, and ran into this one fix for RSS on fragmented packets
https://patchwork.dpdk.org/project/dpdk/patch/20220420112400.2271-1-madhuker.mythri@oracle.com/
2. This version of patch only makes the BPF program build.
It does not change the BPF program used currently by TAP device.
3. Doing build will change the bpf program since clang is probably
optimizing more now.
Bottom line:
Merging the patch won't fix the RSS bug, it won't change the current TAP
device behavior (same BPF). But it will allow for easier later fix in next release.
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 0/3] net/tap: update and fix the BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
` (4 preceding siblings ...)
2023-07-22 16:32 ` [PATCH v4] " Stephen Hemminger
@ 2023-10-31 22:08 ` Stephen Hemminger
2023-10-31 22:08 ` [PATCH 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
` (2 more replies)
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
7 siblings, 3 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:08 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Update the documentation and tools to build the BPF program used by
tap device. And apply fix to the RSS algorithm to correctly
handle non-IP protocols.
Madhuker Mythri (1):
net/tap: Fixed RSS algorithm to support fragmented packets
Stephen Hemminger (2):
net/tap: support infrastructure to build the BPF filter
net/tap; rebuild and update the BPF flow program
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 +
drivers/net/tap/bpf/bpf_api.h | 275 ++
drivers/net/tap/bpf/bpf_elf.h | 53 +
drivers/net/tap/bpf/bpf_extract.py | 80 +
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 56 +-
drivers/net/tap/tap_bpf_insns.h | 2992 ++++++++++---------
drivers/net/tap/tap_rss.h | 2 +-
9 files changed, 1995 insertions(+), 1493 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (79%)
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 1/3] net/tap: support infrastructure to build the BPF filter
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
@ 2023-10-31 22:08 ` Stephen Hemminger
2023-10-31 22:08 ` [PATCH 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
2023-10-31 22:08 ` [PATCH 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:08 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Move the BPF program related code into a subdirectory.
And add a Makefile for building it.
The code depends on include files from iproute2.
But these are not public headers which iproute2 exports
as a package API. Therefore make a local copy here.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
Add a python program to extract the resulting BPF into
a format that can be consumed by the TAP driver.
Update the documentation.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 ++
drivers/net/tap/bpf/bpf_api.h | 275 ++++++++++++++++++++
drivers/net/tap/bpf/bpf_elf.h | 53 ++++
| 80 ++++++
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 9 +-
| 2 +-
8 files changed, 437 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (97%)
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 07df0d35a2..449e747994 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -256,15 +256,12 @@ C functions under different ELF sections.
2. Install ``LLVM`` library and ``clang`` compiler versions 3.7 and above
-3. Compile ``tap_bpf_program.c`` via ``LLVM`` into an object file::
+3. Use make to compile `tap_bpf_program.c`` via ``LLVM`` into an object file
+ and extract the resulting instructions into ``tap_bpf_insn.h``.
- clang -O2 -emit-llvm -c tap_bpf_program.c -o - | llc -march=bpf \
- -filetype=obj -o <tap_bpf_program.o>
+ cd bpf; make
-
-4. Use a tool that receives two parameters: an eBPF object file and a section
-name, and prints out the section as a C array of eBPF instructions.
-Embed the C array in your TAP PMD tree.
+4. Recompile the TAP PMD.
The C arrays are uploaded to the kernel using BPF system calls.
diff --git a/drivers/net/tap/bpf/.gitignore b/drivers/net/tap/bpf/.gitignore
new file mode 100644
index 0000000000..30a258f1af
--- /dev/null
+++ b/drivers/net/tap/bpf/.gitignore
@@ -0,0 +1 @@
+tap_bpf_program.o
diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
new file mode 100644
index 0000000000..e5ae4e1f5a
--- /dev/null
+++ b/drivers/net/tap/bpf/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# This file is not built as part of normal DPDK build.
+# It is used to generate the eBPF code for TAP RSS.
+CLANG=clang
+CLANG_OPTS=-O2
+TARGET=../tap_bpf_insns.h
+
+all: $(TARGET)
+
+clean:
+ rm tap_bpf_program.o $(TARGET)
+
+tap_bpf_program.o: tap_bpf_program.c
+ $(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
+ llc -march=bpf -filetype=obj -o $@
+
+$(TARGET): bpf_extract.py tap_bpf_program.o
+ python3 bpf_extract.py tap_bpf_program.o $@
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
new file mode 100644
index 0000000000..5887d3a851
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_api.h
@@ -0,0 +1,275 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** libbpf pin type. */
+enum libbpf_pin_type {
+ LIBBPF_PIN_NONE,
+ /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */
+ LIBBPF_PIN_BY_NAME,
+};
+
+/** Type helper macros. */
+
+#define __uint(name, val) int (*name)[val]
+#define __type(name, val) typeof(val) *name
+#define __array(name, val) typeof(val) *name[]
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
new file mode 100644
index 0000000000..ea8a11c95c
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_elf.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val) \
+ struct ____btf_map_##name { \
+ type_key key; \
+ type_val value; \
+ }; \
+ struct ____btf_map_##name \
+ __attribute__ ((section(".maps." #name), used)) \
+ ____btf_map_##name = { }
+
+#endif /* __BPF_ELF__ */
--git a/drivers/net/tap/bpf/bpf_extract.py b/drivers/net/tap/bpf/bpf_extract.py
new file mode 100644
index 0000000000..d79fc61020
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_extract.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org>
+
+import argparse
+import sys
+import struct
+from tempfile import TemporaryFile
+from elftools.elf.elffile import ELFFile
+
+
+def load_sections(elffile):
+ result = []
+ DATA = [("cls_q", "cls_q_insns"), ("l3_l4", "l3_l4_hash_insns")]
+ for name, tag in DATA:
+ section = elffile.get_section_by_name(name)
+ if section:
+ insns = struct.iter_unpack('<BBhL', section.data())
+ result.append([tag, insns])
+ return result
+
+
+def dump_sections(sections, out):
+ for name, insns in sections:
+ print(f'\nstatic const struct bpf_insn {name} = {{', file=out)
+ for bpf in insns:
+ code = bpf[0]
+ src = bpf[1] >> 4
+ dst = bpf[1] & 0xf
+ off = bpf[2]
+ imm = bpf[3]
+ print('\t{{{:#02x}, {:4d}, {:4d}, {:8d}, {:#010x}}},'.format(
+ code, dst, src, off, imm),
+ file=out)
+ print('};', file=out)
+
+
+def parse_args():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("input",
+ nargs='+',
+ help="input object file path or '-' for stdin")
+ parser.add_argument("output", help="output C file path or '-' for stdout")
+ return parser.parse_args()
+
+
+def open_input(path):
+ if path == "-":
+ temp = TemporaryFile()
+ temp.write(sys.stdin.buffer.read())
+ return temp
+ return open(path, "rb")
+
+
+def open_output(path):
+ if path == "-":
+ return sys.stdout
+ return open(path, "w")
+
+
+def write_header(output):
+ print("/* SPDX-License-Identifier: BSD-3-Clause", file=output)
+ print(" * Compiled BPF instructions do not edit", file=output)
+ print(" */\n", file=output)
+ print("#include <tap_bpf.h>", file=output)
+
+
+def main():
+ args = parse_args()
+
+ output = open_output(args.output)
+ write_header(output)
+ for path in args.input:
+ elffile = ELFFile(open_input(path))
+ sections = load_sections(elffile)
+ dump_sections(sections, output)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
similarity index 97%
rename from drivers/net/tap/tap_bpf_program.c
rename to drivers/net/tap/bpf/tap_bpf_program.c
index 20c310e5e7..ff6f1606fb 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -14,9 +14,10 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
-#include "tap_rss.h"
+#include "bpf_api.h"
+#include "bpf_elf.h"
+#include "../tap_rss.h"
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
@@ -75,14 +76,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b..dff46a012f 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 2/3] net/tap: Fixed RSS algorithm to support fragmented packets
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
2023-10-31 22:08 ` [PATCH 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
@ 2023-10-31 22:08 ` Stephen Hemminger
2023-10-31 22:08 ` [PATCH 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:08 UTC (permalink / raw)
To: dev; +Cc: Madhuker Mythri, Stephen Hemminger
From: Madhuker Mythri <madhuker.mythri@oracle.com>
As per analysis on Tap PMD, the existing RSS algorithm considering
4-tuple(Src-IP, Dst-IP, Src-port and Dst-port) and identification of
fragment packets is not done, thus we are seeing all the fragmented
chunks of single packet differs in RSS hash value and distributed across
multiple queues.
The RSS algorithm assumes that, all the incoming IP packets are based on
L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and
Dst-port) for each incoming packet, but for the fragmented chunks these
L4-header will not be present(except for first packet) and should not
consider in RSS hash for L4 header fields in-case of fragmented chunks.
Which is a bug in the RSS algorithm implemented in the BPF functionality
under TAP PMD.
So, modified the RSS eBPF C-program and generated the structure of
C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code
instructions format.
Bugzilla Id: 870
Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/bpf/tap_bpf_program.c | 47 ++++++++++++++++++++++-----
1 file changed, 39 insertions(+), 8 deletions(-)
diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
index ff6f1606fb..3d431dfa43 100644
--- a/drivers/net/tap/bpf/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -19,6 +19,8 @@
#include "bpf_elf.h"
#include "../tap_rss.h"
+#include "bpf_api.h"
+
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
(((b) & 0xff) << 16) | \
@@ -132,6 +134,8 @@ rss_l3_l4(struct __sk_buff *skb)
__u8 *key = 0;
__u32 len;
__u32 queue = 0;
+ bool mf = 0;
+ __u16 frag_off = 0;
rsskey = map_lookup_elem(&map_keys, &key_idx);
if (!rsskey) {
@@ -156,6 +160,8 @@ rss_l3_l4(struct __sk_buff *skb)
return TC_ACT_OK;
__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
+ __u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
+ __u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
__u8 *src_dst_port = data + off + sizeof(struct iphdr);
struct ipv4_l3_l4_tuple v4_tuple = {
.src_addr = IPv4(*(src_dst_addr + 0),
@@ -166,11 +172,25 @@ rss_l3_l4(struct __sk_buff *skb)
*(src_dst_addr + 5),
*(src_dst_addr + 6),
*(src_dst_addr + 7)),
- .sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1)),
- .dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3)),
+ .sport = 0,
+ .dport = 0,
};
+ /** Fetch the L4-payer port numbers only in-case of TCP/UDP
+ ** and also if the packet is not fragmented. Since fragmented
+ ** chunks do not have L4 TCP/UDP header.
+ **/
+ if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
+ frag_off = PORT(*(frag_off_addr + 0),
+ *(frag_off_addr + 1));
+ mf = frag_off & 0x2000;
+ frag_off = frag_off & 0x1fff;
+ if (mf == 0 && frag_off == 0) {
+ v4_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v4_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ }
+ }
__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
input_len--;
@@ -183,6 +203,9 @@ rss_l3_l4(struct __sk_buff *skb)
offsetof(struct ipv6hdr, saddr);
__u8 *src_dst_port = data + off +
sizeof(struct ipv6hdr);
+ __u8 *next_hdr = data + off +
+ offsetof(struct ipv6hdr, nexthdr);
+
struct ipv6_l3_l4_tuple v6_tuple;
for (j = 0; j < 4; j++)
*((uint32_t *)&v6_tuple.src_addr + j) =
@@ -192,10 +215,18 @@ rss_l3_l4(struct __sk_buff *skb)
*((uint32_t *)&v6_tuple.dst_addr + j) =
__builtin_bswap32(*((uint32_t *)
src_dst_addr + 4 + j));
- v6_tuple.sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1));
- v6_tuple.dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3));
+
+ /** Fetch the L4 header port-numbers only if next-header
+ * is TCP/UDP **/
+ if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
+ v6_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v6_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ } else {
+ v6_tuple.sport = 0;
+ v6_tuple.dport = 0;
+ }
__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH 3/3] net/tap; rebuild and update the BPF flow program
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
2023-10-31 22:08 ` [PATCH 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-10-31 22:08 ` [PATCH 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
@ 2023-10-31 22:08 ` Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:08 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Rebuild with commit
c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/tap_bpf_insns.h | 2992 ++++++++++++++++---------------
1 file changed, 1519 insertions(+), 1473 deletions(-)
diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 1a91bbad13..9efebea80a 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,64 +1,62 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017 Mellanox Technologies, Ltd
+ * Compiled BPF instructions do not edit
*/
#include <tap_bpf.h>
-/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
-static struct bpf_insn cls_q_insns[] = {
+static const struct bpf_insn cls_q_insns = {
{0x61, 2, 1, 52, 0x00000000},
{0x18, 3, 0, 0, 0xdeadbeef},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x63, 10, 3, -4, 0x00000000},
{0xb7, 0, 0, 0, 0x00000000},
{0x61, 3, 10, -4, 0x00000000},
- {0x07, 3, 0, 0, 0x7cafe800},
+ {0x7, 3, 0, 0, 0x7cafe800},
{0x67, 3, 0, 0, 0x00000020},
{0x77, 3, 0, 0, 0x00000020},
{0x5d, 2, 3, 4, 0x00000000},
{0xb7, 2, 0, 0, 0x00000000},
{0x63, 1, 2, 52, 0x00000000},
{0x18, 0, 0, 0, 0xffffffff},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x95, 0, 0, 0, 0x00000000},
};
-/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
-static struct bpf_insn l3_l4_hash_insns[] = {
+static const struct bpf_insn l3_l4_hash_insns = {
{0xbf, 7, 1, 0, 0x00000000},
- {0x61, 8, 7, 16, 0x00000000},
- {0x61, 6, 7, 76, 0x00000000},
+ {0x61, 6, 7, 16, 0x00000000},
+ {0x61, 8, 7, 76, 0x00000000},
{0x61, 9, 7, 80, 0x00000000},
{0x18, 1, 0, 0, 0xdeadbeef},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x63, 10, 1, -4, 0x00000000},
{0xbf, 2, 10, 0, 0x00000000},
- {0x07, 2, 0, 0, 0xfffffffc},
- {0x18, 1, 1, 0, 0x0000cafe},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x7, 2, 0, 0, 0xfffffffc},
+ {0x18, 1, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x85, 0, 0, 0, 0x00000001},
{0x55, 0, 0, 21, 0x00000000},
{0xb7, 1, 0, 0, 0x00000a64},
{0x6b, 10, 1, -16, 0x00000000},
{0x18, 1, 0, 0, 0x69666e6f},
- {0x00, 0, 0, 0, 0x65727567},
+ {0x0, 0, 0, 0, 0x65727567},
{0x7b, 10, 1, -24, 0x00000000},
{0x18, 1, 0, 0, 0x6e207369},
- {0x00, 0, 0, 0, 0x6320746f},
+ {0x0, 0, 0, 0, 0x6320746f},
{0x7b, 10, 1, -32, 0x00000000},
{0x18, 1, 0, 0, 0x20737372},
- {0x00, 0, 0, 0, 0x2079656b},
+ {0x0, 0, 0, 0, 0x2079656b},
{0x7b, 10, 1, -40, 0x00000000},
{0x18, 1, 0, 0, 0x68736168},
- {0x00, 0, 0, 0, 0x203a2928},
+ {0x0, 0, 0, 0, 0x203a2928},
{0x7b, 10, 1, -48, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
{0x73, 10, 7, -14, 0x00000000},
{0xbf, 1, 10, 0, 0x00000000},
- {0x07, 1, 0, 0, 0xffffffd0},
+ {0x7, 1, 0, 0, 0xffffffd0},
{0xb7, 2, 0, 0, 0x00000023},
{0x85, 0, 0, 0, 0x00000006},
- {0x05, 0, 0, 1632, 0x00000000},
+ {0x5, 0, 0, 1680, 0x00000000},
{0xb7, 1, 0, 0, 0x0000000e},
{0x61, 2, 7, 20, 0x00000000},
{0x15, 2, 0, 10, 0x00000000},
@@ -66,1630 +64,1678 @@ static struct bpf_insn l3_l4_hash_insns[] = {
{0x55, 2, 0, 8, 0x0000a888},
{0xbf, 2, 7, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x00000012},
- {0x2d, 1, 9, 1622, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x00000012},
+ {0x2d, 1, 9, 1670, 0x00000000},
{0xb7, 1, 0, 0, 0x00000012},
- {0x69, 8, 6, 16, 0x00000000},
+ {0x69, 6, 8, 16, 0x00000000},
{0xbf, 7, 2, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x0000ffff},
{0x7b, 10, 7, -56, 0x00000000},
- {0x57, 8, 0, 0, 0x0000ffff},
- {0x15, 8, 0, 409, 0x0000dd86},
+ {0x15, 6, 0, 443, 0x0000dd86},
{0xb7, 7, 0, 0, 0x00000003},
- {0x55, 8, 0, 1614, 0x00000008},
- {0x0f, 6, 1, 0, 0x00000000},
+ {0x55, 6, 0, 1662, 0x00000008},
+ {0xf, 8, 1, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x00000018},
- {0x2d, 1, 9, 1609, 0x00000000},
- {0x71, 3, 6, 12, 0x00000000},
- {0xbf, 1, 3, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
- {0x67, 3, 0, 0, 0x00000018},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x00000018},
+ {0x2d, 1, 9, 1657, 0x00000000},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x71, 3, 8, 12, 0x00000000},
+ {0x71, 2, 8, 9, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000011},
+ {0x55, 2, 0, 21, 0x00000006},
+ {0x71, 2, 8, 7, 0x00000000},
+ {0x71, 4, 8, 6, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x67, 5, 0, 0, 0x00000008},
+ {0x57, 5, 0, 0, 0x00001f00},
+ {0x4f, 5, 2, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x4f, 4, 5, 0, 0x00000000},
+ {0x55, 4, 0, 12, 0x00000000},
+ {0xbf, 2, 8, 0, 0x00000000},
+ {0x7, 2, 0, 0, 0x00000014},
+ {0x71, 4, 2, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 2, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 2, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 2, 2, 2, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000008},
+ {0x4f, 1, 2, 0, 0x00000000},
{0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x40000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xb7, 2, 0, 0, 0x00000000},
+ {0x65, 4, 0, 1, 0xffffffff},
+ {0xb7, 7, 0, 0, 0x2cc681d1},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x598d03a2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb31a0745},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x66340e8a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcc681d15},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x98d03a2b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x31a07456},
+ {0x71, 4, 8, 13, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc681d15b},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a07456f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x340e8ade},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x681d15bd},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa07456f6},
+ {0x71, 3, 8, 14, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x40e8aded},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x81d15bdb},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x03a2b7b7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x07456f6f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0e8adedf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1d15bdbf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3a2b7b7e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7456f6fd},
+ {0x71, 4, 8, 15, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd15bdbf4},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x15bdbf4f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2b7b7e9e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x56f6fd3d},
+ {0x71, 3, 8, 16, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xadedfa7b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb7b7e9ef},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6f6fd3df},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdedfa7bf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbdbf4f7f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7b7e9eff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6fd3dff},
+ {0x71, 4, 8, 17, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xedfa7bfe},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0x71, 3, 8, 18, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x67, 6, 0, 0, 0x00000038},
+ {0xc7, 6, 0, 0, 0x00000038},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf4f7fca2},
+ {0x6d, 2, 6, 1, 0x00000000},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000040},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe9eff945},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000020},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd3dff28a},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000010},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa7bfe514},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000008},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x4f7fca28},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9eff9450},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3dff28a0},
+ {0x71, 5, 8, 19, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7bfe5141},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf7fca283},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xeff94506},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdff28a0c},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbfe51418},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7fca2831},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff945063},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff28a0c6},
+ {0x57, 5, 0, 0, 0x00000001},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfe51418c},
+ {0xbf, 4, 1, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000020},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9450633},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf28a0c67},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe51418ce},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xca28319d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9450633b},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28a0c676},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x51418ced},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa28319db},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x450633b6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8a0c676c},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1418ced8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28319db1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x50633b63},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa0c676c6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x418ced8d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8319db1a},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0633b634},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c676c68},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18ced8d1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x319db1a3},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x633b6347},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc676c68f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8ced8d1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x19db1a3e},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x33b6347d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x676c68fa},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xced8d1f4},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9db1a3e9},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3b6347d2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x76c68fa5},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1194, 0x00000000},
+ {0xa7, 3, 0, 0, 0xed8d1f4a},
+ {0x5, 0, 0, 1192, 0x00000000},
+ {0xf, 8, 1, 0, 0x00000000},
+ {0xb7, 7, 0, 0, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x0000002c},
+ {0x2d, 1, 9, 1216, 0x00000000},
+ {0x61, 2, 8, 8, 0x00000000},
+ {0xdc, 2, 0, 0, 0x00000040},
+ {0xc7, 2, 0, 0, 0x00000020},
+ {0x71, 3, 8, 6, 0x00000000},
+ {0x15, 3, 0, 2, 0x00000011},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x55, 3, 0, 12, 0x00000006},
+ {0xbf, 3, 8, 0, 0x00000000},
+ {0x7, 3, 0, 0, 0x00000028},
+ {0x71, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 3, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 3, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 3, 3, 2, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000008},
+ {0x4f, 1, 3, 0, 0x00000000},
+ {0xbf, 4, 2, 0, 0x00000000},
+ {0x77, 4, 0, 0, 0x0000001f},
+ {0x57, 4, 0, 0, 0x2cc681d1},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x598d03a2},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb31a0745},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x66340e8a},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcc681d15},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x98d03a2b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x31a07456},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc681d15b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1a07456f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x340e8ade},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x681d15bd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa07456f6},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x40e8aded},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x81d15bdb},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x03a2b7b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x07456f6f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x0e8adedf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1d15bdbf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3a2b7b7e},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7456f6fd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd15bdbf4},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x15bdbf4f},
+ {0x61, 3, 8, 12, 0x00000000},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2b7b7e9e},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56f6fd3d},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 2, 0, 0, 0x00000001},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xadedfa7b},
{0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7b7e9ef},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x20000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6f6fd3df},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x10000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdedfa7bf},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x08000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbdbf4f7f},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x04000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7b7e9eff},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x02000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
- {0x71, 3, 6, 13, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf6fd3dff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xedfa7bfe},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00800000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00400000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00200000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00100000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00080000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00040000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00020000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
- {0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
- {0x71, 3, 6, 14, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4f7fca2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe9eff945},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd3dff28a},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa7bfe514},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4f7fca28},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9eff9450},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
- {0x71, 3, 6, 15, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3dff28a0},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7bfe5141},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf7fca283},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xeff94506},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdff28a0c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbfe51418},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7fca2831},
+ {0x61, 4, 8, 16, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff945063},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff28a0c6},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x71, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000038},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0x67, 4, 0, 0, 0x00000018},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0x71, 4, 6, 17, 0x00000000},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0x71, 4, 6, 18, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0x57, 4, 0, 0, 0x00000100},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0x71, 4, 6, 19, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x00000001},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x71, 4, 6, 20, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 21, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0x67, 4, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfe51418c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf9450633},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf28a0c67},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe51418ce},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca28319d},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9450633b},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28a0c676},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x51418ced},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa28319db},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x450633b6},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8a0c676c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1418ced8},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28319db1},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x50633b63},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0x71, 3, 6, 22, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
- {0xbf, 4, 3, 0, 0x00000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa0c676c6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x418ced8d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8319db1a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0633b634},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0c676c68},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x18ced8d1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x319db1a3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x633b6347},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc676c68f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8ced8d1f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x19db1a3e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x33b6347d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x676c68fa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xced8d1f4},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9db1a3e9},
+ {0x61, 3, 8, 20, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3b6347d2},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x76c68fa5},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xed8d1f4a},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdb1a3e94},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb6347d28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6c68fa51},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd8d1f4a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb1a3e946},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6347d28d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc68fa51a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d1f4a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a3e946b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x347d28d7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x68fa51ae},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1f4a35c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa3e946b9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x47d28d73},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8fa51ae7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1f4a35cf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3e946b9e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7d28d73c},
+ {0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa51ae78},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4a35cf1},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe946b9e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd28d73c7},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0x71, 3, 6, 23, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa51ae78e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4a35cf1c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x946b9e38},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x28d73c71},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x51ae78e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35cf1c6},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b9e38d},
+ {0x61, 4, 8, 24, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d73c71b},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ae78e36},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1177, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x05, 0, 0, 1175, 0x00000000},
- {0x0f, 6, 1, 0, 0x00000000},
- {0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x0000002c},
- {0x2d, 1, 9, 1202, 0x00000000},
- {0x61, 4, 6, 8, 0x00000000},
- {0xbf, 1, 4, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35cf1c6c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6b9e38d9},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000040},
- {0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd73c71b2},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000020},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xae78e364},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000010},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5cf1c6c9},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000008},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb9e38d92},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000004},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x73c71b25},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000002},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe78e364b},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcf1c6c96},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9e38d92c},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3c71b259},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x78e364b2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf1c6c964},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe38d92c9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc71b2593},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8e364b27},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1c6c964e},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00008000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x38d92c9c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00004000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x71b25938},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00002000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe364b270},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00001000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc6c964e0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000800},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8d92c9c0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000400},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1b259380},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000200},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x364b2700},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6c964e01},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd92c9c03},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb2593807},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x64b2700f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc964e01e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x92c9c03d},
+ {0x61, 3, 8, 28, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2593807a},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4b2700f4},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x964e01e8},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2c9c03d1},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x593807a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb2700f46},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x64e01e8d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc9c03d1a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x93807a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2700f46b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4e01e8d6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9c03d1ad},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3807a35b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x700f46b6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe01e8d6c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc03d1ad9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x807a35b3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x00f46b66},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x01e8d6cc},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x03d1ad99},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x07a35b32},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00002000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x0f46b665},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00001000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1e8d6cca},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000800},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3d1ad994},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000400},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7a35b328},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000200},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf46b6651},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe8d6cca2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000080},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1ad9944},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35b3289},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b66512},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d6cca25},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ad9944a},
+ {0x61, 4, 8, 32, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35b32894},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6b665129},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd6cca253},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xad9944a7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5b32894f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb665129f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6cca253e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd9944a7d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb32894fb},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x665129f6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcca253ec},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9944a7d9},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x32894fb2},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x65129f65},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca253eca},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x944a7d95},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2894fb2a},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5129f655},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa253ecab},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x44a7d956},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x894fb2ac},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x129f6558},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x253ecab1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4a7d9563},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x94fb2ac7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x29f6558f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x53ecab1e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa7d9563d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4fb2ac7a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9f6558f5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3ecab1ea},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7d9563d5},
+ {0x61, 3, 8, 36, 0x00000000},
{0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfb2ac7ab},
+ {0xdc, 3, 0, 0, 0x00000040},
{0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6558f56},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xecab1eac},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd9563d59},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb2ac7ab2},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6558f564},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcab1eac8},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9563d590},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2ac7ab20},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x61, 4, 6, 12, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x558f5641},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x01000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab1eac83},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00800000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x563d5906},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00400000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac7ab20c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00200000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x58f56418},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00100000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb1eac831},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00080000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x63d59063},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00040000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc7ab20c7},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00020000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8f56418f},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00010000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1eac831e},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00008000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3d59063c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00004000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7ab20c78},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00002000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf56418f0},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00001000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xeac831e1},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000800},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd59063c2},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000400},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab20c784},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000200},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56418f09},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000100},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac831e12},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x59063c25},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb20c784b},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6418f097},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc831e12f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9063c25f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x20c784be},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x61, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x61, 4, 6, 20, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdb1a3e94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb6347d28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c68fa51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd8d1f4a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1a3e946},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6347d28d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc68fa51a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d1f4a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a3e946b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x347d28d7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x68fa51ae},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1f4a35c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa3e946b9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x47d28d73},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8fa51ae7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1f4a35cf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3e946b9e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d28d73c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa51ae78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4a35cf1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe946b9e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd28d73c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa51ae78e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a35cf1c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x946b9e38},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28d73c71},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51ae78e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35cf1c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b9e38d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d73c71b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ae78e36},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35cf1c6c},
- {0x61, 4, 6, 24, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b9e38d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd73c71b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xae78e364},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5cf1c6c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb9e38d92},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x73c71b25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe78e364b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcf1c6c96},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9e38d92c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c71b259},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x78e364b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf1c6c964},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe38d92c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc71b2593},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8e364b27},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1c6c964e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x38d92c9c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x71b25938},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe364b270},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc6c964e0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d92c9c0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1b259380},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x364b2700},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c964e01},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd92c9c03},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2593807},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64b2700f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc964e01e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x92c9c03d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2593807a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4b2700f4},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x964e01e8},
- {0x61, 4, 6, 28, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2c9c03d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x593807a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2700f46},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64e01e8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc9c03d1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x93807a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2700f46b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4e01e8d6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9c03d1ad},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3807a35b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x700f46b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe01e8d6c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc03d1ad9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x807a35b3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x00f46b66},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x01e8d6cc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03d1ad99},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07a35b32},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0f46b665},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e8d6cca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d1ad994},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7a35b328},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf46b6651},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8d6cca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1ad9944},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35b3289},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b66512},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d6cca25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ad9944a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35b32894},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b665129},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd6cca253},
- {0x61, 4, 6, 32, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xad9944a7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5b32894f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb665129f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6cca253e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9944a7d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb32894fb},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x665129f6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcca253ec},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9944a7d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x32894fb2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x65129f65},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca253eca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x944a7d95},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2894fb2a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5129f655},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa253ecab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x44a7d956},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x894fb2ac},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x129f6558},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x253ecab1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a7d9563},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x94fb2ac7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x29f6558f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x53ecab1e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7d9563d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4fb2ac7a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9f6558f5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3ecab1ea},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d9563d5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfb2ac7ab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6558f56},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xecab1eac},
- {0x61, 4, 6, 36, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9563d59},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2ac7ab2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6558f564},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcab1eac8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9563d590},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2ac7ab20},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x558f5641},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab1eac83},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x563d5906},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac7ab20c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x58f56418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1eac831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63d59063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc7ab20c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f56418f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1eac831e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d59063c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7ab20c78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf56418f0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeac831e1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd59063c2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab20c784},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56418f09},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac831e12},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x418f097c},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x831e12f9},
+ {0xbf, 5, 1, 0, 0x00000000},
{0x67, 5, 0, 0, 0x00000020},
{0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x59063c25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb20c784b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6418f097},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc831e12f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9063c25f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x20c784be},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418f097c},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x831e12f9},
- {0x71, 4, 6, 40, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 41, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x063c25f3},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c784be7},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18f097cf},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31e12f9f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63c25f3f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc784be7f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f097cff},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e12f9fe},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c25f3fc},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x784be7f8},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf097cff0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe12f9fe0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc25f3fc1},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x84be7f83},
+ {0xa7, 3, 0, 0, 0x063c25f3},
+ {0x6d, 2, 5, 1, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x097cff07},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x12f9fe0f},
- {0x71, 3, 6, 42, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x25f3fc1f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4be7f83f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x97cff07f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2f9fe0fe},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5f3fc1fd},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbe7f83fb},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7cff07f7},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9fe0fee},
- {0x71, 3, 6, 43, 0x00000000},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf3fc1fdc},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe7f83fb8},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcff07f70},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9fe0fee1},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3fc1fdc2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7f83fb85},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff07f70a},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe0fee15},
- {0x71, 2, 0, 201, 0x00000000},
- {0x67, 2, 0, 0, 0x00000008},
- {0x71, 3, 0, 200, 0x00000000},
- {0x4f, 2, 3, 0, 0x00000000},
- {0x71, 3, 0, 203, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0x71, 4, 0, 202, 0x00000000},
- {0x4f, 3, 4, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
- {0x4f, 3, 2, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x00000020},
{0xbf, 2, 1, 0, 0x00000000},
- {0x3f, 2, 3, 0, 0x00000000},
- {0x2f, 2, 3, 0, 0x00000000},
- {0x1f, 1, 2, 0, 0x00000000},
- {0x57, 1, 0, 0, 0x0000000f},
- {0x67, 1, 0, 0, 0x00000002},
- {0x0f, 0, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c784be7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18f097cf},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x31e12f9f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x63c25f3f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc784be7f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8f097cff},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1e12f9fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3c25f3fc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x784be7f8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf097cff0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe12f9fe0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc25f3fc1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x84be7f83},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x097cff07},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x12f9fe0f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x25f3fc1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x4be7f83f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x97cff07f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x2f9fe0fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x5f3fc1fd},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xbe7f83fb},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7cff07f7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9fe0fee},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf3fc1fdc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe7f83fb8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xcff07f70},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9fe0fee1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3fc1fdc2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7f83fb85},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xff07f70a},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfe0fee15},
+ {0x71, 1, 0, 201, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000008},
+ {0x71, 2, 0, 200, 0x00000000},
+ {0x4f, 1, 2, 0, 0x00000000},
+ {0x71, 2, 0, 202, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
+ {0x71, 4, 0, 203, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x4f, 4, 2, 0, 0x00000000},
+ {0x4f, 4, 1, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000020},
+ {0x77, 3, 0, 0, 0x00000020},
+ {0x9f, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x0000000f},
+ {0x67, 3, 0, 0, 0x00000002},
+ {0xf, 0, 3, 0, 0x00000000},
{0x71, 1, 0, 137, 0x00000000},
{0x67, 1, 0, 0, 0x00000008},
{0x71, 2, 0, 136, 0x00000000},
{0x4f, 1, 2, 0, 0x00000000},
{0x71, 2, 0, 138, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
{0x71, 3, 0, 139, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x67, 3, 0, 0, 0x00000018},
{0x4f, 3, 2, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
{0x4f, 3, 1, 0, 0x00000000},
- {0x07, 3, 0, 0, 0x7cafe800},
- {0x63, 5, 3, 52, 0x00000000},
+ {0x7, 3, 0, 0, 0x7cafe800},
+ {0x63, 6, 3, 52, 0x00000000},
{0xb7, 7, 0, 0, 0x00000001},
{0xbf, 0, 7, 0, 0x00000000},
{0x95, 0, 0, 0, 0x00000000},
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v5 0/3] net/tap: build and fix for BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
` (5 preceding siblings ...)
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
@ 2023-10-31 22:42 ` Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
` (2 more replies)
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
7 siblings, 3 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:42 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Update the documentation and tools to build the BPF program used by
tap device. And apply fix to the RSS algorithm to correctly
handle non-IP protocols.
v5 - merge patches into series and fix rebuild
Madhuker Mythri (1):
net/tap: Fixed RSS algorithm to support fragmented packets
Stephen Hemminger (2):
net/tap: support infrastructure to build the BPF filter
net/tap; rebuild and update the BPF flow program
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 +
drivers/net/tap/bpf/bpf_api.h | 275 ++
drivers/net/tap/bpf/bpf_elf.h | 53 +
drivers/net/tap/bpf/bpf_extract.py | 86 +
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 57 +-
drivers/net/tap/tap_bpf_insns.h | 2988 ++++++++++---------
drivers/net/tap/tap_rss.h | 2 +-
9 files changed, 2000 insertions(+), 1491 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (79%)
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v5 1/3] net/tap: support infrastructure to build the BPF filter
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
@ 2023-10-31 22:42 ` Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:42 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Move the BPF program related code into a subdirectory.
And add a Makefile for building it.
The code depends on include files from iproute2.
But these are not public headers which iproute2 exports
as a package API. Therefore make a local copy here.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
Add a python program to extract the resulting BPF into
a format that can be consumed by the TAP driver.
Update the documentation.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 ++
drivers/net/tap/bpf/bpf_api.h | 275 ++++++++++++++++++++
drivers/net/tap/bpf/bpf_elf.h | 53 ++++
| 86 ++++++
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 10 +-
| 2 +-
8 files changed, 444 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (96%)
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 07df0d35a2..449e747994 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -256,15 +256,12 @@ C functions under different ELF sections.
2. Install ``LLVM`` library and ``clang`` compiler versions 3.7 and above
-3. Compile ``tap_bpf_program.c`` via ``LLVM`` into an object file::
+3. Use make to compile `tap_bpf_program.c`` via ``LLVM`` into an object file
+ and extract the resulting instructions into ``tap_bpf_insn.h``.
- clang -O2 -emit-llvm -c tap_bpf_program.c -o - | llc -march=bpf \
- -filetype=obj -o <tap_bpf_program.o>
+ cd bpf; make
-
-4. Use a tool that receives two parameters: an eBPF object file and a section
-name, and prints out the section as a C array of eBPF instructions.
-Embed the C array in your TAP PMD tree.
+4. Recompile the TAP PMD.
The C arrays are uploaded to the kernel using BPF system calls.
diff --git a/drivers/net/tap/bpf/.gitignore b/drivers/net/tap/bpf/.gitignore
new file mode 100644
index 0000000000..30a258f1af
--- /dev/null
+++ b/drivers/net/tap/bpf/.gitignore
@@ -0,0 +1 @@
+tap_bpf_program.o
diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
new file mode 100644
index 0000000000..e5ae4e1f5a
--- /dev/null
+++ b/drivers/net/tap/bpf/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# This file is not built as part of normal DPDK build.
+# It is used to generate the eBPF code for TAP RSS.
+CLANG=clang
+CLANG_OPTS=-O2
+TARGET=../tap_bpf_insns.h
+
+all: $(TARGET)
+
+clean:
+ rm tap_bpf_program.o $(TARGET)
+
+tap_bpf_program.o: tap_bpf_program.c
+ $(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
+ llc -march=bpf -filetype=obj -o $@
+
+$(TARGET): bpf_extract.py tap_bpf_program.o
+ python3 bpf_extract.py tap_bpf_program.o $@
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
new file mode 100644
index 0000000000..5887d3a851
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_api.h
@@ -0,0 +1,275 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** libbpf pin type. */
+enum libbpf_pin_type {
+ LIBBPF_PIN_NONE,
+ /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */
+ LIBBPF_PIN_BY_NAME,
+};
+
+/** Type helper macros. */
+
+#define __uint(name, val) int (*name)[val]
+#define __type(name, val) typeof(val) *name
+#define __array(name, val) typeof(val) *name[]
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
new file mode 100644
index 0000000000..ea8a11c95c
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_elf.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val) \
+ struct ____btf_map_##name { \
+ type_key key; \
+ type_val value; \
+ }; \
+ struct ____btf_map_##name \
+ __attribute__ ((section(".maps." #name), used)) \
+ ____btf_map_##name = { }
+
+#endif /* __BPF_ELF__ */
--git a/drivers/net/tap/bpf/bpf_extract.py b/drivers/net/tap/bpf/bpf_extract.py
new file mode 100644
index 0000000000..5e1aee38c8
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_extract.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org>
+
+import argparse
+import sys
+import struct
+from tempfile import TemporaryFile
+from elftools.elf.elffile import ELFFile
+
+
+def load_sections(elffile):
+ """Get sections of interest from ELF"""
+ result = []
+ DATA = [("cls_q", "cls_q_insns"), ("l3_l4", "l3_l4_hash_insns")]
+ for name, tag in DATA:
+ section = elffile.get_section_by_name(name)
+ if section:
+ insns = struct.iter_unpack('<BBhL', section.data())
+ result.append([tag, insns])
+ return result
+
+
+def dump_section(name, insns, out):
+ """Dump the array of BPF instructructions"""
+ print(f'\nstatic struct bpf_insn {name}[] = {{', file=out)
+ for bpf in insns:
+ code = bpf[0]
+ src = bpf[1] >> 4
+ dst = bpf[1] & 0xf
+ off = bpf[2]
+ imm = bpf[3]
+ print(f'\t{{{code:#02x}, {dst:4d}, {src:4d}, {off:8d}, {imm:#010x}}},',
+ file=out)
+ print('};', file=out)
+
+
+def parse_args():
+ """Parse command line arguments"""
+ parser = argparse.ArgumentParser()
+ parser.add_argument("input",
+ nargs='+',
+ help="input object file path or '-' for stdin")
+ parser.add_argument("output", help="output C file path or '-' for stdout")
+ return parser.parse_args()
+
+
+def open_input(path):
+ """Open the input file or stdin"""
+ if path == "-":
+ temp = TemporaryFile()
+ temp.write(sys.stdin.buffer.read())
+ return temp
+ return open(path, "rb")
+
+
+def open_output(path):
+ """Open the output file or stdout"""
+ if path == "-":
+ return sys.stdout
+ return open(path, "w")
+
+
+def write_header(output):
+ """Write file intro header"""
+ print("/* SPDX-License-Identifier: BSD-3-Clause", file=output)
+ print(" * Compiled BPF instructions do not edit", file=output)
+ print(" */\n", file=output)
+ print("#include <tap_bpf.h>", file=output)
+
+
+def main():
+ '''program main function'''
+ args = parse_args()
+
+ output = open_output(args.output)
+ write_header(output)
+ for path in args.input:
+ elffile = ELFFile(open_input(path))
+ sections = load_sections(elffile)
+ for name, insns in sections:
+ dump_section(name, insns, output)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
similarity index 96%
rename from drivers/net/tap/tap_bpf_program.c
rename to drivers/net/tap/bpf/tap_bpf_program.c
index 20c310e5e7..d65021d8a1 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -14,9 +14,10 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
-#include "tap_rss.h"
+#include "bpf_api.h"
+#include "bpf_elf.h"
+#include "../tap_rss.h"
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
@@ -56,6 +57,7 @@ __section("cls_q") int
match_q(struct __sk_buff *skb)
{
__u32 queue = skb->cb[1];
+ /* queue is set by tap_flow_bpf_cls_q() before load */
volatile __u32 q = 0xdeadbeef;
__u32 match_queue = QUEUE_OFFSET + q;
@@ -75,14 +77,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b..dff46a012f 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v5 2/3] net/tap: Fixed RSS algorithm to support fragmented packets
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
@ 2023-10-31 22:42 ` Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:42 UTC (permalink / raw)
To: dev; +Cc: Madhuker Mythri, Stephen Hemminger
From: Madhuker Mythri <madhuker.mythri@oracle.com>
As per analysis on Tap PMD, the existing RSS algorithm considering
4-tuple(Src-IP, Dst-IP, Src-port and Dst-port) and identification of
fragment packets is not done, thus we are seeing all the fragmented
chunks of single packet differs in RSS hash value and distributed across
multiple queues.
The RSS algorithm assumes that, all the incoming IP packets are based on
L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and
Dst-port) for each incoming packet, but for the fragmented chunks these
L4-header will not be present(except for first packet) and should not
consider in RSS hash for L4 header fields in-case of fragmented chunks.
Which is a bug in the RSS algorithm implemented in the BPF functionality
under TAP PMD.
So, modified the RSS eBPF C-program and generated the structure of
C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code
instructions format.
Bugzilla Id: 870
Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/bpf/tap_bpf_program.c | 47 ++++++++++++++++++++++-----
1 file changed, 39 insertions(+), 8 deletions(-)
diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
index d65021d8a1..369c7b107f 100644
--- a/drivers/net/tap/bpf/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -19,6 +19,8 @@
#include "bpf_elf.h"
#include "../tap_rss.h"
+#include "bpf_api.h"
+
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
(((b) & 0xff) << 16) | \
@@ -133,6 +135,8 @@ rss_l3_l4(struct __sk_buff *skb)
__u8 *key = 0;
__u32 len;
__u32 queue = 0;
+ bool mf = 0;
+ __u16 frag_off = 0;
rsskey = map_lookup_elem(&map_keys, &key_idx);
if (!rsskey) {
@@ -157,6 +161,8 @@ rss_l3_l4(struct __sk_buff *skb)
return TC_ACT_OK;
__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
+ __u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
+ __u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
__u8 *src_dst_port = data + off + sizeof(struct iphdr);
struct ipv4_l3_l4_tuple v4_tuple = {
.src_addr = IPv4(*(src_dst_addr + 0),
@@ -167,11 +173,25 @@ rss_l3_l4(struct __sk_buff *skb)
*(src_dst_addr + 5),
*(src_dst_addr + 6),
*(src_dst_addr + 7)),
- .sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1)),
- .dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3)),
+ .sport = 0,
+ .dport = 0,
};
+ /** Fetch the L4-payer port numbers only in-case of TCP/UDP
+ ** and also if the packet is not fragmented. Since fragmented
+ ** chunks do not have L4 TCP/UDP header.
+ **/
+ if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
+ frag_off = PORT(*(frag_off_addr + 0),
+ *(frag_off_addr + 1));
+ mf = frag_off & 0x2000;
+ frag_off = frag_off & 0x1fff;
+ if (mf == 0 && frag_off == 0) {
+ v4_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v4_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ }
+ }
__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
input_len--;
@@ -184,6 +204,9 @@ rss_l3_l4(struct __sk_buff *skb)
offsetof(struct ipv6hdr, saddr);
__u8 *src_dst_port = data + off +
sizeof(struct ipv6hdr);
+ __u8 *next_hdr = data + off +
+ offsetof(struct ipv6hdr, nexthdr);
+
struct ipv6_l3_l4_tuple v6_tuple;
for (j = 0; j < 4; j++)
*((uint32_t *)&v6_tuple.src_addr + j) =
@@ -193,10 +216,18 @@ rss_l3_l4(struct __sk_buff *skb)
*((uint32_t *)&v6_tuple.dst_addr + j) =
__builtin_bswap32(*((uint32_t *)
src_dst_addr + 4 + j));
- v6_tuple.sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1));
- v6_tuple.dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3));
+
+ /** Fetch the L4 header port-numbers only if next-header
+ * is TCP/UDP **/
+ if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
+ v6_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v6_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ } else {
+ v6_tuple.sport = 0;
+ v6_tuple.dport = 0;
+ }
__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v5 3/3] net/tap; rebuild and update the BPF flow program
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
@ 2023-10-31 22:42 ` Stephen Hemminger
2 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-10-31 22:42 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Rebuild with commit
c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/tap_bpf_insns.h | 2988 ++++++++++++++++---------------
1 file changed, 1517 insertions(+), 1471 deletions(-)
diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 1a91bbad13..f75165b70d 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,64 +1,62 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017 Mellanox Technologies, Ltd
+ * Compiled BPF instructions do not edit
*/
#include <tap_bpf.h>
-/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
static struct bpf_insn cls_q_insns[] = {
{0x61, 2, 1, 52, 0x00000000},
{0x18, 3, 0, 0, 0xdeadbeef},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x63, 10, 3, -4, 0x00000000},
{0xb7, 0, 0, 0, 0x00000000},
{0x61, 3, 10, -4, 0x00000000},
- {0x07, 3, 0, 0, 0x7cafe800},
+ {0x7, 3, 0, 0, 0x7cafe800},
{0x67, 3, 0, 0, 0x00000020},
{0x77, 3, 0, 0, 0x00000020},
{0x5d, 2, 3, 4, 0x00000000},
{0xb7, 2, 0, 0, 0x00000000},
{0x63, 1, 2, 52, 0x00000000},
{0x18, 0, 0, 0, 0xffffffff},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x95, 0, 0, 0, 0x00000000},
};
-/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
static struct bpf_insn l3_l4_hash_insns[] = {
{0xbf, 7, 1, 0, 0x00000000},
- {0x61, 8, 7, 16, 0x00000000},
- {0x61, 6, 7, 76, 0x00000000},
+ {0x61, 6, 7, 16, 0x00000000},
+ {0x61, 8, 7, 76, 0x00000000},
{0x61, 9, 7, 80, 0x00000000},
{0x18, 1, 0, 0, 0xdeadbeef},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x63, 10, 1, -4, 0x00000000},
{0xbf, 2, 10, 0, 0x00000000},
- {0x07, 2, 0, 0, 0xfffffffc},
- {0x18, 1, 1, 0, 0x0000cafe},
- {0x00, 0, 0, 0, 0x00000000},
+ {0x7, 2, 0, 0, 0xfffffffc},
+ {0x18, 1, 0, 0, 0x00000000},
+ {0x0, 0, 0, 0, 0x00000000},
{0x85, 0, 0, 0, 0x00000001},
{0x55, 0, 0, 21, 0x00000000},
{0xb7, 1, 0, 0, 0x00000a64},
{0x6b, 10, 1, -16, 0x00000000},
{0x18, 1, 0, 0, 0x69666e6f},
- {0x00, 0, 0, 0, 0x65727567},
+ {0x0, 0, 0, 0, 0x65727567},
{0x7b, 10, 1, -24, 0x00000000},
{0x18, 1, 0, 0, 0x6e207369},
- {0x00, 0, 0, 0, 0x6320746f},
+ {0x0, 0, 0, 0, 0x6320746f},
{0x7b, 10, 1, -32, 0x00000000},
{0x18, 1, 0, 0, 0x20737372},
- {0x00, 0, 0, 0, 0x2079656b},
+ {0x0, 0, 0, 0, 0x2079656b},
{0x7b, 10, 1, -40, 0x00000000},
{0x18, 1, 0, 0, 0x68736168},
- {0x00, 0, 0, 0, 0x203a2928},
+ {0x0, 0, 0, 0, 0x203a2928},
{0x7b, 10, 1, -48, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
{0x73, 10, 7, -14, 0x00000000},
{0xbf, 1, 10, 0, 0x00000000},
- {0x07, 1, 0, 0, 0xffffffd0},
+ {0x7, 1, 0, 0, 0xffffffd0},
{0xb7, 2, 0, 0, 0x00000023},
{0x85, 0, 0, 0, 0x00000006},
- {0x05, 0, 0, 1632, 0x00000000},
+ {0x5, 0, 0, 1680, 0x00000000},
{0xb7, 1, 0, 0, 0x0000000e},
{0x61, 2, 7, 20, 0x00000000},
{0x15, 2, 0, 10, 0x00000000},
@@ -66,1630 +64,1678 @@ static struct bpf_insn l3_l4_hash_insns[] = {
{0x55, 2, 0, 8, 0x0000a888},
{0xbf, 2, 7, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x00000012},
- {0x2d, 1, 9, 1622, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x00000012},
+ {0x2d, 1, 9, 1670, 0x00000000},
{0xb7, 1, 0, 0, 0x00000012},
- {0x69, 8, 6, 16, 0x00000000},
+ {0x69, 6, 8, 16, 0x00000000},
{0xbf, 7, 2, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x0000ffff},
{0x7b, 10, 7, -56, 0x00000000},
- {0x57, 8, 0, 0, 0x0000ffff},
- {0x15, 8, 0, 409, 0x0000dd86},
+ {0x15, 6, 0, 443, 0x0000dd86},
{0xb7, 7, 0, 0, 0x00000003},
- {0x55, 8, 0, 1614, 0x00000008},
- {0x0f, 6, 1, 0, 0x00000000},
+ {0x55, 6, 0, 1662, 0x00000008},
+ {0xf, 8, 1, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x00000018},
- {0x2d, 1, 9, 1609, 0x00000000},
- {0x71, 3, 6, 12, 0x00000000},
- {0xbf, 1, 3, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
- {0x67, 3, 0, 0, 0x00000018},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x00000018},
+ {0x2d, 1, 9, 1657, 0x00000000},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x71, 3, 8, 12, 0x00000000},
+ {0x71, 2, 8, 9, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000011},
+ {0x55, 2, 0, 21, 0x00000006},
+ {0x71, 2, 8, 7, 0x00000000},
+ {0x71, 4, 8, 6, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x67, 5, 0, 0, 0x00000008},
+ {0x57, 5, 0, 0, 0x00001f00},
+ {0x4f, 5, 2, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x4f, 4, 5, 0, 0x00000000},
+ {0x55, 4, 0, 12, 0x00000000},
+ {0xbf, 2, 8, 0, 0x00000000},
+ {0x7, 2, 0, 0, 0x00000014},
+ {0x71, 4, 2, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 2, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 2, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 2, 2, 2, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000008},
+ {0x4f, 1, 2, 0, 0x00000000},
{0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x40000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xb7, 2, 0, 0, 0x00000000},
+ {0x65, 4, 0, 1, 0xffffffff},
+ {0xb7, 7, 0, 0, 0x2cc681d1},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x598d03a2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb31a0745},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x66340e8a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcc681d15},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x98d03a2b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x31a07456},
+ {0x71, 4, 8, 13, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc681d15b},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a07456f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x340e8ade},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x681d15bd},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa07456f6},
+ {0x71, 3, 8, 14, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x40e8aded},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x81d15bdb},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x03a2b7b7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x07456f6f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0e8adedf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1d15bdbf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3a2b7b7e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7456f6fd},
+ {0x71, 4, 8, 15, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd15bdbf4},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x15bdbf4f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2b7b7e9e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x56f6fd3d},
+ {0x71, 3, 8, 16, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xadedfa7b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb7b7e9ef},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6f6fd3df},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdedfa7bf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbdbf4f7f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7b7e9eff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6fd3dff},
+ {0x71, 4, 8, 17, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xedfa7bfe},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0x71, 3, 8, 18, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x67, 6, 0, 0, 0x00000038},
+ {0xc7, 6, 0, 0, 0x00000038},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf4f7fca2},
+ {0x6d, 2, 6, 1, 0x00000000},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000040},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe9eff945},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000020},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd3dff28a},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000010},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa7bfe514},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000008},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x4f7fca28},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9eff9450},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3dff28a0},
+ {0x71, 5, 8, 19, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7bfe5141},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf7fca283},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xeff94506},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdff28a0c},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbfe51418},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7fca2831},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff945063},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff28a0c6},
+ {0x57, 5, 0, 0, 0x00000001},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfe51418c},
+ {0xbf, 4, 1, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000020},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9450633},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf28a0c67},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe51418ce},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xca28319d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9450633b},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28a0c676},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x51418ced},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa28319db},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x450633b6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8a0c676c},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1418ced8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28319db1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x50633b63},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa0c676c6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x418ced8d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8319db1a},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0633b634},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c676c68},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18ced8d1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x319db1a3},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x633b6347},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc676c68f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8ced8d1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x19db1a3e},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x33b6347d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x676c68fa},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xced8d1f4},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9db1a3e9},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3b6347d2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x76c68fa5},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1194, 0x00000000},
+ {0xa7, 3, 0, 0, 0xed8d1f4a},
+ {0x5, 0, 0, 1192, 0x00000000},
+ {0xf, 8, 1, 0, 0x00000000},
+ {0xb7, 7, 0, 0, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x7, 1, 0, 0, 0x0000002c},
+ {0x2d, 1, 9, 1216, 0x00000000},
+ {0x61, 2, 8, 8, 0x00000000},
+ {0xdc, 2, 0, 0, 0x00000040},
+ {0xc7, 2, 0, 0, 0x00000020},
+ {0x71, 3, 8, 6, 0x00000000},
+ {0x15, 3, 0, 2, 0x00000011},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x55, 3, 0, 12, 0x00000006},
+ {0xbf, 3, 8, 0, 0x00000000},
+ {0x7, 3, 0, 0, 0x00000028},
+ {0x71, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 3, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 3, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 3, 3, 2, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000008},
+ {0x4f, 1, 3, 0, 0x00000000},
+ {0xbf, 4, 2, 0, 0x00000000},
+ {0x77, 4, 0, 0, 0x0000001f},
+ {0x57, 4, 0, 0, 0x2cc681d1},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x598d03a2},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb31a0745},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x66340e8a},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcc681d15},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x98d03a2b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x31a07456},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc681d15b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1a07456f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x340e8ade},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x681d15bd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa07456f6},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x40e8aded},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x81d15bdb},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x03a2b7b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x07456f6f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x0e8adedf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1d15bdbf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3a2b7b7e},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7456f6fd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd15bdbf4},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x15bdbf4f},
+ {0x61, 3, 8, 12, 0x00000000},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2b7b7e9e},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56f6fd3d},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 2, 0, 0, 0x00000001},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xadedfa7b},
{0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7b7e9ef},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x20000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6f6fd3df},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x10000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdedfa7bf},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x08000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbdbf4f7f},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x04000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7b7e9eff},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x02000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
- {0x71, 3, 6, 13, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf6fd3dff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xedfa7bfe},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00800000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00400000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00200000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00100000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00080000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00040000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00020000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
- {0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
- {0x71, 3, 6, 14, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4f7fca2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe9eff945},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd3dff28a},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa7bfe514},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4f7fca28},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9eff9450},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
- {0x71, 3, 6, 15, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3dff28a0},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7bfe5141},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf7fca283},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xeff94506},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdff28a0c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbfe51418},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7fca2831},
+ {0x61, 4, 8, 16, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff945063},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff28a0c6},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x71, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000038},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0x67, 4, 0, 0, 0x00000018},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0x71, 4, 6, 17, 0x00000000},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0x71, 4, 6, 18, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0x57, 4, 0, 0, 0x00000100},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0x71, 4, 6, 19, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x00000001},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x71, 4, 6, 20, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 21, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0x67, 4, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfe51418c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf9450633},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf28a0c67},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe51418ce},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca28319d},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9450633b},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28a0c676},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x51418ced},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa28319db},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x450633b6},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8a0c676c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1418ced8},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28319db1},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x50633b63},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0x71, 3, 6, 22, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
- {0xbf, 4, 3, 0, 0x00000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa0c676c6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x418ced8d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8319db1a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0633b634},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0c676c68},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x18ced8d1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x319db1a3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x633b6347},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc676c68f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8ced8d1f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x19db1a3e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x33b6347d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x676c68fa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xced8d1f4},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9db1a3e9},
+ {0x61, 3, 8, 20, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3b6347d2},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x76c68fa5},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xed8d1f4a},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdb1a3e94},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb6347d28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6c68fa51},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd8d1f4a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb1a3e946},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6347d28d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc68fa51a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d1f4a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a3e946b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x347d28d7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x68fa51ae},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1f4a35c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa3e946b9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x47d28d73},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8fa51ae7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1f4a35cf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3e946b9e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7d28d73c},
+ {0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa51ae78},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4a35cf1},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe946b9e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd28d73c7},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0x71, 3, 6, 23, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa51ae78e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4a35cf1c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x946b9e38},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x28d73c71},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x51ae78e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35cf1c6},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b9e38d},
+ {0x61, 4, 8, 24, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d73c71b},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ae78e36},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1177, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x05, 0, 0, 1175, 0x00000000},
- {0x0f, 6, 1, 0, 0x00000000},
- {0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x0000002c},
- {0x2d, 1, 9, 1202, 0x00000000},
- {0x61, 4, 6, 8, 0x00000000},
- {0xbf, 1, 4, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35cf1c6c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6b9e38d9},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000040},
- {0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd73c71b2},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000020},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xae78e364},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000010},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5cf1c6c9},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000008},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb9e38d92},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000004},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x73c71b25},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000002},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe78e364b},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcf1c6c96},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9e38d92c},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3c71b259},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x78e364b2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf1c6c964},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe38d92c9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc71b2593},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8e364b27},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1c6c964e},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00008000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x38d92c9c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00004000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x71b25938},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00002000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe364b270},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00001000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc6c964e0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000800},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8d92c9c0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000400},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1b259380},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000200},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x364b2700},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6c964e01},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd92c9c03},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb2593807},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x64b2700f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc964e01e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x92c9c03d},
+ {0x61, 3, 8, 28, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2593807a},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4b2700f4},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x964e01e8},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2c9c03d1},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x593807a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb2700f46},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x64e01e8d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc9c03d1a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x93807a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2700f46b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4e01e8d6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9c03d1ad},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3807a35b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x700f46b6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe01e8d6c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc03d1ad9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x807a35b3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x00f46b66},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x01e8d6cc},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x03d1ad99},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x07a35b32},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00002000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x0f46b665},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00001000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1e8d6cca},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000800},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3d1ad994},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000400},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7a35b328},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000200},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf46b6651},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe8d6cca2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000080},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1ad9944},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35b3289},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b66512},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d6cca25},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ad9944a},
+ {0x61, 4, 8, 32, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35b32894},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6b665129},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd6cca253},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xad9944a7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5b32894f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb665129f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6cca253e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd9944a7d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb32894fb},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x665129f6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcca253ec},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9944a7d9},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x32894fb2},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x65129f65},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca253eca},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x944a7d95},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2894fb2a},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5129f655},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa253ecab},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x44a7d956},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x894fb2ac},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x129f6558},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x253ecab1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4a7d9563},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x94fb2ac7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x29f6558f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x53ecab1e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa7d9563d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4fb2ac7a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9f6558f5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3ecab1ea},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7d9563d5},
+ {0x61, 3, 8, 36, 0x00000000},
{0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfb2ac7ab},
+ {0xdc, 3, 0, 0, 0x00000040},
{0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6558f56},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xecab1eac},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd9563d59},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb2ac7ab2},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6558f564},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcab1eac8},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9563d590},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2ac7ab20},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x61, 4, 6, 12, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x558f5641},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x01000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab1eac83},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00800000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x563d5906},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00400000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac7ab20c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00200000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x58f56418},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00100000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb1eac831},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00080000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x63d59063},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00040000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc7ab20c7},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00020000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8f56418f},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00010000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1eac831e},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00008000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3d59063c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00004000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7ab20c78},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00002000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf56418f0},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00001000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xeac831e1},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000800},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd59063c2},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000400},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab20c784},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000200},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56418f09},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000100},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac831e12},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x59063c25},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb20c784b},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6418f097},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc831e12f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9063c25f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x20c784be},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x61, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x61, 4, 6, 20, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdb1a3e94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb6347d28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c68fa51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd8d1f4a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1a3e946},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6347d28d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc68fa51a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d1f4a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a3e946b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x347d28d7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x68fa51ae},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1f4a35c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa3e946b9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x47d28d73},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8fa51ae7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1f4a35cf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3e946b9e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d28d73c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa51ae78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4a35cf1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe946b9e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd28d73c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa51ae78e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a35cf1c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x946b9e38},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28d73c71},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51ae78e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35cf1c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b9e38d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d73c71b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ae78e36},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35cf1c6c},
- {0x61, 4, 6, 24, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b9e38d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd73c71b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xae78e364},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5cf1c6c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb9e38d92},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x73c71b25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe78e364b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcf1c6c96},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9e38d92c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c71b259},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x78e364b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf1c6c964},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe38d92c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc71b2593},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8e364b27},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1c6c964e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x38d92c9c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x71b25938},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe364b270},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc6c964e0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d92c9c0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1b259380},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x364b2700},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c964e01},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd92c9c03},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2593807},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64b2700f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc964e01e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x92c9c03d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2593807a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4b2700f4},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x964e01e8},
- {0x61, 4, 6, 28, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2c9c03d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x593807a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2700f46},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64e01e8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc9c03d1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x93807a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2700f46b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4e01e8d6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9c03d1ad},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3807a35b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x700f46b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe01e8d6c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc03d1ad9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x807a35b3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x00f46b66},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x01e8d6cc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03d1ad99},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07a35b32},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0f46b665},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e8d6cca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d1ad994},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7a35b328},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf46b6651},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8d6cca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1ad9944},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35b3289},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b66512},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d6cca25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ad9944a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35b32894},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b665129},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd6cca253},
- {0x61, 4, 6, 32, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xad9944a7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5b32894f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb665129f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6cca253e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9944a7d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb32894fb},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x665129f6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcca253ec},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9944a7d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x32894fb2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x65129f65},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca253eca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x944a7d95},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2894fb2a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5129f655},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa253ecab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x44a7d956},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x894fb2ac},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x129f6558},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x253ecab1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a7d9563},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x94fb2ac7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x29f6558f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x53ecab1e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7d9563d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4fb2ac7a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9f6558f5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3ecab1ea},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d9563d5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfb2ac7ab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6558f56},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xecab1eac},
- {0x61, 4, 6, 36, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9563d59},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2ac7ab2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6558f564},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcab1eac8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9563d590},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2ac7ab20},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x558f5641},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab1eac83},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x563d5906},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac7ab20c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x58f56418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1eac831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63d59063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc7ab20c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f56418f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1eac831e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d59063c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7ab20c78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf56418f0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeac831e1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd59063c2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab20c784},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56418f09},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac831e12},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x418f097c},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x831e12f9},
+ {0xbf, 5, 1, 0, 0x00000000},
{0x67, 5, 0, 0, 0x00000020},
{0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x59063c25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb20c784b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6418f097},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc831e12f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9063c25f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x20c784be},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418f097c},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x831e12f9},
- {0x71, 4, 6, 40, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 41, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x063c25f3},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c784be7},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18f097cf},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31e12f9f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63c25f3f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc784be7f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f097cff},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e12f9fe},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c25f3fc},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x784be7f8},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf097cff0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe12f9fe0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc25f3fc1},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x84be7f83},
+ {0xa7, 3, 0, 0, 0x063c25f3},
+ {0x6d, 2, 5, 1, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x097cff07},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x12f9fe0f},
- {0x71, 3, 6, 42, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x25f3fc1f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4be7f83f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x97cff07f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2f9fe0fe},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5f3fc1fd},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbe7f83fb},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7cff07f7},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9fe0fee},
- {0x71, 3, 6, 43, 0x00000000},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf3fc1fdc},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe7f83fb8},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcff07f70},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9fe0fee1},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3fc1fdc2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7f83fb85},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff07f70a},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe0fee15},
- {0x71, 2, 0, 201, 0x00000000},
- {0x67, 2, 0, 0, 0x00000008},
- {0x71, 3, 0, 200, 0x00000000},
- {0x4f, 2, 3, 0, 0x00000000},
- {0x71, 3, 0, 203, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0x71, 4, 0, 202, 0x00000000},
- {0x4f, 3, 4, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
- {0x4f, 3, 2, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x00000020},
{0xbf, 2, 1, 0, 0x00000000},
- {0x3f, 2, 3, 0, 0x00000000},
- {0x2f, 2, 3, 0, 0x00000000},
- {0x1f, 1, 2, 0, 0x00000000},
- {0x57, 1, 0, 0, 0x0000000f},
- {0x67, 1, 0, 0, 0x00000002},
- {0x0f, 0, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c784be7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18f097cf},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x31e12f9f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x63c25f3f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc784be7f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8f097cff},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1e12f9fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3c25f3fc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x784be7f8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf097cff0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe12f9fe0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc25f3fc1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x84be7f83},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x097cff07},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x12f9fe0f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x25f3fc1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x4be7f83f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x97cff07f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x2f9fe0fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x5f3fc1fd},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xbe7f83fb},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7cff07f7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9fe0fee},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf3fc1fdc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe7f83fb8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xcff07f70},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9fe0fee1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3fc1fdc2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7f83fb85},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xff07f70a},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfe0fee15},
+ {0x71, 1, 0, 201, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000008},
+ {0x71, 2, 0, 200, 0x00000000},
+ {0x4f, 1, 2, 0, 0x00000000},
+ {0x71, 2, 0, 202, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
+ {0x71, 4, 0, 203, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x4f, 4, 2, 0, 0x00000000},
+ {0x4f, 4, 1, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000020},
+ {0x77, 3, 0, 0, 0x00000020},
+ {0x9f, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x0000000f},
+ {0x67, 3, 0, 0, 0x00000002},
+ {0xf, 0, 3, 0, 0x00000000},
{0x71, 1, 0, 137, 0x00000000},
{0x67, 1, 0, 0, 0x00000008},
{0x71, 2, 0, 136, 0x00000000},
{0x4f, 1, 2, 0, 0x00000000},
{0x71, 2, 0, 138, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
{0x71, 3, 0, 139, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x67, 3, 0, 0, 0x00000018},
{0x4f, 3, 2, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
{0x4f, 3, 1, 0, 0x00000000},
- {0x07, 3, 0, 0, 0x7cafe800},
- {0x63, 5, 3, 52, 0x00000000},
+ {0x7, 3, 0, 0, 0x7cafe800},
+ {0x63, 6, 3, 52, 0x00000000},
{0xb7, 7, 0, 0, 0x00000001},
{0xbf, 0, 7, 0, 0x00000000},
{0x95, 0, 0, 0, 0x00000000},
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
` (6 preceding siblings ...)
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
@ 2023-11-01 18:02 ` Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
` (5 more replies)
7 siblings, 6 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-01 18:02 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Update the documentation and tools to build the BPF program used by
tap device. And apply fix to the RSS algorithm to correctly
handle non-IP protocols.
v6 - cosmetic improvements to extract process
add better boilerplate and fix python lint warnings
Madhuker Mythri (1):
net/tap: Fixed RSS algorithm to support fragmented packets
Stephen Hemminger (2):
net/tap: support infrastructure to build the BPF filter
net/tap; rebuild and update the BPF flow program
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 +
drivers/net/tap/bpf/bpf_api.h | 275 ++
drivers/net/tap/bpf/bpf_elf.h | 53 +
drivers/net/tap/bpf/bpf_extract.py | 86 +
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 57 +-
drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++---------
drivers/net/tap/tap_rss.h | 2 +-
9 files changed, 1986 insertions(+), 1476 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (79%)
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v6 1/3] net/tap: support infrastructure to build the BPF filter
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
@ 2023-11-01 18:02 ` Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
` (4 subsequent siblings)
5 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-01 18:02 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Move the BPF program related code into a subdirectory.
And add a Makefile for building it.
The code depends on include files from iproute2.
But these are not public headers which iproute2 exports
as a package API. Therefore make a local copy here.
The standalone build was also broken because by
commit ef5baf3486e0 ("replace packed attributes")
which introduced __rte_packed into this code.
Add a python program to extract the resulting BPF into
a format that can be consumed by the TAP driver.
Update the documentation.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/nics/tap.rst | 11 +-
drivers/net/tap/bpf/.gitignore | 1 +
drivers/net/tap/bpf/Makefile | 18 ++
drivers/net/tap/bpf/bpf_api.h | 275 ++++++++++++++++++++
drivers/net/tap/bpf/bpf_elf.h | 53 ++++
| 86 ++++++
drivers/net/tap/{ => bpf}/tap_bpf_program.c | 10 +-
| 2 +-
8 files changed, 444 insertions(+), 12 deletions(-)
create mode 100644 drivers/net/tap/bpf/.gitignore
create mode 100644 drivers/net/tap/bpf/Makefile
create mode 100644 drivers/net/tap/bpf/bpf_api.h
create mode 100644 drivers/net/tap/bpf/bpf_elf.h
create mode 100644 drivers/net/tap/bpf/bpf_extract.py
rename drivers/net/tap/{ => bpf}/tap_bpf_program.c (96%)
diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 07df0d35a2..449e747994 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -256,15 +256,12 @@ C functions under different ELF sections.
2. Install ``LLVM`` library and ``clang`` compiler versions 3.7 and above
-3. Compile ``tap_bpf_program.c`` via ``LLVM`` into an object file::
+3. Use make to compile `tap_bpf_program.c`` via ``LLVM`` into an object file
+ and extract the resulting instructions into ``tap_bpf_insn.h``.
- clang -O2 -emit-llvm -c tap_bpf_program.c -o - | llc -march=bpf \
- -filetype=obj -o <tap_bpf_program.o>
+ cd bpf; make
-
-4. Use a tool that receives two parameters: an eBPF object file and a section
-name, and prints out the section as a C array of eBPF instructions.
-Embed the C array in your TAP PMD tree.
+4. Recompile the TAP PMD.
The C arrays are uploaded to the kernel using BPF system calls.
diff --git a/drivers/net/tap/bpf/.gitignore b/drivers/net/tap/bpf/.gitignore
new file mode 100644
index 0000000000..30a258f1af
--- /dev/null
+++ b/drivers/net/tap/bpf/.gitignore
@@ -0,0 +1 @@
+tap_bpf_program.o
diff --git a/drivers/net/tap/bpf/Makefile b/drivers/net/tap/bpf/Makefile
new file mode 100644
index 0000000000..59844c616f
--- /dev/null
+++ b/drivers/net/tap/bpf/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# This file is not built as part of normal DPDK build.
+# It is used to generate the eBPF code for TAP RSS.
+CLANG=clang
+CLANG_OPTS=-O2
+TARGET=../tap_bpf_insns.h
+
+all: $(TARGET)
+
+clean:
+ rm tap_bpf_program.o $(TARGET)
+
+tap_bpf_program.o: tap_bpf_program.c
+ $(CLANG) $(CLANG_OPTS) -emit-llvm -c $< -o - | \
+ llc -march=bpf -filetype=obj -o $@
+
+$(TARGET): tap_bpf_program.o
+ python3 bpf_extract.py -stap_bpf_program.c -o $@ $<
diff --git a/drivers/net/tap/bpf/bpf_api.h b/drivers/net/tap/bpf/bpf_api.h
new file mode 100644
index 0000000000..5887d3a851
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_api.h
@@ -0,0 +1,275 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_API__
+#define __BPF_API__
+
+/* Note:
+ *
+ * This file can be included into eBPF kernel programs. It contains
+ * a couple of useful helper functions, map/section ABI (bpf_elf.h),
+ * misc macros and some eBPF specific LLVM built-ins.
+ */
+
+#include <stdint.h>
+
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/filter.h>
+
+#include <asm/byteorder.h>
+
+#include "bpf_elf.h"
+
+/** libbpf pin type. */
+enum libbpf_pin_type {
+ LIBBPF_PIN_NONE,
+ /* PIN_BY_NAME: pin maps by name (in /sys/fs/bpf by default) */
+ LIBBPF_PIN_BY_NAME,
+};
+
+/** Type helper macros. */
+
+#define __uint(name, val) int (*name)[val]
+#define __type(name, val) typeof(val) *name
+#define __array(name, val) typeof(val) *name[]
+
+/** Misc macros. */
+
+#ifndef __stringify
+# define __stringify(X) #X
+#endif
+
+#ifndef __maybe_unused
+# define __maybe_unused __attribute__((__unused__))
+#endif
+
+#ifndef offsetof
+# define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
+#endif
+
+#ifndef likely
+# define likely(X) __builtin_expect(!!(X), 1)
+#endif
+
+#ifndef unlikely
+# define unlikely(X) __builtin_expect(!!(X), 0)
+#endif
+
+#ifndef htons
+# define htons(X) __constant_htons((X))
+#endif
+
+#ifndef ntohs
+# define ntohs(X) __constant_ntohs((X))
+#endif
+
+#ifndef htonl
+# define htonl(X) __constant_htonl((X))
+#endif
+
+#ifndef ntohl
+# define ntohl(X) __constant_ntohl((X))
+#endif
+
+#ifndef __inline__
+# define __inline__ __attribute__((always_inline))
+#endif
+
+/** Section helper macros. */
+
+#ifndef __section
+# define __section(NAME) \
+ __attribute__((section(NAME), used))
+#endif
+
+#ifndef __section_tail
+# define __section_tail(ID, KEY) \
+ __section(__stringify(ID) "/" __stringify(KEY))
+#endif
+
+#ifndef __section_xdp_entry
+# define __section_xdp_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_cls_entry
+# define __section_cls_entry \
+ __section(ELF_SECTION_CLASSIFIER)
+#endif
+
+#ifndef __section_act_entry
+# define __section_act_entry \
+ __section(ELF_SECTION_ACTION)
+#endif
+
+#ifndef __section_lwt_entry
+# define __section_lwt_entry \
+ __section(ELF_SECTION_PROG)
+#endif
+
+#ifndef __section_license
+# define __section_license \
+ __section(ELF_SECTION_LICENSE)
+#endif
+
+#ifndef __section_maps
+# define __section_maps \
+ __section(ELF_SECTION_MAPS)
+#endif
+
+/** Declaration helper macros. */
+
+#ifndef BPF_LICENSE
+# define BPF_LICENSE(NAME) \
+ char ____license[] __section_license = NAME
+#endif
+
+/** Classifier helper */
+
+#ifndef BPF_H_DEFAULT
+# define BPF_H_DEFAULT -1
+#endif
+
+/** BPF helper functions for tc. Individual flags are in linux/bpf.h */
+
+#ifndef __BPF_FUNC
+# define __BPF_FUNC(NAME, ...) \
+ (* NAME)(__VA_ARGS__) __maybe_unused
+#endif
+
+#ifndef BPF_FUNC
+# define BPF_FUNC(NAME, ...) \
+ __BPF_FUNC(NAME, __VA_ARGS__) = (void *) BPF_FUNC_##NAME
+#endif
+
+/* Map access/manipulation */
+static void *BPF_FUNC(map_lookup_elem, void *map, const void *key);
+static int BPF_FUNC(map_update_elem, void *map, const void *key,
+ const void *value, uint32_t flags);
+static int BPF_FUNC(map_delete_elem, void *map, const void *key);
+
+/* Time access */
+static uint64_t BPF_FUNC(ktime_get_ns);
+
+/* Debugging */
+
+/* FIXME: __attribute__ ((format(printf, 1, 3))) not possible unless
+ * llvm bug https://llvm.org/bugs/show_bug.cgi?id=26243 gets resolved.
+ * It would require ____fmt to be made const, which generates a reloc
+ * entry (non-map).
+ */
+static void BPF_FUNC(trace_printk, const char *fmt, int fmt_size, ...);
+
+#ifndef printt
+# define printt(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ trace_printk(____fmt, sizeof(____fmt), ##__VA_ARGS__); \
+ })
+#endif
+
+/* Random numbers */
+static uint32_t BPF_FUNC(get_prandom_u32);
+
+/* Tail calls */
+static void BPF_FUNC(tail_call, struct __sk_buff *skb, void *map,
+ uint32_t index);
+
+/* System helpers */
+static uint32_t BPF_FUNC(get_smp_processor_id);
+static uint32_t BPF_FUNC(get_numa_node_id);
+
+/* Packet misc meta data */
+static uint32_t BPF_FUNC(get_cgroup_classid, struct __sk_buff *skb);
+static int BPF_FUNC(skb_under_cgroup, void *map, uint32_t index);
+
+static uint32_t BPF_FUNC(get_route_realm, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(get_hash_recalc, struct __sk_buff *skb);
+static uint32_t BPF_FUNC(set_hash_invalid, struct __sk_buff *skb);
+
+/* Packet redirection */
+static int BPF_FUNC(redirect, int ifindex, uint32_t flags);
+static int BPF_FUNC(clone_redirect, struct __sk_buff *skb, int ifindex,
+ uint32_t flags);
+
+/* Packet manipulation */
+static int BPF_FUNC(skb_load_bytes, struct __sk_buff *skb, uint32_t off,
+ void *to, uint32_t len);
+static int BPF_FUNC(skb_store_bytes, struct __sk_buff *skb, uint32_t off,
+ const void *from, uint32_t len, uint32_t flags);
+
+static int BPF_FUNC(l3_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(l4_csum_replace, struct __sk_buff *skb, uint32_t off,
+ uint32_t from, uint32_t to, uint32_t flags);
+static int BPF_FUNC(csum_diff, const void *from, uint32_t from_size,
+ const void *to, uint32_t to_size, uint32_t seed);
+static int BPF_FUNC(csum_update, struct __sk_buff *skb, uint32_t wsum);
+
+static int BPF_FUNC(skb_change_type, struct __sk_buff *skb, uint32_t type);
+static int BPF_FUNC(skb_change_proto, struct __sk_buff *skb, uint32_t proto,
+ uint32_t flags);
+static int BPF_FUNC(skb_change_tail, struct __sk_buff *skb, uint32_t nlen,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_pull_data, struct __sk_buff *skb, uint32_t len);
+
+/* Event notification */
+static int __BPF_FUNC(skb_event_output, struct __sk_buff *skb, void *map,
+ uint64_t index, const void *data, uint32_t size) =
+ (void *) BPF_FUNC_perf_event_output;
+
+/* Packet vlan encap/decap */
+static int BPF_FUNC(skb_vlan_push, struct __sk_buff *skb, uint16_t proto,
+ uint16_t vlan_tci);
+static int BPF_FUNC(skb_vlan_pop, struct __sk_buff *skb);
+
+/* Packet tunnel encap/decap */
+static int BPF_FUNC(skb_get_tunnel_key, struct __sk_buff *skb,
+ struct bpf_tunnel_key *to, uint32_t size, uint32_t flags);
+static int BPF_FUNC(skb_set_tunnel_key, struct __sk_buff *skb,
+ const struct bpf_tunnel_key *from, uint32_t size,
+ uint32_t flags);
+
+static int BPF_FUNC(skb_get_tunnel_opt, struct __sk_buff *skb,
+ void *to, uint32_t size);
+static int BPF_FUNC(skb_set_tunnel_opt, struct __sk_buff *skb,
+ const void *from, uint32_t size);
+
+/** LLVM built-ins, mem*() routines work for constant size */
+
+#ifndef lock_xadd
+# define lock_xadd(ptr, val) ((void) __sync_fetch_and_add(ptr, val))
+#endif
+
+#ifndef memset
+# define memset(s, c, n) __builtin_memset((s), (c), (n))
+#endif
+
+#ifndef memcpy
+# define memcpy(d, s, n) __builtin_memcpy((d), (s), (n))
+#endif
+
+#ifndef memmove
+# define memmove(d, s, n) __builtin_memmove((d), (s), (n))
+#endif
+
+/* FIXME: __builtin_memcmp() is not yet fully useable unless llvm bug
+ * https://llvm.org/bugs/show_bug.cgi?id=26218 gets resolved. Also
+ * this one would generate a reloc entry (non-map), otherwise.
+ */
+#if 0
+#ifndef memcmp
+# define memcmp(a, b, n) __builtin_memcmp((a), (b), (n))
+#endif
+#endif
+
+unsigned long long load_byte(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.byte");
+
+unsigned long long load_half(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.half");
+
+unsigned long long load_word(void *skb, unsigned long long off)
+ asm ("llvm.bpf.load.word");
+
+#endif /* __BPF_API__ */
diff --git a/drivers/net/tap/bpf/bpf_elf.h b/drivers/net/tap/bpf/bpf_elf.h
new file mode 100644
index 0000000000..ea8a11c95c
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_elf.h
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
+#ifndef __BPF_ELF__
+#define __BPF_ELF__
+
+#include <asm/types.h>
+
+/* Note:
+ *
+ * Below ELF section names and bpf_elf_map structure definition
+ * are not (!) kernel ABI. It's rather a "contract" between the
+ * application and the BPF loader in tc. For compatibility, the
+ * section names should stay as-is. Introduction of aliases, if
+ * needed, are a possibility, though.
+ */
+
+/* ELF section names, etc */
+#define ELF_SECTION_LICENSE "license"
+#define ELF_SECTION_MAPS "maps"
+#define ELF_SECTION_PROG "prog"
+#define ELF_SECTION_CLASSIFIER "classifier"
+#define ELF_SECTION_ACTION "action"
+
+#define ELF_MAX_MAPS 64
+#define ELF_MAX_LICENSE_LEN 128
+
+/* Object pinning settings */
+#define PIN_NONE 0
+#define PIN_OBJECT_NS 1
+#define PIN_GLOBAL_NS 2
+
+/* ELF map definition */
+struct bpf_elf_map {
+ __u32 type;
+ __u32 size_key;
+ __u32 size_value;
+ __u32 max_elem;
+ __u32 flags;
+ __u32 id;
+ __u32 pinning;
+ __u32 inner_id;
+ __u32 inner_idx;
+};
+
+#define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val) \
+ struct ____btf_map_##name { \
+ type_key key; \
+ type_val value; \
+ }; \
+ struct ____btf_map_##name \
+ __attribute__ ((section(".maps." #name), used)) \
+ ____btf_map_##name = { }
+
+#endif /* __BPF_ELF__ */
--git a/drivers/net/tap/bpf/bpf_extract.py b/drivers/net/tap/bpf/bpf_extract.py
new file mode 100644
index 0000000000..b630c42b80
--- /dev/null
+++ b/drivers/net/tap/bpf/bpf_extract.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org>
+
+import argparse
+import sys
+import struct
+from tempfile import TemporaryFile
+from elftools.elf.elffile import ELFFile
+
+
+def load_sections(elffile):
+ """Get sections of interest from ELF"""
+ result = []
+ parts = [("cls_q", "cls_q_insns"), ("l3_l4", "l3_l4_hash_insns")]
+ for name, tag in parts:
+ section = elffile.get_section_by_name(name)
+ if section:
+ insns = struct.iter_unpack('<BBhL', section.data())
+ result.append([tag, insns])
+ return result
+
+
+def dump_section(name, insns, out):
+ """Dump the array of BPF instructions"""
+ print(f'\nstatic struct bpf_insn {name}[] = {{', file=out)
+ for bpf in insns:
+ code = bpf[0]
+ src = bpf[1] >> 4
+ dst = bpf[1] & 0xf
+ off = bpf[2]
+ imm = bpf[3]
+ print(f'\t{{{code:#04x}, {dst:4d}, {src:4d}, {off:8d}, {imm:#010x}}},',
+ file=out)
+ print('};', file=out)
+
+
+def parse_args():
+ """Parse command line arguments"""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-s',
+ '--source',
+ type=str,
+ help="original source file")
+ parser.add_argument('-o', '--out', type=str, help="output C file path")
+ parser.add_argument("file",
+ nargs='+',
+ help="object file path or '-' for stdin")
+ return parser.parse_args()
+
+
+def open_input(path):
+ """Open the file or stdin"""
+ if path == "-":
+ temp = TemporaryFile()
+ temp.write(sys.stdin.buffer.read())
+ return temp
+ return open(path, 'rb')
+
+
+def write_header(out, source):
+ """Write file intro header"""
+ print("/* SPDX-License-Identifier: BSD-3-Clause", file=out)
+ if source:
+ print(f' * Auto-generated from {source}', file=out)
+ print(" * This not the original source file. Do NOT edit it.", file=out)
+ print(" */\n", file=out)
+ print("#include <tap_bpf.h>", file=out)
+
+
+def main():
+ '''program main function'''
+ args = parse_args()
+
+ with open(args.out, 'w',
+ encoding="utf-8") if args.out else sys.stdout as out:
+ write_header(out, args.source)
+ for path in args.file:
+ elffile = ELFFile(open_input(path))
+ sections = load_sections(elffile)
+ for name, insns in sections:
+ dump_section(name, insns, out)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
similarity index 96%
rename from drivers/net/tap/tap_bpf_program.c
rename to drivers/net/tap/bpf/tap_bpf_program.c
index 20c310e5e7..d65021d8a1 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -14,9 +14,10 @@
#include <linux/ipv6.h>
#include <linux/if_tunnel.h>
#include <linux/filter.h>
-#include <linux/bpf.h>
-#include "tap_rss.h"
+#include "bpf_api.h"
+#include "bpf_elf.h"
+#include "../tap_rss.h"
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
@@ -56,6 +57,7 @@ __section("cls_q") int
match_q(struct __sk_buff *skb)
{
__u32 queue = skb->cb[1];
+ /* queue is set by tap_flow_bpf_cls_q() before load */
volatile __u32 q = 0xdeadbeef;
__u32 match_queue = QUEUE_OFFSET + q;
@@ -75,14 +77,14 @@ struct ipv4_l3_l4_tuple {
__u32 dst_addr;
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
struct ipv6_l3_l4_tuple {
__u8 src_addr[16];
__u8 dst_addr[16];
__u16 dport;
__u16 sport;
-} __rte_packed;
+} __attribute__((packed));
static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
0xd1, 0x81, 0xc6, 0x2c,
--git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
index 48c151cf6b..dff46a012f 100644
--- a/drivers/net/tap/tap_rss.h
+++ b/drivers/net/tap/tap_rss.h
@@ -35,6 +35,6 @@ struct rss_key {
__u32 key_size;
__u32 queues[TAP_MAX_QUEUES];
__u32 nb_queues;
-} __rte_packed;
+} __attribute__((packed));
#endif /* _TAP_RSS_H_ */
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v6 2/3] net/tap: Fixed RSS algorithm to support fragmented packets
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
@ 2023-11-01 18:02 ` Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
` (3 subsequent siblings)
5 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-01 18:02 UTC (permalink / raw)
To: dev; +Cc: Madhuker Mythri, Stephen Hemminger
From: Madhuker Mythri <madhuker.mythri@oracle.com>
As per analysis on Tap PMD, the existing RSS algorithm considering
4-tuple(Src-IP, Dst-IP, Src-port and Dst-port) and identification of
fragment packets is not done, thus we are seeing all the fragmented
chunks of single packet differs in RSS hash value and distributed across
multiple queues.
The RSS algorithm assumes that, all the incoming IP packets are based on
L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and
Dst-port) for each incoming packet, but for the fragmented chunks these
L4-header will not be present(except for first packet) and should not
consider in RSS hash for L4 header fields in-case of fragmented chunks.
Which is a bug in the RSS algorithm implemented in the BPF functionality
under TAP PMD.
So, modified the RSS eBPF C-program and generated the structure of
C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code
instructions format.
Bugzilla Id: 870
Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/bpf/tap_bpf_program.c | 47 ++++++++++++++++++++++-----
1 file changed, 39 insertions(+), 8 deletions(-)
diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
index d65021d8a1..369c7b107f 100644
--- a/drivers/net/tap/bpf/tap_bpf_program.c
+++ b/drivers/net/tap/bpf/tap_bpf_program.c
@@ -19,6 +19,8 @@
#include "bpf_elf.h"
#include "../tap_rss.h"
+#include "bpf_api.h"
+
/** Create IPv4 address */
#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
(((b) & 0xff) << 16) | \
@@ -133,6 +135,8 @@ rss_l3_l4(struct __sk_buff *skb)
__u8 *key = 0;
__u32 len;
__u32 queue = 0;
+ bool mf = 0;
+ __u16 frag_off = 0;
rsskey = map_lookup_elem(&map_keys, &key_idx);
if (!rsskey) {
@@ -157,6 +161,8 @@ rss_l3_l4(struct __sk_buff *skb)
return TC_ACT_OK;
__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
+ __u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
+ __u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
__u8 *src_dst_port = data + off + sizeof(struct iphdr);
struct ipv4_l3_l4_tuple v4_tuple = {
.src_addr = IPv4(*(src_dst_addr + 0),
@@ -167,11 +173,25 @@ rss_l3_l4(struct __sk_buff *skb)
*(src_dst_addr + 5),
*(src_dst_addr + 6),
*(src_dst_addr + 7)),
- .sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1)),
- .dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3)),
+ .sport = 0,
+ .dport = 0,
};
+ /** Fetch the L4-payer port numbers only in-case of TCP/UDP
+ ** and also if the packet is not fragmented. Since fragmented
+ ** chunks do not have L4 TCP/UDP header.
+ **/
+ if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
+ frag_off = PORT(*(frag_off_addr + 0),
+ *(frag_off_addr + 1));
+ mf = frag_off & 0x2000;
+ frag_off = frag_off & 0x1fff;
+ if (mf == 0 && frag_off == 0) {
+ v4_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v4_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ }
+ }
__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
input_len--;
@@ -184,6 +204,9 @@ rss_l3_l4(struct __sk_buff *skb)
offsetof(struct ipv6hdr, saddr);
__u8 *src_dst_port = data + off +
sizeof(struct ipv6hdr);
+ __u8 *next_hdr = data + off +
+ offsetof(struct ipv6hdr, nexthdr);
+
struct ipv6_l3_l4_tuple v6_tuple;
for (j = 0; j < 4; j++)
*((uint32_t *)&v6_tuple.src_addr + j) =
@@ -193,10 +216,18 @@ rss_l3_l4(struct __sk_buff *skb)
*((uint32_t *)&v6_tuple.dst_addr + j) =
__builtin_bswap32(*((uint32_t *)
src_dst_addr + 4 + j));
- v6_tuple.sport = PORT(*(src_dst_port + 0),
- *(src_dst_port + 1));
- v6_tuple.dport = PORT(*(src_dst_port + 2),
- *(src_dst_port + 3));
+
+ /** Fetch the L4 header port-numbers only if next-header
+ * is TCP/UDP **/
+ if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
+ v6_tuple.sport = PORT(*(src_dst_port + 0),
+ *(src_dst_port + 1));
+ v6_tuple.dport = PORT(*(src_dst_port + 2),
+ *(src_dst_port + 3));
+ } else {
+ v6_tuple.sport = 0;
+ v6_tuple.dport = 0;
+ }
__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
@ 2023-11-01 18:02 ` Stephen Hemminger
2023-11-02 15:13 ` Ferruh Yigit
2023-11-02 21:00 ` Ferruh Yigit
2023-11-02 15:11 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Ferruh Yigit
` (2 subsequent siblings)
5 siblings, 2 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-01 18:02 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Rebuild with commit
c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
1 file changed, 1503 insertions(+), 1456 deletions(-)
diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 1a91bbad13..53fa76c4e6 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,10 +1,10 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017 Mellanox Technologies, Ltd
+ * Auto-generated from tap_bpf_program.c
+ * This not the original source file. Do NOT edit it.
*/
#include <tap_bpf.h>
-/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
static struct bpf_insn cls_q_insns[] = {
{0x61, 2, 1, 52, 0x00000000},
{0x18, 3, 0, 0, 0xdeadbeef},
@@ -23,18 +23,17 @@ static struct bpf_insn cls_q_insns[] = {
{0x95, 0, 0, 0, 0x00000000},
};
-/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
static struct bpf_insn l3_l4_hash_insns[] = {
{0xbf, 7, 1, 0, 0x00000000},
- {0x61, 8, 7, 16, 0x00000000},
- {0x61, 6, 7, 76, 0x00000000},
+ {0x61, 6, 7, 16, 0x00000000},
+ {0x61, 8, 7, 76, 0x00000000},
{0x61, 9, 7, 80, 0x00000000},
{0x18, 1, 0, 0, 0xdeadbeef},
{0x00, 0, 0, 0, 0x00000000},
{0x63, 10, 1, -4, 0x00000000},
{0xbf, 2, 10, 0, 0x00000000},
{0x07, 2, 0, 0, 0xfffffffc},
- {0x18, 1, 1, 0, 0x0000cafe},
+ {0x18, 1, 0, 0, 0x00000000},
{0x00, 0, 0, 0, 0x00000000},
{0x85, 0, 0, 0, 0x00000001},
{0x55, 0, 0, 21, 0x00000000},
@@ -58,7 +57,7 @@ static struct bpf_insn l3_l4_hash_insns[] = {
{0x07, 1, 0, 0, 0xffffffd0},
{0xb7, 2, 0, 0, 0x00000023},
{0x85, 0, 0, 0, 0x00000006},
- {0x05, 0, 0, 1632, 0x00000000},
+ {0x05, 0, 0, 1680, 0x00000000},
{0xb7, 1, 0, 0, 0x0000000e},
{0x61, 2, 7, 20, 0x00000000},
{0x15, 2, 0, 10, 0x00000000},
@@ -66,1630 +65,1678 @@ static struct bpf_insn l3_l4_hash_insns[] = {
{0x55, 2, 0, 8, 0x0000a888},
{0xbf, 2, 7, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
{0x07, 1, 0, 0, 0x00000012},
- {0x2d, 1, 9, 1622, 0x00000000},
+ {0x2d, 1, 9, 1670, 0x00000000},
{0xb7, 1, 0, 0, 0x00000012},
- {0x69, 8, 6, 16, 0x00000000},
+ {0x69, 6, 8, 16, 0x00000000},
{0xbf, 7, 2, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x0000ffff},
{0x7b, 10, 7, -56, 0x00000000},
- {0x57, 8, 0, 0, 0x0000ffff},
- {0x15, 8, 0, 409, 0x0000dd86},
+ {0x15, 6, 0, 443, 0x0000dd86},
{0xb7, 7, 0, 0, 0x00000003},
- {0x55, 8, 0, 1614, 0x00000008},
- {0x0f, 6, 1, 0, 0x00000000},
+ {0x55, 6, 0, 1662, 0x00000008},
+ {0x0f, 8, 1, 0, 0x00000000},
{0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
{0x07, 1, 0, 0, 0x00000018},
- {0x2d, 1, 9, 1609, 0x00000000},
- {0x71, 3, 6, 12, 0x00000000},
- {0xbf, 1, 3, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
- {0x67, 3, 0, 0, 0x00000018},
+ {0x2d, 1, 9, 1657, 0x00000000},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x71, 3, 8, 12, 0x00000000},
+ {0x71, 2, 8, 9, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000011},
+ {0x55, 2, 0, 21, 0x00000006},
+ {0x71, 2, 8, 7, 0x00000000},
+ {0x71, 4, 8, 6, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x67, 5, 0, 0, 0x00000008},
+ {0x57, 5, 0, 0, 0x00001f00},
+ {0x4f, 5, 2, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x4f, 4, 5, 0, 0x00000000},
+ {0x55, 4, 0, 12, 0x00000000},
+ {0xbf, 2, 8, 0, 0x00000000},
+ {0x07, 2, 0, 0, 0x00000014},
+ {0x71, 4, 2, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 2, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 2, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 2, 2, 2, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000008},
+ {0x4f, 1, 2, 0, 0x00000000},
{0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x40000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xb7, 2, 0, 0, 0x00000000},
+ {0x65, 4, 0, 1, 0xffffffff},
+ {0xb7, 7, 0, 0, 0x2cc681d1},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x598d03a2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb31a0745},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x66340e8a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcc681d15},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x98d03a2b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x31a07456},
+ {0x71, 4, 8, 13, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc681d15b},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a07456f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x340e8ade},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x681d15bd},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa07456f6},
+ {0x71, 3, 8, 14, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x40e8aded},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x81d15bdb},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x03a2b7b7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x07456f6f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0e8adedf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1d15bdbf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3a2b7b7e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7456f6fd},
+ {0x71, 4, 8, 15, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd15bdbf4},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x15bdbf4f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2b7b7e9e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x56f6fd3d},
+ {0x71, 3, 8, 16, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xadedfa7b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000038},
+ {0xc7, 4, 0, 0, 0x00000038},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb7b7e9ef},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6f6fd3df},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdedfa7bf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbdbf4f7f},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000004},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7b7e9eff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000002},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6fd3dff},
+ {0x71, 4, 8, 17, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xedfa7bfe},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0x71, 3, 8, 18, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x67, 6, 0, 0, 0x00000038},
+ {0xc7, 6, 0, 0, 0x00000038},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf4f7fca2},
+ {0x6d, 2, 6, 1, 0x00000000},
+ {0xbf, 4, 5, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000040},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe9eff945},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000020},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd3dff28a},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000010},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa7bfe514},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000008},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x4f7fca28},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9eff9450},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3dff28a0},
+ {0x71, 5, 8, 19, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7bfe5141},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000038},
+ {0xc7, 3, 0, 0, 0x00000038},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf7fca283},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 7, 4, 0, 0x00000000},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xeff94506},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xdff28a0c},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xbfe51418},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7fca2831},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000004},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff945063},
+ {0xbf, 3, 5, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000002},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xff28a0c6},
+ {0x57, 5, 0, 0, 0x00000001},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfe51418c},
+ {0xbf, 4, 1, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000020},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 3, 7, 0, 0x00000000},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9450633},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf28a0c67},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe51418ce},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xca28319d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9450633b},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28a0c676},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x51418ced},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa28319db},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x450633b6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8a0c676c},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1418ced8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x28319db1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x50633b63},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xa0c676c6},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x418ced8d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8319db1a},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0633b634},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c676c68},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18ced8d1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x319db1a3},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x633b6347},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc676c68f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8ced8d1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x19db1a3e},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x33b6347d},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x676c68fa},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xced8d1f4},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9db1a3e9},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3b6347d2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x76c68fa5},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1194, 0x00000000},
+ {0xa7, 3, 0, 0, 0xed8d1f4a},
+ {0x05, 0, 0, 1192, 0x00000000},
+ {0x0f, 8, 1, 0, 0x00000000},
+ {0xb7, 7, 0, 0, 0x00000000},
+ {0xbf, 1, 8, 0, 0x00000000},
+ {0x07, 1, 0, 0, 0x0000002c},
+ {0x2d, 1, 9, 1216, 0x00000000},
+ {0x61, 2, 8, 8, 0x00000000},
+ {0xdc, 2, 0, 0, 0x00000040},
+ {0xc7, 2, 0, 0, 0x00000020},
+ {0x71, 3, 8, 6, 0x00000000},
+ {0x15, 3, 0, 2, 0x00000011},
+ {0xb7, 1, 0, 0, 0x00000000},
+ {0x55, 3, 0, 12, 0x00000006},
+ {0xbf, 3, 8, 0, 0x00000000},
+ {0x07, 3, 0, 0, 0x00000028},
+ {0x71, 4, 3, 0, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x71, 1, 3, 1, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000010},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 4, 3, 3, 0x00000000},
+ {0x4f, 1, 4, 0, 0x00000000},
+ {0x71, 3, 3, 2, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000008},
+ {0x4f, 1, 3, 0, 0x00000000},
+ {0xbf, 4, 2, 0, 0x00000000},
+ {0x77, 4, 0, 0, 0x0000001f},
+ {0x57, 4, 0, 0, 0x2cc681d1},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x598d03a2},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb31a0745},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x66340e8a},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcc681d15},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x98d03a2b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x31a07456},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6340e8ad},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc681d15b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8d03a2b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1a07456f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x340e8ade},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x681d15bd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd03a2b7b},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa07456f6},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x40e8aded},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x81d15bdb},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x03a2b7b7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x07456f6f},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x0e8adedf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1d15bdbf},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3a2b7b7e},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7456f6fd},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xe8adedfa},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd15bdbf4},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xa2b7b7e9},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x456f6fd3},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8adedfa7},
+ {0xbf, 3, 2, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x15bdbf4f},
+ {0x61, 3, 8, 12, 0x00000000},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2b7b7e9e},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 2, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56f6fd3d},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 2, 0, 0, 0x00000001},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xadedfa7b},
{0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x5bdbf4f7},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7b7e9ef},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x20000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6f6fd3df},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x10000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdedfa7bf},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x08000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbdbf4f7f},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x04000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7b7e9eff},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x02000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
- {0x71, 3, 6, 13, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf6fd3dff},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xedfa7bfe},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00800000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdbf4f7fc},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00400000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb7e9eff9},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00200000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6fd3dff2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00100000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdfa7bfe5},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00080000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbf4f7fca},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00040000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7e9eff94},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00020000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
- {0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
- {0x71, 3, 6, 14, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfd3dff28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa7bfe51},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4f7fca2},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe9eff945},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd3dff28a},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa7bfe514},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4f7fca28},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9eff9450},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
- {0x71, 3, 6, 15, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3dff28a0},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7bfe5141},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf7fca283},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xeff94506},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdff28a0c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xbfe51418},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7fca2831},
+ {0x61, 4, 8, 16, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff945063},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xff28a0c6},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x71, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000038},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0x67, 4, 0, 0, 0x00000018},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0x71, 4, 6, 17, 0x00000000},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0x71, 4, 6, 18, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0x57, 4, 0, 0, 0x00000100},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0x71, 4, 6, 19, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x00000001},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x71, 4, 6, 20, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 21, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0x67, 4, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfe51418c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfca28319},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf9450633},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf28a0c67},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe51418ce},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca28319d},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9450633b},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28a0c676},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x51418ced},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa28319db},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x450633b6},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8a0c676c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1418ced8},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x28319db1},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x50633b63},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0x71, 3, 6, 22, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa0c676c6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x418ced8d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8319db1a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0633b634},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x0c676c68},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x18ced8d1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x319db1a3},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x633b6347},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc676c68f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8ced8d1f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x19db1a3e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x33b6347d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x676c68fa},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xced8d1f4},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9db1a3e9},
+ {0x61, 3, 8, 20, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3b6347d2},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x76c68fa5},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xed8d1f4a},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0xdb1a3e94},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb6347d28},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6c68fa51},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd8d1f4a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb1a3e946},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6347d28d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc68fa51a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d1f4a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1a3e946b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x347d28d7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x68fa51ae},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1f4a35c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa3e946b9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x47d28d73},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8fa51ae7},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1f4a35cf},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3e946b9e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7d28d73c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xfa51ae78},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf4a35cf1},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe946b9e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd28d73c7},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0x71, 3, 6, 23, 0x00000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa51ae78e},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4a35cf1c},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x946b9e38},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x28d73c71},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x51ae78e3},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35cf1c6},
{0xbf, 4, 3, 0, 0x00000000},
{0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b9e38d},
+ {0x61, 4, 8, 24, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d73c71b},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ae78e36},
+ {0xc7, 4, 0, 0, 0x00000020},
{0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1177, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x05, 0, 0, 1175, 0x00000000},
- {0x0f, 6, 1, 0, 0x00000000},
- {0xb7, 7, 0, 0, 0x00000000},
- {0xbf, 1, 6, 0, 0x00000000},
- {0x07, 1, 0, 0, 0x0000002c},
- {0x2d, 1, 9, 1202, 0x00000000},
- {0x61, 4, 6, 8, 0x00000000},
- {0xbf, 1, 4, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000038},
- {0xc7, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x0000001f},
- {0x57, 1, 0, 0, 0x2cc681d1},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35cf1c6c},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6b9e38d9},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000040},
- {0xb7, 2, 0, 0, 0x00000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x598d03a2},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd73c71b2},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000020},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb31a0745},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xae78e364},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000010},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x66340e8a},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5cf1c6c9},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000008},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcc681d15},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb9e38d92},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000004},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x98d03a2b},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x73c71b25},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000002},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31a07456},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe78e364b},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6340e8ad},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcf1c6c96},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00800000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9e38d92c},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00400000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3c71b259},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00200000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x78e364b2},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00100000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf1c6c964},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00080000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe38d92c9},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00040000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc71b2593},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00020000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8e364b27},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00010000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1c6c964e},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00008000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc681d15b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x38d92c9c},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00004000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d03a2b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x71b25938},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00002000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a07456f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xe364b270},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00001000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x340e8ade},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc6c964e0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000800},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x681d15bd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x8d92c9c0},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000400},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd03a2b7b},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x1b259380},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000200},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa07456f6},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x364b2700},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x40e8aded},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6c964e01},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd92c9c03},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb2593807},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x64b2700f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xc964e01e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x92c9c03d},
+ {0x61, 3, 8, 28, 0x00000000},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2593807a},
+ {0xdc, 3, 0, 0, 0x00000040},
+ {0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4b2700f4},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x964e01e8},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2c9c03d1},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 5, 7, 0, 0x00000000},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x40000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x593807a3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x20000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xb2700f46},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x10000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x64e01e8d},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x08000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc9c03d1a},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x04000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x93807a35},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x02000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x2700f46b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x01000000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x4e01e8d6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00800000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x9c03d1ad},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00400000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3807a35b},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00200000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x700f46b6},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00100000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe01e8d6c},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00080000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xc03d1ad9},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00040000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x807a35b3},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00020000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x00f46b66},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00010000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x01e8d6cc},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00008000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x03d1ad99},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00004000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x07a35b32},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00002000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x0f46b665},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00001000},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1e8d6cca},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000800},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x3d1ad994},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000400},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x7a35b328},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000200},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xf46b6651},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000100},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xe8d6cca2},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000080},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd1ad9944},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000040},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xa35b3289},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000020},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x46b66512},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000010},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x8d6cca25},
+ {0xbf, 4, 3, 0, 0x00000000},
+ {0x57, 4, 0, 0, 0x00000008},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x1ad9944a},
+ {0x61, 4, 8, 32, 0x00000000},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000004},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x35b32894},
+ {0xdc, 4, 0, 0, 0x00000040},
+ {0xbf, 6, 3, 0, 0x00000000},
+ {0x57, 6, 0, 0, 0x00000002},
+ {0x15, 6, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0x6b665129},
+ {0xc7, 4, 0, 0, 0x00000020},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 5, 0, 0, 0xd6cca253},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xa7, 7, 0, 0, 0xad9944a7},
+ {0x6d, 2, 4, 1, 0x00000000},
+ {0xbf, 7, 5, 0, 0x00000000},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x40000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5b32894f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x20000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb665129f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x10000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x6cca253e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x08000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xd9944a7d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x04000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xb32894fb},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x02000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x665129f6},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x01000000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xcca253ec},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x81d15bdb},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9944a7d9},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03a2b7b7},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x32894fb2},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07456f6f},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x65129f65},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0e8adedf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xca253eca},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1d15bdbf},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x944a7d95},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3a2b7b7e},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x2894fb2a},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7456f6fd},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x5129f655},
{0xbf, 3, 4, 0, 0x00000000},
{0x57, 3, 0, 0, 0x00010000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8adedfa},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa253ecab},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00008000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x44a7d956},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00004000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x894fb2ac},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00002000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x129f6558},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00001000},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x253ecab1},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000800},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4a7d9563},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000400},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x94fb2ac7},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000200},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x29f6558f},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000100},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x53ecab1e},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000080},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xa7d9563d},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000040},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x4fb2ac7a},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000020},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x9f6558f5},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000010},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x3ecab1ea},
+ {0xbf, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x00000008},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0x7d9563d5},
+ {0x61, 3, 8, 36, 0x00000000},
{0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0xb7, 3, 0, 0, 0xffffffff},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd15bdbf4},
+ {0x57, 5, 0, 0, 0x00000004},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xfb2ac7ab},
+ {0xdc, 3, 0, 0, 0x00000040},
{0xbf, 5, 4, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000002},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xf6558f56},
+ {0xc7, 3, 0, 0, 0x00000020},
+ {0x57, 4, 0, 0, 0x00000001},
+ {0x15, 4, 0, 1, 0x00000000},
+ {0xa7, 7, 0, 0, 0xecab1eac},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd9563d59},
+ {0x6d, 2, 3, 1, 0x00000000},
+ {0xbf, 4, 7, 0, 0x00000000},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa2b7b7e9},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb2ac7ab2},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x456f6fd3},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x79, 6, 10, -56, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6558f564},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8adedfa7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xcab1eac8},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x15bdbf4f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9563d590},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2b7b7e9e},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x2ac7ab20},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56f6fd3d},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xadedfa7b},
- {0x61, 4, 6, 12, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x558f5641},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x01000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab1eac83},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00800000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x563d5906},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00400000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac7ab20c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00200000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x58f56418},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00100000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb1eac831},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00080000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x63d59063},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00040000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc7ab20c7},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00020000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x8f56418f},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00010000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x1eac831e},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00008000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x3d59063c},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00004000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x7ab20c78},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00002000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xf56418f0},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00001000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xeac831e1},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000800},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xd59063c2},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000400},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xab20c784},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000200},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x56418f09},
+ {0xbf, 5, 3, 0, 0x00000000},
+ {0x57, 5, 0, 0, 0x00000100},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xac831e12},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5bdbf4f7},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x59063c25},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7b7e9ef},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xb20c784b},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6f6fd3df},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x6418f097},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdedfa7bf},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0xc831e12f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbdbf4f7f},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x9063c25f},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7b7e9eff},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x20c784be},
+ {0xbf, 5, 3, 0, 0x00000000},
{0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6fd3dff},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xedfa7bfe},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdbf4f7fc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb7e9eff9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6fd3dff2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdfa7bfe5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbf4f7fca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7e9eff94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfd3dff28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa7bfe51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4f7fca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe9eff945},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd3dff28a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7bfe514},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4f7fca28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9eff9450},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3dff28a0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7bfe5141},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf7fca283},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeff94506},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdff28a0c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbfe51418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7fca2831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff945063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff28a0c6},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe51418c},
- {0x61, 4, 6, 16, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfca28319},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9450633},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf28a0c67},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe51418ce},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca28319d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9450633b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28a0c676},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51418ced},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa28319db},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x450633b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8a0c676c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1418ced8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28319db1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x50633b63},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa0c676c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418ced8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8319db1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0633b634},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c676c68},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18ced8d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x319db1a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x633b6347},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc676c68f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8ced8d1f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x19db1a3e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x33b6347d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x676c68fa},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xced8d1f4},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9db1a3e9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3b6347d2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x76c68fa5},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xed8d1f4a},
- {0x61, 4, 6, 20, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xdb1a3e94},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb6347d28},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c68fa51},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd8d1f4a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1a3e946},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6347d28d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc68fa51a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d1f4a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1a3e946b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x347d28d7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x68fa51ae},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1f4a35c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa3e946b9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x47d28d73},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8fa51ae7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1f4a35cf},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3e946b9e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d28d73c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfa51ae78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf4a35cf1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe946b9e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd28d73c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa51ae78e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a35cf1c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x946b9e38},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x28d73c71},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x51ae78e3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35cf1c6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b9e38d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d73c71b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ae78e36},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35cf1c6c},
- {0x61, 4, 6, 24, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b9e38d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd73c71b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xae78e364},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5cf1c6c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb9e38d92},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x73c71b25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe78e364b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcf1c6c96},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9e38d92c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c71b259},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x78e364b2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf1c6c964},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe38d92c9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc71b2593},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8e364b27},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1c6c964e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x38d92c9c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x71b25938},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe364b270},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc6c964e0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d92c9c0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1b259380},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x364b2700},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6c964e01},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd92c9c03},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2593807},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64b2700f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc964e01e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x92c9c03d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2593807a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4b2700f4},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x964e01e8},
- {0x61, 4, 6, 28, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2c9c03d1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x593807a3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2700f46},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x64e01e8d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc9c03d1a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x93807a35},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2700f46b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4e01e8d6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9c03d1ad},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3807a35b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x700f46b6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe01e8d6c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc03d1ad9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x807a35b3},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x00f46b66},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x01e8d6cc},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x03d1ad99},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x07a35b32},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0f46b665},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e8d6cca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d1ad994},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7a35b328},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf46b6651},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe8d6cca2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd1ad9944},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa35b3289},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x46b66512},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8d6cca25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1ad9944a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x35b32894},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6b665129},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd6cca253},
- {0x61, 4, 6, 32, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xad9944a7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5b32894f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb665129f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6cca253e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9944a7d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb32894fb},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x665129f6},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcca253ec},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9944a7d9},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x32894fb2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x65129f65},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xca253eca},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x944a7d95},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2894fb2a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5129f655},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa253ecab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x44a7d956},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x894fb2ac},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x129f6558},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x253ecab1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4a7d9563},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x94fb2ac7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x29f6558f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x53ecab1e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000020},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xa7d9563d},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4fb2ac7a},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9f6558f5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3ecab1ea},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7d9563d5},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfb2ac7ab},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf6558f56},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xecab1eac},
- {0x61, 4, 6, 36, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000080},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd9563d59},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000040},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb2ac7ab2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000020},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6558f564},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000010},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcab1eac8},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000008},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9563d590},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000004},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2ac7ab20},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000002},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x558f5641},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000001},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab1eac83},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00008000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x563d5906},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00004000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac7ab20c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00002000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x58f56418},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00001000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb1eac831},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000800},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63d59063},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000400},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc7ab20c7},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000200},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f56418f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00000100},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1eac831e},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00800000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3d59063c},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00400000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7ab20c78},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00200000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf56418f0},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00100000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xeac831e1},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00080000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xd59063c2},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00040000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xab20c784},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00020000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x56418f09},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x00010000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xac831e12},
- {0xbf, 5, 4, 0, 0x00000000},
+ {0x15, 5, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x418f097c},
+ {0x57, 3, 0, 0, 0x00000001},
+ {0x15, 3, 0, 1, 0x00000000},
+ {0xa7, 4, 0, 0, 0x831e12f9},
+ {0xbf, 5, 1, 0, 0x00000000},
{0x67, 5, 0, 0, 0x00000020},
{0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x59063c25},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x40000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xb20c784b},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x20000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x6418f097},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x10000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc831e12f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x08000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9063c25f},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x04000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x20c784be},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x57, 5, 0, 0, 0x02000000},
- {0x1d, 5, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x418f097c},
- {0x57, 4, 0, 0, 0x01000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x831e12f9},
- {0x71, 4, 6, 40, 0x00000000},
- {0x67, 4, 0, 0, 0x00000008},
- {0x71, 5, 6, 41, 0x00000000},
- {0x4f, 4, 5, 0, 0x00000000},
- {0xbf, 5, 4, 0, 0x00000000},
- {0x67, 5, 0, 0, 0x00000030},
- {0xc7, 5, 0, 0, 0x00000020},
- {0x6d, 5, 3, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x063c25f3},
- {0x67, 4, 0, 0, 0x00000010},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x40000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x0c784be7},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x20000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x18f097cf},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x10000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x31e12f9f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x08000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x63c25f3f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x04000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc784be7f},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x02000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x8f097cff},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x01000000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x1e12f9fe},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00800000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3c25f3fc},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00400000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x784be7f8},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00200000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf097cff0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00100000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe12f9fe0},
- {0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00080000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xc25f3fc1},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00040000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x84be7f83},
+ {0xa7, 3, 0, 0, 0x063c25f3},
+ {0x6d, 2, 5, 1, 0x00000000},
{0xbf, 3, 4, 0, 0x00000000},
- {0x57, 3, 0, 0, 0x00020000},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x097cff07},
- {0x57, 4, 0, 0, 0x00010000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x12f9fe0f},
- {0x71, 3, 6, 42, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00008000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x25f3fc1f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00004000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x4be7f83f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00002000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x97cff07f},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00001000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x2f9fe0fe},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000800},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x5f3fc1fd},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000400},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xbe7f83fb},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000200},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7cff07f7},
- {0x57, 3, 0, 0, 0x00000100},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf9fe0fee},
- {0x71, 3, 6, 43, 0x00000000},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000080},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xf3fc1fdc},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000040},
- {0x79, 5, 10, -56, 0x00000000},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xe7f83fb8},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000020},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xcff07f70},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000010},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x9fe0fee1},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000008},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x3fc1fdc2},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000004},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0x7f83fb85},
- {0xbf, 4, 3, 0, 0x00000000},
- {0x57, 4, 0, 0, 0x00000002},
- {0x1d, 4, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xff07f70a},
- {0x57, 3, 0, 0, 0x00000001},
- {0x1d, 3, 2, 1, 0x00000000},
- {0xa7, 1, 0, 0, 0xfe0fee15},
- {0x71, 2, 0, 201, 0x00000000},
- {0x67, 2, 0, 0, 0x00000008},
- {0x71, 3, 0, 200, 0x00000000},
- {0x4f, 2, 3, 0, 0x00000000},
- {0x71, 3, 0, 203, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
- {0x71, 4, 0, 202, 0x00000000},
- {0x4f, 3, 4, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
- {0x4f, 3, 2, 0, 0x00000000},
- {0x67, 1, 0, 0, 0x00000020},
- {0x77, 1, 0, 0, 0x00000020},
{0xbf, 2, 1, 0, 0x00000000},
- {0x3f, 2, 3, 0, 0x00000000},
- {0x2f, 2, 3, 0, 0x00000000},
- {0x1f, 1, 2, 0, 0x00000000},
- {0x57, 1, 0, 0, 0x0000000f},
- {0x67, 1, 0, 0, 0x00000002},
- {0x0f, 0, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x40000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x0c784be7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x20000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x18f097cf},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x10000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x31e12f9f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x08000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x63c25f3f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x04000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc784be7f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x02000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x8f097cff},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x01000000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x1e12f9fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00800000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3c25f3fc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00400000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x784be7f8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00200000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf097cff0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00100000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe12f9fe0},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00080000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xc25f3fc1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00040000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x84be7f83},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00020000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x097cff07},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00010000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x12f9fe0f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00008000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x25f3fc1f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00004000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x4be7f83f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00002000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x97cff07f},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00001000},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x2f9fe0fe},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000800},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x5f3fc1fd},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000400},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xbe7f83fb},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000200},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7cff07f7},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000100},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf9fe0fee},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000080},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xf3fc1fdc},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000040},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xe7f83fb8},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000020},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xcff07f70},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000010},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x9fe0fee1},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000008},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x3fc1fdc2},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000004},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0x7f83fb85},
+ {0xbf, 2, 1, 0, 0x00000000},
+ {0x57, 2, 0, 0, 0x00000002},
+ {0x15, 2, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xff07f70a},
+ {0x57, 1, 0, 0, 0x00000001},
+ {0x15, 1, 0, 1, 0x00000000},
+ {0xa7, 3, 0, 0, 0xfe0fee15},
+ {0x71, 1, 0, 201, 0x00000000},
+ {0x67, 1, 0, 0, 0x00000008},
+ {0x71, 2, 0, 200, 0x00000000},
+ {0x4f, 1, 2, 0, 0x00000000},
+ {0x71, 2, 0, 202, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
+ {0x71, 4, 0, 203, 0x00000000},
+ {0x67, 4, 0, 0, 0x00000018},
+ {0x4f, 4, 2, 0, 0x00000000},
+ {0x4f, 4, 1, 0, 0x00000000},
+ {0x67, 3, 0, 0, 0x00000020},
+ {0x77, 3, 0, 0, 0x00000020},
+ {0x9f, 3, 4, 0, 0x00000000},
+ {0x57, 3, 0, 0, 0x0000000f},
+ {0x67, 3, 0, 0, 0x00000002},
+ {0x0f, 0, 3, 0, 0x00000000},
{0x71, 1, 0, 137, 0x00000000},
{0x67, 1, 0, 0, 0x00000008},
{0x71, 2, 0, 136, 0x00000000},
{0x4f, 1, 2, 0, 0x00000000},
{0x71, 2, 0, 138, 0x00000000},
+ {0x67, 2, 0, 0, 0x00000010},
{0x71, 3, 0, 139, 0x00000000},
- {0x67, 3, 0, 0, 0x00000008},
+ {0x67, 3, 0, 0, 0x00000018},
{0x4f, 3, 2, 0, 0x00000000},
- {0x67, 3, 0, 0, 0x00000010},
{0x4f, 3, 1, 0, 0x00000000},
{0x07, 3, 0, 0, 0x7cafe800},
- {0x63, 5, 3, 52, 0x00000000},
+ {0x63, 6, 3, 52, 0x00000000},
{0xb7, 7, 0, 0, 0x00000001},
{0xbf, 0, 7, 0, 0x00000000},
{0x95, 0, 0, 0, 0x00000000},
--
2.41.0
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
` (2 preceding siblings ...)
2023-11-01 18:02 ` [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
@ 2023-11-02 15:11 ` Ferruh Yigit
2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 15:21 ` Ferruh Yigit
2023-11-03 3:57 ` Ferruh Yigit
5 siblings, 1 reply; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 15:11 UTC (permalink / raw)
To: Stephen Hemminger, dev; +Cc: techboard
On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> Update the documentation and tools to build the BPF program used by
> tap device. And apply fix to the RSS algorithm to correctly
> handle non-IP protocols.
>
> v6 - cosmetic improvements to extract process
> add better boilerplate and fix python lint warnings
>
> Madhuker Mythri (1):
> net/tap: Fixed RSS algorithm to support fragmented packets
>
> Stephen Hemminger (2):
> net/tap: support infrastructure to build the BPF filter
> net/tap; rebuild and update the BPF flow program
>
Thanks Stephen for fixing this.
But considering it was broken for a while and nobody complained, and
initial developers seems lost interest and it is relatively hard code to
maintain, do we still want to keep this support.
Can we probe again motivation and benefit of eBPF support in tap PMD,
and if it is still relevant?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-01 18:02 ` [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
@ 2023-11-02 15:13 ` Ferruh Yigit
2023-11-02 16:53 ` Stephen Hemminger
2023-11-02 21:00 ` Ferruh Yigit
1 sibling, 1 reply; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 15:13 UTC (permalink / raw)
To: Stephen Hemminger, dev
On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> Rebuild with commit
> c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
> 1 file changed, 1503 insertions(+), 1456 deletions(-)
Is how to generate this header documented somewhere, I missed it?
Thanks,
ferruh
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
` (3 preceding siblings ...)
2023-11-02 15:11 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Ferruh Yigit
@ 2023-11-02 15:21 ` Ferruh Yigit
2023-11-03 3:57 ` Ferruh Yigit
5 siblings, 0 replies; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 15:21 UTC (permalink / raw)
To: Ophir Munk, Pascal Mazon; +Cc: Thomas Monjalon, Stephen Hemminger, dev
On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> Update the documentation and tools to build the BPF program used by
> tap device. And apply fix to the RSS algorithm to correctly
> handle non-IP protocols.
>
> v6 - cosmetic improvements to extract process
> add better boilerplate and fix python lint warnings
>
> Madhuker Mythri (1):
> net/tap: Fixed RSS algorithm to support fragmented packets
>
> Stephen Hemminger (2):
> net/tap: support infrastructure to build the BPF filter
> net/tap; rebuild and update the BPF flow program
>
Hi Ophir, Pascal,
Is there any chance you can help testing this patchset?
Thanks,
ferruh
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-02 15:11 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Ferruh Yigit
@ 2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 18:35 ` Ferruh Yigit
0 siblings, 2 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-02 16:52 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev, techboard
On Thu, 2 Nov 2023 15:11:10 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> > Stephen Hemminger (2):
> > net/tap: support infrastructure to build the BPF filter
> > net/tap; rebuild and update the BPF flow program
> >
>
> Thanks Stephen for fixing this.
>
>
> But considering it was broken for a while and nobody complained, and
> initial developers seems lost interest and it is relatively hard code to
> maintain, do we still want to keep this support.
>
> Can we probe again motivation and benefit of eBPF support in tap PMD,
> and if it is still relevant?
The use case was allowing an rte_flow match to a set of queues and have
the BPF program do RSS across set of rte_flow queues.
Simple non-rte_flow usage of TAP doesn't need this in most cases.
The kernel will do RSS already to multi-queue tap.
The motivation was to allow use of rte_flow in the failsafe/tap/mlx model.
This is the legacy model for use in Hyper-V/Azure. Not aware of any
application using this.
The bug fix came from Oracle, perhaps they have more context.
This fix set came from looking at old unmerged but ok patches in patchwork.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-02 16:52 ` Stephen Hemminger
@ 2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 18:35 ` Ferruh Yigit
1 sibling, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-02 16:52 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev, techboard
On Thu, 2 Nov 2023 15:11:10 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> > Stephen Hemminger (2):
> > net/tap: support infrastructure to build the BPF filter
> > net/tap; rebuild and update the BPF flow program
> >
>
> Thanks Stephen for fixing this.
>
>
> But considering it was broken for a while and nobody complained, and
> initial developers seems lost interest and it is relatively hard code to
> maintain, do we still want to keep this support.
>
> Can we probe again motivation and benefit of eBPF support in tap PMD,
> and if it is still relevant?
The use case was allowing an rte_flow match to a set of queues and have
the BPF program do RSS across set of rte_flow queues.
Simple non-rte_flow usage of TAP doesn't need this in most cases.
The kernel will do RSS already to multi-queue tap.
The motivation was to allow use of rte_flow in the failsafe/tap/mlx model.
This is the legacy model for use in Hyper-V/Azure. Not aware of any
application using this.
The bug fix came from Oracle, perhaps they have more context.
This fix set came from looking at old unmerged but ok patches in patchwork.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-02 15:13 ` Ferruh Yigit
@ 2023-11-02 16:53 ` Stephen Hemminger
2023-11-02 18:25 ` Ferruh Yigit
0 siblings, 1 reply; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-02 16:53 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev
On Thu, 2 Nov 2023 15:13:57 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> > Rebuild with commit
> > c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
> >
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
> > 1 file changed, 1503 insertions(+), 1456 deletions(-)
>
> Is how to generate this header documented somewhere, I missed it?
>
> Thanks,
> ferruh
See first patch, it updates process (new tool) and documentation.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-02 16:53 ` Stephen Hemminger
@ 2023-11-02 18:25 ` Ferruh Yigit
0 siblings, 0 replies; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 18:25 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev
On 11/2/2023 4:53 PM, Stephen Hemminger wrote:
> On Thu, 2 Nov 2023 15:13:57 +0000
> Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
>> On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
>>> Rebuild with commit
>>> c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
>>>
>>> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>>> ---
>>> drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
>>> 1 file changed, 1503 insertions(+), 1456 deletions(-)
>>
>> Is how to generate this header documented somewhere, I missed it?
>>
>> Thanks,
>> ferruh
>
> See first patch, it updates process (new tool) and documentation.
>
Saw it now, thanks.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 16:52 ` Stephen Hemminger
@ 2023-11-02 18:35 ` Ferruh Yigit
2023-11-02 18:39 ` Stephen Hemminger
1 sibling, 1 reply; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 18:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: dev, techboard
On 11/2/2023 4:52 PM, Stephen Hemminger wrote:
> On Thu, 2 Nov 2023 15:11:10 +0000
> Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
>>> Stephen Hemminger (2):
>>> net/tap: support infrastructure to build the BPF filter
>>> net/tap; rebuild and update the BPF flow program
>>>
>>
>> Thanks Stephen for fixing this.
>>
>>
>> But considering it was broken for a while and nobody complained, and
>> initial developers seems lost interest and it is relatively hard code to
>> maintain, do we still want to keep this support.
>>
>> Can we probe again motivation and benefit of eBPF support in tap PMD,
>> and if it is still relevant?
>
>
> The use case was allowing an rte_flow match to a set of queues and have
> the BPF program do RSS across set of rte_flow queues.
> Simple non-rte_flow usage of TAP doesn't need this in most cases.
> The kernel will do RSS already to multi-queue tap.
>
> The motivation was to allow use of rte_flow in the failsafe/tap/mlx model.
> This is the legacy model for use in Hyper-V/Azure. Not aware of any
> application using this.
> The bug fix came from Oracle, perhaps they have more context.
>
> This fix set came from looking at old unmerged but ok patches in patchwork.
>
Thanks for clarification.
I am for getting this set and at least fix tap ebpf for this release.
But does it make sense to discuss deprecation of this feature, if there
is no more usecase anymore perhaps we can plan removing it?
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-02 18:35 ` Ferruh Yigit
@ 2023-11-02 18:39 ` Stephen Hemminger
0 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-02 18:39 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev, techboard
On Thu, 2 Nov 2023 18:35:08 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> > The motivation was to allow use of rte_flow in the failsafe/tap/mlx model.
> > This is the legacy model for use in Hyper-V/Azure. Not aware of any
> > application using this.
> > The bug fix came from Oracle, perhaps they have more context.
> >
> > This fix set came from looking at old unmerged but ok patches in patchwork.
> >
>
> Thanks for clarification.
>
> I am for getting this set and at least fix tap ebpf for this release.
>
>
> But does it make sense to discuss deprecation of this feature, if there
> is no more usecase anymore perhaps we can plan removing it?
Proving a negative is impossible, especially since most users and NFV do
not read this list.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-01 18:02 ` [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2023-11-02 15:13 ` Ferruh Yigit
@ 2023-11-02 21:00 ` Ferruh Yigit
2023-11-02 21:56 ` Stephen Hemminger
1 sibling, 1 reply; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-02 21:00 UTC (permalink / raw)
To: Stephen Hemminger, dev
On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> Rebuild with commit
> c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
> 1 file changed, 1503 insertions(+), 1456 deletions(-)
>
When I generate the header file, it is different than the one in this
commit, is this expected?
And what would you think to merge this patch with previous one, since
this is generated with the changes in previous patch, keeping them both
in same patch looks reasonable to me.
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program
2023-11-02 21:00 ` Ferruh Yigit
@ 2023-11-02 21:56 ` Stephen Hemminger
0 siblings, 0 replies; 34+ messages in thread
From: Stephen Hemminger @ 2023-11-02 21:56 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dev
On Thu, 2 Nov 2023 21:00:31 +0000
Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> > Rebuild with commit
> > c0335cc197 (tap; rebuild and update the BPF flow program, 2023-10-31)
> >
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---
> > drivers/net/tap/tap_bpf_insns.h | 2959 ++++++++++++++++---------------
> > 1 file changed, 1503 insertions(+), 1456 deletions(-)
> >
>
> When I generate the header file, it is different than the one in this
> commit, is this expected?
>
Output depends on compiler version of clang. I built using clang 16.0.6 on
Fedora.
> And what would you think to merge this patch with previous one, since
> this is generated with the changes in previous patch, keeping them both
> in same patch looks reasonable to me.
That would make sense
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [PATCH v6 0/3] net/tap: build and fix for BPF program
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
` (4 preceding siblings ...)
2023-11-02 15:21 ` Ferruh Yigit
@ 2023-11-03 3:57 ` Ferruh Yigit
5 siblings, 0 replies; 34+ messages in thread
From: Ferruh Yigit @ 2023-11-03 3:57 UTC (permalink / raw)
To: Stephen Hemminger, dev
On 11/1/2023 6:02 PM, Stephen Hemminger wrote:
> Update the documentation and tools to build the BPF program used by
> tap device. And apply fix to the RSS algorithm to correctly
> handle non-IP protocols.
>
> v6 - cosmetic improvements to extract process
> add better boilerplate and fix python lint warnings
>
> Madhuker Mythri (1):
> net/tap: Fixed RSS algorithm to support fragmented packets
>
> Stephen Hemminger (2):
> net/tap: support infrastructure to build the BPF filter
> net/tap; rebuild and update the BPF flow program
>
For series,
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Patch 2/3 & 3/3 squashed while merging,
Series applied to dpdk-next-net/main, thanks.
^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2023-11-03 3:57 UTC | newest]
Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-16 21:25 [RFC] MAINTAINERS: add status information Stephen Hemminger
2023-07-19 16:07 ` [PATCH v2] " Stephen Hemminger
2023-07-20 17:21 ` [PATCH v3] " Stephen Hemminger
2023-07-20 17:45 ` [PATCH v2 ] tap: fix build of TAP BPF program Stephen Hemminger
2023-07-20 23:25 ` [PATCH v3] " Stephen Hemminger
2023-07-21 13:05 ` Ferruh Yigit
2023-07-21 15:43 ` Stephen Hemminger
2023-07-23 2:21 ` Stephen Hemminger
2023-07-26 16:31 ` Stephen Hemminger
2023-07-22 16:32 ` [PATCH v4] " Stephen Hemminger
2023-10-31 22:08 ` [PATCH 0/3] net/tap: update and fix the " Stephen Hemminger
2023-10-31 22:08 ` [PATCH 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-10-31 22:08 ` [PATCH 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
2023-10-31 22:08 ` [PATCH 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
2023-10-31 22:42 ` [PATCH v5 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 1/3] net/tap: support infrastructure to build the BPF filter Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 2/3] net/tap: Fixed RSS algorithm to support fragmented packets Stephen Hemminger
2023-11-01 18:02 ` [PATCH v6 3/3] net/tap; rebuild and update the BPF flow program Stephen Hemminger
2023-11-02 15:13 ` Ferruh Yigit
2023-11-02 16:53 ` Stephen Hemminger
2023-11-02 18:25 ` Ferruh Yigit
2023-11-02 21:00 ` Ferruh Yigit
2023-11-02 21:56 ` Stephen Hemminger
2023-11-02 15:11 ` [PATCH v6 0/3] net/tap: build and fix for BPF program Ferruh Yigit
2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 16:52 ` Stephen Hemminger
2023-11-02 18:35 ` Ferruh Yigit
2023-11-02 18:39 ` Stephen Hemminger
2023-11-02 15:21 ` Ferruh Yigit
2023-11-03 3:57 ` Ferruh Yigit
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).