vcl/inc/pdf/pdfbuildin_fonts.hxx    |    5 
 vcl/source/gdi/pdfbuildin_fonts.cxx | 1306 ++++++++++++++++++------------------
 2 files changed, 662 insertions(+), 649 deletions(-)

New commits:
commit 74d853cbf951634d112e1b1eb6df1498a3e43470
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Tue Jul 22 11:34:27 2025 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Tue Jul 22 15:32:39 2025 +0200

    move FontCharMapRef from BuildinFont to BuildinFontFace
    
    which allows BuildinFont to move out of the .data section
    
    assert suggests that this isn't called in practice anyway.
    
    Change-Id: I4132bfc0d16deffff265480f0b7da143b1a6835b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188154
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/vcl/inc/pdf/pdfbuildin_fonts.hxx b/vcl/inc/pdf/pdfbuildin_fonts.hxx
index 76c30481498c..4cee28aab2fe 100644
--- a/vcl/inc/pdf/pdfbuildin_fonts.hxx
+++ b/vcl/inc/pdf/pdfbuildin_fonts.hxx
@@ -40,10 +40,8 @@ struct BuildinFont
     FontWeight const m_eWeight;
     FontItalic const m_eItalic;
     int const m_aWidths[256];
-    mutable FontCharMapRef m_xFontCharMap;
 
     OString getNameObject() const;
-    const FontCharMapRef& GetFontCharMap() const;
     FontAttributes GetFontAttributes() const;
 };
 
@@ -59,6 +57,7 @@ class BuildinFontFace final : public 
vcl::font::PhysicalFontFace
 {
     static const BuildinFont m_aBuildinFonts[14];
     const BuildinFont& mrBuildin;
+    mutable FontCharMapRef m_xFontCharMap;
 
     rtl::Reference<LogicalFontInstance>
     CreateFontInstance(const vcl::font::FontSelectPattern& rFSD) const 
override;
@@ -68,7 +67,7 @@ public:
 
     const BuildinFont& GetBuildinFont() const { return mrBuildin; }
     sal_IntPtr GetFontId() const override { return 
reinterpret_cast<sal_IntPtr>(&mrBuildin); }
-    FontCharMapRef GetFontCharMap() const override { return 
mrBuildin.GetFontCharMap(); }
+    FontCharMapRef GetFontCharMap() const override;
     bool GetFontCapabilities(vcl::FontCapabilities&) const override { return 
false; }
 
     static const BuildinFont& Get(int nId) { return m_aBuildinFonts[nId]; }
diff --git a/vcl/source/gdi/pdfbuildin_fonts.cxx 
b/vcl/source/gdi/pdfbuildin_fonts.cxx
index 85a9a6d5343b..823c429a5977 100644
--- a/vcl/source/gdi/pdfbuildin_fonts.cxx
+++ b/vcl/source/gdi/pdfbuildin_fonts.cxx
@@ -43,13 +43,13 @@ OString BuildinFont::getNameObject() const
     return aBuf.makeStringAndClear();
 }
 
-const FontCharMapRef& BuildinFont::GetFontCharMap() const
+FontCharMapRef BuildinFontFace::GetFontCharMap() const
 {
     assert(false && "pdf::BuildinFont doesn't provide correct char maps!");
     if (m_xFontCharMap.is())
         return m_xFontCharMap;
 
-    m_xFontCharMap = FontCharMap::GetDefaultMap(m_eCharSet != 
RTL_TEXTENCODING_MS_1252);
+    m_xFontCharMap = FontCharMap::GetDefaultMap(mrBuildin.m_eCharSet != 
RTL_TEXTENCODING_MS_1252);
     return m_xFontCharMap;
 }
 
@@ -70,665 +70,679 @@ FontAttributes BuildinFont::GetFontAttributes() const
 }
 
 const BuildinFont BuildinFontFace::m_aBuildinFonts[14]
-    = { { u"Courier"_ustr, // family name
-          u"Normal"_ustr, // style
-          "Courier", // PSName
-          629,
-          -157, // ascend, descend
-          FAMILY_MODERN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_FIXED, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
-              0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
-              0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
-              0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
-              600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
-              600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
-              600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
-              600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
-              600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
-              600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
-              600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
-              600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
-              600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
-              600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
-              600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
-              600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
-              600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
-              600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
-              0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
-              600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
-              600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
-              600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
-              600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
-              600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
-              600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
-              600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
-              600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
-              600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
-              600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
-              600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
-              600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
-              600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
-          },
-          FontCharMapRef() },
+    = { {
+            u"Courier"_ustr, // family name
+            u"Normal"_ustr, // style
+            "Courier", // PSName
+            629,
+            -157, // ascend, descend
+            FAMILY_MODERN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_FIXED, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
+                0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
+                0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
+                0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
+                600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+                600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+                600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+                600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+                600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+                600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+                600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+                600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+                600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+                600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+                600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+                600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+                600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
+                600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
+                0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
+                600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
+                600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+                600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+                600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+                600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+                600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+                600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+                600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+                600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+                600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+                600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+                600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+                600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+            },
+        },
 
-        { u"Courier"_ustr, // family name
-          u"Italic"_ustr, // style
-          "Courier-Oblique", // PSName
-          629,
-          -157, // ascend, descend
-          FAMILY_MODERN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_FIXED, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
-              0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
-              0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
-              0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
-              600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
-              600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
-              600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
-              600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
-              600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
-              600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
-              600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
-              600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
-              600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
-              600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
-              600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
-              600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
-              600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
-              600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
-              0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
-              600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
-              600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
-              600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
-              600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
-              600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
-              600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
-              600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
-              600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
-              600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
-              600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
-              600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
-              600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
-              600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Courier"_ustr, // family name
+            u"Italic"_ustr, // style
+            "Courier-Oblique", // PSName
+            629,
+            -157, // ascend, descend
+            FAMILY_MODERN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_FIXED, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
+                0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
+                0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
+                0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
+                600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+                600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+                600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+                600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+                600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+                600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+                600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+                600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+                600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+                600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+                600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+                600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+                600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
+                600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
+                0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
+                600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
+                600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+                600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+                600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+                600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+                600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+                600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+                600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+                600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+                600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+                600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+                600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+                600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+            },
+        },
 
-        { u"Courier"_ustr, // family name
-          u"Bold"_ustr, // style
-          "Courier-Bold", // PSName
-          629,
-          -157, // ascend, descend
-          FAMILY_MODERN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_FIXED, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
-              0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
-              0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
-              0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
-              600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
-              600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
-              600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
-              600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
-              600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
-              600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
-              600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
-              600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
-              600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
-              600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
-              600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
-              600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
-              600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
-              600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
-              0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
-              600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
-              600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
-              600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
-              600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
-              600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
-              600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
-              600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
-              600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
-              600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
-              600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
-              600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
-              600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
-              600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Courier"_ustr, // family name
+            u"Bold"_ustr, // style
+            "Courier-Bold", // PSName
+            629,
+            -157, // ascend, descend
+            FAMILY_MODERN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_FIXED, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
+                0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
+                0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
+                0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
+                600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+                600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+                600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+                600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+                600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+                600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+                600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+                600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+                600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+                600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+                600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+                600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+                600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
+                600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
+                0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
+                600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
+                600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+                600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+                600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+                600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+                600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+                600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+                600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+                600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+                600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+                600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+                600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+                600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+            },
+        },
 
