Make DriverView fields more modular

This commit is contained in:
Jasper Blanckenburg 2023-03-20 19:35:30 +01:00
parent f0254b92ee
commit c8ee51a78f
31 changed files with 1554 additions and 109 deletions

View File

@ -369,6 +369,7 @@ TouchGFX/generated/texts/src/Texts.cpp \
TouchGFX/generated/texts/src/TypedTextDatabase.cpp \
TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \
TouchGFX/gui/src/ami_screen/AMIView.cpp \
TouchGFX/gui/src/common/DataField.cpp \
TouchGFX/gui/src/common/FrontendApplication.cpp \
TouchGFX/gui/src/containers/DriverViewField.cpp \
TouchGFX/gui/src/containers/MissionSelectElement.cpp \

View File

@ -5,6 +5,72 @@
</Languages>
<Texts>
<TextGroup Id="DriverViewFields">
<Text Id="Field_BBal" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">BBAL</Translation>
</Text>
<Text Id="Field_TSVOLTVEH" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSVVEH</Translation>
</Text>
<Text Id="Field_TSVOLTBAT" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSVBAT</Translation>
</Text>
<Text Id="Field_LVSoC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">LVSOC</Translation>
</Text>
<Text Id="Field_TSSoC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSSOC</Translation>
</Text>
<Text Id="Field_MaxCellTemp" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TMAX</Translation>
</Text>
<Text Id="Field_TireFL" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTFL</Translation>
</Text>
<Text Id="Field_TireFR" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTFR</Translation>
</Text>
<Text Id="Field_TireRL" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTRL</Translation>
</Text>
<Text Id="Field_TireRR" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTRR</Translation>
</Text>
<Text Id="Field_LapCount" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">LAPS</Translation>
</Text>
<Text Id="Field_IniChkState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ICSTATE</Translation>
</Text>
<Text Id="Field_Err" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ERROR</Translation>
</Text>
<Text Id="Field_SDC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">SDC</Translation>
</Text>
<Text Id="Field_INVRReady" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INVRRDY</Translation>
</Text>
<Text Id="Field_INVLReady" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INVLRDY</Translation>
</Text>
<Text Id="Field_R2DProgress" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">R2DPROG</Translation>
</Text>
<Text Id="Field_ActiveMission" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">MISSION</Translation>
</Text>
<Text Id="Field_ASState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ASSTATE</Translation>
</Text>
<Text Id="Field_TSState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSSTATE</Translation>
</Text>
<Text Id="NumberWildcard" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="DefaultWildcard" Alignment="Center" TypographyId="Default">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="Field_TSCurrent" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ITS</Translation>
</Text>
@ -62,9 +128,6 @@
</Text>
</TextGroup>
<TextGroup Id="Unsorted">
<Text Id="__SingleUse_K26P" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_0FBJ" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">FIELD</Translation>
</Text>
@ -92,7 +155,7 @@
</TextGroup>
</Texts>
<Typographies>
<Typography Id="Default" Font="verdana.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" />
<Typography Id="Default" Font="verdana.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters="! &quot;" WildcardCharacterRanges="#-~" />
<Typography Id="Chinat_Large" Font="CHINN___.ttf" Size="30" Bpp="4" Direction="LTR" FallbackCharacter="?" />
<Typography Id="Chinat_Small" Font="CHINN___.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" />
<Typography Id="Chinat_Huge" Font="CHINN___.ttf" Size="40" Bpp="4" Direction="LTR" FallbackCharacter="?" />

View File

@ -1,19 +1,26 @@
32
50
63
65
66
67
68
69
70
71
72
73
76
77
78
79
80
82
83
84
86
88
89
97
99
100

View File

@ -1 +1,95 @@
63
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

View File

@ -1,20 +1,27 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1
32
50
63
65
66
67
68
69
70
71
72
73
76
77
78
79
80
82
83
84
86
88
89
97
99
100

View File

@ -1,2 +1,96 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

View File

@ -4,6 +4,16 @@ FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020, space]
// (Has no glyph data)
// Unicode: [0x0032, two]
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0B, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x32, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33, 0x53, 0xFF, 0x4F, 0x00, 0x20, 0x33, 0x33, 0x33, 0x33, 0x33, 0x53,
0xFF, 0x4F, 0x20, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x01,
0xF6, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x34, 0x33, 0x33, 0x33,
0x33, 0x33, 0x33, 0x03, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF6, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x0F,
// Unicode: [0x003F, question]
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x44, 0x44,
@ -34,6 +44,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x44, 0x44, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xF7, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x9E, 0x02,
// Unicode: [0x0043, C]
0x00, 0xB5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF5, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0x44, 0x34, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xC5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xCF,
// Unicode: [0x0044, D]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x5C, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x08, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF,
@ -64,6 +84,26 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0047, G]
0x00, 0x93, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF6, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x43, 0x44, 0x44,
0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0xFC, 0xAF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x50, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0xA3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
0x6C, 0x00,
// Unicode: [0x0048, H]
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
0xFB, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0xDF,
// Unicode: [0x0049, I]
0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF,
0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF,
@ -97,6 +137,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xFF, 0x9F, 0xFF, 0x6F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x40, 0xFE, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xE3, 0xFF, 0xFF, 0x0C, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x20, 0xEA,
0xAE, 0x02,
// Unicode: [0x004F, O]
0x00, 0xB3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5C, 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xF6, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFE, 0x7F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0xFE, 0x7F, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x70, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x5C, 0x00,
// Unicode: [0x0050, P]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x02, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
@ -147,6 +197,26 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC1, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE9, 0x7D, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0058, X]
0xFA, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0x06, 0xB0, 0xFF, 0xBF, 0x00, 0x00, 0x00,
0xE2, 0xFF, 0x6F, 0x00, 0x00, 0xFB, 0xFF, 0x09, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x00, 0x00, 0xC1,
0xFF, 0x8F, 0x00, 0xC1, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x06, 0xFA, 0xFF, 0x09,
0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0x9F, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF,
0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0x9F, 0xFF, 0xAF, 0x00, 0x00, 0x00,
0x00, 0x10, 0xFC, 0xFF, 0x07, 0xFB, 0xFF, 0x09, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x9F, 0x00, 0xD1,
0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x0B, 0x00, 0x20, 0xFE, 0xFF, 0x05, 0x00, 0x80, 0xFF,
0xDF, 0x01, 0x00, 0x00, 0xF4, 0xFF, 0x4F, 0x00, 0xF6, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x50, 0xFF,
0xEF, 0x03,
// Unicode: [0x0059, Y]
0xD1, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0B, 0x30, 0xFE, 0xFF, 0x03, 0x00, 0x00,
0x60, 0xFF, 0xDF, 0x01, 0x00, 0xF5, 0xFF, 0x2E, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x70,
0xFF, 0xCF, 0x01, 0x20, 0xFE, 0xFF, 0x05, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x0A, 0xD1, 0xFF, 0x7F,
0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x8F, 0xFB, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD,
0xFF, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0xFF, 0x2E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0061, a]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0B, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x40, 0x44,

View File

