Full Code of GorgonMeducer/Pico_Template for AI

main 5a4de394f2d9 cached
38 files
846.4 KB
457.8k tokens
96 symbols
1 requests
Download .txt
Showing preview only (874K chars total). Download the full file or copy to clipboard to get everything.
Repository: GorgonMeducer/Pico_Template
Branch: main
Commit: 5a4de394f2d9
Files: 38
Total size: 846.4 KB

Directory structure:
gitextract_n9e5hryi/

├── .gitattributes
├── .gitignore
├── .gitmodules
├── LICENSE
├── README.md
├── documents/
│   └── Pictures/
│       └── enable_lcd_1in3
├── main.c
└── project/
    └── mdk/
        ├── DebugConfig/
        │   ├── AC6-DebugInSRAM_RP2040_Core0_1.0.0.dbgconf
        │   ├── AC6-RunInSRAM_RP2040_Core0_1.0.0.dbgconf
        │   └── AC6-flash_RP2040_Core0_1.0.0.dbgconf
        ├── RP2040.sct
        ├── RP2040_debug_in_sram.sct
        ├── RP2040_run_in_sram.sct
        ├── RTE/
        │   ├── Acceleration/
        │   │   ├── DigitsFont.c
        │   │   ├── GLCD_Fonts.c
        │   │   ├── alarm_clock_font32.c
        │   │   ├── alarm_clock_font64.c
        │   │   ├── arm_2d_cfg.h
        │   │   ├── arm_2d_disp_adapter_0.c
        │   │   ├── arm_2d_disp_adapter_0.h
        │   │   ├── arm_2d_scene_gas_gauge.c
        │   │   ├── arm_2d_scene_gas_gauge.h
        │   │   └── ttf2c.py
        │   ├── CMSIS-View/
        │   │   └── EventRecorderConf.h
        │   ├── Compiler/
        │   │   └── EventRecorderConf.h
        │   ├── Device/
        │   │   └── RP2040_Core0/
        │   │       ├── env_wrapper.h
        │   │       ├── rp2040.dbgconf
        │   │       ├── rp2040.sct
        │   │       ├── rp2040_no_flash.sct
        │   │       ├── startup_rp2040.c
        │   │       └── system_rp2040.c
        │   └── Utilities/
        │       └── core_portme.h
        ├── arm_2d_scene_bubble_charging.c
        ├── arm_2d_scene_bubble_charging.h
        ├── debug_with_cmsis-dap.ini
        ├── debug_with_cmsis-dap_in_ram.ini
        ├── template.uvoptx
        └── template.uvprojx

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto


================================================
FILE: .gitignore
================================================
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
*.dep
project/mdk/template.uvguix.*
project/mdk/Objects
*.scvd
*.iex
project/mdk/JLinkLog.txt
project/mdk/template.uf2
*._ac
*.__i
*@*

*.00??

project/mdk/RTE/PikaScript
RTE_Components.h
Pre_Include_*
project/mdk/RTE/Acceleration/README.md
project/mdk/RTE/Acceleration/img2c.py
project/mdk/RTE/Acceleration/arm_2d.c
project/mdk/RTE/Utilities/core_portme.c
documents/Pictures/Thumbs.db


================================================
FILE: .gitmodules
================================================
[submodule "bsp"]
	path = bsp
	url = https://github.com/GorgonMeducer/RP2040_BSP.git


================================================
FILE: LICENSE
================================================
Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Pico_Template (v2.3.2)
An MDK template for Raspberry Pi Pico