-        { u"Courier"_ustr, // family name
-          u"Bold Italic"_ustr, // style
-          "Courier-BoldOblique", // PSName
-          629,
-          -157, // ascend, descend
-          FAMILY_MODERN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_FIXED, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
-              0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
-              0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
-              0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
-              600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
-              600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
-              600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
-              600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
-              600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
-              600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
-              600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
-              600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
-              600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
-              600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
-              600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
-              600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
-              600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
-              600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
-              0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
-              600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
-              600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
-              600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
-              600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
-              600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
-              600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
-              600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
-              600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
-              600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
-              600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
-              600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
-              600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
-              600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Courier"_ustr, // family name
+            u"Bold Italic"_ustr, // style
+            "Courier-BoldOblique", // PSName
+            629,
+            -157, // ascend, descend
+            FAMILY_MODERN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_FIXED, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,   0,   0,   0,   0,   0,   0,   0, // 0 - 7
+                0,   0,   0,   0,   0,   0,   0,   0, // 8 - 15
+                0,   0,   0,   0,   0,   0,   0,   0, // 16 - 23
+                0,   0,   0,   0,   0,   0,   0,   0, // 24 - 31
+                600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
+                600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
+                600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
+                600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
+                600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
+                600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
+                600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
+                600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
+                600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
+                600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
+                600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
+                600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
+                600, 0,   600, 600, 600, 600, 600, 600, // 128 - 135
+                600, 600, 600, 600, 600, 0,   600, 0, // 136 - 143
+                0,   600, 600, 600, 600, 600, 600, 600, // 144 - 151
+                600, 600, 600, 600, 600, 0,   600, 600, // 152 - 159
+                600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
+                600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
+                600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
+                600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
+                600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
+                600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
+                600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
+                600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
+                600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
+                600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
+                600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
+                600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
+            },
+        },
 
-        { u"Helvetica"_ustr, // family name
-          u"Normal"_ustr, // style
-          "Helvetica", // PSName
-          718,
-          -207, // ascend, descend
-          FAMILY_SWISS, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,    0,    0,   0,   0,    0,    0,    0, // 0 - 7
-              0,    0,    0,   0,   0,    0,    0,    0, // 8 - 15
-              0,    0,    0,   0,   0,    0,    0,    0, // 16 - 23
-              0,    0,    0,   0,   0,    0,    0,    0, // 24 - 31
-              278,  278,  355, 556, 556,  889,  667,  191, // 32 - 39
-              333,  333,  389, 584, 278,  333,  278,  278, // 40 - 47
-              556,  556,  556, 556, 556,  556,  556,  556, // 48 - 55
-              556,  556,  278, 278, 584,  584,  584,  556, // 56 - 63
-              1015, 667,  667, 722, 722,  667,  611,  778, // 64 - 71
-              722,  278,  500, 667, 556,  833,  722,  778, // 72 - 79
-              667,  778,  722, 667, 611,  722,  667,  944, // 80 - 87
-              667,  667,  611, 278, 278,  278,  469,  556, // 88 - 95
-              333,  556,  556, 500, 556,  556,  278,  556, // 96 - 103
-              556,  222,  222, 500, 222,  833,  556,  556, // 104 - 111
-              556,  556,  333, 500, 278,  556,  500,  722, // 112 - 119
-              500,  500,  500, 334, 260,  334,  584,  0, // 120 - 127
-              556,  0,    222, 556, 333,  1000, 556,  556, // 128 - 135
-              333,  1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
-              0,    222,  222, 333, 333,  350,  556,  1000, // 144 - 151
-              333,  1000, 500, 333, 944,  0,    500,  667, // 152 - 159
-              278,  333,  556, 556, 556,  556,  260,  556, // 160 - 167
-              333,  737,  370, 556, 584,  333,  737,  333, // 168 - 175
-              400,  584,  333, 333, 333,  556,  537,  278, // 176 - 183
-              333,  333,  365, 556, 834,  834,  834,  611, // 184 - 191
-              667,  667,  667, 667, 667,  667,  1000, 722, // 192 - 199
-              667,  667,  667, 667, 278,  278,  278,  278, // 200 - 207
-              722,  722,  778, 778, 778,  778,  778,  584, // 208 - 215
-              778,  722,  722, 722, 722,  667,  667,  611, // 216 - 223
-              556,  556,  556, 556, 556,  556,  889,  500, // 224 - 231
-              556,  556,  556, 556, 278,  278,  278,  278, // 232 - 239
-              556,  556,  556, 556, 556,  556,  556,  584, // 240 - 247
-              611,  556,  556, 556, 556,  500,  556,  500 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Helvetica"_ustr, // family name
+            u"Normal"_ustr, // style
+            "Helvetica", // PSName
+            718,
+            -207, // ascend, descend
+            FAMILY_SWISS, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,    0,    0,   0,   0,    0,    0,    0, // 0 - 7
+                0,    0,    0,   0,   0,    0,    0,    0, // 8 - 15
+                0,    0,    0,   0,   0,    0,    0,    0, // 16 - 23
+                0,    0,    0,   0,   0,    0,    0,    0, // 24 - 31
+                278,  278,  355, 556, 556,  889,  667,  191, // 32 - 39
+                333,  333,  389, 584, 278,  333,  278,  278, // 40 - 47
+                556,  556,  556, 556, 556,  556,  556,  556, // 48 - 55
+                556,  556,  278, 278, 584,  584,  584,  556, // 56 - 63
+                1015, 667,  667, 722, 722,  667,  611,  778, // 64 - 71
+                722,  278,  500, 667, 556,  833,  722,  778, // 72 - 79
+                667,  778,  722, 667, 611,  722,  667,  944, // 80 - 87
+                667,  667,  611, 278, 278,  278,  469,  556, // 88 - 95
+                333,  556,  556, 500, 556,  556,  278,  556, // 96 - 103
+                556,  222,  222, 500, 222,  833,  556,  556, // 104 - 111
+                556,  556,  333, 500, 278,  556,  500,  722, // 112 - 119
+                500,  500,  500, 334, 260,  334,  584,  0, // 120 - 127
+                556,  0,    222, 556, 333,  1000, 556,  556, // 128 - 135
+                333,  1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
+                0,    222,  222, 333, 333,  350,  556,  1000, // 144 - 151
+                333,  1000, 500, 333, 944,  0,    500,  667, // 152 - 159
+                278,  333,  556, 556, 556,  556,  260,  556, // 160 - 167
+                333,  737,  370, 556, 584,  333,  737,  333, // 168 - 175
+                400,  584,  333, 333, 333,  556,  537,  278, // 176 - 183
+                333,  333,  365, 556, 834,  834,  834,  611, // 184 - 191
+                667,  667,  667, 667, 667,  667,  1000, 722, // 192 - 199
+                667,  667,  667, 667, 278,  278,  278,  278, // 200 - 207
+                722,  722,  778, 778, 778,  778,  778,  584, // 208 - 215
+                778,  722,  722, 722, 722,  667,  667,  611, // 216 - 223
+                556,  556,  556, 556, 556,  556,  889,  500, // 224 - 231
+                556,  556,  556, 556, 278,  278,  278,  278, // 232 - 239
+                556,  556,  556, 556, 556,  556,  556,  584, // 240 - 247
+                611,  556,  556, 556, 556,  500,  556,  500 // 248 - 255
+            },
+        },
 
