Skip to main content
Visitor II
July 30, 2025
Solved

Unable to Drive SSD1322 (NHD‑2.7‑12864WDW3) OLED Module via SPI2 on STM32H755 Nucleo

  • July 30, 2025
  • 6 replies
  • 637 views

ssd1322 interface.png

ssd1322 interface2.png

 

Hello,

I want to interface NHD-2.7-12864WDW3 OLED display with STM32H755 Nucleo and show some data in display

-4 wire SPI-. I had connected all OLED pins to STM32 correctly and than tried to flash this code (that I've attached). But i did not get any output, OLED display did not even glow.

I dont know where i am doing wrong, can you help me on this regard?

 

Pin 1 (VSS) → GND

Pin 2 (VDD) → +3.3 V

Pin 3 (NC / BC_VDD) → no connection

Pin 4 (D/C) → PA9 (GPIO Output)

Pin 5 (VSS) → GND

Pin 6 (VSS) → GND

Pin 7 (SCLK) → PB13 (SPI2_SCK, AF5)

Pin 8 (SDIN) → PB15 (SPI2_MOSI, AF5)

Pin 9 (NC) → no connection

Pin 10 (VSS) → GND

Pin 11 (VSS) → GND

Pin 12 (VSS) → GND

Pin 13 (VSS) → GND

Pin 14 (VSS) → GND

Pin 15 (NC / VCC sense) → no connection

Pin 16 (/RES) → PA10 (GPIO Output, active LOW reset)

Pin 17 (/CS) → PB2 (GPIO Output, active LOW chip‑select)

Pin 18 (/SHDN) → +3.3 V

Pin 19 (BS1) → GND (BS[1:0]=00 → 4‑wire SPI)

Pin 20 (BS1) → GND (BS[1:0]=00 → 4‑wire SPI)

 

 

Note: The pins seen as short circuit in the photo are GND pins.

 

Screenshot_1.png

1000152775.jpg

    This topic has been closed for replies.
    Best answer by durna

    I solved the problem, the problem was in the software. I am sharing the sample code. although not without problems, at least it gives an idea.

     

     

    /* oled_ssd1322.h */

    #ifndef OLED_SSD1322_H
    #define OLED_SSD1322_H

    #include "stm32h7xx_hal.h"

    extern const uint8_t NHD_Logo[];


    /* CubeMX ile üretilen SPI2 handle */
    extern SPI_HandleTypeDef hspi2;

    /* Kontrol pinleri */
    #define SSD1322_DC_Port GPIOA
    #define SSD1322_DC_Pin GPIO_PIN_9

    #define SSD1322_RST_Port GPIOA
    #define SSD1322_RST_Pin GPIO_PIN_10

    #define SSD1322_CS_Port GPIOB
    #define SSD1322_CS_Pin GPIO_PIN_2

    /* Fonksiyon prototipleri */
    void SSD1322_Init(void);
    void SSD1322_Clear(void);
    void SSD1322_FillCheckerboard(void);
    void SSD1322_DisplayImage(const uint8_t *img);
    void SSD1322_SetColumn(uint8_t start, uint8_t end);
    void SSD1322_SetRow(uint8_t start, uint8_t end);

    #endif /* OLED_SSD1322_H */

     

     

     

     

    /* oled_ssd1322.c */

    #include "oled_ssd1322.h"

    /* Eğer logonuz büyükse, buraya extern olarak alın */
    extern const uint8_t NHD_Logo[];

    /* D/C#, CS# hızlı kontrol için inline */
    static inline void CS_LOW (void) { HAL_GPIO_WritePin(SSD1322_CS_Port, SSD1322_CS_Pin, GPIO_PIN_RESET); }
    static inline void CS_HIGH(void) { HAL_GPIO_WritePin(SSD1322_CS_Port, SSD1322_CS_Pin, GPIO_PIN_SET); }
    static inline void DC_CMD (void) { HAL_GPIO_WritePin(SSD1322_DC_Port, SSD1322_DC_Pin, GPIO_PIN_RESET); }
    static inline void DC_DAT (void) { HAL_GPIO_WritePin(SSD1322_DC_Port, SSD1322_DC_Pin, GPIO_PIN_SET); }

    /* 8-bit komut gönderme */
    static void SSD1322_Command(uint8_t cmd)
    {
    DC_CMD();
    CS_LOW();
    HAL_SPI_Transmit(&hspi2, &cmd, 1, HAL_MAX_DELAY);
    CS_HIGH();
    }

    /* Veri bloğu gönderme */
    static void SSD1322_Data(const uint8_t *buf, uint16_t len)
    {
    DC_DAT();
    CS_LOW();
    HAL_SPI_Transmit(&hspi2, (uint8_t*)buf, len, HAL_MAX_DELAY);
    CS_HIGH();
    }

    /* /RST ile ~150 ms’lik reset palsi */
    static void SSD1322_Reset(void)
    {
    HAL_GPIO_WritePin(SSD1322_RST_Port, SSD1322_RST_Pin, GPIO_PIN_RESET);
    HAL_Delay(150);
    HAL_GPIO_WritePin(SSD1322_RST_Port, SSD1322_RST_Pin, GPIO_PIN_SET);
    HAL_Delay(150);
    }

    /* Kolon adres aralığı ayarı (0x15) */
    void SSD1322_SetColumn(uint8_t a, uint8_t b)
    {
    SSD1322_Command(0x15);
    SSD1322_Data((uint8_t[]){a, b}, 2);
    }

    /* Satır adres aralığı ayarı (0x75) */
    void SSD1322_SetRow(uint8_t a, uint8_t b)
    {
    SSD1322_Command(0x75);
    SSD1322_Data((uint8_t[]){a, b}, 2);
    }

    /* Write RAM komutu (0x5C) */
    static void SSD1322_WriteRam(void)
    {
    SSD1322_Command(0x5C);
    }

    /* — Düzeltilmiş init sekansı — */
    void SSD1322_Init(void)
    {
    SSD1322_Reset();

    SSD1322_Command(0xAE); // Display OFF

    SSD1322_Command(0xFD); SSD1322_Data((uint8_t[]){0x12},1); // Command Lock
    SSD1322_Command(0xB3); SSD1322_Data((uint8_t[]){0x91},1); // Display Clock
    SSD1322_Command(0xCA); SSD1322_Data((uint8_t[]){0x3F},1); // MUX Ratio
    SSD1322_Command(0xA2); SSD1322_Data((uint8_t[]){0x00},1); // Display Offset
    SSD1322_Command(0xAB); SSD1322_Data((uint8_t[]){0x01},1); // Function Select
    SSD1322_Command(0xA1); SSD1322_Data((uint8_t[]){0x00},1); // Start Line

    SSD1322_Command(0xA0);
    SSD1322_Data((uint8_t[]){0x16,0x11},2); // Remap

    SSD1322_Command(0xC7); SSD1322_Data((uint8_t[]){0x0F},1); // Master Contrast
    SSD1322_Command(0xC1); SSD1322_Data((uint8_t[]){0x9F},1); // Contrast

    SSD1322_Command(0xB1); SSD1322_Data((uint8_t[]){0x72},1); // Phase Length
    SSD1322_Command(0xBB); SSD1322_Data((uint8_t[]){0x1F},1); // Precharge Voltage
    SSD1322_Command(0xB4); SSD1322_Data((uint8_t[]){0xA0,0xFD},2);// External VSL
    SSD1322_Command(0xBE); SSD1322_Data((uint8_t[]){0x04},1); // VCOMH

    SSD1322_Command(0xA6); // Normal Display
    SSD1322_Command(0xA9); // Exit Partial
    SSD1322_Command(0xD1); SSD1322_Data((uint8_t[]){0xA2,0x20},2); // Display Enhancement
    SSD1322_Command(0xB5); SSD1322_Data((uint8_t[]){0x00},1); // GPIO
    SSD1322_Command(0xB9); // Default Grayscale
    SSD1322_Command(0xB6); SSD1322_Data((uint8_t[]){0x08},1); // 2nd Precharge

    SSD1322_Command(0xAF); // Display ON
    }

    /* Ekranı tamamen siyaha boyar */
    void SSD1322_Clear(void)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    uint8_t z = 0x00;
    for (int y=0; y<64; y++)
    for (int x=0; x<64; x++)
    SSD1322_Data(&z,1);
    }

    /* Satranç tahtası doldurma örneği */
    void SSD1322_FillCheckerboard(void)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    uint8_t p=0xFF,q=0x00;
    for (int i=0; i<32; i++){
    for (int j=0; j<64; j++){
    SSD1322_Data((j&1)?&q:&p,1);
    SSD1322_Data((j&1)?&p:&q,1);
    }
    }
    }

    /* Arduino’dan gelen logo verisini gösterir */
    void SSD1322_DisplayImage(const uint8_t *img)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    for (int i=0; i<64*16; i++, img++){
    uint8_t b = *img;
    for (int sh=6; sh>=0; sh-=2){
    uint8_t px = (b >> sh) & 0x03;
    uint8_t out = (px==3?0xFF: px==2?0xF0: px==1?0x0F:0x00);
    SSD1322_Data(&out,1);
    SSD1322_Data(&out,1);
    }
    }
    }

     

    6 replies

    durnaAuthor
    Visitor II
    July 30, 2025

    Hello,

    I want to interface NHD-2.7-12864WDW3 OLED display with STM32H755 Nucleo and show some data in display

    -4 wire SPI-. I had connected all OLED pins to STM32 correctly and than tried to flash this code (that I've attached). But i did not get any output, OLED display did not even glow.

    I dont know where i am doing wrong, can you help me on this regard?

    ssd1322 interface.png

    ssd1322 interface2.png

     

    Pin 1 (VSS) → GND

    Pin 2 (VDD) → +3.3 V

    Pin 3 (NC / BC_VDD) → no connection

    Pin 4 (D/C) → PA9 (GPIO Output)

    Pin 5 (VSS) → GND

    Pin 6 (VSS) → GND

    Pin 7 (SCLK) → PB13 (SPI2_SCK, AF5)

    Pin 8 (SDIN) → PB15 (SPI2_MOSI, AF5)

    Pin 9 (NC) → no connection

    Pin 10 (VSS) → GND

    Pin 11 (VSS) → GND

    Pin 12 (VSS) → GND

    Pin 13 (VSS) → GND

    Pin 14 (VSS) → GND

    Pin 15 (NC / VCC sense) → no connection

    Pin 16 (/RES) → PA10 (GPIO Output, active LOW reset)

    Pin 17 (/CS) → PB2 (GPIO Output, active LOW chip‑select)

    Pin 18 (/SHDN) → +3.3 V

    Pin 19 (BS1) → GND (BS[1:0]=00 → 4‑wire SPI)

    Pin 20 (BS1) → GND (BS[1:0]=00 → 4‑wire SPI)

     

    Screenshot_1.png

    1000152775.jpg

     

    Note: The pins seen as short circuit in the photo are GND pins.

    durnaAuthor
    Visitor II
    July 30, 2025

    I've changed data size from 4 bit to 8 bit but the result is same :(

    durnaAuthor
    Visitor II
    July 30, 2025

    I've changed data size from 4 bit to 8 bit but the result is same :(

    durnaAuthor
    Visitor II
    July 30, 2025

    Is there anybody who has an idea about it?

    Graduate II
    July 30, 2025

    I think you need to work with New Haven, and perhaps get a scope or analyzer on the signals.

    I'd probably double check that the SPI Transmit completes before pulling the Chip Select High again. Need to make sure the last bit crosses the wire, I think SPI TransmitReceive function achieves that, whereas TXE is more relative to the first bit over the wire. Is there a BUSY or TC bit you can spin on?

    >>I've changed data size from 4 bit to 8 bit but the result is same 

    Ok, what does that actually mean? SPI should be sending 8-bit bytes a bit at a time. You're not using the parallel modes.

    I've tended to use I2C for my SSD13xx OLED displays, I don't have any SSD1322 3.12" panels to work with. It would cost time and materials for me to demonstrate a workable solution.

    durnaAuthor
    Visitor II
    July 30, 2025

    Thanks for answer @Tesla DeLorean 

    But 

    The SSD1322 controller does not support I²C natively—it only offers 4-wire SPI, 3-wire SPI, or 8-bit parallel interfaces. To use it over I²C you’d need an external I²C-to-SPI bridge (e.g. NXP SC18IS602), which adds hardware complexity and may reduce performance.

     

     

    durnaAuthorAnswer
    Visitor II
    July 31, 2025

    I solved the problem, the problem was in the software. I am sharing the sample code. although not without problems, at least it gives an idea.

     

     

    /* oled_ssd1322.h */

    #ifndef OLED_SSD1322_H
    #define OLED_SSD1322_H

    #include "stm32h7xx_hal.h"

    extern const uint8_t NHD_Logo[];


    /* CubeMX ile üretilen SPI2 handle */
    extern SPI_HandleTypeDef hspi2;

    /* Kontrol pinleri */
    #define SSD1322_DC_Port GPIOA
    #define SSD1322_DC_Pin GPIO_PIN_9

    #define SSD1322_RST_Port GPIOA
    #define SSD1322_RST_Pin GPIO_PIN_10

    #define SSD1322_CS_Port GPIOB
    #define SSD1322_CS_Pin GPIO_PIN_2

    /* Fonksiyon prototipleri */
    void SSD1322_Init(void);
    void SSD1322_Clear(void);
    void SSD1322_FillCheckerboard(void);
    void SSD1322_DisplayImage(const uint8_t *img);
    void SSD1322_SetColumn(uint8_t start, uint8_t end);
    void SSD1322_SetRow(uint8_t start, uint8_t end);

    #endif /* OLED_SSD1322_H */

     

     

     

     

    /* oled_ssd1322.c */

    #include "oled_ssd1322.h"

    /* Eğer logonuz büyükse, buraya extern olarak alın */
    extern const uint8_t NHD_Logo[];

    /* D/C#, CS# hızlı kontrol için inline */
    static inline void CS_LOW (void) { HAL_GPIO_WritePin(SSD1322_CS_Port, SSD1322_CS_Pin, GPIO_PIN_RESET); }
    static inline void CS_HIGH(void) { HAL_GPIO_WritePin(SSD1322_CS_Port, SSD1322_CS_Pin, GPIO_PIN_SET); }
    static inline void DC_CMD (void) { HAL_GPIO_WritePin(SSD1322_DC_Port, SSD1322_DC_Pin, GPIO_PIN_RESET); }
    static inline void DC_DAT (void) { HAL_GPIO_WritePin(SSD1322_DC_Port, SSD1322_DC_Pin, GPIO_PIN_SET); }

    /* 8-bit komut gönderme */
    static void SSD1322_Command(uint8_t cmd)
    {
    DC_CMD();
    CS_LOW();
    HAL_SPI_Transmit(&hspi2, &cmd, 1, HAL_MAX_DELAY);
    CS_HIGH();
    }

    /* Veri bloğu gönderme */
    static void SSD1322_Data(const uint8_t *buf, uint16_t len)
    {
    DC_DAT();
    CS_LOW();
    HAL_SPI_Transmit(&hspi2, (uint8_t*)buf, len, HAL_MAX_DELAY);
    CS_HIGH();
    }

    /* /RST ile ~150 ms’lik reset palsi */
    static void SSD1322_Reset(void)
    {
    HAL_GPIO_WritePin(SSD1322_RST_Port, SSD1322_RST_Pin, GPIO_PIN_RESET);
    HAL_Delay(150);
    HAL_GPIO_WritePin(SSD1322_RST_Port, SSD1322_RST_Pin, GPIO_PIN_SET);
    HAL_Delay(150);
    }

    /* Kolon adres aralığı ayarı (0x15) */
    void SSD1322_SetColumn(uint8_t a, uint8_t b)
    {
    SSD1322_Command(0x15);
    SSD1322_Data((uint8_t[]){a, b}, 2);
    }

    /* Satır adres aralığı ayarı (0x75) */
    void SSD1322_SetRow(uint8_t a, uint8_t b)
    {
    SSD1322_Command(0x75);
    SSD1322_Data((uint8_t[]){a, b}, 2);
    }

    /* Write RAM komutu (0x5C) */
    static void SSD1322_WriteRam(void)
    {
    SSD1322_Command(0x5C);
    }

    /* — Düzeltilmiş init sekansı — */
    void SSD1322_Init(void)
    {
    SSD1322_Reset();

    SSD1322_Command(0xAE); // Display OFF

    SSD1322_Command(0xFD); SSD1322_Data((uint8_t[]){0x12},1); // Command Lock
    SSD1322_Command(0xB3); SSD1322_Data((uint8_t[]){0x91},1); // Display Clock
    SSD1322_Command(0xCA); SSD1322_Data((uint8_t[]){0x3F},1); // MUX Ratio
    SSD1322_Command(0xA2); SSD1322_Data((uint8_t[]){0x00},1); // Display Offset
    SSD1322_Command(0xAB); SSD1322_Data((uint8_t[]){0x01},1); // Function Select
    SSD1322_Command(0xA1); SSD1322_Data((uint8_t[]){0x00},1); // Start Line

    SSD1322_Command(0xA0);
    SSD1322_Data((uint8_t[]){0x16,0x11},2); // Remap

    SSD1322_Command(0xC7); SSD1322_Data((uint8_t[]){0x0F},1); // Master Contrast
    SSD1322_Command(0xC1); SSD1322_Data((uint8_t[]){0x9F},1); // Contrast

    SSD1322_Command(0xB1); SSD1322_Data((uint8_t[]){0x72},1); // Phase Length
    SSD1322_Command(0xBB); SSD1322_Data((uint8_t[]){0x1F},1); // Precharge Voltage
    SSD1322_Command(0xB4); SSD1322_Data((uint8_t[]){0xA0,0xFD},2);// External VSL
    SSD1322_Command(0xBE); SSD1322_Data((uint8_t[]){0x04},1); // VCOMH

    SSD1322_Command(0xA6); // Normal Display
    SSD1322_Command(0xA9); // Exit Partial
    SSD1322_Command(0xD1); SSD1322_Data((uint8_t[]){0xA2,0x20},2); // Display Enhancement
    SSD1322_Command(0xB5); SSD1322_Data((uint8_t[]){0x00},1); // GPIO
    SSD1322_Command(0xB9); // Default Grayscale
    SSD1322_Command(0xB6); SSD1322_Data((uint8_t[]){0x08},1); // 2nd Precharge

    SSD1322_Command(0xAF); // Display ON
    }

    /* Ekranı tamamen siyaha boyar */
    void SSD1322_Clear(void)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    uint8_t z = 0x00;
    for (int y=0; y<64; y++)
    for (int x=0; x<64; x++)
    SSD1322_Data(&z,1);
    }

    /* Satranç tahtası doldurma örneği */
    void SSD1322_FillCheckerboard(void)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    uint8_t p=0xFF,q=0x00;
    for (int i=0; i<32; i++){
    for (int j=0; j<64; j++){
    SSD1322_Data((j&1)?&q:&p,1);
    SSD1322_Data((j&1)?&p:&q,1);
    }
    }
    }

    /* Arduino’dan gelen logo verisini gösterir */
    void SSD1322_DisplayImage(const uint8_t *img)
    {
    SSD1322_SetColumn(0x1C,0x5B);
    SSD1322_SetRow (0x00,0x3F);
    SSD1322_WriteRam();

    for (int i=0; i<64*16; i++, img++){
    uint8_t b = *img;
    for (int sh=6; sh>=0; sh-=2){
    uint8_t px = (b >> sh) & 0x03;
    uint8_t out = (px==3?0xFF: px==2?0xF0: px==1?0x0F:0x00);
    SSD1322_Data(&out,1);
    SSD1322_Data(&out,1);
    }
    }
    }

     

    durnaAuthor
    Visitor II
    July 31, 2025

     

     

    #include "oled_ssd1322.h"

    const uint8_t NHD_Logo[] = {
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xFE, 0xED, 0xEE, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE,
    0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xEE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xEE, 0xEE, 0xFE, 0xED, 0xEE, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE,
    0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xEE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xEE, 0xFF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE,
    0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEF, 0xFE, 0xDC, 0xBB, 0xCD, 0xEF, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xEF, 0xD9, 0x52, 0x10, 0x00, 0x01, 0x25, 0x9C, 0xEE, 0xEE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xEE, 0xFE,
    0xA4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDF, 0xFE, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xA3,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xEF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xD5, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEE, 0xFA, 0x10, 0x00,
    0x00, 0x00, 0x02, 0x58, 0xAB, 0xCC, 0xB9, 0x74, 0x10, 0x00, 0x00, 0x6E, 0xFE, 0xDD, 0xEF, 0xFE,
    0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xEF, 0x80, 0x00, 0x00,
    0x00, 0x16, 0xBE, 0xFF, 0xEE, 0xFF, 0xFF, 0xEE, 0xDA, 0x50, 0x00, 0x03, 0xDE, 0xDE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xF7, 0x00, 0x00, 0x00,
    0x17, 0xDE, 0xFF, 0xEE, 0xDD, 0xEE, 0xEE, 0xDD, 0xEF, 0xFC, 0x60, 0x00, 0x2C, 0xED, 0xEF, 0xFE,
    0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0x60, 0x00, 0x00, 0x06,
    0xDF, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFC, 0x50, 0x01, 0xDE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xF7, 0x00, 0x00, 0x02, 0xAE,
    0xEE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xEF, 0xFA, 0x10, 0x2E, 0xED, 0xDE,
    0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDF, 0xA0, 0x00, 0x00, 0x4D, 0xFD,
    0xDE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xEE, 0xD4, 0x05, 0xED, 0xDE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEC, 0x00, 0x00, 0x06, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEF, 0x60, 0x8E, 0xDE,
    0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xE2, 0x00, 0x00, 0x6F, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xF6, 0x0D, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0x70, 0x00, 0x05, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDF, 0x44, 0xFE,
    0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xFE, 0xED, 0xEE, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xED,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xED, 0xEC, 0x00, 0x00, 0x3E, 0xEE, 0xED, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xE3, 0xBE,
    0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDE, 0xEF, 0xEE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xE3, 0x00, 0x00, 0xCF, 0xEE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xFB, 0x6E,
    0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x90, 0x00, 0x07, 0xFE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0x7D,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFE, 0xED, 0xDE, 0xFF, 0xEE, 0xEE, 0xEE, 0xED, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFE, 0x20, 0x00, 0x1E, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xEE, 0xED, 0xDE, 0xFE, 0xED, 0xDE, 0xFF, 0xEE, 0xBA,
    0xEE, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEF, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xEF, 0xFE, 0xDD, 0xEE, 0xED, 0xDD, 0xFF, 0xEE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xF9, 0x00, 0x00, 0x7F, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xEF, 0xFF, 0xFE, 0xDE, 0xFF, 0xFE, 0xEF, 0xFF, 0xEE, 0xDC,
    0xFE, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xF9, 0x32, 0x21, 0x1B, 0x31, 0x11, 0x4C, 0xFD, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xE3, 0x00, 0x00, 0xDF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xEE, 0x64, 0x44, 0x49, 0xEE, 0xC4, 0x44, 0x44, 0xDF, 0xE9, 0x22,
    0x9F, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0x70, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x01, 0xDE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xDC, 0xCC, 0xCC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0x00, 0x00, 0x0A, 0xFF, 0x70, 0x00, 0x01, 0xDE, 0xC0, 0x00,
    0x0B, 0xEE, 0xEE, 0xDD, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEE, 0xFB, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x9F, 0xEE, 0xDD,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xEF, 0xFF, 0xFF, 0xDD, 0xEF, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xFA, 0x00, 0x00, 0x0D, 0xFE, 0x40, 0x00, 0x05, 0xEE, 0x60, 0x00,
    0x06, 0xFE, 0xFE, 0xEE, 0xFF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xFE, 0xED, 0xEE, 0xF5, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x7F, 0xEE, 0xED,
    0xEF, 0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xEE, 0xFD, 0x77, 0x78, 0x79, 0xED, 0xEF, 0xFE, 0xDD, 0xEF,
    0xFE, 0xDD, 0xEF, 0xFE, 0xDD, 0xF6, 0x00, 0x00, 0x3F, 0xFD, 0x10, 0x00, 0x08, 0xEE, 0x50, 0x00,
    0x04, 0xFE, 0xFA, 0x77, 0x88, 0x8C, 0xED, 0xEF, 0xFE, 0xDE, 0xEF, 0xEE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xE1, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0x8F, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xF8, 0x00, 0x00, 0x06, 0xFD, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xE3, 0x00, 0x00, 0x7F, 0xEB, 0x00, 0x00, 0x0C, 0xEE, 0x60, 0x00,
    0x06, 0xFE, 0xE2, 0x00, 0x00, 0x0D, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xA0, 0x00, 0x00, 0x4D, 0xED, 0x30, 0x00, 0x00, 0xAE, 0xDE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xE5, 0x00, 0x00, 0x0B, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xC0, 0x00, 0x00, 0xAE, 0xE7, 0x00, 0x00, 0x2E, 0xEF, 0xC0, 0x00,
    0x0C, 0xEE, 0xC0, 0x00, 0x00, 0x4F, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEF, 0x70, 0x00, 0x00, 0xBF, 0xEF, 0x40, 0x00, 0x00, 0xCE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xE2, 0x00, 0x00, 0x1D, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xEF, 0x90, 0x00, 0x00, 0xDE, 0xE4, 0x00, 0x00, 0x5F, 0xEE, 0xEA, 0x22,
    0xAF, 0xDE, 0x90, 0x00, 0x00, 0x7F, 0xEF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0x30, 0x00, 0x01, 0xDE, 0xFE, 0x10, 0x00, 0x02, 0xEE, 0xDE, 0xEE,
    0xED, 0xDE, 0xEE, 0xED, 0xDE, 0xEF, 0xEE, 0xB0, 0x00, 0x00, 0x3E, 0xEF, 0xED, 0xDE, 0xEE, 0xED,
    0xDE, 0xEE, 0xED, 0xDE, 0xEF, 0x60, 0x00, 0x03, 0xEE, 0xD1, 0x00, 0x00, 0x8F, 0xEE, 0xEE, 0xDE,
    0xFE, 0xDE, 0x60, 0x00, 0x00, 0xAE, 0xEF, 0xED, 0xDE, 0xEE, 0xDD, 0xDE, 0xEE, 0xED, 0xEE, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0x00, 0x00, 0x03, 0xEE, 0xFB, 0x00, 0x00, 0x05, 0xFD, 0xDE, 0xFF,
    0xFE, 0xEE, 0xFF, 0xFE, 0xEE, 0xFE, 0xFF, 0x90, 0x00, 0x00, 0x8F, 0xFE, 0xEE, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xEE, 0xEE, 0xEE, 0x20, 0x00, 0x07, 0xFE, 0xA0, 0x00, 0x00, 0xBE, 0xEF, 0xFE, 0xEF,
    0xEF, 0xFE, 0x20, 0x00, 0x01, 0xEF, 0xEE, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xFE, 0xED, 0xEB, 0x00, 0x00, 0x05, 0xFE, 0xF6, 0x00, 0x00, 0x09, 0xEE, 0xFD, 0xCC,
    0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0xCD, 0xBB, 0x40, 0x00, 0x00, 0x8B, 0xCE, 0xFC, 0x87, 0x77, 0x77,
    0x77, 0x78, 0xDF, 0xEE, 0xEC, 0x00, 0x00, 0x09, 0xFF, 0x70, 0x00, 0x02, 0xEE, 0xDA, 0xBB, 0xBA,
    0xDC, 0xBA, 0x00, 0x00, 0x03, 0xBA, 0xDE, 0xE9, 0x77, 0x77, 0x77, 0x77, 0x7A, 0xFE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xFE, 0xED, 0xF8, 0x00, 0x00, 0x04, 0xFE, 0xD2, 0x00, 0x00, 0x1C, 0xEE, 0x61, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x80, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x2D, 0xEE, 0xE9, 0x00, 0x00, 0x0C, 0xEF, 0x40, 0x00, 0x05, 0xFE, 0xA0, 0x00, 0x00,
    0xC6, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEC, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xF6, 0x00, 0x00, 0x01, 0xEE, 0xDC, 0xCD, 0xDD, 0xCE, 0xE4, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x04, 0xFE, 0xE5, 0x00, 0x00, 0x3E, 0xEE, 0x10, 0x00, 0x09, 0xFF, 0x70, 0x00, 0x01,
    0xD2, 0x00, 0x00, 0x00, 0x00, 0x05, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xFD, 0xDD,
    0xEE, 0xEE, 0xEE, 0xED, 0xF7, 0x00, 0x00, 0x00, 0x7F, 0xEE, 0xEF, 0xFF, 0xEE, 0x80, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x01, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x02, 0xE1, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xDE, 0xE2, 0x00, 0x00, 0x6E, 0xFB, 0x00, 0x00, 0x0C, 0xEE, 0x30, 0x00, 0x05,
    0xD0, 0x00, 0x00, 0x00, 0x00, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xFE, 0xEE,
    0xFF, 0xEE, 0xDE, 0xEE, 0xFA, 0x00, 0x00, 0x00, 0x0B, 0xFE, 0xED, 0xDE, 0xEF, 0x30, 0x00, 0x00,
    0x01, 0x10, 0x00, 0x00, 0x04, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x06, 0xD0, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xCF, 0xC0, 0x00, 0x00, 0xAF, 0xF6, 0x00, 0x00, 0x2D, 0xED, 0x00, 0x00, 0x09,
    0xB0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFE, 0xFF,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0x40, 0x00, 0x00, 0x02, 0xEE, 0xEE, 0xDE, 0xFD, 0x00, 0x00, 0x01,
    0xAD, 0xD4, 0x00, 0x00, 0x08, 0xEA, 0x90, 0x00, 0x00, 0x19, 0x9D, 0x90, 0x00, 0x00, 0x3A, 0xB9,
    0x10, 0x00, 0x01, 0xCF, 0x90, 0x00, 0x00, 0xDF, 0xE3, 0x00, 0x00, 0x5E, 0xEA, 0x00, 0x00, 0x0C,
    0xDA, 0x50, 0x00, 0x00, 0x6A, 0xAD, 0x10, 0x00, 0x01, 0x8B, 0xA4, 0x00, 0x00, 0x08, 0xFE, 0xFF,
    0xFF, 0xFE, 0xDE, 0xFF, 0xEE, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0xED, 0xDD, 0xFA, 0x00, 0x00, 0x0A,
    0xFD, 0xF8, 0x00, 0x00, 0x0B, 0xFF, 0xC0, 0x00, 0x00, 0x5F, 0xEF, 0x50, 0x00, 0x02, 0xEF, 0xFF,
    0x40, 0x00, 0x02, 0xDF, 0x50, 0x00, 0x03, 0xFF, 0xD0, 0x00, 0x00, 0x8E, 0xE6, 0x00, 0x00, 0x1E,
    0xFF, 0x50, 0x00, 0x00, 0xCF, 0xFB, 0x00, 0x00, 0x0B, 0xFF, 0xF9, 0x00, 0x00, 0x0A, 0xEE, 0xFF,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xF7, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0xEE, 0xF6, 0x00, 0x00, 0x2F,
    0xEE, 0xE6, 0x00, 0x00, 0x1E, 0xEE, 0x70, 0x00, 0x00, 0x9E, 0xDE, 0x20, 0x00, 0x07, 0xFE, 0xED,
    0x10, 0x00, 0x05, 0xEE, 0x10, 0x00, 0x06, 0xEE, 0xA0, 0x00, 0x00, 0xBE, 0xE2, 0x00, 0x00, 0x5F,
    0xEE, 0x20, 0x00, 0x02, 0xED, 0xE7, 0x00, 0x00, 0x2E, 0xEE, 0xE5, 0x00, 0x00, 0x1D, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xEE, 0x30, 0x00, 0x00, 0x03, 0xEE, 0xFE, 0xE3, 0x00, 0x00, 0x7E,
    0xDF, 0xF3, 0x00, 0x00, 0x5F, 0xDE, 0x40, 0x00, 0x00, 0xCF, 0xFC, 0x00, 0x00, 0x0A, 0xFD, 0xFC,
    0x00, 0x00, 0x09, 0xFB, 0x00, 0x00, 0x0A, 0xEE, 0x60, 0x00, 0x01, 0xEF, 0xD0, 0x00, 0x00, 0x9F,
    0xEB, 0x00, 0x00, 0x05, 0xFE, 0xF4, 0x00, 0x00, 0x6F, 0xEE, 0xF3, 0x00, 0x00, 0x4F, 0xEE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xB0, 0x00, 0x00, 0x00, 0x9F, 0xEF, 0xC0, 0x00, 0x00, 0xAE,
    0xEF, 0xD0, 0x00, 0x00, 0x9F, 0xDD, 0x10, 0x00, 0x02, 0xEE, 0xEA, 0x00, 0x00, 0x0E, 0x73, 0x32,
    0x00, 0x00, 0x0C, 0xE8, 0x00, 0x00, 0x0D, 0xEE, 0x20, 0x00, 0x04, 0xFE, 0x90, 0x00, 0x00, 0xCE,
    0xE8, 0x00, 0x00, 0x09, 0xFE, 0xE1, 0x00, 0x00, 0xAC, 0x33, 0x30, 0x00, 0x00, 0x8E, 0xEE, 0xEE,
    0xDD, 0xEF, 0xFE, 0xED, 0xEF, 0xFE, 0xF7, 0x00, 0x00, 0x00, 0x1E, 0xEF, 0x90, 0x00, 0x00, 0xCE,
    0xDF, 0xA0, 0x00, 0x00, 0xCF, 0xEB, 0x00, 0x00, 0x05, 0xFE, 0xF6, 0x00, 0x00, 0x3F, 0x20, 0x00,
    0x00, 0x00, 0x3E, 0xF4, 0x00, 0x00, 0x3E, 0xEC, 0x00, 0x00, 0x08, 0xFF, 0x50, 0x00, 0x02, 0xEE,
    0xE5, 0x00, 0x00, 0x0C, 0xFF, 0xB0, 0x00, 0x00, 0xE7, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xEE, 0xDD,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x30, 0x00, 0x00, 0x07, 0xEF, 0x60, 0x00, 0x03, 0xEE,
    0xEE, 0x60, 0x00, 0x02, 0xEE, 0xE8, 0x00, 0x00, 0x09, 0xFE, 0xE3, 0x00, 0x00, 0x7D, 0x00, 0x00,
    0x00, 0x00, 0x6F, 0xD1, 0x00, 0x00, 0x6F, 0xE9, 0x00, 0x00, 0x0B, 0xEE, 0x20, 0x00, 0x05, 0xFE,
    0xE2, 0x00, 0x00, 0x2E, 0xEF, 0x80, 0x00, 0x02, 0xF4, 0x00, 0x00, 0x00, 0x02, 0xEE, 0xEE, 0xEE,
    0xFF, 0xFE, 0xDE, 0xFF, 0xFE, 0xEF, 0xFF, 0xC0, 0x00, 0x00, 0x03, 0xEE, 0x30, 0x00, 0x06, 0xFE,
    0xEE, 0x20, 0x00, 0x05, 0xED, 0xF5, 0x00, 0x00, 0x0D, 0xEE, 0xC0, 0x00, 0x00, 0xB9, 0x00, 0x00,
    0x00, 0x00, 0x9F, 0xA0, 0x00, 0x00, 0x9F, 0xF6, 0x00, 0x00, 0x1E, 0xEB, 0x00, 0x00, 0x08, 0xEF,
    0xC0, 0x00, 0x00, 0x6F, 0xDE, 0x40, 0x00, 0x05, 0xD0, 0x00, 0x00, 0x00, 0x05, 0xFD, 0xEF, 0xFF,
    0xEE, 0xEE, 0xDE, 0xA9, 0x98, 0x88, 0xCE, 0xF5, 0x00, 0x00, 0x03, 0xEC, 0x00, 0x00, 0x09, 0xEE,
    0xFB, 0x00, 0x00, 0x09, 0xEE, 0xE2, 0x00, 0x00, 0x3F, 0xEE, 0xA0, 0x00, 0x01, 0xDB, 0x99, 0x98,
    0x89, 0x99, 0xDF, 0x70, 0x00, 0x00, 0xCE, 0xE2, 0x00, 0x00, 0x4F, 0xF8, 0x00, 0x00, 0x0B, 0xEF,
    0x90, 0x00, 0x00, 0xAE, 0xED, 0x10, 0x00, 0x09, 0xE9, 0x99, 0x98, 0x89, 0x9C, 0xED, 0xEE, 0xEE,
    0xFF, 0xFD, 0xED, 0x00, 0x00, 0x00, 0xCF, 0xE9, 0x00, 0x00, 0x04, 0xF9, 0x00, 0x00, 0x0C, 0xFE,
    0xF8, 0x00, 0x00, 0x0C, 0xEE, 0xC0, 0x00, 0x00, 0x7F, 0xEE, 0x60, 0x00, 0x03, 0xEE, 0xFF, 0xFE,
    0xEF, 0xFF, 0xEE, 0x30, 0x00, 0x03, 0xEF, 0xC0, 0x00, 0x00, 0x8F, 0xE4, 0x00, 0x00, 0x2E, 0xDF,
    0x50, 0x00, 0x00, 0xDF, 0xEB, 0x00, 0x00, 0x0C, 0xEF, 0xFF, 0xEE, 0xEF, 0xFF, 0xED, 0xEF, 0xFF,
    0xEE, 0xEE, 0xEB, 0x00, 0x00, 0x04, 0xFE, 0xF8, 0x00, 0x00, 0x07, 0xE5, 0x00, 0x00, 0x2E, 0xEE,
    0xF5, 0x00, 0x00, 0x2E, 0xEF, 0x90, 0x00, 0x00, 0xAE, 0xEE, 0x30, 0x00, 0x07, 0xFE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xED, 0x00, 0x00, 0x06, 0xEF, 0x80, 0x00, 0x00, 0xBE, 0xD1, 0x00, 0x00, 0x5E, 0xEE,
    0x20, 0x00, 0x03, 0xEE, 0xF9, 0x00, 0x00, 0x2E, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEE, 0xF7, 0x00, 0x00, 0x08, 0xED, 0xF5, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x00, 0x6F, 0xDE,
    0xD1, 0x00, 0x00, 0x6F, 0xEF, 0x50, 0x00, 0x00, 0xDE, 0xEE, 0x10, 0x00, 0x0B, 0xFE, 0xDD, 0xDE,
    0xED, 0xCD, 0xFB, 0x00, 0x00, 0x0A, 0xFE, 0x40, 0x00, 0x01, 0xDE, 0xB0, 0x00, 0x00, 0x9F, 0xFC,
    0x00, 0x00, 0x06, 0xED, 0xF6, 0x00, 0x00, 0x5F, 0xEE, 0xDD, 0xDE, 0xED, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xF4, 0x00, 0x00, 0x0C, 0xED, 0xE2, 0x00, 0x00, 0x0D, 0xD0, 0x00, 0x00, 0x9F, 0xDE,
    0xB0, 0x00, 0x00, 0x9E, 0xEE, 0x10, 0x00, 0x03, 0xED, 0xFB, 0x00, 0x00, 0x1E, 0xFE, 0xE8, 0x01,
    0x11, 0x1C, 0xF7, 0x00, 0x00, 0x0D, 0xFD, 0x10, 0x00, 0x04, 0xEE, 0x70, 0x00, 0x00, 0xCF, 0xE8,
    0x00, 0x00, 0x0A, 0xED, 0xE2, 0x00, 0x00, 0x9E, 0xEE, 0xC1, 0x01, 0x10, 0x8E, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEF, 0xE1, 0x00, 0x00, 0x1E, 0xEE, 0xC0, 0x00, 0x00, 0x2F, 0xB0, 0x00, 0x00, 0xDE, 0xDF,
    0x70, 0x00, 0x00, 0xCF, 0xFC, 0x00, 0x00, 0x06, 0xFD, 0xF8, 0x00, 0x00, 0x4E, 0xEE, 0xE4, 0x00,
    0x00, 0x2D, 0xE3, 0x00, 0x00, 0x3F, 0xFB, 0x00, 0x00, 0x07, 0xEE, 0x40, 0x00, 0x02, 0xEE, 0xF5,
    0x00, 0x00, 0x0C, 0xEE, 0xD0, 0x00, 0x00, 0xCE, 0xEE, 0x90, 0x00, 0x00, 0xAE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xB0, 0x00, 0x00, 0x2F, 0xEF, 0x90, 0x00, 0x00, 0x5F, 0x80, 0x00, 0x02, 0xEF, 0xDE,
    0x40, 0x00, 0x02, 0xEE, 0xF8, 0x00, 0x00, 0x0A, 0xFE, 0xF4, 0x00, 0x00, 0x5F, 0xEF, 0xE1, 0x00,
    0x00, 0x5E, 0xD1, 0x00, 0x00, 0x6E, 0xE9, 0x00, 0x00, 0x0B, 0xEE, 0x10, 0x00, 0x05, 0xFE, 0xD1,
    0x00, 0x00, 0x3E, 0xEE, 0x90, 0x00, 0x00, 0xDF, 0xEF, 0x60, 0x00, 0x01, 0xDE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xEE, 0x90, 0x00, 0x00, 0x06, 0xD7, 0x10, 0x00, 0x00, 0xAF, 0x60, 0x00, 0x00, 0x77, 0x3D,
    0x10, 0x00, 0x05, 0xFD, 0xE4, 0x00, 0x00, 0x0D, 0xFF, 0xE1, 0x00, 0x00, 0x18, 0xAB, 0x50, 0x00,
    0x00, 0x8F, 0xB0, 0x00, 0x00, 0xAE, 0xE6, 0x00, 0x00, 0x1D, 0xFC, 0x00, 0x00, 0x09, 0xFE, 0xB0,
    0x00, 0x00, 0x6F, 0xEF, 0x60, 0x00, 0x00, 0x59, 0xA9, 0x00, 0x00, 0x03, 0xFE, 0xED, 0xEF, 0xFF,
    0xFF, 0xEF, 0x70, 0x00, 0x00, 0x01, 0xB0, 0x00, 0x00, 0x01, 0xEE, 0x50, 0x00, 0x00, 0x00, 0x4D,
    0x00, 0x00, 0x08, 0xFD, 0xE2, 0x00, 0x00, 0x2E, 0xEF, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xBF, 0x90, 0x00, 0x00, 0xCE, 0xE4, 0x00, 0x00, 0x3E, 0xFA, 0x00, 0x00, 0x0C, 0xEE, 0x90,
    0x00, 0x00, 0x8F, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xEE, 0xED, 0xEE, 0xFF,
    0xFF, 0xEE, 0x90, 0x00, 0x00, 0x05, 0x90, 0x00, 0x00, 0x08, 0xFE, 0x50, 0x00, 0x00, 0x00, 0x8C,
    0x00, 0x00, 0x09, 0xFD, 0xD1, 0x00, 0x00, 0x4F, 0xEF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x02, 0xEF, 0x80, 0x00, 0x00, 0xCE, 0xE3, 0x00, 0x00, 0x3F, 0xF9, 0x00, 0x00, 0x0C, 0xEE, 0x80,
    0x00, 0x00, 0xAF, 0xEF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0xED, 0xEE, 0xFF,
    0xEE, 0xEE, 0xE2, 0x00, 0x00, 0x08, 0x50, 0x00, 0x00, 0x3E, 0xEE, 0xA0, 0x00, 0x00, 0x00, 0xBB,
    0x00, 0x00, 0x08, 0xFE, 0xE1, 0x00, 0x00, 0x4F, 0xDE, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x0A, 0xEE, 0x80, 0x00, 0x00, 0xCE, 0xE2, 0x00, 0x00, 0x3E, 0xE8, 0x00, 0x00, 0x0A, 0xEE, 0x80,
    0x00, 0x00, 0xAF, 0xDE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0xEE, 0xEE, 0xEE, 0xEE,
    0xDD, 0xEE, 0xFC, 0x52, 0x11, 0x1B, 0x41, 0x11, 0x38, 0xDE, 0xEE, 0xFA, 0x31, 0x01, 0x5B, 0xEC,
    0x10, 0x00, 0x07, 0xFE, 0xF4, 0x11, 0x10, 0x3E, 0xDD, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02,
    0x9F, 0xDE, 0xA1, 0x21, 0x11, 0xBF, 0xF4, 0x00, 0x00, 0x2D, 0xE9, 0x00, 0x00, 0x09, 0xFF, 0xA1,
    0x11, 0x10, 0x9F, 0xDD, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x15, 0xEE, 0xDE, 0xEF, 0xFE, 0xDD,
    0xEE, 0xEE, 0xEF, 0xED, 0xDE, 0xEE, 0xDD, 0xDE, 0xFF, 0xED, 0xEF, 0xEF, 0xEC, 0xCE, 0xFF, 0xDE,
    0xDD, 0xDD, 0xCD, 0xEE, 0xFE, 0xDD, 0xDD, 0xDE, 0xDD, 0xEF, 0xFD, 0xCC, 0xDD, 0xDD, 0xCC, 0xDE,
    0xFE, 0xDD, 0xEE, 0xEE, 0xDD, 0xEF, 0xFD, 0xCC, 0xDD, 0xDE, 0xED, 0xDD, 0xDC, 0xCD, 0xEF, 0xFD,
    0xDD, 0xDD, 0xEE, 0xDE, 0xEF, 0xEC, 0xCC, 0xDD, 0xDC, 0xCC, 0xDF, 0xFE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xEE, 0xEE, 0xFE, 0xDE, 0xEF, 0xFE, 0xEE, 0xEF, 0xEE, 0xEE, 0xEF, 0xEE, 0xEE, 0xEF, 0xEE, 0xED,
    0xEF, 0xFF, 0xEE, 0xEF, 0xEE, 0xEE, 0xEF, 0xFE, 0xDD, 0xEE, 0xEE, 0xEE, 0xEF, 0xFE, 0xEE, 0xEF,
    0xEE, 0xED, 0xEF, 0xFE, 0xEE, 0xEF, 0xFE, 0xEE, 0xFF, 0xFE, 0xDE, 0xFF, 0xFE, 0xEE, 0xEF, 0xFE,
    0xEE, 0xFF, 0xFE, 0xEE, 0xEE, 0xFE, 0xEE, 0xFF, 0xFE, 0xEE, 0xFE, 0xEE, 0xDE, 0xEF, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xED, 0xDE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xDE, 0xEE, 0xEE,
    0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xEE, 0xEE, 0xED, 0xDE, 0xEE, 0xEE, 0xEE,
    0xEE, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
    0xFF, 0xEE, 0xDE, 0xEF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF, 0xEE, 0xDE, 0xFF,
    0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED,
    0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE, 0xFF, 0xED, 0xDE,
    0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFF, 0xED, 0xEE, 0xFE, 0xED, 0xEE, 0xFF,
    };

     

     

     

     

     

     

    main.c

     

    /* USER CODE END Header */
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"

    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
    #include "oled_ssd1322.h"
    /* USER CODE END Includes */

    /* Private typedef -----------------------------------------------------------*/
    /* USER CODE BEGIN PTD */

    /* USER CODE END PTD */

    /* Private define ------------------------------------------------------------*/
    /* USER CODE BEGIN PD */

    #ifndef HSEM_ID_0
    #define HSEM_ID_0 (0U) /* HW semaphore 0*/
    #endif
    /* USER CODE END PD */

    /* Private macro -------------------------------------------------------------*/
    /* USER CODE BEGIN PM */

    /* USER CODE END PM */

    /* Private variables ---------------------------------------------------------*/

    SPI_HandleTypeDef hspi2;

    /* USER CODE BEGIN PV */

    /* USER CODE END PV */

    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    static void MX_GPIO_Init(void);
    static void MX_SPI2_Init(void);
    /* USER CODE BEGIN PFP */

    /* USER CODE END PFP */

    /* Private user code ---------------------------------------------------------*/
    /* USER CODE BEGIN 0 */

    /* USER CODE END 0 */

    /**
    * @brief The application entry point.
    * @retval int
    */
    int main(void)
    {
    /* USER CODE BEGIN 1 */

    /* USER CODE END 1 */
    /* USER CODE BEGIN Boot_Mode_Sequence_0 */

    /* USER CODE END Boot_Mode_Sequence_0 */

    /* USER CODE BEGIN Boot_Mode_Sequence_1 */
    /* Wait until CPU2 boots and enters in stop mode or timeout*/

    /* USER CODE END Boot_Mode_Sequence_1 */
    /* MCU Configuration--------------------------------------------------------*/

    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();

    /* USER CODE BEGIN Init */

    /* USER CODE END Init */

    /* Configure the system clock */
    SystemClock_Config();
    /* USER CODE BEGIN Boot_Mode_Sequence_2 */
    /* When system initialization is finished, Cortex-M7 will release Cortex-M4 by means of
    HSEM notification */
    /*HW semaphore Clock enable*/
    __HAL_RCC_HSEM_CLK_ENABLE();
    /*Take HSEM */
    HAL_HSEM_FastTake(HSEM_ID_0);
    /*Release HSEM in order to notify the CPU2(CM4)*/

    /* USER CODE END Boot_Mode_Sequence_2 */

    /* USER CODE BEGIN SysInit */

    /* USER CODE END SysInit */

    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    MX_SPI2_Init();
    /* USER CODE BEGIN 2 */

    /* USER CODE END 2 */

    /* Infinite loop */
    /* USER CODE BEGIN WHILE */

    // Init ve test desenleri zaten var:
    SSD1322_Init();
    HAL_Delay(50);
    SSD1322_Clear();
    HAL_Delay(10);

    SSD1322_FillCheckerboard();
    HAL_Delay(1000);

    SSD1322_Clear();
    HAL_Delay(250);

    // İşte logo çağrısı:
    SSD1322_DisplayImage(NHD_Logo);
    HAL_Delay(2000);

    while (1)
    {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    }
    /* USER CODE END 3 */
    }

     

     

     

    Graduate II
    July 31, 2025

    Edit, and use the </> icon to post code so the formatting is cleaner

    durnaAuthor
    Visitor II
    July 31, 2025

    Data size must be 8 bits if you want to connect with 4 wire SPI

    Graduate II
    July 31, 2025

    Indeed, but the 3-Wire SPI is 9-Bit as the C/D bit is part of the data transferred. With 4-Wire SPI you drive the bit via a GPIO