- Use RPi official [RP2xxxx_DFP](https://www.keil.arm.com/packs/rp2xxx_dfp-raspberrypi/boards/)

- Add Flash Programming algorithm.

  - Special thanks to [Aladdin-Wang](https://github.com/Aladdin-Wang). [His extraordinary work](https://github.com/Aladdin-Wang/RP2040_Flash_Algorithm) makes our life much easier!
  - Special thanks to [fang316](https://github.com/fang316), whose suggestion improves how the flash programming algorithm is deployed.
- Compiler: Arm Compiler 6.15 and above (Using non-intrusive wrapper to support pico-sdk which is written in GCC)
- Improved BSP support

  - Add support for popular [LCD 1.3inc module](https://www.waveshare.com/wiki/Pico-LCD-1.3) : define macro `__PICO_USE_LCD_1IN3__` to enable it.

  - Add support for [RP2040 LCD 1.28inch development kit](https://www.waveshare.com/wiki/RP2040-LCD-1.28): define macro `__RP2040_USE_LCD_1IN28__` to enable it.

  - Add support for [PR2040 LCD Touch 1.28inch development kit](https://www.waveshare.com/wiki/RP2040-Touch-LCD-1.28): define macro `__RP2040_USE_LCD_TOUCH_1IN28__` to enable it.
- Support an ultra-lightweight python VM: [PikaScript](https://github.com/pikasTech/pikascript) (via cmsis-pack)
- Compatible with CMSIS 5.7.0, CMSIS 6.0.0 and above
- **Ready for running [Arm-2D](https://github.com/ARM-software/Arm-2D) benchmarks**
- **Ready for coremark**
- **Support Debug in MDK**

  - [Using CMSIS-DAP](https://github.com/majbthrd/pico-debug) (Validated in MDK and **highly recommended**)
  - **Support Flash Downloading**
- Add dedicated project configurations for:
  - [**AC6-flash**] Running code in Flash (XIP)

  - [**AC6-DebugInSRAM**] "no_flash" mode in the original pico-sdk.


# How to Use

## 1. Get the Pico_Template

I assume that you have the MDK installed on your PC. Please clone the Pico_Template with following command line:

```
mkdir pico-mdk
cd pico-mdk

git clone https://github.com/GorgonMeducer/Pico_Template .

git submodule update --init
```

Instead of using git clone, if you download a release package, then you have to download the [pico-sdk](https://github.com/raspberrypi/pico-sdk) manually and put them into the corresponding folder:

| submodules | URL                                         | Directory |
| ---------- | ------------------------------------------- | --------- |
| bsp        | https://github.com/GorgonMeducer/RP2040_BSP | ROOT\bsp  |

The project template also depends on [perf_counter](https://github.com/GorgonMeducer/perf_counter) which is deployed with a **cmsis-pack** that you can find in the **MDK pack installer**. 



## 2. Use the Template

The MDK project could be found in the path "ROOT\project\mdk". I assume you know how to use MDK for normal compilation. 

### 2.1 How to set the Stack and Heap size

Usually, people want to adjust the size of stack and heap, and it is very easy in this template. Please find the file "RP2040.sct" in the same MDK project directory. Find the macro ***STACK_0_SIZE*** for stack and ***HEAP_0_SIZE*** for the heap.  



```
#define STACK_0_SIZE        (1024*4)
#define STACK_1_SIZE        (1024*1)

#define HEAP_0_SIZE         (1024*32)
#define HEAP_1_SIZE         (1024*1)
```

***NOTE***: 

1. Please do **NOT** add "**u**" behind those constant values. 
2. The STACK_1_SIZE and HEAP_1_SIZE are not in use. You can set their value to reasonable smaller ones if you do want to reduce the RAM footprint. 



### 2.2 How to retarget stdout/stdin

To take advantage of pico-sdk, this template uses bridges to retarget low level functions of stdout/stdin to _read and _write implemented by stdio.c inside pico-sdk.  

```
/*----------------------------------------------------------------------------*
 * bridge the Arm Compiler's stdio and the pico-sdk's stdio                   *
 *----------------------------------------------------------------------------*/
__attribute__((weak))
int stdin_getchar(void)
{
    /*! \note If you don't want to use pico-sdk stdio, then you can implement 
     *!       function by yourself in other c source code. Your scanf will work
     *!       directly.
     *!       by default, we use this function to bridge the _read implemented 
     *!       in stdio.c of pico-sdk
     */
    
    int byte;
    _read(0, (char *)&byte, 1);
    return byte;
}

__attribute__((weak))
int stdout_putchar(int ch)
{
    /*! \note If you don't want to use pico-sdk stdio, then you can implement 
     *!       function by yourself in other c source code. Your printf will work
     *!       directly.
     *!       by default, we use this function to bridge the _write implemented 
     *!       in stdio.c of pico-sdk
     */
    
    return _write(1, (char *)&ch, 1);
}

```

Those bridge functions are decorated as "weak", hence if you want to retarget ***printf/scanf*** directly to a place where you can "***see through***" and/or ***you have total control***, please implement those bridge functions (without delete the weak version) in one of your c source code, for example, sending chars to USART or storing them to a memory block directly. 

**NOTE**: I try to provide you the freedom of choice, and I don't need you to digging deep inside scripts to gain such freedom. 



When using configuration**AC6-DebugInSRAM-printf**, all ***printf*** output is retargeted to '**Debug (printf) Viewer**' inside MDK (as shown below) with the help from EventRecorder.

![image-20220104201854052](documents/Pictures/Debug_printf_Viewer.png) 



### 2.3 How to debug using pico-debug (CMSIS-DAP)

[Pico-debug](https://github.com/majbthrd/pico-debug) is an open-source project which turns one Cortex-M0+ core in RP2040 into a CMSIS-DAP adapter. It means that without an extra one, you can debug a Pico in MDK with just one USB connector. In order to do so, please [download the latest uf2 file](https://github.com/majbthrd/pico-debug/releases) first.



Pico-Template provides a dedicated project configuration for downloading and debugging code in SRAM. This is the most convenient one and it delivers the best development experience among the three configurations. To use it, please follow the steps below:

1. Boot the Pico with the **BOOTSEL** button pressed. 
2. Drag and drop **pico-debug-gimmecache.uf2** to RPI-RP2 mass-storage driver in the explorer. It immediately reboots as a **CMSIS-DAP adapter**. Pico-debug loads as a RAM only `.uf2` image, meaning that it is never written to flash and doesn't replace existing user code.
3. Compile and Debug
5. Enjoy...

**NOTE: **

**1. In this mode, the "RESET" doesn't really work as we expect. If you do want to RESET, please press the "Reset Pico " button shown below:**

![image-20210919180644156](documents/Pictures/Reset_Pico.png) 

**2. If you cannot find this Toolbox, please start your debug session and go to menu "View"->"Toolbox Window".**



### 2.4 How to enable support for the LCD 1.3inc Module

To make it easier for people to turn Pico into a 'game pad', I've picked a popular [1.3inc LCD module](https://www.waveshare.com/wiki/Pico-LCD-1.3) and added a tailored driver into this Pico template. 

In brief,  it is an

>  1.3inch LCD Display Module For Raspberry Pi Pico, 65K RGB Colors, 240×240 Pixels, SPI Interface
<img src="./documents/Pictures/pico-lcd-1.3-1.jpg" style="zoom: 80%;" />



 To enable the built in support, please set the macro `__PICO_USE_LCD_1IN3__` to `1` in MDK project configuration as shown below:

![](./documents/Pictures/enable_lcd_1in3) 

After that, you can 

- Use the API `GLCD_DrawBitmap()` to flush a display buffer to the 1.3 inch LCD fully or partially (with specified location and size).

```c
extern 
void GLCD_DrawBitmap(   int_fast16_t x, int_fast16_t y, 
                        int_fast16_t width, int_fast16_t height,
                        uint16_t *frame_ptr);
```

**NOTE**: an alternative API, i.e. `Disp0_DrawBitmap`, is ready for working with Arm-2D. 

- 

### 2.5 How to enable support for the RP2040 LCD 1.28inch development kit

To make it easier for people to create watch faces, I've picked a popular  [LCD 1.28inch development kit](https://www.waveshare.com/wiki/RP2040-LCD-1.28) and added a tailored driver into this Pico template. 

In brief,  it is an

>  RP2040 MCU Board, With 1.28inch Round LCD, accelerometer and gyroscope Sensor
<img src="https://github.com/GorgonMeducer/Pico_Template/assets/13148491/da754f96-e384-45a0-96c5-4804a1c9434d" alt="rp2040-lcd-1 28-1_1" style="zoom:50%;" />



 To enable the built in support, please set the macro `__RP2040_USE_LCD_1IN28__` to `1` in MDK project configuration as shown below:

![EnbaleRP2040LCD1in28](./documents/Pictures/Enable_RP2040_LCD_1in28.png) 

### 2.6 How to enable support for the RP2040 LCD Touch 1.28inch development kit

To make it easier for people to create watch faces, I've picked a popular [PR2040 LCD Touch 1.28inch development kit](https://www.waveshare.com/wiki/RP2040-Touch-LCD-1.28) and added a tailored driver into this Pico template. 

In brief,  it is an

>  RP2040 MCU Board, With 1.28inch Round Touch LCD, accelerometer and gyroscope Sensor
>  <img src="./documents/Pictures/rp2040-touch-lcd-1.28-1_1.jpg" style="zoom: 60%;" />



 To enable the built in support, please set the macro `__RP2040_USE_LCD_TOUCH_1IN28__` to `1` in MDK project configuration as shown below:

![EnbaleRP2040LCDTouch1in28](./documents/Pictures/Enable_RP2040_LCD_Touch_1in28.png) 



### 2.7 How to enable the PikaScript Support

> PikaScript is an ultra-lightweight Python engine with zero dependencies and zero-configuration, that can run with 4KB of RAM and 32KB of flash (such as STM32G030C8 and STM32F103C8).

Pico-Template supports [PikaScript](https://github.com/pikasTech/pikascript) via cmsis-pack which you can find in the root directory. After the installation, please following the [official guidance](https://pikadoc.readthedocs.io/en/latest/get-start_cmsis-pack.html) to enable the support. 

**NOTE**: The first time compilation after ***selecting the Before Build/Rebuild*** might takes a longer time than you thought. 

![](./documents/Pictures/EnableThePikaBeforeBuild.png) 

### 2.8 How to run Coremark

With the help from `perf_counter v2.0.0` , we can now run **[coremark](https://github.com/eembc/coremark)** on Pico-Template with just one click in RTE as shown below:

![](./documents/Pictures/Select_Coremark_In_RTE.png) 

A code in `main()` will run the coremark after that:

```c
int main(void) 
{
    system_init();

    printf("Hello Pico-Template\r\n");
    
    ...

#if defined( __PERF_COUNTER_COREMARK__ ) && __PERF_COUNTER_COREMARK__
    printf("\r\nRun Coremark 1.0...\r\n");
    coremark_main();
#endif
    ...
    
    while (true) {
        breath_led();
        ...
    }
}
```

By default, you can observe the test result in **Debug (printf) View** as shown below:

![](./documents/Pictures/coremark_result.png) 



**NOTE**: **The coremark has to run at least 10 secs to generate a valid result**. Fail to do so,  you can change the macro `ITERATIONS` defined in `core_portme.h` to a bigger value and try again.

![](./documents/Pictures/core_portme.png) 





================================================
FILE: main.c
================================================
/****************************************************************************
*  Copyright 2021 Gorgon Meducer (Email:embedded_zhuoran@hotmail.com)       *
*                                                                           *
*  Licensed under the Apache License, Version 2.0 (the "License");          *
*  you may not use this file except in compliance with the License.         *
*  You may obtain a copy of the License at                                  *
*                                                                           *
*     http://www.apache.org/licenses/LICENSE-2.0                            *
*                                                                           *
*  Unless required by applicable law or agreed to in writing, software      *
*  distributed under the License is distributed on an "AS IS" BASIS,        *
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
*  See the License for the specific language governing permissions and      *
*  limitations under the License.                                           *
*                                                                           *
****************************************************************************/
/*============================ INCLUDES ======================================*/
#include "pico/stdlib.h"
#include "perf_counter.h"
#include "bsp/bsp.h"

#include <stdio.h>

#include "RTE_Components.h"
#if defined(RTE_Compiler_EventRecorder) || defined(RTE_CMSIS_View_EventRecorder)
#   include <EventRecorder.h>
#endif

#if defined(RTE_Script_PikaScript)
#   include "pikaScript.h"
#endif

#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
#   include "arm_2d.h"
#   include "arm_2d_helper.h"
#   include "arm_2d_disp_adapters.h"
#   include "arm_2d_scenes.h"
#   include "arm_2d_demos.h"

#endif

#if defined(RTE_Acceleration_Arm_2D_Extra_Benchmark)
#   include "arm_2d_benchmark.h"
#endif

#   include "arm_2d_scene_bubble_charging.h"


/*============================ MACROS ========================================*/
/*============================ MACROFIED FUNCTIONS ===========================*/
/*============================ TYPES =========================================*/
/*============================ GLOBAL VARIABLES ==============================*/
/*============================ LOCAL VARIABLES ===============================*/
/*============================ PROTOTYPES ====================================*/
/*============================ IMPLEMENTATION ================================*/

void SysTick_Handler(void)
{

}

#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
static bool __lcd_sync_handler(void *pTarget)
{
    return Disp0_Flush();
}
#endif

static void system_init(void)
{
    extern void SystemCoreClockUpdate();

    SystemCoreClockUpdate();
    /*! \note if you do want to use SysTick in your application, please use 
     *!       init_cycle_counter(true); 
     *!       instead of 
     *!       init_cycle_counter(false); 
     */
    init_cycle_counter(false);

#if defined(RTE_Compiler_EventRecorder) || defined(RTE_CMSIS_View_EventRecorder)
    EventRecorderInitialize(0, 1);
#endif
    stdio_init_all();

    bsp_init();

#if defined(RTE_Script_PikaScript)
    pikaScriptInit();
#endif

#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
    arm_2d_init();
    disp_adapter0_init();

    /* register a low level sync-up handler to wait LCD finish rendering the previous frame */
    do {
        arm_2d_helper_pfb_dependency_t tDependency = {
            .evtOnLowLevelSyncUp = {
                .fnHandler = &__lcd_sync_handler,
            },
        };
        arm_2d_helper_pfb_update_dependency(&DISP0_ADAPTER.use_as__arm_2d_helper_pfb_t, 
                                            ARM_2D_PFB_DEPEND_ON_LOW_LEVEL_SYNC_UP,
                                            &tDependency);
    } while(0);


#endif
}


int main(void) 
{
    system_init();

    __cycleof__("printf") {
        printf("Hello Pico-Template\r\n");
    }


#if defined( __PERF_COUNTER_COREMARK__ ) && __PERF_COUNTER_COREMARK__
    printf("\r\nRun Coremark 1.0...\r\n");
    coremark_main();
#endif


#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)

#   if defined(RTE_Acceleration_Arm_2D_Extra_Benchmark)
    arm_2d_run_benchmark();
#else
    //arm_2d_scene_bubble_charging_init(&DISP0_ADAPTER);
    //arm_2d_scene_player_switch_to_next_scene(&DISP0_ADAPTER);
#   endif

#endif

    while (true) {
        breath_led();

#if defined(__RTE_ACCELERATION_ARM_2D__) || defined(RTE_Acceleration_Arm_2D)
    #if ARM_2D_VERSION >= 10105 && !defined(RTE_Acceleration_Arm_2D_Extra_Benchmark)
        /* lock framerate: 30 FPS */
        disp_adapter0_task(30);
    #else
        disp_adapter0_task();
    #endif
#endif
    }
    //return 0;
}


================================================
FILE: project/mdk/DebugConfig/AC6-DebugInSRAM_RP2040_Core0_1.0.0.dbgconf
================================================
// File: rp2040.dbgconf
// Version: 1.0.0
// Note: refer to rp2040 data sheet

// <<< Use Configuration Wizard in Context Menu >>>

// <<< end of configuration section >>>


================================================
FILE: project/mdk/DebugConfig/AC6-RunInSRAM_RP2040_Core0_1.0.0.dbgconf
================================================
// File: rp2040.dbgconf
// Version: 1.0.0
// Note: refer to rp2040 data sheet

// <<< Use Configuration Wizard in Context Menu >>>

// <<< end of configuration section >>>


================================================
FILE: project/mdk/DebugConfig/AC6-flash_RP2040_Core0_1.0.0.dbgconf
================================================
// File: rp2040.dbgconf
// Version: 1.0.0
// Note: refer to rp2040 data sheet

// <<< Use Configuration Wizard in Context Menu >>>

// <<< end of configuration section >>>


================================================
FILE: project/mdk/RP2040.sct
================================================
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

#define FLASH_SIZE          0x00200000  
#define SRAM_SIZE           (1024*248)

#define STACK_0_SIZE        (1024*4)
#define STACK_1_SIZE        (1024*1)

#define HEAP_0_SIZE         (1024*32)
#define HEAP_1_SIZE         (1024*1)

#define RAMSIZE_VALID       (SRAM_SIZE -                                        \
                            STACK_1_SIZE - HEAP_1_SIZE -                        \
                            STACK_0_SIZE - HEAP_0_SIZE - 0x100)

LR_STAGE2_BOOT 0x10000000 0x100 {
    ER_STAGE2_BOOT +0 0x100 {
        compile_time_choice.o (+RO)
    }
    ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
    }
}

LR_IROM1 0x10000100 FLASH_SIZE - ImageLength(LR_STAGE2_BOOT)  {    ; load region size_region

    ER_FLASH +0 0x00200000  {  ; load address = execution address
        * (RESET, +First)
        *(InRoot$$Sections)
        
        * (.flashdata.*)
        * (:gdef:Reset_Handler)
        * (:gdef:SystemInit)
        .ANY (+RO)
        .ANY (+XO)
    }
    
    ER_RAM_VECTOR_TABLE 0x20000000 {
        .ANY  (.ram_vector_table)
    }
    
    ARM_LIB_STACK +0 ALIGN 8  EMPTY STACK_0_SIZE {
    }
    
    ARM_LIB_STACK_ONE +0 ALIGN 8  EMPTY STACK_1_SIZE {
    }
    ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE  {
    }
    ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE  {
    }
    
    ER_MUTEX_ARRAY +0 {
        .ANY (.mutex_array.*)
        .ANY (.mutex_array)
    }
    
    ;ER_PREINIT_ARRAY +0 {
    ;    * (.preinit_array.*)
    ;    * (.preinit_array)
    ;}

    RW_IRAM +0  {  ; RW data
        .ANY (.time_critical.*)
        .ANY (+RW +ZI)
    }
    
    RW_IRAM_NOINIT +0 UNINIT {  ; RW data
        .ANY (.after_data.*)
        .ANY (.unintialized_data.*)
        .ANY (.bss.noinit)
    }

}



================================================
FILE: project/mdk/RP2040_debug_in_sram.sct
================================================
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

#define FLASH_SIZE          0x00200000  
#define SRAM_SIZE           (1024*248)

#define STACK_0_SIZE        (1024*4)
#define STACK_1_SIZE        (1024*1)

#define HEAP_0_SIZE         (1024*32)
#define HEAP_1_SIZE         (1024*1)

#define RAMSIZE_VALID       (SRAM_SIZE -                                        \
                            STACK_1_SIZE - HEAP_1_SIZE -                        \
                            STACK_0_SIZE - HEAP_0_SIZE - 0x100)

;LR_STAGE2_BOOT 0x10000000 0x100 {
;    ER_STAGE2_BOOT +0 0x100 {
;        compile_time_choice.o (+RO)
;    }
;    ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
;    }
;}

LR_IROM1 0x20000000 SRAM_SIZE  {    ; load region size_region

    ER_BINRAY_INFO +0 {
        * (:gdef:Reset_Handler)     //!< please always make sure that Reset_Handler is placed here.
        * (.binary_info_header)
    }

    ER_RAM_VECTOR_TABLE +0 ALIGN 256 {
        *  (.ram_vector_table)
    }


    ER_FLASH +0  {  ; load address = execution address
        *.o (RESET, +First)
        *(InRoot$$Sections)
        * (+RO-DATA)
        startup_RP2040.o (+RO)
    }


    
    ER_MUTEX_ARRAY +0 {
        * (.mutex_array.*)
        * (.mutex_array)
    }
    
    RW_IRAM_CODE +0 {
        * (+RO-CODE)
        * (+XO)
    }
    
    ARM_LIB_STACK +0 ALIGN 8  EMPTY STACK_0_SIZE {
    }
    
    ARM_LIB_STACK_ONE +0 ALIGN 8  EMPTY STACK_1_SIZE {
    }
    ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE  {
    }
    ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE  {
    }
    
    
    
    ;ER_PREINIT_ARRAY +0 {
    ;    * (.preinit_array.*)
    ;    * (.preinit_array)
    ;}

    RW_IRAM +0 {  ; RW data
        .ANY (+RW +ZI)
    }
    
    RW_IRAM_UNINIT +0 UNINIT {
        .ANY (.bss.noinit)
    }
    
    

}



================================================
FILE: project/mdk/RP2040_run_in_sram.sct
================================================
#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
; command above MUST be in first line (no comment above!)
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

#define FLASH_SIZE          0x00200000  
#define SRAM_SIZE           (1024*248)

#define STACK_0_SIZE        (1024*4)
#define STACK_1_SIZE        (1024*1)

#define HEAP_0_SIZE         (1024*32)
#define HEAP_1_SIZE         (1024*1)

#define RAMSIZE_VALID       (SRAM_SIZE -                                        \
                            STACK_1_SIZE - HEAP_1_SIZE -                        \
                            STACK_0_SIZE - HEAP_0_SIZE - 0x100)

LR_STAGE2_BOOT 0x10000000 0x100 {
    ER_STAGE2_BOOT +0 0x100 {
        compile_time_choice.o (+RO)
    }
    ER_FILL ImageLimit(ER_STAGE2_BOOT) FILL 0xDEADBEEF 0x100 - ImageLength(ER_STAGE2_BOOT) {
    }
}

LR_IROM1 0x10000100 FLASH_SIZE - ImageLength(LR_STAGE2_BOOT)  {    ; load region size_region

    ER_FLASH +0 0x00200000  {  ; load address = execution address
        *.o (RESET, +First)
        *(InRoot$$Sections)
        * (+RO-DATA)
        startup_RP2040.o (+RO)
    }
    
    ER_RAM_VECTOR_TABLE 0x20000000 {
        *  (.ram_vector_table)
    }
    
    ARM_LIB_STACK +0 ALIGN 8  EMPTY STACK_0_SIZE {
    }
    
    ARM_LIB_STACK_ONE +0 ALIGN 8  EMPTY STACK_1_SIZE {
    }
    ARM_LIB_HEAP +0 ALIGN 8 EMPTY HEAP_0_SIZE  {
    }
    ARM_LIB_HEAP_ONE +0 ALIGN 8 EMPTY HEAP_1_SIZE  {
    }
    
    ER_MUTEX_ARRAY +0 {
        * (.mutex_array.*)
        * (.mutex_array)
    }
    
    ;ER_PREINIT_ARRAY +0 {
    ;    * (.preinit_array.*)
    ;    * (.preinit_array)
    ;}

    RW_IRAM +0 RAMSIZE_VALID {  ; RW data
        .ANY (+RW +ZI)
        * (+RO-CODE)
        * (+XO)
    }
    
    RW_IRAM_NO_INIT +0 UNINIT {
        .ANY (.bss.noinit)
    }

}



================================================
FILE: project/mdk/RTE/Acceleration/DigitsFont.c
================================================

/* Generated on Wed Oct 12 02:22:25 2022 from -i */
/* Re-sized : True */
/* Rotated : 0.0 deg */



#include "arm_2d.h"
#include "arm_2d_helper.h"
#include "arm_extra_lcd_printf.h"

#if defined(__clang__)
#   pragma clang diagnostic push
#   pragma clang diagnostic ignored "-Wunknown-warning-option"
#   pragma clang diagnostic ignored "-Wreserved-identifier"
#   pragma clang diagnostic ignored "-Wmissing-variable-declarations"
#   pragma clang diagnostic ignored "-Wcast-qual"
#   pragma clang diagnostic ignored "-Wmissing-declarations"
#   pragma clang diagnostic ignored "-Wgnu-variable-sized-type-not-at-end"
#   pragma clang diagnostic ignored "-Wimplicit-int-conversion"
#   pragma clang diagnostic ignored "-Wdeclaration-after-statement"
#   pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#elif defined(__IS_COMPILER_ARM_COMPILER_5__)
#   pragma diag_suppress=1296
#endif


ARM_ALIGN(4) ARM_SECTION("arm2d.asset.c_bmpDigitsFontAlpha")
static const uint8_t c_bmpDigitsFontAlpha[15*336] = {
/* -0- */
0x00, 0x00, 0x00, 0x00, 0x01, 0x5e, 0xb9, 0xd2, 0xbb, 0x65, 0x05, 0x00, 0x00, 0x00, 0x00, 
/* -1- */
0x00, 0x00, 0x00, 0x02, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0x03, 0x00, 0x00, 0x00, 
/* -2- */
0x00, 0x00, 0x00, 0x58, 0xff, 0xff, 0xe1, 0xb1, 0xe0, 0xff, 0xff, 0x5f, 0x00, 0x00, 0x00, 
/* -3- */
0x00, 0x00, 0x07, 0xcd, 0xff, 0xd8, 0x1f, 0x00, 0x1b, 0xd0, 0xff, 0xd7, 0x0b, 0x00, 0x00, 
/* -4- */
0x00, 0x00, 0x36, 0xfd, 0xff, 0x5d, 0x00, 0x00, 0x00, 0x53, 0xfe, 0xff, 0x44, 0x00, 0x00, 
/* -5- */
0x00, 0x00, 0x65, 0xff, 0xf1, 0x1d, 0x00, 0x00, 0x00, 0x16, 0xeb, 0xff, 0x76, 0x00, 0x00, 
/* -6- */
0x00, 0x00, 0x79, 0xff, 0xe2, 0x0d, 0x00, 0x00, 0x00, 0x07, 0xd9, 0xff, 0x88, 0x00, 0x00, 
/* -7- */
0x00, 0x00, 0x7b, 0xff, 0xe0, 0x0b, 0x00, 0x00, 0x00, 0x06, 0xd6, 0xff, 0x8a, 0x00, 0x00, 
/* -8- */
0x00, 0x00, 0x7b, 0xff, 0xe0, 0x0b, 0x00, 0x00, 0x00, 0x06, 0xd6, 0xff, 0x8a, 0x00, 0x00, 
/* -9- */
0x00, 0x00, 0x77, 0xff, 0xe4, 0x0f, 0x00, 0x00, 0x00, 0x08, 0xdc, 0xff, 0x86, 0x00, 0x00, 
/* -10- */
0x00, 0x00, 0x5d, 0xff, 0xf7, 0x28, 0x00, 0x00, 0x00, 0x1e, 0xf1, 0xff, 0x6b, 0x00, 0x00, 
/* -11- */
0x00, 0x00, 0x28, 0xf7, 0xff, 0x7d, 0x00, 0x00, 0x00, 0x6e, 0xff, 0xfc, 0x34, 0x00, 0x00, 
/* -12- */
0x00, 0x00, 0x01, 0xb2, 0xff, 0xef, 0x4e, 0x10, 0x43, 0xe9, 0xff, 0xc3, 0x04, 0x00, 0x00, 
/* -13- */
0x00, 0x00, 0x00, 0x34, 0xf5, 0xff, 0xfe, 0xe3, 0xfa, 0xff, 0xfb, 0x44, 0x00, 0x00, 0x00, 
/* -14- */
0x00, 0x00, 0x00, 0x00, 0x61, 0xf0, 0xff, 0xff, 0xff, 0xf2, 0x6b, 0x00, 0x00, 0x00, 0x00, 
/* -15- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x68, 0x7b, 0x69, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -16- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x49, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -17- */
0x00, 0x00, 0x03, 0x3e, 0x82, 0xc0, 0xed, 0xff, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -18- */
0x00, 0x00, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -19- */
0x00, 0x00, 0x56, 0xfd, 0xf3, 0xc6, 0xdf, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -20- */
0x00, 0x00, 0x02, 0x32, 0x24, 0x01, 0xa3, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -21- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -22- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -23- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -24- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -25- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -26- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xff, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -27- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xff, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -28- */
0x00, 0x00, 0x00, 0x0d, 0x18, 0x18, 0xae, 0xff, 0xc2, 0x18, 0x19, 0x10, 0x00, 0x00, 0x00, 
/* -29- */
0x00, 0x00, 0x40, 0xdb, 0xed, 0xec, 0xf8, 0xff, 0xfa, 0xec, 0xed, 0xe2, 0x51, 0x00, 0x00, 
/* -30- */
0x00, 0x00, 0x65, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0x00, 0x00, 
/* -31- */
0x00, 0x00, 0x0a, 0x59, 0x6b, 0x65, 0x63, 0x64, 0x63, 0x66, 0x6c, 0x5c, 0x0f, 0x00, 0x00, 
/* -32- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x7f, 0x8f, 0x78, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -33- */
0x00, 0x00, 0x00, 0x2f, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa0, 0x0b, 0x00, 0x00, 0x00, 
/* -34- */
0x00, 0x00, 0x18, 0xdb, 0xff, 0xff, 0xe7, 0xd6, 0xf3, 0xff, 0xff, 0x94, 0x00, 0x00, 0x00, 
/* -35- */
0x00, 0x00, 0x7b, 0xff, 0xfe, 0x85, 0x15, 0x06, 0x2a, 0xc1, 0xff, 0xf5, 0x24, 0x00, 0x00, 
/* -36- */
0x00, 0x00, 0x9e, 0xff, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x37, 0xfe, 0xff, 0x4c, 0x00, 0x00, 
/* -37- */
0x00, 0x00, 0x25, 0x80, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x50, 0xfe, 0xff, 0x49, 0x00, 0x00, 
/* -38- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xdb, 0xff, 0xee, 0x1b, 0x00, 0x00, 
/* -39- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xd7, 0xff, 0xff, 0x74, 0x00, 0x00, 0x00, 
/* -40- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xe0, 0xff, 0xff, 0x8f, 0x01, 0x00, 0x00, 0x00, 
/* -41- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xed, 0xff, 0xff, 0x8a, 0x02, 0x00, 0x00, 0x00, 0x00, 
/* -42- */
0x00, 0x00, 0x00, 0x00, 0x6c, 0xf8, 0xff, 0xfc, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -43- */
0x00, 0x00, 0x05, 0x8b, 0xff, 0xff, 0xef, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -44- */
0x00, 0x0c, 0xaa, 0xff, 0xff, 0xf2, 0x64, 0x18, 0x1d, 0x1d, 0x3c, 0x4e, 0x04, 0x00, 0x00, 
/* -45- */
0x00, 0x2a, 0xfe, 0xff, 0xff, 0xfa, 0xeb, 0xf1, 0xf1, 0xf1, 0xfd, 0xff, 0x40, 0x00, 0x00, 
/* -46- */
0x00, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0x00, 0x00, 
/* -47- */
0x00, 0x0f, 0x61, 0x64, 0x61, 0x5b, 0x5a, 0x5c, 0x5b, 0x5b, 0x62, 0x64, 0x23, 0x00, 0x00, 
/* -48- */
0x00, 0x00, 0x00, 0x00, 0x0b, 0x54, 0x8a, 0x99, 0x8d, 0x53, 0x02, 0x00, 0x00, 0x00, 0x00, 
/* -49- */
0x00, 0x00, 0x00, 0x51, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xca, 0x24, 0x00, 0x00, 0x00, 
/* -50- */
0x00, 0x00, 0x20, 0xf2, 0xff, 0xff, 0xdb, 0xc8, 0xe2, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x00, 
/* -51- */
0x00, 0x00, 0x1e, 0xe8, 0xf1, 0x64, 0x0c, 0x01, 0x12, 0x94, 0xff, 0xff, 0x38, 0x00, 0x00, 
/* -52- */
0x00, 0x00, 0x00, 0x22, 0x26, 0x00, 0x00, 0x00, 0x00, 0x25, 0xfb, 0xff, 0x53, 0x00, 0x00, 
/* -53- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x90, 0xff, 0xff, 0x3a, 0x00, 0x00, 
/* -54- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x96, 0xb3, 0xd0, 0xff, 0xff, 0xbf, 0x07, 0x00, 0x00, 
/* -55- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3c, 0x00, 0x00, 0x00, 
/* -56- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x9e, 0xcb, 0xee, 0xff, 0xff, 0xc1, 0x10, 0x00, 0x00, 
/* -57- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0xa4, 0xff, 0xff, 0x77, 0x00, 0x00, 
/* -58- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xcc, 0xff, 0xbe, 0x00, 0x00, 
/* -59- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xff, 0xc8, 0x00, 0x00, 
/* -60- */
0x00, 0x00, 0x41, 0x86, 0x30, 0x03, 0x00, 0x00, 0x0d, 0x53, 0xec, 0xff, 0xa0, 0x00, 0x00, 
/* -61- */
0x00, 0x01, 0xcd, 0xff, 0xf5, 0xce, 0xbe, 0xc4, 0xdd, 0xff, 0xff, 0xf7, 0x39, 0x00, 0x00, 
/* -62- */
0x00, 0x00, 0x77, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x5b, 0x00, 0x00, 0x00, 
/* -63- */
0x00, 0x00, 0x00, 0x31, 0x76, 0x9e, 0xac, 0xa3, 0x8b, 0x58, 0x14, 0x00, 0x00, 0x00, 0x00, 
/* -64- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x4c, 0x4d, 0x45, 0x03, 0x00, 0x00, 0x00, 
/* -65- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xff, 0xe2, 0x0c, 0x00, 0x00, 0x00, 
/* -66- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xfd, 0xff, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -67- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xcf, 0xff, 0xff, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -68- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xff, 0xff, 0xe6, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -69- */
0x00, 0x00, 0x00, 0x00, 0x1c, 0xe7, 0xff, 0xc9, 0x89, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -70- */
0x00, 0x00, 0x00, 0x00, 0x97, 0xff, 0xfe, 0x45, 0x74, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -71- */
0x00, 0x00, 0x00, 0x36, 0xf7, 0xff, 0xb2, 0x00, 0x7d, 0xff, 0xdc, 0x0c, 0x00, 0x00, 0x00, 
/* -72- */
0x00, 0x00, 0x03, 0xbb, 0xff, 0xee, 0x26, 0x00, 0x7a, 0xff, 0xdb, 0x05, 0x00, 0x00, 0x00, 
/* -73- */
0x00, 0x00, 0x59, 0xff, 0xff, 0xc6, 0x55, 0x58, 0xab, 0xff, 0xe9, 0x46, 0x02, 0x00, 0x00, 
/* -74- */
0x00, 0x00, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 
/* -75- */
0x00, 0x00, 0x9d, 0xf8, 0xf8, 0xf8, 0xf6, 0xf2, 0xf9, 0xff, 0xfd, 0xe1, 0x2f, 0x00, 0x00, 
/* -76- */
0x00, 0x00, 0x17, 0x26, 0x26, 0x26, 0x2c, 0x4a, 0xa7, 0xff, 0xe7, 0x34, 0x00, 0x00, 0x00, 
/* -77- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xf1, 0xfa, 0xff, 0xfe, 0xe4, 0x31, 0x00, 0x00, 
/* -78- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 
/* -79- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x45, 0x4a, 0x49, 0x4a, 0x34, 0x02, 0x00, 0x00, 
/* -80- */
0x00, 0x00, 0x00, 0x42, 0x5f, 0x5e, 0x5a, 0x55, 0x54, 0x55, 0x4f, 0x18, 0x00, 0x00, 0x00, 
/* -81- */
0x00, 0x00, 0x00, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x02, 0x00, 0x00, 
/* -82- */
0x00, 0x00, 0x00, 0xb4, 0xff, 0xfc, 0xf5, 0xf6, 0xf6, 0xf6, 0xf3, 0x9c, 0x01, 0x00, 0x00, 
/* -83- */
0x00, 0x00, 0x00, 0xb4, 0xff, 0xba, 0x20, 0x21, 0x22, 0x22, 0x1e, 0x03, 0x00, 0x00, 0x00, 
/* -84- */
0x00, 0x00, 0x00, 0xb4, 0xff, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -85- */
0x00, 0x00, 0x00, 0xb4, 0xff, 0xd0, 0x8d, 0xb3, 0xaf, 0x7b, 0x20, 0x00, 0x00, 0x00, 0x00, 
/* -86- */
0x00, 0x00, 0x00, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x45, 0x00, 0x00, 0x00, 
/* -87- */
0x00, 0x00, 0x00, 0xb0, 0xff, 0xff, 0xe5, 0xbf, 0xcf, 0xff, 0xff, 0xe7, 0x1f, 0x00, 0x00, 
/* -88- */
0x00, 0x00, 0x00, 0x40, 0xa5, 0x61, 0x15, 0x00, 0x04, 0x6b, 0xfc, 0xff, 0x81, 0x00, 0x00, 
/* -89- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xff, 0xbc, 0x00, 0x00, 
/* -90- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xcc, 0x01, 0x00, 
/* -91- */
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xbe, 0x00, 0x00, 
/* -92- */
0x00, 0x01, 0x85, 0xd3, 0x68, 0x14, 0x05, 0x05, 0x15, 0x74, 0xfb, 0xff, 0x85, 0x00, 0x00, 
/* -93- */
0x00, 0x03, 0xd1, 0xff, 0xff, 0xe7, 0xd0, 0xd0, 0xe8, 0xff, 0xff, 0xe9, 0x22, 0x00, 0x00, 
/* -94- */
0x00, 0x00, 0x45, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x3f, 0x00, 0x00, 0x00, 
/* -95- */
0x00, 0x00, 0x00, 0x0f, 0x4f, 0x82, 0x99, 0x93, 0x7b, 0x4b, 0x0b, 0x00, 0x00, 0x00, 0x00, 
/* -96- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x74, 0xaa, 0xba, 0x9e, 0x3b, 0x00, 0x00, 
/* -97- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7c, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xe9, 0x11, 0x00, 
/* -98- */
0x00, 0x00, 0x00, 0x00, 0x04, 0xa1, 0xff, 0xff, 0xfc, 0xc9, 0xb2, 0xe5, 0xbb, 0x0a, 0x00, 
/* -99- */
0x00, 0x00, 0x00, 0x00, 0x82, 0xff, 0xff, 0xcc, 0x3f, 0x02, 0x00, 0x12, 0x09, 0x00, 0x00, 
/* -100- */
0x00, 0x00, 0x00, 0x33, 0xf9, 0xff, 0xcb, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -101- */
0x00, 0x00, 0x00, 0x90, 0xff, 0xf3, 0x2c, 0x0a, 0x1e, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -102- */
0x00, 0x00, 0x02, 0xc9, 0xff, 0xc6, 0x83, 0xdd, 0xf0, 0xe1, 0x90, 0x11, 0x00, 0x00, 0x00, 
/* -103- */
0x00, 0x00, 0x0c, 0xdd, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x0e, 0x00, 0x00, 
/* -104- */
0x00, 0x00, 0x0d, 0xde, 0xff, 0xff, 0xff, 0xbe, 0x75, 0xbf, 0xff, 0xff, 0x7d, 0x00, 0x00, 
/* -105- */
0x00, 0x00, 0x05, 0xd4, 0xff, 0xff, 0xad, 0x07, 0x00, 0x0b, 0xc9, 0xff, 0xd4, 0x07, 0x00, 
/* -106- */
0x00, 0x00, 0x00, 0xbc, 0xff, 0xed, 0x1e, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xef, 0x19, 0x00, 
/* -107- */
0x00, 0x00, 0x00, 0x86, 0xff, 0xec, 0x18, 0x00, 0x00, 0x00, 0x72, 0xff, 0xf0, 0x19, 0x00, 
/* -108- */
0x00, 0x00, 0x00, 0x3e, 0xfe, 0xff, 0xa4, 0x1c, 0x0b, 0x33, 0xd9, 0xff, 0xd4, 0x07, 0x00, 
/* -109- */
0x00, 0x00, 0x00, 0x03, 0xb3, 0xff, 0xff, 0xec, 0xdb, 0xf7, 0xff, 0xff, 0x70, 0x00, 0x00, 
/* -110- */
0x00, 0x00, 0x00, 0x00, 0x1b, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x93, 0x05, 0x00, 0x00, 
/* -111- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x49, 0x7f, 0x89, 0x74, 0x32, 0x00, 0x00, 0x00, 0x00, 
/* -112- */
0x00, 0x00, 0x23, 0x37, 0x36, 0x34, 0x2e, 0x2c, 0x2c, 0x2c, 0x2f, 0x36, 0x10, 0x00, 0x00, 
/* -113- */
0x00, 0x00, 0xa5, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x52, 0x00, 0x00, 
/* -114- */
0x00, 0x00, 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0x00, 0x00, 
/* -115- */
0x00, 0x00, 0x95, 0xff, 0xc3, 0x44, 0x45, 0x45, 0x43, 0x8e, 0xff, 0xfe, 0x40, 0x00, 0x00, 
/* -116- */
0x00, 0x00, 0x22, 0x7c, 0x2d, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xff, 0xdb, 0x0c, 0x00, 0x00, 
/* -117- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xeb, 0xff, 0x94, 0x00, 0x00, 0x00, 
/* -118- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xff, 0xfe, 0x43, 0x00, 0x00, 0x00, 
/* -119- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xff, 0xdd, 0x0c, 0x00, 0x00, 0x00, 
/* -120- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xeb, 0xff, 0x95, 0x00, 0x00, 0x00, 0x00, 
/* -121- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xff, 0xfe, 0x45, 0x00, 0x00, 0x00, 0x00, 
/* -122- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xff, 0xde, 0x0c, 0x00, 0x00, 0x00, 0x00, 
/* -123- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xeb, 0xff, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -124- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xff, 0xff, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -125- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xff, 0xe0, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -126- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -127- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x67, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -128- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x78, 0x87, 0x7e, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 
/* -129- */
0x00, 0x00, 0x00, 0x0b, 0x9f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xac, 0x12, 0x00, 0x00, 0x00, 
/* -130- */
0x00, 0x00, 0x00, 0x91, 0xff, 0xff, 0xf3, 0xdc, 0xf1, 0xff, 0xff, 0xa4, 0x02, 0x00, 0x00, 
/* -131- */
0x00, 0x00, 0x1f, 0xf3, 0xff, 0xc0, 0x29, 0x0a, 0x26, 0xbc, 0xff, 0xfb, 0x2e, 0x00, 0x00, 
/* -132- */
0x00, 0x00, 0x42, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x39, 0xff, 0xff, 0x54, 0x00, 0x00, 
/* -133- */
0x00, 0x00, 0x36, 0xfe, 0xff, 0x5d, 0x00, 0x00, 0x00, 0x56, 0xff, 0xff, 0x48, 0x00, 0x00, 
/* -134- */
0x00, 0x00, 0x0b, 0xd3, 0xff, 0xe8, 0x6d, 0x41, 0x69, 0xe6, 0xff, 0xe3, 0x14, 0x00, 0x00, 
/* -135- */
0x00, 0x00, 0x00, 0x44, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x57, 0x00, 0x00, 0x00, 
/* -136- */
0x00, 0x00, 0x00, 0x50, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x62, 0x00, 0x00, 0x00, 
/* -137- */
0x00, 0x00, 0x1a, 0xe7, 0xff, 0xf6, 0x8f, 0x5c, 0x87, 0xf1, 0xff, 0xf2, 0x26, 0x00, 0x00, 
/* -138- */
0x00, 0x00, 0x5c, 0xff, 0xfd, 0x65, 0x00, 0x00, 0x00, 0x52, 0xfa, 0xff, 0x71, 0x00, 0x00, 
/* -139- */
0x00, 0x00, 0x74, 0xff, 0xec, 0x10, 0x00, 0x00, 0x00, 0x04, 0xe2, 0xff, 0x8a, 0x00, 0x00, 
/* -140- */
0x00, 0x00, 0x57, 0xff, 0xfc, 0x6c, 0x05, 0x00, 0x03, 0x5c, 0xf8, 0xff, 0x6c, 0x00, 0x00, 
/* -141- */
0x00, 0x00, 0x15, 0xe1, 0xff, 0xff, 0xcf, 0xb5, 0xcb, 0xfd, 0xff, 0xef, 0x21, 0x00, 0x00, 
/* -142- */
0x00, 0x00, 0x00, 0x42, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x53, 0x00, 0x00, 0x00, 
/* -143- */
0x00, 0x00, 0x00, 0x00, 0x1a, 0x6a, 0xa0, 0xaf, 0xa2, 0x6c, 0x1f, 0x00, 0x00, 0x00, 0x00, 
/* -144- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x71, 0x95, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -145- */
0x00, 0x00, 0x00, 0x00, 0x59, 0xee, 0xff, 0xff, 0xff, 0xff, 0xa9, 0x0e, 0x00, 0x00, 0x00, 
/* -146- */
0x00, 0x00, 0x00, 0x2e, 0xf2, 0xff, 0xfd, 0xd9, 0xed, 0xff, 0xff, 0x9c, 0x00, 0x00, 0x00, 
/* -147- */
0x00, 0x00, 0x00, 0x9c, 0xff, 0xf5, 0x57, 0x08, 0x22, 0xbb, 0xff, 0xfb, 0x34, 0x00, 0x00, 
/* -148- */
0x00, 0x00, 0x07, 0xd6, 0xff, 0xa4, 0x00, 0x00, 0x00, 0x26, 0xf1, 0xff, 0x85, 0x00, 0x00, 
/* -149- */
0x00, 0x00, 0x10, 0xe2, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xff, 0xbd, 0x01, 0x00, 
/* -150- */
0x00, 0x00, 0x07, 0xd6, 0xff, 0xa4, 0x00, 0x00, 0x00, 0x39, 0xf4, 0xff, 0xe0, 0x0e, 0x00, 
/* -151- */
0x00, 0x00, 0x00, 0x9e, 0xff, 0xf4, 0x4c, 0x00, 0x27, 0xd3, 0xff, 0xff, 0xed, 0x17, 0x00, 
/* -152- */
0x00, 0x00, 0x00, 0x30, 0xf3, 0xff, 0xf7, 0xc8, 0xec, 0xff, 0xff, 0xff, 0xf2, 0x1d, 0x00, 
/* -153- */
0x00, 0x00, 0x00, 0x00, 0x59, 0xf0, 0xff, 0xff, 0xff, 0xfa, 0xe4, 0xff, 0xe8, 0x12, 0x00, 
/* -154- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8c, 0xae, 0x9a, 0x4a, 0xca, 0xff, 0xc4, 0x03, 0x00, 
/* -155- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xff, 0xff, 0x6d, 0x00, 0x00, 
/* -156- */
0x00, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x00, 0x29, 0xa4, 0xff, 0xff, 0xcc, 0x0e, 0x00, 0x00, 
/* -157- */
0x00, 0x00, 0x04, 0xb2, 0xef, 0xc2, 0xc7, 0xf3, 0xff, 0xff, 0xd8, 0x29, 0x00, 0x00, 0x00, 
/* -158- */
0x00, 0x00, 0x06, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xa8, 0x1d, 0x00, 0x00, 0x00, 0x00, 
/* -159- */
0x00, 0x00, 0x00, 0x27, 0x8e, 0xb2, 0xac, 0x82, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -160- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -161- */
0x00, 0x00, 0x15, 0x57, 0x62, 0x60, 0x60, 0x60, 0x53, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -162- */
0x00, 0x00, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -163- */
0x00, 0x00, 0x7a, 0xee, 0xf2, 0xfb, 0xff, 0xff, 0xff, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -164- */
0x00, 0x00, 0x00, 0x1c, 0x31, 0xe8, 0xff, 0xff, 0xff, 0xe7, 0x15, 0x00, 0x00, 0x00, 0x00, 
/* -165- */
0x00, 0x00, 0x00, 0x00, 0x54, 0xff, 0xfe, 0xa1, 0xfa, 0xff, 0x64, 0x00, 0x00, 0x00, 0x00, 
/* -166- */
0x00, 0x00, 0x00, 0x01, 0xb9, 0xff, 0xdb, 0x15, 0xd0, 0xff, 0xc4, 0x03, 0x00, 0x00, 0x00, 
/* -167- */
0x00, 0x00, 0x00, 0x2c, 0xf7, 0xff, 0x84, 0x00, 0x76, 0xff, 0xfb, 0x37, 0x00, 0x00, 0x00, 
/* -168- */
0x00, 0x00, 0x00, 0x87, 0xff, 0xf4, 0x29, 0x00, 0x20, 0xef, 0xff, 0x95, 0x00, 0x00, 0x00, 
/* -169- */
0x00, 0x00, 0x0d, 0xdd, 0xff, 0xf6, 0xc3, 0xc3, 0xc3, 0xf5, 0xff, 0xe7, 0x15, 0x00, 0x00, 
/* -170- */
0x00, 0x00, 0x54, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x63, 0x00, 0x00, 
/* -171- */
0x00, 0x00, 0xb4, 0xff, 0xe9, 0xa4, 0xa7, 0xa7, 0xa7, 0xa4, 0xe2, 0xff, 0xc3, 0x00, 0x00, 
/* -172- */
0x03, 0x3e, 0xf6, 0xff, 0x9f, 0x0d, 0x00, 0x00, 0x00, 0x09, 0x8e, 0xff, 0xfa, 0x4b, 0x07, 
/* -173- */
0xa5, 0xf6, 0xff, 0xff, 0xf7, 0xe4, 0x38, 0x00, 0x2c, 0xde, 0xf6, 0xff, 0xff, 0xf8, 0xb2, 
/* -174- */
0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4e, 0x00, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 
/* -175- */
0x1f, 0x56, 0x5c, 0x5c, 0x5c, 0x42, 0x04, 0x00, 0x02, 0x3d, 0x5c, 0x5c, 0x5c, 0x57, 0x23, 
/* -176- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -177- */
0x00, 0x33, 0x68, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x67, 0x4b, 0x12, 0x00, 0x00, 0x00, 0x00, 
/* -178- */
0x13, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x54, 0x00, 0x00, 0x00, 
/* -179- */
0x0a, 0xb2, 0xf2, 0xff, 0xff, 0xf3, 0xee, 0xef, 0xf5, 0xff, 0xff, 0xf7, 0x3c, 0x00, 0x00, 
/* -180- */
0x00, 0x05, 0x4a, 0xfd, 0xff, 0x56, 0x1b, 0x1b, 0x22, 0x60, 0xed, 0xff, 0xa7, 0x00, 0x00, 
/* -181- */
0x00, 0x00, 0x31, 0xfd, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xff, 0xc8, 0x00, 0x00, 
/* -182- */
0x00, 0x00, 0x34, 0xfd, 0xff, 0x41, 0x00, 0x00, 0x0b, 0x57, 0xec, 0xff, 0xac, 0x00, 0x00, 
/* -183- */
0x00, 0x00, 0x34, 0xfc, 0xff, 0xd1, 0xbe, 0xc3, 0xdc, 0xff, 0xff, 0xf4, 0x3d, 0x00, 0x00, 
/* -184- */
0x00, 0x00, 0x34, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x48, 0x00, 0x00, 
/* -185- */
0x00, 0x00, 0x34, 0xfc, 0xff, 0xc0, 0xa9, 0xa9, 0xb6, 0xd8, 0xff, 0xff, 0xf1, 0x32, 0x00, 
/* -186- */
0x00, 0x00, 0x34, 0xfd, 0xff, 0x3d, 0x00, 0x00, 0x00, 0x0a, 0x67, 0xf4, 0xff, 0x99, 0x00, 
/* -187- */
0x00, 0x00, 0x30, 0xfd, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0xff, 0xc0, 0x00, 
/* -188- */
0x00, 0x0b, 0x53, 0xfd, 0xff, 0x62, 0x2a, 0x2a, 0x2a, 0x2e, 0x5d, 0xe6, 0xff, 0xac, 0x00, 
/* -189- */
0x0c, 0xbf, 0xf9, 0xff, 0xff, 0xfb, 0xf9, 0xf9, 0xf9, 0xfc, 0xff, 0xff, 0xff, 0x4d, 0x00, 
/* -190- */
0x11, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x64, 0x00, 0x00, 
/* -191- */
0x00, 0x25, 0x52, 0x53, 0x53, 0x53, 0x53, 0x52, 0x52, 0x50, 0x3b, 0x0e, 0x00, 0x00, 0x00, 
/* -192- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -193- */
0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0xac, 0xc1, 0xb9, 0x8e, 0x39, 0x45, 0x55, 0x03, 0x00, 
/* -194- */
0x00, 0x00, 0x00, 0x3e, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfe, 0xff, 0x34, 0x00, 
/* -195- */
0x00, 0x00, 0x32, 0xef, 0xff, 0xff, 0xd8, 0xb0, 0xbd, 0xef, 0xff, 0xff, 0xff, 0x47, 0x00, 
/* -196- */
0x00, 0x07, 0xc5, 0xff, 0xfa, 0x72, 0x0b, 0x00, 0x00, 0x25, 0xb6, 0xff, 0xff, 0x47, 0x00, 
/* -197- */
0x00, 0x42, 0xff, 0xff, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xff, 0xff, 0x3e, 0x00, 
/* -198- */
0x00, 0x80, 0xff, 0xed, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x84, 0x96, 0x0c, 0x00, 
/* -199- */
0x00, 0x9a, 0xff, 0xcd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -200- */
0x00, 0x9e, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -201- */
0x00, 0x9c, 0xff, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -202- */
0x00, 0x86, 0xff, 0xe6, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -203- */
0x00, 0x46, 0xff, 0xff, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x7b, 0x1f, 0x00, 
/* -204- */
0x00, 0x06, 0xbf, 0xff, 0xfc, 0x8e, 0x26, 0x07, 0x05, 0x13, 0x5b, 0xea, 0xff, 0x91, 0x00, 
/* -205- */
0x00, 0x00, 0x25, 0xe0, 0xff, 0xff, 0xf4, 0xd6, 0xd0, 0xe6, 0xff, 0xff, 0xfe, 0x57, 0x00, 
/* -206- */
0x00, 0x00, 0x00, 0x27, 0xb5, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x61, 0x00, 0x00, 
/* -207- */
0x00, 0x00, 0x00, 0x00, 0x01, 0x37, 0x74, 0x95, 0x96, 0x82, 0x4f, 0x13, 0x00, 0x00, 0x00, 
/* -208- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -209- */
0x00, 0x17, 0x3e, 0x40, 0x3f, 0x3f, 0x3e, 0x3b, 0x25, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -210- */
0x0d, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xc4, 0x54, 0x00, 0x00, 0x00, 0x00, 
/* -211- */
0x0c, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x74, 0x00, 0x00, 0x00, 
/* -212- */
0x00, 0x15, 0xb1, 0xff, 0xd3, 0x3d, 0x3c, 0x46, 0x7c, 0xe6, 0xff, 0xf9, 0x3b, 0x00, 0x00, 
/* -213- */
0x00, 0x00, 0x98, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x34, 0xee, 0xff, 0xb9, 0x02, 0x00, 
/* -214- */
0x00, 0x00, 0x9b, 0xff, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x84, 0xff, 0xf6, 0x24, 0x00, 
/* -215- */
0x00, 0x00, 0x9b, 0xff, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0xfe, 0xff, 0x44, 0x00, 
/* -216- */
0x00, 0x00, 0x9b, 0xff, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x27, 0xf8, 0xff, 0x4e, 0x00, 
/* -217- */
0x00, 0x00, 0x9b, 0xff, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xfa, 0xff, 0x4c, 0x00, 
/* -218- */
0x00, 0x00, 0x9b, 0xff, 0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x46, 0xff, 0xff, 0x3c, 0x00, 
/* -219- */
0x00, 0x00, 0x9a, 0xff, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x01, 0xae, 0xff, 0xea, 0x16, 0x00, 
/* -220- */
0x00, 0x00, 0xa0, 0xff, 0xc9, 0x0f, 0x0e, 0x11, 0x2f, 0xa1, 0xff, 0xff, 0x95, 0x00, 0x00, 
/* -221- */
0x07, 0x9d, 0xf3, 0xff, 0xf9, 0xe2, 0xe1, 0xe7, 0xf9, 0xff, 0xff, 0xce, 0x17, 0x00, 0x00, 
/* -222- */
0x11, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xac, 0x1b, 0x00, 0x00, 0x00, 
/* -223- */
0x00, 0x42, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7a, 0x63, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -224- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -225- */
0x00, 0x1b, 0x46, 0x48, 0x48, 0x48, 0x48, 0x47, 0x47, 0x47, 0x47, 0x46, 0x38, 0x00, 0x00, 
/* -226- */
0x0d, 0xd1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x01, 0x00, 
/* -227- */
0x0b, 0xc4, 0xfe, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xcb, 0x01, 0x00, 
/* -228- */
0x00, 0x10, 0x58, 0xfb, 0xff, 0x6f, 0x35, 0x31, 0x2d, 0x34, 0xae, 0xff, 0xcc, 0x01, 0x00, 
/* -229- */
0x00, 0x00, 0x28, 0xfa, 0xff, 0x44, 0x00, 0x1a, 0x47, 0x00, 0x90, 0xff, 0xcb, 0x00, 0x00, 
/* -230- */
0x00, 0x00, 0x2d, 0xfa, 0xff, 0x43, 0x00, 0xbe, 0xff, 0x60, 0x3e, 0xd0, 0x71, 0x00, 0x00, 
/* -231- */
0x00, 0x00, 0x2d, 0xf9, 0xff, 0xbe, 0xa4, 0xf3, 0xff, 0x88, 0x00, 0x05, 0x00, 0x00, 0x00, 
/* -232- */
0x00, 0x00, 0x2d, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -233- */
0x00, 0x00, 0x2d, 0xf9, 0xff, 0xd6, 0xc5, 0xf7, 0xff, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -234- */
0x00, 0x00, 0x2d, 0xfa, 0xff, 0x48, 0x00, 0xcc, 0xff, 0x75, 0x01, 0x86, 0xa3, 0x12, 0x00, 
/* -235- */
0x00, 0x00, 0x2b, 0xfa, 0xff, 0x46, 0x00, 0x35, 0x6f, 0x0f, 0x19, 0xf8, 0xff, 0x49, 0x00, 
/* -236- */
0x00, 0x00, 0x3b, 0xfa, 0xff, 0x56, 0x13, 0x0d, 0x09, 0x10, 0x36, 0xf6, 0xff, 0x52, 0x00, 
/* -237- */
0x07, 0x9f, 0xe9, 0xff, 0xff, 0xee, 0xe7, 0xe7, 0xe7, 0xe7, 0xeb, 0xfe, 0xff, 0x51, 0x00, 
/* -238- */
0x10, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x54, 0x00, 
/* -239- */
0x00, 0x3a, 0x75, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x26, 0x00, 
/* -240- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -241- */
0x00, 0x00, 0x2f, 0x4f, 0x50, 0x50, 0x50, 0x50, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4a, 0x0c, 
/* -242- */
0x00, 0x2d, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x28, 
/* -243- */
0x00, 0x23, 0xe0, 0xfc, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xfb, 0xfa, 0xfc, 0xff, 0xf1, 0x27, 
/* -244- */
0x00, 0x00, 0x15, 0x7b, 0xff, 0xf2, 0x46, 0x2e, 0x28, 0x26, 0x2d, 0x74, 0xff, 0xf2, 0x28, 
/* -245- */
0x00, 0x00, 0x00, 0x5a, 0xff, 0xef, 0x17, 0x00, 0x32, 0x43, 0x00, 0x4b, 0xff, 0xf6, 0x22, 
/* -246- */
0x00, 0x00, 0x00, 0x5e, 0xff, 0xef, 0x14, 0x0e, 0xec, 0xff, 0x33, 0x16, 0xc0, 0x9d, 0x06, 
/* -247- */
0x00, 0x00, 0x00, 0x5e, 0xff, 0xfb, 0xb4, 0xb6, 0xfe, 0xff, 0x50, 0x00, 0x01, 0x00, 0x00, 
/* -248- */
0x00, 0x00, 0x00, 0x5e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 
/* -249- */
0x00, 0x00, 0x00, 0x5e, 0xff, 0xfb, 0xc6, 0xc9, 0xfe, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 
/* -250- */
0x00, 0x00, 0x00, 0x5e, 0xff, 0xef, 0x18, 0x16, 0xf3, 0xff, 0x3c, 0x00, 0x00, 0x00, 0x00, 
/* -251- */
0x00, 0x00, 0x00, 0x5c, 0xff, 0xef, 0x19, 0x00, 0x48, 0x5f, 0x05, 0x00, 0x00, 0x00, 0x00, 
/* -252- */
0x00, 0x00, 0x07, 0x6d, 0xff, 0xf1, 0x33, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -253- */
0x00, 0x1c, 0xca, 0xf3, 0xff, 0xfe, 0xef, 0xec, 0xe9, 0x93, 0x01, 0x00, 0x00, 0x00, 0x00, 
/* -254- */
0x00, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0x02, 0x00, 0x00, 0x00, 0x00, 
/* -255- */
0x00, 0x02, 0x47, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x68, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -256- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -257- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -258- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -259- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -260- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -261- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -262- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -263- */
0x00, 0x00, 0x16, 0x54, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x53, 0x54, 0x1c, 0x00, 0x00, 
/* -264- */
0x00, 0x00, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5c, 0x00, 0x00, 
/* -265- */
0x00, 0x00, 0x3b, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0x4d, 0x00, 0x00, 
/* -266- */
0x00, 0x00, 0x02, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x04, 0x00, 0x00, 
/* -267- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -268- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -269- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -270- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -271- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -272- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -273- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -274- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0xc3, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -275- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -276- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xff, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -277- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xff, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -278- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xff, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -279- */
0x00, 0x0b, 0x60, 0x77, 0x77, 0x76, 0xd2, 0xff, 0xdb, 0x77, 0x77, 0x78, 0x64, 0x0f, 0x00, 
/* -280- */
0x00, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6c, 0x00, 
/* -281- */
0x00, 0x35, 0xd4, 0xe6, 0xe6, 0xe5, 0xf7, 0xff, 0xf8, 0xe6, 0xe6, 0xe6, 0xd6, 0x3f, 0x00, 
/* -282- */
0x00, 0x00, 0x08, 0x14, 0x14, 0x13, 0xb1, 0xff, 0xbd, 0x13, 0x14, 0x14, 0x09, 0x00, 0x00, 
/* -283- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xff, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -284- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xff, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -285- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xff, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -286- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0xff, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -287- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x51, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -288- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -289- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -290- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -291- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -292- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -293- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -294- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -295- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -296- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -297- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -298- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -299- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -300- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x78, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -301- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xf4, 0xff, 0xfc, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -302- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0xff, 0xff, 0xff, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -303- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x63, 0xa4, 0x72, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -304- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -305- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -306- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -307- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -308- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -309- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -310- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -311- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -312- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -313- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -314- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -315- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -316- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -317- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -318- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -319- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -320- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -321- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -322- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -323- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -324- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x20, 0x28, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -325- */
0x00, 0x00, 0x00, 0x0d, 0x7a, 0xd2, 0xf1, 0xf6, 0xeb, 0xbb, 0x57, 0x01, 0x00, 0x00, 0x00, 
/* -326- */
0x00, 0x00, 0x1f, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x98, 0x03, 0x00, 0x00, 
/* -327- */
0x00, 0x08, 0xbf, 0xff, 0xff, 0xc4, 0x70, 0x5b, 0x84, 0xe1, 0xff, 0xff, 0x66, 0x00, 0x00, 
/* -328- */
0x00, 0x4b, 0xff, 0xff, 0xa5, 0x0e, 0x00, 0x00, 0x00, 0x28, 0xd8, 0xff, 0xda, 0x0d, 0x00, 
/* -329- */
0x00, 0x87, 0xff, 0xff, 0xdb, 0xd0, 0xd3, 0xd3, 0xd3, 0xce, 0xea, 0xff, 0xfe, 0x36, 0x00, 
/* -330- */
0x00, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4a, 0x00, 
/* -331- */
0x00, 0x7d, 0xff, 0xff, 0xac, 0x8e, 0x93, 0x93, 0x93, 0x92, 0x8f, 0x8b, 0x8c, 0x29, 0x00, 
/* -332- */
0x00, 0x39, 0xfd, 0xff, 0xb1, 0x18, 0x00, 0x00, 0x00, 0x00, 0x13, 0x3e, 0x3b, 0x00, 0x00, 
/* -333- */
0x00, 0x02, 0x9f, 0xff, 0xff, 0xeb, 0xb3, 0x99, 0xa5, 0xc9, 0xee, 0xff, 0xff, 0x3b, 0x00, 
/* -334- */
0x00, 0x00, 0x0d, 0xa3, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0x26, 0x00, 
/* -335- */
0x00, 0x00, 0x00, 0x01, 0x52, 0xac, 0xd8, 0xe1, 0xda, 0xc3, 0x97, 0x5b, 0x15, 0x00, 0x00, 
};
ARM_ALIGN(4) ARM_SECTION("arm2d.asset.c_bmpDigitsFontA2Alpha")
const uint8_t c_bmpDigitsFontA2Alpha[4*336] = {
/* -0- */
0x00, 0xe4, 0x06, 0x00, 
/* -1- */
0x00, 0xfe, 0x2f, 0x00, 
/* -2- */
0x40, 0xbf, 0x7f, 0x00, 
/* -3- */
0xc0, 0x0f, 0xfc, 0x00, 
/* -4- */
0xc0, 0x07, 0xf4, 0x01, 
/* -5- */
0xd0, 0x03, 0xf0, 0x01, 
/* -6- */
0xd0, 0x03, 0xf0, 0x02, 
/* -7- */
0xd0, 0x03, 0xf0, 0x02, 
/* -8- */
0xd0, 0x03, 0xf0, 0x02, 
/* -9- */
0xd0, 0x03, 0xf0, 0x02, 
/* -10- */
0xd0, 0x03, 0xf0, 0x01, 
/* -11- */
0xc0, 0x07, 0xf4, 0x00, 
/* -12- */
0x80, 0x1f, 0xfd, 0x00, 
/* -13- */
0x00, 0xff, 0x7f, 0x00, 
/* -14- */
0x00, 0xfd, 0x1f, 0x00, 
/* -15- */
0x00, 0x50, 0x01, 0x00, 
/* -16- */
0x00, 0x40, 0x01, 0x00, 
/* -17- */
0x00, 0xfe, 0x03, 0x00, 
/* -18- */
0xd0, 0xff, 0x02, 0x00, 
/* -19- */
0xd0, 0xff, 0x02, 0x00, 
/* -20- */
0x00, 0xe0, 0x02, 0x00, 
/* -21- */
0x00, 0xe0, 0x02, 0x00, 
/* -22- */
0x00, 0xe0, 0x02, 0x00, 
/* -23- */
0x00, 0xe0, 0x02, 0x00, 
/* -24- */
0x00, 0xe0, 0x02, 0x00, 
/* -25- */
0x00, 0xe0, 0x02, 0x00, 
/* -26- */
0x00, 0xe0, 0x02, 0x00, 
/* -27- */
0x00, 0xe0, 0x02, 0x00, 
/* -28- */
0x00, 0xe0, 0x03, 0x00, 
/* -29- */
0xd0, 0xff, 0xff, 0x01, 
/* -30- */
0xd0, 0xff, 0xff, 0x01, 
/* -31- */
0x40, 0x55, 0x55, 0x00, 
/* -32- */
0x00, 0x94, 0x01, 0x00, 
/* -33- */
0x00, 0xff, 0x2f, 0x00, 
/* -34- */
0xc0, 0xff, 0xbf, 0x00, 
/* -35- */
0xd0, 0x0b, 0xfc, 0x00, 
/* -36- */
0xe0, 0x03, 0xf0, 0x01, 
/* -37- */
0x80, 0x00, 0xf4, 0x01, 
/* -38- */
0x00, 0x00, 0xfc, 0x00, 
/* -39- */
0x00, 0x00, 0x7f, 0x00, 
/* -40- */
0x00, 0xc0, 0x2f, 0x00, 
/* -41- */
0x00, 0xf4, 0x0b, 0x00, 
/* -42- */
0x00, 0xfd, 0x01, 0x00, 
/* -43- */
0x80, 0x7f, 0x00, 0x00, 
/* -44- */
0xe0, 0x1f, 0x40, 0x00, 
/* -45- */
0xf0, 0xff, 0xff, 0x01, 
/* -46- */
0xf0, 0xff, 0xff, 0x01, 
/* -47- */
0x50, 0x55, 0x55, 0x00, 
/* -48- */
0x00, 0xa4, 0x06, 0x00, 
/* -49- */
0x40, 0xff, 0x3f, 0x00, 
/* -50- */
0xc0, 0xff, 0xff, 0x00, 
/* -51- */
0xc0, 0x07, 0xf8, 0x00, 
/* -52- */
0x00, 0x00, 0xf0, 0x01, 
/* -53- */
0x00, 0x00, 0xf8, 0x00, 
/* -54- */
0x00, 0xa0, 0xbf, 0x00, 
/* -55- */
0x00, 0xf4, 0x3f, 0x00, 
/* -56- */
0x00, 0xe0, 0xff, 0x00, 
/* -57- */
0x00, 0x00, 0xf8, 0x01, 
/* -58- */
0x00, 0x00, 0xf0, 0x02, 
/* -59- */
0x00, 0x00, 0xe0, 0x03, 
/* -60- */
0x90, 0x00, 0xf4, 0x02, 
/* -61- */
0xf0, 0xef, 0xff, 0x00, 
/* -62- */
0xd0, 0xff, 0x7f, 0x00, 
/* -63- */
0x00, 0xa9, 0x06, 0x00, 
/* -64- */
0x00, 0x00, 0x15, 0x00, 
/* -65- */
0x00, 0x80, 0x3f, 0x00, 
/* -66- */
0x00, 0xd0, 0x3f, 0x00, 
/* -67- */
0x00, 0xf0, 0x3f, 0x00, 
/* -68- */
0x00, 0xf4, 0x3f, 0x00, 
/* -69- */
0x00, 0xfc, 0x3e, 0x00, 
/* -70- */
0x00, 0x7e, 0x3d, 0x00, 
/* -71- */
0x00, 0x2f, 0x3d, 0x00, 
/* -72- */
0x80, 0x0f, 0x3d, 0x00, 
/* -73- */
0xd0, 0x5f, 0x7e, 0x00, 
/* -74- */
0xe0, 0xff, 0xff, 0x01, 
/* -75- */
0xe0, 0xff, 0xff, 0x00, 
/* -76- */
0x00, 0x40, 0x3e, 0x00, 
/* -77- */
0x00, 0xe0, 0xff, 0x00, 
/* -78- */
0x00, 0xf0, 0xff, 0x00, 
/* -79- */
0x00, 0x40, 0x15, 0x00, 
/* -80- */
0x40, 0x55, 0x15, 0x00, 
/* -81- */
0x80, 0xff, 0xff, 0x00, 
/* -82- */
0x80, 0xff, 0xbf, 0x00, 
/* -83- */
0x80, 0x0b, 0x00, 0x00, 
/* -84- */
0x80, 0x0b, 0x00, 0x00, 
/* -85- */
0x80, 0xaf, 0x06, 0x00, 
/* -86- */
0x80, 0xff, 0x7f, 0x00, 
/* -87- */
0x80, 0xbf, 0xff, 0x00, 
/* -88- */
0x40, 0x06, 0xf4, 0x02, 
/* -89- */
0x00, 0x00, 0xf0, 0x02, 
/* -90- */
0x00, 0x00, 0xe0, 0x03, 
/* -91- */
0x00, 0x00, 0xf0, 0x02, 
/* -92- */
0xe0, 0x01, 0xf4, 0x02, 
/* -93- */
0xf0, 0xff, 0xff, 0x00, 
/* -94- */
0xd0, 0xff, 0x3f, 0x00, 
/* -95- */
0x00, 0xa9, 0x05, 0x00, 
/* -96- */
0x00, 0x00, 0xa9, 0x00, 
/* -97- */
0x00, 0xd0, 0xff, 0x03, 
/* -98- */
0x00, 0xf8, 0xef, 0x02, 
/* -99- */
0x00, 0xfe, 0x00, 0x00, 
/* -100- */
0x00, 0x3f, 0x00, 0x00, 
/* -101- */
0x80, 0x0f, 0x00, 0x00, 
/* -102- */
0xc0, 0xef, 0x2f, 0x00, 
/* -103- */
0xc0, 0xff, 0xbf, 0x00, 
/* -104- */
0xc0, 0xbf, 0xf9, 0x01, 
/* -105- */
0xc0, 0x2f, 0xf0, 0x03, 
/* -106- */
0x80, 0x0f, 0xd0, 0x03, 
/* -107- */
0x80, 0x0f, 0xd0, 0x03, 
/* -108- */
0x00, 0x2f, 0xf0, 0x03, 
/* -109- */
0x00, 0xfe, 0xff, 0x01, 
/* -110- */
0x00, 0xf8, 0xbf, 0x00, 
/* -111- */
0x00, 0x50, 0x06, 0x00, 
/* -112- */
0x00, 0x00, 0x00, 0x00, 
/* -113- */
0xe0, 0xff, 0xff, 0x01, 
/* -114- */
0xe0, 0xff, 0xff, 0x01, 
/* -115- */
0xe0, 0x57, 0xf9, 0x01, 
/* -116- */
0x40, 0x00, 0xf8, 0x00, 
/* -117- */
0x00, 0x00, 0xbc, 0x00, 
/* -118- */
0x00, 0x00, 0x7d, 0x00, 
/* -119- */
0x00, 0x00, 0x3e, 0x00, 
/* -120- */
0x00, 0x00, 0x2f, 0x00, 
/* -121- */
0x00, 0x40, 0x1f, 0x00, 
/* -122- */
0x00, 0x80, 0x0f, 0x00, 
/* -123- */
0x00, 0xc0, 0x0b, 0x00, 
/* -124- */
0x00, 0xd0, 0x07, 0x00, 
/* -125- */
0x00, 0xe0, 0x03, 0x00, 
/* -126- */
0x00, 0xf0, 0x02, 0x00, 
/* -127- */
0x00, 0x40, 0x00, 0x00, 
/* -128- */
0x00, 0x90, 0x05, 0x00, 
/* -129- */
0x00, 0xfe, 0x2f, 0x00, 
/* -130- */
0x80, 0xff, 0xbf, 0x00, 
/* -131- */
0xc0, 0x0f, 0xf8, 0x00, 
/* -132- */
0xd0, 0x07, 0xf0, 0x01, 
/* -133- */
0xc0, 0x07, 0xf4, 0x01, 
/* -134- */
0xc0, 0x5f, 0xfd, 0x00, 
/* -135- */
0x40, 0xff, 0x7f, 0x00, 
/* -136- */
0x40, 0xff, 0x7f, 0x00, 
/* -137- */
0xc0, 0x6f, 0xfe, 0x00, 
/* -138- */
0xd0, 0x07, 0xf4, 0x01, 
/* -139- */
0xd0, 0x03, 0xf0, 0x02, 
/* -140- */
0xd0, 0x07, 0xf4, 0x01, 
/* -141- */
0xc0, 0xbf, 0xff, 0x00, 
/* -142- */
0x40, 0xff, 0x7f, 0x00, 
/* -143- */
0x00, 0xa4, 0x06, 0x00, 
/* -144- */
0x00, 0x90, 0x06, 0x00, 
/* -145- */
0x00, 0xfd, 0x2f, 0x00, 
/* -146- */
0x00, 0xff, 0xbf, 0x00, 
/* -147- */
0x80, 0x1f, 0xf8, 0x00, 
/* -148- */
0xc0, 0x0b, 0xf0, 0x02, 
/* -149- */
0xc0, 0x07, 0xf0, 0x02, 
/* -150- */
0xc0, 0x0b, 0xf0, 0x03, 
/* -151- */
0x80, 0x1f, 0xfc, 0x03, 
/* -152- */
0x00, 0xff, 0xff, 0x03, 
/* -153- */
0x00, 0xfd, 0xff, 0x03, 
/* -154- */
0x00, 0xa0, 0xf6, 0x03, 
/* -155- */
0x00, 0x00, 0xf8, 0x01, 
/* -156- */
0x00, 0x00, 0xfe, 0x00, 
/* -157- */
0x80, 0xff, 0x3f, 0x00, 
/* -158- */
0xc0, 0xff, 0x0b, 0x00, 
/* -159- */
0x00, 0xaa, 0x00, 0x00, 
/* -160- */
0x00, 0x00, 0x00, 0x00, 
/* -161- */
0x40, 0x55, 0x01, 0x00, 
/* -162- */
0xe0, 0xff, 0x03, 0x00, 
/* -163- */
0xd0, 0xff, 0x0b, 0x00, 
/* -164- */
0x00, 0xfc, 0x0f, 0x00, 
/* -165- */
0x00, 0xbd, 0x1f, 0x00, 
/* -166- */
0x00, 0x3e, 0x3f, 0x00, 
/* -167- */
0x00, 0x2f, 0x3d, 0x00, 
/* -168- */
0x80, 0x0f, 0xbc, 0x00, 
/* -169- */
0xc0, 0xff, 0xff, 0x00, 
/* -170- */
0xd0, 0xff, 0xff, 0x01, 
/* -171- */
0xe0, 0xab, 0xfa, 0x03, 
/* -172- */
0xf0, 0x02, 0xe0, 0x07, 
/* -173- */
0xfe, 0x0f, 0xfc, 0x2f, 
/* -174- */
0xff, 0x1f, 0xfc, 0x3f, 
/* -175- */
0x54, 0x05, 0x50, 0x05, 
/* -176- */
0x00, 0x00, 0x00, 0x00, 
/* -177- */
0x50, 0x55, 0x05, 0x00, 
/* -178- */
0xfc, 0xff, 0x7f, 0x00, 
/* -179- */
0xf8, 0xff, 0xff, 0x00, 
/* -180- */
0xd0, 0x07, 0xf4, 0x02, 
/* -181- */
0xc0, 0x03, 0xe0, 0x03, 
/* -182- */
0xc0, 0x07, 0xf4, 0x02, 
/* -183- */
0xc0, 0xef, 0xff, 0x00, 
/* -184- */
0xc0, 0xff, 0xff, 0x01, 
/* -185- */
0xc0, 0xaf, 0xfe, 0x03, 
/* -186- */
0xc0, 0x03, 0xd0, 0x0b, 
/* -187- */
0xc0, 0x03, 0x80, 0x0f, 
/* -188- */
0xd0, 0x07, 0xd0, 0x0b, 
/* -189- */
0xf8, 0xff, 0xff, 0x07, 
/* -190- */
0xfc, 0xff, 0xff, 0x01, 
/* -191- */
0x50, 0x55, 0x05, 0x00, 
/* -192- */
0x00, 0x00, 0x00, 0x00, 
/* -193- */
0x00, 0xe4, 0x4a, 0x01, 
/* -194- */
0x00, 0xff, 0xff, 0x03, 
/* -195- */
0xc0, 0xbf, 0xfe, 0x07, 
/* -196- */
0xf0, 0x07, 0xe0, 0x07, 
/* -197- */
0xf4, 0x02, 0xc0, 0x03, 
/* -198- */
0xf8, 0x00, 0x80, 0x02, 
/* -199- */
0xf8, 0x00, 0x00, 0x00, 
/* -200- */
0xf8, 0x00, 0x00, 0x00, 
/* -201- */
0xf8, 0x00, 0x00, 0x00, 
/* -202- */
0xf8, 0x00, 0x00, 0x00, 
/* -203- */
0xf4, 0x02, 0x00, 0x01, 
/* -204- */
0xe0, 0x0b, 0xd0, 0x0b, 
/* -205- */
0xc0, 0xff, 0xff, 0x07, 
/* -206- */
0x00, 0xfe, 0xff, 0x01, 
/* -207- */
0x00, 0x90, 0x1a, 0x00, 
/* -208- */
0x00, 0x00, 0x00, 0x00, 
/* -209- */
0x40, 0x00, 0x00, 0x00, 
/* -210- */
0xfc, 0xff, 0x1f, 0x00, 
/* -211- */
0xfc, 0xff, 0x7f, 0x00, 
/* -212- */
0xe0, 0x43, 0xfd, 0x00, 
/* -213- */
0xe0, 0x03, 0xf0, 0x02, 
/* -214- */
0xe0, 0x03, 0xe0, 0x03, 
/* -215- */
0xe0, 0x03, 0xc0, 0x07, 
/* -216- */
0xe0, 0x03, 0xc0, 0x07, 
/* -217- */
0xe0, 0x03, 0xc0, 0x07, 
/* -218- */
0xe0, 0x03, 0xd0, 0x03, 
/* -219- */
0xe0, 0x03, 0xe0, 0x03, 
/* -220- */
0xe0, 0x03, 0xf8, 0x02, 
/* -221- */
0xf8, 0xff, 0xff, 0x00, 
/* -222- */
0xfc, 0xff, 0x2f, 0x00, 
/* -223- */
0x94, 0x6a, 0x01, 0x00, 
/* -224- */
0x00, 0x00, 0x00, 0x00, 
/* -225- */
0x50, 0x55, 0x55, 0x00, 
/* -226- */
0xfc, 0xff, 0xff, 0x03, 
/* -227- */
0xfc, 0xff, 0xff, 0x03, 
/* -228- */
0xd0, 0x07, 0xe0, 0x03, 
/* -229- */
0xc0, 0x07, 0xe1, 0x03, 
/* -230- */
0xc0, 0x87, 0xc7, 0x01, 
/* -231- */
0xc0, 0xeb, 0x0b, 0x00, 
/* -232- */
0xc0, 0xff, 0x0b, 0x00, 
/* -233- */
0xc0, 0xff, 0x0b, 0x00, 
/* -234- */
0xc0, 0xc7, 0x87, 0x02, 
/* -235- */
0xc0, 0x07, 0xc1, 0x07, 
/* -236- */
0xc0, 0x07, 0xc0, 0x07, 
/* -237- */
0xf8, 0xff, 0xff, 0x07, 
/* -238- */
0xfc, 0xff, 0xff, 0x07, 
/* -239- */
0x50, 0x55, 0x55, 0x01, 
/* -240- */
0x00, 0x00, 0x00, 0x00, 
/* -241- */
0x40, 0x55, 0x55, 0x05, 
/* -242- */
0xf0, 0xff, 0xff, 0x0f, 
/* -243- */
0xf0, 0xff, 0xff, 0x0f, 
/* -244- */
0x40, 0x1f, 0x40, 0x0f, 
/* -245- */
0x40, 0x0f, 0x44, 0x0f, 
/* -246- */
0x40, 0x0f, 0x0f, 0x0b, 
/* -247- */
0x40, 0xaf, 0x1f, 0x00, 
/* -248- */
0x40, 0xff, 0x1f, 0x00, 
/* -249- */
0x40, 0xff, 0x1f, 0x00, 
/* -250- */
0x40, 0x0f, 0x0f, 0x00, 
/* -251- */
0x40, 0x0f, 0x05, 0x00, 
/* -252- */
0x40, 0x0f, 0x00, 0x00, 
/* -253- */
0xf0, 0xff, 0x0b, 0x00, 
/* -254- */
0xf0, 0xff, 0x0f, 0x00, 
/* -255- */
0x50, 0x55, 0x01, 0x00, 
/* -256- */
0x00, 0x00, 0x00, 0x00, 
/* -257- */
0x00, 0x00, 0x00, 0x00, 
/* -258- */
0x00, 0x00, 0x00, 0x00, 
/* -259- */
0x00, 0x00, 0x00, 0x00, 
/* -260- */
0x00, 0x00, 0x00, 0x00, 
/* -261- */
0x00, 0x00, 0x00, 0x00, 
/* -262- */
0x00, 0x00, 0x00, 0x00, 
/* -263- */
0x40, 0x55, 0x55, 0x00, 
/* -264- */
0xd0, 0xff, 0xff, 0x01, 
/* -265- */
0xc0, 0xff, 0xff, 0x01, 
/* -266- */
0x00, 0x00, 0x00, 0x00, 
/* -267- */
0x00, 0x00, 0x00, 0x00, 
/* -268- */
0x00, 0x00, 0x00, 0x00, 
/* -269- */
0x00, 0x00, 0x00, 0x00, 
/* -270- */
0x00, 0x00, 0x00, 0x00, 
/* -271- */
0x00, 0x00, 0x00, 0x00, 
/* -272- */
0x00, 0x00, 0x00, 0x00, 
/* -273- */
0x00, 0x00, 0x00, 0x00, 
/* -274- */
0x00, 0xd0, 0x01, 0x00, 
/* -275- */
0x00, 0xe0, 0x02, 0x00, 
/* -276- */
0x00, 0xe0, 0x02, 0x00, 
/* -277- */
0x00, 0xe0, 0x02, 0x00, 
/* -278- */
0x00, 0xe0, 0x02, 0x00, 
/* -279- */
0x50, 0xf5, 0x57, 0x01, 
/* -280- */
0xf4, 0xff, 0xff, 0x07, 
/* -281- */
0xf0, 0xff, 0xff, 0x03, 
/* -282- */
0x00, 0xe0, 0x02, 0x00, 
/* -283- */
0x00, 0xe0, 0x02, 0x00, 
/* -284- */
0x00, 0xe0, 0x02, 0x00, 
/* -285- */
0x00, 0xe0, 0x02, 0x00, 
/* -286- */
0x00, 0xe0, 0x02, 0x00, 
/* -287- */
0x00, 0x40, 0x00, 0x00, 
/* -288- */
0x00, 0x00, 0x00, 0x00, 
/* -289- */
0x00, 0x00, 0x00, 0x00, 
/* -290- */
0x00, 0x00, 0x00, 0x00, 
/* -291- */
0x00, 0x00, 0x00, 0x00, 
/* -292- */
0x00, 0x00, 0x00, 0x00, 
/* -293- */
0x00, 0x00, 0x00, 0x00, 
/* -294- */
0x00, 0x00, 0x00, 0x00, 
/* -295- */
0x00, 0x00, 0x00, 0x00, 
/* -296- */
0x00, 0x00, 0x00, 0x00, 
/* -297- */
0x00, 0x00, 0x00, 0x00, 
/* -298- */
0x00, 0x00, 0x00, 0x00, 
/* -299- */
0x00, 0x00, 0x00, 0x00, 
/* -300- */
0x00, 0x40, 0x01, 0x00, 
/* -301- */
0x00, 0xf0, 0x03, 0x00, 
/* -302- */
0x00, 0xf0, 0x07, 0x00, 
/* -303- */
0x00, 0x90, 0x01, 0x00, 
/* -304- */
0x00, 0x00, 0x00, 0x00, 
/* -305- */
0x00, 0x00, 0x00, 0x00, 
/* -306- */
0x00, 0x00, 0x00, 0x00, 
/* -307- */
0x00, 0x00, 0x00, 0x00, 
/* -308- */
0x00, 0x00, 0x00, 0x00, 
/* -309- */
0x00, 0x00, 0x00, 0x00, 
/* -310- */
0x00, 0x00, 0x00, 0x00, 
/* -311- */
0x00, 0x00, 0x00, 0x00, 
/* -312- */
0x00, 0x00, 0x00, 0x00, 
/* -313- */
0x00, 0x00, 0x00, 0x00, 
/* -314- */
0x00, 0x00, 0x00, 0x00, 
/* -315- */
0x00, 0x00, 0x00, 0x00, 
/* -316- */
0x00, 0x00, 0x00, 0x00, 
/* -317- */
0x00, 0x00, 0x00, 0x00, 
/* -318- */
0x00, 0x00, 0x00, 0x00, 
/* -319- */
0x00, 0x00, 0x00, 0x00, 
/* -320- */
0x00, 0x00, 0x00, 0x00, 
/* -321- */
0x00, 0x00, 0x00, 0x00, 
/* -322- */
0x00, 0x00, 0x00, 0x00, 
/* -323- */
0x00, 0x00, 0x00, 0x00, 
/* -324- */
0x00, 0x00, 0x00, 0x00, 
/* -325- */
0x00, 0xfd, 0x1b, 0x00, 
/* -326- */
0xc0, 0xff, 0xbf, 0x00, 
/* -327- */
0xe0, 0x5f, 0xfe, 0x01, 
/* -328- */
0xf4, 0x02, 0xf0, 0x03, 
/* -329- */
0xf8, 0xff, 0xff, 0x03, 
/* -330- */
0xf8, 0xff, 0xff, 0x07, 
/* -331- */
0xf4, 0xaa, 0xaa, 0x02, 
/* -332- */
0xf0, 0x02, 0x00, 0x00, 
/* -333- */
0xe0, 0xaf, 0xfe, 0x03, 
/* -334- */
0x80, 0xff, 0xff, 0x03, 
/* -335- */
0x00, 0xf9, 0x6f, 0x00, 
};
ARM_ALIGN(4) ARM_SECTION("arm2d.asset.c_bmpDigitsFontA4Alpha")
const uint8_t c_bmpDigitsFontA4Alpha[8*336] = {
/* -0- */
0x00, 0x00, 0x50, 0xdb, 0x6b, 0x00, 0x00, 0x00, 
/* -1- */
0x00, 0x00, 0xf8, 0xff, 0xff, 0x09, 0x00, 0x00, 
/* -2- */
0x00, 0x50, 0xff, 0xbe, 0xfe, 0x5f, 0x00, 0x00, 
/* -3- */
0x00, 0xc0, 0xdf, 0x01, 0xd1, 0xdf, 0x00, 0x00, 
/* -4- */
0x00, 0xf3, 0x5f, 0x00, 0x50, 0xff, 0x04, 0x00, 
/* -5- */
0x00, 0xf6, 0x1f, 0x00, 0x10, 0xfe, 0x07, 0x00, 
/* -6- */
0x00, 0xf7, 0x0e, 0x00, 0x00, 0xfd, 0x08, 0x00, 
/* -7- */
0x00, 0xf7, 0x0e, 0x00, 0x00, 0xfd, 0x08, 0x00, 
/* -8- */
0x00, 0xf7, 0x0e, 0x00, 0x00, 0xfd, 0x08, 0x00, 
/* -9- */
0x00, 0xf7, 0x0e, 0x00, 0x00, 0xfd, 0x08, 0x00, 
/* -10- */
0x00, 0xf5, 0x2f, 0x00, 0x10, 0xff, 0x06, 0x00, 
/* -11- */
0x00, 0xf2, 0x7f, 0x00, 0x60, 0xff, 0x03, 0x00, 
/* -12- */
0x00, 0xb0, 0xef, 0x14, 0xe4, 0xcf, 0x00, 0x00, 
/* -13- */
0x00, 0x30, 0xff, 0xef, 0xff, 0x4f, 0x00, 0x00, 
/* -14- */
0x00, 0x00, 0xf6, 0xff, 0xff, 0x06, 0x00, 0x00, 
/* -15- */
0x00, 0x00, 0x20, 0x76, 0x26, 0x00, 0x00, 0x00, 
/* -16- */
0x00, 0x00, 0x00, 0x41, 0x05, 0x00, 0x00, 0x00, 
/* -17- */
0x00, 0x30, 0xc8, 0xfe, 0x0c, 0x00, 0x00, 0x00, 
/* -18- */
0x00, 0xf5, 0xff, 0xff, 0x0b, 0x00, 0x00, 0x00, 
/* -19- */
0x00, 0xf5, 0xcf, 0xfd, 0x0b, 0x00, 0x00, 0x00, 
/* -20- */
0x00, 0x30, 0x02, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -21- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -22- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -23- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -24- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -25- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -26- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -27- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -28- */
0x00, 0x00, 0x11, 0xfa, 0x1c, 0x11, 0x00, 0x00, 
/* -29- */
0x00, 0xd4, 0xee, 0xff, 0xef, 0xee, 0x05, 0x00, 
/* -30- */
0x00, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 
/* -31- */
0x00, 0x50, 0x66, 0x66, 0x66, 0x56, 0x00, 0x00, 
/* -32- */
0x00, 0x00, 0x40, 0x87, 0x37, 0x00, 0x00, 0x00, 
/* -33- */
0x00, 0x20, 0xfc, 0xff, 0xff, 0x0a, 0x00, 0x00, 
/* -34- */
0x00, 0xd1, 0xff, 0xde, 0xff, 0x9f, 0x00, 0x00, 
/* -35- */
0x00, 0xf7, 0x8f, 0x01, 0xc2, 0xff, 0x02, 0x00, 
/* -36- */
0x00, 0xf9, 0x0c, 0x00, 0x30, 0xff, 0x04, 0x00, 
/* -37- */
0x00, 0x82, 0x02, 0x00, 0x50, 0xff, 0x04, 0x00, 
/* -38- */
0x00, 0x00, 0x00, 0x00, 0xd2, 0xef, 0x01, 0x00, 
/* -39- */
0x00, 0x00, 0x00, 0x20, 0xfd, 0x7f, 0x00, 0x00, 
/* -40- */
0x00, 0x00, 0x00, 0xe3, 0xff, 0x08, 0x00, 0x00, 
/* -41- */
0x00, 0x00, 0x50, 0xfe, 0x8f, 0x00, 0x00, 0x00, 
/* -42- */
0x00, 0x00, 0xf6, 0xff, 0x07, 0x00, 0x00, 0x00, 
/* -43- */
0x00, 0x80, 0xff, 0x5e, 0x00, 0x00, 0x00, 0x00, 
/* -44- */
0x00, 0xfa, 0xff, 0x16, 0x11, 0x43, 0x00, 0x00, 
/* -45- */
0x20, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x04, 0x00, 
/* -46- */
0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 
/* -47- */
0x00, 0x66, 0x56, 0x55, 0x55, 0x66, 0x02, 0x00, 
/* -48- */
0x00, 0x00, 0x50, 0x98, 0x58, 0x00, 0x00, 0x00, 
/* -49- */
0x00, 0x50, 0xfd, 0xff, 0xff, 0x2c, 0x00, 0x00, 
/* -50- */
0x00, 0xf2, 0xff, 0xcd, 0xfe, 0xcf, 0x00, 0x00, 
/* -51- */
0x00, 0xe1, 0x6f, 0x00, 0x91, 0xff, 0x03, 0x00, 
/* -52- */
0x00, 0x20, 0x02, 0x00, 0x20, 0xff, 0x05, 0x00, 
/* -53- */
0x00, 0x00, 0x00, 0x00, 0x90, 0xff, 0x03, 0x00, 
/* -54- */
0x00, 0x00, 0x10, 0xb9, 0xfd, 0xbf, 0x00, 0x00, 
/* -55- */
0x00, 0x00, 0x40, 0xff, 0xff, 0x3f, 0x00, 0x00, 
/* -56- */
0x00, 0x00, 0x10, 0xc9, 0xfe, 0xcf, 0x01, 0x00, 
/* -57- */
0x00, 0x00, 0x00, 0x00, 0xa2, 0xff, 0x07, 0x00, 
/* -58- */
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0b, 0x00, 
/* -59- */
0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x0c, 0x00, 
/* -60- */
0x00, 0x84, 0x03, 0x00, 0x50, 0xfe, 0x0a, 0x00, 
/* -61- */
0x00, 0xfc, 0xcf, 0xcb, 0xfd, 0xff, 0x03, 0x00, 
/* -62- */
0x00, 0xf7, 0xff, 0xff, 0xff, 0x5e, 0x00, 0x00, 
/* -63- */
0x00, 0x30, 0x97, 0xaa, 0x58, 0x01, 0x00, 0x00, 
/* -64- */
0x00, 0x00, 0x00, 0x10, 0x44, 0x04, 0x00, 0x00, 
/* -65- */
0x00, 0x00, 0x00, 0xa0, 0xff, 0x0e, 0x00, 0x00, 
/* -66- */
0x00, 0x00, 0x00, 0xf4, 0xff, 0x0d, 0x00, 0x00, 
/* -67- */
0x00, 0x00, 0x00, 0xfc, 0xff, 0x0d, 0x00, 0x00, 
/* -68- */
0x00, 0x00, 0x70, 0xff, 0xfe, 0x0d, 0x00, 0x00, 
/* -69- */
0x00, 0x00, 0xe1, 0xcf, 0xf8, 0x0d, 0x00, 0x00, 
/* -70- */
0x00, 0x00, 0xf9, 0x4f, 0xf7, 0x0d, 0x00, 0x00, 
/* -71- */
0x00, 0x30, 0xff, 0x0b, 0xf7, 0x0d, 0x00, 0x00, 
/* -72- */
0x00, 0xb0, 0xef, 0x02, 0xf7, 0x0d, 0x00, 0x00, 
/* -73- */
0x00, 0xf5, 0xcf, 0x55, 0xfa, 0x4e, 0x00, 0x00, 
/* -74- */
0x00, 0xfa, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00, 
/* -75- */
0x00, 0xf9, 0xff, 0xff, 0xff, 0xef, 0x02, 0x00, 
/* -76- */
0x00, 0x21, 0x22, 0x42, 0xfa, 0x3e, 0x00, 0x00, 
/* -77- */
0x00, 0x00, 0x00, 0xfa, 0xff, 0xef, 0x03, 0x00, 
/* -78- */
0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x00, 
/* -79- */
0x00, 0x00, 0x00, 0x41, 0x44, 0x34, 0x00, 0x00, 
/* -80- */
0x00, 0x40, 0x55, 0x55, 0x55, 0x14, 0x00, 0x00, 
/* -81- */
0x00, 0xb0, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x00, 
/* -82- */
0x00, 0xb0, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 
/* -83- */
0x00, 0xb0, 0xbf, 0x22, 0x22, 0x01, 0x00, 0x00, 
/* -84- */
0x00, 0xb0, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -85- */
0x00, 0xb0, 0xdf, 0xb8, 0x7a, 0x02, 0x00, 0x00, 
/* -86- */
0x00, 0xb0, 0xff, 0xff, 0xff, 0x4e, 0x00, 0x00, 
/* -87- */
0x00, 0xb0, 0xff, 0xbe, 0xfc, 0xef, 0x01, 0x00, 
/* -88- */
0x00, 0x40, 0x6a, 0x01, 0x60, 0xff, 0x08, 0x00, 
/* -89- */
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0b, 0x00, 
/* -90- */
0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x0c, 0x00, 
/* -91- */
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0b, 0x00, 
/* -92- */
0x00, 0xd8, 0x16, 0x00, 0x71, 0xff, 0x08, 0x00, 
/* -93- */
0x00, 0xfd, 0xef, 0xdd, 0xfe, 0xef, 0x02, 0x00, 
/* -94- */
0x00, 0xd4, 0xff, 0xff, 0xff, 0x3d, 0x00, 0x00, 
/* -95- */
0x00, 0x00, 0x84, 0x99, 0x47, 0x00, 0x00, 0x00, 
/* -96- */
0x00, 0x00, 0x00, 0x20, 0xa7, 0x9b, 0x03, 0x00, 
/* -97- */
0x00, 0x00, 0x00, 0xf7, 0xff, 0xff, 0x1e, 0x00, 
/* -98- */
0x00, 0x00, 0xa0, 0xff, 0xcf, 0xeb, 0x0b, 0x00, 
/* -99- */
0x00, 0x00, 0xf8, 0xcf, 0x03, 0x10, 0x00, 0x00, 
/* -100- */
0x00, 0x30, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x00, 
/* -101- */
0x00, 0x90, 0xff, 0x02, 0x01, 0x00, 0x00, 0x00, 
/* -102- */
0x00, 0xc0, 0xcf, 0xd8, 0xef, 0x19, 0x00, 0x00, 
/* -103- */
0x00, 0xd0, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, 
/* -104- */
0x00, 0xd0, 0xff, 0xbf, 0xb7, 0xff, 0x07, 0x00, 
/* -105- */
0x00, 0xd0, 0xff, 0x0a, 0x00, 0xfc, 0x0d, 0x00, 
/* -106- */
0x00, 0xb0, 0xef, 0x01, 0x00, 0xf6, 0x1e, 0x00, 
/* -107- */
0x00, 0x80, 0xef, 0x01, 0x00, 0xf7, 0x1f, 0x00, 
/* -108- */
0x00, 0x30, 0xff, 0x1a, 0x30, 0xfd, 0x0d, 0x00, 
/* -109- */
0x00, 0x00, 0xfb, 0xef, 0xfd, 0xff, 0x07, 0x00, 
/* -110- */
0x00, 0x00, 0xb1, 0xff, 0xff, 0x9f, 0x00, 0x00, 
/* -111- */
0x00, 0x00, 0x00, 0x74, 0x78, 0x03, 0x00, 0x00, 
/* -112- */
0x00, 0x32, 0x33, 0x22, 0x22, 0x32, 0x01, 0x00, 
/* -113- */
0x00, 0xfa, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 
/* -114- */
0x00, 0xfa, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 
/* -115- */
0x00, 0xf9, 0x4c, 0x44, 0x84, 0xff, 0x04, 0x00, 
/* -116- */
0x00, 0x72, 0x02, 0x00, 0xa0, 0xdf, 0x00, 0x00, 
/* -117- */
0x00, 0x00, 0x00, 0x00, 0xe1, 0x9f, 0x00, 0x00, 
/* -118- */
0x00, 0x00, 0x00, 0x00, 0xf5, 0x4f, 0x00, 0x00, 
/* -119- */
0x00, 0x00, 0x00, 0x00, 0xfa, 0x0d, 0x00, 0x00, 
/* -120- */
0x00, 0x00, 0x00, 0x10, 0xfe, 0x09, 0x00, 0x00, 
/* -121- */
0x00, 0x00, 0x00, 0x50, 0xff, 0x04, 0x00, 0x00, 
/* -122- */
0x00, 0x00, 0x00, 0xa0, 0xdf, 0x00, 0x00, 0x00, 
/* -123- */
0x00, 0x00, 0x00, 0xe1, 0x9f, 0x00, 0x00, 0x00, 
/* -124- */
0x00, 0x00, 0x00, 0xf5, 0x4f, 0x00, 0x00, 0x00, 
/* -125- */
0x00, 0x00, 0x00, 0xfa, 0x0e, 0x00, 0x00, 0x00, 
/* -126- */
0x00, 0x00, 0x00, 0xfc, 0x09, 0x00, 0x00, 0x00, 
/* -127- */
0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 
/* -128- */
0x00, 0x00, 0x30, 0x87, 0x47, 0x00, 0x00, 0x00, 
/* -129- */
0x00, 0x00, 0xf9, 0xff, 0xff, 0x1a, 0x00, 0x00, 
/* -130- */
0x00, 0x90, 0xff, 0xdf, 0xff, 0xaf, 0x00, 0x00, 
/* -131- */
0x00, 0xf1, 0xcf, 0x02, 0xb2, 0xff, 0x02, 0x00, 
/* -132- */
0x00, 0xf4, 0x4f, 0x00, 0x30, 0xff, 0x05, 0x00, 
/* -133- */
0x00, 0xf3, 0x5f, 0x00, 0x50, 0xff, 0x04, 0x00, 
/* -134- */
0x00, 0xd0, 0xef, 0x46, 0xe6, 0xef, 0x01, 0x00, 
/* -135- */
0x00, 0x40, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, 
/* -136- */
0x00, 0x50, 0xff, 0xff, 0xff, 0x6f, 0x00, 0x00, 
/* -137- */
0x00, 0xe1, 0xff, 0x58, 0xf8, 0xff, 0x02, 0x00, 
/* -138- */
0x00, 0xf5, 0x6f, 0x00, 0x50, 0xff, 0x07, 0x00, 
/* -139- */
0x00, 0xf7, 0x1e, 0x00, 0x00, 0xfe, 0x08, 0x00, 
/* -140- */
0x00, 0xf5, 0x6f, 0x00, 0x50, 0xff, 0x06, 0x00, 
/* -141- */
0x00, 0xe1, 0xff, 0xbc, 0xfc, 0xef, 0x02, 0x00, 
/* -142- */
0x00, 0x40, 0xfe, 0xff, 0xff, 0x5e, 0x00, 0x00, 
/* -143- */
0x00, 0x00, 0x61, 0xaa, 0x6a, 0x01, 0x00, 0x00, 
/* -144- */
0x00, 0x00, 0x10, 0x97, 0x48, 0x00, 0x00, 0x00, 
/* -145- */
0x00, 0x00, 0xe5, 0xff, 0xff, 0x0a, 0x00, 0x00, 
/* -146- */
0x00, 0x20, 0xff, 0xdf, 0xfe, 0x9f, 0x00, 0x00, 
/* -147- */
0x00, 0x90, 0xff, 0x05, 0xb2, 0xff, 0x03, 0x00, 
/* -148- */
0x00, 0xd0, 0xaf, 0x00, 0x20, 0xff, 0x08, 0x00, 
/* -149- */
0x00, 0xe1, 0x7f, 0x00, 0x00, 0xfc, 0x0b, 0x00, 
/* -150- */
0x00, 0xd0, 0xaf, 0x00, 0x30, 0xff, 0x0e, 0x00, 
/* -151- */
0x00, 0x90, 0xff, 0x04, 0xd2, 0xff, 0x1e, 0x00, 
/* -152- */
0x00, 0x30, 0xff, 0xcf, 0xfe, 0xff, 0x1f, 0x00, 
/* -153- */
0x00, 0x00, 0xf5, 0xff, 0xff, 0xfe, 0x1e, 0x00, 
/* -154- */
0x00, 0x00, 0x20, 0xa8, 0x49, 0xfc, 0x0c, 0x00, 
/* -155- */
0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, 0x00, 
/* -156- */
0x00, 0x00, 0x01, 0x20, 0xfa, 0xcf, 0x00, 0x00, 
/* -157- */
0x00, 0xb0, 0xce, 0xfc, 0xff, 0x2d, 0x00, 0x00, 
/* -158- */
0x00, 0xd0, 0xff, 0xff, 0xaf, 0x01, 0x00, 0x00, 
/* -159- */
0x00, 0x20, 0xb8, 0x8a, 0x03, 0x00, 0x00, 0x00, 
/* -160- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -161- */
0x00, 0x51, 0x66, 0x66, 0x05, 0x00, 0x00, 0x00, 
/* -162- */
0x00, 0xfa, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 
/* -163- */
0x00, 0xe7, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 
/* -164- */
0x00, 0x10, 0xe3, 0xff, 0xef, 0x01, 0x00, 0x00, 
/* -165- */
0x00, 0x00, 0xf5, 0xaf, 0xff, 0x06, 0x00, 0x00, 
/* -166- */
0x00, 0x00, 0xfb, 0x1d, 0xfd, 0x0c, 0x00, 0x00, 
/* -167- */
0x00, 0x20, 0xff, 0x08, 0xf7, 0x3f, 0x00, 0x00, 
/* -168- */
0x00, 0x80, 0xff, 0x02, 0xe2, 0x9f, 0x00, 0x00, 
/* -169- */
0x00, 0xd0, 0xff, 0xcc, 0xfc, 0xef, 0x01, 0x00, 
/* -170- */
0x00, 0xf5, 0xff, 0xff, 0xff, 0xff, 0x06, 0x00, 
/* -171- */
0x00, 0xfb, 0xae, 0xaa, 0xaa, 0xfe, 0x0c, 0x00, 
/* -172- */
0x30, 0xff, 0x09, 0x00, 0x00, 0xf8, 0x4f, 0x00, 
/* -173- */
0xfa, 0xff, 0xef, 0x03, 0xd2, 0xff, 0xff, 0x0b, 
/* -174- */
0xfc, 0xff, 0xff, 0x04, 0xf3, 0xff, 0xff, 0x0d, 
/* -175- */
0x51, 0x55, 0x45, 0x00, 0x30, 0x55, 0x55, 0x02, 
/* -176- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -177- */
0x30, 0x66, 0x66, 0x66, 0x46, 0x01, 0x00, 0x00, 
/* -178- */
0xe1, 0xff, 0xff, 0xff, 0xff, 0x5d, 0x00, 0x00, 
/* -179- */
0xb0, 0xff, 0xff, 0xee, 0xff, 0xff, 0x03, 0x00, 
/* -180- */
0x00, 0xf4, 0x5f, 0x11, 0x62, 0xfe, 0x0a, 0x00, 
/* -181- */
0x00, 0xf3, 0x3f, 0x00, 0x00, 0xfa, 0x0c, 0x00, 
/* -182- */
0x00, 0xf3, 0x4f, 0x00, 0x50, 0xfe, 0x0a, 0x00, 
/* -183- */
0x00, 0xf3, 0xdf, 0xcb, 0xfd, 0xff, 0x03, 0x00, 
/* -184- */
0x00, 0xf3, 0xff, 0xff, 0xff, 0xef, 0x04, 0x00, 
/* -185- */
0x00, 0xf3, 0xcf, 0xaa, 0xdb, 0xff, 0x3f, 0x00, 
/* -186- */
0x00, 0xf3, 0x3f, 0x00, 0x00, 0xf6, 0x9f, 0x00, 
/* -187- */
0x00, 0xf3, 0x3f, 0x00, 0x00, 0xb0, 0xcf, 0x00, 
/* -188- */
0x00, 0xf5, 0x6f, 0x22, 0x22, 0xe5, 0xaf, 0x00, 
/* -189- */
0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 
/* -190- */
0xd1, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x06, 0x00, 
/* -191- */
0x20, 0x55, 0x55, 0x55, 0x55, 0x03, 0x00, 0x00, 
/* -192- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -193- */
0x00, 0x00, 0x61, 0xca, 0x8b, 0x43, 0x05, 0x00, 
/* -194- */
0x00, 0x30, 0xfd, 0xff, 0xff, 0xff, 0x3f, 0x00, 
/* -195- */
0x00, 0xe3, 0xff, 0xbd, 0xeb, 0xff, 0x4f, 0x00, 
/* -196- */
0x00, 0xfc, 0x7f, 0x00, 0x20, 0xfb, 0x4f, 0x00, 
/* -197- */
0x40, 0xff, 0x08, 0x00, 0x00, 0xf2, 0x3f, 0x00, 
/* -198- */
0x80, 0xef, 0x01, 0x00, 0x00, 0x80, 0x09, 0x00, 
/* -199- */
0x90, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -200- */
0x90, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -201- */
0x90, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -202- */
0x80, 0xef, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -203- */
0x40, 0xff, 0x08, 0x00, 0x00, 0x30, 0x17, 0x00, 
/* -204- */
0x00, 0xfb, 0x8f, 0x02, 0x10, 0xe5, 0x9f, 0x00, 
/* -205- */
0x00, 0xe2, 0xff, 0xdf, 0xed, 0xff, 0x5f, 0x00, 
/* -206- */
0x00, 0x20, 0xfb, 0xff, 0xff, 0xdf, 0x06, 0x00, 
/* -207- */
0x00, 0x00, 0x30, 0x97, 0x89, 0x14, 0x00, 0x00, 
/* -208- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -209- */
0x10, 0x43, 0x33, 0x33, 0x02, 0x00, 0x00, 0x00, 
/* -210- */
0xc0, 0xff, 0xff, 0xff, 0xcf, 0x05, 0x00, 0x00, 
/* -211- */
0xc0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 
/* -212- */
0x10, 0xfb, 0x3d, 0x43, 0xe7, 0xff, 0x03, 0x00, 
/* -213- */
0x00, 0xf9, 0x0c, 0x00, 0x30, 0xfe, 0x0b, 0x00, 
/* -214- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xf8, 0x2f, 0x00, 
/* -215- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xf3, 0x4f, 0x00, 
/* -216- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xf2, 0x4f, 0x00, 
/* -217- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xf2, 0x4f, 0x00, 
/* -218- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xf4, 0x3f, 0x00, 
/* -219- */
0x00, 0xf9, 0x0c, 0x00, 0x00, 0xfa, 0x1e, 0x00, 
/* -220- */
0x00, 0xfa, 0x0c, 0x10, 0xa2, 0xff, 0x09, 0x00, 
/* -221- */
0x90, 0xff, 0xef, 0xee, 0xff, 0xcf, 0x01, 0x00, 
/* -222- */
0xe1, 0xff, 0xff, 0xff, 0xff, 0x1a, 0x00, 0x00, 
/* -223- */
0x40, 0x87, 0x88, 0x78, 0x36, 0x00, 0x00, 0x00, 
/* -224- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -225- */
0x10, 0x44, 0x44, 0x44, 0x44, 0x44, 0x03, 0x00, 
/* -226- */
0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x00, 
/* -227- */
0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x00, 
/* -228- */
0x10, 0xf5, 0x6f, 0x33, 0x32, 0xfa, 0x0c, 0x00, 
/* -229- */
0x00, 0xf2, 0x4f, 0x10, 0x04, 0xf9, 0x0c, 0x00, 
/* -230- */
0x00, 0xf2, 0x4f, 0xb0, 0x6f, 0xd3, 0x07, 0x00, 
/* -231- */
0x00, 0xf2, 0xbf, 0xfa, 0x8f, 0x00, 0x00, 0x00, 
/* -232- */
0x00, 0xf2, 0xff, 0xff, 0x8f, 0x00, 0x00, 0x00, 
/* -233- */
0x00, 0xf2, 0xdf, 0xfc, 0x8f, 0x00, 0x00, 0x00, 
/* -234- */
0x00, 0xf2, 0x4f, 0xc0, 0x7f, 0x80, 0x1a, 0x00, 
/* -235- */
0x00, 0xf2, 0x4f, 0x30, 0x06, 0xf1, 0x4f, 0x00, 
/* -236- */
0x00, 0xf3, 0x5f, 0x01, 0x10, 0xf3, 0x5f, 0x00, 
/* -237- */
0x90, 0xfe, 0xef, 0xee, 0xee, 0xfe, 0x5f, 0x00, 
/* -238- */
0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 
/* -239- */
0x30, 0x77, 0x77, 0x77, 0x77, 0x77, 0x27, 0x00, 
/* -240- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -241- */
0x00, 0x42, 0x55, 0x55, 0x44, 0x44, 0x44, 0x00, 
/* -242- */
0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 
/* -243- */
0x20, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 
/* -244- */
0x00, 0x71, 0xff, 0x24, 0x22, 0x72, 0xff, 0x02, 
/* -245- */
0x00, 0x50, 0xef, 0x01, 0x43, 0x40, 0xff, 0x02, 
/* -246- */
0x00, 0x50, 0xef, 0x01, 0xfe, 0x13, 0x9c, 0x00, 
/* -247- */
0x00, 0x50, 0xff, 0xbb, 0xff, 0x05, 0x00, 0x00, 
/* -248- */
0x00, 0x50, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 
/* -249- */
0x00, 0x50, 0xff, 0xcc, 0xff, 0x05, 0x00, 0x00, 
/* -250- */
0x00, 0x50, 0xef, 0x11, 0xff, 0x03, 0x00, 0x00, 
/* -251- */
0x00, 0x50, 0xef, 0x01, 0x54, 0x00, 0x00, 0x00, 
/* -252- */
0x00, 0x60, 0xff, 0x13, 0x00, 0x00, 0x00, 0x00, 
/* -253- */
0x10, 0xfc, 0xff, 0xee, 0x9e, 0x00, 0x00, 0x00, 
/* -254- */
0x30, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x00, 0x00, 
/* -255- */
0x00, 0x64, 0x66, 0x66, 0x26, 0x00, 0x00, 0x00, 
/* -256- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -257- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -258- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -259- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -260- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -261- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -262- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -263- */
0x00, 0x51, 0x55, 0x55, 0x55, 0x55, 0x01, 0x00, 
/* -264- */
0x00, 0xf4, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 
/* -265- */
0x00, 0xd3, 0xdd, 0xdd, 0xdd, 0xdd, 0x04, 0x00, 
/* -266- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -267- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -268- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -269- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -270- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -271- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -272- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -273- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -274- */
0x00, 0x00, 0x00, 0xc4, 0x05, 0x00, 0x00, 0x00, 
/* -275- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -276- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -277- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -278- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -279- */
0x00, 0x76, 0x77, 0xfd, 0x7d, 0x77, 0x06, 0x00, 
/* -280- */
0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0x00, 
/* -281- */
0x30, 0xed, 0xee, 0xff, 0xef, 0xee, 0x3d, 0x00, 
/* -282- */
0x00, 0x10, 0x11, 0xfb, 0x1b, 0x11, 0x00, 0x00, 
/* -283- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -284- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -285- */
0x00, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x00, 
/* -286- */
0x00, 0x00, 0x00, 0xf8, 0x09, 0x00, 0x00, 0x00, 
/* -287- */
0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x00, 
/* -288- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -289- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -290- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -291- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -292- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -293- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -294- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -295- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -296- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -297- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -298- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -299- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -300- */
0x00, 0x00, 0x00, 0x73, 0x04, 0x00, 0x00, 0x00, 
/* -301- */
0x00, 0x00, 0x20, 0xff, 0x3f, 0x00, 0x00, 0x00, 
/* -302- */
0x00, 0x00, 0x20, 0xff, 0x4f, 0x00, 0x00, 0x00, 
/* -303- */
0x00, 0x00, 0x00, 0xa6, 0x07, 0x00, 0x00, 0x00, 
/* -304- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -305- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -306- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -307- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -308- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -309- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -310- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -311- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -312- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -313- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -314- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -315- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -316- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -317- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -318- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -319- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -320- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -321- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -322- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -323- */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
/* -324- */
0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x00, 
/* -325- */
0x00, 0x00, 0xd7, 0xff, 0xbe, 0x05, 0x00, 0x00, 
/* -326- */
0x00, 0xc1, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 
/* -327- */
0x00, 0xfb, 0xcf, 0x57, 0xe8, 0xff, 0x06, 0x00, 
/* -328- */
0x40, 0xff, 0x0a, 0x00, 0x20, 0xfd, 0x0d, 0x00, 
/* -329- */
0x80, 0xff, 0xdd, 0xdd, 0xcd, 0xfe, 0x3f, 0x00, 
/* -330- */
0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 
/* -331- */
0x70, 0xff, 0x8a, 0x99, 0x99, 0x88, 0x28, 0x00, 
/* -332- */
0x30, 0xff, 0x1b, 0x00, 0x00, 0x31, 0x03, 0x00, 
/* -333- */
0x00, 0xf9, 0xef, 0x9b, 0xca, 0xfe, 0x3f, 0x00, 
/* -334- */
0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x00, 
/* -335- */
0x00, 0x00, 0xa5, 0xed, 0xcd, 0x59, 0x01, 0x00, 
};


extern const arm_2d_tile_t c_tileDigitsFontMask;

ARM_SECTION("arm2d.tile.c_tileDigitsFontMask")
const arm_2d_tile_t c_tileDigitsFontMask = {
    .tRegion = {
        .tSize = {
            .iWidth = 15,
            .iHeight = 336,
        },
    },
    .tInfo = {
        .bIsRoot = true,
        .bHasEnforcedColour = true,
        .tColourInfo = {
            .chScheme = ARM_2D_COLOUR_8BIT,
        },
    },
    .pchBuffer = (uint8_t *)c_bmpDigitsFontAlpha,
};




extern const arm_2d_tile_t c_tileDigitsFontA2Mask;

ARM_SECTION("arm2d.tile.c_tileDigitsFontA2Mask")
const arm_2d_tile_t c_tileDigitsFontA2Mask = {
    .tRegion = {
        .tSize = {
            .iWidth = 15,
            .iHeight = 336,
        },
    },
    .tInfo = {
        .bIsRoot = true,
        .bHasEnforcedColour = true,
        .tColourInfo = {
            .chScheme = ARM_2D_COLOUR_MASK_A2,
        },
    },
    .pchBuffer = (uint8_t *)c_bmpDigitsFontA2Alpha,
};


extern const arm_2d_tile_t c_tileDigitsFontA4Mask;

ARM_SECTION("arm2d.tile.c_tileDigitsFontA4Mask")
const arm_2d_tile_t c_tileDigitsFontA4Mask = {
    .tRegion = {
        .tSize = {
            .iWidth = 15,
            .iHeight = 336,
        },
    },
    .tInfo = {
        .bIsRoot = true,
        .bHasEnforcedColour = true,
        .tColourInfo = {
            .chScheme = ARM_2D_COLOUR_MASK_A4,
        },
    },
    .pchBuffer = (uint8_t *)c_bmpDigitsFontA4Alpha,
};




static 
IMPL_FONT_DRAW_CHAR(__digit_font_a2_draw_char);
                                        
static 
IMPL_FONT_DRAW_CHAR(__digit_font_a4_draw_char);

static 
IMPL_FONT_DRAW_CHAR(__digit_font_a8_draw_char);

static 
arm_2d_char_descriptor_t *
__digit_font_get_char_descriptor(const arm_2d_font_t *ptFont, 
                                    arm_2d_char_descriptor_t *ptDescriptor,
                                    uint8_t *pchCharCode);

struct {
    implement(arm_2d_user_font_t);

    arm_2d_char_idx_t tNumbers;
    arm_2d_char_idx_t tABCDEF;
    arm_2d_char_idx_t tMinor;
    arm_2d_char_idx_t tPlus;
    arm_2d_char_idx_t tDot;
    arm_2d_char_idx_t tE;
    arm_2d_char_idx_t tBlank;
} ARM_2D_FONT_A2_DIGITS_ONLY = {

    .use_as__arm_2d_user_font_t = {
        .use_as__arm_2d_font_t = {
            .tileFont = impl_child_tile(
                c_tileDigitsFontA2Mask,
                0,          /* x offset */
                0,          /* y offset */
                15,         /* width */
                336         /* height */
            ),
            .tCharSize = {
                .iWidth = 15,
                .iHeight = 16,
            },
            .nCount =  20,                             //!< Character count
            .fnGetCharDescriptor = &__digit_font_get_char_descriptor,
            .fnDrawChar = &__digit_font_a2_draw_char,
        },
        .hwCount = 7,
        .hwDefaultCharIndex = 6, /* tBlank */
    },
    
    .tNumbers = {
        .chStartCode = {'0'},
        .hwCount = 10,
        .hwOffset = 0,
    },
    
    .tABCDEF = {
        .chStartCode = {'A'},
        .hwCount = 6,
        .hwOffset = 10,
    },
    
    .tMinor = {
        .chStartCode = {'-'},
        .hwCount = 1,
        .hwOffset = 16,
    },
    
    .tPlus = {
        .chStartCode = {'+'},
        .hwCount = 1,
        .hwOffset = 17,
    },

    .tDot = {
        .chStartCode = {'.'},
        .hwCount = 1,
        .hwOffset = 18,
    },

    .tE = {
        .chStartCode = {'e'},
        .hwCount = 1,
        .hwOffset = 20,
    },
    .tBlank = {
        .chStartCode = {' '},
        .hwCount = 1,
        .hwOffset = 19,
    },
};


struct {
    implement(arm_2d_user_font_t);

    arm_2d_char_idx_t tNumbers;
    arm_2d_char_idx_t tABCDEF;
    arm_2d_char_idx_t tMinor;
    arm_2d_char_idx_t tPlus;
    arm_2d_char_idx_t tDot;
    arm_2d_char_idx_t tE;
    arm_2d_char_idx_t tBlank;
} ARM_2D_FONT_A4_DIGITS_ONLY = {

    .use_as__arm_2d_user_font_t = {
        .use_as__arm_2d_font_t = {
            .tileFont = impl_child_tile(
                c_tileDigitsFontA4Mask,
                0,          /* x offset */
                0,          /* y offset */
                15,         /* width */
                336         /* height */
            ),
            .tCharSize = {
                .iWidth = 15,
                .iHeight = 16,
            },
            .nCount =  20,                             //!< Character count
            .fnGetCharDescriptor = &__digit_font_get_char_descriptor,
            .fnDrawChar = &__digit_font_a4_draw_char,
        },
        .hwCount = 7,
        .hwDefaultCharIndex = 6, /* tBlank */
    },
    
    .tNumbers = {
        .chStartCode = {'0'},
        .hwCount = 10,
        .hwOffset = 0,
    },
    
    .tABCDEF = {
        .chStartCode = {'A'},
        .hwCount = 6,
        .hwOffset = 10,
    },
    
    .tMinor = {
        .chStartCode = {'-'},
        .hwCount = 1,
        .hwOffset = 16,
    },
    
    .tPlus = {
        .chStartCode = {'+'},
        .hwCount = 1,
        .hwOffset = 17,
    },

    .tDot = {
        .chStartCode = {'.'},
        .hwCount = 1,
        .hwOffset = 18,
    },

    .tE = {
        .chStartCode = {'e'},
        .hwCount = 1,
        .hwOffset = 20,
    },
    .tBlank = {
        .chStartCode = {' '},
        .hwCount = 1,
        .hwOffset = 19,
    },
};

struct {
    implement(arm_2d_user_font_t);

    arm_2d_char_idx_t tNumbers;
    arm_2d_char_idx_t tABCDEF;
    arm_2d_char_idx_t tMinor;
    arm_2d_char_idx_t tPlus;
    arm_2d_char_idx_t tDot;
    arm_2d_char_idx_t tE;
    arm_2d_char_idx_t tBlank;
} ARM_2D_FONT_A8_DIGITS_ONLY = {

    .use_as__arm_2d_user_font_t = {
        .use_as__arm_2d_font_t = {
            .tileFont = impl_child_tile(
                c_tileDigitsFontMask,
                0,          /* x offset */
                0,          /* y offset */
                15,         /* width */
                336         /* height */
             ),

            .tCharSize = {
                .iWidth = 15,
                .iHeight = 16,
            },
            .nCount =  20,                             //!< Character count
            .fnGetCharDescriptor = &__digit_font_get_char_descriptor,
            .fnDrawChar = &__digit_font_a8_draw_char,
        },
        .hwCount = 7,
        .hwDefaultCharIndex = 6, /* tBlank */
    },
    
    .tNumbers = {
        .chStartCode = {'0'},
        .hwCount = 10,
        .hwOffset = 0,
    },
    
    .tABCDEF = {
        .chStartCode = {'A'},
        .hwCount = 6,
        .hwOffset = 10,
    },
    
    .tMinor = {
        .chStartCode = {'-'},
        .hwCount = 1,
        .hwOffset = 16,
    },
    
    .tPlus = {
        .chStartCode = {'+'},
        .hwCount = 1,
        .hwOffset = 17,
    },

    .tDot = {
        .chStartCode = {'.'},
        .hwCount = 1,
        .hwOffset = 18,
    },

    .tE = {
        .chStartCode = {'e'},
        .hwCount = 1,
        .hwOffset = 20,
    },
    .tBlank = {
        .chStartCode = {' '},
        .hwCount = 1,
        .hwOffset = 19,
    },
};



#undef this
#define this (*ptThis)

static
IMPL_FONT_DRAW_CHAR(__digit_font_a2_draw_char)
{
    ARM_2D_UNUSED(fScale);
    return arm_2d_fill_colour_with_a2_mask_and_opacity( 
                                            ptTile, 
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour},
                                            chOpacity);
}

static
IMPL_FONT_DRAW_CHAR(__digit_font_a4_draw_char)
{
    ARM_2D_UNUSED(fScale);
    return arm_2d_fill_colour_with_a4_mask_and_opacity( 
                                            ptTile, 
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour},
                                            chOpacity);
}

static
IMPL_FONT_DRAW_CHAR(__digit_font_a8_draw_char)
{
    static arm_2d_op_fill_cl_msk_opa_trans_t s_tOP;
    const bool bIsNewFrame = true;
    static const arm_2d_location_t c_tCentre = {7,8};

    if (fScale == 0.0f) {
        if (chOpacity == 255) {
            return arm_2d_fill_colour_with_mask(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour});
        }

        return arm_2d_fill_colour_with_mask_and_opacity(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour},
                                            chOpacity);
    }

    arm_2d_location_t tTargetCenter = ptRegion->tLocation;
    tTargetCenter.iX += ptRegion->tSize.iWidth >> 1;
    tTargetCenter.iY += ptRegion->tSize.iHeight >> 1;

    return arm_2dp_fill_colour_with_mask_opacity_and_transform(
                                            &s_tOP,
                                            ptileChar,
                                            ptTile,
                                            NULL,
                                            c_tCentre,
                                            0.0f,
                                            fScale,
                                            tForeColour,
                                            chOpacity,
                                            &tTargetCenter);
}

static
IMPL_FONT_GET_CHAR_DESCRIPTOR(__digit_font_get_char_descriptor)
{
    assert(NULL != ptFont);
    assert(NULL != ptDescriptor);
    assert(NULL != pchCharCode);
        
    arm_2d_user_font_t *ptThis = (arm_2d_user_font_t *)ptFont;
    
    memset(ptDescriptor, 0, sizeof(arm_2d_char_descriptor_t));

    ptDescriptor->tileChar.ptParent = (arm_2d_tile_t *)&ptFont->tileFont;
    ptDescriptor->tileChar.tInfo.bDerivedResource = true;
    
    ptDescriptor->chCodeLength = 1;
    ptDescriptor->tileChar.tRegion.tSize = ptFont->tCharSize;
    ptDescriptor->iBearingX = 0;
    ptDescriptor->iBearingY = ptFont->tCharSize.iHeight;
    ptDescriptor->iAdvance = ptFont->tCharSize.iWidth;


    arm_foreach( arm_2d_char_idx_t, &ARM_2D_FONT_A8_DIGITS_ONLY.tNumbers, this.hwCount, ptItem) {
        if (    *pchCharCode >= ptItem->chStartCode[0] 
            &&  *pchCharCode < (ptItem->chStartCode[0] + ptItem->hwCount)) {
            int16_t iOffset = *pchCharCode - ptItem->chStartCode[0];
            
            ptDescriptor->tileChar.tRegion.tLocation.iY 
                = (ptItem->hwOffset + iOffset) * ptFont->tCharSize.iHeight;
            return ptDescriptor;
        }
    }

    /* default: use blank */
    ptDescriptor->tileChar.tRegion.tLocation.iY 
        = this.tLookUpTable[this.hwDefaultCharIndex].hwOffset 
        * ptFont->tCharSize.iHeight;

    return ptDescriptor;
}


#if defined(__clang__)
#   pragma clang diagnostic pop
#elif defined(__IS_COMPILER_ARM_COMPILER_5__)
#   pragma diag_warning=1296
#endif




================================================
FILE: project/mdk/RTE/Acceleration/GLCD_Fonts.c
================================================
/*-----------------------------------------------------------------------------
 * Name:    GLCD_Fonts.c
 * Purpose: Graphic fonts 6x8 (WxH) and 16x24 with horizontal pixel packing
 * Rev.:    1.0.1
 *----------------------------------------------------------------------------*/

/* Copyright (c) 2013 - 2017 ARM LIMITED

   All rights reserved.
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:
   - Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
   - 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.
   - Neither the name of ARM 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 COPYRIGHT HOLDERS AND 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.
   ---------------------------------------------------------------------------*/

#include <stdint.h>
#include "./arm_extra_lcd_printf.h"

#if defined(__clang__)
#   pragma clang diagnostic push
#   pragma clang diagnostic ignored "-Wunknown-warning-option"
#   pragma clang diagnostic ignored "-Wreserved-identifier"
#   pragma clang diagnostic ignored "-Wdeclaration-after-statement"
#   pragma clang diagnostic ignored "-Wcast-qual"
#endif

extern const uint8_t Font_6x8_h[(144-32)*8];
const uint8_t Font_6x8_h[(144-32)*8] = {
  /* 0x20: Space ' ' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x21: '!' */
  0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x04, 0x00,
  /* 0x22: '"' */
  0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x23: '#' */
  0x0A, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x0A, 0x00,
  /* 0x24: '$' */
  0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, 0x00,
  /* 0x25: '%' */
  0x03, 0x13, 0x08, 0x04, 0x02, 0x19, 0x18, 0x00,
  /* 0x26: '&' */
  0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16, 0x00,
  /* 0x27: ''' */
  0x0C, 0x0C, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,
  /* 0x28: '(' */
  0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00,
  /* 0x29: ')' */
  0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02, 0x00,
  /* 0x2A: '*' */
  0x00, 0x04, 0x15, 0x0E, 0x0E, 0x15, 0x04, 0x00,
  /* 0x2B: '+' */
  0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x00,
  /* 0x2C: ',' */
  0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x04, 0x02,
  /* 0x2D: '-' */
  0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00,
  /* 0x2E: '.' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00,
  /* 0x2F: '/' */
  0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00,
  /* 0x30: '0' */
  0x0E, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0E, 0x00,
  /* 0x31: '1' */
  0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00,
  /* 0x32: '2' */
  0x0E, 0x11, 0x10, 0x0E, 0x01, 0x01, 0x1F, 0x00,
  /* 0x33: '3' */
  0x1F, 0x10, 0x08, 0x0C, 0x10, 0x11, 0x0E, 0x00,
  /* 0x34: '4' */
  0x08, 0x0C, 0x0A, 0x09, 0x1F, 0x08, 0x08, 0x00,
  /* 0x35: '5' */
  0x1F, 0x01, 0x0F, 0x10, 0x10, 0x11, 0x0E, 0x00,
  /* 0x36: '6' */
  0x1C, 0x02, 0x01, 0x0F, 0x11, 0x11, 0x0E, 0x00,
  /* 0x37: '7' */
  0x1F, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00,
  /* 0x38: '8' */
  0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E, 0x00,
  /* 0x39: '9' */
  0x0E, 0x11, 0x11, 0x1E, 0x10, 0x08, 0x07, 0x00,
  /* 0x3A: ':' */
  0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
  /* 0x3B: ';' */
  0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x02, 0x00,
  /* 0x3C: '<' */
  0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00,
  /* 0x3D: '=' */
  0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00,
  /* 0x3E: '>' */
  0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02, 0x00,
  /* 0x3F: '?' */
  0x0E, 0x11, 0x10, 0x0C, 0x04, 0x00, 0x04, 0x00,
  /* 0x40: '@' */
  0x0E, 0x11, 0x15, 0x1D, 0x0D, 0x01, 0x1E, 0x00,
  /* 0x41: 'A' */
  0x04, 0x0A, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00,
  /* 0x42: 'B' */
  0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 0x00,
  /* 0x43: 'C' */
  0x0E, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x00,
  /* 0x44: 'D' */
  0x0F, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0F, 0x00,
  /* 0x45: 'E' */
  0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x1F, 0x00,
  /* 0x46: 'F' */
  0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01, 0x00,
  /* 0x47: 'G' */
  0x1E, 0x11, 0x01, 0x01, 0x19, 0x11, 0x1E, 0x00,
  /* 0x48: 'H' */
  0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 0x00,
  /* 0x49: 'I' */
  0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00,
  /* 0x4A: 'J' */
  0x1C, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00,
  /* 0x4B: 'K' */
  0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 0x00,
  /* 0x4C: 'L' */
  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x00,
  /* 0x4D: 'M' */
  0x11, 0x1B, 0x15, 0x15, 0x15, 0x11, 0x11, 0x00,
  /* 0x4E: 'N' */
  0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00,
  /* 0x4F: 'O' */
  0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00,
  /* 0x50: 'P' */
  0x0F, 0x11, 0x11, 0x0F, 0x01, 0x01, 0x01, 0x00,
  /* 0x51: 'Q' */
  0x0E, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16, 0x00,
  /* 0x52: 'R' */
  0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00,
  /* 0x53: 'S' */
  0x0E, 0x11, 0x01, 0x0E, 0x10, 0x11, 0x0E, 0x00,
  /* 0x54: 'T' */
  0x1F, 0x15, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00,
  /* 0x55: 'U' */
  0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00,
  /* 0x56: 'V' */
  0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00,
  /* 0x57: 'W' */
  0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A, 0x00,
  /* 0x58: 'X' */
  0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11, 0x00,
  /* 0x59: 'Y' */
  0x11, 0x11, 0x0A, 0x04, 0x04, 0x04, 0x04, 0x00,
  /* 0x5A: 'Z' */
  0x1F, 0x10, 0x08, 0x0E, 0x02, 0x01, 0x1F, 0x00,
  /* 0x5B: '[' */
  0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1E, 0x00,
  /* 0x5C: '\' */
  0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00, 0x00,
  /* 0x5D: ']' */
  0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00,
  /* 0x5E: '^' */
  0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x5F: '_' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00,
  /* 0x60: ''' */
  0x06, 0x06, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
  /* 0x61: 'a' */
  0x00, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00,
  /* 0x62: 'b' */
  0x01, 0x01, 0x0D, 0x13, 0x11, 0x13, 0x0D, 0x00,
  /* 0x63: 'c' */
  0x00, 0x00, 0x0E, 0x11, 0x01, 0x11, 0x0E, 0x00,
  /* 0x64: 'd' */
  0x10, 0x10, 0x16, 0x19, 0x11, 0x19, 0x16, 0x00,
  /* 0x65: 'e' */
  0x00, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x0E, 0x00,
  /* 0x66: 'f' */
  0x08, 0x14, 0x04, 0x0E, 0x04, 0x04, 0x04, 0x00,
  /* 0x67: 'g' */
  0x00, 0x00, 0x0E, 0x19, 0x19, 0x16, 0x10, 0x0E,
  /* 0x68: 'h' */
  0x01, 0x01, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00,
  /* 0x69: 'i' */
  0x04, 0x00, 0x06, 0x04, 0x04, 0x04, 0x0E, 0x00,
  /* 0x6A: 'j' */
  0x08, 0x00, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00,
  /* 0x6B: 'k' */
  0x01, 0x01, 0x09, 0x05, 0x03, 0x05, 0x09, 0x00,
  /* 0x6C: 'l' */
  0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00,
  /* 0x6D: 'm' */
  0x00, 0x00, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x00,
  /* 0x6E: 'n' */
  0x00, 0x00, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00,
  /* 0x6F: 'o' */
  0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00,
  /* 0x70: 'p' */
  0x00, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x01,
  /* 0x71: 'q' */
  0x00, 0x00, 0x16, 0x19, 0x19, 0x16, 0x10, 0x10,
  /* 0x72: 'r' */
  0x00, 0x00, 0x0D, 0x13, 0x01, 0x01, 0x01, 0x00,
  /* 0x73: 's' */
  0x00, 0x00, 0x1E, 0x01, 0x0E, 0x10, 0x0F, 0x00,
  /* 0x74: 't' */
  0x04, 0x04, 0x1F, 0x04, 0x04, 0x14, 0x08, 0x00,
  /* 0x75: 'u' */
  0x00, 0x00, 0x11, 0x11, 0x11, 0x19, 0x16, 0x00,
  /* 0x76: 'v' */
  0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00,
  /* 0x77: 'w' */
  0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0A, 0x00,
  /* 0x78: 'x' */
  0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00,
  /* 0x79: 'y' */
  0x00, 0x00, 0x11, 0x11, 0x1E, 0x10, 0x11, 0x0E,
  /* 0x7A: 'z' */
  0x00, 0x00, 0x1F, 0x08, 0x04, 0x02, 0x1F, 0x00,
  /* 0x7B: '{' */
  0x08, 0x04, 0x04, 0x02, 0x04, 0x04, 0x08, 0x00,
  /* 0x7C: '|' */
  0x04, 0x04, 0x04, 0x00, 0x04, 0x04, 0x04, 0x00,
  /* 0x7D: '}' */
  0x02, 0x04, 0x04, 0x08, 0x04, 0x04, 0x02, 0x00,
  /* 0x7E: '~' */
  0x02, 0x15, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x7F: ' ' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* Special Symbols  starting at character 0x80 */
  /* 0x80: Circle - Empty */
  0x00, 0x00, 0x0C, 0x12, 0x12, 0x0C, 0x00, 0x00,
  /* 0x81: Circle - Full */
  0x00, 0x00, 0x0C, 0x1E, 0x1E, 0x0C, 0x00, 0x00,
  /* 0x82: Square - Empty */
  0x00, 0x00, 0x1E, 0x12, 0x12, 0x1E, 0x00, 0x00,
  /* 0x83: Square - Full */
  0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00,
  /* 0x84: Up - Empty */
  0x00, 0x00, 0x0C, 0x0C, 0x12, 0x1E, 0x00, 0x00,
  /* 0x85: Up - Full */
  0x00, 0x00, 0x0C, 0x0C, 0x1E, 0x1E, 0x00, 0x00,
  /* 0x86: Down - Empty */
  0x00, 0x00, 0x1E, 0x12, 0x0C, 0x0C, 0x00, 0x00,
  /* 0x87: Down - Full */
  0x00, 0x00, 0x1E, 0x1E, 0x0C, 0x0C, 0x00, 0x00,
  /* 0x88: Left - Empty */
  0x00, 0x00, 0x18, 0x16, 0x16, 0x18, 0x00, 0x00,
  /* 0x89: Left - Full */
  0x00, 0x00, 0x18, 0x1E, 0x1E, 0x18, 0x00, 0x00,
  /* 0x8A: Right - Empty */
  0x00, 0x00, 0x06, 0x1A, 0x1A, 0x06, 0x00, 0x00,
  /* 0x8B: Right - Full */
  0x00, 0x00, 0x06, 0x1E, 0x1E, 0x06, 0x00, 0x00,
  /* 0x8C: Wait - Empty */
  0x00, 0x00, 0x0C, 0x12, 0x12, 0x0C, 0x00, 0x00,
  /* 0x8D: Wait - Full */
  0x00, 0x00, 0x0C, 0x1E, 0x1E, 0x0C, 0x00, 0x00,
  /* 0x8E: Walk - Empty */
  0x00, 0x00, 0x1E, 0x12, 0x12, 0x1E, 0x00, 0x00,
  /* 0x8F: Walk - Full */
  0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00,
};

static const uint8_t Font_16x24_h[(144-32)*48] = {
  /* 0x20: Space ' ' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x21: '!' */
  0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x22: '"' */
  0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCC, 0x00, 0xCC, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x23: '#' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0C, 0x60, 0x0C,
  0x60, 0x0C, 0x30, 0x06, 0x30, 0x06, 0xFE, 0x1F, 0xFE, 0x1F, 0x30, 0x06, 0x38, 0x07, 0x18, 0x03,
  0xFE, 0x1F, 0xFE, 0x1F, 0x18, 0x03, 0x18, 0x03, 0x8C, 0x01, 0x8C, 0x01, 0x8C, 0x01, 0x00, 0x00,
  /* 0x24: '$' */
  0x00, 0x00, 0x80, 0x00, 0xE0, 0x03, 0xF8, 0x0F, 0x9C, 0x0E, 0x8C, 0x1C, 0x8C, 0x18, 0x8C, 0x00,
  0x98, 0x00, 0xF8, 0x01, 0xE0, 0x07, 0x80, 0x0E, 0x80, 0x1C, 0x8C, 0x18, 0x8C, 0x18, 0x9C, 0x18,
  0xB8, 0x0C, 0xF0, 0x0F, 0xE0, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x25: '%' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x1B, 0x0C, 0x11, 0x0C, 0x11, 0x06, 0x11, 0x06,
  0x11, 0x03, 0x11, 0x03, 0x9B, 0x01, 0x8E, 0x01, 0xC0, 0x38, 0xC0, 0x6C, 0x60, 0x44, 0x60, 0x44,
  0x30, 0x44, 0x30, 0x44, 0x18, 0x44, 0x18, 0x6C, 0x0C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x26: '&' */
  0x00, 0x00, 0xE0, 0x01, 0xF0, 0x03, 0x38, 0x07, 0x18, 0x06, 0x18, 0x06, 0x30, 0x03, 0xF0, 0x01,
  0xF0, 0x00, 0xF8, 0x00, 0x9C, 0x31, 0x0E, 0x33, 0x06, 0x1E, 0x06, 0x1C, 0x06, 0x1C, 0x06, 0x3F,
  0xFC, 0x73, 0xF0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x27: ''' */
  0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x28: '(' */
  0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x00,
  0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00,
  0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00,
  /* 0x29: ')' */
  0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03,
  0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06,
  0x00, 0x03, 0x00, 0x03, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x20, 0x00, 0x00, 0x00,
  /* 0x2A: '*' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xD8, 0x06, 0xF8, 0x07, 0xE0, 0x01, 0x30, 0x03, 0x38, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x2B: '+' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFC, 0x3F, 0xFC, 0x3F, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x2C: ',' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x2D: '-' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x2E: '.' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x2F: '/' */
  0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00, 0x03,
  0x00, 0x03, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x30: '0' */
  0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0x38, 0x0E, 0x18, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18,
  0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x0C, 0x38, 0x0E,
  0xF0, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x31: '1' */
  0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0xC0, 0x01, 0xF0, 0x01, 0x98, 0x01, 0x88, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x32: '2' */
  0x00, 0x00, 0xE0, 0x03, 0xF8, 0x0F, 0x18, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x18,
  0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
  0xFC, 0x1F, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x33: '3' */
  0x00, 0x00, 0xE0, 0x01, 0xF8, 0x07, 0x18, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x0C, 0x00, 0x06,
  0xC0, 0x03, 0xC0, 0x07, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x0C,
  0xF8, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x34: '4' */
  0x00, 0x00, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x0F, 0x80, 0x0D, 0xC0, 0x0C, 0x60, 0x0C,
  0x60, 0x0C, 0x30, 0x0C, 0x18, 0x0C, 0x0C, 0x0C, 0xFC, 0x3F, 0xFC, 0x3F, 0x00, 0x0C, 0x00, 0x0C,
  0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x35: '5' */
  0x00, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0x18, 0x00, 0x18, 0x00, 0x0C, 0x00, 0xEC, 0x03, 0xFC, 0x07,
  0x1C, 0x0E, 0x00, 0x1C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x0C, 0x18, 0x1C, 0x0C, 0x18, 0x0E,
  0xF8, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x36: '6' */
  0x00, 0x00, 0xC0, 0x07, 0xF0, 0x0F, 0x38, 0x1C, 0x18, 0x18, 0x18, 0x00, 0x0C, 0x00, 0xCC, 0x03,
  0xEC, 0x0F, 0x3C, 0x0E, 0x1C, 0x1C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x18, 0x1C, 0x38, 0x0E,
  0xF0, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x37: '7' */
  0x00, 0x00, 0xFC, 0x1F, 0xFC, 0x1F, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x80, 0x03,
  0x80, 0x01, 0xC0, 0x01, 0xC0, 0x00, 0xE0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x70, 0x00, 0x30, 0x00,
  0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x38: '8' */
  0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0x38, 0x0E, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x38, 0x06,
  0xF0, 0x07, 0xF0, 0x07, 0x18, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x38, 0x0C,
  0xF8, 0x0F, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x39: '9' */
  0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0x38, 0x0E, 0x1C, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18,
  0x1C, 0x1C, 0x38, 0x1E, 0xF8, 0x1B, 0xE0, 0x19, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x1C, 0x0E,
  0xF8, 0x07, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3A: ':' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3B: ';' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3C: '<' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x10, 0x00, 0x1C, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0x18, 0x00, 0xF8, 0x00, 0xE0, 0x03,
  0x80, 0x0F, 0x00, 0x1C, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3D: '=' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3E: '>' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x38, 0x00, 0xF0, 0x01, 0xC0, 0x07, 0x00, 0x1F, 0x00, 0x18, 0x00, 0x1F, 0xC0, 0x07,
  0xF0, 0x01, 0x38, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x3F: '?' */
  0x00, 0x00, 0xE0, 0x03, 0xF8, 0x0F, 0x18, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x0C,
  0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x40: '@' */
  0x00, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x18, 0x18, 0x04, 0x20, 0xC2, 0x29, 0x22, 0x4A, 0x11, 0x44,
  0x09, 0x44, 0x09, 0x44, 0x09, 0x44, 0x09, 0x22, 0x11, 0x13, 0xE2, 0x0C, 0x02, 0x40, 0x04, 0x20,
  0x18, 0x18, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x41: 'A' */
  0x00, 0x00, 0x80, 0x03, 0x80, 0x03, 0xC0, 0x06, 0xC0, 0x06, 0xC0, 0x06, 0x60, 0x0C, 0x60, 0x0C,
  0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0xF8, 0x3F, 0xF8, 0x3F, 0x1C, 0x70, 0x0C, 0x60, 0x0C, 0x60,
  0x06, 0xC0, 0x06, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x42: 'B' */
  0x00, 0x00, 0xFC, 0x03, 0xFC, 0x0F, 0x0C, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x0C,
  0xFC, 0x07, 0xFC, 0x0F, 0x0C, 0x18, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x18,
  0xFC, 0x1F, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x43: 'C' */
  0x00, 0x00, 0xC0, 0x07, 0xF0, 0x1F, 0x38, 0x38, 0x1C, 0x30, 0x0C, 0x70, 0x06, 0x60, 0x06, 0x00,
  0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x60, 0x0C, 0x70, 0x1C, 0x30,
  0xF0, 0x1F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x44: 'D' */
  0x00, 0x00, 0xFE, 0x03, 0xFE, 0x0F, 0x06, 0x0E, 0x06, 0x18, 0x06, 0x18, 0x06, 0x30, 0x06, 0x30,
  0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x18, 0x06, 0x18, 0x06, 0x0E,
  0xFE, 0x0F, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x45: 'E' */
  0x00, 0x00, 0xFC, 0x3F, 0xFC, 0x3F, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
  0xFC, 0x1F, 0xFC, 0x1F, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
  0xFC, 0x3F, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x46: 'F' */
  0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
  0xF8, 0x1F, 0xF8, 0x1F, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
  0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x47: 'G' */
  0x00, 0x00, 0xE0, 0x0F, 0xF8, 0x3F, 0x3C, 0x78, 0x0E, 0x60, 0x06, 0xE0, 0x07, 0xC0, 0x03, 0x00,
  0x03, 0x00, 0x03, 0xFE, 0x03, 0xFE, 0x03, 0xC0, 0x07, 0xC0, 0x06, 0xC0, 0x0E, 0xC0, 0x3C, 0xF0,
  0xF8, 0x3F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x48: 'H' */
  0x00, 0x00, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30,
  0xFC, 0x3F, 0xFC, 0x3F, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30,
  0x0C, 0x30, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x49: 'I' */
  0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4A: 'J' */
  0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06,
  0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x18, 0x06, 0x18, 0x06, 0x38, 0x07,
  0xF0, 0x03, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4B: 'K' */
  0x00, 0x00, 0x06, 0x30, 0x06, 0x18, 0x06, 0x0C, 0x06, 0x06, 0x06, 0x03, 0x86, 0x01, 0xC6, 0x00,
  0x66, 0x00, 0x76, 0x00, 0xDE, 0x00, 0x8E, 0x01, 0x06, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x06, 0x18,
  0x06, 0x30, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4C: 'L' */
  0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
  0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
  0xF8, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4D: 'M' */
  0x00, 0x00, 0x0E, 0xE0, 0x1E, 0xF0, 0x1E, 0xF0, 0x1E, 0xF0, 0x36, 0xD8, 0x36, 0xD8, 0x36, 0xD8,
  0x36, 0xD8, 0x66, 0xCC, 0x66, 0xCC, 0x66, 0xCC, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
  0x86, 0xC3, 0x86, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4E: 'N' */
  0x00, 0x00, 0x0C, 0x30, 0x1C, 0x30, 0x3C, 0x30, 0x3C, 0x30, 0x6C, 0x30, 0x6C, 0x30, 0xCC, 0x30,
  0xCC, 0x30, 0x8C, 0x31, 0x0C, 0x33, 0x0C, 0x33, 0x0C, 0x36, 0x0C, 0x36, 0x0C, 0x3C, 0x0C, 0x3C,
  0x0C, 0x38, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x4F: 'O' */
  0x00, 0x00, 0xE0, 0x07, 0xF8, 0x1F, 0x1C, 0x38, 0x0E, 0x70, 0x06, 0x60, 0x03, 0xC0, 0x03, 0xC0,
  0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x06, 0x60, 0x0E, 0x70, 0x1C, 0x38,
  0xF8, 0x1F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x50: 'P' */
  0x00, 0x00, 0xFC, 0x0F, 0xFC, 0x1F, 0x0C, 0x38, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30,
  0x0C, 0x18, 0xFC, 0x1F, 0xFC, 0x07, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
  0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x51: 'Q' */
  0x00, 0x00, 0xE0, 0x07, 0xF8, 0x1F, 0x1C, 0x38, 0x0E, 0x70, 0x06, 0x60, 0x03, 0xE0, 0x03, 0xC0,
  0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0, 0x06, 0x63, 0x0E, 0x3F, 0x1C, 0x3C,
  0xF8, 0x3F, 0xE0, 0xF7, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x52: 'R' */
  0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x1F, 0x06, 0x38, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x38,
  0xFE, 0x1F, 0xFE, 0x07, 0x06, 0x03, 0x06, 0x06, 0x06, 0x0C, 0x06, 0x18, 0x06, 0x18, 0x06, 0x30,
  0x06, 0x30, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x53: 'S' */
  0x00, 0x00, 0xE0, 0x03, 0xF8, 0x0F, 0x1C, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x00, 0x1C, 0x00,
  0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x1E, 0x00, 0x38, 0x06, 0x30, 0x06, 0x30, 0x0E, 0x30, 0x1C, 0x1C,
  0xF8, 0x0F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x54: 'T' */
  0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x7F, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x55: 'U' */
  0x00, 0x00, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30,
  0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x30, 0x18, 0x18,
  0xF8, 0x1F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x56: 'V' */
  0x00, 0x00, 0x03, 0x60, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x18,
  0x18, 0x0C, 0x18, 0x0C, 0x38, 0x0E, 0x30, 0x06, 0x30, 0x06, 0x70, 0x07, 0x60, 0x03, 0x60, 0x03,
  0xC0, 0x01, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x57: 'W' */
  0x00, 0x00, 0x03, 0x60, 0xC3, 0x61, 0xC3, 0x61, 0xC3, 0x61, 0x66, 0x33, 0x66, 0x33, 0x66, 0x33,
  0x66, 0x33, 0x66, 0x33, 0x66, 0x33, 0x6C, 0x1B, 0x6C, 0x1B, 0x6C, 0x1B, 0x2C, 0x1A, 0x3C, 0x1E,
  0x38, 0x0E, 0x38, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x58: 'X' */
  0x00, 0x00, 0x0F, 0xE0, 0x0C, 0x70, 0x18, 0x30, 0x30, 0x18, 0x70, 0x0C, 0x60, 0x0E, 0xC0, 0x07,
  0x80, 0x03, 0x80, 0x03, 0xC0, 0x03, 0xE0, 0x06, 0x70, 0x0C, 0x30, 0x1C, 0x18, 0x18, 0x0C, 0x30,
  0x0E, 0x60, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x59: 'Y' */
  0x00, 0x00, 0x03, 0xC0, 0x06, 0x60, 0x0C, 0x30, 0x1C, 0x38, 0x38, 0x18, 0x30, 0x0C, 0x60, 0x06,
  0xE0, 0x07, 0xC0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x5A: 'Z' */
  0x00, 0x00, 0xFC, 0x7F, 0xFC, 0x7F, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06,
  0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x06, 0x00,
  0xFE, 0x7F, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x5B: '[' */
  0x00, 0x00, 0xE0, 0x03, 0xE0, 0x03, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
  0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
  0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x00,
  /* 0x5C: '\' */
  0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03,
  0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x5D: ']' */
  0x00, 0x00, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03,
  0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03,
  0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0x00, 0x00,
  /* 0x5E: '^' */
  0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xC0, 0x01, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x30, 0x06,
  0x30, 0x06, 0x18, 0x0C, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x5F: '_' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x60: ''' */
  0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x61: 'a' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xF8, 0x07,
  0x1C, 0x0C, 0x0C, 0x0C, 0x00, 0x0F, 0xF0, 0x0F, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x0F,
  0xF8, 0x0F, 0xF0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x62: 'b' */
  0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0xD8, 0x03, 0xF8, 0x0F,
  0x38, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x0C,
  0xF8, 0x0F, 0xD8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x63: 'c' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xF0, 0x07,
  0x30, 0x0E, 0x18, 0x0C, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x0C, 0x30, 0x0E,
  0xF0, 0x07, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x64: 'd' */
  0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0xC0, 0x1B, 0xF0, 0x1F,
  0x30, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x1C,
  0xF0, 0x1F, 0xC0, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x65: 'e' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xF0, 0x0F,
  0x30, 0x0C, 0x18, 0x18, 0xF8, 0x1F, 0xF8, 0x1F, 0x18, 0x00, 0x18, 0x00, 0x38, 0x18, 0x30, 0x1C,
  0xF0, 0x0F, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x66: 'f' */
  0x00, 0x00, 0x80, 0x0F, 0xC0, 0x0F, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xF0, 0x07, 0xF0, 0x07,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x67: 'g' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0D, 0xF8, 0x0F,
  0x18, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x0E,
  0xF8, 0x0F, 0xE0, 0x0D, 0x00, 0x0C, 0x0C, 0x0C, 0x1C, 0x06, 0xF8, 0x07, 0xF0, 0x01, 0x00, 0x00,
  /* 0x68: 'h' */
  0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0xD8, 0x07, 0xF8, 0x0F,
  0x38, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
  0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x69: 'i' */
  0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x6A: 'j' */
  0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x00, 0x00,
  /* 0x6B: 'k' */
  0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x06,
  0x0C, 0x03, 0x8C, 0x01, 0xCC, 0x00, 0x6C, 0x00, 0xFC, 0x00, 0x9C, 0x01, 0x8C, 0x03, 0x0C, 0x03,
  0x0C, 0x06, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x6C: 'l' */
  0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x6D: 'm' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x3C, 0xFF, 0x7E,
  0xC7, 0xE3, 0x83, 0xC1, 0x83, 0xC1, 0x83, 0xC1, 0x83, 0xC1, 0x83, 0xC1, 0x83, 0xC1, 0x83, 0xC1,
  0x83, 0xC1, 0x83, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x6E: 'n' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0xF8, 0x0F,
  0x38, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
  0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x6F: 'o' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xF0, 0x0F,
  0x30, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x0C,
  0xF0, 0x0F, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x70: 'p' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x03, 0xF8, 0x0F,
  0x38, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x0C,
  0xF8, 0x0F, 0xD8, 0x03, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00,
  /* 0x71: 'q' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1B, 0xF0, 0x1F,
  0x30, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x30, 0x1C,
  0xF0, 0x1F, 0xC0, 0x1B, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00,
  /* 0x72: 'r' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x07, 0xF0, 0x03,
  0x70, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00,
  0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x73: 's' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x03,
  0x38, 0x0E, 0x18, 0x0C, 0x38, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x00, 0x0C, 0x18, 0x0C, 0x38, 0x0E,
  0xF0, 0x07, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x74: 't' */
  0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xF0, 0x07, 0xF0, 0x07,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x07, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x75: 'u' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18,
  0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x1C,
  0xF0, 0x1F, 0xE0, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x76: 'v' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x18, 0x0C,
  0x18, 0x0C, 0x18, 0x0C, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03,
  0xC0, 0x01, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x77: 'w' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x41, 0xC1, 0x41,
  0xC3, 0x61, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x1C, 0x1C,
  0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x78: 'x' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, 0x38, 0x1C,
  0x30, 0x0C, 0x60, 0x06, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x0C,
  0x38, 0x1C, 0x1C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x79: 'y' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x30, 0x18,
  0x30, 0x18, 0x70, 0x18, 0x60, 0x0C, 0x60, 0x0C, 0xE0, 0x0C, 0xC0, 0x06, 0xC0, 0x06, 0x80, 0x03,
  0x80, 0x03, 0x80, 0x03, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x01, 0xF0, 0x00, 0x70, 0x00, 0x00, 0x00,
  /* 0x7A: 'z' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0xFC, 0x1F,
  0x00, 0x0C, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
  0xFC, 0x1F, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x7B: '{' */
  0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0x40, 0x00, 0xC0, 0x00, 0xC0, 0x00,
  0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
  /* 0x7C: '|' */
  0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00,
  /* 0x7D: '}' */
  0x00, 0x00, 0x60, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01,
  0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x7E: '~' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xF0, 0x10, 0xF8, 0x1F, 0x08, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x7F: ' ' */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

  /* Special Symbols  starting at character 0x80 */
  /* 0x80: Circle - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x30, 0x0C, 0x08, 0x10,
  0x04, 0x20, 0x04, 0x20, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x04, 0x20,
  0x04, 0x20, 0x08, 0x10, 0x30, 0x0C, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x81: Circle - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xF0, 0x0F, 0xF8, 0x1F,
  0xFC, 0x3F, 0xFC, 0x3F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFC, 0x3F,
  0xFC, 0x3F, 0xF8, 0x1F, 0xF0, 0x0F, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x82: Square - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07,
  0xF0, 0x0F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF0, 0x0F,
  0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x83: Square - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x07,
  0xF0, 0x0F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF0, 0x0F,
  0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x84: Up - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x30, 0x0C,
  0x18, 0x18, 0x18, 0x18, 0xF8, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x85: Up - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x03, 0xE0, 0x07, 0xF0, 0x0F,
  0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x86: Down - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xF8, 0x1F, 0x18, 0x18, 0x18, 0x18,
  0x30, 0x0C, 0x60, 0x06, 0xC0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x87: Down - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F,
  0xF0, 0x0F, 0xE0, 0x07, 0xC0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x88: Left - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01,
  0xF0, 0x01, 0x98, 0x01, 0x8C, 0x01, 0x86, 0x01, 0x86, 0x01, 0x8C, 0x01, 0x98, 0x01, 0xF0, 0x01,
  0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x89: Left - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01,
  0xF0, 0x01, 0xF8, 0x01, 0xFC, 0x01, 0xFE, 0x01, 0xFE, 0x01, 0xFC, 0x01, 0xF8, 0x01, 0xF0, 0x01,
  0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x8A: Right - Empty */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07,
  0x80, 0x0F, 0x80, 0x19, 0x80, 0x31, 0x80, 0x61, 0x80, 0x61, 0x80, 0x31, 0x80, 0x19, 0x80, 0x0F,
  0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x8B: Right - Full */
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07,
  0x80, 0x0F, 0x80, 0x1F, 0x80, 0x3F, 0x80, 0x7F, 0x80, 0x7F, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0x0F,
  0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0x8C: Wait - Empty */
  0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0x40, 0x01, 0x30, 0x06, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02,
  0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x00, 0x00,
  /* 0x8D: Wait - Full */
  0x00, 0x00, 0xC0, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xF0, 0x07, 0xD8, 0x0D, 0xD8, 0x0D,
  0xD8, 0x0D, 0xD8, 0x0D, 0xD8, 0x0D, 0xD8, 0x0D, 0xD8, 0x0D, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03,
  0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x03, 0x00, 0x00,
  /* 0x8E: Walk - Empty */
  0x00, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x20, 0x02, 0x40, 0x01, 0x30, 0x06, 0x08, 0x08, 0x08, 0x08,
  0x08, 0x08, 0x04, 0x10, 0x02, 0x20, 0x02, 0x20, 0x40, 0x01, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04,
  0x08, 0x08, 0x08, 0x08, 0x04, 0x10, 0x04, 0x10, 0x04, 0x20, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00,
  /* 0x8F: Walk - Full */
  0x00, 0x00, 0xC0, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0xF0, 0x07, 0xD8, 0x0D, 0xD8, 0x0D,
  0xD8, 0x0D, 0xCC, 0x19, 0xC6, 0x31, 0xC2, 0x61, 0xC0, 0x01, 0x60, 0x03, 0x60, 0x03, 0x70, 0x06,
  0x38, 0x0C, 0x18, 0x0C, 0x0C, 0x18, 0x0C, 0x18, 0x0C, 0x30, 0x0C, 0x60, 0x00, 0x00, 0x00, 0x00,
};

extern const arm_2d_a1_font_t ARM_2D_FONT_6x8;
const arm_2d_a1_font_t ARM_2D_FONT_6x8 = {
    .use_as__arm_2d_font_t = {
        .tileFont = {
            .tRegion = {
                .tSize = {
                    .iWidth = 6,
                    .iHeight = 8 * 112,
                },
            },
            .tInfo = {
                .bIsRoot = true,
                .bHasEnforcedColour = true,
                .tColourInfo = {
                    .chScheme = ARM_2D_COLOUR_BIN,
                },
            },
            .pchBuffer = (uint8_t *)Font_6x8_h,   //!< Characters bitmaps
        },
        .tCharSize = {
            .iWidth = 6,
            .iHeight = 8,
        },
        .nCount =  112,                             //!< Character count
        .fnGetCharDescriptor = &ARM_2D_A1_FONT_GET_CHAR_DESCRIPTOR_HANDLER,
    },
    .nOffset = 32,                          //!< Character offset
};

extern const arm_2d_a1_font_t ARM_2D_FONT_16x24;
const arm_2d_a1_font_t ARM_2D_FONT_16x24 = {
    .use_as__arm_2d_font_t = {
        .tileFont = {
            .tRegion = {
                .tSize = {
                    .iWidth = 16,
                    .iHeight = 24 * 112,
                },
            },
            .tInfo = {
                .bIsRoot = true,
                .bHasEnforcedColour = true,
                .tColourInfo = {
                    .chScheme = ARM_2D_COLOUR_BIN,
                },
            },
            .pchBuffer = (uint8_t *)Font_16x24_h,   //!< Characters bitmaps
        },
        .tCharSize = {
            .iWidth = 16,
            .iHeight = 24,
        },
        .nCount =  112,                             //!< Character count
        .fnGetCharDescriptor = &ARM_2D_A1_FONT_GET_CHAR_DESCRIPTOR_HANDLER,
    },
    .nOffset = 32,                                  //!< Character offset
};


================================================
FILE: project/mdk/RTE/Acceleration/alarm_clock_font32.c
================================================


#include "arm_2d_helper.h"

#include "arm_extra_lcd_printf.h"

#if defined(__clang__)
#   pragma clang diagnostic push
#   pragma clang diagnostic ignored "-Wunknown-warning-option"
#   pragma clang diagnostic ignored "-Wreserved-identifier"
#   pragma clang diagnostic ignored "-Wmissing-variable-declarations"
#   pragma clang diagnostic ignored "-Wcast-qual"
#   pragma clang diagnostic ignored "-Wmissing-declarations"
#   pragma clang diagnostic ignored "-Wgnu-variable-sized-type-not-at-end"
#   pragma clang diagnostic ignored "-Wimplicit-int-conversion"
#   pragma clang diagnostic ignored "-Wdeclaration-after-statement"
#   pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#   pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
#elif defined(__IS_COMPILER_GCC__)
#   pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
#   pragma GCC diagnostic ignored "-Wunused-variable"
#elif defined(__IS_COMPILER_ARM_COMPILER_5__)
#   pragma diag_suppress=1296
#endif

typedef struct {
    uint16_t      hwIndex;
    arm_2d_size_t tCharSize;
    int16_t       iAdvance;
    int16_t       iBearingX;
    int16_t       iBearingY;
    uint8_t       chCodeLength;
    uint8_t       chUTF8[4];
} __ttf_char_descriptor_t;

ARM_SECTION("arm2d.asset.FONT")
const static uint8_t c_bmpUTF8UserA1Font[] = {


    // Glyph for character {0x2b}
    0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00,
    0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0xfe, 0x07, 0x00, 0xfe, 0x07, 0x00, 0x60, 0x00, 0x00, 0x60,
    0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00,
    0x30, 0x00, 0x00,

    // Glyph for character {0x2d}
    0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0xfe, 0x07, 0x00,

    // Glyph for character {0x2e}
    0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00,

    // Glyph for character {0x30}
    0xf0, 0x7f, 0x00, 0xf8, 0xff, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x0c, 0xc0,
    0x00, 0x0c, 0xc0, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x04, 0x60, 0x00, 0x00,
    0x00, 0x00, 0x04, 0x20, 0x00, 0x06, 0x60, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00,
    0x06, 0x30, 0x00, 0x07, 0x30, 0x00, 0x03, 0x30, 0x00, 0x03, 0x38, 0x00, 0xfd, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x31}
    0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1c, 0x00,
    0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
    0x00, 0x00, 0x0c, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
    0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x32}
    0xf0, 0x7f, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0,
    0x00, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0xf8, 0x3f, 0x00, 0xf8,
    0x1f, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00,
    0x06, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0xfd, 0x0f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x33}
    0xf0, 0x7f, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0,
    0x00, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0xf8, 0x3f, 0x00, 0xf8,
    0x1f, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00,
    0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0xfc, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x34}
    0x04, 0x00, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x60,
    0x00, 0x06, 0x70, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0xfc, 0x1f, 0x00, 0xfc,
    0x1f, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00,
    0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x35}
    0xf0, 0x7f, 0x00, 0xf8, 0x7f, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00,
    0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0xf8,
    0x1f, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00,
    0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0xfc, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x36}
    0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00,
    0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0xf8,
    0x1f, 0x00, 0x04, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00,
    0x06, 0x30, 0x00, 0x07, 0x30, 0x00, 0x03, 0x30, 0x00, 0x03, 0x38, 0x00, 0xfd, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x37}
    0xf8, 0x3f, 0x00, 0xfc, 0x7f, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x06, 0x60,
    0x00, 0x06, 0x70, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x02, 0x30, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00,
    0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
    0x00,

    // Glyph for character {0x38}
    0xf0, 0x7f, 0x00, 0xf8, 0xff, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x1c, 0xc0, 0x00, 0x0c, 0xc0,
    0x00, 0x0c, 0xe0, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0xf8, 0x3f, 0x00, 0xf8,
    0x1f, 0x00, 0x04, 0x60, 0x00, 0x06, 0x60, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00, 0x06, 0x30, 0x00,
    0x06, 0x30, 0x00, 0x07, 0x30, 0x00, 0x03, 0x30, 0x00, 0x03, 0x38, 0x00, 0xfd, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x39}
    0xf0, 0x7f, 0x00, 0xf8, 0xff, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x1c, 0xc0, 0x00, 0x0c, 0xc0,
    0x00, 0x0c, 0xe0, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0xf8, 0x3f, 0x00, 0xf8,
    0x1f, 0x00, 0x00, 0x60, 0x00, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00,
    0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x00, 0x38, 0x00, 0xfc, 0x1f, 0x00, 0xfe, 0x0f,
    0x00,

    // Glyph for character {0x3a}
    0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
    0x00, 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00,
    // a white space
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};