-        { u"Helvetica"_ustr, // family name
-          u"Italic"_ustr, // style
-          "Helvetica-Oblique", // PSName
-          718,
-          -207, // ascend, descend
-          FAMILY_SWISS, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,    0,    0,   0,   0,    0,    0,    0, // 0 - 7
-              0,    0,    0,   0,   0,    0,    0,    0, // 8 - 15
-              0,    0,    0,   0,   0,    0,    0,    0, // 16 - 23
-              0,    0,    0,   0,   0,    0,    0,    0, // 24 - 31
-              278,  278,  355, 556, 556,  889,  667,  191, // 32 - 39
-              333,  333,  389, 584, 278,  333,  278,  278, // 40 - 47
-              556,  556,  556, 556, 556,  556,  556,  556, // 48 - 55
-              556,  556,  278, 278, 584,  584,  584,  556, // 56 - 63
-              1015, 667,  667, 722, 722,  667,  611,  778, // 64 - 71
-              722,  278,  500, 667, 556,  833,  722,  778, // 72 - 79
-              667,  778,  722, 667, 611,  722,  667,  944, // 80 - 87
-              667,  667,  611, 278, 278,  278,  469,  556, // 88 - 95
-              333,  556,  556, 500, 556,  556,  278,  556, // 96 - 103
-              556,  222,  222, 500, 222,  833,  556,  556, // 104 - 111
-              556,  556,  333, 500, 278,  556,  500,  722, // 112 - 119
-              500,  500,  500, 334, 260,  334,  584,  0, // 120 - 127
-              556,  0,    222, 556, 333,  1000, 556,  556, // 128 - 135
-              333,  1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
-              0,    222,  222, 333, 333,  350,  556,  1000, // 144 - 151
-              333,  1000, 500, 333, 944,  0,    500,  667, // 152 - 159
-              278,  333,  556, 556, 556,  556,  260,  556, // 160 - 167
-              333,  737,  370, 556, 584,  333,  737,  333, // 168 - 175
-              400,  584,  333, 333, 333,  556,  537,  278, // 176 - 183
-              333,  333,  365, 556, 834,  834,  834,  611, // 184 - 191
-              667,  667,  667, 667, 667,  667,  1000, 722, // 192 - 199
-              667,  667,  667, 667, 278,  278,  278,  278, // 200 - 207
-              722,  722,  778, 778, 778,  778,  778,  584, // 208 - 215
-              778,  722,  722, 722, 722,  667,  667,  611, // 216 - 223
-              556,  556,  556, 556, 556,  556,  889,  500, // 224 - 231
-              556,  556,  556, 556, 278,  278,  278,  278, // 232 - 239
-              556,  556,  556, 556, 556,  556,  556,  584, // 240 - 247
-              611,  556,  556, 556, 556,  500,  556,  500 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Helvetica"_ustr, // family name
+            u"Italic"_ustr, // style
+            "Helvetica-Oblique", // PSName
+            718,
+            -207, // ascend, descend
+            FAMILY_SWISS, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,    0,    0,   0,   0,    0,    0,    0, // 0 - 7
+                0,    0,    0,   0,   0,    0,    0,    0, // 8 - 15
+                0,    0,    0,   0,   0,    0,    0,    0, // 16 - 23
+                0,    0,    0,   0,   0,    0,    0,    0, // 24 - 31
+                278,  278,  355, 556, 556,  889,  667,  191, // 32 - 39
+                333,  333,  389, 584, 278,  333,  278,  278, // 40 - 47
+                556,  556,  556, 556, 556,  556,  556,  556, // 48 - 55
+                556,  556,  278, 278, 584,  584,  584,  556, // 56 - 63
+                1015, 667,  667, 722, 722,  667,  611,  778, // 64 - 71
+                722,  278,  500, 667, 556,  833,  722,  778, // 72 - 79
+                667,  778,  722, 667, 611,  722,  667,  944, // 80 - 87
+                667,  667,  611, 278, 278,  278,  469,  556, // 88 - 95
+                333,  556,  556, 500, 556,  556,  278,  556, // 96 - 103
+                556,  222,  222, 500, 222,  833,  556,  556, // 104 - 111
+                556,  556,  333, 500, 278,  556,  500,  722, // 112 - 119
+                500,  500,  500, 334, 260,  334,  584,  0, // 120 - 127
+                556,  0,    222, 556, 333,  1000, 556,  556, // 128 - 135
+                333,  1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
+                0,    222,  222, 333, 333,  350,  556,  1000, // 144 - 151
+                333,  1000, 500, 333, 944,  0,    500,  667, // 152 - 159
+                278,  333,  556, 556, 556,  556,  260,  556, // 160 - 167
+                333,  737,  370, 556, 584,  333,  737,  333, // 168 - 175
+                400,  584,  333, 333, 333,  556,  537,  278, // 176 - 183
+                333,  333,  365, 556, 834,  834,  834,  611, // 184 - 191
+                667,  667,  667, 667, 667,  667,  1000, 722, // 192 - 199
+                667,  667,  667, 667, 278,  278,  278,  278, // 200 - 207
+                722,  722,  778, 778, 778,  778,  778,  584, // 208 - 215
+                778,  722,  722, 722, 722,  667,  667,  611, // 216 - 223
+                556,  556,  556, 556, 556,  556,  889,  500, // 224 - 231
+                556,  556,  556, 556, 278,  278,  278,  278, // 232 - 239
+                556,  556,  556, 556, 556,  556,  556,  584, // 240 - 247
+                611,  556,  556, 556, 556,  500,  556,  500 // 248 - 255
+            },
+        },
 
-        { u"Helvetica"_ustr, // family name
-          u"Bold"_ustr, // style
-          "Helvetica-Bold", // PSName
-          718,
-          -207, // ascend, descend
-          FAMILY_SWISS, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
-              0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
-              0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
-              0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
-              278, 333,  474, 556, 556,  889,  722,  238, // 32 - 39
-              333, 333,  389, 584, 278,  333,  278,  278, // 40 - 47
-              556, 556,  556, 556, 556,  556,  556,  556, // 48 - 55
-              556, 556,  333, 333, 584,  584,  584,  611, // 56 - 63
-              975, 722,  722, 722, 722,  667,  611,  778, // 64 - 71
-              722, 278,  556, 722, 611,  833,  722,  778, // 72 - 79
-              667, 778,  722, 667, 611,  722,  667,  944, // 80 - 87
-              667, 667,  611, 333, 278,  333,  584,  556, // 88 - 95
-              333, 556,  611, 556, 611,  556,  333,  611, // 96 - 103
-              611, 278,  278, 556, 278,  889,  611,  611, // 104 - 111
-              611, 611,  389, 556, 333,  611,  556,  778, // 112 - 119
-              556, 556,  500, 389, 280,  389,  584,  0, // 120 - 127
-              556, 0,    278, 556, 500,  1000, 556,  556, // 128 - 135
-              333, 1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
-              0,   278,  278, 500, 500,  350,  556,  1000, // 144 - 151
-              333, 1000, 556, 333, 944,  0,    500,  667, // 152 - 159
-              278, 333,  556, 556, 556,  556,  280,  556, // 160 - 167
-              333, 737,  370, 556, 584,  333,  737,  333, // 168 - 175
-              400, 584,  333, 333, 333,  611,  556,  278, // 176 - 183
-              333, 333,  365, 556, 834,  834,  834,  611, // 184 - 191
-              722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
-              667, 667,  667, 667, 278,  278,  278,  278, // 200 - 207
-              722, 722,  778, 778, 778,  778,  778,  584, // 208 - 215
-              778, 722,  722, 722, 722,  667,  667,  611, // 216 - 223
-              556, 556,  556, 556, 556,  556,  889,  556, // 224 - 231
-              556, 556,  556, 556, 278,  278,  278,  278, // 232 - 239
-              611, 611,  611, 611, 611,  611,  611,  584, // 240 - 247
-              611, 611,  611, 611, 611,  556,  611,  556 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Helvetica"_ustr, // family name
+            u"Bold"_ustr, // style
+            "Helvetica-Bold", // PSName
+            718,
+            -207, // ascend, descend
+            FAMILY_SWISS, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
+                0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
+                0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
+                0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
+                278, 333,  474, 556, 556,  889,  722,  238, // 32 - 39
+                333, 333,  389, 584, 278,  333,  278,  278, // 40 - 47
+                556, 556,  556, 556, 556,  556,  556,  556, // 48 - 55
+                556, 556,  333, 333, 584,  584,  584,  611, // 56 - 63
+                975, 722,  722, 722, 722,  667,  611,  778, // 64 - 71
+                722, 278,  556, 722, 611,  833,  722,  778, // 72 - 79
+                667, 778,  722, 667, 611,  722,  667,  944, // 80 - 87
+                667, 667,  611, 333, 278,  333,  584,  556, // 88 - 95
+                333, 556,  611, 556, 611,  556,  333,  611, // 96 - 103
+                611, 278,  278, 556, 278,  889,  611,  611, // 104 - 111
+                611, 611,  389, 556, 333,  611,  556,  778, // 112 - 119
+                556, 556,  500, 389, 280,  389,  584,  0, // 120 - 127
+                556, 0,    278, 556, 500,  1000, 556,  556, // 128 - 135
+                333, 1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
+                0,   278,  278, 500, 500,  350,  556,  1000, // 144 - 151
+                333, 1000, 556, 333, 944,  0,    500,  667, // 152 - 159
+                278, 333,  556, 556, 556,  556,  280,  556, // 160 - 167
+                333, 737,  370, 556, 584,  333,  737,  333, // 168 - 175
+                400, 584,  333, 333, 333,  611,  556,  278, // 176 - 183
+                333, 333,  365, 556, 834,  834,  834,  611, // 184 - 191
+                722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
+                667, 667,  667, 667, 278,  278,  278,  278, // 200 - 207
+                722, 722,  778, 778, 778,  778,  778,  584, // 208 - 215
+                778, 722,  722, 722, 722,  667,  667,  611, // 216 - 223
+                556, 556,  556, 556, 556,  556,  889,  556, // 224 - 231
+                556, 556,  556, 556, 278,  278,  278,  278, // 232 - 239
+                611, 611,  611, 611, 611,  611,  611,  584, // 240 - 247
+                611, 611,  611, 611, 611,  556,  611,  556 // 248 - 255
+            },
+        },
 