@ -2,10 +2,584 @@
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_verdana_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020]
// (Has no glyph data)
// Unicode: [0x0021]
0xF2, 0x0F, 0xF2, 0x0F, 0xF1, 0x0F, 0xF1, 0x0E, 0xF1, 0x0E, 0xF0, 0x0D, 0xF0, 0x0D, 0xF0, 0x0D,
0xE0, 0x0C, 0xE0, 0x0C, 0x40, 0x04, 0x00, 0x00, 0xF1, 0x0E, 0xF1, 0x0E,
// Unicode: [0x0022]
0xF5, 0x0B, 0xF8, 0x08, 0xF4, 0x0A, 0xF7, 0x06, 0xF3, 0x09, 0xF6, 0x05, 0xF1, 0x07, 0xF5, 0x04,
0xF0, 0x06, 0xF4, 0x03, 0x80, 0x03, 0x82, 0x01,
// Unicode: [0x0023]
0x00, 0x00, 0x00, 0x8B, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x10, 0x3F, 0x00, 0x00, 0x00,
0x30, 0x1F, 0x50, 0x0E, 0x00, 0x00, 0x11, 0x81, 0x1C, 0x91, 0x1A, 0x01, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x43, 0xF4, 0x46, 0xF5, 0x45, 0x24, 0x00, 0x00, 0xF4, 0x00, 0xE5, 0x00,
0x00, 0x00, 0x00, 0xB7, 0x00, 0xA9, 0x00, 0x00, 0x10, 0x11, 0x8B, 0x11, 0x7C, 0x11, 0x00, 0xF1,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x40, 0x74, 0x4F, 0x84, 0x4D, 0x44, 0x01, 0x00, 0x80, 0x0B,
0x90, 0x09, 0x00, 0x00, 0x00, 0xC0, 0x07, 0xD0, 0x05, 0x00, 0x00, 0x00, 0xF1, 0x03, 0xF2, 0x01,
0x00, 0x00,
// Unicode: [0x0024]
0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x02,
0x00, 0x00, 0x00, 0xD6, 0xFF, 0xEF, 0x7C, 0x00, 0xB0, 0xAF, 0xF6, 0x76, 0xCC, 0x00, 0xF4, 0x09,
0xF1, 0x01, 0x30, 0x00, 0xF6, 0x08, 0xF1, 0x01, 0x00, 0x00, 0xF2, 0x6E, 0xF2, 0x01, 0x00, 0x00,
0x50, 0xFE, 0xFF, 0x7B, 0x02, 0x00, 0x00, 0x50, 0xF9, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0xF1, 0x31,
0xFE, 0x02, 0x00, 0x00, 0xF1, 0x01, 0xF9, 0x04, 0x44, 0x00, 0xF1, 0x01, 0xFC, 0x02, 0xF7, 0x9D,
0xF8, 0xD8, 0x7F, 0x00, 0x82, 0xDB, 0xFE, 0xAD, 0x03, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00,
0x00, 0x00,
// Unicode: [0x0025]
0x30, 0xEB, 0xBE, 0x03, 0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0xE1, 0x6D, 0xC5, 0x2E, 0x00, 0x10,
0x8E, 0x00, 0x00, 0x00, 0xF6, 0x05, 0x40, 0x7F, 0x00, 0x90, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x03,
0x20, 0x9F, 0x00, 0xF2, 0x07, 0x00, 0x00, 0x00, 0xF6, 0x04, 0x30, 0x8F, 0x00, 0xDA, 0x01, 0x00,
0x00, 0x00, 0xF2, 0x2B, 0xA2, 0x3F, 0x30, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFE, 0xEF, 0x06,
0xC0, 0x0C, 0x70, 0xFD, 0x7D, 0x00, 0x00, 0x20, 0x02, 0x00, 0xF5, 0x04, 0xF8, 0x48, 0xF8, 0x08,
0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0xCE, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x00, 0x60, 0x3F, 0x10,
0xAF, 0x00, 0xB0, 0x0F, 0x00, 0x00, 0x00, 0xE1, 0x0A, 0x10, 0xAF, 0x00, 0xB0, 0x0F, 0x00, 0x00,
0x00, 0xF7, 0x02, 0x00, 0xCE, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x10, 0x9E, 0x00, 0x00, 0xF8, 0x59,
0xF9, 0x07, 0x00, 0x00, 0x90, 0x1E, 0x00, 0x00, 0x70, 0xED, 0x7D, 0x00,
// Unicode: [0x0026]
0x00, 0xC7, 0xEF, 0x4B, 0x00, 0x00, 0x00, 0x80, 0xAF, 0x54, 0xFD, 0x04, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0xF6, 0x09, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0xF5, 0x08, 0x00, 0x00, 0xC0, 0x6F, 0x00, 0xFB,
0x02, 0x00, 0x00, 0x20, 0xFC, 0xDB, 0x3C, 0x20, 0x47, 0x00, 0x10, 0xDB, 0xEE, 0x04, 0x50, 0x8F,
0x00, 0xD1, 0x1C, 0xE3, 0x5F, 0x50, 0x6F, 0x00, 0xF8, 0x05, 0x20, 0xFD, 0x66, 0x4F, 0x00, 0xFC,
0x02, 0x00, 0xC1, 0xEF, 0x0D, 0x00, 0xFC, 0x05, 0x00, 0x10, 0xFB, 0x0B, 0x00, 0xF8, 0x1C, 0x00,
0x30, 0xDD, 0xAF, 0x00, 0xD1, 0xEF, 0x9A, 0xFB, 0x0A, 0xF9, 0x0A, 0x10, 0xD8, 0xEF, 0x5B, 0x00,
0xA0, 0xAF,
// Unicode: [0x0027]
0xF5, 0x0B, 0xF4, 0x0A, 0xF3, 0x09, 0xF2, 0x07, 0xF1, 0x06, 0x80, 0x03,
// Unicode: [0x0028]
0x00, 0x10, 0xFD, 0x04, 0x00, 0xB0, 0x5F, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0xED, 0x01, 0x00,
0x50, 0x9F, 0x00, 0x00, 0xA0, 0x3F, 0x00, 0x00, 0xE0, 0x0D, 0x00, 0x00, 0xF1, 0x0A, 0x00, 0x00,
0xF2, 0x08, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0xF1, 0x0A, 0x00, 0x00,
0xE0, 0x0D, 0x00, 0x00, 0xA0, 0x3F, 0x00, 0x00, 0x50, 0x8F, 0x00, 0x00, 0x00, 0xED, 0x01, 0x00,
0x00, 0xF5, 0x09, 0x00, 0x00, 0xB0, 0x4F, 0x00, 0x00, 0x10, 0xED, 0x03,
// Unicode: [0x0029]
0xE3, 0x2E, 0x00, 0x00, 0x30, 0xCF, 0x00, 0x00, 0x00, 0xF7, 0x07, 0x00, 0x00, 0xD0, 0x1E, 0x00,
0x00, 0x70, 0x6F, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xF9, 0x02,
0x00, 0x00, 0xF7, 0x03, 0x00, 0x00, 0xF6, 0x04, 0x00, 0x00, 0xF7, 0x03, 0x00, 0x00, 0xF9, 0x02,
0x00, 0x00, 0xFC, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x70, 0x6F, 0x00, 0x00, 0xD1, 0x1E, 0x00,
0x00, 0xF9, 0x07, 0x00, 0x40, 0xCF, 0x00, 0x00, 0xE3, 0x2E, 0x00, 0x00,
// Unicode: [0x002A]
0x00, 0x00, 0xF4, 0x00, 0x00, 0x60, 0x00, 0xF3, 0x00, 0x51, 0xD2, 0x5D, 0xE3, 0x70, 0xBE, 0x00,
0xE7, 0xFD, 0xCD, 0x05, 0x00, 0x30, 0xFE, 0x1C, 0x00, 0x10, 0xE9, 0xFB, 0xEB, 0x07, 0xE2, 0x3B,
0xE3, 0x50, 0xDD, 0x40, 0x00, 0xF3, 0x00, 0x30, 0x00, 0x00, 0xD3, 0x00, 0x00,
// Unicode: [0x002B]
0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F,
0x00, 0x00, 0x00, 0x88, 0x88, 0xC8, 0x8F, 0x88, 0x88, 0x02, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x05, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
0x0F, 0x00, 0x00, 0x00,
// Unicode: [0x002C]
0x00, 0x87, 0x04, 0x20, 0xFF, 0x03, 0x60, 0xBF, 0x00, 0xA0, 0x5F, 0x00, 0xE0, 0x0D, 0x00, 0xF3,
0x07, 0x00, 0xF6, 0x01, 0x00,
// Unicode: [0x002D]
0xB6, 0xBB, 0xBB, 0x07, 0xF8, 0xFF, 0xFF, 0x09,
// Unicode: [0x002E]
0xB6, 0x09, 0xF8, 0x0C, 0xF8, 0x0C,
// Unicode: [0x002F]
0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0xD0, 0x0C, 0x00, 0x00, 0x00, 0xF4, 0x06, 0x00,
0x00, 0x00, 0xFA, 0x01, 0x00, 0x00, 0x10, 0xAF, 0x00, 0x00, 0x00, 0x70, 0x4F, 0x00, 0x00, 0x00,
0xD0, 0x0D, 0x00, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0x00, 0xF9, 0x02, 0x00, 0x00, 0x10, 0xBE,
0x00, 0x00, 0x00, 0x60, 0x5F, 0x00, 0x00, 0x00, 0xC0, 0x0E, 0x00, 0x00, 0x00, 0xF2, 0x08, 0x00,
0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x50, 0x5F, 0x00, 0x00, 0x00,
0xB0, 0x1E, 0x00, 0x00, 0x00, 0xF2, 0x09, 0x00, 0x00, 0x00,
// Unicode: [0x0030]
0x00, 0xA3, 0xFE, 0x9D, 0x01, 0x00, 0x40, 0xFF, 0x9B, 0xFC, 0x1D, 0x00, 0xD0, 0x4F, 0x00, 0x80,
0x9F, 0x00, 0xF3, 0x0B, 0x00, 0x10, 0xEE, 0x00, 0xF7, 0x07, 0x00, 0x00, 0xFB, 0x03, 0xF9, 0x06,
0x00, 0x00, 0xFA, 0x05, 0xFA, 0x05, 0x00, 0x00, 0xF9, 0x05, 0xFA, 0x05, 0x00, 0x00, 0xF9, 0x05,
0xF9, 0x06, 0x00, 0x00, 0xFA, 0x05, 0xF7, 0x07, 0x00, 0x00, 0xFB, 0x03, 0xF3, 0x0B, 0x00, 0x10,
0xEF, 0x00, 0xD0, 0x4F, 0x00, 0x80, 0x9F, 0x00, 0x40, 0xFF, 0x9B, 0xFC, 0x1D, 0x00, 0x00, 0xA3,
0xFE, 0x9D, 0x01, 0x00,
// Unicode: [0x0031]
0x00, 0x10, 0x9F, 0x00, 0x00, 0x20, 0xB4, 0x9F, 0x00, 0x00, 0xF4, 0xFF, 0x9F, 0x00, 0x00, 0x41,
0x64, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40,
0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F,
0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x72, 0x97, 0xCF, 0x77,
0x04, 0xF4, 0xFF, 0xFF, 0xFF, 0x09,
// Unicode: [0x0032]
0x50, 0xDA, 0xFF, 0x8D, 0x01, 0x00, 0xF1, 0xDF, 0xBA, 0xFE, 0x1D, 0x00, 0x91, 0x02, 0x00, 0xB1,
0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x40, 0xAF, 0x00, 0x00, 0x00,
0x00, 0x90, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x1D, 0x00, 0x00, 0x00, 0x30, 0xEE, 0x03, 0x00,
0x00, 0x00, 0xE4, 0x3E, 0x00, 0x00, 0x00, 0x50, 0xDF, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x1C, 0x00,
0x00, 0x00, 0xB1, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xAE, 0xAA, 0xAA, 0xAA, 0x04, 0xF6, 0xFF,
0xFF, 0xFF, 0xFF, 0x06,
// Unicode: [0x0033]
0x40, 0xC9, 0xFE, 0xAD, 0x04, 0x00, 0xE0, 0xDF, 0xAB, 0xFC, 0x6F, 0x00, 0x70, 0x02, 0x00, 0x60,
0xDF, 0x00, 0x00, 0x00, 0x00, 0x30, 0xBF, 0x00, 0x00, 0x00, 0x10, 0xC4, 0x3E, 0x00, 0x00, 0x00,
0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0xA9, 0xFC, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x60, 0xBF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x10,
0xFE, 0x01, 0x85, 0x02, 0x00, 0xA1, 0xAF, 0x00, 0xF6, 0xCF, 0xBA, 0xFE, 0x1D, 0x00, 0x61, 0xDA,
0xEF, 0x7C, 0x01, 0x00,
// Unicode: [0x0034]
0x00, 0x00, 0x00, 0xA0, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x9F, 0x00, 0x00, 0x00, 0x70, 0xBF,
0x9F, 0x00, 0x00, 0x00, 0xF5, 0x48, 0x9F, 0x00, 0x00, 0x40, 0xAF, 0x40, 0x9F, 0x00, 0x00, 0xE3,
0x0B, 0x40, 0x9F, 0x00, 0x20, 0xCE, 0x01, 0x40, 0x9F, 0x00, 0xD1, 0x1D, 0x00, 0x40, 0x9F, 0x00,
0xF4, 0x8A, 0x88, 0xA8, 0xCF, 0x68, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x40,
0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00,
0x00, 0x40, 0x9F, 0x00,
// Unicode: [0x0035]
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xCF, 0xAA, 0xAA, 0xAA, 0x02, 0x80, 0x5F, 0x00, 0x00,
0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0xFF, 0xAD, 0x03, 0x00, 0x70, 0xAB, 0xA9, 0xFD, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x70, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x00,
0xFE, 0x02, 0x82, 0x02, 0x00, 0x90, 0xBF, 0x00, 0xF3, 0xDF, 0xBA, 0xFE, 0x2D, 0x00, 0x61, 0xDB,
0xFE, 0x8D, 0x01, 0x00,
// Unicode: [0x0036]
0x00, 0x10, 0xC7, 0xFE, 0x3E, 0x00, 0x00, 0xE4, 0xDF, 0xAB, 0x3C, 0x00, 0x30, 0xDF, 0x04, 0x00,
0x00, 0x00, 0xB0, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x29, 0x86, 0x58, 0x01, 0x00, 0xF6, 0xFD,
0xFF, 0xFF, 0x3E, 0x00, 0xF9, 0x5C, 0x02, 0x92, 0xEF, 0x01, 0xFA, 0x05, 0x00, 0x00, 0xFA, 0x06,
0xF9, 0x05, 0x00, 0x00, 0xF6, 0x09, 0xF8, 0x07, 0x00, 0x00, 0xF6, 0x09, 0xF4, 0x0C, 0x00, 0x00,
0xF9, 0x06, 0xD0, 0x7F, 0x00, 0x30, 0xEF, 0x01, 0x30, 0xFE, 0x9C, 0xFB, 0x4E, 0x00, 0x00, 0x92,
0xFD, 0xAE, 0x02, 0x00,
// Unicode: [0x0037]
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xA5, 0xAA, 0xAA, 0xAA, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x04, 0x00, 0x00, 0x00, 0x40, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00,
0x00, 0xF6, 0x09, 0x00, 0x00, 0x00, 0x10, 0xEE, 0x01, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00,
0x00, 0x00, 0xF2, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x30, 0xCF, 0x00,
0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x0B, 0x00, 0x00, 0x00, 0x10, 0xFD,
0x02, 0x00, 0x00, 0x00,
// Unicode: [0x0038]
0x00, 0xB5, 0xFE, 0xAD, 0x03, 0x00, 0x90, 0xDF, 0x78, 0xE9, 0x6F, 0x00, 0xF3, 0x1C, 0x00, 0x30,
0xEF, 0x00, 0xF6, 0x09, 0x00, 0x00, 0xFD, 0x01, 0xF3, 0x2E, 0x00, 0x10, 0xDE, 0x00, 0x80, 0xEF,
0x38, 0xA1, 0x4F, 0x00, 0x00, 0xF8, 0xFF, 0xEE, 0x03, 0x00, 0x90, 0x6F, 0x62, 0xFC, 0x4E, 0x00,
0xF6, 0x08, 0x00, 0x50, 0xFE, 0x02, 0xFB, 0x03, 0x00, 0x00, 0xF9, 0x07, 0xFB, 0x05, 0x00, 0x00,
0xF9, 0x07, 0xF7, 0x1C, 0x00, 0x20, 0xFE, 0x02, 0xB0, 0xEF, 0x78, 0xE9, 0x6F, 0x00, 0x00, 0xC6,
0xFE, 0xAE, 0x03, 0x00,
// Unicode: [0x0039]
0x00, 0xB5, 0xFE, 0x8D, 0x01, 0x00, 0xA0, 0xEF, 0x9A, 0xFD, 0x1D, 0x00, 0xF6, 0x1C, 0x00, 0x80,
0x9F, 0x00, 0xFB, 0x04, 0x00, 0x00, 0xFD, 0x01, 0xFD, 0x02, 0x00, 0x00, 0xFA, 0x04, 0xFB, 0x04,
0x00, 0x00, 0xF9, 0x05, 0xF6, 0x5E, 0x01, 0x62, 0xFD, 0x06, 0x80, 0xFF, 0xFF, 0xEF, 0xFD, 0x05,
0x00, 0x72, 0x88, 0x15, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x10, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x90,
0x7F, 0x00, 0x00, 0x00, 0x10, 0xF8, 0x1D, 0x00, 0x70, 0xAC, 0xEB, 0xCF, 0x02, 0x00, 0x60, 0xFE,
0xBE, 0x06, 0x00, 0x00,
// Unicode: [0x003A]
0xF9, 0x0B, 0xF9, 0x0B, 0xB7, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB7, 0x08, 0xF9, 0x0B, 0xF9, 0x0B,
// Unicode: [0x003B]
0x90, 0xBF, 0x00, 0x90, 0xBF, 0x00, 0x70, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x03, 0x50, 0xEF, 0x00, 0x90, 0x8F,
0x00, 0xD0, 0x2F, 0x00, 0xF2, 0x0A, 0x00, 0xF6, 0x04, 0x00, 0xD9, 0x00, 0x00,
// Unicode: [0x003C]
0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBF, 0x00, 0x00, 0x10, 0xD7,
0xEF, 0x18, 0x00, 0x20, 0xE9, 0xCF, 0x05, 0x00, 0x40, 0xFB, 0x9F, 0x03, 0x00, 0x00, 0xF7, 0x8F,
0x01, 0x00, 0x00, 0x00, 0xC4, 0xEF, 0x28, 0x00, 0x00, 0x00, 0x00, 0xA3, 0xFF, 0x4A, 0x00, 0x00,
0x00, 0x00, 0x82, 0xFE, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x61, 0xFD, 0x7E, 0x00, 0x00, 0x00, 0x00,
0x40, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
// Unicode: [0x003D]
0x85, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF9, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
// Unicode: [0x003E]
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x50, 0xFC, 0x9F, 0x03,
0x00, 0x00, 0x00, 0x30, 0xF9, 0xBF, 0x05, 0x00, 0x00, 0x00, 0x10, 0xD7, 0xDF, 0x17, 0x00, 0x00,
0x00, 0x00, 0xD5, 0xDF, 0x00, 0x00, 0x00, 0x61, 0xFC, 0x7E, 0x00, 0x00, 0x82, 0xFE, 0x6C, 0x00,
0x00, 0xA4, 0xFF, 0x4B, 0x00, 0x00, 0xC3, 0xEF, 0x29, 0x00, 0x00, 0x00, 0xD6, 0x17, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x003F]
0x93, 0xEC, 0xDE, 0x29, 0x00, 0xF7, 0xAD, 0xDA, 0xEF, 0x02, 0x33, 0x00, 0x00, 0xF9, 0x0A, 0x00,
0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00, 0x00, 0xF5, 0x0A, 0x00, 0x00, 0x10, 0xFD, 0x03, 0x00, 0x00,
0xD5, 0x6F, 0x00, 0x00, 0xB0, 0xCF, 0x03, 0x00, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x0C,
0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x00,
0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00
0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00,
// Unicode: [0x0040]
0x00, 0x00, 0x30, 0xC8, 0xFE, 0xBD, 0x17, 0x00, 0x00, 0x00, 0x10, 0xFA, 0x7C, 0x55, 0x96, 0xEE,
0x06, 0x00, 0x00, 0xD1, 0x4D, 0x00, 0x00, 0x00, 0x81, 0x7F, 0x00, 0x00, 0xDC, 0x01, 0xC4, 0xEF,
0xDA, 0x0B, 0xF6, 0x03, 0x60, 0x2F, 0x50, 0xDF, 0x78, 0xFA, 0x0B, 0xC0, 0x0A, 0xC0, 0x09, 0xD0,
0x1D, 0x00, 0xD0, 0x0B, 0x60, 0x0E, 0xF1, 0x05, 0xF3, 0x07, 0x00, 0xD0, 0x0B, 0x20, 0x3F, 0xF3,
0x02, 0xF5, 0x05, 0x00, 0xD0, 0x0B, 0x10, 0x4F, 0xF4, 0x02, 0xF3, 0x06, 0x00, 0xD0, 0x0B, 0x30,
0x3F, 0xF2, 0x03, 0xF1, 0x0B, 0x00, 0xD0, 0x0B, 0x50, 0x0E, 0xE0, 0x07, 0x90, 0x9F, 0x65, 0xFD,
0x0B, 0x90, 0x0A, 0x90, 0x0D, 0x10, 0xFA, 0xEF, 0xB6, 0xEF, 0xFE, 0x02, 0x20, 0x8E, 0x00, 0x10,
0x01, 0x10, 0x22, 0x12, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
0xDE, 0x37, 0x11, 0x42, 0x04, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFD, 0xFF, 0xFF, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x33, 0x12, 0x00, 0x00, 0x00,
// Unicode: [0x0041]
0x00, 0x00, 0xA0, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFE, 0x0A, 0x00, 0x00, 0x00, 0x00,
0xF6, 0xD7, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x81, 0x7F, 0x00, 0x00, 0x00, 0x20, 0xAF, 0x20,
0xCF, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xE0, 0x0E, 0x00, 0xF6, 0x09,
0x00, 0x00, 0xF4, 0x08, 0x00, 0xE1, 0x0E, 0x00, 0x00, 0xFA, 0x9B, 0x99, 0xD9, 0x5F, 0x00, 0x10,
0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x60, 0x7F, 0x00, 0x00, 0x00, 0xFD, 0x02, 0xC0, 0x2F, 0x00,
0x00, 0x00, 0xF8, 0x07, 0xF3, 0x0B, 0x00, 0x00, 0x00, 0xF3, 0x0D, 0xF8, 0x06, 0x00, 0x00, 0x00,
0xC0, 0x3F,
// Unicode: [0x0042]
0xF1, 0xFF, 0xFF, 0xDF, 0x3A, 0x00, 0xF1, 0x9E, 0x99, 0xDA, 0xFF, 0x03, 0xF1, 0x0D, 0x00, 0x00,
0xF9, 0x09, 0xF1, 0x0D, 0x00, 0x00, 0xF6, 0x09, 0xF1, 0x0D, 0x00, 0x00, 0xFB, 0x03, 0xF1, 0x9E,
0x99, 0xEA, 0x4E, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xEF, 0x05, 0xF1, 0x0D, 0x00, 0x10, 0xE5, 0x4F,
0xF1, 0x0D, 0x00, 0x00, 0x40, 0xBF, 0xF1, 0x0D, 0x00, 0x00, 0x20, 0xDF, 0xF1, 0x0D, 0x00, 0x00,
0x30, 0xCF, 0xF1, 0x0D, 0x00, 0x00, 0xC1, 0x7F, 0xF1, 0x9E, 0x99, 0xBA, 0xFF, 0x0A, 0xF1, 0xFF,
0xFF, 0xEF, 0x5B, 0x00,
// Unicode: [0x0043]
0x00, 0x20, 0xC8, 0xFE, 0xBE, 0x16, 0x00, 0x00, 0xF7, 0xDF, 0xAA, 0xFC, 0xEF, 0x02, 0x70, 0xEF,
0x04, 0x00, 0x10, 0xE6, 0x03, 0xF2, 0x3F, 0x00, 0x00, 0x00, 0x10, 0x01, 0xF8, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x3F, 0x00, 0x00, 0x00, 0x10, 0x01, 0x80, 0xEF, 0x05,
0x00, 0x10, 0xE6, 0x03, 0x00, 0xF9, 0xDF, 0xAA, 0xFC, 0xEF, 0x02, 0x00, 0x30, 0xD9, 0xFE, 0xAD,
0x16, 0x00,
// Unicode: [0x0044]
0xF1, 0xFF, 0xEF, 0xCE, 0x38, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xEB, 0xFF, 0x09, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0xD5, 0xAF, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x10, 0xFD, 0x06, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0xF4, 0x0C, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xC0,
0x3F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF1,
0x0D, 0x00, 0x00, 0x00, 0xF4, 0x0B, 0xF1, 0x0D, 0x00, 0x00, 0x10, 0xFD, 0x05, 0xF1, 0x0D, 0x00,
0x00, 0xD4, 0x9F, 0x00, 0xF1, 0x9E, 0xA9, 0xEB, 0xFF, 0x08, 0x00, 0xF1, 0xFF, 0xFF, 0xCE, 0x38,
0x00, 0x00,
// Unicode: [0x0045]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF1, 0xAE, 0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF,
0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0x08,
// Unicode: [0x0046]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0xF1, 0xAE, 0xAA, 0xAA, 0xAA, 0x02, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF,
0xAA, 0xAA, 0x2A, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0047]
0x00, 0x10, 0xB7, 0xFE, 0xDE, 0x5A, 0x00, 0x00, 0xE6, 0xEF, 0xAB, 0xDB, 0xFF, 0x1E, 0x60, 0xEF,
0x05, 0x00, 0x00, 0x71, 0x1E, 0xE1, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF7, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x03, 0x00, 0x70, 0xAA, 0xAA,
0x1A, 0xFD, 0x03, 0x00, 0xB0, 0xFF, 0xFF, 0x1F, 0xFB, 0x05, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF7,
0x0A, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF2, 0x4F, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x70, 0xFF, 0x07,
0x00, 0x00, 0xD2, 0x1F, 0x00, 0xF7, 0xEF, 0xAB, 0xDB, 0xFF, 0x1D, 0x00, 0x20, 0xB7, 0xFE, 0xCE,
0x49, 0x00,
// Unicode: [0x0048]
0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0xFD, 0x01, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0xFE, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1,
0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00,
0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00,
0xFD, 0x01,
// Unicode: [0x0049]
0xFA, 0xFF, 0xFF, 0x01, 0x74, 0xFD, 0x78, 0x01, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x74, 0xFD, 0x78, 0x01, 0xFA, 0xFF, 0xFF, 0x01,
// Unicode: [0x004A]
0x00, 0xFB, 0xFF, 0x4F, 0x00, 0x85, 0xC8, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F,
0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F,
0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xB0, 0x4F, 0x00, 0x00, 0xE1, 0x1F,
0xC8, 0xAA, 0xFE, 0x08, 0xD7, 0xEF, 0x5C, 0x00,
// Unicode: [0x004B]
0xEF, 0x00, 0x00, 0x00, 0xF7, 0x1C, 0xEF, 0x00, 0x00, 0x70, 0xCF, 0x01, 0xEF, 0x00, 0x00, 0xF6,
0x1C, 0x00, 0xEF, 0x00, 0x60, 0xCF, 0x01, 0x00, 0xEF, 0x00, 0xF5, 0x1C, 0x00, 0x00, 0xEF, 0x50,
0xCF, 0x01, 0x00, 0x00, 0xEF, 0xF4, 0x2F, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0xAF, 0x00, 0x00, 0x00,
0xFF, 0x2A, 0xFD, 0x09, 0x00, 0x00, 0xEF, 0x00, 0xD2, 0x8F, 0x00, 0x00, 0xEF, 0x00, 0x30, 0xFE,
0x06, 0x00, 0xEF, 0x00, 0x00, 0xE3, 0x5F, 0x00, 0xEF, 0x00, 0x00, 0x40, 0xFF, 0x04, 0xEF, 0x00,
0x00, 0x00, 0xF5, 0x3E,
// Unicode: [0x004C]
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0x02, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0x02,
// Unicode: [0x004D]
0xF1, 0xCF, 0x00, 0x00, 0x00, 0xE1, 0xEF, 0xF1, 0xFF, 0x05, 0x00, 0x00, 0xF8, 0xEF, 0xF1, 0xEC,
0x0C, 0x00, 0x10, 0xBE, 0xEF, 0xF1, 0x7C, 0x5F, 0x00, 0x70, 0x3F, 0xEF, 0xF1, 0x1C, 0xCE, 0x00,
0xE1, 0x0B, 0xEF, 0xF1, 0x0C, 0xF7, 0x05, 0xF6, 0x03, 0xEF, 0xF1, 0x0C, 0xE1, 0x0C, 0xBD, 0x00,
0xEF, 0xF1, 0x0C, 0x80, 0xAF, 0x3F, 0x00, 0xEF, 0xF1, 0x0C, 0x10, 0xFE, 0x0B, 0x00, 0xEF, 0xF1,
0x0C, 0x00, 0xF8, 0x04, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x21, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00,
0x00, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x00, 0x00,
0x00, 0xEF,
// Unicode: [0x004E]
0xF1, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0xFE, 0x0C, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0xAC,
0x5F, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0x2C, 0xDF, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0x0C, 0xF9, 0x06,
0x00, 0xFC, 0x01, 0xF1, 0x0C, 0xE1, 0x1E, 0x00, 0xFC, 0x01, 0xF1, 0x0C, 0x70, 0x8F, 0x00, 0xFC,
0x01, 0xF1, 0x0C, 0x00, 0xED, 0x02, 0xFC, 0x01, 0xF1, 0x0C, 0x00, 0xF6, 0x09, 0xFC, 0x01, 0xF1,
0x0C, 0x00, 0xC0, 0x3F, 0xFC, 0x01, 0xF1, 0x0C, 0x00, 0x40, 0xBF, 0xFC, 0x01, 0xF1, 0x0C, 0x00,
0x00, 0xFB, 0xFE, 0x01, 0xF1, 0x0C, 0x00, 0x00, 0xF3, 0xFF, 0x01, 0xF1, 0x0C, 0x00, 0x00, 0x90,
0xFF, 0x01,
// Unicode: [0x004F]
0x00, 0x40, 0xDA, 0xEF, 0x8C, 0x02, 0x00, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x90, 0xDF,
0x03, 0x00, 0x50, 0xFE, 0x05, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0xF8, 0x08, 0x00, 0x00,
0x00, 0xC0, 0x4F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60,
0x9F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xF8,
0x08, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0x90, 0xDF, 0x03,
0x00, 0x50, 0xFE, 0x05, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x00, 0x40, 0xDA, 0xEF, 0x9D,
0x02, 0x00,
// Unicode: [0x0050]
0xF1, 0xFF, 0xFF, 0xAD, 0x03, 0x00, 0xF1, 0x9E, 0xA9, 0xFC, 0x7F, 0x00, 0xF1, 0x0D, 0x00, 0x40,
0xFF, 0x02, 0xF1, 0x0D, 0x00, 0x00, 0xFA, 0x06, 0xF1, 0x0D, 0x00, 0x00, 0xF9, 0x06, 0xF1, 0x0D,
0x00, 0x00, 0xFD, 0x03, 0xF1, 0x0D, 0x10, 0xB4, 0xBF, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0x1B, 0x00,
0xF1, 0x9E, 0x99, 0x37, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0051]
0x00, 0x40, 0xDA, 0xEF, 0x8C, 0x02, 0x00, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x90, 0xDF,
0x03, 0x00, 0x50, 0xFE, 0x05, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0xF8, 0x08, 0x00, 0x00,
0x00, 0xC0, 0x4F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60,
0x9F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xF8,
0x08, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0x90, 0xDF, 0x03,
0x00, 0x50, 0xFE, 0x04, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x5E, 0x00, 0x00, 0x40, 0xDA, 0xFF, 0xCF,
0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x10,
0x00, 0x00, 0x00, 0x00, 0xF6, 0xBE, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFD, 0xBE,
// Unicode: [0x0052]
0xF1, 0xFF, 0xFF, 0xBE, 0x06, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xFC, 0x9F, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x30, 0xFE, 0x03, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xFA, 0x07, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0xF9, 0x06, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xFD, 0x02, 0x00, 0xF1, 0x0D, 0x10, 0xA3, 0x9F, 0x00,
0x00, 0xF1, 0xFF, 0xFF, 0xEF, 0x07, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xDF, 0x01, 0x00, 0x00, 0xF1,
0x0D, 0x00, 0xF8, 0x1C, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0xA0, 0xBF, 0x00, 0x00, 0xF1, 0x0D, 0x00,
0x00, 0xFB, 0x0A, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xC1, 0x9F, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x20,
0xFD, 0x08,
// Unicode: [0x0053]
0x00, 0xA4, 0xFD, 0xDF, 0x7B, 0x02, 0x80, 0xFF, 0xAC, 0xCA, 0xFF, 0x0E, 0xF4, 0x3E, 0x00, 0x00,
0x61, 0x0C, 0xF9, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x8F,
0x03, 0x00, 0x00, 0x00, 0x50, 0xFE, 0xFF, 0xAD, 0x17, 0x00, 0x00, 0x50, 0xB8, 0xFE, 0xFF, 0x06,
0x00, 0x00, 0x00, 0x20, 0xF7, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7F, 0x03, 0x00, 0x00, 0x00,
0x90, 0x6F, 0xBA, 0x04, 0x00, 0x00, 0xE5, 0x2E, 0xFA, 0xEF, 0xAB, 0xDB, 0xEF, 0x05, 0x50, 0xC9,
0xFE, 0xCE, 0x28, 0x00,
// Unicode: [0x0054]
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xAA, 0xAA, 0xEA, 0xBF, 0xAA, 0xAA, 0x03, 0x00, 0x00,
0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00,
0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00,
0x00, 0x00,
// Unicode: [0x0055]
0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00,
0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A,
0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF,
0xF4, 0x0A, 0x00, 0x00, 0x10, 0xDF, 0xF3, 0x0B, 0x00, 0x00, 0x20, 0xCF, 0xF0, 0x1F, 0x00, 0x00,
0x70, 0x9F, 0x90, 0xAF, 0x01, 0x00, 0xE3, 0x4F, 0x10, 0xFC, 0xBE, 0xCA, 0xFF, 0x08, 0x00, 0x71,
0xEC, 0xEF, 0x4B, 0x00,
// Unicode: [0x0056]
0xF8, 0x08, 0x00, 0x00, 0x00, 0xB0, 0x3F, 0xF3, 0x0D, 0x00, 0x00, 0x00, 0xF2, 0x0D, 0xC0, 0x4F,
0x00, 0x00, 0x00, 0xF7, 0x07, 0x60, 0x9F, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x10, 0xEF, 0x01, 0x00,
0x30, 0xBF, 0x00, 0x00, 0xFA, 0x05, 0x00, 0x90, 0x5F, 0x00, 0x00, 0xF4, 0x0B, 0x00, 0xE0, 0x0E,
0x00, 0x00, 0xE0, 0x2F, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xFA, 0x03, 0x00, 0x00,
0x20, 0xDF, 0x10, 0xCF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x73, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF6,
0xC9, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFE, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x05,
0x00, 0x00,
// Unicode: [0x0057]
0xFE, 0x01, 0x00, 0x30, 0xFF, 0x01, 0x00, 0x20, 0xBF, 0xFA, 0x04, 0x00, 0x70, 0xFF, 0x04, 0x00,
0x60, 0x7F, 0xF6, 0x08, 0x00, 0xA0, 0xFE, 0x08, 0x00, 0xA0, 0x3F, 0xF2, 0x0C, 0x00, 0xE0, 0xD9,
0x0C, 0x00, 0xE0, 0x0E, 0xD0, 0x1F, 0x00, 0xF3, 0x95, 0x1F, 0x00, 0xF3, 0x0A, 0x90, 0x5F, 0x00,
0xF7, 0x51, 0x5F, 0x00, 0xF7, 0x06, 0x50, 0x9F, 0x00, 0xCB, 0x10, 0x9F, 0x00, 0xFA, 0x02, 0x10,
0xDF, 0x00, 0x8E, 0x00, 0xDC, 0x00, 0xDE, 0x00, 0x00, 0xFB, 0x42, 0x4F, 0x00, 0xF8, 0x32, 0x9F,
0x00, 0x00, 0xF7, 0x86, 0x1F, 0x00, 0xF4, 0x76, 0x5F, 0x00, 0x00, 0xF3, 0xCA, 0x0C, 0x00, 0xF0,
0xB9, 0x1F, 0x00, 0x00, 0xE0, 0xFE, 0x08, 0x00, 0xB0, 0xED, 0x0C, 0x00, 0x00, 0xA0, 0xFF, 0x04,
0x00, 0x70, 0xFF, 0x07, 0x00, 0x00, 0x60, 0xFF, 0x00, 0x00, 0x30, 0xFF, 0x03, 0x00,
// Unicode: [0x0058]
0xD0, 0x5F, 0x00, 0x00, 0x00, 0xF7, 0x0A, 0x30, 0xEF, 0x02, 0x00, 0x20, 0xDF, 0x01, 0x00, 0xF7,
0x0B, 0x00, 0xC0, 0x4F, 0x00, 0x00, 0xB0, 0x6F, 0x00, 0xF8, 0x08, 0x00, 0x00, 0x20, 0xEE, 0x42,
0xCF, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xDC, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x05, 0x00,
0x00, 0x00, 0x00, 0x90, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xEA, 0x3F, 0x00, 0x00, 0x00,
0x20, 0xDE, 0x41, 0xCF, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0xF9, 0x08, 0x00, 0x00, 0xF8, 0x08,
0x00, 0xD1, 0x4F, 0x00, 0x40, 0xCF, 0x00, 0x00, 0x40, 0xDF, 0x01, 0xD1, 0x2F, 0x00, 0x00, 0x00,
0xF8, 0x0A,
// Unicode: [0x0059]
0xF9, 0x08, 0x00, 0x00, 0x20, 0xDF, 0x01, 0xE1, 0x3F, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x50, 0xCF,
0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0xFB, 0x06, 0x20, 0xEE, 0x01, 0x00, 0x00, 0xE2, 0x2E, 0xA0,
0x5F, 0x00, 0x00, 0x00, 0x60, 0xAF, 0xF5, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEE, 0x01, 0x00,
0x00, 0x00, 0x00, 0xF3, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00,
0x00, 0x00,
// Unicode: [0x005A]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0xA4, 0xAA, 0xAA, 0xAA, 0xFA, 0x5F, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x0A, 0x00, 0x00, 0x00, 0x60, 0xCF, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x1D, 0x00, 0x00, 0x00,
0x20, 0xEE, 0x03, 0x00, 0x00, 0x00, 0xD1, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x07, 0x00, 0x00,
0x00, 0x90, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x0B, 0x00, 0x00, 0x00, 0x50, 0xDF, 0x01, 0x00,
0x00, 0x00, 0xE3, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xAD, 0xAA, 0xAA, 0xAA, 0x6A, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0x9F,
// Unicode: [0x005B]
0xFA, 0xFF, 0x6F, 0xFA, 0x66, 0x26, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA,
0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00,
0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00,
0xFA, 0x00, 0x00, 0xFA, 0x56, 0x25, 0xFA, 0xFF, 0x6F,
// Unicode: [0x005C]
0xF2, 0x09, 0x00, 0x00, 0x00, 0xB0, 0x1E, 0x00, 0x00, 0x00, 0x50, 0x6F, 0x00, 0x00, 0x00, 0x00,
0xBE, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0x00, 0xF3, 0x08, 0x00, 0x00, 0x00, 0xC0,
0x0E, 0x00, 0x00, 0x00, 0x60, 0x5F, 0x00, 0x00, 0x00, 0x10, 0xAE, 0x00, 0x00, 0x00, 0x00, 0xF9,
0x01, 0x00, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x00, 0x70, 0x4F,
0x00, 0x00, 0x00, 0x10, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x06,
0x00, 0x00, 0x00, 0xD0, 0x0C, 0x00, 0x00, 0x00, 0x80, 0x3F,
// Unicode: [0x005D]
0xF5, 0xFF, 0xBF, 0x62, 0x66, 0xBF, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00,
0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00,
0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE,
0x00, 0x00, 0xBE, 0x52, 0x55, 0xBF, 0xF5, 0xFF, 0xBF,
// Unicode: [0x005E]
0x00, 0x00, 0x50, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x10,
0xDD, 0xF9, 0x05, 0x00, 0x00, 0x00, 0xB0, 0x3F, 0xC0, 0x2E, 0x00, 0x00, 0x00, 0xF8, 0x06, 0x20,
0xCE, 0x01, 0x00, 0x40, 0x9F, 0x00, 0x00, 0xF4, 0x09, 0x00, 0xE2, 0x1C, 0x00, 0x00, 0x80, 0x6F,
0x00, 0xEC, 0x02, 0x00, 0x00, 0x00, 0xFB, 0x03,
// Unicode: [0x005F]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x30, 0x33, 0x33, 0x33, 0x33, 0x33, 0x23,
// Unicode: [0x0060]
0x84, 0x06, 0x00, 0xD1, 0x3F, 0x00, 0x30, 0xAF, 0x00, 0x00, 0xF6, 0x03,
// Unicode: [0x0061]
0x90, 0xEC, 0xEF, 0x7C, 0x00, 0xF0, 0xBD, 0xA9, 0xFE, 0x0A, 0x30, 0x00, 0x00, 0xD1, 0x2F, 0x00,
0x00, 0x00, 0xA1, 0x4F, 0x20, 0xC8, 0xFE, 0xFF, 0x4F, 0xE3, 0xBF, 0x68, 0xA5, 0x4F, 0xFC, 0x05,
0x00, 0x80, 0x4F, 0xEE, 0x00, 0x00, 0x80, 0x4F, 0xFD, 0x03, 0x00, 0xD5, 0x4F, 0xF6, 0xBF, 0xDB,
0xEF, 0x4F, 0x50, 0xFC, 0xAE, 0x83, 0x4F,
// Unicode: [0x0062]
0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x2A, 0xEA, 0xCF, 0x04, 0x00, 0xF3, 0xFD,
0xBE, 0xFD, 0x5F, 0x00, 0xF3, 0x6E, 0x00, 0x60, 0xDF, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x03,
0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xF8, 0x06, 0xF3, 0x0A, 0x00, 0x00,
0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x01, 0xF3, 0x0A, 0x00, 0x80, 0xAF, 0x00, 0xF3, 0xEF,
0xAA, 0xFD, 0x1D, 0x00, 0xF3, 0xAC, 0xFD, 0x9E, 0x01, 0x00,
// Unicode: [0x0063]
0x00, 0xB4, 0xFE, 0xAD, 0x04, 0x70, 0xEF, 0x9A, 0xFB, 0x0D, 0xF4, 0x1D, 0x00, 0x20, 0x08, 0xFA,
0x05, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x01,
0x00, 0x00, 0x00, 0xFA, 0x05, 0x00, 0x00, 0x00, 0xF5, 0x1D, 0x00, 0x20, 0x08, 0x90, 0xEF, 0x9A,
0xFB, 0x0D, 0x00, 0xB5, 0xFE, 0x9D, 0x03,
// Unicode: [0x0064]
0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00,
0x00, 0x00, 0x30, 0xAF, 0x00, 0xB4, 0xEE, 0x8B, 0xAF, 0x70, 0xFF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D,
0x00, 0x40, 0xAF, 0xF9, 0x06, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00,
0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1C, 0x00, 0xB2,
0xAF, 0xC0, 0xEF, 0xCC, 0xEF, 0xAF, 0x10, 0xE9, 0xDF, 0x37, 0xAF,
// Unicode: [0x0065]
0x00, 0xB4, 0xFE, 0x9D, 0x02, 0x70, 0xDF, 0x89, 0xFA, 0x2E, 0xF3, 0x09, 0x00, 0x50, 0x9F, 0xFA,
0x12, 0x11, 0x11, 0xDE, 0xFD, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0x44, 0x44, 0x44, 0x44, 0xFD, 0x01,
0x00, 0x00, 0x00, 0xFA, 0x06, 0x00, 0x00, 0x00, 0xF4, 0x4E, 0x00, 0x00, 0x84, 0x70, 0xFF, 0x9C,
0xDA, 0xBF, 0x00, 0xA4, 0xFD, 0xCE, 0x28,
// Unicode: [0x0066]
0x00, 0x60, 0xEC, 0x9E, 0x00, 0xF7, 0x9D, 0x8A, 0x00, 0xEE, 0x01, 0x00, 0x10, 0xBF, 0x00, 0x00,
0xF5, 0xFF, 0xFF, 0x0F, 0x83, 0xDF, 0x88, 0x08, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
// Unicode: [0x0067]
0x00, 0xB4, 0xFE, 0x9C, 0xAF, 0x70, 0xFF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D, 0x00, 0x40, 0xAF, 0xF9,
0x06, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00, 0x30, 0xAF, 0xFD, 0x01,
0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1B, 0x00, 0xA2, 0xAF, 0xC0, 0xEF, 0xCB,
0xEF, 0xAF, 0x10, 0xE9, 0xDF, 0x48, 0x9F, 0x00, 0x00, 0x00, 0x50, 0x7F, 0x20, 0x00, 0x00, 0xC1,
0x2F, 0xC0, 0xBE, 0xAA, 0xFE, 0x08, 0x80, 0xEC, 0xEF, 0x5B, 0x00,
// Unicode: [0x0068]
0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3,
0x0A, 0x00, 0x00, 0x00, 0xF3, 0x2A, 0xE9, 0xDF, 0x05, 0xF3, 0xED, 0xBE, 0xFC, 0x4F, 0xF3, 0x8F,
0x01, 0x60, 0xAF, 0xF3, 0x0A, 0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00,
0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00,
0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE,
// Unicode: [0x0069]
0xF4, 0x0C, 0xD4, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
// Unicode: [0x006A]
0x00, 0x00, 0xFD, 0x03, 0x00, 0x00, 0xDB, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01,
0x00, 0x88, 0xFD, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x20, 0xDF, 0x00,
0xB8, 0xEA, 0x6F, 0x00, 0xE7, 0xDF, 0x06, 0x00,
// Unicode: [0x006B]
0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00,
0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x70, 0xCF, 0x01, 0xF2, 0x0B,
0x00, 0xF6, 0x1C, 0x00, 0xF2, 0x0B, 0x60, 0xCF, 0x01, 0x00, 0xF2, 0x0B, 0xF5, 0x1C, 0x00, 0x00,
0xF2, 0x5B, 0xCF, 0x01, 0x00, 0x00, 0xF2, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0xF2, 0x9F, 0xFC, 0x09,
0x00, 0x00, 0xF2, 0x0C, 0xD1, 0x7F, 0x00, 0x00, 0xF2, 0x0B, 0x20, 0xFD, 0x06, 0x00, 0xF2, 0x0B,
0x00, 0xE2, 0x5F, 0x00, 0xF2, 0x0B, 0x00, 0x30, 0xFE, 0x04,
// Unicode: [0x006C]
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
// Unicode: [0x006D]
0xF3, 0x2A, 0xEA, 0xBE, 0x03, 0xA3, 0xFE, 0x4C, 0x00, 0xF3, 0xFD, 0xBE, 0xFD, 0x8E, 0xEF, 0xCB,
0xFF, 0x02, 0xF3, 0x7F, 0x00, 0x90, 0xFF, 0x18, 0x00, 0xF9, 0x07, 0xF3, 0x0A, 0x00, 0x40, 0xAF,
0x00, 0x00, 0xF3, 0x0A, 0xF3, 0x0A, 0x00, 0x30, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00,
0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3,
0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2,
0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00,
0x00, 0xF2, 0x0B,
// Unicode: [0x006E]
0xF3, 0x2A, 0xE9, 0xDF, 0x05, 0xF3, 0xFD, 0xBE, 0xFC, 0x4F, 0xF3, 0x8F, 0x01, 0x60, 0xAF, 0xF3,
0x0A, 0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A,
0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00,
0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE,
// Unicode: [0x006F]
0x00, 0xC5, 0xEE, 0x6C, 0x00, 0x00, 0x90, 0xEF, 0xAA, 0xFD, 0x0A, 0x00, 0xF4, 0x1C, 0x00, 0xB1,
0x6F, 0x00, 0xFA, 0x04, 0x00, 0x20, 0xCF, 0x00, 0xFD, 0x00, 0x00, 0x00, 0xFD, 0x00, 0xEE, 0x00,
0x00, 0x00, 0xFC, 0x01, 0xFD, 0x01, 0x00, 0x00, 0xFE, 0x00, 0xFA, 0x04, 0x00, 0x20, 0xCF, 0x00,
0xF4, 0x1C, 0x00, 0xB1, 0x6F, 0x00, 0x90, 0xEF, 0x9A, 0xFD, 0x0B, 0x00, 0x00, 0xC5, 0xFE, 0x7C,
0x00, 0x00,
// Unicode: [0x0070]
0xF3, 0x2A, 0xEA, 0xCF, 0x05, 0x00, 0xF3, 0xFE, 0xBE, 0xFD, 0x5F, 0x00, 0xF3, 0x6E, 0x00, 0x60,
0xDF, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x03, 0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A,
0x00, 0x00, 0xF8, 0x06, 0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xFD, 0x01,
0xF3, 0x0A, 0x00, 0x80, 0xAF, 0x00, 0xF3, 0xDF, 0xAA, 0xFD, 0x1D, 0x00, 0xF3, 0x9B, 0xFD, 0x9D,
0x01, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A,
0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0071]
0x00, 0xB5, 0xEE, 0x9C, 0xAF, 0x70, 0xEF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D, 0x00, 0x40, 0xAF, 0xF9,
0x05, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00, 0x30, 0xAF, 0xFD, 0x01,
0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1C, 0x00, 0xB2, 0xAF, 0xC0, 0xEF, 0xCB,
0xDF, 0xAF, 0x10, 0xE9, 0xDF, 0x37, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30,
0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF,
// Unicode: [0x0072]
0xF3, 0x1A, 0xE9, 0x8F, 0xF3, 0xED, 0xCF, 0x9C, 0xF3, 0x9F, 0x01, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
// Unicode: [0x0073]
0x30, 0xEA, 0xDF, 0x7B, 0x01, 0xF4, 0xAE, 0xA8, 0xFE, 0x03, 0xFB, 0x03, 0x00, 0x50, 0x02, 0xFC,
0x02, 0x00, 0x00, 0x00, 0xF8, 0x9E, 0x25, 0x00, 0x00, 0x70, 0xFD, 0xFF, 0x6D, 0x00, 0x00, 0x20,
0x95, 0xFE, 0x04, 0x00, 0x00, 0x00, 0xF6, 0x08, 0x3A, 0x00, 0x00, 0xF7, 0x07, 0xFE, 0x9C, 0xB8,
0xDF, 0x01, 0x94, 0xFD, 0xCE, 0x17, 0x00,
// Unicode: [0x0074]
0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0x7F,
0x93, 0xDF, 0x88, 0x48, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00,
0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x10, 0xEF, 0x01, 0x00,
0x00, 0xFA, 0x9D, 0x6A, 0x00, 0x91, 0xFD, 0x5D,
// Unicode: [0x0075]
0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4,
0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x09,
0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xDF, 0xF1, 0x2E, 0x00, 0xB2, 0xDF, 0x90, 0xEF, 0xCB,
0xDF, 0xDF, 0x00, 0xE8, 0xDF, 0x17, 0xDF,
// Unicode: [0x0076]
0xF3, 0x0C, 0x00, 0x00, 0xD0, 0x1F, 0xC0, 0x3F, 0x00, 0x00, 0xF4, 0x09, 0x60, 0x8F, 0x00, 0x00,
0xFA, 0x03, 0x10, 0xEE, 0x00, 0x10, 0xCE, 0x00, 0x00, 0xF9, 0x05, 0x60, 0x6F, 0x00, 0x00, 0xF3,
0x0B, 0xC0, 0x1E, 0x00, 0x00, 0xC0, 0x2F, 0xF3, 0x09, 0x00, 0x00, 0x60, 0x7F, 0xF8, 0x03, 0x00,
0x00, 0x10, 0xDE, 0xCE, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x1E,
0x00, 0x00,
// Unicode: [0x0077]
0xF1, 0x0D, 0x00, 0xA0, 0x2F, 0x00, 0x60, 0x6F, 0xC0, 0x2F, 0x00, 0xE1, 0x7F, 0x00, 0xA0, 0x2F,
0x80, 0x5F, 0x00, 0xF5, 0xCE, 0x00, 0xD0, 0x0D, 0x40, 0x9F, 0x00, 0xDA, 0xF7, 0x02, 0xF1, 0x09,
0x00, 0xCE, 0x00, 0x8E, 0xF2, 0x07, 0xF5, 0x06, 0x00, 0xFB, 0x41, 0x3F, 0xC0, 0x0C, 0xF8, 0x02,
0x00, 0xF7, 0x94, 0x0D, 0x80, 0x2F, 0xDC, 0x00, 0x00, 0xF3, 0xE8, 0x08, 0x30, 0x7F, 0x9F, 0x00,
0x00, 0xE0, 0xFE, 0x03, 0x00, 0xED, 0x5F, 0x00, 0x00, 0xA0, 0xDF, 0x00, 0x00, 0xF8, 0x1F, 0x00,
0x00, 0x60, 0x9F, 0x00, 0x00, 0xF3, 0x0C, 0x00,
// Unicode: [0x0078]
0xE1, 0x5F, 0x00, 0x00, 0xF4, 0x1C, 0x40, 0xEF, 0x02, 0x10, 0xEE, 0x02, 0x00, 0xF7, 0x0C, 0xB0,
0x4F, 0x00, 0x00, 0xA0, 0x8F, 0xF7, 0x07, 0x00, 0x00, 0x10, 0xFD, 0xAF, 0x00, 0x00, 0x00, 0x00,
0xF5, 0x2F, 0x00, 0x00, 0x00, 0x10, 0xED, 0xCF, 0x00, 0x00, 0x00, 0xA0, 0x5F, 0xF9, 0x08, 0x00,
0x00, 0xF7, 0x09, 0xD1, 0x5F, 0x00, 0x40, 0xCF, 0x00, 0x30, 0xEF, 0x02, 0xE2, 0x2E, 0x00, 0x00,
0xF6, 0x1C,
// Unicode: [0x0079]
0xF3, 0x0C, 0x00, 0x00, 0xD0, 0x1E, 0xC0, 0x3F, 0x00, 0x00, 0xF5, 0x09, 0x50, 0x9F, 0x00, 0x00,
0xFB, 0x03, 0x00, 0xEE, 0x01, 0x20, 0xBF, 0x00, 0x00, 0xF8, 0x07, 0x80, 0x5F, 0x00, 0x00, 0xF2,
0x0D, 0xE1, 0x0D, 0x00, 0x00, 0xB0, 0x4F, 0xF6, 0x07, 0x00, 0x00, 0x40, 0xAF, 0xFC, 0x01, 0x00,
0x00, 0x00, 0xFD, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0C,
0x00, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0x10, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x60,
0x8F, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x00, 0x00, 0x00,
// Unicode: [0x007A]
0xE0, 0xFF, 0xFF, 0xFF, 0x8F, 0x70, 0x88, 0x88, 0xE8, 0x5F, 0x00, 0x00, 0x00, 0xF8, 0x09, 0x00,
0x00, 0x40, 0xCF, 0x00, 0x00, 0x00, 0xE2, 0x2E, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x00, 0x90,
0x7F, 0x00, 0x00, 0x00, 0xF6, 0x0B, 0x00, 0x00, 0x30, 0xDF, 0x01, 0x00, 0x00, 0xD1, 0xAF, 0x88,
0x88, 0x68, 0xF1, 0xFF, 0xFF, 0xFF, 0xBF,
// Unicode: [0x007B]
0x00, 0x00, 0x10, 0xD8, 0xDF, 0x00, 0x00, 0xC0, 0x9F, 0x46, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00,
0x00, 0xF7, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00,
0xFA, 0x02, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x31, 0xD6, 0x2C, 0x00, 0x00, 0xF5, 0xAF, 0x00,
0x00, 0x00, 0x62, 0xF9, 0x1A, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF7, 0x04, 0x00,
0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0xD0, 0x8F, 0x45, 0x00, 0x00, 0x10, 0xD9, 0xDF,
// Unicode: [0x007C]
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
// Unicode: [0x007D]
0xF3, 0xCE, 0x06, 0x00, 0x00, 0x51, 0xB6, 0x8F, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0x00,
0x00, 0xF9, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00,
0xF6, 0x06, 0x00, 0x00, 0x00, 0xE1, 0x0C, 0x00, 0x00, 0x00, 0x40, 0xBE, 0x25, 0x00, 0x00, 0x00,
0xD2, 0xFF, 0x00, 0x00, 0x30, 0xDD, 0x57, 0x00, 0x00, 0xE1, 0x1D, 0x00, 0x00, 0x00, 0xF6, 0x06,
0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF9, 0x03, 0x00,
0x00, 0x00, 0xFC, 0x01, 0x00, 0x51, 0xB6, 0x8F, 0x00, 0x00, 0xF3, 0xCE, 0x06, 0x00, 0x00,
// Unicode: [0x007E]
0x00, 0xD5, 0xCF, 0x04, 0x00, 0x20, 0x7F, 0x40, 0xDF, 0xD9, 0x6F, 0x00, 0x40, 0x5F, 0xA0, 0x1E,
0x10, 0xFC, 0x05, 0xA0, 0x1F, 0xF0, 0x0A, 0x00, 0xD2, 0xAF, 0xFB, 0x09, 0xF2, 0x07, 0x00, 0x20,
0xEA, 0x9E, 0x01
};