ARM_SECTION("arm2d.asset.FONT")
const static __ttf_char_descriptor_t c_tUTF8LookUpTableA1[] = {

    { 0, { 12, 18, }, 19, 2, 20, 1, {0x2b} },
    { 18, { 12, 3, }, 19, 2, 13, 1, {0x2d} },
    { 21, { 4, 4, }, 9, 2, 4, 1, {0x2e} },
    { 25, { 17, 23, }, 19, 0, 23, 1, {0x30} },
    { 48, { 6, 22, }, 19, 11, 22, 1, {0x31} },
    { 70, { 17, 23, }, 19, 0, 23, 1, {0x32} },
    { 93, { 17, 23, }, 19, 0, 23, 1, {0x33} },
    { 116, { 16, 22, }, 19, 1, 22, 1, {0x34} },
    { 138, { 16, 23, }, 19, 0, 23, 1, {0x35} },
    { 161, { 15, 23, }, 19, 0, 23, 1, {0x36} },
    { 184, { 16, 23, }, 19, 1, 23, 1, {0x37} },
    { 207, { 17, 23, }, 19, 0, 23, 1, {0x38} },
    { 230, { 17, 23, }, 19, 0, 23, 1, {0x39} },
    { 253, { 4, 15, }, 9, 2, 15, 1, {0x3a} },
    { 268, { 17, 23, }, 19, 0, 23, 1, {0x20} },
};