-        { u"Helvetica"_ustr, // family name
-          u"Bold Italic"_ustr, // style
-          "Helvetica-BoldOblique", // PSName
-          718,
-          -207, // ascend, descend
-          FAMILY_SWISS, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
-              0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
-              0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
-              0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
-              278, 333,  474, 556, 556,  889,  722,  238, // 32 - 39
-              333, 333,  389, 584, 278,  333,  278,  278, // 40 - 47
-              556, 556,  556, 556, 556,  556,  556,  556, // 48 - 55
-              556, 556,  333, 333, 584,  584,  584,  611, // 56 - 63
-              975, 722,  722, 722, 722,  667,  611,  778, // 64 - 71
-              722, 278,  556, 722, 611,  833,  722,  778, // 72 - 79
-              667, 778,  722, 667, 611,  722,  667,  944, // 80 - 87
-              667, 667,  611, 333, 278,  333,  584,  556, // 88 - 95
-              333, 556,  611, 556, 611,  556,  333,  611, // 96 - 103
-              611, 278,  278, 556, 278,  889,  611,  611, // 104 - 111
-              611, 611,  389, 556, 333,  611,  556,  778, // 112 - 119
-              556, 556,  500, 389, 280,  389,  584,  0, // 120 - 127
-              556, 0,    278, 556, 500,  1000, 556,  556, // 128 - 135
-              333, 1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
-              0,   278,  278, 500, 500,  350,  556,  1000, // 144 - 151
-              333, 1000, 556, 333, 944,  0,    500,  667, // 152 - 159
-              278, 333,  556, 556, 556,  556,  280,  556, // 160 - 167
-              333, 737,  370, 556, 584,  333,  737,  333, // 168 - 175
-              400, 584,  333, 333, 333,  611,  556,  278, // 176 - 183
-              333, 333,  365, 556, 834,  834,  834,  611, // 184 - 191
-              722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
-              667, 667,  667, 667, 278,  278,  278,  278, // 200 - 207
-              722, 722,  778, 778, 778,  778,  778,  584, // 208 - 215
-              778, 722,  722, 722, 722,  667,  667,  611, // 216 - 223
-              556, 556,  556, 556, 556,  556,  889,  556, // 224 - 231
-              556, 556,  556, 556, 278,  278,  278,  278, // 232 - 239
-              611, 611,  611, 611, 611,  611,  611,  584, // 240 - 247
-              611, 611,  611, 611, 611,  556,  611,  556 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Helvetica"_ustr, // family name
+            u"Bold Italic"_ustr, // style
+            "Helvetica-BoldOblique", // PSName
+            718,
+            -207, // ascend, descend
+            FAMILY_SWISS, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
+                0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
+                0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
+                0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
+                278, 333,  474, 556, 556,  889,  722,  238, // 32 - 39
+                333, 333,  389, 584, 278,  333,  278,  278, // 40 - 47
+                556, 556,  556, 556, 556,  556,  556,  556, // 48 - 55
+                556, 556,  333, 333, 584,  584,  584,  611, // 56 - 63
+                975, 722,  722, 722, 722,  667,  611,  778, // 64 - 71
+                722, 278,  556, 722, 611,  833,  722,  778, // 72 - 79
+                667, 778,  722, 667, 611,  722,  667,  944, // 80 - 87
+                667, 667,  611, 333, 278,  333,  584,  556, // 88 - 95
+                333, 556,  611, 556, 611,  556,  333,  611, // 96 - 103
+                611, 278,  278, 556, 278,  889,  611,  611, // 104 - 111
+                611, 611,  389, 556, 333,  611,  556,  778, // 112 - 119
+                556, 556,  500, 389, 280,  389,  584,  0, // 120 - 127
+                556, 0,    278, 556, 500,  1000, 556,  556, // 128 - 135
+                333, 1000, 667, 333, 1000, 0,    500,  0, // 136 - 143
+                0,   278,  278, 500, 500,  350,  556,  1000, // 144 - 151
+                333, 1000, 556, 333, 944,  0,    500,  667, // 152 - 159
+                278, 333,  556, 556, 556,  556,  280,  556, // 160 - 167
+                333, 737,  370, 556, 584,  333,  737,  333, // 168 - 175
+                400, 584,  333, 333, 333,  611,  556,  278, // 176 - 183
+                333, 333,  365, 556, 834,  834,  834,  611, // 184 - 191
+                722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
+                667, 667,  667, 667, 278,  278,  278,  278, // 200 - 207
+                722, 722,  778, 778, 778,  778,  778,  584, // 208 - 215
+                778, 722,  722, 722, 722,  667,  667,  611, // 216 - 223
+                556, 556,  556, 556, 556,  556,  889,  556, // 224 - 231
+                556, 556,  556, 556, 278,  278,  278,  278, // 232 - 239
+                611, 611,  611, 611, 611,  611,  611,  584, // 240 - 247
+                611, 611,  611, 611, 611,  556,  611,  556 // 248 - 255
+            },
+        },
 