View File

@ -2,5 +2,109 @@
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_verdana_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0 }
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0027, '], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x0029, )], Kerning dist = 1)
{ 0x002E, -1 }, // (First char = [0x002E, .], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0056, -2 }, // (First char = [0x0056, V], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0057, -2 }, // (First char = [0x0057, W], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0066, -1 }, // (First char = [0x0066, f], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0072, -2 }, // (First char = [0x0072, r], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0076, -1 }, // (First char = [0x0076, v], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0077, -1 }, // (First char = [0x0077, w], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0079, -1 }, // (First char = [0x0079, y], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x002E, -1 }, // (First char = [0x002E, .], Second char = [0x002D, -], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x002D, -], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0052, -1 }, // (First char = [0x0052, R], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0058, -1 }, // (First char = [0x0058, X], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x002D, -], Kerning dist = -1)
{ 0x006B, -1 }, // (First char = [0x006B, k], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0056, -2 }, // (First char = [0x0056, V], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0057, -2 }, // (First char = [0x0057, W], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0066, -1 }, // (First char = [0x0066, f], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0072, -2 }, // (First char = [0x0072, r], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0076, -1 }, // (First char = [0x0076, v], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0077, -1 }, // (First char = [0x0077, w], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0079, -1 }, // (First char = [0x0079, y], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x003A, :], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x003A, :], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x003A, :], Kerning dist = -1)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x003A, :], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x003B, ;], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x003B, ;], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x003B, ;], Kerning dist = -1)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x003B, ;], Kerning dist = -2)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x003F, ?], Kerning dist = 1)
{ 0x0027, -1 }, // (First char = [0x0027, '], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0046, -1 }, // (First char = [0x0046, F], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0041, A], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x004A, J], Kerning dist = -1)
{ 0x004C, 1 }, // (First char = [0x004C, L], Second char = [0x004A, J], Kerning dist = 1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0054, T], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0065, -1 }, // (First char = [0x0065, e], Second char = [0x0054, T], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0056, V], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0057, W], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0058, X], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x005C, \], Kerning dist = 1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x005D, ]], Kerning dist = 1)
{ 0x0046, -1 }, // (First char = [0x0046, F], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0061, a], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0063, c], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0064, d], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0065, e], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0067, g], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0067, g], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006D, m], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006E, n], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x006F, o], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0070, p], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0071, q], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0072, r], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0072, r], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0073, s], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0073, s], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0075, u], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0075, u], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0076, v], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0076, v], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0076, v], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0076, v], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0077, w], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0077, w], Kerning dist = -2)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0079, y], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0079, y], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0058, -1 }, // (First char = [0x0058, X], Second char = [0x0079, y], Kerning dist = -1)
{ 0x005A, -1 }, // (First char = [0x005A, Z], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x007A, z], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x007D, }], Kerning dist = 1)
};