ARM_SECTION("arm2d.tile.c_tileUTF8UserFontA1Mask")
static arm_2d_tile_t c_tileUTF8UserFontA1Mask = {
    .tRegion = {
        .tSize = {
            .iWidth = 17,
            .iHeight = 322,
        },
    },
    .tInfo = {
        .bIsRoot = true,
        .bHasEnforcedColour = true,
        .tColourInfo = {
            .chScheme = ARM_2D_COLOUR_1BIT,
        },
    },
    .pchBuffer = (uint8_t *)c_bmpUTF8UserA1Font,
};

#define __UTF8_FONT_SIZE_1__

static
IMPL_FONT_DRAW_CHAR(__utf8_font_a1_draw_char)
{
#if defined(__UTF8_FONT_SIZE_8__)
    static arm_2d_op_fill_cl_msk_opa_trans_t s_tOP;
    const bool bIsNewFrame = true;
    static const arm_2d_location_t c_tCentre = {7,8};

    if (fScale == 0.0f) {
        if (chOpacity == 255) {
            return arm_2d_fill_colour_with_mask(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour});
        }

        return arm_2d_fill_colour_with_mask_and_opacity(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour},
                                            chOpacity);
    }

    arm_2d_location_t tTargetCenter = ptRegion->tLocation;
    tTargetCenter.iX += ptRegion->tSize.iWidth >> 1;
    tTargetCenter.iY += ptRegion->tSize.iHeight >> 1;

    return arm_2dp_fill_colour_with_mask_opacity_and_transform(
                                            &s_tOP,
                                            ptileChar,
                                            ptTile,
                                            NULL,
                                            c_tCentre,
                                            0.0f,
                                            fScale,
                                            tForeColour,
                                            chOpacity,
                                            &tTargetCenter);