-        { u"Times"_ustr, // family name
-          u"Normal"_ustr, // style
-          "Times-Roman", // PSName
-          683,
-          -217, // ascend, descend
-          FAMILY_ROMAN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,    0,   0,   0,   0,    0,   0, // 0 - 7
-              0,   0,    0,   0,   0,   0,    0,   0, // 8 - 15
-              0,   0,    0,   0,   0,   0,    0,   0, // 16 - 23
-              0,   0,    0,   0,   0,   0,    0,   0, // 24 - 31
-              250, 333,  408, 500, 500, 833,  778, 180, // 32 - 39
-              333, 333,  500, 564, 250, 333,  250, 278, // 40 - 47
-              500, 500,  500, 500, 500, 500,  500, 500, // 48 - 55
-              500, 500,  278, 278, 564, 564,  564, 444, // 56 - 63
-              921, 722,  667, 667, 722, 611,  556, 722, // 64 - 71
-              722, 333,  389, 722, 611, 889,  722, 722, // 72 - 79
-              556, 722,  667, 556, 611, 722,  722, 944, // 80 - 87
-              722, 722,  611, 333, 278, 333,  469, 500, // 88 - 95
-              333, 444,  500, 444, 500, 444,  333, 500, // 96 - 103
-              500, 278,  278, 500, 278, 778,  500, 500, // 104 - 111
-              500, 500,  333, 389, 278, 500,  500, 722, // 112 - 119
-              500, 500,  444, 480, 200, 480,  541, 0, // 120 - 127
-              500, 0,    333, 500, 444, 1000, 500, 500, // 128 - 135
-              333, 1000, 556, 333, 889, 0,    444, 0, // 136 - 143
-              0,   333,  333, 444, 444, 350,  500, 1000, // 144 - 151
-              333, 980,  389, 333, 722, 0,    444, 722, // 152 - 159
-              250, 333,  500, 500, 500, 500,  200, 500, // 160 - 167
-              333, 760,  276, 500, 564, 333,  760, 333, // 168 - 175
-              400, 564,  300, 300, 333, 500,  453, 250, // 176 - 183
-              333, 300,  310, 500, 750, 750,  750, 444, // 184 - 191
-              722, 722,  722, 722, 722, 722,  889, 667, // 192 - 199
-              611, 611,  611, 611, 333, 333,  333, 333, // 200 - 207
-              722, 722,  722, 722, 722, 722,  722, 564, // 208 - 215
-              722, 722,  722, 722, 722, 722,  556, 500, // 216 - 223
-              444, 444,  444, 444, 444, 444,  667, 444, // 224 - 231
-              444, 444,  444, 444, 278, 278,  278, 278, // 232 - 239
-              500, 500,  500, 500, 500, 500,  500, 564, // 240 - 247
-              500, 500,  500, 500, 500, 500,  500, 500 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Times"_ustr, // family name
+            u"Normal"_ustr, // style
+            "Times-Roman", // PSName
+            683,
+            -217, // ascend, descend
+            FAMILY_ROMAN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,    0,   0,   0,   0,    0,   0, // 0 - 7
+                0,   0,    0,   0,   0,   0,    0,   0, // 8 - 15
+                0,   0,    0,   0,   0,   0,    0,   0, // 16 - 23
+                0,   0,    0,   0,   0,   0,    0,   0, // 24 - 31
+                250, 333,  408, 500, 500, 833,  778, 180, // 32 - 39
+                333, 333,  500, 564, 250, 333,  250, 278, // 40 - 47
+                500, 500,  500, 500, 500, 500,  500, 500, // 48 - 55
+                500, 500,  278, 278, 564, 564,  564, 444, // 56 - 63
+                921, 722,  667, 667, 722, 611,  556, 722, // 64 - 71
+                722, 333,  389, 722, 611, 889,  722, 722, // 72 - 79
+                556, 722,  667, 556, 611, 722,  722, 944, // 80 - 87
+                722, 722,  611, 333, 278, 333,  469, 500, // 88 - 95
+                333, 444,  500, 444, 500, 444,  333, 500, // 96 - 103
+                500, 278,  278, 500, 278, 778,  500, 500, // 104 - 111
+                500, 500,  333, 389, 278, 500,  500, 722, // 112 - 119
+                500, 500,  444, 480, 200, 480,  541, 0, // 120 - 127
+                500, 0,    333, 500, 444, 1000, 500, 500, // 128 - 135
+                333, 1000, 556, 333, 889, 0,    444, 0, // 136 - 143
+                0,   333,  333, 444, 444, 350,  500, 1000, // 144 - 151
+                333, 980,  389, 333, 722, 0,    444, 722, // 152 - 159
+                250, 333,  500, 500, 500, 500,  200, 500, // 160 - 167
+                333, 760,  276, 500, 564, 333,  760, 333, // 168 - 175
+                400, 564,  300, 300, 333, 500,  453, 250, // 176 - 183
+                333, 300,  310, 500, 750, 750,  750, 444, // 184 - 191
+                722, 722,  722, 722, 722, 722,  889, 667, // 192 - 199
+                611, 611,  611, 611, 333, 333,  333, 333, // 200 - 207
+                722, 722,  722, 722, 722, 722,  722, 564, // 208 - 215
+                722, 722,  722, 722, 722, 722,  556, 500, // 216 - 223
+                444, 444,  444, 444, 444, 444,  667, 444, // 224 - 231
+                444, 444,  444, 444, 278, 278,  278, 278, // 232 - 239
+                500, 500,  500, 500, 500, 500,  500, 564, // 240 - 247
+                500, 500,  500, 500, 500, 500,  500, 500 // 248 - 255
+            },
+        },
 
-        { u"Times"_ustr, // family name
-          u"Italic"_ustr, // style
-          "Times-Italic", // PSName
-          683,
-          -217, // ascend, descend
-          FAMILY_ROMAN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,   0,    0,   0,   0,   0,   0,   0, // 0 - 7
-              0,   0,    0,   0,   0,   0,   0,   0, // 8 - 15
-              0,   0,    0,   0,   0,   0,   0,   0, // 16 - 23
-              0,   0,    0,   0,   0,   0,   0,   0, // 24 - 31
-              250, 333,  420, 500, 500, 833, 778, 214, // 32 - 39
-              333, 333,  500, 675, 250, 333, 250, 278, // 40 - 47
-              500, 500,  500, 500, 500, 500, 500, 500, // 48 - 55
-              500, 500,  333, 333, 675, 675, 675, 500, // 56 - 63
-              920, 611,  611, 667, 722, 611, 611, 722, // 64 - 71
-              722, 333,  444, 667, 556, 833, 667, 722, // 72 - 79
-              611, 722,  611, 500, 556, 722, 611, 833, // 80 - 87
-              611, 556,  556, 389, 278, 389, 422, 500, // 88 - 95
-              333, 500,  500, 444, 500, 444, 278, 500, // 96 - 103
-              500, 278,  278, 444, 278, 722, 500, 500, // 104 - 111
-              500, 500,  389, 389, 278, 500, 444, 667, // 112 - 119
-              444, 444,  389, 400, 275, 400, 541, 0, // 120 - 127
-              500, 0,    333, 500, 556, 889, 500, 500, // 128 - 135
-              333, 1000, 500, 333, 944, 0,   389, 0, // 136 - 143
-              0,   333,  333, 556, 556, 350, 500, 889, // 144 - 151
-              333, 980,  389, 333, 667, 0,   389, 556, // 152 - 159
-              250, 389,  500, 500, 500, 500, 275, 500, // 160 - 167
-              333, 760,  276, 500, 675, 333, 760, 333, // 168 - 175
-              400, 675,  300, 300, 333, 500, 523, 250, // 176 - 183
-              333, 300,  310, 500, 750, 750, 750, 500, // 184 - 191
-              611, 611,  611, 611, 611, 611, 889, 667, // 192 - 199
-              611, 611,  611, 611, 333, 333, 333, 333, // 200 - 207
-              722, 667,  722, 722, 722, 722, 722, 675, // 208 - 215
-              722, 722,  722, 722, 722, 556, 611, 500, // 216 - 223
-              500, 500,  500, 500, 500, 500, 667, 444, // 224 - 231
-              444, 444,  444, 444, 278, 278, 278, 278, // 232 - 239
-              500, 500,  500, 500, 500, 500, 500, 675, // 240 - 247
-              500, 500,  500, 500, 500, 444, 500, 444 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Times"_ustr, // family name
+            u"Italic"_ustr, // style
+            "Times-Italic", // PSName
+            683,
+            -217, // ascend, descend
+            FAMILY_ROMAN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,   0,    0,   0,   0,   0,   0,   0, // 0 - 7
+                0,   0,    0,   0,   0,   0,   0,   0, // 8 - 15
+                0,   0,    0,   0,   0,   0,   0,   0, // 16 - 23
+                0,   0,    0,   0,   0,   0,   0,   0, // 24 - 31
+                250, 333,  420, 500, 500, 833, 778, 214, // 32 - 39
+                333, 333,  500, 675, 250, 333, 250, 278, // 40 - 47
+                500, 500,  500, 500, 500, 500, 500, 500, // 48 - 55
+                500, 500,  333, 333, 675, 675, 675, 500, // 56 - 63
+                920, 611,  611, 667, 722, 611, 611, 722, // 64 - 71
+                722, 333,  444, 667, 556, 833, 667, 722, // 72 - 79
+                611, 722,  611, 500, 556, 722, 611, 833, // 80 - 87
+                611, 556,  556, 389, 278, 389, 422, 500, // 88 - 95
+                333, 500,  500, 444, 500, 444, 278, 500, // 96 - 103
+                500, 278,  278, 444, 278, 722, 500, 500, // 104 - 111
+                500, 500,  389, 389, 278, 500, 444, 667, // 112 - 119
+                444, 444,  389, 400, 275, 400, 541, 0, // 120 - 127
+                500, 0,    333, 500, 556, 889, 500, 500, // 128 - 135
+                333, 1000, 500, 333, 944, 0,   389, 0, // 136 - 143
+                0,   333,  333, 556, 556, 350, 500, 889, // 144 - 151
+                333, 980,  389, 333, 667, 0,   389, 556, // 152 - 159
+                250, 389,  500, 500, 500, 500, 275, 500, // 160 - 167
+                333, 760,  276, 500, 675, 333, 760, 333, // 168 - 175
+                400, 675,  300, 300, 333, 500, 523, 250, // 176 - 183
+                333, 300,  310, 500, 750, 750, 750, 500, // 184 - 191
+                611, 611,  611, 611, 611, 611, 889, 667, // 192 - 199
+                611, 611,  611, 611, 333, 333, 333, 333, // 200 - 207
+                722, 667,  722, 722, 722, 722, 722, 675, // 208 - 215
+                722, 722,  722, 722, 722, 556, 611, 500, // 216 - 223
+                500, 500,  500, 500, 500, 500, 667, 444, // 224 - 231
+                444, 444,  444, 444, 278, 278, 278, 278, // 232 - 239
+                500, 500,  500, 500, 500, 500, 500, 675, // 240 - 247
+                500, 500,  500, 500, 500, 444, 500, 444 // 248 - 255
+            },
+        },
 