View File

@ -5,37 +5,44 @@
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_CHINN____20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 5, 0, 0, 0x00 }, // space
{ 0, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question
{ 130, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A
{ 260, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B
{ 390, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D
{ 520, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E
{ 650, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F
{ 780, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I
{ 806, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L
{ 936, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M
{ 1079, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N
{ 1209, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P
{ 1352, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R
{ 1482, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S
{ 1625, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T
{ 1755, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V
{ 1885, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a
{ 2015, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c
{ 2145, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d
{ 2275, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e
{ 2405, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g
{ 2535, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i
{ 2561, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k
{ 2691, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l
{ 2795, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n
{ 2925, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o
{ 3055, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p
{ 3185, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r
{ 3315, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s
{ 3458, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t
{ 3588, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u
{ 3718, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 } // v
{ 0, 0x0032, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // two
{ 130, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question
{ 260, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A
{ 390, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B
{ 520, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C
{ 650, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D
{ 780, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E
{ 910, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F
{ 1040, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G
{ 1170, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H
{ 1300, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I
{ 1326, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L
{ 1456, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M
{ 1599, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N
{ 1729, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O
{ 1859, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P
{ 2002, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R
{ 2132, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S
{ 2275, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T
{ 2405, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V
{ 2535, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X
{ 2665, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y
{ 2795, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a
{ 2925, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c
{ 3055, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d
{ 3185, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e
{ 3315, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g
{ 3445, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i
{ 3471, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k
{ 3601, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l
{ 3705, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n
{ 3835, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o
{ 3965, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p
{ 4095, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r
{ 4225, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s
{ 4368, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t
{ 4498, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u
{ 4628, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 } // v
};
// CHINN____20_4bpp
@ -53,6 +60,6 @@ touchgfx::GeneratedFont& getFont_CHINN____20_4bpp();
touchgfx::GeneratedFont& getFont_CHINN____20_4bpp()
{
static touchgfx::GeneratedFont CHINN____20_4bpp(glyphs_CHINN____20_4bpp, 32, 20, 20, 0, 0, 4, 1, 1, 1, unicodes_CHINN____20_4bpp, kerning_CHINN____20_4bpp, 63, 0, 0, 0);
static touchgfx::GeneratedFont CHINN____20_4bpp(glyphs_CHINN____20_4bpp, 39, 20, 20, 0, 0, 4, 1, 1, 1, unicodes_CHINN____20_4bpp, kerning_CHINN____20_4bpp, 63, 0, 0, 0);
return CHINN____20_4bpp;
}

View File

@ -4,7 +4,101 @@
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_verdana_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x003F, 9, 14, 14, 1, 11, 0, 0, 0x00 }
{ 0, 0x0020, 0, 0, 0, 0, 7, 0, 0, 0x00 },
{ 0, 0x0021, 3, 14, 14, 2, 8, 0, 0, 0x00 },
{ 28, 0x0022, 7, 6, 15, 1, 9, 0, 0, 0x00 },
{ 52, 0x0023, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 150, 0x0024, 11, 19, 15, 1, 13, 0, 0, 0x00 },
{ 264, 0x0025, 19, 14, 14, 1, 22, 0, 0, 0x00 },
{ 404, 0x0026, 14, 14, 14, 1, 15, 0, 0, 0x00 },
{ 502, 0x0027, 3, 6, 15, 1, 5, 0, 1, 0x00 },
{ 514, 0x0028, 7, 19, 15, 1, 9, 0, 0, 0x00 },
{ 590, 0x0029, 7, 19, 15, 1, 9, 1, 1, 0x00 },
{ 666, 0x002A, 10, 9, 15, 1, 13, 0, 0, 0x00 },
{ 711, 0x002B, 13, 12, 12, 2, 16, 0, 0, 0x00 },
{ 795, 0x002C, 5, 7, 3, 1, 7, 2, 12, 0x00 },
{ 816, 0x002D, 7, 2, 7, 1, 9, 14, 8, 0x00 },
{ 824, 0x002E, 3, 3, 3, 2, 7, 22, 11, 0x00 },
{ 830, 0x002F, 10, 18, 15, -1, 9, 0, 0, 0x00 },
{ 920, 0x0030, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1004, 0x0031, 9, 14, 14, 2, 13, 0, 0, 0x00 },
{ 1074, 0x0032, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1158, 0x0033, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1242, 0x0034, 12, 14, 14, 0, 13, 0, 0, 0x00 },
{ 1326, 0x0035, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1410, 0x0036, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1494, 0x0037, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1578, 0x0038, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1662, 0x0039, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1746, 0x003A, 3, 11, 11, 3, 9, 33, 4, 0x00 },
{ 1768, 0x003B, 5, 15, 11, 2, 9, 37, 4, 0x00 },
{ 1813, 0x003C, 12, 12, 12, 2, 16, 0, 0, 0x00 },
{ 1885, 0x003D, 12, 6, 9, 2, 16, 0, 0, 0x00 },
{ 1921, 0x003E, 12, 12, 12, 2, 16, 0, 0, 0x00 },
{ 1993, 0x003F, 9, 14, 14, 1, 11, 41, 1, 0x00 },
{ 2063, 0x0040, 18, 17, 14, 1, 20, 0, 0, 0x00 },
{ 2216, 0x0041, 14, 14, 14, 0, 14, 42, 4, 0x00 },
{ 2314, 0x0042, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 2398, 0x0043, 13, 14, 14, 1, 14, 0, 0, 0x00 },
{ 2496, 0x0044, 14, 14, 14, 1, 15, 0, 0, 0x00 },
{ 2594, 0x0045, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 2678, 0x0046, 11, 14, 14, 1, 12, 0, 0, 0x00 },
{ 2762, 0x0047, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 2860, 0x0048, 13, 14, 14, 1, 15, 0, 0, 0x00 },
{ 2958, 0x0049, 7, 14, 14, 1, 8, 0, 0, 0x00 },
{ 3014, 0x004A, 8, 14, 14, 0, 9, 46, 2, 0x00 },
{ 3070, 0x004B, 12, 14, 14, 2, 14, 0, 0, 0x00 },
{ 3154, 0x004C, 11, 14, 14, 1, 11, 0, 0, 0x00 },
{ 3238, 0x004D, 14, 14, 14, 1, 17, 0, 0, 0x00 },
{ 3336, 0x004E, 13, 14, 14, 1, 15, 0, 0, 0x00 },
{ 3434, 0x004F, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 3532, 0x0050, 11, 14, 14, 1, 12, 0, 0, 0x00 },
{ 3616, 0x0051, 14, 18, 14, 1, 16, 0, 0, 0x00 },
{ 3742, 0x0052, 13, 14, 14, 1, 14, 0, 0, 0x00 },
{ 3840, 0x0053, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 3924, 0x0054, 13, 14, 14, 0, 12, 48, 5, 0x00 },
{ 4022, 0x0055, 12, 14, 14, 1, 15, 0, 0, 0x00 },
{ 4106, 0x0056, 14, 14, 14, 0, 14, 53, 1, 0x00 },
{ 4204, 0x0057, 18, 14, 14, 1, 20, 54, 1, 0x00 },
{ 4330, 0x0058, 13, 14, 14, 0, 14, 55, 1, 0x00 },
{ 4428, 0x0059, 13, 14, 14, 0, 12, 56, 3, 0x00 },
{ 4526, 0x005A, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 4610, 0x005B, 6, 19, 15, 2, 9, 0, 0, 0x00 },
{ 4667, 0x005C, 10, 18, 15, 0, 9, 59, 1, 0x00 },
{ 4757, 0x005D, 6, 19, 15, 1, 9, 60, 1, 0x00 },
{ 4814, 0x005E, 13, 8, 15, 2, 16, 0, 0, 0x00 },
{ 4870, 0x005F, 14, 2, 254, -1, 13, 0, 0, 0x60 },
{ 4884, 0x0060, 5, 4, 16, 3, 13, 0, 0, 0x00 },
{ 4896, 0x0061, 10, 11, 11, 1, 12, 61, 5, 0x00 },
{ 4951, 0x0062, 11, 15, 15, 1, 12, 0, 0, 0x00 },
{ 5041, 0x0063, 9, 11, 11, 1, 10, 66, 1, 0x00 },
{ 5096, 0x0064, 10, 15, 15, 1, 12, 67, 1, 0x00 },
{ 5171, 0x0065, 10, 11, 11, 1, 12, 68, 5, 0x00 },
{ 5226, 0x0066, 8, 15, 15, 0, 7, 0, 0, 0x00 },
{ 5286, 0x0067, 10, 15, 11, 1, 12, 73, 2, 0x00 },
{ 5361, 0x0068, 10, 15, 15, 1, 13, 0, 0, 0x00 },
{ 5436, 0x0069, 3, 14, 14, 1, 5, 0, 0, 0x00 },
{ 5464, 0x006A, 7, 18, 14, -1, 7, 0, 0, 0x00 },
{ 5536, 0x006B, 11, 15, 15, 1, 12, 0, 0, 0x00 },
{ 5626, 0x006C, 3, 15, 15, 1, 5, 0, 0, 0x00 },
{ 5656, 0x006D, 17, 11, 11, 1, 19, 75, 1, 0x00 },
{ 5755, 0x006E, 10, 11, 11, 1, 13, 76, 1, 0x00 },
{ 5810, 0x006F, 11, 11, 11, 1, 12, 77, 5, 0x00 },
{ 5876, 0x0070, 11, 15, 11, 1, 12, 82, 1, 0x00 },
{ 5966, 0x0071, 10, 15, 11, 1, 12, 83, 1, 0x00 },
{ 6041, 0x0072, 8, 11, 11, 1, 9, 84, 2, 0x00 },
{ 6085, 0x0073, 9, 11, 11, 1, 10, 86, 2, 0x00 },
{ 6140, 0x0074, 8, 14, 14, 0, 8, 0, 0, 0x00 },
{ 6196, 0x0075, 10, 11, 11, 1, 13, 88, 2, 0x00 },
{ 6251, 0x0076, 12, 11, 11, 0, 12, 90, 4, 0x00 },
{ 6317, 0x0077, 16, 11, 11, 0, 16, 94, 2, 0x00 },
{ 6405, 0x0078, 12, 11, 11, 0, 12, 0, 0, 0x00 },
{ 6471, 0x0079, 12, 15, 11, 0, 12, 96, 7, 0x00 },
{ 6561, 0x007A, 10, 11, 11, 0, 11, 103, 1, 0x00 },
{ 6616, 0x007B, 10, 19, 15, 1, 13, 0, 0, 0x00 },
{ 6711, 0x007C, 3, 19, 15, 3, 9, 0, 0, 0x00 },
{ 6749, 0x007D, 10, 19, 15, 1, 13, 104, 1, 0x00 },
{ 6844, 0x007E, 14, 5, 9, 1, 16, 0, 0, 0x00 }
};
// verdana_20_4bpp
@ -22,6 +116,6 @@ touchgfx::GeneratedFont& getFont_verdana_20_4bpp();
touchgfx::GeneratedFont& getFont_verdana_20_4bpp()
{
static touchgfx::GeneratedFont verdana_20_4bpp(glyphs_verdana_20_4bpp, 1, 20, 20, 0, 0, 4, 1, 0, 0, unicodes_verdana_20_4bpp, kerning_verdana_20_4bpp, 63, 0, 0, 0);
static touchgfx::GeneratedFont verdana_20_4bpp(glyphs_verdana_20_4bpp, 95, 24, 20, 0, 0, 4, 1, 1, 1, unicodes_verdana_20_4bpp, kerning_verdana_20_4bpp, 63, 0, 0, 0);
return verdana_20_4bpp;
}

View File

@ -24,7 +24,7 @@ DriverViewFieldBase::DriverViewFieldBase()
value.setPosition(0, 20, 160, 57);
value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
value.setLinespacing(0);
value.setTypedText(touchgfx::TypedText(T___SINGLEUSE_K26P));
value.setTypedText(touchgfx::TypedText(T_NUMBERWILDCARD));
add(value);
}

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["169","T_FIELD_TSCURRENT"],["164","T_FIELD_MINCELLVOLT"],["152","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["138","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["138","T_SKIDPAD"],["82","T_ACCEL"],["136","T___SINGLEUSE_K26P"],["146","T___SINGLEUSE_0FBJ"],["173","T___SINGLEUSE_4OBM"],["170","T___SINGLEUSE_PHFD"],["158","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
{"remap":"yes","language":"GB","language_index":0,"indices":[["252","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["228","T_FIELD_LVSOC"],["246","T_FIELD_TSSOC"],["262","T_FIELD_MAXCELLTEMP"],["267","T_FIELD_TIREFL"],["272","T_FIELD_TIREFR"],["277","T_FIELD_TIRERL"],["282","T_FIELD_TIRERR"],["257","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["296","T_FIELD_SDC"],["162","T_FIELD_INVRREADY"],["154","T_FIELD_INVLREADY"],["178","T_FIELD_R2DPROGRESS"],["170","T_FIELD_ACTIVEMISSION"],["138","T_FIELD_ASSTATE"],["194","T_FIELD_TSSTATE"],["136","T_NUMBERWILDCARD"],["136","T_DEFAULTWILDCARD"],["292","T_FIELD_TSCURRENT"],["287","T_FIELD_MINCELLVOLT"],["234","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["186","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["186","T_SKIDPAD"],["82","T_ACCEL"],["222","T___SINGLEUSE_0FBJ"],["300","T___SINGLEUSE_4OBM"],["293","T___SINGLEUSE_PHFD"],["240","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_K26P","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
{"languages":["GB"],"textids":["T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}

View File

@ -1 +1 @@
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,2,0,83,107,105,100,112,97,100,0,70,73,69,76,68,0,83,80,69,69,68,0,84,73,82,69,83,0,86,77,73,78,0,73,84,83,0,76,86,0]}
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,70,73,69,76,68,0,76,86,83,79,67,0,83,80,69,69,68,0,84,73,82,69,83,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,83,68,67,0,76,86,0]}

View File

@ -1 +1 @@
{"databases":{"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4},"generate_font_format":"0"}
{"databases":{"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4},"generate_font_format":"0"}

View File

@ -12,6 +12,28 @@ enum LANGUAGES
enum TEXTS
{
T_FIELD_BBAL,
T_FIELD_TSVOLTVEH,
T_FIELD_TSVOLTBAT,
T_FIELD_LVSOC,
T_FIELD_TSSOC,
T_FIELD_MAXCELLTEMP,
T_FIELD_TIREFL,
T_FIELD_TIREFR,
T_FIELD_TIRERL,
T_FIELD_TIRERR,
T_FIELD_LAPCOUNT,
T_FIELD_INICHKSTATE,
T_FIELD_ERR,
T_FIELD_SDC,
T_FIELD_INVRREADY,
T_FIELD_INVLREADY,
T_FIELD_R2DPROGRESS,
T_FIELD_ACTIVEMISSION,
T_FIELD_ASSTATE,
T_FIELD_TSSTATE,
T_NUMBERWILDCARD,
T_DEFAULTWILDCARD,
T_FIELD_TSCURRENT,
T_FIELD_MINCELLVOLT,
T_FIELD_SPEED,
@ -29,7 +51,6 @@ enum TEXTS
T_AUTOX,
T_SKIDPAD,
T_ACCEL,
T___SINGLEUSE_K26P,
T___SINGLEUSE_0FBJ,
T___SINGLEUSE_4OBM,
T___SINGLEUSE_PHFD,

View File

@ -10,14 +10,36 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
// Remap all strings
TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
169, // T_FIELD_TSCURRENT: "ITS"
164, // T_FIELD_MINCELLVOLT: "VMIN"
152, // T_FIELD_SPEED: "SPEED"
252, // T_FIELD_BBAL: "BBAL"
209, // T_FIELD_TSVOLTVEH: "TSVVEH"
202, // T_FIELD_TSVOLTBAT: "TSVBAT"
228, // T_FIELD_LVSOC: "LVSOC"
246, // T_FIELD_TSSOC: "TSSOC"
262, // T_FIELD_MAXCELLTEMP: "TMAX"
267, // T_FIELD_TIREFL: "TTFL"
272, // T_FIELD_TIREFR: "TTFR"
277, // T_FIELD_TIRERL: "TTRL"
282, // T_FIELD_TIRERR: "TTRR"
257, // T_FIELD_LAPCOUNT: "LAPS"
146, // T_FIELD_INICHKSTATE: "ICSTATE"
216, // T_FIELD_ERR: "ERROR"
296, // T_FIELD_SDC: "SDC"
162, // T_FIELD_INVRREADY: "INVRRDY"
154, // T_FIELD_INVLREADY: "INVLRDY"
178, // T_FIELD_R2DPROGRESS: "R2DPROG"
170, // T_FIELD_ACTIVEMISSION: "MISSION"
138, // T_FIELD_ASSTATE: "ASSTATE"
194, // T_FIELD_TSSTATE: "TSSTATE"
136, // T_NUMBERWILDCARD: "<>"
136, // T_DEFAULTWILDCARD: "<>"
292, // T_FIELD_TSCURRENT: "ITS"
287, // T_FIELD_MINCELLVOLT: "VMIN"
234, // T_FIELD_SPEED: "SPEED"
95, // T_INSPECTION_HUGE: "Inspection"
127, // T_EBS_HUGE: "EBS Test"
106, // T_TRACKDRIVE_HUGE: "Trackdrive"
117, // T_AUTOX_HUGE: "Autocross"
138, // T_SKIDPAD_HUGE: "Skidpad"
186, // T_SKIDPAD_HUGE: "Skidpad"
82, // T_ACCEL_HUGE: "Acceleration"
34, // T_INVALID_HUGE: "Invalid Mission!"
67, // T_MANUAL: "Manual Driving"
@ -25,13 +47,12 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
127, // T_EBS: "EBS Test"
106, // T_TRACKDRIVE: "Trackdrive"
117, // T_AUTOX: "Autocross"
138, // T_SKIDPAD: "Skidpad"
186, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration"
136, // T___SINGLEUSE_K26P: "<>"
146, // T___SINGLEUSE_0FBJ: "FIELD"
173, // T___SINGLEUSE_4OBM: "LV"
170, // T___SINGLEUSE_PHFD: "TS"
158, // T___SINGLEUSE_H6UX: "TIRES"
222, // T___SINGLEUSE_0FBJ: "FIELD"
300, // T___SINGLEUSE_4OBM: "LV"
293, // T___SINGLEUSE_PHFD: "TS"
240, // T___SINGLEUSE_H6UX: "TIRES"
136, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:"
51, // T___SINGLEUSE_M5X7: "Invalid Mission"

View File

@ -71,13 +71,33 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @117 "Autocross"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @127 "EBS Test"
0x2, 0x0, // @136 "<>"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @138 "Skidpad"
0x46, 0x49, 0x45, 0x4c, 0x44, 0x0, // @146 "FIELD"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @152 "SPEED"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @158 "TIRES"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @164 "VMIN"
0x49, 0x54, 0x53, 0x0, // @169 "ITS"
0x4c, 0x56, 0x0 // @173 "LV"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @138 "ASSTATE"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @146 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @154 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @162 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @170 "MISSION"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @178 "R2DPROG"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @186 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @194 "TSSTATE"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @202 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @209 "TSVVEH"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @216 "ERROR"
0x46, 0x49, 0x45, 0x4c, 0x44, 0x0, // @222 "FIELD"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @228 "LVSOC"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @234 "SPEED"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @240 "TIRES"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @246 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @252 "BBAL"
0x4c, 0x41, 0x50, 0x53, 0x0, // @257 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @262 "TMAX"
0x54, 0x54, 0x46, 0x4c, 0x0, // @267 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @272 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @277 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @282 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @287 "VMIN"
0x49, 0x54, 0x53, 0x0, // @292 "ITS"
0x53, 0x44, 0x43, 0x0, // @296 "SDC"
0x4c, 0x56, 0x0 // @300 "LV"
};
TEXT_LOCATION_FLASH_PRAGMA

View File

@ -27,13 +27,16 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -42,6 +45,24 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },

View File

@ -0,0 +1,36 @@
#ifndef DATAFIELD_HPP
#define DATAFIELD_HPP
#include "touchgfx/TypedText.hpp"
#include <stddef.h>
#include <stdint.h>
// We want to automatically count the number of data field types for the
// description array. This is wacky preprocessor magic that allows us to do just
// that. Unfortunately, it doesn't work with enum classes, so we have to use
// C-style enums.
#define CountedEnum(NAME, TYPE, ...) \
enum NAME : TYPE { __VA_ARGS__ }; \
constexpr size_t NAME##_COUNT = sizeof((int[]){__VA_ARGS__}) / sizeof(int);
CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission,
DF_R2DProgress, DF_INVLReady, DF_INVRReady, DF_SDC, DF_ERR,
DF_IniChkState, DF_LapCount, DF_TireTempFL, DF_TireTempFR,
DF_TireTempRL, DF_TireTempRR, DF_MinCellVolt, DF_MaxCellTemp,
DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh,
DF_Speed, DF_BBal);
enum class DataFieldKind { Numeric, Bool, Text };
struct DataFieldDescription {
DataFieldKind kind;
touchgfx::TypedText title;
size_t int_digits;
size_t decimal_digits;
void* (*getValue)(void);
};
extern DataFieldDescription dataFieldDescs[];
#endif // DATAFIELD_HPP

View File

@ -5,6 +5,8 @@
#include "touchgfx/Unicode.hpp"
#include <gui_generated/containers/DriverViewFieldBase.hpp>
#include "gui/common/DataField.hpp"
class DriverViewField : public DriverViewFieldBase {
public:
DriverViewField();
@ -12,16 +14,20 @@ public:
virtual void initialize();
void setName(const touchgfx::TypedText &text);
void setType(const DataFieldDescription &desc);
void setValue(float newValue);
void setPrecision(size_t intDigits, size_t decimalDigits);
void setValue(const char *str);
void setValue(int boolValue);
protected:
private:
Unicode::UnicodeChar valueBuffer[16];
DataFieldKind fieldKind;
size_t intDigits;
size_t decimalDigits;
float fieldValue;
float floatValue;
int boolValue;
void updateValueBuffer();
};

View File

@ -4,6 +4,8 @@
#include <gui/model/ModelListener.hpp>
#include <mvp/Presenter.hpp>
#include "gui/common/DataField.hpp"
using namespace touchgfx;
class DriverViewView;
@ -33,6 +35,8 @@ private:
DriverViewPresenter();
DriverViewView &view;
DataFieldType fields[3];
};
#endif // DRIVERVIEWPRESENTER_HPP

View File

@ -1,6 +1,7 @@
#ifndef DRIVERVIEWVIEW_HPP
#define DRIVERVIEWVIEW_HPP
#include "gui/common/DataField.hpp"
#include "vehicle.h"
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
@ -12,11 +13,17 @@ public:
virtual void setupScreen();
virtual void tearDownScreen();
void setFieldType(size_t i, const DataFieldDescription &desc);
void setFieldValue(size_t i, float value);
void setFieldValue(size_t i, const char *value);
void setFieldValue(size_t i, int value);
void setTireTemps(const TireTemps &temps);
void setTSSoC(uint8_t soc);
void setMinCellVolt(float v);
protected:
private:
DriverViewField &getField(size_t i);
};
#endif // DRIVERVIEWVIEW_HPP

View File

@ -0,0 +1,110 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include "vehicle.h"
#define VEH_FIELD(FIELD) []() { return (void *)&vehicle_state.FIELD; }
#define VEH_BIT_FIELD(FIELD) \
[]() { \
static int x; \
x = vehicle_state.FIELD; \
return (void *)&x; \
}
void *get_sdc_text() {
if (vehicle_state.errors.sdc_bfl) {
return (void *)"BFL";
} else if (vehicle_state.errors.sdc_brl) {
return (void *)"BRL";
} else if (vehicle_state.errors.sdc_acc) {
return (void *)"ACC";
} else if (vehicle_state.errors.sdc_hvb) {
return (void *)"HVB";
} else {
return (void *)"CLOSED";
}
}
void *get_err_text() {
if (vehicle_state.errors.err_sdc) {
return (void *)"SDC";
} else if (vehicle_state.errors.err_ams) {
return (void *)"AMS";
} else if (vehicle_state.errors.err_pdu) {
return (void *)"PDU";
} else if (vehicle_state.errors.err_ini_chk) {
return (void *)"IniChk";
} else if (vehicle_state.errors.err_con_mon) {
return (void *)"ConMon";
} else if (vehicle_state.errors.err_scs) {
return (void *)"SCS";
} else if (vehicle_state.errors.err_sbspd) {
return (void *)"sBSPD";
} else if (vehicle_state.errors.err_appsp) {
return (void *)"APPSp";
} else if (vehicle_state.errors.err_as) {
return (void *)"AS";
} else if (vehicle_state.errors.err_ros) {
return (void *)"ROS";
} else if (vehicle_state.errors.err_res) {
return (void *)"RES";
} else if (vehicle_state.errors.err_invl) {
return (void *)"INVL";
} else if (vehicle_state.errors.err_invr) {
return (void *)"INVR";
} else {
return (void *)"NONE";
}
}
void *get_zero() {
static float zero = 0.0f;
return &zero;
}
DataFieldDescription dataFieldDescs[] = {
[DF_TSState] = {DataFieldKind::Numeric, T_FIELD_TSSTATE, 1, 0,
VEH_FIELD(ts_state)},
[DF_ASState] = {DataFieldKind::Numeric, T_FIELD_ASSTATE, 1, 0,
VEH_FIELD(as_state)},
[DF_ActiveMission] = {DataFieldKind::Numeric, T_FIELD_ACTIVEMISSION, 1, 0,
VEH_FIELD(active_mission)},
[DF_R2DProgress] = {DataFieldKind::Numeric, T_FIELD_R2DPROGRESS, 1, 0,
VEH_FIELD(r2d_progress)},
[DF_INVLReady] = {DataFieldKind::Bool, T_FIELD_INVLREADY, 0, 0,
VEH_BIT_FIELD(errors.invl_ready)},
[DF_INVRReady] = {DataFieldKind::Bool, T_FIELD_INVRREADY, 0, 0,
VEH_BIT_FIELD(errors.invr_ready)},
[DF_SDC] = {DataFieldKind::Text, T_FIELD_SDC, 0, 0, get_sdc_text},
[DF_ERR] = {DataFieldKind::Text, T_FIELD_ERR, 0, 0, get_err_text},
[DF_IniChkState] = {DataFieldKind::Numeric, T_FIELD_INICHKSTATE, 1, 0,
VEH_FIELD(ini_chk_state)},
[DF_LapCount] = {DataFieldKind::Numeric, T_FIELD_LAPCOUNT, 3, 0,
VEH_FIELD(lap_count)},
[DF_TireTempFL] = {DataFieldKind::Numeric, T_FIELD_TIREFL, 2, 1,
VEH_FIELD(tire_temps.fl)},
[DF_TireTempFR] = {DataFieldKind::Numeric, T_FIELD_TIREFR, 2, 1,
VEH_FIELD(tire_temps.fr)},
[DF_TireTempRL] = {DataFieldKind::Numeric, T_FIELD_TIRERL, 2, 1,
VEH_FIELD(tire_temps.rl)},
[DF_TireTempRR] = {DataFieldKind::Numeric, T_FIELD_TIRERR, 2, 1,
VEH_FIELD(tire_temps.rr)},
[DF_MinCellVolt] = {DataFieldKind::Numeric, T_FIELD_MINCELLVOLT, 1, 2,
VEH_FIELD(min_cell_volt)},
[DF_MaxCellTemp] = {DataFieldKind::Numeric, T_FIELD_MAXCELLTEMP, 2, 1,
VEH_FIELD(max_cell_temp)},
[DF_TSSoC] = {DataFieldKind::Numeric, T_FIELD_TSSOC, 3, 0, VEH_FIELD(soc)},
[DF_LVSoC] = {DataFieldKind::Numeric, T_FIELD_LVSOC, 3, 0, get_zero},
[DF_TSCurrent] = {DataFieldKind::Numeric, T_FIELD_TSCURRENT, 3, 0,
VEH_FIELD(ts_current)},
[DF_TSVoltageBat] = {DataFieldKind::Numeric, T_FIELD_TSVOLTBAT, 3, 1,
VEH_FIELD(ts_voltage_bat)},
[DF_TSVoltageVeh] = {DataFieldKind::Numeric, T_FIELD_TSVOLTVEH, 3, 1,
VEH_FIELD(ts_voltage_veh)},
[DF_Speed] = {DataFieldKind::Numeric, T_FIELD_SPEED, 3, 0, get_zero},
[DF_BBal] = {DataFieldKind::Numeric, T_FIELD_BBAL, 3, 1, get_zero},
};
static_assert(sizeof(dataFieldDescs) / sizeof(dataFieldDescs[0]) ==
DataFieldType_COUNT,
"Incorrect number of data field descriptions");

View File

@ -1,35 +1,72 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Unicode.hpp"
#include <gui/containers/DriverViewField.hpp>
DriverViewField::DriverViewField()
: intDigits{0}, decimalDigits{0}, fieldValue{0} {}
: intDigits{0}, decimalDigits{0}, floatValue{0}, boolValue{0} {}
void DriverViewField::initialize() { DriverViewFieldBase::initialize(); }
void DriverViewField::setName(const touchgfx::TypedText &text) {
title.setTypedText(text);
void DriverViewField::setType(const DataFieldDescription &desc) {
title.setTypedText(desc.title);
title.invalidate();
}
void DriverViewField::setValue(float newValue) {
fieldValue = newValue;
fieldKind = desc.kind;
switch (desc.kind) {
case DataFieldKind::Numeric:
value.setTypedText(T_NUMBERWILDCARD);
break;
case DataFieldKind::Bool:
case DataFieldKind::Text:
value.setTypedText(T_DEFAULTWILDCARD);
break;
}
intDigits = desc.int_digits;
decimalDigits = desc.decimal_digits;
updateValueBuffer();
}
void DriverViewField::setPrecision(size_t intDigits, size_t decimalDigits) {
this->intDigits = intDigits;
this->decimalDigits = decimalDigits;
void DriverViewField::setValue(float newValue) {
floatValue = newValue;
updateValueBuffer();
}
void DriverViewField::setValue(const char *str) {
Unicode::strncpy(valueBuffer, str,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar));
value.setWildcard(valueBuffer);
value.invalidate();
}
void DriverViewField::setValue(int boolValue) {
this->boolValue = boolValue;
updateValueBuffer();
}
void DriverViewField::updateValueBuffer() {
size_t width = intDigits;
if (decimalDigits != 0) {
width += decimalDigits + 1; // 1 digit for the decimal point
switch (fieldKind) {
case DataFieldKind::Numeric: {
size_t width = intDigits;
if (decimalDigits != 0) {
width += decimalDigits + 1; // 1 digit for the decimal point
}
float params[3] = {(float)width, (float)decimalDigits, floatValue};
Unicode::snprintfFloats(valueBuffer,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar),
"%*.*f", params);
value.setWildcard(valueBuffer);
break;
}
float params[3] = {(float)width, (float)decimalDigits, fieldValue};
Unicode::snprintfFloats(valueBuffer,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar),
"%*.*f", params);
value.setWildcard(valueBuffer);
case DataFieldKind::Bool: {
const char *str = boolValue ? "YES" : "NO";
Unicode::strncpy(valueBuffer, str,
sizeof(valueBuffer) / sizeof(valueBuffer[0]));
value.setWildcard(valueBuffer);
break;
}
case DataFieldKind::Text:
// This is updated directly in setValue()
break;
}
value.invalidate();
}

View File

@ -1,15 +1,37 @@
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui/driverview_screen/DriverViewView.hpp>
#include "gui/common/DataField.hpp"
#include "vehicle.h"
DriverViewPresenter::DriverViewPresenter(DriverViewView &v) : view(v) {}
DriverViewPresenter::DriverViewPresenter(DriverViewView &v)
: view(v), fields{DF_MinCellVolt, DF_Speed, DF_TSCurrent} {}
void DriverViewPresenter::activate() {}
void DriverViewPresenter::activate() {
for (size_t i = 0; i < 3; i++) {
view.setFieldType(i, dataFieldDescs[fields[i]]);
}
}
void DriverViewPresenter::deactivate() {}
void DriverViewPresenter::vehicleStateUpdated() {
view.setTireTemps(vehicle_state.tire_temps);
view.setTSSoC(vehicle_state.soc);
view.setMinCellVolt(vehicle_state.min_cell_volt);
for (size_t i = 0; i < 3; i++) {
DataFieldType field = fields[i];
void *val = dataFieldDescs[field].getValue();
switch (dataFieldDescs[field].kind) {
case DataFieldKind::Numeric:
view.setFieldValue(i, *((float *)val));
break;
case DataFieldKind::Bool:
view.setFieldValue(i, *((int *)val));
break;
case DataFieldKind::Text:
view.setFieldValue(i, (const char *)val);
break;
}
}
}

View File

@ -1,3 +1,4 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include <gui/driverview_screen/DriverViewView.hpp>
@ -5,19 +6,29 @@ DriverViewView::DriverViewView() {}
void DriverViewView::setupScreen() {
DriverViewViewBase::setupScreen();
field1.setName(T_FIELD_MINCELLVOLT);
field1.setValue(3.21);
field1.setPrecision(1, 2);
field2.setName(T_FIELD_SPEED);
field2.setValue(42.0);
field2.setPrecision(3, 0);
field3.setName(T_FIELD_TSCURRENT);
field3.setValue(131.0);
field3.setPrecision(3, 0);
field1.setType(dataFieldDescs[DF_MinCellVolt]);
field2.setType(dataFieldDescs[DF_Speed]);
field3.setType(dataFieldDescs[DF_TSCurrent]);
}
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
void DriverViewView::setFieldType(size_t i, const DataFieldDescription &desc) {
getField(i).setType(desc);
}
void DriverViewView::setFieldValue(size_t i, float value) {
getField(i).setValue(value);
}
void DriverViewView::setFieldValue(size_t i, const char *value) {
getField(i).setValue(value);
}
void DriverViewView::setFieldValue(size_t i, int value) {
getField(i).setValue(value);
}
void DriverViewView::setTireTemps(const TireTemps &temps) {
tireTempFL.setTemp(temps.fl);
tireTempFR.setTemp(temps.fr);
@ -30,7 +41,13 @@ void DriverViewView::setTSSoC(uint8_t soc) {
tsSoC.invalidate();
}
void DriverViewView::setMinCellVolt(float v) {
field1.setValue(v);
field1.invalidate();
DriverViewField &DriverViewView::getField(size_t i) {
switch (i) {
case 0:
return field1;
case 1:
return field2;
default:
return field3;
}
}

View File

@ -36,6 +36,7 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/>
<ClCompile Include="..\..\gui\src\common\DataField.cpp"/>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
@ -201,6 +202,7 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\common\DataField.hpp"/>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>

View File

@ -297,6 +297,9 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\common\DataField.cpp">
<Filter>Source Files\gui\common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml">
@ -784,6 +787,9 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\common\DataField.hpp">
<Filter>Header Files\gui\common</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">

View File

@ -526,7 +526,7 @@
"Y": 20,
"Width": 160,
"Height": 57,
"TextId": "__SingleUse_K26P",
"TextId": "NumberWildcard",
"TextRotation": "0",
"Color": {
"Red": 255,