#elif defined(__UTF8_FONT_SIZE_1__)
    return arm_2d_draw_pattern(    ptileChar,
                            ptTile,
                            ptRegion,
                            ARM_2D_DRW_PATN_MODE_COPY,
                            tForeColour,
                            GLCD_COLOR_BLACK);
#else
    return arm_2d_fill_colour_with_a1_mask_and_opacity(
                                        ptTile,
                                        ptRegion,
                                        ptileChar,
                                        (__arm_2d_color_t){tForeColour},
                                        chOpacity);
#endif

}



static
IMPL_FONT_GET_CHAR_DESCRIPTOR(__utf8_a1_font_get_char_descriptor)
{
    assert(NULL != ptFont);
    assert(NULL != ptDescriptor);
    assert(NULL != pchCharCode);

    arm_2d_user_font_t *ptThis = (arm_2d_user_font_t *)ptFont;

    memset(ptDescriptor, 0, sizeof(arm_2d_char_descriptor_t));

    ptDescriptor->tileChar.ptParent = (arm_2d_tile_t *)&ptFont->tileFont;
    ptDescriptor->tileChar.tInfo.bDerivedResource = true;


    /* use the white space as the default char */
    __ttf_char_descriptor_t *ptUTF8Char =
        (__ttf_char_descriptor_t *)&c_tUTF8LookUpTableA1[dimof(c_tUTF8LookUpTableA1)-1];

    arm_foreach(__ttf_char_descriptor_t, c_tUTF8LookUpTableA1, ptChar) {
        if (0 == strncmp(   (char *)pchCharCode,
                            (char *)ptChar->chUTF8,
                            ptChar->chCodeLength)) {
            /* found the UTF8 char */
            ptUTF8Char = ptChar;
            break;
        }
    }

    ptDescriptor->chCodeLength = ptUTF8Char->chCodeLength;
    ptDescriptor->tileChar.tRegion.tSize = ptUTF8Char->tCharSize;
    ptDescriptor->tileChar.tRegion.tLocation.iY = (int16_t)ptUTF8Char->hwIndex;

    ptDescriptor->iAdvance = ptUTF8Char->iAdvance;
    ptDescriptor->iBearingX= ptUTF8Char->iBearingX;
    ptDescriptor->iBearingY= ptUTF8Char->iBearingY;

    return ptDescriptor;
}