-        { u"Times"_ustr, // family name
-          u"Bold"_ustr, // style
-          "Times-Bold", // PSName
-          683,
-          -217, // ascend, descend
-          FAMILY_ROMAN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
-              0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
-              0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
-              0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
-              250, 333,  555, 500, 500,  1000, 833,  278, // 32 - 39
-              333, 333,  500, 570, 250,  333,  250,  278, // 40 - 47
-              500, 500,  500, 500, 500,  500,  500,  500, // 48 - 55
-              500, 500,  333, 333, 570,  570,  570,  500, // 56 - 63
-              930, 722,  667, 722, 722,  667,  611,  778, // 64 - 71
-              778, 389,  500, 778, 667,  944,  722,  778, // 72 - 79
-              611, 778,  722, 556, 667,  722,  722,  1000, // 80 - 87
-              722, 722,  667, 333, 278,  333,  581,  500, // 88 - 95
-              333, 500,  556, 444, 556,  444,  333,  500, // 96 - 103
-              556, 278,  333, 556, 278,  833,  556,  500, // 104 - 111
-              556, 556,  444, 389, 333,  556,  500,  722, // 112 - 119
-              500, 500,  444, 394, 220,  394,  520,  0, // 120 - 127
-              500, 0,    333, 500, 500,  1000, 500,  500, // 128 - 135
-              333, 1000, 556, 333, 1000, 0,    444,  0, // 136 - 143
-              0,   333,  333, 500, 500,  350,  500,  1000, // 144 - 151
-              333, 1000, 389, 333, 722,  0,    444,  722, // 152 - 159
-              250, 333,  500, 500, 500,  500,  220,  500, // 160 - 167
-              333, 747,  300, 500, 570,  333,  747,  333, // 168 - 175
-              400, 570,  300, 300, 333,  556,  540,  250, // 176 - 183
-              333, 300,  330, 500, 750,  750,  750,  500, // 184 - 191
-              722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
-              667, 667,  667, 667, 389,  389,  389,  389, // 200 - 207
-              722, 722,  778, 778, 778,  778,  778,  570, // 208 - 215
-              778, 722,  722, 722, 722,  722,  611,  556, // 216 - 223
-              500, 500,  500, 500, 500,  500,  722,  444, // 224 - 231
-              444, 444,  444, 444, 278,  278,  278,  278, // 232 - 239
-              500, 556,  500, 500, 500,  500,  500,  570, // 240 - 247
-              500, 556,  556, 556, 556,  500,  556,  500 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Times"_ustr, // family name
+            u"Bold"_ustr, // style
+            "Times-Bold", // PSName
+            683,
+            -217, // ascend, descend
+            FAMILY_ROMAN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,    0,   0,   0,    0,    0,    0, // 0 - 7
+                0,   0,    0,   0,   0,    0,    0,    0, // 8 - 15
+                0,   0,    0,   0,   0,    0,    0,    0, // 16 - 23
+                0,   0,    0,   0,   0,    0,    0,    0, // 24 - 31
+                250, 333,  555, 500, 500,  1000, 833,  278, // 32 - 39
+                333, 333,  500, 570, 250,  333,  250,  278, // 40 - 47
+                500, 500,  500, 500, 500,  500,  500,  500, // 48 - 55
+                500, 500,  333, 333, 570,  570,  570,  500, // 56 - 63
+                930, 722,  667, 722, 722,  667,  611,  778, // 64 - 71
+                778, 389,  500, 778, 667,  944,  722,  778, // 72 - 79
+                611, 778,  722, 556, 667,  722,  722,  1000, // 80 - 87
+                722, 722,  667, 333, 278,  333,  581,  500, // 88 - 95
+                333, 500,  556, 444, 556,  444,  333,  500, // 96 - 103
+                556, 278,  333, 556, 278,  833,  556,  500, // 104 - 111
+                556, 556,  444, 389, 333,  556,  500,  722, // 112 - 119
+                500, 500,  444, 394, 220,  394,  520,  0, // 120 - 127
+                500, 0,    333, 500, 500,  1000, 500,  500, // 128 - 135
+                333, 1000, 556, 333, 1000, 0,    444,  0, // 136 - 143
+                0,   333,  333, 500, 500,  350,  500,  1000, // 144 - 151
+                333, 1000, 389, 333, 722,  0,    444,  722, // 152 - 159
+                250, 333,  500, 500, 500,  500,  220,  500, // 160 - 167
+                333, 747,  300, 500, 570,  333,  747,  333, // 168 - 175
+                400, 570,  300, 300, 333,  556,  540,  250, // 176 - 183
+                333, 300,  330, 500, 750,  750,  750,  500, // 184 - 191
+                722, 722,  722, 722, 722,  722,  1000, 722, // 192 - 199
+                667, 667,  667, 667, 389,  389,  389,  389, // 200 - 207
+                722, 722,  778, 778, 778,  778,  778,  570, // 208 - 215
+                778, 722,  722, 722, 722,  722,  611,  556, // 216 - 223
+                500, 500,  500, 500, 500,  500,  722,  444, // 224 - 231
+                444, 444,  444, 444, 278,  278,  278,  278, // 232 - 239
+                500, 556,  500, 500, 500,  500,  500,  570, // 240 - 247
+                500, 556,  556, 556, 556,  500,  556,  500 // 248 - 255
+            },
+        },
 
