It seems that when it comes to machine learning on embedded devices that I discover something new almost every day. I just got a Nano RP2040 Connect and one of the featured tutorials is "Using the IMU Machine Learning Core Features". The Nano RP2040 Connect uses an LSM6DSOX IMU module. I was aware that ST IMUs have the capability to generate interrupts based on events such as free-fall, single-tap, and double-tap, but I hadn't heard of the Machine Learning Core feature that is available in the LSM6DSOX.
The Machine Learning Core allows you to use a trained model with the IMU to identify motion activities based on labeled data sets. That says that the IMU can identify activity without requiring an external processor as the more traditional implementation that I'm familiar with. That has inherent advantages in lower power and lower latency. The limitation is that the model is constrained to using decision-tree logic. Here is a link to the ST application note: https://www.st.com/resource/en/application_note/dm00563460-lsm6dsox-machine-learning-core-stmicroelectronics.pdf . The Machine Learning Core can be combined to work with a configurable Finite State Machine to increase the accuracy of the motion classification. As always, programming the MLC requires learning yet another tool, in this case, the Unico GUI which is provided by ST in Windows, Linux, and MacOSX versions.
The key to building an accurate decision-tree logic model is the same as other machine learning models - feature extraction from the training data sets. The maximum number of features that can be configured in the MLC is 31. A representative set of features that could be used is shown in the table:
The MLC blocks are shown below:
There is capability of adding inputs from additional sensors, e.g. a magnetometer.
Here is an example of how the decision-tree logic works:
On to try the demo .https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-imu-advanced
The demo is built using the Arduino IDE and uses the STM32duino X-NUCLEO-IKS01A3 library ("LSM6DSOXSensor.h") and the library example X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino.
There is a pre-built model file that is included "lsm6dsox_activity_recognition_for_mobile.h".
The only required change to the example program is to specify the correct interrupt pin for the Nano RP2040 Connect:
#define INT_1 INT_IMU
Nano_RP2040_Connect_LSM6DSOX_MLC.ino
/** ****************************************************************************** * @file X_NUCLEO_IKS01A3_LSM6DSOX_MLC.ino * @author SRA * @version V1.1.0 * @date March 2020 * @brief Arduino test application for the STMicrolectronics X-NUCLEO-IKS01A3 * MEMS Inertial and Environmental sensor expansion board. * This application makes use of C++ classes obtained from the C * components' drivers. ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT(c) 2020 STMicroelectronics</center></h2> * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** */ //NOTE: This example isn't compatible with Arduino Uno. //NOTE: For this example you need the STEVAL-MKI197V1 board connected to the DIL24 connector of the X-NUCLEO-IKS01A3 // Includes #include "LSM6DSOXSensor.h" #include "lsm6dsox_activity_recognition_for_mobile.h" #ifdef ARDUINO_SAM_DUE #define DEV_I2C Wire1 #elif defined(ARDUINO_ARCH_STM32) #define DEV_I2C Wire #elif defined(ARDUINO_ARCH_AVR) #define DEV_I2C Wire #else #define DEV_I2C Wire #endif #define SerialPort Serial #define INT_1 INT_IMU //Interrupts. volatile int mems_event = 0; // Components LSM6DSOXSensor AccGyr(&DEV_I2C, LSM6DSOX_I2C_ADD_L); // MLC ucf_line_t *ProgramPointer; int32_t LineCounter; int32_t TotalNumberOfLine; void INT1Event_cb(); void printMLCStatus(uint8_t status); void setup() { uint8_t mlc_out[8]; // Led. pinMode(LED_BUILTIN, OUTPUT); // Force INT1 of LSM6DSOX low in order to enable I2C pinMode(INT_1, OUTPUT); digitalWrite(INT_1, LOW); delay(200); // Initialize serial for output. SerialPort.begin(115200); // Initialize I2C bus. DEV_I2C.begin(); AccGyr.begin(); AccGyr.Enable_X(); AccGyr.Enable_G(); /* Feed the program to Machine Learning Core */ /* Activity Recognition Default program */ ProgramPointer = (ucf_line_t *)lsm6dsox_activity_recognition_for_mobile; TotalNumberOfLine = sizeof(lsm6dsox_activity_recognition_for_mobile) / sizeof(ucf_line_t); SerialPort.println("Activity Recognition for LSM6DSOX MLC"); SerialPort.print("UCF Number Line="); SerialPort.println(TotalNumberOfLine); for (LineCounter=0; LineCounter<TotalNumberOfLine; LineCounter++) { if(AccGyr.Write_Reg(ProgramPointer[LineCounter].address, ProgramPointer[LineCounter].data)) { SerialPort.print("Error loading the Program to LSM6DSOX at line: "); SerialPort.println(LineCounter); while(1) { // Led blinking. digitalWrite(LED_BUILTIN, HIGH); delay(250); digitalWrite(LED_BUILTIN, LOW); delay(250); } } } SerialPort.println("Program loaded inside the LSM6DSOX MLC"); //Interrupts. pinMode(INT_1, INPUT); attachInterrupt(INT_1, INT1Event_cb, RISING); /* We need to wait for a time window before having the first MLC status */ delay(3000); AccGyr.Get_MLC_Output(mlc_out); printMLCStatus(mlc_out[0]); } void loop() { if (mems_event) { mems_event=0; LSM6DSOX_MLC_Status_t status; AccGyr.Get_MLC_Status(&status); if (status.is_mlc1) { uint8_t mlc_out[8]; AccGyr.Get_MLC_Output(mlc_out); printMLCStatus(mlc_out[0]); } } } void INT1Event_cb() { mems_event = 1; } void printMLCStatus(uint8_t status) { switch(status) { case 0: SerialPort.println("Activity: Stationary"); break; case 1: SerialPort.println("Activity: Walking"); break; case 4: SerialPort.println("Activity: Jogging"); break; case 8: SerialPort.println("Activity: Biking"); break; case 12: SerialPort.println("Activity: Driving"); break; default: SerialPort.println("Activity: Unknown"); break; } }
lsm6dsox_activity_recognition_for_mobile.h
/* ****************************************************************************** * @file lsm6dsox_activity_recognition_for_mobile.h * @author Sensors Software Solution Team * @brief This file contains the configuration for lsm6dsox_activity_recognition_for_mobile. * ****************************************************************************** * @attention * * <h2><center>© Copyright (c) 2019 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H #define LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include <stdint.h> #ifndef MEMS_UCF_SHARED_TYPES #define MEMS_UCF_SHARED_TYPES /** Common data block definition **/ typedef struct { uint8_t address; uint8_t data; } ucf_line_t; #endif /* MEMS_UCF_SHARED_TYPES */ /** Configuration array generated from Unico Tool **/ const ucf_line_t lsm6dsox_activity_recognition_for_mobile[] = { {.address = 0x10, .data = 0x00,}, {.address = 0x11, .data = 0x00,}, {.address = 0x01, .data = 0x80,}, {.address = 0x05, .data = 0x00,}, {.address = 0x17, .data = 0x40,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xEA,}, {.address = 0x09, .data = 0x08,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xEB,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xEC,}, {.address = 0x09, .data = 0x16,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xED,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xEE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xEF,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xF0,}, {.address = 0x09, .data = 0x0A,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xF2,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFA,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFB,}, {.address = 0x09, .data = 0x03,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFC,}, {.address = 0x09, .data = 0x42,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFD,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFE,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x11,}, {.address = 0x08, .data = 0xFF,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x3C,}, {.address = 0x09, .data = 0x07,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x3D,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x3E,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x3F,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x40,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x41,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x42,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x43,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x44,}, {.address = 0x09, .data = 0x35,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x45,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x46,}, {.address = 0x09, .data = 0x2E,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x47,}, {.address = 0x09, .data = 0x2F,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x48,}, {.address = 0x09, .data = 0x0F,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x49,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4B,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4D,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4E,}, {.address = 0x09, .data = 0xD7,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x4F,}, {.address = 0x09, .data = 0x22,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x50,}, {.address = 0x09, .data = 0xD7,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x51,}, {.address = 0x09, .data = 0x26,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x52,}, {.address = 0x09, .data = 0xD7,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x53,}, {.address = 0x09, .data = 0x22,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x54,}, {.address = 0x09, .data = 0x97,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x55,}, {.address = 0x09, .data = 0xBE,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x56,}, {.address = 0x09, .data = 0x9B,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x57,}, {.address = 0x09, .data = 0x39,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x58,}, {.address = 0x09, .data = 0x3F,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x59,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5B,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5D,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5E,}, {.address = 0x09, .data = 0x01,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x5F,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x60,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x61,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x62,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x63,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x64,}, {.address = 0x09, .data = 0x01,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x65,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x66,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x67,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x68,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x69,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6A,}, {.address = 0x09, .data = 0x01,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6B,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6D,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6E,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x6F,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x70,}, {.address = 0x09, .data = 0x02,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x71,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x72,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x73,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x74,}, {.address = 0x09, .data = 0x02,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x75,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x76,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x77,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x78,}, {.address = 0x09, .data = 0x02,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x79,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7B,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7C,}, {.address = 0x09, .data = 0x03,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7D,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7E,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x7F,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x80,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x81,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x82,}, {.address = 0x09, .data = 0x03,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x83,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x84,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x85,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x86,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x87,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x88,}, {.address = 0x09, .data = 0x03,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x89,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8B,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8D,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8E,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x8F,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x90,}, {.address = 0x09, .data = 0x66,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x91,}, {.address = 0x09, .data = 0x36,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x92,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x93,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x94,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x95,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x96,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x97,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x98,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x99,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9A,}, {.address = 0x09, .data = 0x04,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9B,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9C,}, {.address = 0x09, .data = 0x7B,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9D,}, {.address = 0x09, .data = 0x28,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9E,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0x9F,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA1,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA2,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA3,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA5,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA6,}, {.address = 0x09, .data = 0x0A,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA7,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xA9,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAA,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAB,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAD,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xAF,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB1,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB2,}, {.address = 0x09, .data = 0x0A,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB3,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB5,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB6,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB7,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xB9,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBA,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBB,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBD,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBE,}, {.address = 0x09, .data = 0x0A,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xBF,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC1,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC2,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC3,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC5,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC6,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC7,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xC9,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCA,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCB,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCD,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xCF,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD1,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD2,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD3,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD5,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD6,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD7,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xD9,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDA,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDB,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDD,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xDF,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE1,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE2,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE3,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE5,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE6,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE7,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xE9,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xEA,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xEB,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xEC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xED,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xEE,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xEF,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF0,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF1,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF2,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF3,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF4,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF5,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF6,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF7,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF8,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xF9,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFA,}, {.address = 0x09, .data = 0x11,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFB,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFC,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFD,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x31,}, {.address = 0x08, .data = 0xFF,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x00,}, {.address = 0x09, .data = 0x11,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x01,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x02,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x03,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x04,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x05,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x06,}, {.address = 0x09, .data = 0x1F,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x07,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x42,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x43,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x44,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x45,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x46,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x47,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x48,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x49,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x4A,}, {.address = 0x09, .data = 0x35,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x4B,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x4C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x01, .data = 0x00,}, {.address = 0x12, .data = 0x00,}, {.address = 0x01, .data = 0x80,}, {.address = 0x17, .data = 0x40,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x4E,}, {.address = 0x09, .data = 0x34,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x4F,}, {.address = 0x09, .data = 0x2C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x50,}, {.address = 0x09, .data = 0x57,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x51,}, {.address = 0x09, .data = 0x82,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x52,}, {.address = 0x09, .data = 0xCB,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x53,}, {.address = 0x09, .data = 0x22,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x54,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x55,}, {.address = 0x09, .data = 0x85,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x56,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x57,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x58,}, {.address = 0x09, .data = 0x0E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x59,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5A,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5B,}, {.address = 0x09, .data = 0x27,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5C,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5D,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5E,}, {.address = 0x09, .data = 0x6E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x5F,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x60,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x61,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x62,}, {.address = 0x09, .data = 0x90,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x63,}, {.address = 0x09, .data = 0x52,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x64,}, {.address = 0x09, .data = 0x0D,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x65,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x66,}, {.address = 0x09, .data = 0x7C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x67,}, {.address = 0x09, .data = 0x2F,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x68,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x69,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6A,}, {.address = 0x09, .data = 0x29,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6B,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6C,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6D,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6E,}, {.address = 0x09, .data = 0xD5,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x6F,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x70,}, {.address = 0x09, .data = 0x90,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x71,}, {.address = 0x09, .data = 0xD2,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x72,}, {.address = 0x09, .data = 0xC9,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x73,}, {.address = 0x09, .data = 0x1A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x74,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x75,}, {.address = 0x09, .data = 0xC5,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x76,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x77,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x78,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x79,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7A,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7B,}, {.address = 0x09, .data = 0x1F,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7C,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7D,}, {.address = 0x09, .data = 0xA5,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7E,}, {.address = 0x09, .data = 0x0E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x7F,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x80,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x81,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x82,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x83,}, {.address = 0x09, .data = 0x4A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x84,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x85,}, {.address = 0x09, .data = 0xEE,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x86,}, {.address = 0x09, .data = 0xF1,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x87,}, {.address = 0x09, .data = 0x26,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x88,}, {.address = 0x09, .data = 0xF0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x89,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8B,}, {.address = 0x09, .data = 0x3E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8C,}, {.address = 0x09, .data = 0x12,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8D,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8E,}, {.address = 0x09, .data = 0x2C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x8F,}, {.address = 0x09, .data = 0x2D,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x90,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x91,}, {.address = 0x09, .data = 0xA9,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x92,}, {.address = 0x09, .data = 0x37,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x93,}, {.address = 0x09, .data = 0x19,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x94,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x95,}, {.address = 0x09, .data = 0xE5,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x96,}, {.address = 0x09, .data = 0x0D,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x97,}, {.address = 0x09, .data = 0xA5,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x98,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x99,}, {.address = 0x09, .data = 0xD3,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9A,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9B,}, {.address = 0x09, .data = 0x51,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9C,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9D,}, {.address = 0x09, .data = 0xEC,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9E,}, {.address = 0x09, .data = 0xD0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0x9F,}, {.address = 0x09, .data = 0x25,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA0,}, {.address = 0x09, .data = 0x36,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA1,}, {.address = 0x09, .data = 0x81,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA2,}, {.address = 0x09, .data = 0x23,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA3,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA4,}, {.address = 0x09, .data = 0x23,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA5,}, {.address = 0x09, .data = 0x92,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA6,}, {.address = 0x09, .data = 0x24,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA7,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA8,}, {.address = 0x09, .data = 0x22,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xA9,}, {.address = 0x09, .data = 0x89,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAA,}, {.address = 0x09, .data = 0x88,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAB,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAC,}, {.address = 0x09, .data = 0x1A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAD,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAE,}, {.address = 0x09, .data = 0x53,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xAF,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB0,}, {.address = 0x09, .data = 0x98,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB1,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB2,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB3,}, {.address = 0x09, .data = 0x50,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB4,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB5,}, {.address = 0x09, .data = 0xEC,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB6,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB7,}, {.address = 0x09, .data = 0x49,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB8,}, {.address = 0x09, .data = 0x20,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xB9,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBA,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBB,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBC,}, {.address = 0x09, .data = 0x1E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBD,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBE,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xBF,}, {.address = 0x09, .data = 0x48,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC0,}, {.address = 0x09, .data = 0xD8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC1,}, {.address = 0x09, .data = 0xCE,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC2,}, {.address = 0x09, .data = 0x2F,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC3,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC4,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC5,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC6,}, {.address = 0x09, .data = 0x20,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC7,}, {.address = 0x09, .data = 0x4C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC8,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xC9,}, {.address = 0x09, .data = 0xCE,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCA,}, {.address = 0x09, .data = 0xD6,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCB,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCC,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCD,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCE,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xCF,}, {.address = 0x09, .data = 0x54,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD0,}, {.address = 0x09, .data = 0x11,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD1,}, {.address = 0x09, .data = 0xC6,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD2,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD3,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD4,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD5,}, {.address = 0x09, .data = 0xEC,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD6,}, {.address = 0x09, .data = 0x35,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD7,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD8,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xD9,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDA,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDB,}, {.address = 0x09, .data = 0x2A,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDC,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDD,}, {.address = 0x09, .data = 0x89,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDE,}, {.address = 0x09, .data = 0x96,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xDF,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE0,}, {.address = 0x09, .data = 0x2E,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE1,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE2,}, {.address = 0x09, .data = 0x70,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE3,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE4,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE5,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE6,}, {.address = 0x09, .data = 0x70,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE7,}, {.address = 0x09, .data = 0x51,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE8,}, {.address = 0x09, .data = 0x2D,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xE9,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xEA,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xEB,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xEC,}, {.address = 0x09, .data = 0x2C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xED,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xEE,}, {.address = 0x09, .data = 0x5D,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xEF,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF0,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF1,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF2,}, {.address = 0x09, .data = 0x45,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF3,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF4,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF5,}, {.address = 0x09, .data = 0xB4,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF6,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF7,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF8,}, {.address = 0x09, .data = 0xB0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xF9,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFA,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFB,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFC,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFD,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFE,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x41,}, {.address = 0x08, .data = 0xFF,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x00,}, {.address = 0x09, .data = 0x0C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x01,}, {.address = 0x09, .data = 0xEE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x02,}, {.address = 0x09, .data = 0xDB,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x03,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x04,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x05,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x06,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x07,}, {.address = 0x09, .data = 0x4C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x08,}, {.address = 0x09, .data = 0xFC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x09,}, {.address = 0x09, .data = 0xCE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0A,}, {.address = 0x09, .data = 0xA6,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0B,}, {.address = 0x09, .data = 0x31,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0C,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0D,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0E,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x0F,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x10,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x11,}, {.address = 0x09, .data = 0xAC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x12,}, {.address = 0x09, .data = 0x12,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x13,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x14,}, {.address = 0x09, .data = 0x33,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x15,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x16,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x17,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x18,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x19,}, {.address = 0x09, .data = 0xED,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1A,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1B,}, {.address = 0x09, .data = 0x31,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1C,}, {.address = 0x09, .data = 0x4C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1D,}, {.address = 0x09, .data = 0xC9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1E,}, {.address = 0x09, .data = 0x8A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x1F,}, {.address = 0x09, .data = 0x31,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x20,}, {.address = 0x09, .data = 0x5C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x21,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x22,}, {.address = 0x09, .data = 0x78,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x23,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x24,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x25,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x26,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x27,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x28,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x29,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2A,}, {.address = 0x09, .data = 0x2E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2B,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2C,}, {.address = 0x09, .data = 0x39,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2D,}, {.address = 0x09, .data = 0x92,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2E,}, {.address = 0x09, .data = 0x86,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x2F,}, {.address = 0x09, .data = 0x3D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x30,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x31,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x32,}, {.address = 0x09, .data = 0x43,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x33,}, {.address = 0x09, .data = 0x56,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x34,}, {.address = 0x09, .data = 0x4D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x35,}, {.address = 0x09, .data = 0x86,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x36,}, {.address = 0x09, .data = 0x72,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x37,}, {.address = 0x09, .data = 0x34,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x38,}, {.address = 0x09, .data = 0x42,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x39,}, {.address = 0x09, .data = 0x89,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3A,}, {.address = 0x09, .data = 0x4A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3B,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3C,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3D,}, {.address = 0x09, .data = 0xC9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3E,}, {.address = 0x09, .data = 0x4A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x3F,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x40,}, {.address = 0x09, .data = 0xDC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x41,}, {.address = 0x09, .data = 0xD5,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x42,}, {.address = 0x09, .data = 0x2E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x43,}, {.address = 0x09, .data = 0x55,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x44,}, {.address = 0x09, .data = 0x3F,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x45,}, {.address = 0x09, .data = 0x86,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x46,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x47,}, {.address = 0x09, .data = 0x4F,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x48,}, {.address = 0x09, .data = 0x81,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x49,}, {.address = 0x09, .data = 0xEC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4A,}, {.address = 0x09, .data = 0x67,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4B,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4C,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4D,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4E,}, {.address = 0x09, .data = 0xAF,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x4F,}, {.address = 0x09, .data = 0xB0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x50,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x51,}, {.address = 0x09, .data = 0xB3,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x52,}, {.address = 0x09, .data = 0x5E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x53,}, {.address = 0x09, .data = 0x32,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x54,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x55,}, {.address = 0x09, .data = 0xE9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x56,}, {.address = 0x09, .data = 0x60,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x57,}, {.address = 0x09, .data = 0x4D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x58,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x59,}, {.address = 0x09, .data = 0xCC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5A,}, {.address = 0x09, .data = 0x5F,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5B,}, {.address = 0x09, .data = 0x1C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5C,}, {.address = 0x09, .data = 0x48,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5D,}, {.address = 0x09, .data = 0xC2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5E,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x5F,}, {.address = 0x09, .data = 0x2A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x60,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x61,}, {.address = 0x09, .data = 0xA1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x62,}, {.address = 0x09, .data = 0x60,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x63,}, {.address = 0x09, .data = 0x26,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x64,}, {.address = 0x09, .data = 0x6C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x65,}, {.address = 0x09, .data = 0xC1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x66,}, {.address = 0x09, .data = 0xA8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x67,}, {.address = 0x09, .data = 0x37,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x68,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x69,}, {.address = 0x09, .data = 0xA8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6A,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6B,}, {.address = 0x09, .data = 0x49,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6C,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6D,}, {.address = 0x09, .data = 0xAE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6E,}, {.address = 0x09, .data = 0xD6,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x6F,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x70,}, {.address = 0x09, .data = 0x98,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x71,}, {.address = 0x09, .data = 0xD5,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x72,}, {.address = 0x09, .data = 0xFF,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x73,}, {.address = 0x09, .data = 0xB0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x74,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x75,}, {.address = 0x09, .data = 0xB3,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x76,}, {.address = 0x09, .data = 0x57,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x77,}, {.address = 0x09, .data = 0x35,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x78,}, {.address = 0x09, .data = 0xBC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x79,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7A,}, {.address = 0x09, .data = 0x60,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7B,}, {.address = 0x09, .data = 0x27,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7C,}, {.address = 0x09, .data = 0xCC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7D,}, {.address = 0x09, .data = 0xC1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7E,}, {.address = 0x09, .data = 0x47,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x7F,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x80,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x81,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x82,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x83,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x84,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x85,}, {.address = 0x09, .data = 0xEC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x86,}, {.address = 0x09, .data = 0x66,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x87,}, {.address = 0x09, .data = 0x55,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x88,}, {.address = 0x09, .data = 0x53,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x89,}, {.address = 0x09, .data = 0x86,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8A,}, {.address = 0x09, .data = 0x02,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8B,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8C,}, {.address = 0x09, .data = 0x01,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8D,}, {.address = 0x09, .data = 0xC5,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8E,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x8F,}, {.address = 0x09, .data = 0x49,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x90,}, {.address = 0x09, .data = 0x52,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x91,}, {.address = 0x09, .data = 0x8E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x92,}, {.address = 0x09, .data = 0xAC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x93,}, {.address = 0x09, .data = 0x24,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x94,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x95,}, {.address = 0x09, .data = 0xE2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x96,}, {.address = 0x09, .data = 0x4D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x97,}, {.address = 0x09, .data = 0x3A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x98,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x99,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9A,}, {.address = 0x09, .data = 0xDE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9B,}, {.address = 0x09, .data = 0x23,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9C,}, {.address = 0x09, .data = 0x48,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9D,}, {.address = 0x09, .data = 0xC2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9E,}, {.address = 0x09, .data = 0x8E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0x9F,}, {.address = 0x09, .data = 0x35,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA0,}, {.address = 0x09, .data = 0x51,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA1,}, {.address = 0x09, .data = 0xD5,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA2,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA3,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA4,}, {.address = 0x09, .data = 0x61,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA5,}, {.address = 0x09, .data = 0xCE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA6,}, {.address = 0x09, .data = 0xA9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA7,}, {.address = 0x09, .data = 0x3C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA8,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xA9,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAA,}, {.address = 0x09, .data = 0x7B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAB,}, {.address = 0x09, .data = 0x41,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAC,}, {.address = 0x09, .data = 0x70,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAD,}, {.address = 0x09, .data = 0x81,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAE,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xAF,}, {.address = 0x09, .data = 0x4C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB0,}, {.address = 0x09, .data = 0x6B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB1,}, {.address = 0x09, .data = 0x8A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB2,}, {.address = 0x09, .data = 0xF0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB3,}, {.address = 0x09, .data = 0x3D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB4,}, {.address = 0x09, .data = 0x67,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB5,}, {.address = 0x09, .data = 0x95,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB6,}, {.address = 0x09, .data = 0x73,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB7,}, {.address = 0x09, .data = 0x39,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB8,}, {.address = 0x09, .data = 0x5E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xB9,}, {.address = 0x09, .data = 0x89,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBA,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBB,}, {.address = 0x09, .data = 0x34,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBC,}, {.address = 0x09, .data = 0xC8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBD,}, {.address = 0x09, .data = 0xC9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBE,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xBF,}, {.address = 0x09, .data = 0x4A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC0,}, {.address = 0x09, .data = 0xD1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC1,}, {.address = 0x09, .data = 0xCE,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC2,}, {.address = 0x09, .data = 0xA1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC3,}, {.address = 0x09, .data = 0x2E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC4,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC5,}, {.address = 0x09, .data = 0xE2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC6,}, {.address = 0x09, .data = 0xA3,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC7,}, {.address = 0x09, .data = 0x58,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC8,}, {.address = 0x09, .data = 0x63,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xC9,}, {.address = 0x09, .data = 0x86,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCA,}, {.address = 0x09, .data = 0xDB,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCB,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCC,}, {.address = 0x09, .data = 0x62,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCD,}, {.address = 0x09, .data = 0x82,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCE,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xCF,}, {.address = 0x09, .data = 0x51,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD0,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD1,}, {.address = 0x09, .data = 0xCC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD2,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD3,}, {.address = 0x09, .data = 0x47,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD4,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD5,}, {.address = 0x09, .data = 0xEA,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD6,}, {.address = 0x09, .data = 0x9D,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD7,}, {.address = 0x09, .data = 0x3B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD8,}, {.address = 0x09, .data = 0x81,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xD9,}, {.address = 0x09, .data = 0xE9,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDA,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDB,}, {.address = 0x09, .data = 0x5A,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDC,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDD,}, {.address = 0x09, .data = 0xA6,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDE,}, {.address = 0x09, .data = 0x68,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xDF,}, {.address = 0x09, .data = 0x41,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE0,}, {.address = 0x09, .data = 0x80,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE1,}, {.address = 0x09, .data = 0xA8,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE2,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE3,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE4,}, {.address = 0x09, .data = 0x61,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE5,}, {.address = 0x09, .data = 0xCC,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE6,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE7,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE8,}, {.address = 0x09, .data = 0x81,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xE9,}, {.address = 0x09, .data = 0xE3,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xEA,}, {.address = 0x09, .data = 0x20,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xEB,}, {.address = 0x09, .data = 0x4F,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xEC,}, {.address = 0x09, .data = 0x69,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xED,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xEE,}, {.address = 0x09, .data = 0x01,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xEF,}, {.address = 0x09, .data = 0x3E,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF0,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF1,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF2,}, {.address = 0x09, .data = 0x79,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF3,}, {.address = 0x09, .data = 0x34,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF4,}, {.address = 0x09, .data = 0xA4,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF5,}, {.address = 0x09, .data = 0xD2,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF6,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF7,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF8,}, {.address = 0x09, .data = 0x18,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xF9,}, {.address = 0x09, .data = 0xEA,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFA,}, {.address = 0x09, .data = 0x20,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFB,}, {.address = 0x09, .data = 0x4F,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFC,}, {.address = 0x09, .data = 0xC1,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFD,}, {.address = 0x09, .data = 0xCA,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFE,}, {.address = 0x09, .data = 0x44,}, {.address = 0x02, .data = 0x51,}, {.address = 0x08, .data = 0xFF,}, {.address = 0x09, .data = 0x3D,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x00,}, {.address = 0x09, .data = 0xD1,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x01,}, {.address = 0x09, .data = 0xD5,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x02,}, {.address = 0x09, .data = 0xD0,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x03,}, {.address = 0x09, .data = 0x50,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x04,}, {.address = 0x09, .data = 0x10,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x05,}, {.address = 0x09, .data = 0xAC,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x06,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x07,}, {.address = 0x09, .data = 0x4B,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x08,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x09,}, {.address = 0x09, .data = 0xAE,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0A,}, {.address = 0x09, .data = 0x20,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0B,}, {.address = 0x09, .data = 0x32,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0C,}, {.address = 0x09, .data = 0x41,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0D,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0E,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x0F,}, {.address = 0x09, .data = 0x4E,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x10,}, {.address = 0x09, .data = 0x76,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x11,}, {.address = 0x09, .data = 0x8A,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x12,}, {.address = 0x09, .data = 0xB3,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x13,}, {.address = 0x09, .data = 0x5D,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x14,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x15,}, {.address = 0x09, .data = 0xA5,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x16,}, {.address = 0x09, .data = 0xC0,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x17,}, {.address = 0x09, .data = 0x48,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x18,}, {.address = 0x09, .data = 0x75,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x19,}, {.address = 0x09, .data = 0x8B,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1A,}, {.address = 0x09, .data = 0x00,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1B,}, {.address = 0x09, .data = 0x38,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1C,}, {.address = 0x09, .data = 0x41,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1D,}, {.address = 0x09, .data = 0xC3,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1E,}, {.address = 0x09, .data = 0xB6,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x1F,}, {.address = 0x09, .data = 0x34,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x20,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x21,}, {.address = 0x09, .data = 0xF2,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x22,}, {.address = 0x09, .data = 0xBC,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x23,}, {.address = 0x09, .data = 0x3E,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x24,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x25,}, {.address = 0x09, .data = 0xE0,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x26,}, {.address = 0x09, .data = 0x30,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x27,}, {.address = 0x09, .data = 0x51,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x28,}, {.address = 0x09, .data = 0x7B,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x29,}, {.address = 0x09, .data = 0x8C,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2A,}, {.address = 0x09, .data = 0xBB,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2B,}, {.address = 0x09, .data = 0x43,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2C,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2D,}, {.address = 0x09, .data = 0xA1,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2E,}, {.address = 0x09, .data = 0x2D,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x2F,}, {.address = 0x09, .data = 0xBF,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x30,}, {.address = 0x09, .data = 0x91,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x31,}, {.address = 0x09, .data = 0xD3,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x32,}, {.address = 0x09, .data = 0x60,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x33,}, {.address = 0x09, .data = 0x4F,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x34,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x35,}, {.address = 0x09, .data = 0xAA,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x36,}, {.address = 0x09, .data = 0x90,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x37,}, {.address = 0x09, .data = 0x2C,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x38,}, {.address = 0x09, .data = 0x41,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x39,}, {.address = 0x09, .data = 0xE3,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3A,}, {.address = 0x09, .data = 0xA0,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3B,}, {.address = 0x09, .data = 0x4F,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3C,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3D,}, {.address = 0x09, .data = 0xAA,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3E,}, {.address = 0x09, .data = 0x12,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x3F,}, {.address = 0x09, .data = 0x64,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x40,}, {.address = 0x09, .data = 0x40,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x41,}, {.address = 0x09, .data = 0xA6,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x42,}, {.address = 0x09, .data = 0xA4,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x43,}, {.address = 0x09, .data = 0x48,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x44,}, {.address = 0x09, .data = 0x14,}, {.address = 0x02, .data = 0x61,}, {.address = 0x08, .data = 0x45,}, {.address = 0x09, .data = 0xE1,}, {.address = 0x01, .data = 0x80,}, {.address = 0x17, .data = 0x00,}, {.address = 0x04, .data = 0x00,}, {.address = 0x05, .data = 0x10,}, {.address = 0x02, .data = 0x01,}, {.address = 0x01, .data = 0x00,}, {.address = 0x12, .data = 0x44,}, {.address = 0x01, .data = 0x80,}, {.address = 0x60, .data = 0x15,}, {.address = 0x01, .data = 0x00,}, {.address = 0x10, .data = 0x28,}, {.address = 0x11, .data = 0x00,}, {.address = 0x5E, .data = 0x02,}, {.address = 0x01, .data = 0x80,}, {.address = 0x0D, .data = 0x01,}, {.address = 0x01, .data = 0x00,} }; #ifdef __cplusplus } #endif #endif /* LSM6DSOX_ACTIVITY_RECOGNITION_FOR_MOBILE_H */
The program has 6 output classes:
- Stationary
- Walking
- Jogging
- Biking
- Driving
- Unknown
I found that being tethered by the USB cable made it difficult to do a real test. I could get it to detect Stationary by setting the board on the table, but when I tried to hold it stationary I would sometimes detect Driving. Must be the old age jitters. I could get Walking with a slow or moderate up-down motion and Jogging with a faster motion. I could not figure out what type of motion would get it to detect Biking. I guess if I added a battery and a display, I could take it out for a real test. Here's some of the output that I obtained.
I was trying to do a video demo, but I think I had a resource issue with the video capture program and crashed the computer - even had to do a recovery of my C drive .
Here's what I captured before the crash. I got to the point of trying to get it to register "Jogging". I think you can get the sense of the flow, so I'll skip trying to do it again.
I came across an interesting article that Qeexo, a TinyML platform developer, is collaborating with STMicro to create models for the MLC sensors using AutoML https://www.prweb.com/releases/qeexo_collaborates_with_st_to_automate_machine_learning_on_machine_learning_core_mlc_sens… .
The platform seems more focused on commercial applications, but hopefully they'll see value in offering a free "Community" edition. Having an online platform to develop models will make this feature much more attractive. I already have a project where this would reduce my hardware complexity and improve efficiency - if I could get sufficient accuracy... I think this is a case where waiting for the technology to develop makes sense. Maybe other ML SaaS companies will pick this up.
Top Comments