struct {
    implement(arm_2d_user_font_t);
    arm_2d_char_idx_t tUTF8Table;
} ARM_2D_FONT_ALARM_CLOCK_32_A1 = {

    .use_as__arm_2d_user_font_t = {
        .use_as__arm_2d_font_t = {
            .tileFont = impl_child_tile(
                c_tileUTF8UserFontA1Mask,
                0,          /* x offset */
                0,          /* y offset */
                17,        /* width */
                322         /* height */
            ),
            .tCharSize = {
                .iWidth = 17,
                .iHeight = 23,
            },
            .nCount =  14,                             //!< Character count
            .fnGetCharDescriptor = &__utf8_a1_font_get_char_descriptor,
            .fnDrawChar = &__utf8_font_a1_draw_char,
        },
        .hwCount = 1,
        .hwDefaultCharIndex = 1, /* tBlank */
    },

    .tUTF8Table = {
        .hwCount = 14,
        .hwOffset = 0,
    },
};

#undef __UTF8_FONT_SIZE_1__

ARM_SECTION("arm2d.asset.FONT")
const static uint8_t c_bmpUTF8UserA2Font[] = {


    // Glyph for character {0x2b}
    0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0,
    0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
    0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xfc, 0xef, 0x7f, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00,
    0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00,
    0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
    0x00, 0x0f, 0x00, 0x00, 0x00,

    // Glyph for character {0x2d}
    0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xef, 0x7f, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00,

    // Glyph for character {0x2e}
    0x28, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00,
    0x00, 0x00, 0x00,

    // Glyph for character {0x30}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xfe, 0xff, 0xaf, 0x00, 0xc0, 0x03, 0x00, 0xf0, 0x01, 0xd0, 0x02,
    0x00, 0xf0, 0x00, 0xd0, 0x02, 0x00, 0xf0, 0x00, 0xe0, 0x01, 0x00, 0xf4, 0x00, 0xf0, 0x00, 0x00, 0xb4,
    0x00, 0xf0, 0x00, 0x00, 0x78, 0x00, 0xf0, 0x00, 0x00, 0x7c, 0x00, 0xb4, 0x00, 0x00, 0x3c, 0x00, 0x70,
    0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x1c, 0x00, 0x78, 0x00, 0x00,
    0x2d, 0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x1f, 0x00, 0x3c, 0x00, 0x00, 0x0f, 0x00,
    0x2d, 0x00, 0x00, 0x0f, 0x00, 0x2e, 0x00, 0x40, 0x0f, 0x00, 0x1e, 0x00, 0x40, 0x0b, 0x00, 0x1f, 0x00,
    0x80, 0x0b, 0x00, 0xf6, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x31}
    0x00, 0x02, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x03,
    0x00, 0x00, 0x00, 0xd0, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00,
    0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
    0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00,
    0x3d, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x32}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfd, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
    0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0xb8,
    0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x80,
    0xff, 0xff, 0x1b, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00,
    0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00,
    0x2d, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
    0x00, 0x00, 0x00, 0xf6, 0xff, 0xbf, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x33}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfd, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
    0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0xb8,
    0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x80,
    0xff, 0xff, 0x1b, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00,
    0x2d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
    0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x00,
    0x80, 0x0b, 0x00, 0xf4, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x34}
    0x20, 0x00, 0x00, 0x10, 0x00, 0xb0, 0x00, 0x00, 0x78, 0x00, 0xf0, 0x00, 0x00, 0x3c, 0x00, 0xb4, 0x00,
    0x00, 0x3c, 0x00, 0x78, 0x00, 0x00, 0x3d, 0x00, 0x78, 0x00, 0x00, 0x2d, 0x00, 0x3c, 0x00, 0x00, 0x2e,
    0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x0f, 0x00, 0x2c, 0x00, 0x00, 0x0f, 0x00, 0xf4,
    0xff, 0xff, 0x02, 0x00, 0xe0, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x00, 0x80,
    0x0b, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00,
    0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00,
    0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x35}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xfe, 0xff, 0x2f, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x02,
    0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
    0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x90,
    0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00,
    0x2d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
    0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x00,
    0x80, 0x0b, 0x00, 0xf4, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x36}
    0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x02,
    0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
    0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x90,
    0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x34, 0x00, 0x00, 0x2d, 0x00, 0x78, 0x00, 0x00,
    0x2d, 0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x1f, 0x00, 0x3c, 0x00, 0x00, 0x0f, 0x00,
    0x2d, 0x00, 0x00, 0x0f, 0x00, 0x2e, 0x00, 0x40, 0x0f, 0x00, 0x1e, 0x00, 0x40, 0x0b, 0x00, 0x1f, 0x00,
    0x80, 0x0b, 0x00, 0xf6, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x37}
    0xc0, 0xff, 0xff, 0x1f, 0x00, 0xb0, 0xff, 0xff, 0x2b, 0x00, 0xf0, 0x00, 0x00, 0x7c, 0x00, 0xb4, 0x00,
    0x00, 0x3c, 0x00, 0xb4, 0x00, 0x00, 0x3c, 0x00, 0x78, 0x00, 0x00, 0x3d, 0x00, 0x3c, 0x00, 0x00, 0x2e,
    0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x1f, 0x00, 0x2d, 0x00, 0x00, 0x0f, 0x00, 0x1c,
    0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x40,
    0x0b, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00,
    0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x03, 0x00, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x00,
    0xd0, 0x02, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x38}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xfe, 0xff, 0xff, 0x01, 0xc0, 0x03, 0x00, 0xf0, 0x00, 0xd0, 0x02,
    0x00, 0xf0, 0x00, 0xe0, 0x02, 0x00, 0xf4, 0x00, 0xe0, 0x01, 0x00, 0xb4, 0x00, 0xf0, 0x00, 0x00, 0xb8,
    0x00, 0xf0, 0x00, 0x00, 0x78, 0x00, 0xf0, 0x00, 0x00, 0x7c, 0x00, 0xb4, 0x00, 0x00, 0x3c, 0x00, 0x90,
    0xff, 0xff, 0x1b, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x34, 0x00, 0x00, 0x2d, 0x00, 0x78, 0x00, 0x00,
    0x2d, 0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x1f, 0x00, 0x3c, 0x00, 0x00, 0x0f, 0x00,
    0x2d, 0x00, 0x00, 0x0f, 0x00, 0x2e, 0x00, 0x40, 0x0f, 0x00, 0x1e, 0x00, 0x40, 0x0b, 0x00, 0x1f, 0x00,
    0x80, 0x0b, 0x00, 0xf6, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x39}
    0x00, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xfe, 0xff, 0xff, 0x01, 0xc0, 0x03, 0x00, 0xf0, 0x00, 0xd0, 0x02,
    0x00, 0xf0, 0x00, 0xe0, 0x02, 0x00, 0xf4, 0x00, 0xe0, 0x01, 0x00, 0xb4, 0x00, 0xf0, 0x00, 0x00, 0xb8,
    0x00, 0xf0, 0x00, 0x00, 0x78, 0x00, 0xf0, 0x00, 0x00, 0x7c, 0x00, 0xb4, 0x00, 0x00, 0x3c, 0x00, 0x90,
    0xff, 0xff, 0x1b, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00,
    0x2d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
    0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0f, 0x00, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x00,
    0x80, 0x0b, 0x00, 0xf4, 0xff, 0xbf, 0x07, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00,

    // Glyph for character {0x3a}
    0x28, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00,
    0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
    // a white space
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};