-        { u"Times"_ustr, // family name
-          u"Bold Italic"_ustr, // style
-          "Times-BoldItalic", // PSName
-          683,
-          -217, // ascend, descend
-          FAMILY_ROMAN, // family style
-          RTL_TEXTENCODING_MS_1252, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_BOLD, // weight type
-          ITALIC_NORMAL, // italic type
-          {
-              0,   0,    0,   0,   0,   0,    0,   0, // 0 - 7
-              0,   0,    0,   0,   0,   0,    0,   0, // 8 - 15
-              0,   0,    0,   0,   0,   0,    0,   0, // 16 - 23
-              0,   0,    0,   0,   0,   0,    0,   0, // 24 - 31
-              250, 389,  555, 500, 500, 833,  778, 278, // 32 - 39
-              333, 333,  500, 570, 250, 333,  250, 278, // 40 - 47
-              500, 500,  500, 500, 500, 500,  500, 500, // 48 - 55
-              500, 500,  333, 333, 570, 570,  570, 500, // 56 - 63
-              832, 667,  667, 667, 722, 667,  667, 722, // 64 - 71
-              778, 389,  500, 667, 611, 889,  722, 722, // 72 - 79
-              611, 722,  667, 556, 611, 722,  667, 889, // 80 - 87
-              667, 611,  611, 333, 278, 333,  570, 500, // 88 - 95
-              333, 500,  500, 444, 500, 444,  333, 500, // 96 - 103
-              556, 278,  278, 500, 278, 778,  556, 500, // 104 - 111
-              500, 500,  389, 389, 278, 556,  444, 667, // 112 - 119
-              500, 444,  389, 348, 220, 348,  570, 0, // 120 - 127
-              500, 0,    333, 500, 500, 1000, 500, 500, // 128 - 135
-              333, 1000, 556, 333, 944, 0,    389, 0, // 136 - 143
-              0,   333,  333, 500, 500, 350,  500, 1000, // 144 - 151
-              333, 1000, 389, 333, 722, 0,    389, 611, // 152 - 159
-              250, 389,  500, 500, 500, 500,  220, 500, // 160 - 167
-              333, 747,  266, 500, 606, 333,  747, 333, // 168 - 175
-              400, 570,  300, 300, 333, 576,  500, 250, // 176 - 183
-              333, 300,  300, 500, 750, 750,  750, 500, // 184 - 191
-              667, 667,  667, 667, 667, 667,  944, 667, // 192 - 199
-              667, 667,  667, 667, 389, 389,  389, 389, // 200 - 207
-              722, 722,  722, 722, 722, 722,  722, 570, // 208 - 215
-              722, 722,  722, 722, 722, 611,  611, 500, // 216 - 223
-              500, 500,  500, 500, 500, 500,  722, 444, // 224 - 231
-              444, 444,  444, 444, 278, 278,  278, 278, // 232 - 239
-              500, 556,  500, 500, 500, 500,  500, 570, // 240 - 247
-              500, 556,  556, 556, 556, 444,  500, 444 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"Times"_ustr, // family name
+            u"Bold Italic"_ustr, // style
+            "Times-BoldItalic", // PSName
+            683,
+            -217, // ascend, descend
+            FAMILY_ROMAN, // family style
+            RTL_TEXTENCODING_MS_1252, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_BOLD, // weight type
+            ITALIC_NORMAL, // italic type
+            {
+                0,   0,    0,   0,   0,   0,    0,   0, // 0 - 7
+                0,   0,    0,   0,   0,   0,    0,   0, // 8 - 15
+                0,   0,    0,   0,   0,   0,    0,   0, // 16 - 23
+                0,   0,    0,   0,   0,   0,    0,   0, // 24 - 31
+                250, 389,  555, 500, 500, 833,  778, 278, // 32 - 39
+                333, 333,  500, 570, 250, 333,  250, 278, // 40 - 47
+                500, 500,  500, 500, 500, 500,  500, 500, // 48 - 55
+                500, 500,  333, 333, 570, 570,  570, 500, // 56 - 63
+                832, 667,  667, 667, 722, 667,  667, 722, // 64 - 71
+                778, 389,  500, 667, 611, 889,  722, 722, // 72 - 79
+                611, 722,  667, 556, 611, 722,  667, 889, // 80 - 87
+                667, 611,  611, 333, 278, 333,  570, 500, // 88 - 95
+                333, 500,  500, 444, 500, 444,  333, 500, // 96 - 103
+                556, 278,  278, 500, 278, 778,  556, 500, // 104 - 111
+                500, 500,  389, 389, 278, 556,  444, 667, // 112 - 119
+                500, 444,  389, 348, 220, 348,  570, 0, // 120 - 127
+                500, 0,    333, 500, 500, 1000, 500, 500, // 128 - 135
+                333, 1000, 556, 333, 944, 0,    389, 0, // 136 - 143
+                0,   333,  333, 500, 500, 350,  500, 1000, // 144 - 151
+                333, 1000, 389, 333, 722, 0,    389, 611, // 152 - 159
+                250, 389,  500, 500, 500, 500,  220, 500, // 160 - 167
+                333, 747,  266, 500, 606, 333,  747, 333, // 168 - 175
+                400, 570,  300, 300, 333, 576,  500, 250, // 176 - 183
+                333, 300,  300, 500, 750, 750,  750, 500, // 184 - 191
+                667, 667,  667, 667, 667, 667,  944, 667, // 192 - 199
+                667, 667,  667, 667, 389, 389,  389, 389, // 200 - 207
+                722, 722,  722, 722, 722, 722,  722, 570, // 208 - 215
+                722, 722,  722, 722, 722, 611,  611, 500, // 216 - 223
+                500, 500,  500, 500, 500, 500,  722, 444, // 224 - 231
+                444, 444,  444, 444, 278, 278,  278, 278, // 232 - 239
+                500, 556,  500, 500, 500, 500,  500, 570, // 240 - 247
+                500, 556,  556, 556, 556, 444,  500, 444 // 248 - 255
+            },
+        },
 
         // The font name "Symbol" is too generic and causes plenty of trouble.
         // To ensure WYSIWIG the PDF-Base14 variant gets a not-confusable name
-        { u"PDF_Base14_Symbol"_ustr, // family name
-          u"Normal"_ustr, // style
-          "Symbol", // PSName
-          1010,
-          -293, // ascend, descend
-          FAMILY_DONTKNOW, // family style
-          RTL_TEXTENCODING_ADOBE_SYMBOL, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,   0,   0,    0,    0,   0,    0, // 0 - 7
-              0,   0,   0,   0,    0,    0,   0,    0, // 8 - 15
-              0,   0,   0,   0,    0,    0,   0,    0, // 16 - 23
-              0,   0,   0,   0,    0,    0,   0,    0, // 24 - 31
-              250, 333, 713, 500,  549,  833, 778,  439, // 32 - 39
-              333, 333, 500, 549,  250,  549, 250,  278, // 40 - 47
-              500, 500, 500, 500,  500,  500, 500,  500, // 48 - 55
-              500, 500, 278, 278,  549,  549, 549,  444, // 56 - 63
-              549, 722, 667, 722,  612,  611, 763,  603, // 64 - 71
-              722, 333, 631, 722,  686,  889, 722,  722, // 72 - 79
-              768, 741, 556, 592,  611,  690, 439,  768, // 80 - 87
-              645, 795, 611, 333,  863,  333, 658,  500, // 88 - 95
-              500, 631, 549, 549,  494,  439, 521,  411, // 96 - 103
-              603, 329, 603, 549,  549,  576, 521,  549, // 104 - 111
-              549, 521, 549, 603,  439,  576, 713,  686, // 112 - 119
-              493, 686, 494, 480,  200,  480, 549,  0, // 120 - 127
-              0,   0,   0,   0,    0,    0,   0,    0, // 128 - 135
-              0,   0,   0,   0,    0,    0,   0,    0, // 136 - 143
-              0,   0,   0,   0,    0,    0,   0,    0, // 144 - 151
-              0,   0,   0,   0,    0,    0,   0,    0, // 152 - 159
-              750, 620, 247, 549,  167,  713, 500,  753, // 160 - 167
-              753, 753, 753, 1042, 987,  603, 987,  603, // 168 - 175
-              400, 549, 411, 549,  549,  713, 494,  460, // 176 - 183
-              549, 549, 549, 549,  1000, 603, 1000, 658, // 184 - 191
-              823, 686, 795, 987,  768,  768, 823,  768, // 192 - 199
-              768, 713, 713, 713,  713,  713, 713,  713, // 200 - 207
-              768, 713, 790, 790,  890,  823, 549,  250, // 208 - 215
-              713, 603, 603, 1042, 987,  603, 987,  603, // 216 - 223
-              494, 329, 790, 790,  786,  713, 384,  384, // 224 - 231
-              384, 384, 384, 384,  494,  494, 494,  494, // 232 - 239
-              0,   329, 274, 686,  686,  686, 384,  384, // 240 - 247
-              384, 384, 384, 384,  494,  494, 494,  0 // 248 - 255
-          },
-          FontCharMapRef() },
+        {
+            u"PDF_Base14_Symbol"_ustr, // family name
+            u"Normal"_ustr, // style
+            "Symbol", // PSName
+            1010,
+            -293, // ascend, descend
+            FAMILY_DONTKNOW, // family style
+            RTL_TEXTENCODING_ADOBE_SYMBOL, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,   0,   0,    0,    0,   0,    0, // 0 - 7
+                0,   0,   0,   0,    0,    0,   0,    0, // 8 - 15
+                0,   0,   0,   0,    0,    0,   0,    0, // 16 - 23
+                0,   0,   0,   0,    0,    0,   0,    0, // 24 - 31
+                250, 333, 713, 500,  549,  833, 778,  439, // 32 - 39
+                333, 333, 500, 549,  250,  549, 250,  278, // 40 - 47
+                500, 500, 500, 500,  500,  500, 500,  500, // 48 - 55
+                500, 500, 278, 278,  549,  549, 549,  444, // 56 - 63
+                549, 722, 667, 722,  612,  611, 763,  603, // 64 - 71
+                722, 333, 631, 722,  686,  889, 722,  722, // 72 - 79
+                768, 741, 556, 592,  611,  690, 439,  768, // 80 - 87
+                645, 795, 611, 333,  863,  333, 658,  500, // 88 - 95
+                500, 631, 549, 549,  494,  439, 521,  411, // 96 - 103
+                603, 329, 603, 549,  549,  576, 521,  549, // 104 - 111
+                549, 521, 549, 603,  439,  576, 713,  686, // 112 - 119
+                493, 686, 494, 480,  200,  480, 549,  0, // 120 - 127
+                0,   0,   0,   0,    0,    0,   0,    0, // 128 - 135
+                0,   0,   0,   0,    0,    0,   0,    0, // 136 - 143
+                0,   0,   0,   0,    0,    0,   0,    0, // 144 - 151
+                0,   0,   0,   0,    0,    0,   0,    0, // 152 - 159
+                750, 620, 247, 549,  167,  713, 500,  753, // 160 - 167
+                753, 753, 753, 1042, 987,  603, 987,  603, // 168 - 175
+                400, 549, 411, 549,  549,  713, 494,  460, // 176 - 183
+                549, 549, 549, 549,  1000, 603, 1000, 658, // 184 - 191
+                823, 686, 795, 987,  768,  768, 823,  768, // 192 - 199
+                768, 713, 713, 713,  713,  713, 713,  713, // 200 - 207
+                768, 713, 790, 790,  890,  823, 549,  250, // 208 - 215
+                713, 603, 603, 1042, 987,  603, 987,  603, // 216 - 223
+                494, 329, 790, 790,  786,  713, 384,  384, // 224 - 231
+                384, 384, 384, 384,  494,  494, 494,  494, // 232 - 239
+                0,   329, 274, 686,  686,  686, 384,  384, // 240 - 247
+                384, 384, 384, 384,  494,  494, 494,  0 // 248 - 255
+            },
+        },
 
