From 5fb6bd4b7e8d00b7f2543ca10ec9022b32632f29 Mon Sep 17 00:00:00 2001 From: caryclark Date: Mon, 23 Jun 2014 11:25:00 -0700 Subject: [PATCH] use platform-independent font for gm Create a custom typeface and scaler to render simple paths the same on all platforms. GM tests are modified to explicitly select the custom typeface. R=reed@google.com, mtklein@google.com, bungeman@google.com TBR=reed Author: caryclark@google.com Review URL: https://codereview.chromium.org/348323003 --- gm/arithmode.cpp | 1 + gm/bitmapcopy.cpp | 2 + gm/bitmapfilters.cpp | 1 + gm/bitmapscroll.cpp | 1 + gm/bitmapsource.cpp | 1 + gm/blurs.cpp | 1 + gm/complexclip.cpp | 1 + gm/convexpolyclip.cpp | 1 + gm/cubicpaths.cpp | 2 + gm/degeneratesegments.cpp | 2 + gm/displacement.cpp | 1 + gm/gm.h | 1 + gyp/dm.gyp | 1 + gyp/gm.gyp | 1 + gyp/tools.gyp | 21 +- gyp/utils.gypi | 2 + samplecode/SampleApp.cpp | 8 + src/fonts/SkTestScalerContext.cpp | 250 +++ src/fonts/SkTestScalerContext.h | 20 + tools/create_test_font.cpp | 169 ++ tools/sk_tool_utils.cpp | 11 + tools/sk_tool_utils.h | 14 +- tools/sk_tool_utils_font.cpp | 2892 +++++++++++++++++++++++++++++ 23 files changed, 3400 insertions(+), 4 deletions(-) create mode 100644 src/fonts/SkTestScalerContext.cpp create mode 100644 src/fonts/SkTestScalerContext.h create mode 100644 tools/create_test_font.cpp create mode 100644 tools/sk_tool_utils_font.cpp diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp index d85e43d8e6..14f6aa0f57 100644 --- a/gm/arithmode.cpp +++ b/gm/arithmode.cpp @@ -57,6 +57,7 @@ static void show_k_text(SkCanvas* canvas, SkScalar x, SkScalar y, const SkScalar SkPaint paint; paint.setTextSize(SkIntToScalar(24)); paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); for (int i = 0; i < 4; ++i) { SkString str; str.appendScalar(k[i]); diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp index eaad8d0114..74505d911d 100644 --- a/gm/bitmapcopy.cpp +++ b/gm/bitmapcopy.cpp @@ -77,6 +77,8 @@ protected: canvas->clear(0xFFDDDDDD); paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); + SkScalar width = SkIntToScalar(40); SkScalar height = SkIntToScalar(40); if (paint.getFontSpacing() > height) { diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp index eaaa11a2c6..f1348b1437 100644 --- a/gm/bitmapfilters.cpp +++ b/gm/bitmapfilters.cpp @@ -55,6 +55,7 @@ static SkScalar draw_row(SkCanvas* canvas, const SkBitmap& bm) { const int scale = 32; paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); const char* name = sk_tool_utils::colortype_name(bm.colorType()); canvas->drawText(name, strlen(name), x, SkIntToScalar(bm.height())*scale*5/8, paint); diff --git a/gm/bitmapscroll.cpp b/gm/bitmapscroll.cpp index 7e23d8bf05..0015cd8147 100644 --- a/gm/bitmapscroll.cpp +++ b/gm/bitmapscroll.cpp @@ -109,6 +109,7 @@ protected: void drawLabel(SkCanvas* canvas, const char *text, int startX, int startY, int endX, int endY) { SkPaint paint; + sk_tool_utils::set_portable_typeface(&paint); paint.setColor(0xFF000000); SkPath path; path.moveTo(SkIntToScalar(startX), SkIntToScalar(startY)); diff --git a/gm/bitmapsource.cpp b/gm/bitmapsource.cpp index 9cf5a75cae..f6badde89e 100644 --- a/gm/bitmapsource.cpp +++ b/gm/bitmapsource.cpp @@ -27,6 +27,7 @@ protected: canvas.clear(0x00000000); SkPaint paint; paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); paint.setColor(0xFFFFFFFF); paint.setTextSize(SkIntToScalar(96)); const char* str = "e"; diff --git a/gm/blurs.cpp b/gm/blurs.cpp index 8a8949a14c..ad363e425d 100644 --- a/gm/blurs.cpp +++ b/gm/blurs.cpp @@ -45,6 +45,7 @@ protected: SkPaint paint; paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); paint.setTextSize(SkIntToScalar(25)); canvas->translate(SkIntToScalar(-40), SkIntToScalar(0)); diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp index 14e77b9077..61a19fd486 100644 --- a/gm/complexclip.cpp +++ b/gm/complexclip.cpp @@ -83,6 +83,7 @@ protected: SkPaint paint; paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); paint.setTextSize(SkIntToScalar(20)); static const struct { diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp index 6de72dc3b6..cb698c162b 100644 --- a/gm/convexpolyclip.cpp +++ b/gm/convexpolyclip.cpp @@ -54,6 +54,7 @@ static SkBitmap make_bmp(int w, int h) { } paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); paint.setTextSize(wScalar / 2.2f); paint.setShader(0); paint.setColor(SK_ColorLTGRAY); diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp index 39417010c1..68d143df60 100644 --- a/gm/cubicpaths.cpp +++ b/gm/cubicpaths.cpp @@ -130,6 +130,7 @@ protected: SkPaint titlePaint; titlePaint.setColor(SK_ColorBLACK); titlePaint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&titlePaint); titlePaint.setLCDRenderText(true); titlePaint.setTextSize(15 * SK_Scalar1); const char title[] = "Cubic Drawn Into Rectangle Clips With " @@ -174,6 +175,7 @@ protected: SkPaint labelPaint; labelPaint.setColor(color); labelPaint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&labelPaint); labelPaint.setLCDRenderText(true); labelPaint.setTextSize(10 * SK_Scalar1); canvas->drawText(gStyles[style].fName, diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp index e8de51561d..17bf83bddc 100644 --- a/gm/degeneratesegments.cpp +++ b/gm/degeneratesegments.cpp @@ -291,6 +291,7 @@ protected: SkPaint titlePaint; titlePaint.setColor(SK_ColorBLACK); titlePaint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&titlePaint); titlePaint.setLCDRenderText(true); titlePaint.setTextSize(15 * SK_Scalar1); const char title[] = "Random Paths Drawn Into Rectangle Clips With " @@ -351,6 +352,7 @@ protected: SkPaint labelPaint; labelPaint.setColor(color); labelPaint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&labelPaint); labelPaint.setLCDRenderText(true); labelPaint.setTextSize(10 * SK_Scalar1); canvas->drawText(style.fName, diff --git a/gm/displacement.cpp b/gm/displacement.cpp index eb4a0083c6..dddf8a53c4 100644 --- a/gm/displacement.cpp +++ b/gm/displacement.cpp @@ -37,6 +37,7 @@ protected: canvas.clear(0x00000000); SkPaint paint; paint.setAntiAlias(true); + sk_tool_utils::set_portable_typeface(&paint); paint.setColor(0xFF884422); paint.setTextSize(SkIntToScalar(96)); const char* str = "g"; diff --git a/gm/gm.h b/gm/gm.h index 70a902542e..ac9da264a5 100644 --- a/gm/gm.h +++ b/gm/gm.h @@ -14,6 +14,7 @@ #include "SkSize.h" #include "SkString.h" #include "SkTRegistry.h" +#include "sk_tool_utils.h" #if SK_SUPPORT_GPU #include "GrContext.h" diff --git a/gyp/dm.gyp b/gyp/dm.gyp index 2d02796b45..202757ebf6 100644 --- a/gyp/dm.gyp +++ b/gyp/dm.gyp @@ -61,6 +61,7 @@ 'jsoncpp.gyp:jsoncpp', 'skia_lib.gyp:skia_lib', 'tools.gyp:crash_handler', + 'tools.gyp:sk_tool_utils', ], 'conditions': [ ['skia_android_framework', { diff --git a/gyp/gm.gyp b/gyp/gm.gyp index fd56e7eebe..3676b30a57 100644 --- a/gyp/gm.gyp +++ b/gyp/gm.gyp @@ -33,6 +33,7 @@ 'tools.gyp:crash_handler', 'tools.gyp:gm_expectations', 'tools.gyp:resources', + 'tools.gyp:sk_tool_utils', ], 'conditions': [ ['skia_android_framework', { diff --git a/gyp/tools.gyp b/gyp/tools.gyp index 256852ddff..e16fa4bb7e 100644 --- a/gyp/tools.gyp +++ b/gyp/tools.gyp @@ -17,6 +17,7 @@ 'bench_pictures', 'bench_record', 'bench_playback', + 'create_test_font', 'dump_record', 'filter', 'gpuveto', @@ -90,7 +91,10 @@ { 'target_name': 'sk_tool_utils', 'type': 'static_library', - 'sources': [ '../tools/sk_tool_utils.cpp' ], + 'sources': [ + '../tools/sk_tool_utils.cpp', + '../tools/sk_tool_utils_font.cpp', + ], 'dependencies': [ 'skia_lib.gyp:skia_lib', ], @@ -266,6 +270,7 @@ 'include_dirs': [ # For SkBitmapHasher.h '../src/utils/', + '../tools/', ], 'dependencies': [ 'gm_expectations', @@ -620,6 +625,20 @@ 'tools.gyp:picture_utils', ], }, + { + 'target_name': 'create_test_font', + 'type': 'executable', + 'sources': [ + '../tools/create_test_font.cpp', + ], + 'include_dirs': [ + '../src/core', + ], + 'dependencies': [ + 'flags.gyp:flags', + 'skia_lib.gyp:skia_lib', + ], + }, { 'target_name': 'test_image_decoder', 'type': 'executable', diff --git a/gyp/utils.gypi b/gyp/utils.gypi index 761fbf7f4c..5fce7c7a80 100644 --- a/gyp/utils.gypi +++ b/gyp/utils.gypi @@ -121,5 +121,7 @@ #testing '<(skia_src_path)/fonts/SkGScalerContext.cpp', '<(skia_src_path)/fonts/SkGScalerContext.h', + '<(skia_src_path)/fonts/SkTestScalerContext.cpp', + '<(skia_src_path)/fonts/SkTestScalerContext.h', ], } diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp index 2a4ebdce41..df10b1e70b 100644 --- a/samplecode/SampleApp.cpp +++ b/samplecode/SampleApp.cpp @@ -1685,6 +1685,10 @@ static void cleanup_for_filename(SkString* name) { } #endif +namespace sk_tool_utils { + extern bool gEnablePortableTypeface; +}; + bool SampleWindow::onHandleChar(SkUnichar uni) { { SkView* view = curr_view(this); @@ -1738,6 +1742,10 @@ bool SampleWindow::onHandleChar(SkUnichar uni) { // only toggleFPS(); break; + case 'F': + sk_tool_utils::gEnablePortableTypeface ^= true; + this->inval(NULL); + break; case 'g': fRequestGrabImage = true; this->inval(NULL); diff --git a/src/fonts/SkTestScalerContext.cpp b/src/fonts/SkTestScalerContext.cpp new file mode 100644 index 0000000000..aeb5802c32 --- /dev/null +++ b/src/fonts/SkTestScalerContext.cpp @@ -0,0 +1,250 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkBitmap.h" +#include "SkCanvas.h" +#include "SkDescriptor.h" +#include "SkGlyph.h" +#include "SkMask.h" +// #include "SkOTUtils.h" +#include "SkScalerContext.h" +#include "SkTestScalerContext.h" +#include "SkTypefaceCache.h" + +class SkTestTypeface : public SkTypeface { +public: + SkTestTypeface(SkPaint::FontMetrics (*funct)(SkTDArray& , SkTDArray& ), + SkTypeface::Style style) + : SkTypeface(style, SkTypefaceCache::NewFontID(), false) { + fMetrics = (*funct)(fPaths, fWidths); + } + + virtual ~SkTestTypeface() { + fPaths.deleteAll(); + } + + void getAdvance(SkGlyph* glyph) { + glyph->fAdvanceX = fWidths[SkGlyph::ID2Code(glyph->fID)]; + glyph->fAdvanceY = 0; + } + + void getFontMetrics(SkPaint::FontMetrics* metrics) { + *metrics = fMetrics; + } + + void getMetrics(SkGlyph* glyph) { + glyph->fAdvanceX = fWidths[SkGlyph::ID2Code(glyph->fID)]; + glyph->fAdvanceY = 0; + } + + void getPath(const SkGlyph& glyph, SkPath* path) { + *path = *fPaths[SkGlyph::ID2Code(glyph.fID)]; + } + +protected: + virtual SkScalerContext* onCreateScalerContext(const SkDescriptor* desc) const SK_OVERRIDE; + + virtual void onFilterRec(SkScalerContextRec* rec) const SK_OVERRIDE { + rec->setHinting(SkPaint::kNo_Hinting); + rec->fMaskFormat = SkMask::kA8_Format; + } + + virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( + SkAdvancedTypefaceMetrics::PerGlyphInfo , + const uint32_t* glyphIDs, + uint32_t glyphIDsCount) const SK_OVERRIDE { + // pdf only + SkAdvancedTypefaceMetrics* info = new SkAdvancedTypefaceMetrics; + info->fEmSize = 0; + info->fLastGlyphID = SkToU16(onCountGlyphs() - 1); + info->fStyle = 0; + info->fFontName.set("SkiaTest"); + info->fType = SkAdvancedTypefaceMetrics::kOther_Font; + info->fItalicAngle = 0; + info->fAscent = 0; + info->fDescent = 0; + info->fStemV = 0; + info->fCapHeight = 0; + info->fBBox = SkIRect::MakeEmpty(); + return info; + } + + virtual SkStream* onOpenStream(int* ttcIndex) const SK_OVERRIDE { + SkASSERT(0); // don't expect to get here + return NULL; + } + + virtual void onGetFontDescriptor(SkFontDescriptor* desc, bool* isLocal) const SK_OVERRIDE { + SkASSERT(0); // don't expect to get here + } + + virtual int onCharsToGlyphs(const void* chars, Encoding encoding, + uint16_t glyphs[], int glyphCount) const SK_OVERRIDE { + SkASSERT(encoding == kUTF8_Encoding); + for (int index = 0; index < glyphCount; ++index) { + int ch = ((unsigned char*) chars)[index]; + SkASSERT(ch < 0x7F); + if (ch < 0x20) { + glyphs[index] = 0; + } else { + glyphs[index] = ch - 0x20; + } + } + return glyphCount; + } + + virtual int onCountGlyphs() const SK_OVERRIDE { + return fPaths.count(); + } + + virtual int onGetUPEM() const SK_OVERRIDE { + SkASSERT(0); // don't expect to get here + return 1; + } + + virtual SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const SK_OVERRIDE { + SkString familyName("SkiaTest"); + SkString language("und"); //undetermined + SkASSERT(0); // incomplete + return NULL; + // return new SkOTUtils::LocalizedStrings_SingleName(familyName, language); + } + + virtual int onGetTableTags(SkFontTableTag tags[]) const SK_OVERRIDE { + return 0; + } + + virtual size_t onGetTableData(SkFontTableTag tag, size_t offset, + size_t length, void* data) const SK_OVERRIDE { + return 0; + } + +private: + SkTDArray fPaths; + SkTDArray fWidths; + SkPaint::FontMetrics fMetrics; + friend class SkTestScalerContext; +}; + +SkTypeface* CreateTestTypeface(SkPaint::FontMetrics (*funct)(SkTDArray& pathArray, + SkTDArray& widthArray), + SkTypeface::Style style) { + SkTypeface* test = SkNEW_ARGS(SkTestTypeface, (funct, style)); + return test; +} + +class SkTestScalerContext : public SkScalerContext { +public: + SkTestScalerContext(SkTestTypeface* face, const SkDescriptor* desc) + : SkScalerContext(face, desc) + , fFace(face) + { + fRec.getSingleMatrix(&fMatrix); + this->forceGenerateImageFromPath(); + } + + virtual ~SkTestScalerContext() { + } + +protected: + virtual unsigned generateGlyphCount() SK_OVERRIDE { + return fFace->onCountGlyphs(); + } + + virtual uint16_t generateCharToGlyph(SkUnichar uni) SK_OVERRIDE { + uint8_t ch = (uint8_t) uni; + SkASSERT(ch < 0x7f); + uint16_t glyph; + (void) fFace->onCharsToGlyphs((const void *) &ch, SkTypeface::kUTF8_Encoding, &glyph, 1); + return glyph; + } + + virtual void generateAdvance(SkGlyph* glyph) SK_OVERRIDE { + fFace->getAdvance(glyph); + + SkVector advance; + fMatrix.mapXY(SkFixedToScalar(glyph->fAdvanceX), + SkFixedToScalar(glyph->fAdvanceY), &advance); + glyph->fAdvanceX = SkScalarToFixed(advance.fX); + glyph->fAdvanceY = SkScalarToFixed(advance.fY); + } + + virtual void generateMetrics(SkGlyph* glyph) SK_OVERRIDE { + fFace->getMetrics(glyph); + + SkVector advance; + fMatrix.mapXY(SkFixedToScalar(glyph->fAdvanceX), + SkFixedToScalar(glyph->fAdvanceY), &advance); + glyph->fAdvanceX = SkScalarToFixed(advance.fX); + glyph->fAdvanceY = SkScalarToFixed(advance.fY); + + SkPath path; + fFace->getPath(*glyph, &path); + path.transform(fMatrix); + + SkRect storage; + const SkPaint paint; + const SkRect& newBounds = paint.doComputeFastBounds(path.getBounds(), + &storage, + SkPaint::kFill_Style); + SkIRect ibounds; + newBounds.roundOut(&ibounds); + glyph->fLeft = ibounds.fLeft; + glyph->fTop = ibounds.fTop; + glyph->fWidth = ibounds.width(); + glyph->fHeight = ibounds.height(); + glyph->fMaskFormat = SkMask::kARGB32_Format; + } + + virtual void generateImage(const SkGlyph& glyph) SK_OVERRIDE { + SkPath path; + fFace->getPath(glyph, &path); + + SkBitmap bm; + bm.installPixels(SkImageInfo::MakeN32Premul(glyph.fWidth, glyph.fHeight), + glyph.fImage, glyph.rowBytes()); + bm.eraseColor(0); + + SkCanvas canvas(bm); + canvas.translate(-SkIntToScalar(glyph.fLeft), + -SkIntToScalar(glyph.fTop)); + canvas.concat(fMatrix); + SkPaint paint; + paint.setAntiAlias(true); + canvas.drawPath(path, paint); + } + + virtual void generatePath(const SkGlyph& glyph, SkPath* path) SK_OVERRIDE { + fFace->getPath(glyph, path); + path->transform(fMatrix); + } + + virtual void generateFontMetrics(SkPaint::FontMetrics* , + SkPaint::FontMetrics* metrics) SK_OVERRIDE { + fFace->getFontMetrics(metrics); + if (metrics) { + SkScalar scale = fMatrix.getScaleY(); + metrics->fTop = SkScalarMul(metrics->fTop, scale); + metrics->fAscent = SkScalarMul(metrics->fAscent, scale); + metrics->fDescent = SkScalarMul(metrics->fDescent, scale); + metrics->fBottom = SkScalarMul(metrics->fBottom, scale); + metrics->fLeading = SkScalarMul(metrics->fLeading, scale); + metrics->fAvgCharWidth = SkScalarMul(metrics->fAvgCharWidth, scale); + metrics->fXMin = SkScalarMul(metrics->fXMin, scale); + metrics->fXMax = SkScalarMul(metrics->fXMax, scale); + metrics->fXHeight = SkScalarMul(metrics->fXHeight, scale); + } + } + +private: + SkTestTypeface* fFace; + SkMatrix fMatrix; +}; + +SkScalerContext* SkTestTypeface::onCreateScalerContext(const SkDescriptor* desc) const { + return SkNEW_ARGS(SkTestScalerContext, (const_cast(this), desc)); +} diff --git a/src/fonts/SkTestScalerContext.h b/src/fonts/SkTestScalerContext.h new file mode 100644 index 0000000000..fa44defbfb --- /dev/null +++ b/src/fonts/SkTestScalerContext.h @@ -0,0 +1,20 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkTestScalerContext_DEFINED +#define SkTestScalerContext_DEFINED + +#include "SkPaint.h" +#include "SkPath.h" +#include "SkTDArray.h" +#include "SkTypeface.h" + +SkTypeface* CreateTestTypeface(SkPaint::FontMetrics (*funct)(SkTDArray& pathArray, + SkTDArray& widthArray), + SkTypeface::Style style); + +#endif diff --git a/tools/create_test_font.cpp b/tools/create_test_font.cpp new file mode 100644 index 0000000000..b0f70efaee --- /dev/null +++ b/tools/create_test_font.cpp @@ -0,0 +1,169 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkPaint.h" +#include "SkPath.h" +#include "SkStream.h" +#include "SkTArray.h" +#include "SkTSort.h" +#include "SkTypeface.h" +#include + +enum { + kEmSize = 4096 +}; + +static void output_fixed(FILE* out, SkScalar num) { + SkASSERT(floor(num) == num); + int hex = (int) num * (65536 / kEmSize); + fprintf(out, "0x%08x", hex); +} + +static void output_scalar(FILE* out, SkScalar num) { + num /= kEmSize; + if (num == (int) num) { + fprintf(out, "%d", (int) num); + } else { + SkString str; + str.printf("%1.6g", num); + int width = (int) str.size(); + const char* cStr = str.c_str(); + while (cStr[width - 1] == '0') { + --width; + } + str.resize(width); + fprintf(out, "%sf", str.c_str()); + } +} + +static void output_points(FILE* out, const SkPoint* pts, int count) { + for (int index = 0; index < count; ++index) { + SkASSERT(floor(pts[index].fX) == pts[index].fX); + output_scalar(out, pts[index].fX); + fprintf(out, ", "); + SkASSERT(floor(pts[index].fY) == pts[index].fY); + output_scalar(out, pts[index].fY); + if (index + 1 < count) { + fprintf(out, ", "); + } + } + fprintf(out, ");\n"); +} + +const char header[] = +"/*\n" +" * Copyright 2014 Google Inc.\n" +" *\n" +" * Use of this source code is governed by a BSD-style license that can be\n" +" * found in the LICENSE file.\n" +" */\n" +"\n" +"// this was auto-generated by TestFontCreator.cpp\n" +"\n" +"#include \"SkPaint.h\"\n" +"#include \"SkPath.h\"\n" +"#include \"SkTDArray.h\"\n" +"\n" +"namespace sk_tool_utils {\n" +"\n" +"SkPaint::FontMetrics create_font(SkTDArray& pathArray,\n" +" SkTDArray& widthArray) {"; + +int tool_main(int argc, char** argv); +int tool_main(int argc, char** argv) { + SkPaint paint; + paint.setAntiAlias(true); + paint.setTextAlign(SkPaint::kLeft_Align); + paint.setTextEncoding(SkPaint::kUTF16_TextEncoding); + paint.setTextSize(kEmSize); + SkString filename("resources/DroidSans.ttf"); + SkAutoTUnref stream(new SkFILEStream(filename.c_str())); + if (!stream->isValid()) { + SkDebugf("Could not find resources/Roboto-Regular.ttf.\n"); + return 1; + } + SkTypeface* typeface = SkTypeface::CreateFromStream(stream); + SkSafeUnref(paint.setTypeface(typeface)); + FILE* out = fopen("./out/sk_tool_utils_font.cpp", "w"); + fprintf(out, "%s\n", header); + fprintf(out, " SkPath* path;\n"); + for (unsigned short index = 0x20; index < 0x7F; ++index) { + SkPath path; + paint.getTextPath((const void*) &index, 2, 0, 0, &path); + SkPath::RawIter iter(path); + uint8_t verb; + SkPoint pts[4]; + fprintf(out, " path = SkNEW(SkPath); //"); + if (index == '\\') { + fprintf(out, " blackslash\n"); + } else if (index == ' ') { + fprintf(out, " space\n"); + } else { + fprintf(out, " %c\n", (char) index); + } + fprintf(out, " *pathArray.append() = path;\n"); + while ((verb = iter.next(pts)) != SkPath::kDone_Verb) { + switch (verb) { + case SkPath::kMove_Verb: + fprintf(out, " path->moveTo("); + output_points(out, &pts[0], 1); + continue; + case SkPath::kLine_Verb: + fprintf(out, " path->lineTo("); + output_points(out, &pts[1], 1); + break; + case SkPath::kQuad_Verb: + fprintf(out, " path->quadTo("); + output_points(out, &pts[1], 2); + break; + case SkPath::kCubic_Verb: + fprintf(out, " path->cubicTo("); + output_points(out, &pts[1], 3); + break; + case SkPath::kClose_Verb: + fprintf(out, " path->close();\n"); + break; + default: + SkDEBUGFAIL("bad verb"); + return 1; + } + } + SkScalar width; + SkDEBUGCODE(int charCount =) paint.getTextWidths((const void*) &index, 2, &width); + SkASSERT(charCount == 1); + fprintf(out, " *widthArray.append() = "); + output_fixed(out, width); + fprintf(out, ";\n\n"); + } + SkPaint::FontMetrics metrics; + paint.getFontMetrics(&metrics); + fprintf(out, " SkPaint::FontMetrics metrics = {\n"); + fprintf(out, " 0x%08x, ", metrics.fFlags); + output_scalar(out, metrics.fTop); fprintf(out, ", "); + output_scalar(out, metrics.fAscent); fprintf(out, ", "); + output_scalar(out, metrics.fDescent); fprintf(out, ", "); + output_scalar(out, metrics.fBottom); fprintf(out, ", "); + output_scalar(out, metrics.fLeading); fprintf(out, ",\n "); + output_scalar(out, metrics.fAvgCharWidth); fprintf(out, ", "); + output_scalar(out, metrics.fMaxCharWidth); fprintf(out, ", "); + output_scalar(out, metrics.fXMin); fprintf(out, ", "); + output_scalar(out, metrics.fXMax); fprintf(out, ",\n "); + output_scalar(out, metrics.fXHeight); fprintf(out, ", "); + output_scalar(out, metrics.fCapHeight); fprintf(out, ", "); + output_scalar(out, metrics.fUnderlineThickness); fprintf(out, ", "); + output_scalar(out, metrics.fUnderlinePosition); fprintf(out, "\n };\n"); + fprintf(out, " return metrics;\n"); + fprintf(out, "}\n\n}\n"); + fclose(out); + return 0; +} + +#if !defined SK_BUILD_FOR_IOS +int main(int argc, char * const argv[]) { + return tool_main(argc, (char**) argv); +} +#endif diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp index c75c496a89..1b35005d96 100644 --- a/tools/sk_tool_utils.cpp +++ b/tools/sk_tool_utils.cpp @@ -6,12 +6,15 @@ */ #include "sk_tool_utils.h" +#include "../src/fonts/SkTestScalerContext.h" #include "SkBitmap.h" #include "SkCanvas.h" namespace sk_tool_utils { +bool gEnablePortableTypeface = false; + const char* colortype_name(SkColorType ct) { switch (ct) { case kUnknown_SkColorType: return "Unknown"; @@ -27,6 +30,14 @@ const char* colortype_name(SkColorType ct) { } } +SkPaint::FontMetrics create_font(SkTDArray& , SkTDArray& ); + +void set_portable_typeface(SkPaint* paint, SkTypeface::Style style) { + if (gEnablePortableTypeface) { + SkSafeUnref(paint->setTypeface(CreateTestTypeface(create_font, style))); + } +} + void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y, SkColorType colorType, SkAlphaType alphaType) { SkBitmap tmp(bitmap); diff --git a/tools/sk_tool_utils.h b/tools/sk_tool_utils.h index 2bd42b6076..151325d7d1 100644 --- a/tools/sk_tool_utils.h +++ b/tools/sk_tool_utils.h @@ -8,15 +8,23 @@ #ifndef sk_tool_utils_DEFINED #define sk_tool_utils_DEFINED +#include "SkBitmap.h" +#include "SkCanvas.h" #include "SkImageInfo.h" - -class SkBitmap; -class SkCanvas; +#include "SkPaint.h" +#include "SkTypeface.h" namespace sk_tool_utils { + extern bool gEnablePortableTypeface; + const char* colortype_name(SkColorType); + /** + * Sets the paint to use a platform-independent text renderer. + */ + void set_portable_typeface(SkPaint* paint, SkTypeface::Style style = SkTypeface::kNormal); + /** * Call canvas->writePixels() by using the pixels from bitmap, but with an info that claims * the pixels are colorType + alphaType diff --git a/tools/sk_tool_utils_font.cpp b/tools/sk_tool_utils_font.cpp new file mode 100644 index 0000000000..7ff05aee21 --- /dev/null +++ b/tools/sk_tool_utils_font.cpp @@ -0,0 +1,2892 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// this was auto-generated by TestFontCreator.cpp + +#include "SkPaint.h" +#include "SkPath.h" +#include "SkTDArray.h" + +namespace sk_tool_utils { + +SkPaint::FontMetrics create_font(SkTDArray& pathArray, + SkTDArray& widthArray) { + SkPath* path; + path = SkNEW(SkPath); // space + *pathArray.append() = path; + *widthArray.append() = 0x00004280; + + path = SkNEW(SkPath); // ! + *pathArray.append() = path; + path->moveTo(0.164063f, -0.202148f); + path->lineTo(0.10498f, -0.202148f); + path->lineTo(0.0800781f, -0.713867f); + path->lineTo(0.188965f, -0.713867f); + path->close(); + path->moveTo(0.0717773f, -0.0541992f); + path->quadTo(0.0717773f, -0.0727539f, 0.0766602f, -0.0856934f); + path->quadTo(0.081543f, -0.0986328f, 0.0898438f, -0.106689f); + path->quadTo(0.0981445f, -0.114746f, 0.109375f, -0.118408f); + path->quadTo(0.120605f, -0.12207f, 0.133789f, -0.12207f); + path->quadTo(0.146484f, -0.12207f, 0.157959f, -0.118408f); + path->quadTo(0.169434f, -0.114746f, 0.177734f, -0.106689f); + path->quadTo(0.186035f, -0.0986328f, 0.190918f, -0.0856934f); + path->quadTo(0.195801f, -0.0727539f, 0.195801f, -0.0541992f); + path->quadTo(0.195801f, -0.0361328f, 0.190918f, -0.0231934f); + path->quadTo(0.186035f, -0.0102539f, 0.177734f, -0.00195313f); + path->quadTo(0.169434f, 0.00634766f, 0.157959f, 0.0102539f); + path->quadTo(0.146484f, 0.0141602f, 0.133789f, 0.0141602f); + path->quadTo(0.120605f, 0.0141602f, 0.109375f, 0.0102539f); + path->quadTo(0.0981445f, 0.00634766f, 0.0898438f, -0.00195313f); + path->quadTo(0.081543f, -0.0102539f, 0.0766602f, -0.0231934f); + path->quadTo(0.0717773f, -0.0361328f, 0.0717773f, -0.0541992f); + path->close(); + *widthArray.append() = 0x000044e0; + + path = SkNEW(SkPath); // " + *pathArray.append() = path; + path->moveTo(0.161133f, -0.713867f); + path->lineTo(0.141113f, -0.456055f); + path->lineTo(0.0849609f, -0.456055f); + path->lineTo(0.0649414f, -0.713867f); + path->close(); + path->moveTo(0.336914f, -0.713867f); + path->lineTo(0.316895f, -0.456055f); + path->lineTo(0.26123f, -0.456055f); + path->lineTo(0.241211f, -0.713867f); + path->close(); + *widthArray.append() = 0x000066e0; + + path = SkNEW(SkPath); // # + *pathArray.append() = path; + path->moveTo(0.47998f, -0.436035f); + path->lineTo(0.449219f, -0.275879f); + path->lineTo(0.585938f, -0.275879f); + path->lineTo(0.585938f, -0.208984f); + path->lineTo(0.436035f, -0.208984f); + path->lineTo(0.395996f, 0); + path->lineTo(0.324219f, 0); + path->lineTo(0.365234f, -0.208984f); + path->lineTo(0.223145f, -0.208984f); + path->lineTo(0.183105f, 0); + path->lineTo(0.112793f, 0); + path->lineTo(0.150879f, -0.208984f); + path->lineTo(0.0249023f, -0.208984f); + path->lineTo(0.0249023f, -0.275879f); + path->lineTo(0.164063f, -0.275879f); + path->lineTo(0.195801f, -0.436035f); + path->lineTo(0.0620117f, -0.436035f); + path->lineTo(0.0620117f, -0.50293f); + path->lineTo(0.208008f, -0.50293f); + path->lineTo(0.248047f, -0.713867f); + path->lineTo(0.319824f, -0.713867f); + path->lineTo(0.279785f, -0.50293f); + path->lineTo(0.422852f, -0.50293f); + path->lineTo(0.463867f, -0.713867f); + path->lineTo(0.53418f, -0.713867f); + path->lineTo(0.493164f, -0.50293f); + path->lineTo(0.621094f, -0.50293f); + path->lineTo(0.621094f, -0.436035f); + path->close(); + path->moveTo(0.23584f, -0.275879f); + path->lineTo(0.37793f, -0.275879f); + path->lineTo(0.40918f, -0.436035f); + path->lineTo(0.26709f, -0.436035f); + path->close(); + *widthArray.append() = 0x0000a560; + + path = SkNEW(SkPath); // $ + *pathArray.append() = path; + path->moveTo(0.480957f, -0.217773f); + path->quadTo(0.480957f, -0.183594f, 0.46875f, -0.155762f); + path->quadTo(0.456543f, -0.12793f, 0.433838f, -0.107422f); + path->quadTo(0.411133f, -0.0869141f, 0.378662f, -0.0734863f); + path->quadTo(0.346191f, -0.0600586f, 0.305176f, -0.0541992f); + path->lineTo(0.305176f, 0.0581055f); + path->lineTo(0.237793f, 0.0581055f); + path->lineTo(0.237793f, -0.0498047f); + path->quadTo(0.213379f, -0.0498047f, 0.188477f, -0.052002f); + path->quadTo(0.163574f, -0.0541992f, 0.140137f, -0.0585938f); + path->quadTo(0.116699f, -0.0629883f, 0.0961914f, -0.0693359f); + path->quadTo(0.0756836f, -0.0756836f, 0.0600586f, -0.0839844f); + path->lineTo(0.0600586f, -0.167969f); + path->quadTo(0.0761719f, -0.160156f, 0.0974121f, -0.1521f); + path->quadTo(0.118652f, -0.144043f, 0.14209f, -0.137695f); + path->quadTo(0.165527f, -0.131348f, 0.190186f, -0.127197f); + path->quadTo(0.214844f, -0.123047f, 0.237793f, -0.123047f); + path->lineTo(0.237793f, -0.334961f); + path->quadTo(0.194336f, -0.349609f, 0.162354f, -0.365723f); + path->quadTo(0.130371f, -0.381836f, 0.109375f, -0.402588f); + path->quadTo(0.0883789f, -0.42334f, 0.078125f, -0.450195f); + path->quadTo(0.0678711f, -0.477051f, 0.0678711f, -0.513184f); + path->quadTo(0.0678711f, -0.545898f, 0.079834f, -0.572998f); + path->quadTo(0.0917969f, -0.600098f, 0.114014f, -0.620361f); + path->quadTo(0.13623f, -0.640625f, 0.167725f, -0.653564f); + path->quadTo(0.199219f, -0.666504f, 0.237793f, -0.670898f); + path->lineTo(0.237793f, -0.758789f); + path->lineTo(0.305176f, -0.758789f); + path->lineTo(0.305176f, -0.672852f); + path->quadTo(0.354004f, -0.67041f, 0.395264f, -0.660156f); + path->quadTo(0.436523f, -0.649902f, 0.469238f, -0.634766f); + path->lineTo(0.437012f, -0.563965f); + path->quadTo(0.409668f, -0.576172f, 0.375488f, -0.586182f); + path->quadTo(0.341309f, -0.596191f, 0.305176f, -0.599121f); + path->lineTo(0.305176f, -0.393066f); + path->quadTo(0.348145f, -0.37793f, 0.381104f, -0.361816f); + path->quadTo(0.414063f, -0.345703f, 0.436279f, -0.325439f); + path->quadTo(0.458496f, -0.305176f, 0.469727f, -0.279053f); + path->quadTo(0.480957f, -0.25293f, 0.480957f, -0.217773f); + path->close(); + path->moveTo(0.39502f, -0.217773f); + path->quadTo(0.39502f, -0.233887f, 0.390137f, -0.247314f); + path->quadTo(0.385254f, -0.260742f, 0.374756f, -0.271729f); + path->quadTo(0.364258f, -0.282715f, 0.347168f, -0.291992f); + path->quadTo(0.330078f, -0.30127f, 0.305176f, -0.310059f); + path->lineTo(0.305176f, -0.12793f); + path->quadTo(0.350586f, -0.134766f, 0.372803f, -0.158691f); + path->quadTo(0.39502f, -0.182617f, 0.39502f, -0.217773f); + path->close(); + path->moveTo(0.153809f, -0.512207f); + path->quadTo(0.153809f, -0.494629f, 0.157959f, -0.480713f); + path->quadTo(0.162109f, -0.466797f, 0.171875f, -0.455322f); + path->quadTo(0.181641f, -0.443848f, 0.197754f, -0.43457f); + path->quadTo(0.213867f, -0.425293f, 0.237793f, -0.416992f); + path->lineTo(0.237793f, -0.597168f); + path->quadTo(0.194336f, -0.589355f, 0.174072f, -0.567627f); + path->quadTo(0.153809f, -0.545898f, 0.153809f, -0.512207f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // % + *pathArray.append() = path; + path->moveTo(0.12207f, -0.500977f); + path->quadTo(0.12207f, -0.42041f, 0.139404f, -0.380127f); + path->quadTo(0.156738f, -0.339844f, 0.195801f, -0.339844f); + path->quadTo(0.271973f, -0.339844f, 0.271973f, -0.500977f); + path->quadTo(0.271973f, -0.661133f, 0.195801f, -0.661133f); + path->quadTo(0.156738f, -0.661133f, 0.139404f, -0.621338f); + path->quadTo(0.12207f, -0.581543f, 0.12207f, -0.500977f); + path->close(); + path->moveTo(0.344238f, -0.500977f); + path->quadTo(0.344238f, -0.448242f, 0.335449f, -0.40625f); + path->quadTo(0.32666f, -0.364258f, 0.308594f, -0.335449f); + path->quadTo(0.290527f, -0.306641f, 0.262451f, -0.29126f); + path->quadTo(0.234375f, -0.275879f, 0.195801f, -0.275879f); + path->quadTo(0.160156f, -0.275879f, 0.132813f, -0.29126f); + path->quadTo(0.105469f, -0.306641f, 0.0869141f, -0.335449f); + path->quadTo(0.0683594f, -0.364258f, 0.059082f, -0.40625f); + path->quadTo(0.0498047f, -0.448242f, 0.0498047f, -0.500977f); + path->quadTo(0.0498047f, -0.553711f, 0.0583496f, -0.595215f); + path->quadTo(0.0668945f, -0.636719f, 0.0847168f, -0.665283f); + path->quadTo(0.102539f, -0.693848f, 0.130127f, -0.708984f); + path->quadTo(0.157715f, -0.724121f, 0.195801f, -0.724121f); + path->quadTo(0.232422f, -0.724121f, 0.26001f, -0.708984f); + path->quadTo(0.287598f, -0.693848f, 0.306396f, -0.665283f); + path->quadTo(0.325195f, -0.636719f, 0.334717f, -0.595215f); + path->quadTo(0.344238f, -0.553711f, 0.344238f, -0.500977f); + path->close(); + path->moveTo(0.553223f, -0.214844f); + path->quadTo(0.553223f, -0.134277f, 0.570557f, -0.0942383f); + path->quadTo(0.587891f, -0.0541992f, 0.626953f, -0.0541992f); + path->quadTo(0.703125f, -0.0541992f, 0.703125f, -0.214844f); + path->quadTo(0.703125f, -0.375f, 0.626953f, -0.375f); + path->quadTo(0.587891f, -0.375f, 0.570557f, -0.335205f); + path->quadTo(0.553223f, -0.29541f, 0.553223f, -0.214844f); + path->close(); + path->moveTo(0.774902f, -0.214844f); + path->quadTo(0.774902f, -0.162109f, 0.766357f, -0.120361f); + path->quadTo(0.757813f, -0.0786133f, 0.739746f, -0.0498047f); + path->quadTo(0.72168f, -0.0209961f, 0.693604f, -0.00561523f); + path->quadTo(0.665527f, 0.00976563f, 0.626953f, 0.00976563f); + path->quadTo(0.59082f, 0.00976563f, 0.563477f, -0.00561523f); + path->quadTo(0.536133f, -0.0209961f, 0.517822f, -0.0498047f); + path->quadTo(0.499512f, -0.0786133f, 0.490234f, -0.120361f); + path->quadTo(0.480957f, -0.162109f, 0.480957f, -0.214844f); + path->quadTo(0.480957f, -0.267578f, 0.489502f, -0.309082f); + path->quadTo(0.498047f, -0.350586f, 0.515869f, -0.37915f); + path->quadTo(0.533691f, -0.407715f, 0.561279f, -0.422852f); + path->quadTo(0.588867f, -0.437988f, 0.626953f, -0.437988f); + path->quadTo(0.663574f, -0.437988f, 0.691162f, -0.422852f); + path->quadTo(0.71875f, -0.407715f, 0.737305f, -0.37915f); + path->quadTo(0.755859f, -0.350586f, 0.765381f, -0.309082f); + path->quadTo(0.774902f, -0.267578f, 0.774902f, -0.214844f); + path->close(); + path->moveTo(0.649902f, -0.713867f); + path->lineTo(0.253906f, 0); + path->lineTo(0.176758f, 0); + path->lineTo(0.573242f, -0.713867f); + path->close(); + *widthArray.append() = 0x0000d340; + + path = SkNEW(SkPath); // & + *pathArray.append() = path; + path->moveTo(0.206055f, -0.568848f); + path->quadTo(0.206055f, -0.552246f, 0.209961f, -0.536377f); + path->quadTo(0.213867f, -0.520508f, 0.221924f, -0.504639f); + path->quadTo(0.22998f, -0.48877f, 0.242676f, -0.472412f); + path->quadTo(0.255371f, -0.456055f, 0.272949f, -0.437988f); + path->quadTo(0.301758f, -0.455078f, 0.322754f, -0.470215f); + path->quadTo(0.34375f, -0.485352f, 0.357422f, -0.500977f); + path->quadTo(0.371094f, -0.516602f, 0.37793f, -0.533691f); + path->quadTo(0.384766f, -0.550781f, 0.384766f, -0.570801f); + path->quadTo(0.384766f, -0.588379f, 0.378662f, -0.603271f); + path->quadTo(0.372559f, -0.618164f, 0.361084f, -0.628906f); + path->quadTo(0.349609f, -0.639648f, 0.333496f, -0.645752f); + path->quadTo(0.317383f, -0.651855f, 0.296875f, -0.651855f); + path->quadTo(0.254883f, -0.651855f, 0.230469f, -0.630127f); + path->quadTo(0.206055f, -0.608398f, 0.206055f, -0.568848f); + path->close(); + path->moveTo(0.271973f, -0.0688477f); + path->quadTo(0.300293f, -0.0688477f, 0.324219f, -0.0744629f); + path->quadTo(0.348145f, -0.0800781f, 0.368652f, -0.0898438f); + path->quadTo(0.38916f, -0.0996094f, 0.406738f, -0.112793f); + path->quadTo(0.424316f, -0.125977f, 0.439941f, -0.141113f); + path->lineTo(0.250977f, -0.339844f); + path->quadTo(0.225586f, -0.32373f, 0.206055f, -0.30835f); + path->quadTo(0.186523f, -0.292969f, 0.173096f, -0.275391f); + path->quadTo(0.159668f, -0.257813f, 0.152832f, -0.237061f); + path->quadTo(0.145996f, -0.216309f, 0.145996f, -0.188965f); + path->quadTo(0.145996f, -0.162598f, 0.154541f, -0.140381f); + path->quadTo(0.163086f, -0.118164f, 0.179199f, -0.102295f); + path->quadTo(0.195313f, -0.0864258f, 0.21875f, -0.0776367f); + path->quadTo(0.242188f, -0.0688477f, 0.271973f, -0.0688477f); + path->close(); + path->moveTo(0.0532227f, -0.186035f); + path->quadTo(0.0532227f, -0.224121f, 0.0629883f, -0.253906f); + path->quadTo(0.0727539f, -0.283691f, 0.0915527f, -0.308105f); + path->quadTo(0.110352f, -0.33252f, 0.137451f, -0.353516f); + path->quadTo(0.164551f, -0.374512f, 0.199219f, -0.39502f); + path->quadTo(0.184082f, -0.412598f, 0.169434f, -0.431396f); + path->quadTo(0.154785f, -0.450195f, 0.143799f, -0.471436f); + path->quadTo(0.132813f, -0.492676f, 0.125977f, -0.516846f); + path->quadTo(0.119141f, -0.541016f, 0.119141f, -0.568848f); + path->quadTo(0.119141f, -0.605469f, 0.131348f, -0.634521f); + path->quadTo(0.143555f, -0.663574f, 0.166504f, -0.683838f); + path->quadTo(0.189453f, -0.704102f, 0.223145f, -0.7146f); + path->quadTo(0.256836f, -0.725098f, 0.299805f, -0.725098f); + path->quadTo(0.340332f, -0.725098f, 0.372314f, -0.7146f); + path->quadTo(0.404297f, -0.704102f, 0.426514f, -0.683838f); + path->quadTo(0.44873f, -0.663574f, 0.460449f, -0.634521f); + path->quadTo(0.472168f, -0.605469f, 0.472168f, -0.568848f); + path->quadTo(0.472168f, -0.537598f, 0.459961f, -0.510986f); + path->quadTo(0.447754f, -0.484375f, 0.427246f, -0.46167f); + path->quadTo(0.406738f, -0.438965f, 0.380127f, -0.419678f); + path->quadTo(0.353516f, -0.400391f, 0.324219f, -0.382813f); + path->lineTo(0.496094f, -0.201172f); + path->quadTo(0.509277f, -0.215332f, 0.519775f, -0.22998f); + path->quadTo(0.530273f, -0.244629f, 0.538574f, -0.26123f); + path->quadTo(0.546875f, -0.277832f, 0.553467f, -0.296875f); + path->quadTo(0.560059f, -0.315918f, 0.564941f, -0.338867f); + path->lineTo(0.654785f, -0.338867f); + path->quadTo(0.647461f, -0.306641f, 0.637451f, -0.279541f); + path->quadTo(0.627441f, -0.252441f, 0.614502f, -0.228516f); + path->quadTo(0.601563f, -0.20459f, 0.585693f, -0.183838f); + path->quadTo(0.569824f, -0.163086f, 0.550781f, -0.143066f); + path->lineTo(0.686035f, 0); + path->lineTo(0.576172f, 0); + path->lineTo(0.494141f, -0.0839844f); + path->quadTo(0.470215f, -0.0620117f, 0.446777f, -0.0446777f); + path->quadTo(0.42334f, -0.0273438f, 0.396973f, -0.0153809f); + path->quadTo(0.370605f, -0.00341797f, 0.340332f, 0.00317383f); + path->quadTo(0.310059f, 0.00976563f, 0.271973f, 0.00976563f); + path->quadTo(0.220703f, 0.00976563f, 0.179932f, -0.00317383f); + path->quadTo(0.13916f, -0.0161133f, 0.111084f, -0.0412598f); + path->quadTo(0.0830078f, -0.0664063f, 0.0681152f, -0.102783f); + path->quadTo(0.0532227f, -0.13916f, 0.0532227f, -0.186035f); + path->close(); + *widthArray.append() = 0x0000b3c0; + + path = SkNEW(SkPath); // ' + *pathArray.append() = path; + path->moveTo(0.161133f, -0.713867f); + path->lineTo(0.141113f, -0.456055f); + path->lineTo(0.0849609f, -0.456055f); + path->lineTo(0.0649414f, -0.713867f); + path->close(); + *widthArray.append() = 0x000039e0; + + path = SkNEW(SkPath); // ( + *pathArray.append() = path; + path->moveTo(0.0400391f, -0.273926f); + path->quadTo(0.0400391f, -0.334961f, 0.0488281f, -0.394287f); + path->quadTo(0.0576172f, -0.453613f, 0.0756836f, -0.509521f); + path->quadTo(0.09375f, -0.56543f, 0.121338f, -0.616943f); + path->quadTo(0.148926f, -0.668457f, 0.187012f, -0.713867f); + path->lineTo(0.270996f, -0.713867f); + path->quadTo(0.202637f, -0.619629f, 0.167236f, -0.506836f); + path->quadTo(0.131836f, -0.394043f, 0.131836f, -0.274902f); + path->quadTo(0.131836f, -0.216797f, 0.140869f, -0.15918f); + path->quadTo(0.149902f, -0.101563f, 0.167236f, -0.0463867f); + path->quadTo(0.18457f, 0.00878906f, 0.210449f, 0.0605469f); + path->quadTo(0.236328f, 0.112305f, 0.27002f, 0.158203f); + path->lineTo(0.187012f, 0.158203f); + path->quadTo(0.148926f, 0.114258f, 0.121338f, 0.0639648f); + path->quadTo(0.09375f, 0.0136719f, 0.0756836f, -0.0412598f); + path->quadTo(0.0576172f, -0.0961914f, 0.0488281f, -0.154785f); + path->quadTo(0.0400391f, -0.213379f, 0.0400391f, -0.273926f); + path->close(); + *widthArray.append() = 0x00004d00; + + path = SkNEW(SkPath); // ) + *pathArray.append() = path; + path->moveTo(0.26123f, -0.273926f); + path->quadTo(0.26123f, -0.213379f, 0.252441f, -0.154785f); + path->quadTo(0.243652f, -0.0961914f, 0.225342f, -0.0412598f); + path->quadTo(0.207031f, 0.0136719f, 0.179443f, 0.0639648f); + path->quadTo(0.151855f, 0.114258f, 0.11377f, 0.158203f); + path->lineTo(0.0307617f, 0.158203f); + path->quadTo(0.0644531f, 0.112305f, 0.090332f, 0.0605469f); + path->quadTo(0.116211f, 0.00878906f, 0.133789f, -0.0463867f); + path->quadTo(0.151367f, -0.101563f, 0.160156f, -0.15918f); + path->quadTo(0.168945f, -0.216797f, 0.168945f, -0.274902f); + path->quadTo(0.168945f, -0.394043f, 0.133789f, -0.506836f); + path->quadTo(0.0986328f, -0.619629f, 0.0297852f, -0.713867f); + path->lineTo(0.11377f, -0.713867f); + path->quadTo(0.151855f, -0.668457f, 0.179443f, -0.616943f); + path->quadTo(0.207031f, -0.56543f, 0.225342f, -0.509521f); + path->quadTo(0.243652f, -0.453613f, 0.252441f, -0.394287f); + path->quadTo(0.26123f, -0.334961f, 0.26123f, -0.273926f); + path->close(); + *widthArray.append() = 0x00004d00; + + path = SkNEW(SkPath); // * + *pathArray.append() = path; + path->moveTo(0.324219f, -0.759766f); + path->lineTo(0.303223f, -0.567871f); + path->lineTo(0.49707f, -0.62207f); + path->lineTo(0.509766f, -0.527832f); + path->lineTo(0.325195f, -0.51416f); + path->lineTo(0.444824f, -0.35498f); + path->lineTo(0.35791f, -0.308105f); + path->lineTo(0.271973f, -0.48291f); + path->lineTo(0.194824f, -0.308105f); + path->lineTo(0.10498f, -0.35498f); + path->lineTo(0.223145f, -0.51416f); + path->lineTo(0.0400391f, -0.527832f); + path->lineTo(0.0541992f, -0.62207f); + path->lineTo(0.245117f, -0.567871f); + path->lineTo(0.224121f, -0.759766f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // + + *pathArray.append() = path; + path->moveTo(0.23877f, -0.315918f); + path->lineTo(0.0498047f, -0.315918f); + path->lineTo(0.0498047f, -0.38916f); + path->lineTo(0.23877f, -0.38916f); + path->lineTo(0.23877f, -0.579102f); + path->lineTo(0.312012f, -0.579102f); + path->lineTo(0.312012f, -0.38916f); + path->lineTo(0.500977f, -0.38916f); + path->lineTo(0.500977f, -0.315918f); + path->lineTo(0.312012f, -0.315918f); + path->lineTo(0.312012f, -0.12793f); + path->lineTo(0.23877f, -0.12793f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // , + *pathArray.append() = path; + path->moveTo(0.176758f, -0.116211f); + path->lineTo(0.184082f, -0.10498f); + path->quadTo(0.177246f, -0.0786133f, 0.167725f, -0.0488281f); + path->quadTo(0.158203f, -0.019043f, 0.146729f, 0.0112305f); + path->quadTo(0.135254f, 0.0415039f, 0.122803f, 0.0715332f); + path->quadTo(0.110352f, 0.101563f, 0.0981445f, 0.128906f); + path->lineTo(0.0307617f, 0.128906f); + path->quadTo(0.0380859f, 0.0991211f, 0.045166f, 0.0668945f); + path->quadTo(0.0522461f, 0.034668f, 0.0588379f, 0.00268555f); + path->quadTo(0.0654297f, -0.0292969f, 0.0708008f, -0.0598145f); + path->quadTo(0.0761719f, -0.090332f, 0.0800781f, -0.116211f); + path->close(); + *widthArray.append() = 0x00004000; + + path = SkNEW(SkPath); // - + *pathArray.append() = path; + path->moveTo(0.0400391f, -0.227051f); + path->lineTo(0.0400391f, -0.309082f); + path->lineTo(0.282227f, -0.309082f); + path->lineTo(0.282227f, -0.227051f); + path->close(); + *widthArray.append() = 0x00005260; + + path = SkNEW(SkPath); // . + *pathArray.append() = path; + path->moveTo(0.0717773f, -0.0541992f); + path->quadTo(0.0717773f, -0.0727539f, 0.0766602f, -0.0856934f); + path->quadTo(0.081543f, -0.0986328f, 0.0898438f, -0.106689f); + path->quadTo(0.0981445f, -0.114746f, 0.109375f, -0.118408f); + path->quadTo(0.120605f, -0.12207f, 0.133789f, -0.12207f); + path->quadTo(0.146484f, -0.12207f, 0.157959f, -0.118408f); + path->quadTo(0.169434f, -0.114746f, 0.177734f, -0.106689f); + path->quadTo(0.186035f, -0.0986328f, 0.190918f, -0.0856934f); + path->quadTo(0.195801f, -0.0727539f, 0.195801f, -0.0541992f); + path->quadTo(0.195801f, -0.0361328f, 0.190918f, -0.0231934f); + path->quadTo(0.186035f, -0.0102539f, 0.177734f, -0.00195313f); + path->quadTo(0.169434f, 0.00634766f, 0.157959f, 0.0102539f); + path->quadTo(0.146484f, 0.0141602f, 0.133789f, 0.0141602f); + path->quadTo(0.120605f, 0.0141602f, 0.109375f, 0.0102539f); + path->quadTo(0.0981445f, 0.00634766f, 0.0898438f, -0.00195313f); + path->quadTo(0.081543f, -0.0102539f, 0.0766602f, -0.0231934f); + path->quadTo(0.0717773f, -0.0361328f, 0.0717773f, -0.0541992f); + path->close(); + *widthArray.append() = 0x000044a0; + + path = SkNEW(SkPath); // / + *pathArray.append() = path; + path->moveTo(0.362793f, -0.713867f); + path->lineTo(0.097168f, 0); + path->lineTo(0.00976563f, 0); + path->lineTo(0.275879f, -0.713867f); + path->close(); + *widthArray.append() = 0x00005f80; + + path = SkNEW(SkPath); // 0 + *pathArray.append() = path; + path->moveTo(0.503906f, -0.35791f); + path->quadTo(0.503906f, -0.271484f, 0.491455f, -0.203125f); + path->quadTo(0.479004f, -0.134766f, 0.451416f, -0.0874023f); + path->quadTo(0.423828f, -0.0400391f, 0.380371f, -0.0151367f); + path->quadTo(0.336914f, 0.00976563f, 0.274902f, 0.00976563f); + path->quadTo(0.217285f, 0.00976563f, 0.174561f, -0.0151367f); + path->quadTo(0.131836f, -0.0400391f, 0.10376f, -0.0874023f); + path->quadTo(0.0756836f, -0.134766f, 0.0617676f, -0.203125f); + path->quadTo(0.0478516f, -0.271484f, 0.0478516f, -0.35791f); + path->quadTo(0.0478516f, -0.444336f, 0.0603027f, -0.512695f); + path->quadTo(0.0727539f, -0.581055f, 0.0998535f, -0.628174f); + path->quadTo(0.126953f, -0.675293f, 0.170166f, -0.700195f); + path->quadTo(0.213379f, -0.725098f, 0.274902f, -0.725098f); + path->quadTo(0.333008f, -0.725098f, 0.375977f, -0.700439f); + path->quadTo(0.418945f, -0.675781f, 0.447266f, -0.628662f); + path->quadTo(0.475586f, -0.581543f, 0.489746f, -0.513184f); + path->quadTo(0.503906f, -0.444824f, 0.503906f, -0.35791f); + path->close(); + path->moveTo(0.138184f, -0.35791f); + path->quadTo(0.138184f, -0.284668f, 0.145508f, -0.22998f); + path->quadTo(0.152832f, -0.175293f, 0.168945f, -0.138916f); + path->quadTo(0.185059f, -0.102539f, 0.211182f, -0.0842285f); + path->quadTo(0.237305f, -0.065918f, 0.274902f, -0.065918f); + path->quadTo(0.3125f, -0.065918f, 0.338867f, -0.0839844f); + path->quadTo(0.365234f, -0.102051f, 0.38208f, -0.138184f); + path->quadTo(0.398926f, -0.174316f, 0.406494f, -0.229248f); + path->quadTo(0.414063f, -0.28418f, 0.414063f, -0.35791f); + path->quadTo(0.414063f, -0.431152f, 0.406494f, -0.48584f); + path->quadTo(0.398926f, -0.540527f, 0.38208f, -0.57666f); + path->quadTo(0.365234f, -0.612793f, 0.338867f, -0.630859f); + path->quadTo(0.3125f, -0.648926f, 0.274902f, -0.648926f); + path->quadTo(0.237305f, -0.648926f, 0.211182f, -0.630859f); + path->quadTo(0.185059f, -0.612793f, 0.168945f, -0.57666f); + path->quadTo(0.152832f, -0.540527f, 0.145508f, -0.48584f); + path->quadTo(0.138184f, -0.431152f, 0.138184f, -0.35791f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 1 + *pathArray.append() = path; + path->moveTo(0.347168f, 0); + path->lineTo(0.26123f, 0); + path->lineTo(0.26123f, -0.445801f); + path->quadTo(0.26123f, -0.466797f, 0.261475f, -0.490723f); + path->quadTo(0.261719f, -0.514648f, 0.262451f, -0.53833f); + path->quadTo(0.263184f, -0.562012f, 0.263916f, -0.58374f); + path->quadTo(0.264648f, -0.605469f, 0.265137f, -0.62207f); + path->quadTo(0.256836f, -0.613281f, 0.250488f, -0.606934f); + path->quadTo(0.244141f, -0.600586f, 0.237549f, -0.594727f); + path->quadTo(0.230957f, -0.588867f, 0.223633f, -0.582275f); + path->quadTo(0.216309f, -0.575684f, 0.206055f, -0.566895f); + path->lineTo(0.133789f, -0.507813f); + path->lineTo(0.0869141f, -0.567871f); + path->lineTo(0.273926f, -0.713867f); + path->lineTo(0.347168f, -0.713867f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 2 + *pathArray.append() = path; + path->moveTo(0.492188f, 0); + path->lineTo(0.046875f, 0); + path->lineTo(0.046875f, -0.0761719f); + path->lineTo(0.217773f, -0.262207f); + path->quadTo(0.254395f, -0.301758f, 0.283203f, -0.334473f); + path->quadTo(0.312012f, -0.367188f, 0.332275f, -0.398438f); + path->quadTo(0.352539f, -0.429688f, 0.363281f, -0.461182f); + path->quadTo(0.374023f, -0.492676f, 0.374023f, -0.529785f); + path->quadTo(0.374023f, -0.558594f, 0.365723f, -0.580566f); + path->quadTo(0.357422f, -0.602539f, 0.342041f, -0.61792f); + path->quadTo(0.32666f, -0.633301f, 0.305664f, -0.641113f); + path->quadTo(0.284668f, -0.648926f, 0.258789f, -0.648926f); + path->quadTo(0.212402f, -0.648926f, 0.175049f, -0.630127f); + path->quadTo(0.137695f, -0.611328f, 0.104004f, -0.582031f); + path->lineTo(0.0541992f, -0.640137f); + path->quadTo(0.0737305f, -0.657715f, 0.0961914f, -0.673096f); + path->quadTo(0.118652f, -0.688477f, 0.144531f, -0.699707f); + path->quadTo(0.17041f, -0.710938f, 0.199219f, -0.717529f); + path->quadTo(0.228027f, -0.724121f, 0.259766f, -0.724121f); + path->quadTo(0.306641f, -0.724121f, 0.344482f, -0.710938f); + path->quadTo(0.382324f, -0.697754f, 0.408691f, -0.673096f); + path->quadTo(0.435059f, -0.648438f, 0.449463f, -0.613037f); + path->quadTo(0.463867f, -0.577637f, 0.463867f, -0.533203f); + path->quadTo(0.463867f, -0.491699f, 0.450928f, -0.454102f); + path->quadTo(0.437988f, -0.416504f, 0.415283f, -0.380127f); + path->quadTo(0.392578f, -0.34375f, 0.361084f, -0.307129f); + path->quadTo(0.32959f, -0.270508f, 0.292969f, -0.230957f); + path->lineTo(0.155762f, -0.0849609f); + path->lineTo(0.155762f, -0.0810547f); + path->lineTo(0.492188f, -0.0810547f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 3 + *pathArray.append() = path; + path->moveTo(0.469238f, -0.546875f); + path->quadTo(0.469238f, -0.51123f, 0.458008f, -0.481934f); + path->quadTo(0.446777f, -0.452637f, 0.426514f, -0.431152f); + path->quadTo(0.40625f, -0.409668f, 0.37793f, -0.395752f); + path->quadTo(0.349609f, -0.381836f, 0.314941f, -0.375977f); + path->lineTo(0.314941f, -0.373047f); + path->quadTo(0.401367f, -0.362305f, 0.446289f, -0.318115f); + path->quadTo(0.491211f, -0.273926f, 0.491211f, -0.203125f); + path->quadTo(0.491211f, -0.15625f, 0.475342f, -0.117188f); + path->quadTo(0.459473f, -0.078125f, 0.427246f, -0.0498047f); + path->quadTo(0.39502f, -0.0214844f, 0.345703f, -0.00585938f); + path->quadTo(0.296387f, 0.00976563f, 0.229004f, 0.00976563f); + path->quadTo(0.175781f, 0.00976563f, 0.128662f, 0.00146484f); + path->quadTo(0.081543f, -0.00683594f, 0.0400391f, -0.0288086f); + path->lineTo(0.0400391f, -0.111816f); + path->quadTo(0.0825195f, -0.0893555f, 0.13208f, -0.0771484f); + path->quadTo(0.181641f, -0.0649414f, 0.227051f, -0.0649414f); + path->quadTo(0.271973f, -0.0649414f, 0.304688f, -0.074707f); + path->quadTo(0.337402f, -0.0844727f, 0.358643f, -0.102539f); + path->quadTo(0.379883f, -0.120605f, 0.389893f, -0.146973f); + path->quadTo(0.399902f, -0.17334f, 0.399902f, -0.206055f); + path->quadTo(0.399902f, -0.239258f, 0.386963f, -0.262939f); + path->quadTo(0.374023f, -0.286621f, 0.350098f, -0.302002f); + path->quadTo(0.326172f, -0.317383f, 0.291748f, -0.324707f); + path->quadTo(0.257324f, -0.332031f, 0.213867f, -0.332031f); + path->lineTo(0.148926f, -0.332031f); + path->lineTo(0.148926f, -0.405762f); + path->lineTo(0.213867f, -0.405762f); + path->quadTo(0.253418f, -0.405762f, 0.28418f, -0.415527f); + path->quadTo(0.314941f, -0.425293f, 0.335693f, -0.443359f); + path->quadTo(0.356445f, -0.461426f, 0.367188f, -0.486328f); + path->quadTo(0.37793f, -0.51123f, 0.37793f, -0.541016f); + path->quadTo(0.37793f, -0.566406f, 0.369141f, -0.586426f); + path->quadTo(0.360352f, -0.606445f, 0.344238f, -0.620361f); + path->quadTo(0.328125f, -0.634277f, 0.305664f, -0.641602f); + path->quadTo(0.283203f, -0.648926f, 0.255859f, -0.648926f); + path->quadTo(0.203613f, -0.648926f, 0.163818f, -0.632568f); + path->quadTo(0.124023f, -0.616211f, 0.0878906f, -0.589844f); + path->lineTo(0.0429688f, -0.650879f); + path->quadTo(0.0615234f, -0.666016f, 0.0842285f, -0.679199f); + path->quadTo(0.106934f, -0.692383f, 0.133789f, -0.702393f); + path->quadTo(0.160645f, -0.712402f, 0.191162f, -0.718262f); + path->quadTo(0.22168f, -0.724121f, 0.255859f, -0.724121f); + path->quadTo(0.308594f, -0.724121f, 0.348389f, -0.710938f); + path->quadTo(0.388184f, -0.697754f, 0.415039f, -0.674072f); + path->quadTo(0.441895f, -0.650391f, 0.455566f, -0.61792f); + path->quadTo(0.469238f, -0.585449f, 0.469238f, -0.546875f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 4 + *pathArray.append() = path; + path->moveTo(0.530762f, -0.160156f); + path->lineTo(0.426758f, -0.160156f); + path->lineTo(0.426758f, 0); + path->lineTo(0.34082f, 0); + path->lineTo(0.34082f, -0.160156f); + path->lineTo(0.0112305f, -0.160156f); + path->lineTo(0.0112305f, -0.237793f); + path->lineTo(0.334961f, -0.717773f); + path->lineTo(0.426758f, -0.717773f); + path->lineTo(0.426758f, -0.241211f); + path->lineTo(0.530762f, -0.241211f); + path->close(); + path->moveTo(0.34082f, -0.241211f); + path->lineTo(0.34082f, -0.415039f); + path->quadTo(0.34082f, -0.442383f, 0.341553f, -0.472412f); + path->quadTo(0.342285f, -0.502441f, 0.343262f, -0.531006f); + path->quadTo(0.344238f, -0.55957f, 0.345459f, -0.584473f); + path->quadTo(0.34668f, -0.609375f, 0.347168f, -0.625977f); + path->lineTo(0.342773f, -0.625977f); + path->quadTo(0.339355f, -0.616211f, 0.334229f, -0.604248f); + path->quadTo(0.329102f, -0.592285f, 0.322998f, -0.580322f); + path->quadTo(0.316895f, -0.568359f, 0.310547f, -0.557129f); + path->quadTo(0.304199f, -0.545898f, 0.298828f, -0.538086f); + path->lineTo(0.0981445f, -0.241211f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 5 + *pathArray.append() = path; + path->moveTo(0.266113f, -0.437988f); + path->quadTo(0.314453f, -0.437988f, 0.356201f, -0.424561f); + path->quadTo(0.397949f, -0.411133f, 0.428955f, -0.384766f); + path->quadTo(0.459961f, -0.358398f, 0.477539f, -0.319336f); + path->quadTo(0.495117f, -0.280273f, 0.495117f, -0.229004f); + path->quadTo(0.495117f, -0.17334f, 0.478516f, -0.128906f); + path->quadTo(0.461914f, -0.0844727f, 0.429199f, -0.0537109f); + path->quadTo(0.396484f, -0.0229492f, 0.348389f, -0.0065918f); + path->quadTo(0.300293f, 0.00976563f, 0.237793f, 0.00976563f); + path->quadTo(0.212891f, 0.00976563f, 0.188721f, 0.00732422f); + path->quadTo(0.164551f, 0.00488281f, 0.142334f, 0.000244141f); + path->quadTo(0.120117f, -0.00439453f, 0.100098f, -0.0117188f); + path->quadTo(0.0800781f, -0.019043f, 0.0639648f, -0.0288086f); + path->lineTo(0.0639648f, -0.112793f); + path->quadTo(0.0800781f, -0.101563f, 0.101807f, -0.0927734f); + path->quadTo(0.123535f, -0.0839844f, 0.147461f, -0.078125f); + path->quadTo(0.171387f, -0.0722656f, 0.195557f, -0.0690918f); + path->quadTo(0.219727f, -0.065918f, 0.240234f, -0.065918f); + path->quadTo(0.278809f, -0.065918f, 0.309082f, -0.0749512f); + path->quadTo(0.339355f, -0.0839844f, 0.360352f, -0.103027f); + path->quadTo(0.381348f, -0.12207f, 0.392578f, -0.150879f); + path->quadTo(0.403809f, -0.179688f, 0.403809f, -0.219238f); + path->quadTo(0.403809f, -0.289063f, 0.36084f, -0.325928f); + path->quadTo(0.317871f, -0.362793f, 0.23584f, -0.362793f); + path->quadTo(0.222656f, -0.362793f, 0.207275f, -0.361572f); + path->quadTo(0.191895f, -0.360352f, 0.176514f, -0.358398f); + path->quadTo(0.161133f, -0.356445f, 0.147217f, -0.354248f); + path->quadTo(0.133301f, -0.352051f, 0.123047f, -0.350098f); + path->lineTo(0.0791016f, -0.37793f); + path->lineTo(0.105957f, -0.713867f); + path->lineTo(0.442871f, -0.713867f); + path->lineTo(0.442871f, -0.632813f); + path->lineTo(0.183105f, -0.632813f); + path->lineTo(0.164063f, -0.428223f); + path->quadTo(0.179688f, -0.431152f, 0.205322f, -0.43457f); + path->quadTo(0.230957f, -0.437988f, 0.266113f, -0.437988f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 6 + *pathArray.append() = path; + path->moveTo(0.0551758f, -0.305176f); + path->quadTo(0.0551758f, -0.356445f, 0.0603027f, -0.407227f); + path->quadTo(0.0654297f, -0.458008f, 0.0783691f, -0.504639f); + path->quadTo(0.0913086f, -0.55127f, 0.11377f, -0.591309f); + path->quadTo(0.13623f, -0.631348f, 0.170898f, -0.660889f); + path->quadTo(0.205566f, -0.69043f, 0.253906f, -0.707275f); + path->quadTo(0.302246f, -0.724121f, 0.367188f, -0.724121f); + path->quadTo(0.376465f, -0.724121f, 0.387695f, -0.723633f); + path->quadTo(0.398926f, -0.723145f, 0.4104f, -0.721924f); + path->quadTo(0.421875f, -0.720703f, 0.432373f, -0.718994f); + path->quadTo(0.442871f, -0.717285f, 0.451172f, -0.714844f); + path->lineTo(0.451172f, -0.63916f); + path->quadTo(0.434082f, -0.64502f, 0.412598f, -0.647949f); + path->quadTo(0.391113f, -0.650879f, 0.370117f, -0.650879f); + path->quadTo(0.326172f, -0.650879f, 0.292725f, -0.640381f); + path->quadTo(0.259277f, -0.629883f, 0.234863f, -0.61084f); + path->quadTo(0.210449f, -0.591797f, 0.194092f, -0.56543f); + path->quadTo(0.177734f, -0.539063f, 0.16748f, -0.50708f); + path->quadTo(0.157227f, -0.475098f, 0.152344f, -0.438965f); + path->quadTo(0.147461f, -0.402832f, 0.145996f, -0.36377f); + path->lineTo(0.151855f, -0.36377f); + path->quadTo(0.161621f, -0.381348f, 0.175537f, -0.396729f); + path->quadTo(0.189453f, -0.412109f, 0.208008f, -0.423096f); + path->quadTo(0.226563f, -0.434082f, 0.249756f, -0.44043f); + path->quadTo(0.272949f, -0.446777f, 0.301758f, -0.446777f); + path->quadTo(0.348145f, -0.446777f, 0.385742f, -0.432373f); + path->quadTo(0.42334f, -0.417969f, 0.449707f, -0.390137f); + path->quadTo(0.476074f, -0.362305f, 0.490479f, -0.322021f); + path->quadTo(0.504883f, -0.281738f, 0.504883f, -0.22998f); + path->quadTo(0.504883f, -0.174316f, 0.489746f, -0.129883f); + path->quadTo(0.474609f, -0.0854492f, 0.446289f, -0.0544434f); + path->quadTo(0.417969f, -0.0234375f, 0.37793f, -0.00683594f); + path->quadTo(0.337891f, 0.00976563f, 0.288086f, 0.00976563f); + path->quadTo(0.239258f, 0.00976563f, 0.196533f, -0.00927734f); + path->quadTo(0.153809f, -0.0283203f, 0.122559f, -0.0673828f); + path->quadTo(0.0913086f, -0.106445f, 0.0732422f, -0.165527f); + path->quadTo(0.0551758f, -0.224609f, 0.0551758f, -0.305176f); + path->close(); + path->moveTo(0.287109f, -0.0649414f); + path->quadTo(0.316406f, -0.0649414f, 0.340576f, -0.0749512f); + path->quadTo(0.364746f, -0.0849609f, 0.382324f, -0.105225f); + path->quadTo(0.399902f, -0.125488f, 0.409424f, -0.156494f); + path->quadTo(0.418945f, -0.1875f, 0.418945f, -0.22998f); + path->quadTo(0.418945f, -0.26416f, 0.410889f, -0.29126f); + path->quadTo(0.402832f, -0.318359f, 0.386719f, -0.337402f); + path->quadTo(0.370605f, -0.356445f, 0.346436f, -0.366699f); + path->quadTo(0.322266f, -0.376953f, 0.290039f, -0.376953f); + path->quadTo(0.257324f, -0.376953f, 0.230225f, -0.365479f); + path->quadTo(0.203125f, -0.354004f, 0.184082f, -0.335693f); + path->quadTo(0.165039f, -0.317383f, 0.154541f, -0.293945f); + path->quadTo(0.144043f, -0.270508f, 0.144043f, -0.24707f); + path->quadTo(0.144043f, -0.214355f, 0.153076f, -0.181885f); + path->quadTo(0.162109f, -0.149414f, 0.179932f, -0.123535f); + path->quadTo(0.197754f, -0.0976563f, 0.224609f, -0.0812988f); + path->quadTo(0.251465f, -0.0649414f, 0.287109f, -0.0649414f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 7 + *pathArray.append() = path; + path->moveTo(0.137207f, 0); + path->lineTo(0.412109f, -0.632813f); + path->lineTo(0.0439453f, -0.632813f); + path->lineTo(0.0439453f, -0.713867f); + path->lineTo(0.50293f, -0.713867f); + path->lineTo(0.50293f, -0.643066f); + path->lineTo(0.231934f, 0); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 8 + *pathArray.append() = path; + path->moveTo(0.275879f, -0.725098f); + path->quadTo(0.316895f, -0.725098f, 0.353271f, -0.714355f); + path->quadTo(0.389648f, -0.703613f, 0.417236f, -0.682129f); + path->quadTo(0.444824f, -0.660645f, 0.460938f, -0.628418f); + path->quadTo(0.477051f, -0.596191f, 0.477051f, -0.553223f); + path->quadTo(0.477051f, -0.520508f, 0.467285f, -0.494141f); + path->quadTo(0.45752f, -0.467773f, 0.44043f, -0.446533f); + path->quadTo(0.42334f, -0.425293f, 0.399902f, -0.408447f); + path->quadTo(0.376465f, -0.391602f, 0.349121f, -0.37793f); + path->quadTo(0.377441f, -0.362793f, 0.404541f, -0.344238f); + path->quadTo(0.431641f, -0.325684f, 0.452881f, -0.30249f); + path->quadTo(0.474121f, -0.279297f, 0.487061f, -0.250488f); + path->quadTo(0.5f, -0.22168f, 0.5f, -0.186035f); + path->quadTo(0.5f, -0.141113f, 0.483643f, -0.104736f); + path->quadTo(0.467285f, -0.0683594f, 0.437744f, -0.0429688f); + path->quadTo(0.408203f, -0.0175781f, 0.366943f, -0.00390625f); + path->quadTo(0.325684f, 0.00976563f, 0.275879f, 0.00976563f); + path->quadTo(0.222168f, 0.00976563f, 0.18042f, -0.00341797f); + path->quadTo(0.138672f, -0.0166016f, 0.110107f, -0.0412598f); + path->quadTo(0.081543f, -0.065918f, 0.0666504f, -0.101563f); + path->quadTo(0.0517578f, -0.137207f, 0.0517578f, -0.182129f); + path->quadTo(0.0517578f, -0.21875f, 0.0627441f, -0.248047f); + path->quadTo(0.0737305f, -0.277344f, 0.0922852f, -0.300781f); + path->quadTo(0.11084f, -0.324219f, 0.13623f, -0.342285f); + path->quadTo(0.161621f, -0.360352f, 0.189941f, -0.374023f); + path->quadTo(0.166016f, -0.38916f, 0.14502f, -0.406982f); + path->quadTo(0.124023f, -0.424805f, 0.108643f, -0.446777f); + path->quadTo(0.0932617f, -0.46875f, 0.0842285f, -0.495361f); + path->quadTo(0.0751953f, -0.521973f, 0.0751953f, -0.554199f); + path->quadTo(0.0751953f, -0.59668f, 0.0915527f, -0.628662f); + path->quadTo(0.10791f, -0.660645f, 0.135742f, -0.682129f); + path->quadTo(0.163574f, -0.703613f, 0.199951f, -0.714355f); + path->quadTo(0.236328f, -0.725098f, 0.275879f, -0.725098f); + path->close(); + path->moveTo(0.13916f, -0.181152f); + path->quadTo(0.13916f, -0.155273f, 0.146973f, -0.133545f); + path->quadTo(0.154785f, -0.111816f, 0.171387f, -0.0964355f); + path->quadTo(0.187988f, -0.0810547f, 0.213379f, -0.0725098f); + path->quadTo(0.23877f, -0.0639648f, 0.273926f, -0.0639648f); + path->quadTo(0.308105f, -0.0639648f, 0.334229f, -0.0725098f); + path->quadTo(0.360352f, -0.0810547f, 0.37793f, -0.0969238f); + path->quadTo(0.395508f, -0.112793f, 0.404297f, -0.135254f); + path->quadTo(0.413086f, -0.157715f, 0.413086f, -0.185059f); + path->quadTo(0.413086f, -0.210449f, 0.403564f, -0.230957f); + path->quadTo(0.394043f, -0.251465f, 0.376221f, -0.269043f); + path->quadTo(0.358398f, -0.286621f, 0.333496f, -0.302246f); + path->quadTo(0.308594f, -0.317871f, 0.277832f, -0.333008f); + path->lineTo(0.263184f, -0.339844f); + path->quadTo(0.20166f, -0.310547f, 0.17041f, -0.272705f); + path->quadTo(0.13916f, -0.234863f, 0.13916f, -0.181152f); + path->close(); + path->moveTo(0.274902f, -0.650879f); + path->quadTo(0.223145f, -0.650879f, 0.192627f, -0.625f); + path->quadTo(0.162109f, -0.599121f, 0.162109f, -0.549805f); + path->quadTo(0.162109f, -0.521973f, 0.170654f, -0.501953f); + path->quadTo(0.179199f, -0.481934f, 0.194336f, -0.466309f); + path->quadTo(0.209473f, -0.450684f, 0.230713f, -0.438232f); + path->quadTo(0.251953f, -0.425781f, 0.276855f, -0.414063f); + path->quadTo(0.300293f, -0.424805f, 0.321045f, -0.4375f); + path->quadTo(0.341797f, -0.450195f, 0.357178f, -0.466309f); + path->quadTo(0.372559f, -0.482422f, 0.381348f, -0.50293f); + path->quadTo(0.390137f, -0.523438f, 0.390137f, -0.549805f); + path->quadTo(0.390137f, -0.599121f, 0.359375f, -0.625f); + path->quadTo(0.328613f, -0.650879f, 0.274902f, -0.650879f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // 9 + *pathArray.append() = path; + path->moveTo(0.501953f, -0.40918f); + path->quadTo(0.501953f, -0.35791f, 0.496826f, -0.306885f); + path->quadTo(0.491699f, -0.255859f, 0.47876f, -0.209473f); + path->quadTo(0.46582f, -0.163086f, 0.443359f, -0.122803f); + path->quadTo(0.420898f, -0.0825195f, 0.38623f, -0.0532227f); + path->quadTo(0.351563f, -0.0239258f, 0.303223f, -0.00708008f); + path->quadTo(0.254883f, 0.00976563f, 0.189941f, 0.00976563f); + path->quadTo(0.180664f, 0.00976563f, 0.169434f, 0.00927734f); + path->quadTo(0.158203f, 0.00878906f, 0.146973f, 0.00756836f); + path->quadTo(0.135742f, 0.00634766f, 0.125f, 0.00488281f); + path->quadTo(0.114258f, 0.00341797f, 0.105957f, 0.000976563f); + path->lineTo(0.105957f, -0.0751953f); + path->quadTo(0.123047f, -0.0688477f, 0.144531f, -0.065918f); + path->quadTo(0.166016f, -0.0629883f, 0.187012f, -0.0629883f); + path->quadTo(0.25293f, -0.0629883f, 0.29541f, -0.0859375f); + path->quadTo(0.337891f, -0.108887f, 0.362793f, -0.148193f); + path->quadTo(0.387695f, -0.1875f, 0.398193f, -0.239746f); + path->quadTo(0.408691f, -0.291992f, 0.411133f, -0.350098f); + path->lineTo(0.404785f, -0.350098f); + path->quadTo(0.39502f, -0.33252f, 0.381348f, -0.317383f); + path->quadTo(0.367676f, -0.302246f, 0.349121f, -0.291016f); + path->quadTo(0.330566f, -0.279785f, 0.307129f, -0.273438f); + path->quadTo(0.283691f, -0.26709f, 0.254883f, -0.26709f); + path->quadTo(0.208496f, -0.26709f, 0.170898f, -0.281494f); + path->quadTo(0.133301f, -0.295898f, 0.106934f, -0.32373f); + path->quadTo(0.0805664f, -0.351563f, 0.0661621f, -0.391846f); + path->quadTo(0.0517578f, -0.432129f, 0.0517578f, -0.483887f); + path->quadTo(0.0517578f, -0.539551f, 0.0671387f, -0.584229f); + path->quadTo(0.0825195f, -0.628906f, 0.110596f, -0.659912f); + path->quadTo(0.138672f, -0.690918f, 0.178955f, -0.70752f); + path->quadTo(0.219238f, -0.724121f, 0.269043f, -0.724121f); + path->quadTo(0.318359f, -0.724121f, 0.36084f, -0.705078f); + path->quadTo(0.40332f, -0.686035f, 0.43457f, -0.646973f); + path->quadTo(0.46582f, -0.60791f, 0.483887f, -0.548584f); + path->quadTo(0.501953f, -0.489258f, 0.501953f, -0.40918f); + path->close(); + path->moveTo(0.27002f, -0.648926f); + path->quadTo(0.240723f, -0.648926f, 0.216553f, -0.63916f); + path->quadTo(0.192383f, -0.629395f, 0.174805f, -0.608887f); + path->quadTo(0.157227f, -0.588379f, 0.147705f, -0.557373f); + path->quadTo(0.138184f, -0.526367f, 0.138184f, -0.483887f); + path->quadTo(0.138184f, -0.449707f, 0.14624f, -0.422607f); + path->quadTo(0.154297f, -0.395508f, 0.17041f, -0.376465f); + path->quadTo(0.186523f, -0.357422f, 0.210693f, -0.347168f); + path->quadTo(0.234863f, -0.336914f, 0.26709f, -0.336914f); + path->quadTo(0.300293f, -0.336914f, 0.327148f, -0.348389f); + path->quadTo(0.354004f, -0.359863f, 0.373047f, -0.378174f); + path->quadTo(0.39209f, -0.396484f, 0.402588f, -0.419922f); + path->quadTo(0.413086f, -0.443359f, 0.413086f, -0.466797f); + path->quadTo(0.413086f, -0.499512f, 0.404053f, -0.531982f); + path->quadTo(0.39502f, -0.564453f, 0.377197f, -0.590576f); + path->quadTo(0.359375f, -0.616699f, 0.33252f, -0.632813f); + path->quadTo(0.305664f, -0.648926f, 0.27002f, -0.648926f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // : + *pathArray.append() = path; + path->moveTo(0.0717773f, -0.0541992f); + path->quadTo(0.0717773f, -0.0727539f, 0.0766602f, -0.0856934f); + path->quadTo(0.081543f, -0.0986328f, 0.0898438f, -0.106689f); + path->quadTo(0.0981445f, -0.114746f, 0.109375f, -0.118408f); + path->quadTo(0.120605f, -0.12207f, 0.133789f, -0.12207f); + path->quadTo(0.146484f, -0.12207f, 0.157959f, -0.118408f); + path->quadTo(0.169434f, -0.114746f, 0.177734f, -0.106689f); + path->quadTo(0.186035f, -0.0986328f, 0.190918f, -0.0856934f); + path->quadTo(0.195801f, -0.0727539f, 0.195801f, -0.0541992f); + path->quadTo(0.195801f, -0.0361328f, 0.190918f, -0.0231934f); + path->quadTo(0.186035f, -0.0102539f, 0.177734f, -0.00195313f); + path->quadTo(0.169434f, 0.00634766f, 0.157959f, 0.0102539f); + path->quadTo(0.146484f, 0.0141602f, 0.133789f, 0.0141602f); + path->quadTo(0.120605f, 0.0141602f, 0.109375f, 0.0102539f); + path->quadTo(0.0981445f, 0.00634766f, 0.0898438f, -0.00195313f); + path->quadTo(0.081543f, -0.0102539f, 0.0766602f, -0.0231934f); + path->quadTo(0.0717773f, -0.0361328f, 0.0717773f, -0.0541992f); + path->close(); + path->moveTo(0.0717773f, -0.481934f); + path->quadTo(0.0717773f, -0.500977f, 0.0766602f, -0.513916f); + path->quadTo(0.081543f, -0.526855f, 0.0898438f, -0.534912f); + path->quadTo(0.0981445f, -0.542969f, 0.109375f, -0.546387f); + path->quadTo(0.120605f, -0.549805f, 0.133789f, -0.549805f); + path->quadTo(0.146484f, -0.549805f, 0.157959f, -0.546387f); + path->quadTo(0.169434f, -0.542969f, 0.177734f, -0.534912f); + path->quadTo(0.186035f, -0.526855f, 0.190918f, -0.513916f); + path->quadTo(0.195801f, -0.500977f, 0.195801f, -0.481934f); + path->quadTo(0.195801f, -0.463867f, 0.190918f, -0.451172f); + path->quadTo(0.186035f, -0.438477f, 0.177734f, -0.430176f); + path->quadTo(0.169434f, -0.421875f, 0.157959f, -0.417969f); + path->quadTo(0.146484f, -0.414063f, 0.133789f, -0.414063f); + path->quadTo(0.120605f, -0.414063f, 0.109375f, -0.417969f); + path->quadTo(0.0981445f, -0.421875f, 0.0898438f, -0.430176f); + path->quadTo(0.081543f, -0.438477f, 0.0766602f, -0.451172f); + path->quadTo(0.0717773f, -0.463867f, 0.0717773f, -0.481934f); + path->close(); + *widthArray.append() = 0x000044a0; + + path = SkNEW(SkPath); // ; + *pathArray.append() = path; + path->moveTo(0.176758f, -0.116211f); + path->lineTo(0.184082f, -0.10498f); + path->quadTo(0.177246f, -0.0786133f, 0.167725f, -0.0488281f); + path->quadTo(0.158203f, -0.019043f, 0.146729f, 0.0112305f); + path->quadTo(0.135254f, 0.0415039f, 0.122803f, 0.0715332f); + path->quadTo(0.110352f, 0.101563f, 0.0981445f, 0.128906f); + path->lineTo(0.0307617f, 0.128906f); + path->quadTo(0.0380859f, 0.0991211f, 0.045166f, 0.0668945f); + path->quadTo(0.0522461f, 0.034668f, 0.0588379f, 0.00268555f); + path->quadTo(0.0654297f, -0.0292969f, 0.0708008f, -0.0598145f); + path->quadTo(0.0761719f, -0.090332f, 0.0800781f, -0.116211f); + path->close(); + path->moveTo(0.0717773f, -0.481934f); + path->quadTo(0.0717773f, -0.500977f, 0.0766602f, -0.513916f); + path->quadTo(0.081543f, -0.526855f, 0.0898438f, -0.534912f); + path->quadTo(0.0981445f, -0.542969f, 0.109375f, -0.546387f); + path->quadTo(0.120605f, -0.549805f, 0.133789f, -0.549805f); + path->quadTo(0.146484f, -0.549805f, 0.157959f, -0.546387f); + path->quadTo(0.169434f, -0.542969f, 0.177734f, -0.534912f); + path->quadTo(0.186035f, -0.526855f, 0.190918f, -0.513916f); + path->quadTo(0.195801f, -0.500977f, 0.195801f, -0.481934f); + path->quadTo(0.195801f, -0.463867f, 0.190918f, -0.451172f); + path->quadTo(0.186035f, -0.438477f, 0.177734f, -0.430176f); + path->quadTo(0.169434f, -0.421875f, 0.157959f, -0.417969f); + path->quadTo(0.146484f, -0.414063f, 0.133789f, -0.414063f); + path->quadTo(0.120605f, -0.414063f, 0.109375f, -0.417969f); + path->quadTo(0.0981445f, -0.421875f, 0.0898438f, -0.430176f); + path->quadTo(0.081543f, -0.438477f, 0.0766602f, -0.451172f); + path->quadTo(0.0717773f, -0.463867f, 0.0717773f, -0.481934f); + path->close(); + *widthArray.append() = 0x000044a0; + + path = SkNEW(SkPath); // < + *pathArray.append() = path; + path->moveTo(0.500977f, -0.116211f); + path->lineTo(0.0498047f, -0.323242f); + path->lineTo(0.0498047f, -0.373047f); + path->lineTo(0.500977f, -0.60791f); + path->lineTo(0.500977f, -0.529785f); + path->lineTo(0.14209f, -0.352051f); + path->lineTo(0.500977f, -0.194824f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // = + *pathArray.append() = path; + path->moveTo(0.0498047f, -0.416016f); + path->lineTo(0.0498047f, -0.48877f); + path->lineTo(0.500977f, -0.48877f); + path->lineTo(0.500977f, -0.416016f); + path->close(); + path->moveTo(0.0498047f, -0.21582f); + path->lineTo(0.0498047f, -0.289063f); + path->lineTo(0.500977f, -0.289063f); + path->lineTo(0.500977f, -0.21582f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // > + *pathArray.append() = path; + path->moveTo(0.0498047f, -0.194824f); + path->lineTo(0.40918f, -0.352051f); + path->lineTo(0.0498047f, -0.529785f); + path->lineTo(0.0498047f, -0.60791f); + path->lineTo(0.500977f, -0.373047f); + path->lineTo(0.500977f, -0.323242f); + path->lineTo(0.0498047f, -0.116211f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // ? + *pathArray.append() = path; + path->moveTo(0.137207f, -0.202148f); + path->lineTo(0.137207f, -0.220215f); + path->quadTo(0.137207f, -0.248047f, 0.140869f, -0.270508f); + path->quadTo(0.144531f, -0.292969f, 0.154053f, -0.3125f); + path->quadTo(0.163574f, -0.332031f, 0.179688f, -0.35083f); + path->quadTo(0.195801f, -0.369629f, 0.220215f, -0.390137f); + path->quadTo(0.243652f, -0.410156f, 0.260254f, -0.426514f); + path->quadTo(0.276855f, -0.442871f, 0.287354f, -0.459717f); + path->quadTo(0.297852f, -0.476563f, 0.302979f, -0.49585f); + path->quadTo(0.308105f, -0.515137f, 0.308105f, -0.541016f); + path->quadTo(0.308105f, -0.564453f, 0.300781f, -0.58374f); + path->quadTo(0.293457f, -0.603027f, 0.279541f, -0.616943f); + path->quadTo(0.265625f, -0.630859f, 0.244873f, -0.638428f); + path->quadTo(0.224121f, -0.645996f, 0.196777f, -0.645996f); + path->quadTo(0.15625f, -0.645996f, 0.119629f, -0.633301f); + path->quadTo(0.0830078f, -0.620605f, 0.0488281f, -0.604004f); + path->lineTo(0.0180664f, -0.674805f); + path->quadTo(0.0576172f, -0.695313f, 0.103516f, -0.709717f); + path->quadTo(0.149414f, -0.724121f, 0.196777f, -0.724121f); + path->quadTo(0.242188f, -0.724121f, 0.278564f, -0.71167f); + path->quadTo(0.314941f, -0.699219f, 0.340332f, -0.675781f); + path->quadTo(0.365723f, -0.652344f, 0.379395f, -0.618408f); + path->quadTo(0.393066f, -0.584473f, 0.393066f, -0.541992f); + path->quadTo(0.393066f, -0.509277f, 0.386475f, -0.483643f); + path->quadTo(0.379883f, -0.458008f, 0.366699f, -0.436035f); + path->quadTo(0.353516f, -0.414063f, 0.333984f, -0.393555f); + path->quadTo(0.314453f, -0.373047f, 0.288086f, -0.350098f); + path->quadTo(0.262695f, -0.328125f, 0.246582f, -0.311768f); + path->quadTo(0.230469f, -0.29541f, 0.221191f, -0.280029f); + path->quadTo(0.211914f, -0.264648f, 0.208496f, -0.248535f); + path->quadTo(0.205078f, -0.232422f, 0.205078f, -0.210938f); + path->lineTo(0.205078f, -0.202148f); + path->close(); + path->moveTo(0.11377f, -0.0541992f); + path->quadTo(0.11377f, -0.0727539f, 0.118652f, -0.0856934f); + path->quadTo(0.123535f, -0.0986328f, 0.131836f, -0.106689f); + path->quadTo(0.140137f, -0.114746f, 0.151367f, -0.118408f); + path->quadTo(0.162598f, -0.12207f, 0.175781f, -0.12207f); + path->quadTo(0.188477f, -0.12207f, 0.199951f, -0.118408f); + path->quadTo(0.211426f, -0.114746f, 0.219727f, -0.106689f); + path->quadTo(0.228027f, -0.0986328f, 0.23291f, -0.0856934f); + path->quadTo(0.237793f, -0.0727539f, 0.237793f, -0.0541992f); + path->quadTo(0.237793f, -0.0361328f, 0.23291f, -0.0231934f); + path->quadTo(0.228027f, -0.0102539f, 0.219727f, -0.00195313f); + path->quadTo(0.211426f, 0.00634766f, 0.199951f, 0.0102539f); + path->quadTo(0.188477f, 0.0141602f, 0.175781f, 0.0141602f); + path->quadTo(0.162598f, 0.0141602f, 0.151367f, 0.0102539f); + path->quadTo(0.140137f, 0.00634766f, 0.131836f, -0.00195313f); + path->quadTo(0.123535f, -0.0102539f, 0.118652f, -0.0231934f); + path->quadTo(0.11377f, -0.0361328f, 0.11377f, -0.0541992f); + path->close(); + *widthArray.append() = 0x00006d00; + + path = SkNEW(SkPath); // @ + *pathArray.append() = path; + path->moveTo(0.812988f, -0.356934f); + path->quadTo(0.812988f, -0.32666f, 0.80835f, -0.296143f); + path->quadTo(0.803711f, -0.265625f, 0.794678f, -0.238037f); + path->quadTo(0.785645f, -0.210449f, 0.771729f, -0.186768f); + path->quadTo(0.757813f, -0.163086f, 0.739258f, -0.145508f); + path->quadTo(0.720703f, -0.12793f, 0.697021f, -0.11792f); + path->quadTo(0.67334f, -0.10791f, 0.64502f, -0.10791f); + path->quadTo(0.623047f, -0.10791f, 0.605225f, -0.115234f); + path->quadTo(0.587402f, -0.122559f, 0.574707f, -0.134766f); + path->quadTo(0.562012f, -0.146973f, 0.553955f, -0.162842f); + path->quadTo(0.545898f, -0.178711f, 0.542969f, -0.195801f); + path->lineTo(0.541016f, -0.195801f); + path->quadTo(0.532227f, -0.177734f, 0.519043f, -0.161621f); + path->quadTo(0.505859f, -0.145508f, 0.488525f, -0.133545f); + path->quadTo(0.471191f, -0.121582f, 0.449463f, -0.114746f); + path->quadTo(0.427734f, -0.10791f, 0.401855f, -0.10791f); + path->quadTo(0.364258f, -0.10791f, 0.335205f, -0.121582f); + path->quadTo(0.306152f, -0.135254f, 0.286133f, -0.159912f); + path->quadTo(0.266113f, -0.18457f, 0.255615f, -0.219238f); + path->quadTo(0.245117f, -0.253906f, 0.245117f, -0.295898f); + path->quadTo(0.245117f, -0.345215f, 0.259521f, -0.38623f); + path->quadTo(0.273926f, -0.427246f, 0.301025f, -0.457031f); + path->quadTo(0.328125f, -0.486816f, 0.366699f, -0.503418f); + path->quadTo(0.405273f, -0.52002f, 0.453125f, -0.52002f); + path->quadTo(0.475098f, -0.52002f, 0.49707f, -0.518066f); + path->quadTo(0.519043f, -0.516113f, 0.539063f, -0.512695f); + path->quadTo(0.559082f, -0.509277f, 0.575928f, -0.505127f); + path->quadTo(0.592773f, -0.500977f, 0.604004f, -0.49707f); + path->lineTo(0.592773f, -0.293945f); + path->quadTo(0.592285f, -0.283203f, 0.592041f, -0.276611f); + path->quadTo(0.591797f, -0.27002f, 0.591797f, -0.266113f); + path->quadTo(0.591797f, -0.262207f, 0.591797f, -0.260254f); + path->quadTo(0.591797f, -0.258301f, 0.591797f, -0.256836f); + path->quadTo(0.591797f, -0.230957f, 0.596924f, -0.214355f); + path->quadTo(0.602051f, -0.197754f, 0.610352f, -0.187988f); + path->quadTo(0.618652f, -0.178223f, 0.62915f, -0.174561f); + path->quadTo(0.639648f, -0.170898f, 0.650879f, -0.170898f); + path->quadTo(0.67334f, -0.170898f, 0.69043f, -0.185791f); + path->quadTo(0.70752f, -0.200684f, 0.718994f, -0.226074f); + path->quadTo(0.730469f, -0.251465f, 0.736328f, -0.285645f); + path->quadTo(0.742188f, -0.319824f, 0.742188f, -0.35791f); + path->quadTo(0.742188f, -0.427246f, 0.721191f, -0.481201f); + path->quadTo(0.700195f, -0.535156f, 0.663086f, -0.572266f); + path->quadTo(0.625977f, -0.609375f, 0.574951f, -0.628662f); + path->quadTo(0.523926f, -0.647949f, 0.463867f, -0.647949f); + path->quadTo(0.381348f, -0.647949f, 0.318359f, -0.62085f); + path->quadTo(0.255371f, -0.59375f, 0.212646f, -0.545166f); + path->quadTo(0.169922f, -0.496582f, 0.147949f, -0.429932f); + path->quadTo(0.125977f, -0.363281f, 0.125977f, -0.28418f); + path->quadTo(0.125977f, -0.210449f, 0.145264f, -0.15332f); + path->quadTo(0.164551f, -0.0961914f, 0.201904f, -0.0571289f); + path->quadTo(0.239258f, -0.0180664f, 0.294678f, 0.00195313f); + path->quadTo(0.350098f, 0.0219727f, 0.421875f, 0.0219727f); + path->quadTo(0.45166f, 0.0219727f, 0.480713f, 0.0185547f); + path->quadTo(0.509766f, 0.0151367f, 0.536865f, 0.00927734f); + path->quadTo(0.563965f, 0.00341797f, 0.588379f, -0.00415039f); + path->quadTo(0.612793f, -0.0117188f, 0.633789f, -0.0200195f); + path->lineTo(0.633789f, 0.0488281f); + path->quadTo(0.591797f, 0.0673828f, 0.539063f, 0.078125f); + path->quadTo(0.486328f, 0.0888672f, 0.422852f, 0.0888672f); + path->quadTo(0.335449f, 0.0888672f, 0.266846f, 0.0639648f); + path->quadTo(0.198242f, 0.0390625f, 0.150635f, -0.00854492f); + path->quadTo(0.103027f, -0.0561523f, 0.078125f, -0.124756f); + path->quadTo(0.0532227f, -0.193359f, 0.0532227f, -0.280762f); + path->quadTo(0.0532227f, -0.372559f, 0.0820313f, -0.451904f); + path->quadTo(0.11084f, -0.53125f, 0.164307f, -0.589355f); + path->quadTo(0.217773f, -0.647461f, 0.293701f, -0.680664f); + path->quadTo(0.369629f, -0.713867f, 0.463867f, -0.713867f); + path->quadTo(0.540039f, -0.713867f, 0.604004f, -0.689209f); + path->quadTo(0.667969f, -0.664551f, 0.7146f, -0.618408f); + path->quadTo(0.76123f, -0.572266f, 0.787109f, -0.506104f); + path->quadTo(0.812988f, -0.439941f, 0.812988f, -0.356934f); + path->close(); + path->moveTo(0.323242f, -0.293945f); + path->quadTo(0.323242f, -0.229004f, 0.3479f, -0.199951f); + path->quadTo(0.372559f, -0.170898f, 0.414063f, -0.170898f); + path->quadTo(0.440918f, -0.170898f, 0.459961f, -0.181885f); + path->quadTo(0.479004f, -0.192871f, 0.491211f, -0.213135f); + path->quadTo(0.503418f, -0.233398f, 0.509766f, -0.261475f); + path->quadTo(0.516113f, -0.289551f, 0.518066f, -0.323242f); + path->lineTo(0.524902f, -0.446777f); + path->quadTo(0.51123f, -0.450684f, 0.492432f, -0.453857f); + path->quadTo(0.473633f, -0.457031f, 0.453125f, -0.457031f); + path->quadTo(0.416992f, -0.457031f, 0.392334f, -0.442871f); + path->quadTo(0.367676f, -0.428711f, 0.352295f, -0.405762f); + path->quadTo(0.336914f, -0.382813f, 0.330078f, -0.353516f); + path->quadTo(0.323242f, -0.324219f, 0.323242f, -0.293945f); + path->close(); + *widthArray.append() = 0x0000ddc0; + + path = SkNEW(SkPath); // A + *pathArray.append() = path; + path->moveTo(0.515137f, 0); + path->lineTo(0.437012f, -0.221191f); + path->lineTo(0.170898f, -0.221191f); + path->lineTo(0.0917969f, 0); + path->lineTo(0, 0); + path->lineTo(0.262207f, -0.716797f); + path->lineTo(0.345215f, -0.716797f); + path->lineTo(0.60791f, 0); + path->close(); + path->moveTo(0.408203f, -0.301758f); + path->lineTo(0.335938f, -0.508789f); + path->quadTo(0.333008f, -0.517578f, 0.328857f, -0.530273f); + path->quadTo(0.324707f, -0.542969f, 0.320313f, -0.557617f); + path->quadTo(0.315918f, -0.572266f, 0.311523f, -0.588135f); + path->quadTo(0.307129f, -0.604004f, 0.303223f, -0.619141f); + path->quadTo(0.299805f, -0.604004f, 0.29541f, -0.587891f); + path->quadTo(0.291016f, -0.571777f, 0.286621f, -0.556885f); + path->quadTo(0.282227f, -0.541992f, 0.278076f, -0.529541f); + path->quadTo(0.273926f, -0.51709f, 0.270996f, -0.508789f); + path->lineTo(0.200195f, -0.301758f); + path->close(); + *widthArray.append() = 0x00009ba0; + + path = SkNEW(SkPath); // B + *pathArray.append() = path; + path->moveTo(0.097168f, -0.713867f); + path->lineTo(0.291992f, -0.713867f); + path->quadTo(0.354492f, -0.713867f, 0.4021f, -0.704346f); + path->quadTo(0.449707f, -0.694824f, 0.481689f, -0.673584f); + path->quadTo(0.513672f, -0.652344f, 0.529785f, -0.61792f); + path->quadTo(0.545898f, -0.583496f, 0.545898f, -0.533203f); + path->quadTo(0.545898f, -0.50293f, 0.536377f, -0.476563f); + path->quadTo(0.526855f, -0.450195f, 0.508789f, -0.430176f); + path->quadTo(0.490723f, -0.410156f, 0.464111f, -0.396729f); + path->quadTo(0.4375f, -0.383301f, 0.403809f, -0.378906f); + path->lineTo(0.403809f, -0.374023f); + path->quadTo(0.4375f, -0.368164f, 0.467041f, -0.357178f); + path->quadTo(0.496582f, -0.346191f, 0.518555f, -0.326904f); + path->quadTo(0.540527f, -0.307617f, 0.553223f, -0.27832f); + path->quadTo(0.565918f, -0.249023f, 0.565918f, -0.207031f); + path->quadTo(0.565918f, -0.158203f, 0.550049f, -0.119873f); + path->quadTo(0.53418f, -0.081543f, 0.50415f, -0.0549316f); + path->quadTo(0.474121f, -0.0283203f, 0.431152f, -0.0141602f); + path->quadTo(0.388184f, 0, 0.333984f, 0); + path->lineTo(0.097168f, 0); + path->close(); + path->moveTo(0.187988f, -0.411133f); + path->lineTo(0.307129f, -0.411133f); + path->quadTo(0.348145f, -0.411133f, 0.375977f, -0.418457f); + path->quadTo(0.403809f, -0.425781f, 0.420898f, -0.440186f); + path->quadTo(0.437988f, -0.45459f, 0.445557f, -0.476318f); + path->quadTo(0.453125f, -0.498047f, 0.453125f, -0.526855f); + path->quadTo(0.453125f, -0.585449f, 0.415527f, -0.61084f); + path->quadTo(0.37793f, -0.63623f, 0.296875f, -0.63623f); + path->lineTo(0.187988f, -0.63623f); + path->close(); + path->moveTo(0.187988f, -0.334961f); + path->lineTo(0.187988f, -0.0771484f); + path->lineTo(0.317871f, -0.0771484f); + path->quadTo(0.36084f, -0.0771484f, 0.389893f, -0.0869141f); + path->quadTo(0.418945f, -0.0966797f, 0.436768f, -0.114258f); + path->quadTo(0.45459f, -0.131836f, 0.462402f, -0.156494f); + path->quadTo(0.470215f, -0.181152f, 0.470215f, -0.210938f); + path->quadTo(0.470215f, -0.238281f, 0.462158f, -0.26123f); + path->quadTo(0.454102f, -0.28418f, 0.435791f, -0.300537f); + path->quadTo(0.41748f, -0.316895f, 0.387207f, -0.325928f); + path->quadTo(0.356934f, -0.334961f, 0.312012f, -0.334961f); + path->close(); + *widthArray.append() = 0x00009f00; + + path = SkNEW(SkPath); // C + *pathArray.append() = path; + path->moveTo(0.387207f, -0.644043f); + path->quadTo(0.334961f, -0.644043f, 0.29248f, -0.624268f); + path->quadTo(0.25f, -0.604492f, 0.219971f, -0.567383f); + path->quadTo(0.189941f, -0.530273f, 0.173584f, -0.477051f); + path->quadTo(0.157227f, -0.423828f, 0.157227f, -0.356934f); + path->quadTo(0.157227f, -0.288086f, 0.171631f, -0.234619f); + path->quadTo(0.186035f, -0.181152f, 0.214844f, -0.144531f); + path->quadTo(0.243652f, -0.10791f, 0.286621f, -0.0888672f); + path->quadTo(0.32959f, -0.0698242f, 0.387207f, -0.0698242f); + path->quadTo(0.430664f, -0.0698242f, 0.469727f, -0.0783691f); + path->quadTo(0.508789f, -0.0869141f, 0.546875f, -0.0981445f); + path->lineTo(0.546875f, -0.019043f); + path->quadTo(0.527832f, -0.0117188f, 0.508789f, -0.00610352f); + path->quadTo(0.489746f, -0.000488281f, 0.468994f, 0.00292969f); + path->quadTo(0.448242f, 0.00634766f, 0.424561f, 0.00805664f); + path->quadTo(0.400879f, 0.00976563f, 0.37207f, 0.00976563f); + path->quadTo(0.291992f, 0.00976563f, 0.233398f, -0.0166016f); + path->quadTo(0.174805f, -0.0429688f, 0.136475f, -0.0913086f); + path->quadTo(0.0981445f, -0.139648f, 0.0795898f, -0.20752f); + path->quadTo(0.0610352f, -0.275391f, 0.0610352f, -0.35791f); + path->quadTo(0.0610352f, -0.438965f, 0.0822754f, -0.506348f); + path->quadTo(0.103516f, -0.57373f, 0.144775f, -0.62207f); + path->quadTo(0.186035f, -0.67041f, 0.24707f, -0.697266f); + path->quadTo(0.308105f, -0.724121f, 0.387207f, -0.724121f); + path->quadTo(0.439941f, -0.724121f, 0.487793f, -0.713379f); + path->quadTo(0.535645f, -0.702637f, 0.574219f, -0.682129f); + path->lineTo(0.536133f, -0.605957f); + path->quadTo(0.505371f, -0.621582f, 0.469238f, -0.632813f); + path->quadTo(0.433105f, -0.644043f, 0.387207f, -0.644043f); + path->close(); + *widthArray.append() = 0x00009a60; + + path = SkNEW(SkPath); // D + *pathArray.append() = path; + path->moveTo(0.623047f, -0.36377f); + path->quadTo(0.623047f, -0.273438f, 0.599609f, -0.205322f); + path->quadTo(0.576172f, -0.137207f, 0.531738f, -0.0915527f); + path->quadTo(0.487305f, -0.0458984f, 0.422607f, -0.0229492f); + path->quadTo(0.35791f, 0, 0.275879f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.295898f, -0.713867f); + path->quadTo(0.370605f, -0.713867f, 0.431152f, -0.691406f); + path->quadTo(0.491699f, -0.668945f, 0.53418f, -0.624756f); + path->quadTo(0.57666f, -0.580566f, 0.599854f, -0.515137f); + path->quadTo(0.623047f, -0.449707f, 0.623047f, -0.36377f); + path->close(); + path->moveTo(0.526855f, -0.36084f); + path->quadTo(0.526855f, -0.432129f, 0.510742f, -0.484131f); + path->quadTo(0.494629f, -0.536133f, 0.463867f, -0.569824f); + path->quadTo(0.433105f, -0.603516f, 0.388184f, -0.619873f); + path->quadTo(0.343262f, -0.63623f, 0.286133f, -0.63623f); + path->lineTo(0.187988f, -0.63623f); + path->lineTo(0.187988f, -0.078125f); + path->lineTo(0.26709f, -0.078125f); + path->quadTo(0.395996f, -0.078125f, 0.461426f, -0.149414f); + path->quadTo(0.526855f, -0.220703f, 0.526855f, -0.36084f); + path->close(); + *widthArray.append() = 0x0000af20; + + path = SkNEW(SkPath); // E + *pathArray.append() = path; + path->moveTo(0.467773f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.467773f, -0.713867f); + path->lineTo(0.467773f, -0.633789f); + path->lineTo(0.187988f, -0.633789f); + path->lineTo(0.187988f, -0.413086f); + path->lineTo(0.449219f, -0.413086f); + path->lineTo(0.449219f, -0.333984f); + path->lineTo(0.187988f, -0.333984f); + path->lineTo(0.187988f, -0.0800781f); + path->lineTo(0.467773f, -0.0800781f); + path->close(); + *widthArray.append() = 0x00008720; + + path = SkNEW(SkPath); // F + *pathArray.append() = path; + path->moveTo(0.187988f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.467773f, -0.713867f); + path->lineTo(0.467773f, -0.633789f); + path->lineTo(0.187988f, -0.633789f); + path->lineTo(0.187988f, -0.381836f); + path->lineTo(0.449219f, -0.381836f); + path->lineTo(0.449219f, -0.301758f); + path->lineTo(0.187988f, -0.301758f); + path->close(); + *widthArray.append() = 0x00007dc0; + + path = SkNEW(SkPath); // G + *pathArray.append() = path; + path->moveTo(0.381836f, -0.376953f); + path->lineTo(0.618164f, -0.376953f); + path->lineTo(0.618164f, -0.0268555f); + path->quadTo(0.591309f, -0.0180664f, 0.563965f, -0.0112305f); + path->quadTo(0.536621f, -0.00439453f, 0.507813f, 0.000244141f); + path->quadTo(0.479004f, 0.00488281f, 0.447266f, 0.00732422f); + path->quadTo(0.415527f, 0.00976563f, 0.378906f, 0.00976563f); + path->quadTo(0.302246f, 0.00976563f, 0.243164f, -0.0158691f); + path->quadTo(0.184082f, -0.0415039f, 0.143555f, -0.0891113f); + path->quadTo(0.103027f, -0.136719f, 0.0820313f, -0.204834f); + path->quadTo(0.0610352f, -0.272949f, 0.0610352f, -0.35791f); + path->quadTo(0.0610352f, -0.441895f, 0.0842285f, -0.509766f); + path->quadTo(0.107422f, -0.577637f, 0.151855f, -0.625244f); + path->quadTo(0.196289f, -0.672852f, 0.261475f, -0.698486f); + path->quadTo(0.32666f, -0.724121f, 0.410156f, -0.724121f); + path->quadTo(0.464355f, -0.724121f, 0.51416f, -0.713379f); + path->quadTo(0.563965f, -0.702637f, 0.606934f, -0.682129f); + path->lineTo(0.571777f, -0.603027f); + path->quadTo(0.554199f, -0.611328f, 0.533936f, -0.618652f); + path->quadTo(0.513672f, -0.625977f, 0.492188f, -0.631592f); + path->quadTo(0.470703f, -0.637207f, 0.447998f, -0.640625f); + path->quadTo(0.425293f, -0.644043f, 0.402832f, -0.644043f); + path->quadTo(0.343262f, -0.644043f, 0.297363f, -0.624268f); + path->quadTo(0.251465f, -0.604492f, 0.220459f, -0.567383f); + path->quadTo(0.189453f, -0.530273f, 0.17334f, -0.477051f); + path->quadTo(0.157227f, -0.423828f, 0.157227f, -0.356934f); + path->quadTo(0.157227f, -0.293457f, 0.170654f, -0.240723f); + path->quadTo(0.184082f, -0.187988f, 0.213379f, -0.149902f); + path->quadTo(0.242676f, -0.111816f, 0.289063f, -0.0908203f); + path->quadTo(0.335449f, -0.0698242f, 0.400879f, -0.0698242f); + path->quadTo(0.422363f, -0.0698242f, 0.440186f, -0.0710449f); + path->quadTo(0.458008f, -0.0722656f, 0.473145f, -0.0742188f); + path->quadTo(0.488281f, -0.0761719f, 0.501709f, -0.0788574f); + path->quadTo(0.515137f, -0.081543f, 0.527832f, -0.0839844f); + path->lineTo(0.527832f, -0.296875f); + path->lineTo(0.381836f, -0.296875f); + path->close(); + *widthArray.append() = 0x0000b0a0; + + path = SkNEW(SkPath); // H + *pathArray.append() = path; + path->moveTo(0.604004f, 0); + path->lineTo(0.513184f, 0); + path->lineTo(0.513184f, -0.333008f); + path->lineTo(0.187988f, -0.333008f); + path->lineTo(0.187988f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.187988f, -0.713867f); + path->lineTo(0.187988f, -0.413086f); + path->lineTo(0.513184f, -0.413086f); + path->lineTo(0.513184f, -0.713867f); + path->lineTo(0.604004f, -0.713867f); + path->close(); + *widthArray.append() = 0x0000b380; + + path = SkNEW(SkPath); // I + *pathArray.append() = path; + path->moveTo(0.298828f, 0); + path->lineTo(0.0400391f, 0); + path->lineTo(0.0400391f, -0.0498047f); + path->lineTo(0.124023f, -0.0698242f); + path->lineTo(0.124023f, -0.644043f); + path->lineTo(0.0400391f, -0.664063f); + path->lineTo(0.0400391f, -0.713867f); + path->lineTo(0.298828f, -0.713867f); + path->lineTo(0.298828f, -0.664063f); + path->lineTo(0.214844f, -0.644043f); + path->lineTo(0.214844f, -0.0698242f); + path->lineTo(0.298828f, -0.0498047f); + path->close(); + *widthArray.append() = 0x000056c0; + + path = SkNEW(SkPath); // J + *pathArray.append() = path; + path->moveTo(-0.0141602f, 0.189941f); + path->quadTo(-0.0390625f, 0.189941f, -0.0576172f, 0.186768f); + path->quadTo(-0.0761719f, 0.183594f, -0.0898438f, 0.178223f); + path->lineTo(-0.0898438f, 0.100098f); + path->quadTo(-0.0732422f, 0.104492f, -0.0541992f, 0.107178f); + path->quadTo(-0.0351563f, 0.109863f, -0.0131836f, 0.109863f); + path->quadTo(0.00488281f, 0.109863f, 0.0231934f, 0.105225f); + path->quadTo(0.0415039f, 0.100586f, 0.0563965f, 0.0883789f); + path->quadTo(0.0712891f, 0.0761719f, 0.0805664f, 0.0546875f); + path->quadTo(0.0898438f, 0.0332031f, 0.0898438f, 0); + path->lineTo(0.0898438f, -0.713867f); + path->lineTo(0.181152f, -0.713867f); + path->lineTo(0.181152f, -0.00976563f); + path->quadTo(0.181152f, 0.0415039f, 0.166748f, 0.0791016f); + path->quadTo(0.152344f, 0.116699f, 0.126709f, 0.141357f); + path->quadTo(0.101074f, 0.166016f, 0.0651855f, 0.177979f); + path->quadTo(0.0292969f, 0.189941f, -0.0141602f, 0.189941f); + path->close(); + *widthArray.append() = 0x00004560; + + path = SkNEW(SkPath); // K + *pathArray.append() = path; + path->moveTo(0.579102f, 0); + path->lineTo(0.476074f, 0); + path->lineTo(0.255859f, -0.34082f); + path->lineTo(0.187988f, -0.285156f); + path->lineTo(0.187988f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.187988f, -0.713867f); + path->lineTo(0.187988f, -0.356934f); + path->lineTo(0.24707f, -0.438965f); + path->lineTo(0.467773f, -0.713867f); + path->lineTo(0.569824f, -0.713867f); + path->lineTo(0.315918f, -0.402832f); + path->close(); + *widthArray.append() = 0x00009440; + + path = SkNEW(SkPath); // L + *pathArray.append() = path; + path->moveTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.187988f, -0.713867f); + path->lineTo(0.187988f, -0.0810547f); + path->lineTo(0.467773f, -0.0810547f); + path->lineTo(0.467773f, 0); + path->close(); + *widthArray.append() = 0x00007dc0; + + path = SkNEW(SkPath); // M + *pathArray.append() = path; + path->moveTo(0.39209f, 0); + path->lineTo(0.175781f, -0.625f); + path->lineTo(0.171875f, -0.625f); + path->quadTo(0.174805f, -0.588867f, 0.176758f, -0.553223f); + path->quadTo(0.178711f, -0.522461f, 0.179932f, -0.488525f); + path->quadTo(0.181152f, -0.45459f, 0.181152f, -0.426758f); + path->lineTo(0.181152f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.231934f, -0.713867f); + path->lineTo(0.433105f, -0.131836f); + path->lineTo(0.436035f, -0.131836f); + path->lineTo(0.638184f, -0.713867f); + path->lineTo(0.772949f, -0.713867f); + path->lineTo(0.772949f, 0); + path->lineTo(0.682129f, 0); + path->lineTo(0.682129f, -0.433105f); + path->quadTo(0.682129f, -0.458496f, 0.683105f, -0.491211f); + path->quadTo(0.684082f, -0.523926f, 0.685547f, -0.553711f); + path->quadTo(0.6875f, -0.588379f, 0.688965f, -0.624023f); + path->lineTo(0.685059f, -0.624023f); + path->lineTo(0.466797f, 0); + path->close(); + *widthArray.append() = 0x0000dec0; + + path = SkNEW(SkPath); // N + *pathArray.append() = path; + path->moveTo(0.631836f, 0); + path->lineTo(0.526855f, 0); + path->lineTo(0.175781f, -0.59082f); + path->lineTo(0.171875f, -0.59082f); + path->quadTo(0.174805f, -0.553223f, 0.176758f, -0.516113f); + path->quadTo(0.178711f, -0.484375f, 0.179932f, -0.449707f); + path->quadTo(0.181152f, -0.415039f, 0.181152f, -0.387207f); + path->lineTo(0.181152f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.201172f, -0.713867f); + path->lineTo(0.550781f, -0.125977f); + path->lineTo(0.554199f, -0.125977f); + path->quadTo(0.552734f, -0.163086f, 0.550781f, -0.199219f); + path->quadTo(0.550293f, -0.214844f, 0.549561f, -0.231201f); + path->quadTo(0.548828f, -0.247559f, 0.548096f, -0.263916f); + path->quadTo(0.547363f, -0.280273f, 0.547119f, -0.29541f); + path->quadTo(0.546875f, -0.310547f, 0.546875f, -0.323242f); + path->lineTo(0.546875f, -0.713867f); + path->lineTo(0.631836f, -0.713867f); + path->close(); + *widthArray.append() = 0x0000baa0; + + path = SkNEW(SkPath); // O + *pathArray.append() = path; + path->moveTo(0.680176f, -0.35791f); + path->quadTo(0.680176f, -0.275391f, 0.6604f, -0.20752f); + path->quadTo(0.640625f, -0.139648f, 0.601563f, -0.0913086f); + path->quadTo(0.5625f, -0.0429688f, 0.504639f, -0.0166016f); + path->quadTo(0.446777f, 0.00976563f, 0.371094f, 0.00976563f); + path->quadTo(0.291504f, 0.00976563f, 0.233154f, -0.0166016f); + path->quadTo(0.174805f, -0.0429688f, 0.136475f, -0.0913086f); + path->quadTo(0.0981445f, -0.139648f, 0.0795898f, -0.207764f); + path->quadTo(0.0610352f, -0.275879f, 0.0610352f, -0.358887f); + path->quadTo(0.0610352f, -0.441895f, 0.0795898f, -0.509521f); + path->quadTo(0.0981445f, -0.577148f, 0.136719f, -0.625f); + path->quadTo(0.175293f, -0.672852f, 0.233887f, -0.698975f); + path->quadTo(0.29248f, -0.725098f, 0.37207f, -0.725098f); + path->quadTo(0.447754f, -0.725098f, 0.505127f, -0.698975f); + path->quadTo(0.5625f, -0.672852f, 0.601563f, -0.624756f); + path->quadTo(0.640625f, -0.57666f, 0.6604f, -0.509033f); + path->quadTo(0.680176f, -0.441406f, 0.680176f, -0.35791f); + path->close(); + path->moveTo(0.157227f, -0.35791f); + path->quadTo(0.157227f, -0.291016f, 0.169922f, -0.237549f); + path->quadTo(0.182617f, -0.184082f, 0.20874f, -0.146729f); + path->quadTo(0.234863f, -0.109375f, 0.275146f, -0.0895996f); + path->quadTo(0.31543f, -0.0698242f, 0.371094f, -0.0698242f); + path->quadTo(0.426758f, -0.0698242f, 0.467041f, -0.0895996f); + path->quadTo(0.507324f, -0.109375f, 0.533447f, -0.146729f); + path->quadTo(0.55957f, -0.184082f, 0.571777f, -0.237549f); + path->quadTo(0.583984f, -0.291016f, 0.583984f, -0.35791f); + path->quadTo(0.583984f, -0.425293f, 0.571777f, -0.478516f); + path->quadTo(0.55957f, -0.531738f, 0.533691f, -0.568604f); + path->quadTo(0.507813f, -0.605469f, 0.467773f, -0.625244f); + path->quadTo(0.427734f, -0.64502f, 0.37207f, -0.64502f); + path->quadTo(0.316406f, -0.64502f, 0.275879f, -0.625244f); + path->quadTo(0.235352f, -0.605469f, 0.208984f, -0.568604f); + path->quadTo(0.182617f, -0.531738f, 0.169922f, -0.478516f); + path->quadTo(0.157227f, -0.425293f, 0.157227f, -0.35791f); + path->close(); + *widthArray.append() = 0x0000be00; + + path = SkNEW(SkPath); // P + *pathArray.append() = path; + path->moveTo(0.524902f, -0.504883f); + path->quadTo(0.524902f, -0.460449f, 0.511475f, -0.419434f); + path->quadTo(0.498047f, -0.378418f, 0.467285f, -0.346924f); + path->quadTo(0.436523f, -0.31543f, 0.385986f, -0.296631f); + path->quadTo(0.335449f, -0.277832f, 0.26123f, -0.277832f); + path->lineTo(0.187988f, -0.277832f); + path->lineTo(0.187988f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.273926f, -0.713867f); + path->quadTo(0.339355f, -0.713867f, 0.386719f, -0.699951f); + path->quadTo(0.434082f, -0.686035f, 0.464844f, -0.659424f); + path->quadTo(0.495605f, -0.632813f, 0.510254f, -0.59375f); + path->quadTo(0.524902f, -0.554688f, 0.524902f, -0.504883f); + path->close(); + path->moveTo(0.187988f, -0.35498f); + path->lineTo(0.250977f, -0.35498f); + path->quadTo(0.296387f, -0.35498f, 0.330322f, -0.362793f); + path->quadTo(0.364258f, -0.370605f, 0.386475f, -0.387939f); + path->quadTo(0.408691f, -0.405273f, 0.419922f, -0.432861f); + path->quadTo(0.431152f, -0.460449f, 0.431152f, -0.5f); + path->quadTo(0.431152f, -0.569336f, 0.391113f, -0.602783f); + path->quadTo(0.351074f, -0.63623f, 0.266113f, -0.63623f); + path->lineTo(0.187988f, -0.63623f); + path->close(); + *widthArray.append() = 0x00009380; + + path = SkNEW(SkPath); // Q + *pathArray.append() = path; + path->moveTo(0.680176f, -0.35791f); + path->quadTo(0.680176f, -0.293945f, 0.668213f, -0.23877f); + path->quadTo(0.65625f, -0.183594f, 0.633057f, -0.139404f); + path->quadTo(0.609863f, -0.0952148f, 0.575195f, -0.0629883f); + path->quadTo(0.540527f, -0.0307617f, 0.495117f, -0.012207f); + path->quadTo(0.516113f, 0.0336914f, 0.549561f, 0.0686035f); + path->quadTo(0.583008f, 0.103516f, 0.626953f, 0.132813f); + path->lineTo(0.567871f, 0.202148f); + path->quadTo(0.517578f, 0.166504f, 0.475342f, 0.118164f); + path->quadTo(0.433105f, 0.0698242f, 0.408203f, 0.0078125f); + path->quadTo(0.399902f, 0.00878906f, 0.389893f, 0.00927734f); + path->quadTo(0.379883f, 0.00976563f, 0.371094f, 0.00976563f); + path->quadTo(0.291504f, 0.00976563f, 0.233154f, -0.0166016f); + path->quadTo(0.174805f, -0.0429688f, 0.136475f, -0.0913086f); + path->quadTo(0.0981445f, -0.139648f, 0.0795898f, -0.207764f); + path->quadTo(0.0610352f, -0.275879f, 0.0610352f, -0.358887f); + path->quadTo(0.0610352f, -0.441895f, 0.0795898f, -0.509521f); + path->quadTo(0.0981445f, -0.577148f, 0.136719f, -0.625f); + path->quadTo(0.175293f, -0.672852f, 0.233887f, -0.698975f); + path->quadTo(0.29248f, -0.725098f, 0.37207f, -0.725098f); + path->quadTo(0.447754f, -0.725098f, 0.505127f, -0.698975f); + path->quadTo(0.5625f, -0.672852f, 0.601563f, -0.624756f); + path->quadTo(0.640625f, -0.57666f, 0.6604f, -0.509033f); + path->quadTo(0.680176f, -0.441406f, 0.680176f, -0.35791f); + path->close(); + path->moveTo(0.157227f, -0.35791f); + path->quadTo(0.157227f, -0.291016f, 0.169922f, -0.237549f); + path->quadTo(0.182617f, -0.184082f, 0.20874f, -0.146729f); + path->quadTo(0.234863f, -0.109375f, 0.275146f, -0.0895996f); + path->quadTo(0.31543f, -0.0698242f, 0.371094f, -0.0698242f); + path->quadTo(0.426758f, -0.0698242f, 0.467041f, -0.0895996f); + path->quadTo(0.507324f, -0.109375f, 0.533447f, -0.146729f); + path->quadTo(0.55957f, -0.184082f, 0.571777f, -0.237549f); + path->quadTo(0.583984f, -0.291016f, 0.583984f, -0.35791f); + path->quadTo(0.583984f, -0.425293f, 0.571777f, -0.478516f); + path->quadTo(0.55957f, -0.531738f, 0.533691f, -0.568604f); + path->quadTo(0.507813f, -0.605469f, 0.467773f, -0.625244f); + path->quadTo(0.427734f, -0.64502f, 0.37207f, -0.64502f); + path->quadTo(0.316406f, -0.64502f, 0.275879f, -0.625244f); + path->quadTo(0.235352f, -0.605469f, 0.208984f, -0.568604f); + path->quadTo(0.182617f, -0.531738f, 0.169922f, -0.478516f); + path->quadTo(0.157227f, -0.425293f, 0.157227f, -0.35791f); + path->close(); + *widthArray.append() = 0x0000bdc0; + + path = SkNEW(SkPath); // R + *pathArray.append() = path; + path->moveTo(0.187988f, -0.294922f); + path->lineTo(0.187988f, 0); + path->lineTo(0.097168f, 0); + path->lineTo(0.097168f, -0.713867f); + path->lineTo(0.270996f, -0.713867f); + path->quadTo(0.400879f, -0.713867f, 0.462891f, -0.663574f); + path->quadTo(0.524902f, -0.613281f, 0.524902f, -0.51123f); + path->quadTo(0.524902f, -0.46875f, 0.512939f, -0.437012f); + path->quadTo(0.500977f, -0.405273f, 0.481201f, -0.382568f); + path->quadTo(0.461426f, -0.359863f, 0.436035f, -0.344727f); + path->quadTo(0.410645f, -0.32959f, 0.383789f, -0.319824f); + path->lineTo(0.578125f, 0); + path->lineTo(0.471191f, 0); + path->lineTo(0.299805f, -0.294922f); + path->close(); + path->moveTo(0.187988f, -0.37207f); + path->lineTo(0.268066f, -0.37207f); + path->quadTo(0.312012f, -0.37207f, 0.342773f, -0.380615f); + path->quadTo(0.373535f, -0.38916f, 0.393311f, -0.406006f); + path->quadTo(0.413086f, -0.422852f, 0.422119f, -0.447998f); + path->quadTo(0.431152f, -0.473145f, 0.431152f, -0.506836f); + path->quadTo(0.431152f, -0.541992f, 0.421143f, -0.566406f); + path->quadTo(0.411133f, -0.59082f, 0.390869f, -0.606445f); + path->quadTo(0.370605f, -0.62207f, 0.3396f, -0.62915f); + path->quadTo(0.308594f, -0.63623f, 0.266113f, -0.63623f); + path->lineTo(0.187988f, -0.63623f); + path->close(); + *widthArray.append() = 0x00009700; + + path = SkNEW(SkPath); // S + *pathArray.append() = path; + path->moveTo(0.473145f, -0.190918f); + path->quadTo(0.473145f, -0.143555f, 0.456299f, -0.106201f); + path->quadTo(0.439453f, -0.0688477f, 0.408203f, -0.0429688f); + path->quadTo(0.376953f, -0.0170898f, 0.332031f, -0.00366211f); + path->quadTo(0.287109f, 0.00976563f, 0.230957f, 0.00976563f); + path->quadTo(0.176758f, 0.00976563f, 0.129639f, 0.0012207f); + path->quadTo(0.0825195f, -0.00732422f, 0.0507813f, -0.0239258f); + path->lineTo(0.0507813f, -0.11084f); + path->quadTo(0.0673828f, -0.103027f, 0.088623f, -0.095459f); + path->quadTo(0.109863f, -0.0878906f, 0.133301f, -0.0820313f); + path->quadTo(0.156738f, -0.0761719f, 0.181641f, -0.0725098f); + path->quadTo(0.206543f, -0.0688477f, 0.230957f, -0.0688477f); + path->quadTo(0.309082f, -0.0688477f, 0.346436f, -0.0981445f); + path->quadTo(0.383789f, -0.127441f, 0.383789f, -0.182129f); + path->quadTo(0.383789f, -0.208496f, 0.376709f, -0.228027f); + path->quadTo(0.369629f, -0.247559f, 0.351807f, -0.263916f); + path->quadTo(0.333984f, -0.280273f, 0.304199f, -0.295654f); + path->quadTo(0.274414f, -0.311035f, 0.229004f, -0.329102f); + path->quadTo(0.185547f, -0.346191f, 0.153564f, -0.366455f); + path->quadTo(0.121582f, -0.386719f, 0.10083f, -0.412109f); + path->quadTo(0.0800781f, -0.4375f, 0.0700684f, -0.469727f); + path->quadTo(0.0600586f, -0.501953f, 0.0600586f, -0.542969f); + path->quadTo(0.0600586f, -0.585938f, 0.0756836f, -0.619629f); + path->quadTo(0.0913086f, -0.65332f, 0.119629f, -0.676514f); + path->quadTo(0.147949f, -0.699707f, 0.187256f, -0.711914f); + path->quadTo(0.226563f, -0.724121f, 0.273926f, -0.724121f); + path->quadTo(0.332031f, -0.724121f, 0.378418f, -0.713135f); + path->quadTo(0.424805f, -0.702148f, 0.460938f, -0.685059f); + path->lineTo(0.428223f, -0.608887f); + path->quadTo(0.396484f, -0.623047f, 0.356201f, -0.633545f); + path->quadTo(0.315918f, -0.644043f, 0.272949f, -0.644043f); + path->quadTo(0.213379f, -0.644043f, 0.180664f, -0.616455f); + path->quadTo(0.147949f, -0.588867f, 0.147949f, -0.541992f); + path->quadTo(0.147949f, -0.51416f, 0.155273f, -0.493896f); + path->quadTo(0.162598f, -0.473633f, 0.179688f, -0.457275f); + path->quadTo(0.196777f, -0.440918f, 0.224854f, -0.426514f); + path->quadTo(0.25293f, -0.412109f, 0.293945f, -0.395996f); + path->quadTo(0.338379f, -0.378418f, 0.371826f, -0.359863f); + path->quadTo(0.405273f, -0.341309f, 0.427734f, -0.317871f); + path->quadTo(0.450195f, -0.294434f, 0.46167f, -0.263672f); + path->quadTo(0.473145f, -0.23291f, 0.473145f, -0.190918f); + path->close(); + *widthArray.append() = 0x000084e0; + + path = SkNEW(SkPath); // T + *pathArray.append() = path; + path->moveTo(0.305176f, 0); + path->lineTo(0.213867f, 0); + path->lineTo(0.213867f, -0.633789f); + path->lineTo(0.00976563f, -0.633789f); + path->lineTo(0.00976563f, -0.713867f); + path->lineTo(0.508789f, -0.713867f); + path->lineTo(0.508789f, -0.633789f); + path->lineTo(0.305176f, -0.633789f); + path->close(); + *widthArray.append() = 0x000084e0; + + path = SkNEW(SkPath); // U + *pathArray.append() = path; + path->moveTo(0.60791f, -0.714844f); + path->lineTo(0.60791f, -0.251953f); + path->quadTo(0.60791f, -0.196289f, 0.591797f, -0.148438f); + path->quadTo(0.575684f, -0.100586f, 0.543213f, -0.0654297f); + path->quadTo(0.510742f, -0.0302734f, 0.46167f, -0.0102539f); + path->quadTo(0.412598f, 0.00976563f, 0.346191f, 0.00976563f); + path->quadTo(0.283691f, 0.00976563f, 0.23584f, -0.0090332f); + path->quadTo(0.187988f, -0.027832f, 0.155518f, -0.0625f); + path->quadTo(0.123047f, -0.097168f, 0.106445f, -0.145752f); + path->quadTo(0.0898438f, -0.194336f, 0.0898438f, -0.253906f); + path->lineTo(0.0898438f, -0.713867f); + path->lineTo(0.181152f, -0.713867f); + path->lineTo(0.181152f, -0.249023f); + path->quadTo(0.181152f, -0.163574f, 0.223389f, -0.116699f); + path->quadTo(0.265625f, -0.0698242f, 0.351074f, -0.0698242f); + path->quadTo(0.394531f, -0.0698242f, 0.425781f, -0.0830078f); + path->quadTo(0.457031f, -0.0961914f, 0.477051f, -0.120117f); + path->quadTo(0.49707f, -0.144043f, 0.506836f, -0.177246f); + path->quadTo(0.516602f, -0.210449f, 0.51709f, -0.25f); + path->lineTo(0.51709f, -0.714844f); + path->close(); + *widthArray.append() = 0x0000b2c0; + + path = SkNEW(SkPath); // V + *pathArray.append() = path; + path->moveTo(0.471191f, -0.713867f); + path->lineTo(0.567871f, -0.713867f); + path->lineTo(0.329102f, 0); + path->lineTo(0.237793f, 0); + path->lineTo(0, -0.713867f); + path->lineTo(0.0961914f, -0.713867f); + path->lineTo(0.240234f, -0.26123f); + path->quadTo(0.254395f, -0.216797f, 0.264648f, -0.175537f); + path->quadTo(0.274902f, -0.134277f, 0.283203f, -0.0981445f); + path->quadTo(0.290527f, -0.134277f, 0.301758f, -0.175537f); + path->quadTo(0.312988f, -0.216797f, 0.328125f, -0.26416f); + path->close(); + *widthArray.append() = 0x00009160; + + path = SkNEW(SkPath); // W + *pathArray.append() = path; + path->moveTo(0.39502f, -0.713867f); + path->lineTo(0.491211f, -0.713867f); + path->lineTo(0.603027f, -0.295898f); + path->quadTo(0.610352f, -0.268555f, 0.617432f, -0.241211f); + path->quadTo(0.624512f, -0.213867f, 0.630615f, -0.188232f); + path->quadTo(0.636719f, -0.162598f, 0.641357f, -0.139648f); + path->quadTo(0.645996f, -0.116699f, 0.648926f, -0.0981445f); + path->quadTo(0.650879f, -0.116699f, 0.653809f, -0.138672f); + path->quadTo(0.656738f, -0.160645f, 0.660645f, -0.184814f); + path->quadTo(0.664551f, -0.208984f, 0.669189f, -0.234131f); + path->quadTo(0.673828f, -0.259277f, 0.679199f, -0.283203f); + path->lineTo(0.776855f, -0.713867f); + path->lineTo(0.874023f, -0.713867f); + path->lineTo(0.694824f, 0); + path->lineTo(0.603027f, 0); + path->lineTo(0.479004f, -0.458008f); + path->quadTo(0.472168f, -0.48291f, 0.46582f, -0.509277f); + path->quadTo(0.459473f, -0.535645f, 0.454102f, -0.558594f); + path->quadTo(0.448242f, -0.585449f, 0.442871f, -0.61084f); + path->quadTo(0.4375f, -0.585938f, 0.432129f, -0.559082f); + path->quadTo(0.427246f, -0.536133f, 0.421143f, -0.508789f); + path->quadTo(0.415039f, -0.481445f, 0.408203f, -0.455078f); + path->lineTo(0.290039f, 0); + path->lineTo(0.198242f, 0); + path->lineTo(0.00976563f, -0.713867f); + path->lineTo(0.105957f, -0.713867f); + path->lineTo(0.214844f, -0.279785f); + path->quadTo(0.220703f, -0.257324f, 0.225586f, -0.233154f); + path->quadTo(0.230469f, -0.208984f, 0.234619f, -0.185059f); + path->quadTo(0.23877f, -0.161133f, 0.242188f, -0.138916f); + path->quadTo(0.245605f, -0.116699f, 0.248047f, -0.0981445f); + path->quadTo(0.250488f, -0.116211f, 0.25415f, -0.140137f); + path->quadTo(0.257813f, -0.164063f, 0.262695f, -0.19043f); + path->quadTo(0.267578f, -0.216797f, 0.273193f, -0.243896f); + path->quadTo(0.278809f, -0.270996f, 0.285156f, -0.294922f); + path->close(); + *widthArray.append() = 0x0000e240; + + path = SkNEW(SkPath); // X + *pathArray.append() = path; + path->moveTo(0.546875f, 0); + path->lineTo(0.443848f, 0); + path->lineTo(0.270996f, -0.310059f); + path->lineTo(0.0917969f, 0); + path->lineTo(0, 0); + path->lineTo(0.221191f, -0.373047f); + path->lineTo(0.0151367f, -0.713867f); + path->lineTo(0.111816f, -0.713867f); + path->lineTo(0.273926f, -0.440918f); + path->lineTo(0.437012f, -0.713867f); + path->lineTo(0.529785f, -0.713867f); + path->lineTo(0.324219f, -0.375977f); + path->close(); + *widthArray.append() = 0x00008c00; + + path = SkNEW(SkPath); // Y + *pathArray.append() = path; + path->moveTo(0.263184f, -0.353027f); + path->lineTo(0.429199f, -0.713867f); + path->lineTo(0.526855f, -0.713867f); + path->lineTo(0.309082f, -0.277832f); + path->lineTo(0.309082f, 0); + path->lineTo(0.217773f, 0); + path->lineTo(0.217773f, -0.272949f); + path->lineTo(0, -0.713867f); + path->lineTo(0.0991211f, -0.713867f); + path->close(); + *widthArray.append() = 0x000086e0; + + path = SkNEW(SkPath); // Z + *pathArray.append() = path; + path->moveTo(0.499023f, 0); + path->lineTo(0.0400391f, 0); + path->lineTo(0.0400391f, -0.0708008f); + path->lineTo(0.387207f, -0.632813f); + path->lineTo(0.0498047f, -0.632813f); + path->lineTo(0.0498047f, -0.713867f); + path->lineTo(0.48877f, -0.713867f); + path->lineTo(0.48877f, -0.643066f); + path->lineTo(0.14209f, -0.0810547f); + path->lineTo(0.499023f, -0.0810547f); + path->close(); + *widthArray.append() = 0x00008a00; + + path = SkNEW(SkPath); // [ + *pathArray.append() = path; + path->moveTo(0.277832f, 0.158203f); + path->lineTo(0.0800781f, 0.158203f); + path->lineTo(0.0800781f, -0.713867f); + path->lineTo(0.277832f, -0.713867f); + path->lineTo(0.277832f, -0.641113f); + path->lineTo(0.168945f, -0.641113f); + path->lineTo(0.168945f, 0.0849609f); + path->lineTo(0.277832f, 0.0849609f); + path->close(); + *widthArray.append() = 0x00004da0; + + path = SkNEW(SkPath); // blackslash + *pathArray.append() = path; + path->moveTo(0.0981445f, -0.713867f); + path->lineTo(0.36377f, 0); + path->lineTo(0.276855f, 0); + path->lineTo(0.0112305f, -0.713867f); + path->close(); + *widthArray.append() = 0x00005f80; + + path = SkNEW(SkPath); // ] + *pathArray.append() = path; + path->moveTo(0.0249023f, 0.0849609f); + path->lineTo(0.133789f, 0.0849609f); + path->lineTo(0.133789f, -0.641113f); + path->lineTo(0.0249023f, -0.641113f); + path->lineTo(0.0249023f, -0.713867f); + path->lineTo(0.223145f, -0.713867f); + path->lineTo(0.223145f, 0.158203f); + path->lineTo(0.0249023f, 0.158203f); + path->close(); + *widthArray.append() = 0x00004da0; + + path = SkNEW(SkPath); // ^ + *pathArray.append() = path; + path->moveTo(0.0200195f, -0.268066f); + path->lineTo(0.244141f, -0.719238f); + path->lineTo(0.293945f, -0.719238f); + path->lineTo(0.512207f, -0.268066f); + path->lineTo(0.433594f, -0.268066f); + path->lineTo(0.269043f, -0.626953f); + path->lineTo(0.0986328f, -0.268066f); + path->close(); + *widthArray.append() = 0x00008840; + + path = SkNEW(SkPath); // _ + *pathArray.append() = path; + path->moveTo(0.413086f, 0.158203f); + path->lineTo(-0.00195313f, 0.158203f); + path->lineTo(-0.00195313f, 0.0898438f); + path->lineTo(0.413086f, 0.0898438f); + path->close(); + *widthArray.append() = 0x00006940; + + path = SkNEW(SkPath); // ` + *pathArray.append() = path; + path->moveTo(0.383789f, -0.605957f); + path->lineTo(0.325195f, -0.605957f); + path->quadTo(0.308105f, -0.619629f, 0.288086f, -0.639893f); + path->quadTo(0.268066f, -0.660156f, 0.249268f, -0.681641f); + path->quadTo(0.230469f, -0.703125f, 0.215088f, -0.7229f); + path->quadTo(0.199707f, -0.742676f, 0.191895f, -0.755859f); + path->lineTo(0.191895f, -0.766113f); + path->lineTo(0.298828f, -0.766113f); + path->quadTo(0.306641f, -0.749512f, 0.317139f, -0.729736f); + path->quadTo(0.327637f, -0.709961f, 0.338867f, -0.690186f); + path->quadTo(0.350098f, -0.67041f, 0.361816f, -0.651855f); + path->quadTo(0.373535f, -0.633301f, 0.383789f, -0.619141f); + path->close(); + *widthArray.append() = 0x000093c0; + + path = SkNEW(SkPath); // a + *pathArray.append() = path; + path->moveTo(0.387207f, 0); + path->lineTo(0.369141f, -0.0742188f); + path->lineTo(0.365234f, -0.0742188f); + path->quadTo(0.349121f, -0.0522461f, 0.333008f, -0.036377f); + path->quadTo(0.316895f, -0.0205078f, 0.297852f, -0.0102539f); + path->quadTo(0.278809f, 0, 0.255371f, 0.00488281f); + path->quadTo(0.231934f, 0.00976563f, 0.201172f, 0.00976563f); + path->quadTo(0.16748f, 0.00976563f, 0.13916f, 0.000244141f); + path->quadTo(0.11084f, -0.00927734f, 0.0900879f, -0.0290527f); + path->quadTo(0.0693359f, -0.0488281f, 0.0576172f, -0.0788574f); + path->quadTo(0.0458984f, -0.108887f, 0.0458984f, -0.149902f); + path->quadTo(0.0458984f, -0.22998f, 0.102295f, -0.272949f); + path->quadTo(0.158691f, -0.315918f, 0.273926f, -0.319824f); + path->lineTo(0.36377f, -0.323242f); + path->lineTo(0.36377f, -0.356934f); + path->quadTo(0.36377f, -0.389648f, 0.356689f, -0.411621f); + path->quadTo(0.349609f, -0.433594f, 0.336182f, -0.447021f); + path->quadTo(0.322754f, -0.460449f, 0.302979f, -0.466309f); + path->quadTo(0.283203f, -0.472168f, 0.257813f, -0.472168f); + path->quadTo(0.217285f, -0.472168f, 0.182373f, -0.460449f); + path->quadTo(0.147461f, -0.44873f, 0.115234f, -0.432129f); + path->lineTo(0.0839844f, -0.499023f); + path->quadTo(0.120117f, -0.518555f, 0.164551f, -0.532227f); + path->quadTo(0.208984f, -0.545898f, 0.257813f, -0.545898f); + path->quadTo(0.307617f, -0.545898f, 0.343994f, -0.535889f); + path->quadTo(0.380371f, -0.525879f, 0.404053f, -0.50415f); + path->quadTo(0.427734f, -0.482422f, 0.439453f, -0.44873f); + path->quadTo(0.451172f, -0.415039f, 0.451172f, -0.367188f); + path->lineTo(0.451172f, 0); + path->close(); + path->moveTo(0.224121f, -0.0620117f); + path->quadTo(0.253906f, -0.0620117f, 0.279297f, -0.0712891f); + path->quadTo(0.304688f, -0.0805664f, 0.323242f, -0.0993652f); + path->quadTo(0.341797f, -0.118164f, 0.352295f, -0.146729f); + path->quadTo(0.362793f, -0.175293f, 0.362793f, -0.213867f); + path->lineTo(0.362793f, -0.262207f); + path->lineTo(0.292969f, -0.258789f); + path->quadTo(0.249023f, -0.256836f, 0.219238f, -0.249023f); + path->quadTo(0.189453f, -0.241211f, 0.171631f, -0.227295f); + path->quadTo(0.153809f, -0.213379f, 0.145996f, -0.193604f); + path->quadTo(0.138184f, -0.173828f, 0.138184f, -0.148926f); + path->quadTo(0.138184f, -0.104004f, 0.161865f, -0.0830078f); + path->quadTo(0.185547f, -0.0620117f, 0.224121f, -0.0620117f); + path->close(); + *widthArray.append() = 0x000087e0; + + path = SkNEW(SkPath); // b + *pathArray.append() = path; + path->moveTo(0.327148f, -0.545898f); + path->quadTo(0.373047f, -0.545898f, 0.410645f, -0.52832f); + path->quadTo(0.448242f, -0.510742f, 0.474854f, -0.47583f); + path->quadTo(0.501465f, -0.440918f, 0.516113f, -0.38916f); + path->quadTo(0.530762f, -0.337402f, 0.530762f, -0.269043f); + path->quadTo(0.530762f, -0.200195f, 0.516113f, -0.148193f); + path->quadTo(0.501465f, -0.0961914f, 0.474854f, -0.0610352f); + path->quadTo(0.448242f, -0.0258789f, 0.410645f, -0.00805664f); + path->quadTo(0.373047f, 0.00976563f, 0.327148f, 0.00976563f); + path->quadTo(0.29834f, 0.00976563f, 0.274902f, 0.00341797f); + path->quadTo(0.251465f, -0.00292969f, 0.232666f, -0.0134277f); + path->quadTo(0.213867f, -0.0239258f, 0.199463f, -0.0380859f); + path->quadTo(0.185059f, -0.0522461f, 0.173828f, -0.0678711f); + path->lineTo(0.167969f, -0.0678711f); + path->lineTo(0.149902f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.759766f); + path->lineTo(0.173828f, -0.759766f); + path->lineTo(0.173828f, -0.576172f); + path->quadTo(0.173828f, -0.559082f, 0.17334f, -0.539795f); + path->quadTo(0.172852f, -0.520508f, 0.171875f, -0.503906f); + path->quadTo(0.170898f, -0.484375f, 0.169922f, -0.46582f); + path->lineTo(0.173828f, -0.46582f); + path->quadTo(0.185059f, -0.48291f, 0.199219f, -0.497559f); + path->quadTo(0.213379f, -0.512207f, 0.232178f, -0.522949f); + path->quadTo(0.250977f, -0.533691f, 0.274414f, -0.539795f); + path->quadTo(0.297852f, -0.545898f, 0.327148f, -0.545898f); + path->close(); + path->moveTo(0.310059f, -0.472168f); + path->quadTo(0.270996f, -0.472168f, 0.244873f, -0.459717f); + path->quadTo(0.21875f, -0.447266f, 0.202881f, -0.421875f); + path->quadTo(0.187012f, -0.396484f, 0.18042f, -0.358398f); + path->quadTo(0.173828f, -0.320313f, 0.173828f, -0.269043f); + path->quadTo(0.173828f, -0.219727f, 0.18042f, -0.181396f); + path->quadTo(0.187012f, -0.143066f, 0.202881f, -0.116943f); + path->quadTo(0.21875f, -0.0908203f, 0.245117f, -0.0773926f); + path->quadTo(0.271484f, -0.0639648f, 0.311035f, -0.0639648f); + path->quadTo(0.376953f, -0.0639648f, 0.407959f, -0.117188f); + path->quadTo(0.438965f, -0.17041f, 0.438965f, -0.27002f); + path->quadTo(0.438965f, -0.371582f, 0.407959f, -0.421875f); + path->quadTo(0.376953f, -0.472168f, 0.310059f, -0.472168f); + path->close(); + *widthArray.append() = 0x00009600; + + path = SkNEW(SkPath); // c + *pathArray.append() = path; + path->moveTo(0.290039f, 0.00976563f); + path->quadTo(0.240723f, 0.00976563f, 0.197754f, -0.00561523f); + path->quadTo(0.154785f, -0.0209961f, 0.123047f, -0.0544434f); + path->quadTo(0.0913086f, -0.0878906f, 0.0732422f, -0.139893f); + path->quadTo(0.0551758f, -0.191895f, 0.0551758f, -0.265137f); + path->quadTo(0.0551758f, -0.341797f, 0.0737305f, -0.395264f); + path->quadTo(0.0922852f, -0.44873f, 0.124756f, -0.482178f); + path->quadTo(0.157227f, -0.515625f, 0.200684f, -0.530762f); + path->quadTo(0.244141f, -0.545898f, 0.293945f, -0.545898f); + path->quadTo(0.332031f, -0.545898f, 0.368408f, -0.537598f); + path->quadTo(0.404785f, -0.529297f, 0.429199f, -0.51709f); + path->lineTo(0.402832f, -0.441895f); + path->quadTo(0.391602f, -0.446777f, 0.37793f, -0.451416f); + path->quadTo(0.364258f, -0.456055f, 0.349609f, -0.459717f); + path->quadTo(0.334961f, -0.463379f, 0.320801f, -0.465576f); + path->quadTo(0.306641f, -0.467773f, 0.293945f, -0.467773f); + path->quadTo(0.217285f, -0.467773f, 0.182129f, -0.418701f); + path->quadTo(0.146973f, -0.369629f, 0.146973f, -0.266113f); + path->quadTo(0.146973f, -0.163086f, 0.182373f, -0.115479f); + path->quadTo(0.217773f, -0.0678711f, 0.290039f, -0.0678711f); + path->quadTo(0.32959f, -0.0678711f, 0.361572f, -0.0769043f); + path->quadTo(0.393555f, -0.0859375f, 0.419922f, -0.0981445f); + path->lineTo(0.419922f, -0.019043f); + path->quadTo(0.393555f, -0.00488281f, 0.363525f, 0.00244141f); + path->quadTo(0.333496f, 0.00976563f, 0.290039f, 0.00976563f); + path->close(); + *widthArray.append() = 0x00007680; + + path = SkNEW(SkPath); // d + *pathArray.append() = path; + path->moveTo(0.416016f, -0.0717773f); + path->lineTo(0.412109f, -0.0717773f); + path->quadTo(0.401367f, -0.0551758f, 0.386963f, -0.0402832f); + path->quadTo(0.372559f, -0.0253906f, 0.35376f, -0.0141602f); + path->quadTo(0.334961f, -0.00292969f, 0.311523f, 0.00341797f); + path->quadTo(0.288086f, 0.00976563f, 0.258789f, 0.00976563f); + path->quadTo(0.213379f, 0.00976563f, 0.175781f, -0.0078125f); + path->quadTo(0.138184f, -0.0253906f, 0.111328f, -0.0603027f); + path->quadTo(0.0844727f, -0.0952148f, 0.0698242f, -0.146973f); + path->quadTo(0.0551758f, -0.19873f, 0.0551758f, -0.26709f); + path->quadTo(0.0551758f, -0.335938f, 0.0698242f, -0.387939f); + path->quadTo(0.0844727f, -0.439941f, 0.111328f, -0.475098f); + path->quadTo(0.138184f, -0.510254f, 0.175781f, -0.528076f); + path->quadTo(0.213379f, -0.545898f, 0.258789f, -0.545898f); + path->quadTo(0.287598f, -0.545898f, 0.311035f, -0.539551f); + path->quadTo(0.334473f, -0.533203f, 0.353271f, -0.522461f); + path->quadTo(0.37207f, -0.511719f, 0.386719f, -0.497559f); + path->quadTo(0.401367f, -0.483398f, 0.412109f, -0.467773f); + path->lineTo(0.417969f, -0.467773f); + path->quadTo(0.416504f, -0.484375f, 0.415039f, -0.499512f); + path->quadTo(0.414063f, -0.512207f, 0.413086f, -0.525635f); + path->quadTo(0.412109f, -0.539063f, 0.412109f, -0.546875f); + path->lineTo(0.412109f, -0.759766f); + path->lineTo(0.500977f, -0.759766f); + path->lineTo(0.500977f, 0); + path->lineTo(0.429199f, 0); + path->close(); + path->moveTo(0.275879f, -0.0639648f); + path->quadTo(0.312988f, -0.0639648f, 0.338623f, -0.0751953f); + path->quadTo(0.364258f, -0.0864258f, 0.380127f, -0.109375f); + path->quadTo(0.395996f, -0.132324f, 0.403564f, -0.166748f); + path->quadTo(0.411133f, -0.201172f, 0.412109f, -0.24707f); + path->lineTo(0.412109f, -0.26709f); + path->quadTo(0.412109f, -0.316406f, 0.405518f, -0.354736f); + path->quadTo(0.398926f, -0.393066f, 0.383057f, -0.419189f); + path->quadTo(0.367188f, -0.445313f, 0.34082f, -0.45874f); + path->quadTo(0.314453f, -0.472168f, 0.274902f, -0.472168f); + path->quadTo(0.208984f, -0.472168f, 0.177979f, -0.418945f); + path->quadTo(0.146973f, -0.365723f, 0.146973f, -0.266113f); + path->quadTo(0.146973f, -0.164063f, 0.177979f, -0.114014f); + path->quadTo(0.208984f, -0.0639648f, 0.275879f, -0.0639648f); + path->close(); + *widthArray.append() = 0x00009600; + + path = SkNEW(SkPath); // e + *pathArray.append() = path; + path->moveTo(0.296875f, 0.00976563f); + path->quadTo(0.243164f, 0.00976563f, 0.19873f, -0.00830078f); + path->quadTo(0.154297f, -0.0263672f, 0.122314f, -0.0610352f); + path->quadTo(0.090332f, -0.0957031f, 0.0727539f, -0.146973f); + path->quadTo(0.0551758f, -0.198242f, 0.0551758f, -0.26416f); + path->quadTo(0.0551758f, -0.330566f, 0.0712891f, -0.382813f); + path->quadTo(0.0874023f, -0.435059f, 0.116699f, -0.471436f); + path->quadTo(0.145996f, -0.507813f, 0.186768f, -0.526855f); + path->quadTo(0.227539f, -0.545898f, 0.276855f, -0.545898f); + path->quadTo(0.325195f, -0.545898f, 0.36377f, -0.528564f); + path->quadTo(0.402344f, -0.51123f, 0.429199f, -0.479736f); + path->quadTo(0.456055f, -0.448242f, 0.470459f, -0.404053f); + path->quadTo(0.484863f, -0.359863f, 0.484863f, -0.306152f); + path->lineTo(0.484863f, -0.250977f); + path->lineTo(0.146973f, -0.250977f); + path->quadTo(0.149414f, -0.156738f, 0.186768f, -0.112305f); + path->quadTo(0.224121f, -0.0678711f, 0.297852f, -0.0678711f); + path->quadTo(0.322754f, -0.0678711f, 0.343994f, -0.0703125f); + path->quadTo(0.365234f, -0.0727539f, 0.38501f, -0.0773926f); + path->quadTo(0.404785f, -0.0820313f, 0.42334f, -0.0891113f); + path->quadTo(0.441895f, -0.0961914f, 0.460938f, -0.10498f); + path->lineTo(0.460938f, -0.0258789f); + path->quadTo(0.441406f, -0.0166016f, 0.422607f, -0.00976563f); + path->quadTo(0.403809f, -0.00292969f, 0.384033f, 0.00146484f); + path->quadTo(0.364258f, 0.00585938f, 0.343018f, 0.0078125f); + path->quadTo(0.321777f, 0.00976563f, 0.296875f, 0.00976563f); + path->close(); + path->moveTo(0.274902f, -0.472168f); + path->quadTo(0.219238f, -0.472168f, 0.186768f, -0.434082f); + path->quadTo(0.154297f, -0.395996f, 0.148926f, -0.323242f); + path->lineTo(0.38916f, -0.323242f); + path->quadTo(0.38916f, -0.356445f, 0.382568f, -0.384033f); + path->quadTo(0.375977f, -0.411621f, 0.362061f, -0.431152f); + path->quadTo(0.348145f, -0.450684f, 0.32666f, -0.461426f); + path->quadTo(0.305176f, -0.472168f, 0.274902f, -0.472168f); + path->close(); + *widthArray.append() = 0x00008900; + + path = SkNEW(SkPath); // f + *pathArray.append() = path; + path->moveTo(0.317871f, -0.469238f); + path->lineTo(0.198242f, -0.469238f); + path->lineTo(0.198242f, 0); + path->lineTo(0.108887f, 0); + path->lineTo(0.108887f, -0.469238f); + path->lineTo(0.0141602f, -0.469238f); + path->lineTo(0.0141602f, -0.505859f); + path->lineTo(0.108887f, -0.539063f); + path->lineTo(0.108887f, -0.585938f); + path->quadTo(0.108887f, -0.638184f, 0.119873f, -0.672607f); + path->quadTo(0.130859f, -0.707031f, 0.151611f, -0.727539f); + path->quadTo(0.172363f, -0.748047f, 0.202637f, -0.756592f); + path->quadTo(0.23291f, -0.765137f, 0.270996f, -0.765137f); + path->quadTo(0.299805f, -0.765137f, 0.323975f, -0.759521f); + path->quadTo(0.348145f, -0.753906f, 0.367188f, -0.74707f); + path->lineTo(0.344238f, -0.678223f); + path->quadTo(0.329102f, -0.683594f, 0.311279f, -0.687744f); + path->quadTo(0.293457f, -0.691895f, 0.273926f, -0.691895f); + path->quadTo(0.254395f, -0.691895f, 0.240234f, -0.687256f); + path->quadTo(0.226074f, -0.682617f, 0.216797f, -0.670898f); + path->quadTo(0.20752f, -0.65918f, 0.202881f, -0.638916f); + path->quadTo(0.198242f, -0.618652f, 0.198242f, -0.586914f); + path->lineTo(0.198242f, -0.536133f); + path->lineTo(0.317871f, -0.536133f); + path->close(); + *widthArray.append() = 0x00005440; + + path = SkNEW(SkPath); // g + *pathArray.append() = path; + path->moveTo(0.498047f, -0.536133f); + path->lineTo(0.498047f, -0.480957f); + path->lineTo(0.401855f, -0.467773f); + path->quadTo(0.415527f, -0.450684f, 0.424805f, -0.424072f); + path->quadTo(0.434082f, -0.397461f, 0.434082f, -0.36377f); + path->quadTo(0.434082f, -0.32666f, 0.422607f, -0.295166f); + path->quadTo(0.411133f, -0.263672f, 0.387939f, -0.240723f); + path->quadTo(0.364746f, -0.217773f, 0.330566f, -0.204834f); + path->quadTo(0.296387f, -0.191895f, 0.250977f, -0.191895f); + path->quadTo(0.240234f, -0.191895f, 0.229492f, -0.192139f); + path->quadTo(0.21875f, -0.192383f, 0.211914f, -0.193848f); + path->quadTo(0.203613f, -0.188965f, 0.195557f, -0.182861f); + path->quadTo(0.1875f, -0.176758f, 0.180908f, -0.168945f); + path->quadTo(0.174316f, -0.161133f, 0.170166f, -0.151367f); + path->quadTo(0.166016f, -0.141602f, 0.166016f, -0.129883f); + path->quadTo(0.166016f, -0.116699f, 0.171875f, -0.108643f); + path->quadTo(0.177734f, -0.100586f, 0.187744f, -0.0961914f); + path->quadTo(0.197754f, -0.0917969f, 0.211426f, -0.090332f); + path->quadTo(0.225098f, -0.0888672f, 0.240234f, -0.0888672f); + path->lineTo(0.326172f, -0.0888672f); + path->quadTo(0.371582f, -0.0888672f, 0.402832f, -0.0773926f); + path->quadTo(0.434082f, -0.065918f, 0.453857f, -0.0463867f); + path->quadTo(0.473633f, -0.0268555f, 0.482422f, -0.000244141f); + path->quadTo(0.491211f, 0.0263672f, 0.491211f, 0.0561523f); + path->quadTo(0.491211f, 0.0991211f, 0.475342f, 0.133301f); + path->quadTo(0.459473f, 0.16748f, 0.426758f, 0.191162f); + path->quadTo(0.394043f, 0.214844f, 0.343994f, 0.227539f); + path->quadTo(0.293945f, 0.240234f, 0.226074f, 0.240234f); + path->quadTo(0.173828f, 0.240234f, 0.134766f, 0.22998f); + path->quadTo(0.0957031f, 0.219727f, 0.0698242f, 0.200195f); + path->quadTo(0.0439453f, 0.180664f, 0.0310059f, 0.153076f); + path->quadTo(0.0180664f, 0.125488f, 0.0180664f, 0.0908203f); + path->quadTo(0.0180664f, 0.0615234f, 0.0275879f, 0.0393066f); + path->quadTo(0.0371094f, 0.0170898f, 0.0532227f, 0.000976563f); + path->quadTo(0.0693359f, -0.0151367f, 0.0905762f, -0.0253906f); + path->quadTo(0.111816f, -0.0356445f, 0.134766f, -0.0410156f); + path->quadTo(0.114258f, -0.050293f, 0.101074f, -0.0703125f); + path->quadTo(0.0878906f, -0.090332f, 0.0878906f, -0.116211f); + path->quadTo(0.0878906f, -0.145996f, 0.103516f, -0.167725f); + path->quadTo(0.119141f, -0.189453f, 0.152832f, -0.209961f); + path->quadTo(0.131836f, -0.21875f, 0.114502f, -0.234131f); + path->quadTo(0.097168f, -0.249512f, 0.0852051f, -0.269287f); + path->quadTo(0.0732422f, -0.289063f, 0.0666504f, -0.3125f); + path->quadTo(0.0600586f, -0.335938f, 0.0600586f, -0.36084f); + path->quadTo(0.0600586f, -0.404297f, 0.0722656f, -0.438477f); + path->quadTo(0.0844727f, -0.472656f, 0.108398f, -0.496582f); + path->quadTo(0.132324f, -0.520508f, 0.167969f, -0.533203f); + path->quadTo(0.203613f, -0.545898f, 0.250977f, -0.545898f); + path->quadTo(0.269043f, -0.545898f, 0.28833f, -0.543213f); + path->quadTo(0.307617f, -0.540527f, 0.320801f, -0.536133f); + path->close(); + path->moveTo(0.102051f, 0.0878906f); + path->quadTo(0.102051f, 0.105957f, 0.108398f, 0.121582f); + path->quadTo(0.114746f, 0.137207f, 0.12915f, 0.148438f); + path->quadTo(0.143555f, 0.159668f, 0.167236f, 0.16626f); + path->quadTo(0.190918f, 0.172852f, 0.226074f, 0.172852f); + path->quadTo(0.316895f, 0.172852f, 0.362061f, 0.144775f); + path->quadTo(0.407227f, 0.116699f, 0.407227f, 0.0639648f); + path->quadTo(0.407227f, 0.0415039f, 0.401367f, 0.0273438f); + path->quadTo(0.395508f, 0.0131836f, 0.38208f, 0.00512695f); + path->quadTo(0.368652f, -0.00292969f, 0.34668f, -0.00585938f); + path->quadTo(0.324707f, -0.00878906f, 0.292969f, -0.00878906f); + path->lineTo(0.207031f, -0.00878906f); + path->quadTo(0.189941f, -0.00878906f, 0.171387f, -0.00488281f); + path->quadTo(0.152832f, -0.000976563f, 0.137451f, 0.00976563f); + path->quadTo(0.12207f, 0.0205078f, 0.112061f, 0.0393066f); + path->quadTo(0.102051f, 0.0581055f, 0.102051f, 0.0878906f); + path->close(); + path->moveTo(0.146973f, -0.36377f); + path->quadTo(0.146973f, -0.307617f, 0.17334f, -0.280273f); + path->quadTo(0.199707f, -0.25293f, 0.248047f, -0.25293f); + path->quadTo(0.296875f, -0.25293f, 0.322021f, -0.280029f); + path->quadTo(0.347168f, -0.307129f, 0.347168f, -0.365234f); + path->quadTo(0.347168f, -0.425293f, 0.321533f, -0.453613f); + path->quadTo(0.295898f, -0.481934f, 0.24707f, -0.481934f); + path->quadTo(0.19873f, -0.481934f, 0.172852f, -0.452637f); + path->quadTo(0.146973f, -0.42334f, 0.146973f, -0.36377f); + path->close(); + *widthArray.append() = 0x000084a0; + + path = SkNEW(SkPath); // h + *pathArray.append() = path; + path->moveTo(0.419922f, 0); + path->lineTo(0.419922f, -0.345215f); + path->quadTo(0.419922f, -0.408691f, 0.394287f, -0.44043f); + path->quadTo(0.368652f, -0.472168f, 0.313965f, -0.472168f); + path->quadTo(0.274414f, -0.472168f, 0.247559f, -0.459473f); + path->quadTo(0.220703f, -0.446777f, 0.204346f, -0.421875f); + path->quadTo(0.187988f, -0.396973f, 0.180908f, -0.36084f); + path->quadTo(0.173828f, -0.324707f, 0.173828f, -0.277832f); + path->lineTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.759766f); + path->lineTo(0.173828f, -0.759766f); + path->lineTo(0.173828f, -0.53418f); + path->lineTo(0.169922f, -0.463867f); + path->lineTo(0.174805f, -0.463867f); + path->quadTo(0.187012f, -0.484863f, 0.203857f, -0.500244f); + path->quadTo(0.220703f, -0.515625f, 0.240723f, -0.525879f); + path->quadTo(0.260742f, -0.536133f, 0.283203f, -0.541016f); + path->quadTo(0.305664f, -0.545898f, 0.329102f, -0.545898f); + path->quadTo(0.418457f, -0.545898f, 0.463623f, -0.499268f); + path->quadTo(0.508789f, -0.452637f, 0.508789f, -0.350098f); + path->lineTo(0.508789f, 0); + path->close(); + *widthArray.append() = 0x000096c0; + + path = SkNEW(SkPath); // i + *pathArray.append() = path; + path->moveTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.173828f, -0.536133f); + path->close(); + path->moveTo(0.078125f, -0.681152f); + path->quadTo(0.078125f, -0.710449f, 0.0930176f, -0.723633f); + path->quadTo(0.10791f, -0.736816f, 0.129883f, -0.736816f); + path->quadTo(0.140625f, -0.736816f, 0.150146f, -0.733643f); + path->quadTo(0.159668f, -0.730469f, 0.166748f, -0.723633f); + path->quadTo(0.173828f, -0.716797f, 0.177979f, -0.706299f); + path->quadTo(0.182129f, -0.695801f, 0.182129f, -0.681152f); + path->quadTo(0.182129f, -0.652832f, 0.166748f, -0.638916f); + path->quadTo(0.151367f, -0.625f, 0.129883f, -0.625f); + path->quadTo(0.10791f, -0.625f, 0.0930176f, -0.638672f); + path->quadTo(0.078125f, -0.652344f, 0.078125f, -0.681152f); + path->close(); + *widthArray.append() = 0x00004240; + + path = SkNEW(SkPath); // j + *pathArray.append() = path; + path->moveTo(0.0322266f, 0.240234f); + path->quadTo(0.00878906f, 0.240234f, -0.0065918f, 0.236816f); + path->quadTo(-0.0219727f, 0.233398f, -0.0332031f, 0.228027f); + path->lineTo(-0.0332031f, 0.155762f); + path->quadTo(-0.0205078f, 0.160645f, -0.00732422f, 0.16333f); + path->quadTo(0.00585938f, 0.166016f, 0.0229492f, 0.166016f); + path->quadTo(0.0361328f, 0.166016f, 0.0473633f, 0.162354f); + path->quadTo(0.0585938f, 0.158691f, 0.0671387f, 0.14917f); + path->quadTo(0.0756836f, 0.139648f, 0.0803223f, 0.123779f); + path->quadTo(0.0849609f, 0.10791f, 0.0849609f, 0.0830078f); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.173828f, -0.536133f); + path->lineTo(0.173828f, 0.0771484f); + path->quadTo(0.173828f, 0.114746f, 0.165527f, 0.144775f); + path->quadTo(0.157227f, 0.174805f, 0.139648f, 0.196045f); + path->quadTo(0.12207f, 0.217285f, 0.095459f, 0.22876f); + path->quadTo(0.0688477f, 0.240234f, 0.0322266f, 0.240234f); + path->close(); + path->moveTo(0.078125f, -0.681152f); + path->quadTo(0.078125f, -0.710449f, 0.0930176f, -0.723633f); + path->quadTo(0.10791f, -0.736816f, 0.129883f, -0.736816f); + path->quadTo(0.140625f, -0.736816f, 0.150146f, -0.733643f); + path->quadTo(0.159668f, -0.730469f, 0.166748f, -0.723633f); + path->quadTo(0.173828f, -0.716797f, 0.177979f, -0.706299f); + path->quadTo(0.182129f, -0.695801f, 0.182129f, -0.681152f); + path->quadTo(0.182129f, -0.652832f, 0.166748f, -0.638916f); + path->quadTo(0.151367f, -0.625f, 0.129883f, -0.625f); + path->quadTo(0.10791f, -0.625f, 0.0930176f, -0.638672f); + path->quadTo(0.078125f, -0.652344f, 0.078125f, -0.681152f); + path->close(); + *widthArray.append() = 0x00004240; + + path = SkNEW(SkPath); // k + *pathArray.append() = path; + path->moveTo(0.166992f, -0.276855f); + path->lineTo(0.23291f, -0.359863f); + path->lineTo(0.375977f, -0.536133f); + path->lineTo(0.479004f, -0.536133f); + path->lineTo(0.283203f, -0.304199f); + path->lineTo(0.492188f, 0); + path->lineTo(0.390137f, 0); + path->lineTo(0.226074f, -0.246094f); + path->lineTo(0.172852f, -0.206055f); + path->lineTo(0.172852f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.759766f); + path->lineTo(0.172852f, -0.759766f); + path->lineTo(0.172852f, -0.411133f); + path->lineTo(0.165039f, -0.276855f); + path->close(); + *widthArray.append() = 0x00007f00; + + path = SkNEW(SkPath); // l + *pathArray.append() = path; + path->moveTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.759766f); + path->lineTo(0.173828f, -0.759766f); + path->close(); + *widthArray.append() = 0x00004240; + + path = SkNEW(SkPath); // m + *pathArray.append() = path; + path->moveTo(0.727051f, 0); + path->lineTo(0.727051f, -0.345215f); + path->quadTo(0.727051f, -0.408691f, 0.702637f, -0.44043f); + path->quadTo(0.678223f, -0.472168f, 0.626953f, -0.472168f); + path->quadTo(0.591309f, -0.472168f, 0.566406f, -0.460693f); + path->quadTo(0.541504f, -0.449219f, 0.525635f, -0.427002f); + path->quadTo(0.509766f, -0.404785f, 0.502441f, -0.371826f); + path->quadTo(0.495117f, -0.338867f, 0.495117f, -0.295898f); + path->lineTo(0.495117f, 0); + path->lineTo(0.405762f, 0); + path->lineTo(0.405762f, -0.345215f); + path->quadTo(0.405762f, -0.408691f, 0.381592f, -0.44043f); + path->quadTo(0.357422f, -0.472168f, 0.306152f, -0.472168f); + path->quadTo(0.268555f, -0.472168f, 0.243164f, -0.459473f); + path->quadTo(0.217773f, -0.446777f, 0.202393f, -0.421875f); + path->quadTo(0.187012f, -0.396973f, 0.18042f, -0.36084f); + path->quadTo(0.173828f, -0.324707f, 0.173828f, -0.277832f); + path->lineTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.157227f, -0.536133f); + path->lineTo(0.169922f, -0.463867f); + path->lineTo(0.174805f, -0.463867f); + path->quadTo(0.186523f, -0.484863f, 0.202637f, -0.500244f); + path->quadTo(0.21875f, -0.515625f, 0.238037f, -0.525879f); + path->quadTo(0.257324f, -0.536133f, 0.279053f, -0.541016f); + path->quadTo(0.300781f, -0.545898f, 0.323242f, -0.545898f); + path->quadTo(0.381836f, -0.545898f, 0.420654f, -0.524414f); + path->quadTo(0.459473f, -0.50293f, 0.478027f, -0.457031f); + path->lineTo(0.481934f, -0.457031f); + path->quadTo(0.494629f, -0.47998f, 0.512451f, -0.496582f); + path->quadTo(0.530273f, -0.513184f, 0.551514f, -0.52417f); + path->quadTo(0.572754f, -0.535156f, 0.596191f, -0.540527f); + path->quadTo(0.619629f, -0.545898f, 0.644043f, -0.545898f); + path->quadTo(0.729492f, -0.545898f, 0.772705f, -0.499268f); + path->quadTo(0.815918f, -0.452637f, 0.815918f, -0.350098f); + path->lineTo(0.815918f, 0); + path->close(); + *widthArray.append() = 0x0000e560; + + path = SkNEW(SkPath); // n + *pathArray.append() = path; + path->moveTo(0.419922f, 0); + path->lineTo(0.419922f, -0.345215f); + path->quadTo(0.419922f, -0.408691f, 0.394287f, -0.44043f); + path->quadTo(0.368652f, -0.472168f, 0.313965f, -0.472168f); + path->quadTo(0.274414f, -0.472168f, 0.247559f, -0.459473f); + path->quadTo(0.220703f, -0.446777f, 0.204346f, -0.421875f); + path->quadTo(0.187988f, -0.396973f, 0.180908f, -0.36084f); + path->quadTo(0.173828f, -0.324707f, 0.173828f, -0.277832f); + path->lineTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.157227f, -0.536133f); + path->lineTo(0.169922f, -0.463867f); + path->lineTo(0.174805f, -0.463867f); + path->quadTo(0.187012f, -0.484863f, 0.203857f, -0.500244f); + path->quadTo(0.220703f, -0.515625f, 0.240723f, -0.525879f); + path->quadTo(0.260742f, -0.536133f, 0.283203f, -0.541016f); + path->quadTo(0.305664f, -0.545898f, 0.329102f, -0.545898f); + path->quadTo(0.418457f, -0.545898f, 0.463623f, -0.499268f); + path->quadTo(0.508789f, -0.452637f, 0.508789f, -0.350098f); + path->lineTo(0.508789f, 0); + path->close(); + *widthArray.append() = 0x000096c0; + + path = SkNEW(SkPath); // o + *pathArray.append() = path; + path->moveTo(0.521973f, -0.269043f); + path->quadTo(0.521973f, -0.202148f, 0.505615f, -0.150146f); + path->quadTo(0.489258f, -0.0981445f, 0.45874f, -0.0627441f); + path->quadTo(0.428223f, -0.0273438f, 0.384766f, -0.00878906f); + path->quadTo(0.341309f, 0.00976563f, 0.287109f, 0.00976563f); + path->quadTo(0.236816f, 0.00976563f, 0.194336f, -0.00878906f); + path->quadTo(0.151855f, -0.0273438f, 0.12085f, -0.0627441f); + path->quadTo(0.0898438f, -0.0981445f, 0.0725098f, -0.150146f); + path->quadTo(0.0551758f, -0.202148f, 0.0551758f, -0.269043f); + path->quadTo(0.0551758f, -0.335449f, 0.0715332f, -0.386963f); + path->quadTo(0.0878906f, -0.438477f, 0.118164f, -0.473877f); + path->quadTo(0.148438f, -0.509277f, 0.192139f, -0.527588f); + path->quadTo(0.23584f, -0.545898f, 0.290039f, -0.545898f); + path->quadTo(0.340332f, -0.545898f, 0.382813f, -0.527588f); + path->quadTo(0.425293f, -0.509277f, 0.456299f, -0.473877f); + path->quadTo(0.487305f, -0.438477f, 0.504639f, -0.386963f); + path->quadTo(0.521973f, -0.335449f, 0.521973f, -0.269043f); + path->close(); + path->moveTo(0.146973f, -0.269043f); + path->quadTo(0.146973f, -0.166992f, 0.18042f, -0.115479f); + path->quadTo(0.213867f, -0.0639648f, 0.289063f, -0.0639648f); + path->quadTo(0.364258f, -0.0639648f, 0.397217f, -0.115479f); + path->quadTo(0.430176f, -0.166992f, 0.430176f, -0.269043f); + path->quadTo(0.430176f, -0.371094f, 0.396729f, -0.421631f); + path->quadTo(0.363281f, -0.472168f, 0.288086f, -0.472168f); + path->quadTo(0.212891f, -0.472168f, 0.179932f, -0.421631f); + path->quadTo(0.146973f, -0.371094f, 0.146973f, -0.269043f); + path->close(); + *widthArray.append() = 0x000093c0; + + path = SkNEW(SkPath); // p + *pathArray.append() = path; + path->moveTo(0.327148f, 0.00976563f); + path->quadTo(0.29834f, 0.00976563f, 0.274902f, 0.00341797f); + path->quadTo(0.251465f, -0.00292969f, 0.232666f, -0.0134277f); + path->quadTo(0.213867f, -0.0239258f, 0.199463f, -0.0380859f); + path->quadTo(0.185059f, -0.0522461f, 0.173828f, -0.0678711f); + path->lineTo(0.167969f, -0.0678711f); + path->quadTo(0.169434f, -0.0512695f, 0.170898f, -0.0361328f); + path->quadTo(0.171875f, -0.0234375f, 0.172852f, -0.0100098f); + path->quadTo(0.173828f, 0.00341797f, 0.173828f, 0.0112305f); + path->lineTo(0.173828f, 0.240234f); + path->lineTo(0.0849609f, 0.240234f); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.157227f, -0.536133f); + path->lineTo(0.169922f, -0.463867f); + path->lineTo(0.173828f, -0.463867f); + path->quadTo(0.185059f, -0.480957f, 0.199219f, -0.49585f); + path->quadTo(0.213379f, -0.510742f, 0.232178f, -0.521729f); + path->quadTo(0.250977f, -0.532715f, 0.274414f, -0.539307f); + path->quadTo(0.297852f, -0.545898f, 0.327148f, -0.545898f); + path->quadTo(0.373047f, -0.545898f, 0.410645f, -0.52832f); + path->quadTo(0.448242f, -0.510742f, 0.474854f, -0.47583f); + path->quadTo(0.501465f, -0.440918f, 0.516113f, -0.38916f); + path->quadTo(0.530762f, -0.337402f, 0.530762f, -0.269043f); + path->quadTo(0.530762f, -0.200195f, 0.516113f, -0.148193f); + path->quadTo(0.501465f, -0.0961914f, 0.474854f, -0.0610352f); + path->quadTo(0.448242f, -0.0258789f, 0.410645f, -0.00805664f); + path->quadTo(0.373047f, 0.00976563f, 0.327148f, 0.00976563f); + path->close(); + path->moveTo(0.310059f, -0.472168f); + path->quadTo(0.272949f, -0.472168f, 0.247314f, -0.460938f); + path->quadTo(0.22168f, -0.449707f, 0.205811f, -0.426758f); + path->quadTo(0.189941f, -0.403809f, 0.182373f, -0.369629f); + path->quadTo(0.174805f, -0.335449f, 0.173828f, -0.289063f); + path->lineTo(0.173828f, -0.269043f); + path->quadTo(0.173828f, -0.219727f, 0.18042f, -0.181396f); + path->quadTo(0.187012f, -0.143066f, 0.202881f, -0.116943f); + path->quadTo(0.21875f, -0.0908203f, 0.245117f, -0.0773926f); + path->quadTo(0.271484f, -0.0639648f, 0.311035f, -0.0639648f); + path->quadTo(0.376953f, -0.0639648f, 0.407959f, -0.117188f); + path->quadTo(0.438965f, -0.17041f, 0.438965f, -0.27002f); + path->quadTo(0.438965f, -0.371582f, 0.407959f, -0.421875f); + path->quadTo(0.376953f, -0.472168f, 0.310059f, -0.472168f); + path->close(); + *widthArray.append() = 0x00009600; + + path = SkNEW(SkPath); // q + *pathArray.append() = path; + path->moveTo(0.275879f, -0.0639648f); + path->quadTo(0.312988f, -0.0639648f, 0.338623f, -0.0751953f); + path->quadTo(0.364258f, -0.0864258f, 0.380127f, -0.109375f); + path->quadTo(0.395996f, -0.132324f, 0.403564f, -0.166748f); + path->quadTo(0.411133f, -0.201172f, 0.412109f, -0.24707f); + path->lineTo(0.412109f, -0.26709f); + path->quadTo(0.412109f, -0.316406f, 0.405518f, -0.354736f); + path->quadTo(0.398926f, -0.393066f, 0.383057f, -0.419189f); + path->quadTo(0.367188f, -0.445313f, 0.34082f, -0.45874f); + path->quadTo(0.314453f, -0.472168f, 0.274902f, -0.472168f); + path->quadTo(0.208984f, -0.472168f, 0.177979f, -0.418945f); + path->quadTo(0.146973f, -0.365723f, 0.146973f, -0.266113f); + path->quadTo(0.146973f, -0.164063f, 0.177979f, -0.114014f); + path->quadTo(0.208984f, -0.0639648f, 0.275879f, -0.0639648f); + path->close(); + path->moveTo(0.258789f, 0.00976563f); + path->quadTo(0.213379f, 0.00976563f, 0.175781f, -0.0078125f); + path->quadTo(0.138184f, -0.0253906f, 0.111328f, -0.0603027f); + path->quadTo(0.0844727f, -0.0952148f, 0.0698242f, -0.146973f); + path->quadTo(0.0551758f, -0.19873f, 0.0551758f, -0.26709f); + path->quadTo(0.0551758f, -0.335938f, 0.0698242f, -0.387939f); + path->quadTo(0.0844727f, -0.439941f, 0.111328f, -0.475098f); + path->quadTo(0.138184f, -0.510254f, 0.175781f, -0.528076f); + path->quadTo(0.213379f, -0.545898f, 0.258789f, -0.545898f); + path->quadTo(0.287598f, -0.545898f, 0.311035f, -0.539307f); + path->quadTo(0.334473f, -0.532715f, 0.353027f, -0.521729f); + path->quadTo(0.371582f, -0.510742f, 0.38623f, -0.49585f); + path->quadTo(0.400879f, -0.480957f, 0.412109f, -0.463867f); + path->lineTo(0.416016f, -0.463867f); + path->lineTo(0.429199f, -0.536133f); + path->lineTo(0.500977f, -0.536133f); + path->lineTo(0.500977f, 0.240234f); + path->lineTo(0.412109f, 0.240234f); + path->lineTo(0.412109f, 0.0112305f); + path->quadTo(0.412109f, 0.00195313f, 0.413086f, -0.012207f); + path->quadTo(0.414063f, -0.0263672f, 0.415039f, -0.0395508f); + path->quadTo(0.416504f, -0.0551758f, 0.417969f, -0.0717773f); + path->lineTo(0.412109f, -0.0717773f); + path->quadTo(0.401367f, -0.0551758f, 0.386963f, -0.0402832f); + path->quadTo(0.372559f, -0.0253906f, 0.35376f, -0.0141602f); + path->quadTo(0.334961f, -0.00292969f, 0.311523f, 0.00341797f); + path->quadTo(0.288086f, 0.00976563f, 0.258789f, 0.00976563f); + path->close(); + *widthArray.append() = 0x00009600; + + path = SkNEW(SkPath); // r + *pathArray.append() = path; + path->moveTo(0.316895f, -0.545898f); + path->quadTo(0.331055f, -0.545898f, 0.348633f, -0.544678f); + path->quadTo(0.366211f, -0.543457f, 0.378906f, -0.541016f); + path->lineTo(0.367188f, -0.458984f); + path->quadTo(0.353516f, -0.461426f, 0.339111f, -0.463135f); + path->quadTo(0.324707f, -0.464844f, 0.312012f, -0.464844f); + path->quadTo(0.28125f, -0.464844f, 0.255859f, -0.452393f); + path->quadTo(0.230469f, -0.439941f, 0.212158f, -0.416748f); + path->quadTo(0.193848f, -0.393555f, 0.183838f, -0.361084f); + path->quadTo(0.173828f, -0.328613f, 0.173828f, -0.289063f); + path->lineTo(0.173828f, 0); + path->lineTo(0.0849609f, 0); + path->lineTo(0.0849609f, -0.536133f); + path->lineTo(0.157227f, -0.536133f); + path->lineTo(0.167969f, -0.437988f); + path->lineTo(0.171875f, -0.437988f); + path->quadTo(0.184082f, -0.458984f, 0.197998f, -0.478516f); + path->quadTo(0.211914f, -0.498047f, 0.229248f, -0.512939f); + path->quadTo(0.246582f, -0.527832f, 0.268066f, -0.536865f); + path->quadTo(0.289551f, -0.545898f, 0.316895f, -0.545898f); + path->close(); + *widthArray.append() = 0x00006620; + + path = SkNEW(SkPath); // s + *pathArray.append() = path; + path->moveTo(0.405762f, -0.146973f); + path->quadTo(0.405762f, -0.10791f, 0.391602f, -0.0786133f); + path->quadTo(0.377441f, -0.0493164f, 0.35083f, -0.029541f); + path->quadTo(0.324219f, -0.00976563f, 0.286621f, 0); + path->quadTo(0.249023f, 0.00976563f, 0.202148f, 0.00976563f); + path->quadTo(0.148926f, 0.00976563f, 0.11084f, 0.0012207f); + path->quadTo(0.0727539f, -0.00732422f, 0.0439453f, -0.0239258f); + path->lineTo(0.0439453f, -0.10498f); + path->quadTo(0.059082f, -0.097168f, 0.0776367f, -0.0895996f); + path->quadTo(0.0961914f, -0.0820313f, 0.116699f, -0.0761719f); + path->quadTo(0.137207f, -0.0703125f, 0.158936f, -0.0666504f); + path->quadTo(0.180664f, -0.0629883f, 0.202148f, -0.0629883f); + path->quadTo(0.233887f, -0.0629883f, 0.256104f, -0.0683594f); + path->quadTo(0.27832f, -0.0737305f, 0.292236f, -0.0837402f); + path->quadTo(0.306152f, -0.09375f, 0.3125f, -0.108154f); + path->quadTo(0.318848f, -0.122559f, 0.318848f, -0.140137f); + path->quadTo(0.318848f, -0.155273f, 0.313965f, -0.16748f); + path->quadTo(0.309082f, -0.179688f, 0.296143f, -0.19165f); + path->quadTo(0.283203f, -0.203613f, 0.260742f, -0.21582f); + path->quadTo(0.238281f, -0.228027f, 0.203125f, -0.243164f); + path->quadTo(0.167969f, -0.258301f, 0.139893f, -0.272949f); + path->quadTo(0.111816f, -0.287598f, 0.0922852f, -0.305664f); + path->quadTo(0.0727539f, -0.32373f, 0.0622559f, -0.347412f); + path->quadTo(0.0517578f, -0.371094f, 0.0517578f, -0.403809f); + path->quadTo(0.0517578f, -0.437988f, 0.0651855f, -0.4646f); + path->quadTo(0.0786133f, -0.491211f, 0.103027f, -0.509277f); + path->quadTo(0.127441f, -0.527344f, 0.161621f, -0.536621f); + path->quadTo(0.195801f, -0.545898f, 0.237793f, -0.545898f); + path->quadTo(0.285156f, -0.545898f, 0.324463f, -0.535645f); + path->quadTo(0.36377f, -0.525391f, 0.398926f, -0.508789f); + path->lineTo(0.368164f, -0.437012f); + path->quadTo(0.336426f, -0.451172f, 0.302979f, -0.46167f); + path->quadTo(0.269531f, -0.472168f, 0.234863f, -0.472168f); + path->quadTo(0.185059f, -0.472168f, 0.161133f, -0.455811f); + path->quadTo(0.137207f, -0.439453f, 0.137207f, -0.40918f); + path->quadTo(0.137207f, -0.39209f, 0.142822f, -0.379395f); + path->quadTo(0.148438f, -0.366699f, 0.162109f, -0.355469f); + path->quadTo(0.175781f, -0.344238f, 0.19873f, -0.332764f); + path->quadTo(0.22168f, -0.321289f, 0.255859f, -0.307129f); + path->quadTo(0.291016f, -0.29248f, 0.318604f, -0.277832f); + path->quadTo(0.346191f, -0.263184f, 0.365723f, -0.244873f); + path->quadTo(0.385254f, -0.226563f, 0.395508f, -0.203125f); + path->quadTo(0.405762f, -0.179688f, 0.405762f, -0.146973f); + path->close(); + *widthArray.append() = 0x00007380; + + path = SkNEW(SkPath); // t + *pathArray.append() = path; + path->moveTo(0.24707f, -0.0629883f); + path->quadTo(0.255859f, -0.0629883f, 0.266846f, -0.0639648f); + path->quadTo(0.277832f, -0.0649414f, 0.288086f, -0.0664063f); + path->quadTo(0.29834f, -0.0678711f, 0.306885f, -0.0698242f); + path->quadTo(0.31543f, -0.0717773f, 0.319824f, -0.0732422f); + path->lineTo(0.319824f, -0.00585938f); + path->quadTo(0.313477f, -0.00292969f, 0.303711f, 0); + path->quadTo(0.293945f, 0.00292969f, 0.282227f, 0.00512695f); + path->quadTo(0.270508f, 0.00732422f, 0.257813f, 0.00854492f); + path->quadTo(0.245117f, 0.00976563f, 0.23291f, 0.00976563f); + path->quadTo(0.202637f, 0.00976563f, 0.176758f, 0.00195313f); + path->quadTo(0.150879f, -0.00585938f, 0.13208f, -0.0249023f); + path->quadTo(0.113281f, -0.0439453f, 0.102539f, -0.076416f); + path->quadTo(0.0917969f, -0.108887f, 0.0917969f, -0.158203f); + path->lineTo(0.0917969f, -0.469238f); + path->lineTo(0.0161133f, -0.469238f); + path->lineTo(0.0161133f, -0.508789f); + path->lineTo(0.0917969f, -0.546875f); + path->lineTo(0.129883f, -0.65918f); + path->lineTo(0.181152f, -0.65918f); + path->lineTo(0.181152f, -0.536133f); + path->lineTo(0.315918f, -0.536133f); + path->lineTo(0.315918f, -0.469238f); + path->lineTo(0.181152f, -0.469238f); + path->lineTo(0.181152f, -0.158203f); + path->quadTo(0.181152f, -0.11084f, 0.196533f, -0.0869141f); + path->quadTo(0.211914f, -0.0629883f, 0.24707f, -0.0629883f); + path->close(); + *widthArray.append() = 0x000056c0; + + path = SkNEW(SkPath); // u + *pathArray.append() = path; + path->moveTo(0.432129f, 0); + path->lineTo(0.418945f, -0.0717773f); + path->lineTo(0.414063f, -0.0717773f); + path->quadTo(0.401855f, -0.0507813f, 0.38501f, -0.0354004f); + path->quadTo(0.368164f, -0.0200195f, 0.348145f, -0.0100098f); + path->quadTo(0.328125f, 0, 0.305664f, 0.00488281f); + path->quadTo(0.283203f, 0.00976563f, 0.259766f, 0.00976563f); + path->quadTo(0.215332f, 0.00976563f, 0.181641f, -0.00146484f); + path->quadTo(0.147949f, -0.0126953f, 0.125488f, -0.0366211f); + path->quadTo(0.103027f, -0.0605469f, 0.0915527f, -0.0976563f); + path->quadTo(0.0800781f, -0.134766f, 0.0800781f, -0.186035f); + path->lineTo(0.0800781f, -0.536133f); + path->lineTo(0.168945f, -0.536133f); + path->lineTo(0.168945f, -0.190918f); + path->quadTo(0.168945f, -0.127441f, 0.194824f, -0.0957031f); + path->quadTo(0.220703f, -0.0639648f, 0.274902f, -0.0639648f); + path->quadTo(0.314453f, -0.0639648f, 0.341309f, -0.0766602f); + path->quadTo(0.368164f, -0.0893555f, 0.384521f, -0.114014f); + path->quadTo(0.400879f, -0.138672f, 0.407959f, -0.174805f); + path->quadTo(0.415039f, -0.210938f, 0.415039f, -0.257813f); + path->lineTo(0.415039f, -0.536133f); + path->lineTo(0.503906f, -0.536133f); + path->lineTo(0.503906f, 0); + path->close(); + *widthArray.append() = 0x000096c0; + + path = SkNEW(SkPath); // v + *pathArray.append() = path; + path->moveTo(0.183105f, 0); + path->lineTo(0, -0.536133f); + path->lineTo(0.0917969f, -0.536133f); + path->lineTo(0.188965f, -0.237793f); + path->quadTo(0.194336f, -0.22168f, 0.20166f, -0.196289f); + path->quadTo(0.208984f, -0.170898f, 0.216309f, -0.144531f); + path->quadTo(0.223633f, -0.118164f, 0.229736f, -0.0947266f); + path->quadTo(0.23584f, -0.0712891f, 0.237793f, -0.059082f); + path->lineTo(0.241211f, -0.059082f); + path->quadTo(0.243652f, -0.0712891f, 0.249512f, -0.0947266f); + path->quadTo(0.255371f, -0.118164f, 0.262695f, -0.144531f); + path->quadTo(0.27002f, -0.170898f, 0.277344f, -0.196289f); + path->quadTo(0.284668f, -0.22168f, 0.290039f, -0.237793f); + path->lineTo(0.387207f, -0.536133f); + path->lineTo(0.479004f, -0.536133f); + path->lineTo(0.295898f, 0); + path->close(); + *widthArray.append() = 0x00007aa0; + + path = SkNEW(SkPath); // w + *pathArray.append() = path; + path->moveTo(0.492188f, 0); + path->lineTo(0.410156f, -0.300781f); + path->quadTo(0.408203f, -0.30957f, 0.405273f, -0.320557f); + path->quadTo(0.402344f, -0.331543f, 0.399414f, -0.34375f); + path->quadTo(0.396484f, -0.355957f, 0.393311f, -0.368652f); + path->quadTo(0.390137f, -0.381348f, 0.387207f, -0.393555f); + path->quadTo(0.380371f, -0.421875f, 0.373047f, -0.452148f); + path->lineTo(0.370117f, -0.452148f); + path->quadTo(0.363281f, -0.421387f, 0.356934f, -0.393066f); + path->quadTo(0.351563f, -0.368652f, 0.345459f, -0.342773f); + path->quadTo(0.339355f, -0.316895f, 0.333984f, -0.298828f); + path->lineTo(0.25f, 0); + path->lineTo(0.146973f, 0); + path->lineTo(0.00976563f, -0.536133f); + path->lineTo(0.103027f, -0.536133f); + path->lineTo(0.166992f, -0.250977f); + path->quadTo(0.171875f, -0.229004f, 0.176758f, -0.203369f); + path->quadTo(0.181641f, -0.177734f, 0.186035f, -0.152588f); + path->quadTo(0.19043f, -0.127441f, 0.193848f, -0.105225f); + path->quadTo(0.197266f, -0.0830078f, 0.199219f, -0.0688477f); + path->lineTo(0.202148f, -0.0688477f); + path->quadTo(0.20459f, -0.081543f, 0.20874f, -0.102783f); + path->quadTo(0.212891f, -0.124023f, 0.218018f, -0.147705f); + path->quadTo(0.223145f, -0.171387f, 0.228516f, -0.19458f); + path->quadTo(0.233887f, -0.217773f, 0.23877f, -0.233887f); + path->lineTo(0.326172f, -0.536133f); + path->lineTo(0.421875f, -0.536133f); + path->lineTo(0.505859f, -0.233887f); + path->quadTo(0.510254f, -0.217285f, 0.515869f, -0.194824f); + path->quadTo(0.521484f, -0.172363f, 0.526855f, -0.14917f); + path->quadTo(0.532227f, -0.125977f, 0.536621f, -0.104492f); + path->quadTo(0.541016f, -0.0830078f, 0.542969f, -0.0688477f); + path->lineTo(0.545898f, -0.0688477f); + path->quadTo(0.547363f, -0.081543f, 0.550537f, -0.102783f); + path->quadTo(0.553711f, -0.124023f, 0.558105f, -0.149414f); + path->quadTo(0.5625f, -0.174805f, 0.567627f, -0.201416f); + path->quadTo(0.572754f, -0.228027f, 0.578125f, -0.250977f); + path->lineTo(0.64502f, -0.536133f); + path->lineTo(0.73584f, -0.536133f); + path->lineTo(0.597168f, 0); + path->close(); + *widthArray.append() = 0x0000bf00; + + path = SkNEW(SkPath); // x + *pathArray.append() = path; + path->moveTo(0.199219f, -0.274902f); + path->lineTo(0.0268555f, -0.536133f); + path->lineTo(0.12793f, -0.536133f); + path->lineTo(0.25f, -0.335938f); + path->lineTo(0.37207f, -0.536133f); + path->lineTo(0.473145f, -0.536133f); + path->lineTo(0.299805f, -0.274902f); + path->lineTo(0.481934f, 0); + path->lineTo(0.380859f, 0); + path->lineTo(0.25f, -0.212891f); + path->lineTo(0.118164f, 0); + path->lineTo(0.0170898f, 0); + path->close(); + *widthArray.append() = 0x00008000; + + path = SkNEW(SkPath); // y + *pathArray.append() = path; + path->moveTo(0.00488281f, -0.536133f); + path->lineTo(0.097168f, -0.536133f); + path->lineTo(0.202148f, -0.236816f); + path->quadTo(0.208984f, -0.217285f, 0.216064f, -0.195801f); + path->quadTo(0.223145f, -0.174316f, 0.229248f, -0.152832f); + path->quadTo(0.235352f, -0.131348f, 0.239746f, -0.111328f); + path->quadTo(0.244141f, -0.0913086f, 0.246094f, -0.0742188f); + path->lineTo(0.249023f, -0.0742188f); + path->quadTo(0.251465f, -0.0864258f, 0.256836f, -0.107422f); + path->quadTo(0.262207f, -0.128418f, 0.268799f, -0.1521f); + path->quadTo(0.275391f, -0.175781f, 0.282471f, -0.19873f); + path->quadTo(0.289551f, -0.22168f, 0.294922f, -0.237793f); + path->lineTo(0.39209f, -0.536133f); + path->lineTo(0.483887f, -0.536133f); + path->lineTo(0.271973f, 0.0698242f); + path->quadTo(0.258301f, 0.109375f, 0.242432f, 0.140869f); + path->quadTo(0.226563f, 0.172363f, 0.205566f, 0.194336f); + path->quadTo(0.18457f, 0.216309f, 0.15625f, 0.228271f); + path->quadTo(0.12793f, 0.240234f, 0.0888672f, 0.240234f); + path->quadTo(0.0634766f, 0.240234f, 0.0449219f, 0.237549f); + path->quadTo(0.0263672f, 0.234863f, 0.0131836f, 0.231934f); + path->lineTo(0.0131836f, 0.161133f); + path->quadTo(0.0234375f, 0.163574f, 0.0390625f, 0.165283f); + path->quadTo(0.0546875f, 0.166992f, 0.0717773f, 0.166992f); + path->quadTo(0.0952148f, 0.166992f, 0.112305f, 0.161377f); + path->quadTo(0.129395f, 0.155762f, 0.14209f, 0.14502f); + path->quadTo(0.154785f, 0.134277f, 0.163818f, 0.118652f); + path->quadTo(0.172852f, 0.103027f, 0.180176f, 0.0830078f); + path->lineTo(0.208008f, 0.00488281f); + path->close(); + *widthArray.append() = 0x00007d20; + + path = SkNEW(SkPath); // z + *pathArray.append() = path; + path->moveTo(0.400879f, 0); + path->lineTo(0.0400391f, 0); + path->lineTo(0.0400391f, -0.0610352f); + path->lineTo(0.301758f, -0.469238f); + path->lineTo(0.0561523f, -0.469238f); + path->lineTo(0.0561523f, -0.536133f); + path->lineTo(0.39209f, -0.536133f); + path->lineTo(0.39209f, -0.464844f); + path->lineTo(0.13623f, -0.0668945f); + path->lineTo(0.400879f, -0.0668945f); + path->close(); + *widthArray.append() = 0x000070e0; + + path = SkNEW(SkPath); // { + *pathArray.append() = path; + path->moveTo(0.244141f, 0.0078125f); + path->quadTo(0.244141f, 0.03125f, 0.25f, 0.0461426f); + path->quadTo(0.255859f, 0.0610352f, 0.266846f, 0.0695801f); + path->quadTo(0.277832f, 0.078125f, 0.293701f, 0.0812988f); + path->quadTo(0.30957f, 0.0844727f, 0.329102f, 0.0849609f); + path->lineTo(0.329102f, 0.158203f); + path->quadTo(0.291504f, 0.157715f, 0.259521f, 0.149658f); + path->quadTo(0.227539f, 0.141602f, 0.204346f, 0.124268f); + path->quadTo(0.181152f, 0.106934f, 0.167969f, 0.0800781f); + path->quadTo(0.154785f, 0.0532227f, 0.154785f, 0.0151367f); + path->lineTo(0.154785f, -0.147949f); + path->quadTo(0.154785f, -0.198242f, 0.122803f, -0.219238f); + path->quadTo(0.0908203f, -0.240234f, 0.0297852f, -0.240234f); + path->lineTo(0.0297852f, -0.315918f); + path->quadTo(0.0908203f, -0.315918f, 0.122803f, -0.336914f); + path->quadTo(0.154785f, -0.35791f, 0.154785f, -0.408203f); + path->lineTo(0.154785f, -0.570801f); + path->quadTo(0.154785f, -0.608887f, 0.167969f, -0.635742f); + path->quadTo(0.181152f, -0.662598f, 0.204346f, -0.679932f); + path->quadTo(0.227539f, -0.697266f, 0.259521f, -0.705322f); + path->quadTo(0.291504f, -0.713379f, 0.329102f, -0.713867f); + path->lineTo(0.329102f, -0.641113f); + path->quadTo(0.30957f, -0.640625f, 0.293701f, -0.637451f); + path->quadTo(0.277832f, -0.634277f, 0.266846f, -0.625732f); + path->quadTo(0.255859f, -0.617188f, 0.25f, -0.602295f); + path->quadTo(0.244141f, -0.587402f, 0.244141f, -0.563965f); + path->lineTo(0.244141f, -0.401855f); + path->quadTo(0.244141f, -0.350586f, 0.215088f, -0.320557f); + path->quadTo(0.186035f, -0.290527f, 0.129883f, -0.280762f); + path->lineTo(0.129883f, -0.274902f); + path->quadTo(0.186035f, -0.265137f, 0.215088f, -0.235352f); + path->quadTo(0.244141f, -0.205566f, 0.244141f, -0.153809f); + path->close(); + *widthArray.append() = 0x00005aa0; + + path = SkNEW(SkPath); // | + *pathArray.append() = path; + path->moveTo(0.23877f, -0.759766f); + path->lineTo(0.312012f, -0.759766f); + path->lineTo(0.312012f, 0.240234f); + path->lineTo(0.23877f, 0.240234f); + path->close(); + *widthArray.append() = 0x00008d00; + + path = SkNEW(SkPath); // } + *pathArray.append() = path; + path->moveTo(0.109863f, -0.153809f); + path->quadTo(0.109863f, -0.205566f, 0.138916f, -0.235352f); + path->quadTo(0.167969f, -0.265137f, 0.224121f, -0.274902f); + path->lineTo(0.224121f, -0.280762f); + path->quadTo(0.167969f, -0.290527f, 0.138916f, -0.320557f); + path->quadTo(0.109863f, -0.350586f, 0.109863f, -0.401855f); + path->lineTo(0.109863f, -0.563965f); + path->quadTo(0.109863f, -0.587402f, 0.104004f, -0.602295f); + path->quadTo(0.0981445f, -0.617188f, 0.0871582f, -0.625732f); + path->quadTo(0.0761719f, -0.634277f, 0.0603027f, -0.637451f); + path->quadTo(0.0444336f, -0.640625f, 0.0249023f, -0.641113f); + path->lineTo(0.0249023f, -0.713867f); + path->quadTo(0.0625f, -0.713379f, 0.0944824f, -0.705322f); + path->quadTo(0.126465f, -0.697266f, 0.149658f, -0.679932f); + path->quadTo(0.172852f, -0.662598f, 0.186035f, -0.635742f); + path->quadTo(0.199219f, -0.608887f, 0.199219f, -0.570801f); + path->lineTo(0.199219f, -0.408203f); + path->quadTo(0.199219f, -0.382813f, 0.207275f, -0.365234f); + path->quadTo(0.215332f, -0.347656f, 0.231201f, -0.33667f); + path->quadTo(0.24707f, -0.325684f, 0.270508f, -0.320801f); + path->quadTo(0.293945f, -0.315918f, 0.324219f, -0.315918f); + path->lineTo(0.324219f, -0.240234f); + path->quadTo(0.263184f, -0.240234f, 0.231201f, -0.219238f); + path->quadTo(0.199219f, -0.198242f, 0.199219f, -0.147949f); + path->lineTo(0.199219f, 0.0151367f); + path->quadTo(0.199219f, 0.0532227f, 0.186035f, 0.0800781f); + path->quadTo(0.172852f, 0.106934f, 0.149658f, 0.124268f); + path->quadTo(0.126465f, 0.141602f, 0.0944824f, 0.149658f); + path->quadTo(0.0625f, 0.157715f, 0.0249023f, 0.158203f); + path->lineTo(0.0249023f, 0.0849609f); + path->quadTo(0.0444336f, 0.0844727f, 0.0603027f, 0.0812988f); + path->quadTo(0.0761719f, 0.078125f, 0.0871582f, 0.0695801f); + path->quadTo(0.0981445f, 0.0610352f, 0.104004f, 0.0461426f); + path->quadTo(0.109863f, 0.03125f, 0.109863f, 0.0078125f); + path->close(); + *widthArray.append() = 0x00005aa0; + + path = SkNEW(SkPath); // ~ + *pathArray.append() = path; + path->moveTo(0.258789f, -0.317871f); + path->quadTo(0.240723f, -0.325684f, 0.227295f, -0.331055f); + path->quadTo(0.213867f, -0.336426f, 0.202881f, -0.3396f); + path->quadTo(0.191895f, -0.342773f, 0.181885f, -0.343994f); + path->quadTo(0.171875f, -0.345215f, 0.161133f, -0.345215f); + path->quadTo(0.147461f, -0.345215f, 0.132813f, -0.340576f); + path->quadTo(0.118164f, -0.335938f, 0.10376f, -0.327881f); + path->quadTo(0.0893555f, -0.319824f, 0.0756836f, -0.309082f); + path->quadTo(0.0620117f, -0.29834f, 0.0498047f, -0.286133f); + path->lineTo(0.0498047f, -0.365234f); + path->quadTo(0.0986328f, -0.417969f, 0.170898f, -0.417969f); + path->quadTo(0.185059f, -0.417969f, 0.197266f, -0.416748f); + path->quadTo(0.209473f, -0.415527f, 0.2229f, -0.412354f); + path->quadTo(0.236328f, -0.40918f, 0.252686f, -0.403076f); + path->quadTo(0.269043f, -0.396973f, 0.291992f, -0.387207f); + path->quadTo(0.310059f, -0.379395f, 0.323486f, -0.374023f); + path->quadTo(0.336914f, -0.368652f, 0.348389f, -0.365479f); + path->quadTo(0.359863f, -0.362305f, 0.369629f, -0.361084f); + path->quadTo(0.379395f, -0.359863f, 0.390137f, -0.359863f); + path->quadTo(0.403809f, -0.359863f, 0.418457f, -0.364502f); + path->quadTo(0.433105f, -0.369141f, 0.44751f, -0.377197f); + path->quadTo(0.461914f, -0.385254f, 0.475586f, -0.395996f); + path->quadTo(0.489258f, -0.406738f, 0.500977f, -0.418945f); + path->lineTo(0.500977f, -0.339844f); + path->quadTo(0.452637f, -0.287109f, 0.379883f, -0.287109f); + path->quadTo(0.365723f, -0.287109f, 0.353516f, -0.28833f); + path->quadTo(0.341309f, -0.289551f, 0.327881f, -0.292725f); + path->quadTo(0.314453f, -0.295898f, 0.298096f, -0.302002f); + path->quadTo(0.281738f, -0.308105f, 0.258789f, -0.317871f); + path->close(); + *widthArray.append() = 0x00008d00; + + SkPaint::FontMetrics metrics = { + 0x00000003, -0.9375f, -0.765625f, 0.234375f, 0.234375f, 0.0625f, + 0.515625f, 0.0175781f, -0.171875f, 0.953125f, + 0.53125f, 0, 0.046875f, 0.078125f + }; + return metrics; +} + +} -- 2.34.1