ARM_SECTION("arm2d.asset.FONT")
const static __ttf_char_descriptor_t c_tUTF8LookUpTableA2[] = {

    { 0, { 12, 18, }, 19, 2, 20, 1, {0x2b} },
    { 18, { 12, 3, }, 19, 2, 13, 1, {0x2d} },
    { 21, { 4, 4, }, 9, 2, 4, 1, {0x2e} },
    { 25, { 17, 23, }, 19, 0, 23, 1, {0x30} },
    { 48, { 6, 22, }, 19, 11, 22, 1, {0x31} },
    { 70, { 17, 23, }, 19, 0, 23, 1, {0x32} },
    { 93, { 17, 23, }, 19, 0, 23, 1, {0x33} },
    { 116, { 16, 22, }, 19, 1, 22, 1, {0x34} },
    { 138, { 16, 23, }, 19, 0, 23, 1, {0x35} },
    { 161, { 15, 23, }, 19, 0, 23, 1, {0x36} },
    { 184, { 16, 23, }, 19, 1, 23, 1, {0x37} },
    { 207, { 17, 23, }, 19, 0, 23, 1, {0x38} },
    { 230, { 17, 23, }, 19, 0, 23, 1, {0x39} },
    { 253, { 4, 15, }, 9, 2, 15, 1, {0x3a} },
    { 268, { 17, 23, }, 19, 0, 23, 1, {0x20} },
};