-        { u"ZapfDingbats"_ustr, // family name
-          u"Normal"_ustr, // style
-          "ZapfDingbats", // PSName
-          820,
-          -143, // ascend, descend
-          FAMILY_DONTKNOW, // family style
-          RTL_TEXTENCODING_ADOBE_DINGBATS, // charset
-          PITCH_VARIABLE, // pitch
-          WIDTH_NORMAL, // width type
-          WEIGHT_NORMAL, // weight type
-          ITALIC_NONE, // italic type
-          {
-              0,   0,   0,   0,   0,   0,   0,    0, // 0 - 7
-              0,   0,   0,   0,   0,   0,   0,    0, // 8 - 15
-              0,   0,   0,   0,   0,   0,   0,    0, // 16 - 23
-              0,   0,   0,   0,   0,   0,   0,    0, // 24 - 31
-              278, 974, 961, 974, 980, 719, 789,  790, // 32 - 39
-              791, 690, 960, 939, 549, 855, 911,  933, // 40 - 47
-              911, 945, 974, 755, 846, 762, 761,  571, // 48 - 55
-              677, 763, 760, 759, 754, 494, 552,  537, // 56 - 63
-              577, 692, 786, 788, 788, 790, 793,  794, // 64 - 71
-              816, 823, 789, 841, 823, 833, 816,  831, // 72 - 79
-              923, 744, 723, 749, 790, 792, 695,  776, // 80 - 87
-              768, 792, 759, 707, 708, 682, 701,  826, // 88 - 95
-              815, 789, 789, 707, 687, 696, 689,  786, // 96 - 103
-              787, 713, 791, 785, 791, 873, 761,  762, // 104 - 111
-              762, 759, 759, 892, 892, 788, 784,  438, // 112 - 119
-              138, 277, 415, 392, 392, 668, 668,  0, // 120 - 127
-              390, 390, 317, 317, 276, 276, 509,  509, // 128 - 135
-              410, 410, 234, 234, 334, 334, 0,    0, // 136 - 143
-              0,   0,   0,   0,   0,   0,   0,    0, // 144 - 151
-              0,   0,   0,   0,   0,   0,   0,    0, // 152 - 159
-              0,   732, 544, 544, 910, 667, 760,  760, // 160 - 167
-              776, 595, 694, 626, 788, 788, 788,  788, // 168 - 175
-              788, 788, 788, 788, 788, 788, 788,  788, // 176 - 183
-              788, 788, 788, 788, 788, 788, 788,  788, // 184 - 191
-              788, 788, 788, 788, 788, 788, 788,  788, // 192 - 199
-              788, 788, 788, 788, 788, 788, 788,  788, // 200 - 207
-              788, 788, 788, 788, 894, 838, 1016, 458, // 208 - 215
-              748, 924, 748, 918, 927, 928, 928,  834, // 216 - 223
-              873, 828, 924, 924, 917, 930, 931,  463, // 224 - 231
-              883, 836, 836, 867, 867, 696, 696,  874, // 232 - 239
-              0,   874, 760, 946, 771, 865, 771,  888, // 240 - 247
-              967, 888, 831, 873, 927, 970, 918,  0 // 248 - 255
-          },
-          FontCharMapRef() }
+        {
+            u"ZapfDingbats"_ustr, // family name
+            u"Normal"_ustr, // style
+            "ZapfDingbats", // PSName
+            820,
+            -143, // ascend, descend
+            FAMILY_DONTKNOW, // family style
+            RTL_TEXTENCODING_ADOBE_DINGBATS, // charset
+            PITCH_VARIABLE, // pitch
+            WIDTH_NORMAL, // width type
+            WEIGHT_NORMAL, // weight type
+            ITALIC_NONE, // italic type
+            {
+                0,   0,   0,   0,   0,   0,   0,    0, // 0 - 7
+                0,   0,   0,   0,   0,   0,   0,    0, // 8 - 15
+                0,   0,   0,   0,   0,   0,   0,    0, // 16 - 23
+                0,   0,   0,   0,   0,   0,   0,    0, // 24 - 31
+                278, 974, 961, 974, 980, 719, 789,  790, // 32 - 39
+                791, 690, 960, 939, 549, 855, 911,  933, // 40 - 47
+                911, 945, 974, 755, 846, 762, 761,  571, // 48 - 55
+                677, 763, 760, 759, 754, 494, 552,  537, // 56 - 63
+                577, 692, 786, 788, 788, 790, 793,  794, // 64 - 71
+                816, 823, 789, 841, 823, 833, 816,  831, // 72 - 79
+                923, 744, 723, 749, 790, 792, 695,  776, // 80 - 87
+                768, 792, 759, 707, 708, 682, 701,  826, // 88 - 95
+                815, 789, 789, 707, 687, 696, 689,  786, // 96 - 103
+                787, 713, 791, 785, 791, 873, 761,  762, // 104 - 111
+                762, 759, 759, 892, 892, 788, 784,  438, // 112 - 119
+                138, 277, 415, 392, 392, 668, 668,  0, // 120 - 127
+                390, 390, 317, 317, 276, 276, 509,  509, // 128 - 135
+                410, 410, 234, 234, 334, 334, 0,    0, // 136 - 143
+                0,   0,   0,   0,   0,   0,   0,    0, // 144 - 151
+                0,   0,   0,   0,   0,   0,   0,    0, // 152 - 159
+                0,   732, 544, 544, 910, 667, 760,  760, // 160 - 167
+                776, 595, 694, 626, 788, 788, 788,  788, // 168 - 175
+                788, 788, 788, 788, 788, 788, 788,  788, // 176 - 183
+                788, 788, 788, 788, 788, 788, 788,  788, // 184 - 191
+                788, 788, 788, 788, 788, 788, 788,  788, // 192 - 199
+                788, 788, 788, 788, 788, 788, 788,  788, // 200 - 207
+                788, 788, 788, 788, 894, 838, 1016, 458, // 208 - 215
+                748, 924, 748, 918, 927, 928, 928,  834, // 216 - 223
+                873, 828, 924, 924, 917, 930, 931,  463, // 224 - 231
+                883, 836, 836, 867, 867, 696, 696,  874, // 232 - 239
+                0,   874, 760, 946, 771, 865, 771,  888, // 240 - 247
+                967, 888, 831, 873, 927, 970, 918,  0 // 248 - 255
+            },
+        }
 
       };
 

Reply via email to