ARM_SECTION("arm2d.tile.c_tileUTF8UserFontA2Mask")
static arm_2d_tile_t c_tileUTF8UserFontA2Mask = {
    .tRegion = {
        .tSize = {
            .iWidth = 17,
            .iHeight = 322,
        },
    },
    .tInfo = {
        .bIsRoot = true,
        .bHasEnforcedColour = true,
        .tColourInfo = {
            .chScheme = ARM_2D_COLOUR_2BIT,
        },
    },
    .pchBuffer = (uint8_t *)c_bmpUTF8UserA2Font,
};

#define __UTF8_FONT_SIZE_2__

static
IMPL_FONT_DRAW_CHAR(__utf8_font_a2_draw_char)
{
#if defined(__UTF8_FONT_SIZE_8__)
    static arm_2d_op_fill_cl_msk_opa_trans_t s_tOP;
    const bool bIsNewFrame = true;
    static const arm_2d_location_t c_tCentre = {7,8};

    if (fScale == 0.0f) {
        if (chOpacity == 255) {
            return arm_2d_fill_colour_with_mask(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour});
        }

        return arm_2d_fill_colour_with_mask_and_opacity(
                                            ptTile,
                                            ptRegion,
                                            ptileChar,
                                            (__arm_2d_color_t){tForeColour},
                                            chOpacity);
    }

    arm_2d_location_t tTargetCenter = ptRegion->tLocation;
    tTargetCenter.iX += ptRegion->tSize.iWidth >> 1;
    tTargetCenter.iY += ptRegion->tSize.iHeight >> 1;

    return arm_2dp_fill_colour_with_mask_opacity_and_transform(
                                            &s_tOP,
                                            ptileChar,
                                            ptTile,
                                            NULL,
                                            c_tCentre,
                                            0.0f,
                                            fScale,
                                            tForeColour,
                                            chOpacity,
                                            &tTargetCenter);
#elif defined(__UTF8_FONT_SIZE_1__)
    return arm_2d_draw_pattern(    ptileChar,
                            ptTile,
                            ptRegion,
                            ARM_2D_DRW_PATN_MODE_COPY,
                            tForeColour,
                            GLCD_COLOR_BLACK);
#else
    return arm_2d_fill_colour_with_a2_mask_and_opacity(
                                        ptTile,
                                        ptRegion,
                                        ptileChar,
                                        (__arm_2d_color_t){tForeColour},
                                        chOpacity);
#endif

}



static
IMPL_FONT_GET_CHAR_DESCRIPTOR(__utf8_a2_font_get_char_descriptor)
{
    assert(NULL != ptFont);
    assert(NULL != ptDescriptor);
    assert(NULL != pchCharCode);

    arm_2d_user_font_t *ptThis = (arm_2d_user_font_t *)ptFont;

    memset(ptDescriptor, 0, sizeof(arm_2d_char_descriptor_t));

    ptDescriptor->tileChar.ptParent = (arm_2d_tile_t *)&ptFont->tileFont;
    ptDescriptor->tileChar.tInfo.bDerivedResource = true;


    /* use the white space as the default char */
    __ttf_char_descriptor_t *ptUTF8Char =
        (__ttf_char_descriptor_t *)&c_tUTF8LookUpTableA2[dimof(c_tUTF8LookUpTableA2)-1];

    arm_foreach(__ttf_char_descriptor_t, c_tUTF8LookUpTableA2, ptChar) {
        if (0 == strncmp(   (char *)pchCharCode,
                            (char *)ptChar->chUTF8,
                            ptChar->chCodeLength)) {
            /* found the UTF8 char */
            ptUTF8Char = ptChar;
            break;
        }
    }

    ptDescriptor->chCodeLength = ptUTF8Char->chCodeLength;
    ptDescriptor->tileChar.tRegion.tSize = ptUTF8Char->tCharSize;
    ptDescriptor->tileChar.tRegion.tLocation.iY = (int16_t)ptUTF8Char->hwIndex;

    ptDescriptor->iAdvance = ptUTF8Char->iAdvance;
    ptDescriptor->iBearingX= ptUTF8Char->iBearingX;
    ptDescriptor->iBearingY= ptUTF8Char->iBearingY;

    return ptDescriptor;
}


struct {
    implement(arm_2d_user_font_t);
    arm_2d_char_idx_t tUTF8Table;
} ARM_2D_FONT_ALARM_CLOCK_32_A2 = {

    .use_as__arm_2d_user_font_t = {
        .use_as__arm_2d_font_t = {
            .tileFont = impl_child_tile(
                c_tileUTF8UserFontA2Mask,
                0,          /* x offset */
                0,          /* y offset */
                17,        /* width */
                322         /* height */
            ),
            .tCharSize = {
                .iWidth = 17,
                .iHeight = 23,
            },
            .nCount =  14,                             //!< Character count
            .fnGetCharDescriptor = &__utf8_a2_font_get_char_descriptor,
            .fnDrawChar = &__utf8_font_a2_draw_char,
        },
        .hwCount = 1,
        .hwDefaultCharIndex = 1, /* tBlank */
    },

    .tUTF8Table = {
        .hwCount = 14,
        .hwOffset = 0,
    },
};

#undef __UTF8_FONT_SIZE_2__

ARM_SECTION("arm2d.asset.FONT")
const static uint8_t c_bmpUTF8UserA4Font[] = {


    // Glyph for character {0x2b}
    0x00, 0x00, 0x00, 0xfa, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xff, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x40, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x9f, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x53, 0x09, 0x33,
    0x02, 0x00, 0x00, 0x00, 0xc1, 0xff, 0xff, 0xfb, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x90, 0xff, 0xef, 0xfd,
    0xff, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3,
    0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x30, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    // Glyph for character {0x2d}
    0x00, 0x33, 0x33, 0x32, 0x33, 0x02, 0x00, 0x00, 0x00, 0xc1, 0xff, 0xff, 0xfb, 0xff, 0x5f, 0x00, 0x00,
    0x00, 0x90, 0xff, 0xef, 0xfd, 0xff, 0x1d, 0x00, 0x00, 0x00,

    // Glyph for character {0x2e}
    0xa0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00,

    // Glyph for character {0x30}
    0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xba,
    0x03, 0x00, 0xf2, 0x3d, 0x33, 0x33, 0x33, 0x33, 0xfd, 0x04, 0x00, 0xf5, 0x0b, 0x00, 0x00, 0x00, 0x10,
    0xff, 0x01, 0x00, 0xf7, 0x09, 0x00, 0x00, 0x00, 0x30, 0xff, 0x00, 0x00, 0xfa, 0x06, 0x00, 0x00, 0x00,
    0x50, 0xcf, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x70, 0xaf, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00,
    0x00, 0xa0, 0x7f, 0x00, 0x20, 0xef, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x5f, 0x00, 0x40, 0xbf, 0x00, 0x00,
    0x00, 0x00, 0xe0, 0x2f, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0a, 0x00, 0x00, 0x01, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x2f, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x05, 0x00, 0xb0, 0x4f,
    0x00, 0x00, 0x00, 0x00, 0xf6, 0x0a, 0x00, 0xe0, 0x2f, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x07, 0x00, 0xf1,
    0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x00, 0xf3, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00,
    0xf6, 0x0b, 0x00, 0x00, 0x00, 0x10, 0xff, 0x00, 0x00, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x40, 0xdf, 0x00,
    0x00, 0xfb, 0x06, 0x00, 0x00, 0x00, 0x60, 0xaf, 0x00, 0x00, 0xfd, 0x34, 0x33, 0x33, 0x33, 0x83, 0x8f,
    0x00, 0x00, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xaf, 0x4c, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xef,
    0x02, 0x00, 0x00,

    // Glyph for character {0x31}
    0x00, 0x10, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0xf1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x0f, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xf5, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0a, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0xfa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x5d, 0x00,
    0x00, 0x00, 0x00
Download .txt
gitextract_n9e5hryi/

├── .gitattributes
├── .gitignore
├── .gitmodules
├── LICENSE
├── README.md
├── documents/
│   └── Pictures/
│       └── enable_lcd_1in3
├── main.c
└── project/
    └── mdk/
        ├── DebugConfig/
        │   ├── AC6-DebugInSRAM_RP2040_Core0_1.0.0.dbgconf
        │   ├── AC6-RunInSRAM_RP2040_Core0_1.0.0.dbgconf
        │   └── AC6-flash_RP2040_Core0_1.0.0.dbgconf
        ├── RP2040.sct
        ├── RP2040_debug_in_sram.sct
        ├── RP2040_run_in_sram.sct
        ├── RTE/
        │   ├── Acceleration/
        │   │   ├── DigitsFont.c
        │   │   ├── GLCD_Fonts.c
        │   │   ├── alarm_clock_font32.c
        │   │   ├── alarm_clock_font64.c
        │   │   ├── arm_2d_cfg.h
        │   │   ├── arm_2d_disp_adapter_0.c
        │   │   ├── arm_2d_disp_adapter_0.h
        │   │   ├── arm_2d_scene_gas_gauge.c
        │   │   ├── arm_2d_scene_gas_gauge.h
        │   │   └── ttf2c.py
        │   ├── CMSIS-View/
        │   │   └── EventRecorderConf.h
        │   ├── Compiler/
        │   │   └── EventRecorderConf.h
        │   ├── Device/
        │   │   └── RP2040_Core0/
        │   │       ├── env_wrapper.h
        │   │       ├── rp2040.dbgconf
        │   │       ├── rp2040.sct
        │   │       ├── rp2040_no_flash.sct
        │   │       ├── startup_rp2040.c
        │   │       └── system_rp2040.c
        │   └── Utilities/
        │       └── core_portme.h
        ├── arm_2d_scene_bubble_charging.c
        ├── arm_2d_scene_bubble_charging.h
        ├── debug_with_cmsis-dap.ini
        ├── debug_with_cmsis-dap_in_ram.ini
        ├── template.uvoptx
        └── template.uvprojx
Download .txt
SYMBOL INDEX (96 symbols across 14 files)

FILE: main.c
  function SysTick_Handler (line 57) | void SysTick_Handler(void)
  function __lcd_sync_handler (line 63) | static bool __lcd_sync_handler(void *pTarget)
  function system_init (line 69) | static void system_init(void)
  function main (line 113) | int main(void)

FILE: project/mdk/RTE/Acceleration/DigitsFont.c
  function IMPL_FONT_DRAW_CHAR (line 2369) | static
  function IMPL_FONT_DRAW_CHAR (line 2381) | static
  function IMPL_FONT_DRAW_CHAR (line 2393) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 2434) | static

FILE: project/mdk/RTE/Acceleration/alarm_clock_font32.c
  type __ttf_char_descriptor_t (line 26) | typedef struct {
  function IMPL_FONT_DRAW_CHAR (line 170) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 230) | static
  function IMPL_FONT_DRAW_CHAR (line 466) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 526) | static
  function IMPL_FONT_DRAW_CHAR (line 829) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 889) | static
  function IMPL_FONT_DRAW_CHAR (line 1309) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 1369) | static

FILE: project/mdk/RTE/Acceleration/alarm_clock_font64.c
  type __ttf_char_descriptor_t (line 26) | typedef struct {
  function IMPL_FONT_DRAW_CHAR (line 197) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 257) | static
  function IMPL_FONT_DRAW_CHAR (line 559) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 619) | static
  function IMPL_FONT_DRAW_CHAR (line 1049) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 1109) | static
  function IMPL_FONT_DRAW_CHAR (line 1783) | static
  function IMPL_FONT_GET_CHAR_DESCRIPTOR (line 1841) | static

FILE: project/mdk/RTE/Acceleration/arm_2d_disp_adapter_0.c
  function __on_frame_start (line 142) | static void __on_frame_start(arm_2d_scene_t *ptScene)
  function __on_frame_complete (line 147) | static void __on_frame_complete(arm_2d_scene_t *ptScene)
  function IMPL_PFB_ON_DRAW (line 153) | static
  function __WEAK (line 181) | __WEAK
  function __WEAK (line 191) | __WEAK
  function __WEAK (line 379) | __WEAK
  function disp_adapter0_insert_2d_copy_complete_event_handler (line 407) | void disp_adapter0_insert_2d_copy_complete_event_handler(void)
  function disp_adapter0_insert_dma_copy_complete_event_handler (line 418) | void disp_adapter0_insert_dma_copy_complete_event_handler(void)
  function disp_adapter0_insert_async_flushing_complete_event_handler (line 434) | void disp_adapter0_insert_async_flushing_complete_event_handler(void)
  function __WEAK (line 440) | __WEAK
  function __WEAK (line 466) | __WEAK
  function __WEAK (line 486) | __WEAK
  function __on_each_frame_complete (line 495) | static bool __on_each_frame_complete(void *ptTarget)
  function IMPL_PFB_BEFORE_FLUSHING (line 601) | static IMPL_PFB_BEFORE_FLUSHING(__before_flushing)
  function __WEAK (line 751) | __WEAK
  function __WEAK (line 850) | __WEAK
  function disp_adapter0_printf (line 866) | int disp_adapter0_printf(const char *format, ...)
  function disp_adapter0_putchar (line 889) | bool disp_adapter0_putchar(uint8_t chChar)
  function disp_adapter0_init (line 904) | void disp_adapter0_init(void)
  function arm_fsm_rt_t (line 949) | arm_fsm_rt_t __disp_adapter0_task(void)
  function __WEAK (line 961) | __WEAK
  function __WEAK (line 974) | __WEAK
  function __WEAK (line 982) | __WEAK
  function __disp_adapter0_vres_asset_loader (line 1013) | intptr_t __disp_adapter0_vres_asset_loader (uintptr_t pObj,
  function __disp_adapter0_vres_buffer_deposer (line 1127) | void __disp_adapter0_vres_buffer_deposer (

FILE: project/mdk/RTE/Acceleration/arm_2d_scene_gas_gauge.c
  function __on_scene_gas_gauge_depose (line 99) | static void __on_scene_gas_gauge_depose(arm_2d_scene_t *ptScene)
  function __on_scene_gas_gauge_background_start (line 122) | static void __on_scene_gas_gauge_background_start(arm_2d_scene_t *ptScene)
  function __on_scene_gas_gauge_background_complete (line 129) | static void __on_scene_gas_gauge_background_complete(arm_2d_scene_t *ptS...
  function __on_scene_gas_gauge_frame_start (line 137) | static void __on_scene_gas_gauge_frame_start(arm_2d_scene_t *ptScene)
  function __before_scene_gas_gauge_switching_out (line 161) | static void __before_scene_gas_gauge_switching_out(arm_2d_scene_t *ptScene)
  function __on_scene_gas_gauge_frame_complete (line 167) | static void __on_scene_gas_gauge_frame_complete(arm_2d_scene_t *ptScene)
  function IMPL_PFB_ON_DRAW (line 178) | static
  function IMPL_PFB_ON_DRAW (line 194) | static
  function user_scene_gas_gauge_t (line 285) | user_scene_gas_gauge_t *__arm_2d_scene_gas_gauge_init(   arm_2d_scene_pl...

FILE: project/mdk/RTE/Acceleration/arm_2d_scene_gas_gauge.h
  type user_scene_gas_gauge_t (line 77) | typedef struct user_scene_gas_gauge_t user_scene_gas_gauge_t;
  type user_scene_gas_gauge_t (line 79) | struct user_scene_gas_gauge_t {

FILE: project/mdk/RTE/Acceleration/ttf2c.py
  function generate_glyphs_data (line 293) | def generate_glyphs_data(input_file, text, pixel_size, font_bit_size, fo...
  function utf8_to_c_array (line 449) | def utf8_to_c_array(utf8_bytes):
  function write_c_code (line 452) | def write_c_code(glyphs_data, output_file, name, char_max_width, char_ma...
  function main (line 512) | def main():

FILE: project/mdk/RTE/Device/RP2040_Core0/env_wrapper.h
  type uint (line 136) | typedef unsigned int        uint;
  type __uint16_t (line 200) | typedef uint16_t __uint16_t;

FILE: project/mdk/RTE/Device/RP2040_Core0/startup_rp2040.c
  function Reset_Handler (line 143) | void Reset_Handler(void)
  function HardFault_Handler (line 160) | void HardFault_Handler(void)
  function Default_Handler (line 168) | void Default_Handler(void)
  function __keep_stage2_boot (line 177) | __attribute__((used))

FILE: project/mdk/RTE/Device/RP2040_Core0/system_rp2040.c
  function __WEAK (line 44) | __WEAK
  function SystemInit (line 55) | void SystemInit (void)

FILE: project/mdk/RTE/Utilities/core_portme.h
  type CORE_TICKS (line 79) | typedef int64_t CORE_TICKS;
  type ee_s16 (line 116) | typedef signed short   ee_s16;
  type ee_u16 (line 117) | typedef unsigned short ee_u16;
  type ee_s32 (line 118) | typedef signed int     ee_s32;
  type ee_f32 (line 119) | typedef double         ee_f32;
  type ee_u8 (line 120) | typedef unsigned char  ee_u8;
  type ee_u32 (line 121) | typedef unsigned int   ee_u32;
  type ee_u32 (line 122) | typedef ee_u32         ee_ptr_int;
  type ee_size_t (line 123) | typedef size_t         ee_size_t;
  type core_portable (line 224) | typedef struct CORE_PORTABLE_S

FILE: project/mdk/arm_2d_scene_bubble_charging.c
  function __on_scene_bubble_charging_load (line 117) | static void __on_scene_bubble_charging_load(arm_2d_scene_t *ptScene)
  function __on_scene_bubble_charging_depose (line 124) | static void __on_scene_bubble_charging_depose(arm_2d_scene_t *ptScene)
  function __on_scene_bubble_charging_background_start (line 148) | static void __on_scene_bubble_charging_background_start(arm_2d_scene_t *...
  function __on_scene_bubble_charging_background_complete (line 155) | static void __on_scene_bubble_charging_background_complete(arm_2d_scene_...
  function __on_scene_bubble_charging_frame_start (line 163) | static void __on_scene_bubble_charging_frame_start(arm_2d_scene_t *ptScene)
  function __on_scene_bubble_charging_frame_complete (line 185) | static void __on_scene_bubble_charging_frame_complete(arm_2d_scene_t *pt...
  function __before_scene_bubble_charging_switching_out (line 199) | static void __before_scene_bubble_charging_switching_out(arm_2d_scene_t ...
  function IMPL_PFB_ON_DRAW (line 206) | static
  function __draw_bubble_handler (line 307) | static
  function user_scene_bubble_charging_t (line 340) | user_scene_bubble_charging_t *__arm_2d_scene_bubble_charging_init(   arm...

FILE: project/mdk/arm_2d_scene_bubble_charging.h
  type user_scene_bubble_charging_t (line 80) | typedef struct user_scene_bubble_charging_t user_scene_bubble_charging_t;
  type user_scene_bubble_charging_t (line 82) | struct user_scene_bubble_charging_t {
Condensed preview — 38 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (895K chars).
[
  {
    "path": ".gitattributes",
    "chars": 66,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
  },
  {
    "path": ".gitignore",
    "chars": 810,
    "preview": "# Prerequisites\n*.d\n\n# Object files\n*.o\n*.ko\n*.obj\n*.elf\n\n# Linker output\n*.ilk\n*.map\n*.exp\n\n# Precompiled Headers\n*.gch"
  },
  {
    "path": ".gitmodules",
    "chars": 85,
    "preview": "[submodule \"bsp\"]\n\tpath = bsp\n\turl = https://github.com/GorgonMeducer/RP2040_BSP.git\n"
  },
  {
    "path": "LICENSE",
    "chars": 11324,
    "preview": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licens"
  },
  {
    "path": "README.md",
    "chars": 11163,
    "preview": "# Pico_Template (v2.3.2)\nAn MDK template for Raspberry Pi Pico\n\n- Use RPi official [RP2xxxx_DFP](https://www.keil.arm.co"
  },
  {
    "path": "main.c",
    "chars": 4913,
    "preview": "/****************************************************************************\n*  Copyright 2021 Gorgon Meducer (Email:em"
  },
  {
    "path": "project/mdk/DebugConfig/AC6-DebugInSRAM_RP2040_Core0_1.0.0.dbgconf",
    "chars": 172,
    "preview": "// File: rp2040.dbgconf\n// Version: 1.0.0\n// Note: refer to rp2040 data sheet\n\n// <<< Use Configuration Wizard in Contex"
  },
  {
    "path": "project/mdk/DebugConfig/AC6-RunInSRAM_RP2040_Core0_1.0.0.dbgconf",
    "chars": 172,
    "preview": "// File: rp2040.dbgconf\n// Version: 1.0.0\n// Note: refer to rp2040 data sheet\n\n// <<< Use Configuration Wizard in Contex"
  },
  {
    "path": "project/mdk/DebugConfig/AC6-flash_RP2040_Core0_1.0.0.dbgconf",
    "chars": 172,
    "preview": "// File: rp2040.dbgconf\n// Version: 1.0.0\n// Note: refer to rp2040 data sheet\n\n// <<< Use Configuration Wizard in Contex"
  },
  {
    "path": "project/mdk/RP2040.sct",
    "chars": 2089,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc\n; command above MUST be in first line (no comment above!)\n"
  },
  {
    "path": "project/mdk/RP2040_debug_in_sram.sct",
    "chars": 2111,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc\n; command above MUST be in first line (no comment above!)\n"
  },
  {
    "path": "project/mdk/RP2040_run_in_sram.sct",
    "chars": 1944,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc\n; command above MUST be in first line (no comment above!)\n"
  },
  {
    "path": "project/mdk/RTE/Acceleration/DigitsFont.c",
    "chars": 79643,
    "preview": "\n/* Generated on Wed Oct 12 02:22:25 2022 from -i */\n/* Re-sized : True */\n/* Rotated : 0.0 deg */\n\n\n\n#include \"arm_2d.h"
  },
  {
    "path": "project/mdk/RTE/Acceleration/GLCD_Fonts.c",
    "chars": 47227,
    "preview": "/*-----------------------------------------------------------------------------\n * Name:    GLCD_Fonts.c\n * Purpose: Gra"
  },
  {
    "path": "project/mdk/RTE/Acceleration/alarm_clock_font32.c",
    "chars": 93765,
    "preview": "\n\n#include \"arm_2d_helper.h\"\n\n#include \"arm_extra_lcd_printf.h\"\n\n#if defined(__clang__)\n#   pragma clang diagnostic push"
  },
  {
    "path": "project/mdk/RTE/Acceleration/alarm_clock_font64.c",
    "chars": 267711,
    "preview": "\n\n#include \"arm_2d_helper.h\"\n\n#include \"arm_extra_lcd_printf.h\"\n\n#if defined(__clang__)\n#   pragma clang diagnostic push"
  },
  {
    "path": "project/mdk/RTE/Acceleration/arm_2d_cfg.h",
    "chars": 13451,
    "preview": "/*\n * Copyright (c) 2009-2024 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Acceleration/arm_2d_disp_adapter_0.c",
    "chars": 38966,
    "preview": "/*\n * Copyright (c) 2009-2024 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Acceleration/arm_2d_disp_adapter_0.h",
    "chars": 21910,
    "preview": "/*\n * Copyright (c) 2009-2024 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Acceleration/arm_2d_scene_gas_gauge.c",
    "chars": 12982,
    "preview": "/*\n * Copyright (c) 2009-2022 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Acceleration/arm_2d_scene_gas_gauge.h",
    "chars": 3793,
    "preview": "/*\n * Copyright (c) 2009-2022 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Acceleration/ttf2c.py",
    "chars": 21226,
    "preview": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n\n# ***************************************************************************"
  },
  {
    "path": "project/mdk/RTE/CMSIS-View/EventRecorderConf.h",
    "chars": 1733,
    "preview": "/*\n * Copyright (c) 2016-2021 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/RTE/Compiler/EventRecorderConf.h",
    "chars": 1392,
    "preview": "/*------------------------------------------------------------------------------\n * MDK - Component ::Event Recorder\n * "
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/env_wrapper.h",
    "chars": 6782,
    "preview": "/****************************************************************************\n*  Copyright 2021 Gorgon Meducer (Email:em"
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/rp2040.dbgconf",
    "chars": 172,
    "preview": "// File: rp2040.dbgconf\n// Version: 1.0.0\n// Note: refer to rp2040 data sheet\n\n// <<< Use Configuration Wizard in Contex"
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/rp2040.sct",
    "chars": 3957,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0+ -xc\n; command above MUST be in first line (no comment above!)"
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/rp2040_no_flash.sct",
    "chars": 2099,
    "preview": "#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc\n; command above MUST be in first line (no comment above!)\n"
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/startup_rp2040.c",
    "chars": 8993,
    "preview": "/******************************************************************************\n * @file     startup_rp2040.c\n * @brief "
  },
  {
    "path": "project/mdk/RTE/Device/RP2040_Core0/system_rp2040.c",
    "chars": 2198,
    "preview": "/*************************************************************************//**\n * @file     system_RP2040.c\n * @brief   "
  },
  {
    "path": "project/mdk/RTE/Utilities/core_portme.h",
    "chars": 6746,
    "preview": "/*\nCopyright 2018 Embedded Microprocessor Benchmark Consortium (EEMBC)\n\nLicensed under the Apache License, Version 2.0 ("
  },
  {
    "path": "project/mdk/arm_2d_scene_bubble_charging.c",
    "chars": 14917,
    "preview": "/*\n * Copyright (c) 2009-2024 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/arm_2d_scene_bubble_charging.h",
    "chars": 4022,
    "preview": "/*\n * Copyright (c) 2009-2024 Arm Limited. All rights reserved.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * Licensed"
  },
  {
    "path": "project/mdk/debug_with_cmsis-dap.ini",
    "chars": 139,
    "preview": "\nFUNC void reset_pico(void)\n{\n    exec(\"RESET\");\n    exec(\"G, Reset_Handler\");\n}\n\nDEFINE BUTTON \"Reset Pico\", \"reset_pic"
  },
  {
    "path": "project/mdk/debug_with_cmsis-dap_in_ram.ini",
    "chars": 1031,
    "preview": "\n\n\nFUNC void debug_from_ram(void)\n{\n    //extern unsigned int Image$$ARM_LIB_STACK$$ZI$$Limit;\n    \n    printf(\"Entry Po"
  },
  {
    "path": "project/mdk/template.uvoptx",
    "chars": 16465,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<ProjectOpt xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance"
  },
  {
    "path": "project/mdk/template.uvprojx",
    "chars": 160400,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<Project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" x"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the GorgonMeducer/Pico_Template GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 38 files (846.4 KB), approximately 457.8k tokens, and a symbol index with 96 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!