From 8f8b2b568c15971fd0d2a3a1a335af0db7ac9721 Mon Sep 17 00:00:00 2001 From: Igor1201 Date: Tue, 8 Mar 2016 02:01:38 -0300 Subject: [PATCH] Added drawText helper, using bitmap fonts --- index.js | 183 ++++++++++++++++++++++++++++++++++----------- package.json | 1 + test/drawText.js | 11 +++ test/font/font.fnt | 182 ++++++++++++++++++++++++++++++++++++++++++++ test/font/font.png | Bin 0 -> 80802 bytes test/loadFont.js | 9 +++ 6 files changed, 342 insertions(+), 44 deletions(-) create mode 100644 test/drawText.js create mode 100755 test/font/font.fnt create mode 100755 test/font/font.png create mode 100644 test/loadFont.js diff --git a/index.js b/index.js index b48f8790e..2f55be5e7 100755 --- a/index.js +++ b/index.js @@ -15,6 +15,8 @@ var ImagePHash = require("./phash.js"); var BigNumber = require('bignumber.js'); var URLRegEx = require("url-regex"); var Request = require('request').defaults({ encoding: null }); +var bmfont = require('load-bmfont'); +var path = require('path'); // polyfill Promise for Node < 0.12 var Promise = Promise || require('es6-promise').Promise; @@ -86,7 +88,7 @@ function Jimp() { var w = arguments[0]; var h = arguments[1]; var cb = arguments[2]; - + if ("number" == typeof arguments[2]) { this._background = arguments[2]; var cb = arguments[3]; @@ -139,11 +141,11 @@ function Jimp() { // read from a URL var url = arguments[0]; var cb = arguments[1]; - + if ("undefined" == typeof cb) cb = noop; if ("function" != typeof cb) return throwError.call(this, "cb must be a function", cb); - + var that = this; Request(url, function (err, response, data) { if (err) return throwError.call(that, err, cb); @@ -158,7 +160,7 @@ function Jimp() { // read from a path var path = arguments[0]; var cb = arguments[1]; - + if ("undefined" == typeof cb) cb = noop; if ("function" != typeof cb) return throwError.call(this, "cb must be a function", cb); @@ -339,9 +341,9 @@ Jimp.rgbaToInt = function(r, g, b, a, cb){ return throwError.call(this, "b must be between 0 and 255", cb); if (a < 0 || a > 255) return throwError.call(this, "a must be between 0 and 255", cb); - + var i = (r * Math.pow(256, 3)) + (g * Math.pow(256, 2)) + (b * Math.pow(256, 1)) + (a * Math.pow(256, 0)); - + if (isNodePattern(cb)) return cb.call(this, null, i); else return i; } @@ -355,13 +357,13 @@ Jimp.rgbaToInt = function(r, g, b, a, cb){ Jimp.intToRGBA = function(i, cb){ if ("number" != typeof i) return throwError.call(this, "i must be a number", cb); - + var rgba = {} rgba.r = Math.floor(i / Math.pow(256, 3)); rgba.g = Math.floor((i - (rgba.r * Math.pow(256, 3))) / Math.pow(256, 2)); rgba.b = Math.floor((i - (rgba.r * Math.pow(256, 3)) - (rgba.g * Math.pow(256, 2))) / Math.pow(256, 1)); rgba.a = Math.floor((i - (rgba.r * Math.pow(256, 3)) - (rgba.g * Math.pow(256, 2)) - (rgba.b * Math.pow(256, 1))) / Math.pow(256, 0)); - + if (isNodePattern(cb)) return cb.call(this, null, rgba); else return rgba; } @@ -401,7 +403,7 @@ Jimp.diff = function (img1, img2, threshold) { break; } } - + threshold = threshold || 0.1; if ("number" != typeof threshold || threshold < 0 || threshold > 1) return throwError.call(this, "threshold must be a number between 0 and 1"); @@ -416,7 +418,7 @@ Jimp.diff = function (img1, img2, threshold) { diff.bitmap.height, {threshold: threshold} ); - + return { percent: numDiffPixels / (diff.bitmap.width * diff.bitmap.height), image: diff @@ -632,10 +634,10 @@ Jimp.prototype.getPixelColor = Jimp.prototype.getPixelColour = function (x, y, c // round input x = Math.round(x); y = Math.round(y); - + var idx = this.getPixelIndex(x, y); var hex = this.bitmap.data.readUInt32BE(idx); - + if (isNodePattern(cb)) return cb.call(this, null, hex); else return hex; }; @@ -654,10 +656,10 @@ Jimp.prototype.setPixelColor = Jimp.prototype.setPixelColour = function (hex, x, // round input x = Math.round(x); y = Math.round(y); - + var idx = this.getPixelIndex(x, y); this.bitmap.data.writeUInt32BE(hex, idx, true); - + if (isNodePattern(cb)) return cb.call(this, null, this); else return this; }; @@ -686,14 +688,14 @@ Jimp.prototype.hash = function(base, cb){ return throwError.call(this, "base must be a number", cb); if (base < 2 || base > 64) return throwError.call(this, "base must be a number between 2 and 64", cb); - + var hash = (new ImagePHash()).getHash(this); hash = (new BigNumber(hash, 2)).toString(base); - + while (hash.length < maxHashLength[base]) { hash = "0" + hash; // pad out with leading zeros } - + if (isNodePattern(cb)) return cb.call(this, null, hash); else return hash; } @@ -816,7 +818,7 @@ Jimp.prototype.autocrop = function() { Math.max((rgba1.r - rgba2.r) ^ 2, (rgba1.r - rgba2.r - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.g - rgba2.g) ^ 2, (rgba1.g - rgba2.g - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.b - rgba2.b) ^ 2, (rgba1.b - rgba2.b - rgba1.a + rgba2.a) ^ 2) - ) / (256 * 256 * 3) + ) / (256 * 256 * 3) ; if (difference > tolerance) { // this pixel is too distant from the first one: abort this side scan @@ -839,7 +841,7 @@ Jimp.prototype.autocrop = function() { Math.max((rgba1.r - rgba2.r) ^ 2, (rgba1.r - rgba2.r - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.g - rgba2.g) ^ 2, (rgba1.g - rgba2.g - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.b - rgba2.b) ^ 2, (rgba1.b - rgba2.b - rgba1.a + rgba2.a) ^ 2) - ) / (256 * 256 * 3) + ) / (256 * 256 * 3) ; if (difference > tolerance) { // this pixel is too distant from the first one: abort this side scan @@ -860,7 +862,7 @@ Jimp.prototype.autocrop = function() { Math.max((rgba1.r - rgba2.r) ^ 2, (rgba1.r - rgba2.r - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.g - rgba2.g) ^ 2, (rgba1.g - rgba2.g - rgba1.a + rgba2.a) ^ 2) + Math.max((rgba1.b - rgba2.b) ^ 2, (rgba1.b - rgba2.b - rgba1.a + rgba2.a) ^ 2) - ) / (256 * 256 * 3) + ) / (256 * 256 * 3) ; if (difference > tolerance) { // this pixel is too distant from the first one: abort this side scan @@ -1016,27 +1018,27 @@ Jimp.prototype.composite = function (src, x, y, cb) { src.scan(0, 0, src.bitmap.width, src.bitmap.height, function(sx, sy, idx) { // http://stackoverflow.com/questions/7438263/alpha-compositing-algorithm-blend-modes var dstIdx = that.getPixelIndex(x+sx, y+sy); - + var fg = { r: this.bitmap.data[idx + 0] / 255, g: this.bitmap.data[idx + 1] / 255, b: this.bitmap.data[idx + 2] / 255, a: this.bitmap.data[idx + 3] / 255 } - + var bg = { r: that.bitmap.data[dstIdx + 0] / 255, g: that.bitmap.data[dstIdx + 1] / 255, b: that.bitmap.data[dstIdx + 2] / 255, a: that.bitmap.data[dstIdx + 3] / 255 } - + var a = bg.a + fg.a - bg.a * fg.a; - + var r = ((fg.r * fg.a) + (bg.r * bg.a) * (1 - fg.a)) / a; var g = ((fg.g * fg.a) + (bg.g * bg.a) * (1 - fg.a)) / a; var b = ((fg.b * fg.a) + (bg.b * bg.a) * (1 - fg.a)) / a; - + that.bitmap.data[dstIdx + 0] = Jimp.limit255(r * 255); that.bitmap.data[dstIdx + 1] = Jimp.limit255(g * 255); that.bitmap.data[dstIdx + 2] = Jimp.limit255(b * 255); @@ -1460,7 +1462,7 @@ Jimp.prototype.fade = function (f, cb) { // this method is an alternative to opacity (which may be deprecated) this.opacity(1 - f); - + if (isNodePattern(cb)) return cb.call(this, null, this); else return this; }; @@ -1490,18 +1492,18 @@ Jimp.prototype.opaque = function (cb) { Jimp.prototype.resize = function (w, h, mode, cb) { if ("number" != typeof w || "number" != typeof h) return throwError.call(this, "w and h must be numbers", cb); - + if ("function" == typeof mode && "undefined" == typeof cb) { cb = mode; mode = null; } - + if (w == Jimp.AUTO && h == Jimp.AUTO) return throwError.call(this, "w and h cannot both the set to auto", cb); if (w == Jimp.AUTO) w = this.bitmap.width * (h / this.bitmap.height); if (h == Jimp.AUTO) h = this.bitmap.height * (w / this.bitmap.width); - + // round inputs w = Math.round(w); h = Math.round(h); @@ -1543,7 +1545,7 @@ Jimp.prototype.cover = function (w, h, cb) { w/this.bitmap.width : h/this.bitmap.height; this.scale(f); this.crop(this.bitmap.width / 2 - w / 2, this.bitmap.height / 2 - h / 2, w, h); - + if (isNodePattern(cb)) return cb.call(this, null, this); else return this; }; @@ -1562,13 +1564,13 @@ Jimp.prototype.contain = function (w, h, cb) { var f = (w/h > this.bitmap.width/this.bitmap.height) ? h/this.bitmap.height : w/this.bitmap.width; var c = this.clone().scale(f); - + this.resize(w, h); this.scan(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) { this.bitmap.data.writeUInt32BE(this._background, idx); }); this.blit(c, this.bitmap.width / 2 - c.bitmap.width / 2, this.bitmap.height / 2 - c.bitmap.height / 2); - + if (isNodePattern(cb)) return cb.call(this, null, this); else return this; }; @@ -1616,7 +1618,7 @@ function simpleRotate(deg) { } this.bitmap.data = new Buffer(dstBuffer); - + var tmp = this.bitmap.width; this.bitmap.width = this.bitmap.height; this.bitmap.height = tmp; @@ -1634,7 +1636,7 @@ function advancedRotate(deg, resize) { var rad = (deg % 360) * Math.PI / 180; var cosine = Math.cos(rad); var sine = Math.sin(rad); - + var w, h; // the final width and height if resize == true if (resize == true) { @@ -1648,15 +1650,15 @@ function advancedRotate(deg, resize) { this.scan(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) { this.bitmap.data.writeUInt32BE(this._background, idx); }); - + var max= Math.max(w,h,this.bitmap.width,this.bitmap.height) this.resize(max, max); - + this.blit(c, this.bitmap.width / 2 - c.bitmap.width / 2, this.bitmap.height / 2 - c.bitmap.height / 2); } var dstBuffer = new Buffer(this.bitmap.data.length); - + function createTranslationFunction(deltaX, deltaY) { return function(x, y) { return { @@ -1668,7 +1670,7 @@ function advancedRotate(deg, resize) { var translate2Cartesian = createTranslationFunction(-(this.bitmap.width / 2), -(this.bitmap.height / 2)); var translate2Screen = createTranslationFunction(this.bitmap.width / 2, this.bitmap.height / 2); - + for (var y = 0; y < this.bitmap.height; y++) { for (var x = 0; x < this.bitmap.width; x++) { var cartesian = translate2Cartesian(x, this.bitmap.height - y); @@ -1690,7 +1692,7 @@ function advancedRotate(deg, resize) { } } this.bitmap.data = dstBuffer; - + if (resize == true) { // now crop the image to the final size var x = (this.bitmap.width / 2) - (w/2); @@ -1720,16 +1722,16 @@ Jimp.prototype.rotate = function (deg, resize, cb) { cb = resize; resize = true; } - + if ("number" != typeof deg) return throwError.call(this, "deg must be a number", cb); - + if ("boolean" != typeof resize) return throwError.call(this, "resize must be a boolean", cb); if (deg % 90 == 0 && resize !== false) simpleRotate.call(this, deg, cb); else advancedRotate.call(this, deg, resize, cb); - + if (isNodePattern(cb)) return cb.call(this, null, this); else return this; }; @@ -1758,10 +1760,10 @@ Jimp.prototype.getBuffer = function (mime, cb) { colorType: (this._rgba) ? 6 : 2, inputHasAlpha: true }); - + if (this._rgba) png.data = new Buffer(this.bitmap.data); else png.data = compositeBitmapOverBackground(this).data; // when PNG doesn't support alpha - + StreamToBuffer(png.pack(), function (err, buffer) { return cb.call(that, null, buffer); }); @@ -1913,4 +1915,97 @@ Jimp.prototype.write = function (path, cb) { return this; }; +function loadPages(dir, pages) { + var newPages = pages.map(function (page) { + return Jimp.read(dir + '/' + page); + }); + + return Promise.all(newPages); +} + +/** + * Loads a bitmap font from a file + * @param file the file path of a .fnt file + * @param (optional) cb a function to call when the font is loaded + * @returns a promise + */ +Jimp.loadFont = function (file, cb) { + if ("string" != typeof file) + return throwError.call(this, "file must be a string", cb); + + var that = this; + + return new Promise(function (resolve, reject) { + cb = cb || function(err, image) { + if (err) reject(err); + else resolve(image); + } + + bmfont(file, function(err, font) { + var chars = {}, kernings = {}; + + if (err) + return throwError.call(that, err, cb); + + for (var i = 0; i < font.chars.length; i++) { + chars[String.fromCharCode(font.chars[i].id)] = font.chars[i]; + } + + for (var i = 0; i < font.kernings.length; i++) { + var firstString = String.fromCharCode(font.kernings[i].first); + kernings[firstString] = kernings[firstString] || {}; + kernings[firstString][String.fromCharCode(font.kernings[i].second)] = font.kernings[i].amount; + } + + loadPages(path.dirname(file), font.pages).then(function (pages) { + cb(null, { + chars: chars, + kernings: kernings, + pages: pages, + common: font.common, + info: font.info + }); + }); + }); + }); +}; + +function drawCharacter(image, font, x, y, char) { + if (char.width > 0 && char.height > 0) { + var imageChar = font.pages[char.page].clone().crop(char.x, char.y, char.width, char.height); + return image.composite(imageChar, x + char.xoffset, y + char.yoffset); + } + return image; +} + +/** + * Draws a text on a image + * @param font a bitmap font loaded from `Jimp.loadFont` command + * @param x the x position to start drawing the text + * @param y the y position to start drawing the text + * @param text the text to draw + * @param (optional) cb a function to call when the text is written + * @returns this for chaining of methods + */ +Jimp.prototype.drawText = function (font, x, y, text, cb) { + if ("object" != typeof font) + return throwError.call(this, "font must be a Jimp loadFont", cb); + if ("number" != typeof x || "number" != typeof y) + return throwError.call(this, "x and y must be numbers", cb); + if ("string" != typeof text) + return throwError.call(this, "text must be a string", cb); + + var that = this; + + for (var i = 0; i < text.length; i++) { + if (font.chars[text[i]]) { + that = drawCharacter(that, font, x, y, font.chars[text[i]]); + x += (font.kernings[text[i]] && font.kernings[text[i]][text[i+1]] ? font.kernings[text[i]][text[i+1]] : 0) + (font.chars[text[i]].xadvance || 0); + } + } + + if (isNodePattern(cb)) return cb.call(this, null, that); + else return that; +}; + module.exports = Jimp; diff --git a/package.json b/package.json index c2acce910..8c62ed419 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "exif-parser": "^0.1.9", "file-type": "^3.1.0", "jpeg-js": "^0.1.1", + "load-bmfont": "^1.2.3", "mime": "^1.3.4", "pixelmatch": "^4.0.0", "pngjs": "^2.1.0", diff --git a/test/drawText.js b/test/drawText.js new file mode 100644 index 000000000..38cbc9e6c --- /dev/null +++ b/test/drawText.js @@ -0,0 +1,11 @@ +var Jimp = require("../index.js"); + +Jimp.loadFont("font/font.fnt").then(function (font) { + Jimp.read("lenna.png").then(function (image) { + image.clone().drawText(font, 0, 0, "Lenna").write("./output/lenna-text.png"); + }).catch(function (err) { + console.log(err); + }); +}).catch(function (err) { + console.log(err); +}); diff --git a/test/font/font.fnt b/test/font/font.fnt new file mode 100755 index 000000000..d04be91a0 --- /dev/null +++ b/test/font/font.fnt @@ -0,0 +1,182 @@ +info face=font size=72 bold=0 italic=0 charset= unicode= stretchH=100 smooth=1 aa=1 padding=2,2,2,2 spacing=0,0 outline=0 +common lineHeight=80 base=57 scaleW=361 scaleH=512 pages=1 packed=0 +page id=0 file="font.png" +chars count=80 +char id=97 x=2 y=2 width=37 height=41 xoffset=3 yoffset=18 xadvance=40 page=0 chnl=15 +char id=98 x=2 y=45 width=35 height=55 xoffset=5 yoffset=5 xadvance=40 page=0 chnl=15 +char id=99 x=2 y=102 width=35 height=41 xoffset=3 yoffset=18 xadvance=36 page=0 chnl=15 +char id=100 x=2 y=145 width=35 height=55 xoffset=2 yoffset=5 xadvance=40 page=0 chnl=15 +char id=101 x=2 y=202 width=37 height=41 xoffset=3 yoffset=18 xadvance=40 page=0 chnl=15 +char id=102 x=39 y=45 width=24 height=55 xoffset=1 yoffset=4 xadvance=20 page=0 chnl=15 +char id=103 x=39 y=102 width=35 height=56 xoffset=2 yoffset=18 xadvance=40 page=0 chnl=15 +char id=104 x=65 y=2 width=33 height=54 xoffset=5 yoffset=5 xadvance=40 page=0 chnl=15 +char id=105 x=2 y=245 width=8 height=54 xoffset=5 yoffset=5 xadvance=16 page=0 chnl=15 +char id=106 x=2 y=301 width=17 height=69 xoffset=-3 yoffset=5 xadvance=16 page=0 chnl=15 +char id=107 x=12 y=245 width=33 height=54 xoffset=5 yoffset=5 xadvance=36 page=0 chnl=15 +char id=108 x=41 y=160 width=8 height=54 xoffset=5 yoffset=5 xadvance=16 page=0 chnl=15 +char id=109 x=65 y=58 width=53 height=41 xoffset=5 yoffset=18 xadvance=60 page=0 chnl=15 +char id=110 x=100 y=2 width=33 height=40 xoffset=5 yoffset=18 xadvance=40 page=0 chnl=15 +char id=111 x=2 y=372 width=37 height=41 xoffset=2 yoffset=18 xadvance=40 page=0 chnl=15 +char id=112 x=21 y=301 width=35 height=55 xoffset=5 yoffset=18 xadvance=40 page=0 chnl=15 +char id=113 x=47 y=216 width=34 height=55 xoffset=3 yoffset=18 xadvance=40 page=0 chnl=15 +char id=114 x=51 y=160 width=23 height=40 xoffset=5 yoffset=18 xadvance=24 page=0 chnl=15 +char id=115 x=2 y=415 width=33 height=41 xoffset=2 yoffset=18 xadvance=36 page=0 chnl=15 +char id=116 x=37 y=415 width=21 height=54 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=15 +char id=117 x=2 y=458 width=32 height=41 xoffset=5 yoffset=19 xadvance=40 page=0 chnl=15 +char id=118 x=36 y=471 width=37 height=39 xoffset=1 yoffset=19 xadvance=36 page=0 chnl=15 +char id=119 x=41 y=358 width=54 height=39 xoffset=0 yoffset=19 xadvance=52 page=0 chnl=15 +char id=120 x=60 y=399 width=38 height=39 xoffset=1 yoffset=19 xadvance=36 page=0 chnl=15 +char id=121 x=75 y=440 width=37 height=55 xoffset=1 yoffset=19 xadvance=36 page=0 chnl=15 +char id=122 x=58 y=273 width=35 height=39 xoffset=1 yoffset=19 xadvance=36 page=0 chnl=15 +char id=65 x=76 y=101 width=51 height=54 xoffset=0 yoffset=5 xadvance=48 page=0 chnl=15 +char id=66 x=120 y=44 width=41 height=54 xoffset=5 yoffset=5 xadvance=48 page=0 chnl=15 +char id=67 x=76 y=157 width=48 height=56 xoffset=4 yoffset=4 xadvance=52 page=0 chnl=15 +char id=68 x=83 y=215 width=45 height=54 xoffset=6 yoffset=5 xadvance=52 page=0 chnl=15 +char id=69 x=126 y=157 width=41 height=54 xoffset=6 yoffset=5 xadvance=48 page=0 chnl=15 +char id=70 x=129 y=100 width=37 height=54 xoffset=6 yoffset=5 xadvance=44 page=0 chnl=15 +char id=71 x=95 y=271 width=50 height=56 xoffset=4 yoffset=4 xadvance=56 page=0 chnl=15 +char id=72 x=130 y=213 width=43 height=54 xoffset=6 yoffset=5 xadvance=52 page=0 chnl=15 +char id=73 x=97 y=329 width=9 height=54 xoffset=7 yoffset=5 xadvance=20 page=0 chnl=15 +char id=74 x=163 y=2 width=31 height=55 xoffset=2 yoffset=5 xadvance=36 page=0 chnl=15 +char id=75 x=168 y=59 width=45 height=54 xoffset=5 yoffset=5 xadvance=48 page=0 chnl=15 +char id=76 x=196 y=2 width=34 height=54 xoffset=5 yoffset=5 xadvance=40 page=0 chnl=15 +char id=77 x=169 y=115 width=51 height=54 xoffset=5 yoffset=5 xadvance=60 page=0 chnl=15 +char id=78 x=215 y=58 width=43 height=54 xoffset=5 yoffset=5 xadvance=52 page=0 chnl=15 +char id=79 x=108 y=329 width=52 height=56 xoffset=3 yoffset=4 xadvance=56 page=0 chnl=15 +char id=80 x=232 y=2 width=42 height=54 xoffset=6 yoffset=5 xadvance=48 page=0 chnl=15 +char id=81 x=114 y=387 width=53 height=59 xoffset=3 yoffset=4 xadvance=56 page=0 chnl=15 +char id=82 x=147 y=269 width=48 height=54 xoffset=6 yoffset=5 xadvance=52 page=0 chnl=15 +char id=83 x=162 y=325 width=43 height=56 xoffset=3 yoffset=4 xadvance=48 page=0 chnl=15 +char id=84 x=114 y=448 width=43 height=54 xoffset=2 yoffset=5 xadvance=44 page=0 chnl=15 +char id=85 x=159 y=448 width=43 height=55 xoffset=6 yoffset=5 xadvance=52 page=0 chnl=15 +char id=86 x=169 y=383 width=50 height=54 xoffset=0 yoffset=5 xadvance=48 page=0 chnl=15 +char id=87 x=204 y=439 width=69 height=54 xoffset=1 yoffset=5 xadvance=68 page=0 chnl=15 +char id=88 x=175 y=171 width=50 height=54 xoffset=0 yoffset=5 xadvance=48 page=0 chnl=15 +char id=89 x=222 y=114 width=50 height=54 xoffset=0 yoffset=5 xadvance=48 page=0 chnl=15 +char id=90 x=260 y=58 width=43 height=54 xoffset=1 yoffset=5 xadvance=44 page=0 chnl=15 +char id=33 x=276 y=2 width=10 height=54 xoffset=6 yoffset=5 xadvance=20 page=0 chnl=15 +char id=8470 x=288 y=2 width=71 height=54 xoffset=6 yoffset=5 xadvance=77 page=0 chnl=15 +char id=59 x=100 y=387 width=10 height=50 xoffset=6 yoffset=19 xadvance=20 page=0 chnl=15 +char id=37 x=197 y=227 width=58 height=57 xoffset=4 yoffset=4 xadvance=64 page=0 chnl=15 +char id=58 x=175 y=227 width=9 height=39 xoffset=7 yoffset=19 xadvance=20 page=0 chnl=15 +char id=63 x=227 y=170 width=36 height=55 xoffset=3 yoffset=4 xadvance=40 page=0 chnl=15 +char id=42 x=58 y=329 width=27 height=24 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=15 +char id=40 x=207 y=286 width=19 height=70 xoffset=4 yoffset=4 xadvance=24 page=0 chnl=15 +char id=41 x=221 y=358 width=20 height=70 xoffset=4 yoffset=4 xadvance=24 page=0 chnl=15 +char id=95 x=221 y=430 width=44 height=7 xoffset=-1 yoffset=66 xadvance=40 page=0 chnl=15 +char id=43 x=228 y=286 width=36 height=36 xoffset=4 yoffset=14 xadvance=42 page=0 chnl=15 +char id=45 x=2 y=501 width=22 height=9 xoffset=2 yoffset=34 xadvance=24 page=0 chnl=15 +char id=61 x=228 y=324 width=36 height=24 xoffset=4 yoffset=20 xadvance=42 page=0 chnl=15 +char id=46 x=47 y=273 width=9 height=9 xoffset=7 yoffset=49 xadvance=20 page=0 chnl=15 +char id=44 x=207 y=358 width=10 height=20 xoffset=6 yoffset=49 xadvance=20 page=0 chnl=15 +char id=47 x=257 y=227 width=23 height=55 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=15 +char id=124 x=243 y=350 width=8 height=70 xoffset=7 yoffset=4 xadvance=19 page=0 chnl=15 +char id=34 x=41 y=2 width=21 height=20 xoffset=3 yoffset=5 xadvance=26 page=0 chnl=15 +char id=39 x=60 y=440 width=10 height=20 xoffset=3 yoffset=5 xadvance=14 page=0 chnl=15 +char id=64 x=253 y=350 width=69 height=70 xoffset=4 yoffset=4 xadvance=73 page=0 chnl=15 +char id=35 x=265 y=170 width=41 height=55 xoffset=1 yoffset=4 xadvance=40 page=0 chnl=15 +char id=36 x=275 y=422 width=36 height=66 xoffset=3 yoffset=0 xadvance=40 page=0 chnl=15 +char id=94 x=274 y=114 width=33 height=30 xoffset=2 yoffset=4 xadvance=34 page=0 chnl=15 +char id=38 x=266 y=284 width=46 height=56 xoffset=3 yoffset=4 xadvance=48 page=0 chnl=15 +char id=123 x=313 y=422 width=23 height=70 xoffset=2 yoffset=4 xadvance=24 page=0 chnl=15 +char id=125 x=308 y=146 width=23 height=70 xoffset=2 yoffset=4 xadvance=24 page=0 chnl=15 +char id=91 x=309 y=58 width=16 height=68 xoffset=5 yoffset=5 xadvance=20 page=0 chnl=15 +char id=93 x=327 y=58 width=16 height=68 xoffset=1 yoffset=5 xadvance=20 page=0 chnl=15 +char id=32 x=0 y=0 width=0 height=0 xoffset=1 yoffset=5 xadvance=20 page=0 chnl=15 +kernings count=96 +kerning first=32 second=65 amount=-4 +kerning first=32 second=84 amount=-1 +kerning first=32 second=89 amount=-1 +kerning first=65 second=32 amount=-4 +kerning first=65 second=84 amount=-5 +kerning first=65 second=86 amount=-5 +kerning first=65 second=87 amount=-3 +kerning first=65 second=89 amount=-5 +kerning first=65 second=118 amount=-1 +kerning first=65 second=119 amount=-1 +kerning first=65 second=121 amount=-1 +kerning first=70 second=44 amount=-8 +kerning first=70 second=46 amount=-8 +kerning first=70 second=65 amount=-4 +kerning first=76 second=32 amount=-3 +kerning first=76 second=84 amount=-5 +kerning first=76 second=86 amount=-5 +kerning first=76 second=87 amount=-5 +kerning first=76 second=89 amount=-5 +kerning first=76 second=121 amount=-3 +kerning first=80 second=32 amount=-1 +kerning first=80 second=44 amount=-9 +kerning first=80 second=46 amount=-9 +kerning first=80 second=65 amount=-5 +kerning first=82 second=84 amount=-1 +kerning first=82 second=86 amount=-1 +kerning first=82 second=87 amount=-1 +kerning first=82 second=89 amount=-1 +kerning first=84 second=32 amount=-1 +kerning first=84 second=44 amount=-8 +kerning first=84 second=45 amount=-4 +kerning first=84 second=46 amount=-8 +kerning first=84 second=58 amount=-8 +kerning first=84 second=59 amount=-8 +kerning first=84 second=65 amount=-5 +kerning first=84 second=79 amount=-1 +kerning first=84 second=97 amount=-8 +kerning first=84 second=99 amount=-8 +kerning first=84 second=101 amount=-8 +kerning first=84 second=105 amount=-3 +kerning first=84 second=111 amount=-8 +kerning first=84 second=114 amount=-3 +kerning first=84 second=115 amount=-8 +kerning first=84 second=117 amount=-3 +kerning first=84 second=119 amount=-4 +kerning first=84 second=121 amount=-4 +kerning first=86 second=44 amount=-7 +kerning first=86 second=45 amount=-4 +kerning first=86 second=46 amount=-7 +kerning first=86 second=58 amount=-3 +kerning first=86 second=59 amount=-3 +kerning first=86 second=65 amount=-5 +kerning first=86 second=97 amount=-5 +kerning first=86 second=101 amount=-4 +kerning first=86 second=105 amount=-1 +kerning first=86 second=111 amount=-4 +kerning first=86 second=114 amount=-3 +kerning first=86 second=117 amount=-3 +kerning first=86 second=121 amount=-3 +kerning first=87 second=44 amount=-4 +kerning first=87 second=45 amount=-1 +kerning first=87 second=46 amount=-4 +kerning first=87 second=58 amount=-1 +kerning first=87 second=59 amount=-1 +kerning first=87 second=65 amount=-3 +kerning first=87 second=97 amount=-3 +kerning first=87 second=101 amount=-1 +kerning first=87 second=105 amount=0 +kerning first=87 second=111 amount=-1 +kerning first=87 second=114 amount=-1 +kerning first=87 second=117 amount=-1 +kerning first=87 second=121 amount=-1 +kerning first=89 second=32 amount=-1 +kerning first=89 second=44 amount=-9 +kerning first=89 second=45 amount=-7 +kerning first=89 second=46 amount=-9 +kerning first=89 second=58 amount=-4 +kerning first=89 second=59 amount=-5 +kerning first=89 second=65 amount=-5 +kerning first=89 second=97 amount=-5 +kerning first=89 second=101 amount=-7 +kerning first=89 second=105 amount=-3 +kerning first=89 second=111 amount=-7 +kerning first=89 second=112 amount=-5 +kerning first=89 second=113 amount=-7 +kerning first=89 second=117 amount=-4 +kerning first=89 second=118 amount=-4 +kerning first=102 second=102 amount=-1 +kerning first=114 second=44 amount=-4 +kerning first=114 second=46 amount=-4 +kerning first=118 second=44 amount=-5 +kerning first=118 second=46 amount=-5 +kerning first=119 second=44 amount=-4 +kerning first=119 second=46 amount=-4 +kerning first=121 second=44 amount=-5 +kerning first=121 second=46 amount=-5 \ No newline at end of file diff --git a/test/font/font.png b/test/font/font.png new file mode 100755 index 0000000000000000000000000000000000000000..56d64219b83310b1dd9d5a9686051e9d877425ef GIT binary patch literal 80802 zcmYg%Ra6^L(=9Eu(Be)*v7p5riaP{%cPS3VEkJ2;mm)0^Bxnj0hhQ!4?(Xg$^wRJ9 z@4f$1*2+uv*?Z5-IWv<8Rb^Ssw}7`uNJy9%A)z*O!fl^-R#o&XgU6UdtWm)UX!?klN; zFOgr14qKuXxMJ@ZN?SN1^Qr~@)W=+kT<>zb!-w7Mc1w<4YfO8X#FuFd`|M48^b)pi zR0uD&*h>>Ai2dImW1pk7BkX1Rq=)448H|jn?)#afNAMV>kak_j9AFbh5L=Vm+|Or&|3+wdbxR*d_c#y_8*~48M!`a?9JxgL!k1HAQ@oMJYRlRD zoxbgS-X@R_e=}W|ukx0pfNxo~AzVoD)s;sc`=gC#Y?M+PzcjQ0Ef~`?H!a#n|T%_(I!6{bwv&)lZt9tEfb?f#lmoXR87; z0M>NHTb=zN>mK1{V*5>n{@?1vBIS?_UZn)?{kYV6xyub|yTUltbP85tDwr@kS0H}> z2=l`U3fZSq8nJ}I;fFjj0`eOQzf37e|Bur3|&lhmRKF#5^kY^Lh7 ztN7YKveKoZH#f%dc*y0rK-kH!ex?Nm6T2?c28Ko5cMpQeXWf^-B{wPR=Rknrc)u35 z33)vBUlSpp+c&CheQfRTLByYz(;4$T*tGt^=zHk3*4!FoPhx%QfG2pM!rNgCzF2BG zkE2^;rh(atPXz}ocwNWMLZ0;T+>cZFVZyM4+a>O#3)2tHa&w6;KaCUl>oNiTA=(~* z#xG&y#u%r#1_D{%V?RH*#KfztBlmJePlQ-hY0Rs2O+Lvg|nb%E# z*M&cz4aV)ZzE$OUb+;j&{%n6)O`WSXr9$79FLBrjNgg3YOz0!JpLJ+cN*XWN%s1L{ zjJG6~wYO9yTnnEYSnlAg_6@AZLKIYi|B+ATPumul9SLwrC5NchAsT$ik4Fs7CBhoW zpnA$`=7AMGYKZZVDkQC?D;2^)(Epf22{0voF;~`=#hv7C!m&A@8O@~-a_ZlB`~HiY zH+e+;NUsS#a+ZdP+Eux^i|@)i*I_<6Ox)pRc_aQsp^uLGq3?MfE#ESzuoiKi^HpFR zE-XuGxfYG3mYpg6BGq%dAc(M~-k5pCy+Y2jRPfbUK`paY4#h93Q`b4+1h&FP^g_Zi zkS9S=&>7piEa-p`MgcZxVGl6sx3GT+`fpGPY-RE<9bT?>k0{6SWE2uFaO@?P=GQd` z2BEF{Fqj^cM;1)Z&PgoxF1^wjaitcdDgBWrCK(OM8<~7{@d-5ihzD&)3Cg3G>K6uCLNIs9&yUc z4*%^R+~Zf;v{){%q3a^$;lFPPoQ@IVrDsn1y9~ehZB6U@>ZL86Eu+EuwTN4jbh5uk z@q75YW0s9nhSiU1fG0ZN;;iG{PkFnn>_HLlhY;X%z5dnDmSGB>CXr{D<+Flo-CgIZFMf?3V9#Ou{xx8{Y_`ofXPScz znIsQ?+HK&SHCP*(vo(7B51cZewkI^6jpfjZ84xy>t@>{Y?n>!f$-ch7B(S1~FL-lWDzc&dYq^rluZZwO+kUsOY?!a(W)DLq7?)g}KqW8|C z&ZIsjF*GbXckIL0v!T5(e|L`;%{?8-;>Hv|&QK*y;I7EzrOAl9U$?NcS!Uts{o46- zFZE}F+RqeXU#dHyk!-7InKZd}A92Qv5*yDMeemcPR9NnG$rm@dZ`Ji(ybw&c_O65*{y=GKL${R@hiO)&VUhhpyq$ z_T^~MnO<*R9QZJ6-J!wIx`km;yLZ0pqi>fEJ&3Da2tQ`=Urs-idx}@3dk}Y4!b;#k zK#moLmK_?H!E}vguw9Qo8PSJ=Gz|el5eC|UeZ6ccT zAEYTY_ZmmD@9!6E{v-x#!(4Lpl*Z7Vi5r-hf?ZBWE#DXPwC)Y{vSHuHENktWpUnK8Kdvk z!esJTg=Fqh;Pq9D!tY;vyddIZbxbk76*_iR%~yD$!<`Mhy{sL%yWV?L=H2TjX5+{R zEY=Gg7Ff}r`OFFaSZtQJ3ZL}$=--WHOXy!ul!LGFa+Erjv9k)LM3YVQFginoq`tPE zHZlqy{4s80k2{?Y2MFQ;ZQWJEzbFV6=dKE1EK|n3Wm2%DO>D;}>8cp3p~B-0Ak&ac z8D5z1(FCb!72{9LShqL44XjxEBp{=9amA+{9D!Gi|NEDPw|yb-@`tq294 zn@ksy0g+#Ib!`YYbMkTDH=Jh1h-YKz#{9!izvM3Z>Q$$ z+>QO(>G*GUV~2>joc(W~uq9ae7P7m{O1N19l^i)*haR_J-=UjZbXy41aFzhKq%u}h z5_T8r@6)mc58|20?U0{WxGH0xb~occEvz9gK6GXcrUv-m?U}5A%Le2h8I6&#bvKci zkYwWrRsFK~B-B%T($JvXGCdbhXlO4mDK=aq-`;j}Jlt*;>L*UKcgH5COYLOd1-m@X z_A)f+k@(apw{Se01AlzYccy|1E80aLIAti0zobDM?TmV9(e*wcmv1YgAi^vU++r`e z`RTqAgc-iTJ**rfHF)5s4dV3P=~_KiJh?BO2vPB+D;&IdFD-EYcZB||LLkm8&OI6Ld_L&X_D3-#J{rZg+KK6Y<<7->Z_U78~G&G=B?|TmA zr`NkC)S+efMY(gVd%o}OX*mz@yZG#jR-G$Q4blBd?$HaQ{v;5#-3&*ip8gd#8#y+k z^Cx+}bFTmQ6jVr0_dDL~sa;qtJ8^UN7U6*F;pAZ%V!642mio8Y1I0Gm;%k81*$gqi z0N;Lw@kdiEDV=Nlu%060xTofHmB1#Sv-pCe$9SUc2)~!Zb$j!K_cjpwz{Bd~`{y4q z9t{Y5zd3)ct2ePd!_I-Uyi;eIEg#5|T=!rs-v8dkar`~5%}*8}({l}HY^D{37M+B} z++tEIe|GqgfFn6}?nLmInMsh);`xs42(PP&l&<`s{(DwHH{#}^p4{^wItg{B)6KIX zAico|%)!9qDaCU^#dqYOgG>Xr^t4;o{&ZC?lPH7y=n(^m_>bF<6jBIIZhNXlKP6&N zcedF?7&xN5>{@t}`Y5)zfz;XdKAEH9ia*yrtWs%n-bB!m_6a2sYv%}iQ`{E(6E_Tr zUz*-!G{xBhufiwg#AApsfj(TQ)tEjS;^mFLG0v@Ew7YdLZD`g!56!O`2WAe;31yz!0M7N`kuG)f;Fy2vK;2zkUpoWD|iuLA**TmR`MZEkCqo z0qxUStZ#|Cd#vUK1Ppb+sFNP6)h`OuC12v5cYmhe<4p}vkk}|~Y`yu&c=OeMaE{>2 z3kKG5v%E=P501F+9+077P`c5Kn|mElC^Qh}RMMlm&dkB94~!0U-0(X78056QvhLV+ zGAJ*qwnI0r$=}E+5Fk=bDG-_!{y@M2<~DV**897`fFf(bn%wDc_scCvs<{>t6Xvk6 zKN*k7;Y2Q_Lwusx@G(hoLaF@W?}Ga8LGCA0JW!o3Bx7pPWbHlSnZP8>S;HpD(>I;> zd^i~{_Or==`M~VY0-5!8cMTE5_MsW*9w^MSAhvfCotvDr*ft|W^*Gl0HgDBfPdm`=8G0B>mrxJT8ow=E{V^z)6&<N+)tW>cXwHR$8LphsLO(E)SgpfEPe2WdVck~_EHL^eLMoz@9jr{ zMJuYy$h7I{XGP=( z&nmX}f1Z%qz`frWch8{%N-<^lO(yyw?{ zOn0_x3zIu02HPocArq1?nFP%InU`KVP4?vIvxWfd4Jp;0jkzB5Mh(Uk`RvPfvw%xA zy1jz=$1fykRPj>Y`7OexFJ6o>I&AcuO-*>guDeUGBwFgdjs&Xfj==UXnuCovEl0x^ zeA@@!EEvV~Os$q*9U5d-9MiKEuwA48rjYKP7@@A=>g0de-|o>>z>D_ZvHSB0PFmsA ziF`6B@G<9|r+IoAy3l;Fi5l*5O^$W;#QPW8jsMYJK5ml+d4e#z?{FRLl!S7c|)vlY13ZQ8B$%I5W_Lr4MAl9?gP`Pa# z6S%iU?a_0koPXtX`O3u@#k3W*2-mRmMja7+Wa>uuOFz@iGYDaI8SX=x7`BFc zuX2C^EJV%A%g$tUYF2bk1kumw{?rv>VHaKhA29lfEhaG$sZg^`z2-Ur1e4g0U+KGl z()){z33|13sA6{#!C4=^GB8;oXn!qLj`P;9lzYU6XUvuaI-Q74)`D8@t|nmPS@X2x z`T)l-!*HD{&7ZT4 zgziuK@oh>6nmOT7YUC`ALdS1|abFp#^4t02^8XfBE1e+q1uKXeTE;N_{u*x_eR$Dqqg-K{t;;<0=0P(`C-M^4Jf<^ytVh=M~lYb*g$od0p}U zlk`t8p8UjOI?kqrnZSHpB8~<7p9Uxz|8P!AX)b>N*Lcm%pZ_6S-~(wb6W5IMR*zm7 zt8&^?EQ(XfhUV(&se# zj+H`-zS+ILq5t70#RocxVGHt4r%FK7Z7MjnAH~u5yduG7;r@8bI(w3RQg@?eXY+Si z4iW8>3;^*`~5! z$Cb5g;>n`nMD~TPf$^nkj1_pG6PHhxmmTk5kb6{NRL}eivwQlU z^#hHznFRtPQMursC}5|poE95_p|0)qz2yY2(Tj^D_sh)txx-{uoYWzasnB&WGs~rB z^ixx|Oe=be_jB69=2nDZs$KtDTI5IQS;3t?wNWUDEVF{|^d}wP_|az6Vk#uLdPU;& zg;XJi4=vBJaAPk?GB#AEQMIm#cyYip1zRt!9HK6FV$_1f~O>;P( zO)D;R%;LAzmrIhQ|GYVO`qf?QXX%RE+c7=Fwpn2+kld+YcafTZ6!k9z*yqIvmvKCX z_ZF3sAX?92(%o0M_9)pC?$v&m8}pnC%_r_~Gzav=R{8WEbp&A0BXpK%%U-Dnw;Dp? z$V{s!H?5SiZ3AM_oKPZK4p>FJrAQoKwNc)!ws4A&ooT;0_tP)ttPk2yD?#I@P%uc7 z+&n1(`2R;Fqlk{8oE(lkDz#aZ-=mR_6lLy|vR~|J%ybvT^8K^}mxcZ>H!zwQ&pbPY z2pY#iM_pl}CDyLbEY`$-Sl8Z8aD^e(_50|}Q{vvW_}SzdIuTR#pTF>VqA&Xqn1>cK zg|>ddVRnCEXLqxuXLdkJ>DrReb1k!){+lgOCqM9990B?zCcu=uu;QYLIn5i-eud4F zL>j`n$r0DLRX9DlB@4;FN5!LlzW%e$8_6QZIht4-5Wlx!Z6+ zkHsq4oAih@YY)5r4eR7x_>VV%%*hChgm3?#N8xFQ&)Slv_)*}KZi_5As(aQ&s4_lt z$y^qKxiH;Iv327uf@l8d+)hqZYWa)RDb5R-_hTc)z=dd9W-V@C(t>CYuMHow(dEKw@F6RRJf;$dE z4Na&?70WEzOb_}(N$P_7+6v05Q`Bk^7RfXfdeoyP$>q;dXCn894Dt?_!XoBWc%CBP znPXi0ImGwe#*3&R+1B3Wl3J-RHR+rXCny913>CXP-QTP?Q-hIFl_B8;`yY}eiEbWE zk(L3Pv-uLyl$mdP;>xb`Vd_?{sms)(Mk%RhVm_ULsT|~1TK3Z z_Wlg5oihVzRsglN*Ri@?I2Y?Q&tjE8jsICypZnrKuqdw_C)(3m&e^2${AX3qbrp=$ zt0#YcxL#+>J;%McC7GD-=htOQ9ZS4+)*-H~AQan0-6Mvz2xp8EtG&la{Xl{OYl zC7gT8WMvLIYV%Xaoc2U;T%DeLHdZ8aon`{Wmi*1G$T6R<^?{w_MSHNV-YDtAtzYGW zuB-ZZ0}pP=u^rMBtml#5m|riYqTUE)8EpnU7OBj9FMK)FAU_nCB6-v%SQcvEcu#VN zE$gMHoZw!a@wL#isP5Ogmlic&4XER><97fPSO~PArDbD%3(=}YBn{oU1*G$~QwaZ=m!gi2b8sJ)KY};YHplSJ--EUv8YX#rWK^eMg@-}? z6shz~Z_K1W^6TWCh{8-{l^l{5M=wb>-szwT(XGW*UT zMq)CtALLHC$M0%dCyxym8xy!gy`wqxeg`5Af`#YC{y2io@&rA;U^A))PYxG(=y))&=bMAk+B*N6_L685KCeohXNs@(oul_X) z)C84+&%HK23c?a$gCX|sJDk7D>;J-AwGS(PEOvKyckpZkCR)g{L5cpj)F&7`>oGqdL)93 zR&gD8YWTLVu`YI*PEoO?A?W#-lKZqTa5MaD)0bWYn8xVvnveAS1GsOSnq>U`ZX!u+ z56@rw8F*z(dE8jlv=ml3W*2^vy^=_79Wtr=vs6{aaXcuINEi66a4!?Ld(^IYWIKvF zGRfD0re-bMX^zOR9_M&@tUXfv-oYl`LXCsMfSn;SZ_M*c$hO$M)Nf! zBk^@v3_V7%^=TxaY}bnY>KYqIZ^K)s1v$U%#>8*yR2bJIuox|F>qj{*OOqN((@0#z zYENWQXtW(m>ychQ`l*NV_OJoA_y0d$qobVOTi>fy`T@u{#=z%h*#B6NzF!Uy^Wa|P z)~0Jh6&;k@pQJK^huG!exqrT(4FxDpcT`m}=J*|Hu3z8*hw$uYs#If60cI%s;lZhA zh>kDr{#E_2M?4jE&Nz7Hb&1db>f;i>-@1h%_V(=S2geS!N*{bjCE-nULT4Gb1l z+u3~-aG9Gyh2L}1@UG~tG?rwf4FUbWJKrF=n__*lUrgH(q2cCZl`tQ^69HgZIKcMc znDje#XVuvuQ-SNQ_Iec&W0bkQ&oyz>d)mn0IEQE!Ho}DMJw($N^b2sxxEl#0x5?=X zyiBh=G-sQwS2+hSeL3(kb0&JL$`&eGe_t;DA3& zB0mcA4;RCWsJdtg-$7iJed|5_tC+WY?)NY7)Be8=$WQ*C4Td%6#TFS`m84pHINTh^ zC%eEVM3`O|L~ovwJetbyU?1>4RMaKBgwuFaGEOX|-!@B52Uo?tjyNYzNj?2HI+`!~ z6}d3jXdQ$mH2-JYC*a2bmw6$_Dnjfx`kE2WX{Ed;B|4htrYw*3y&E$F)83v09LHqa z{qdKYGO8E0RVuHGs)|68mMSirX zXi!>bD}r z+L$-Fv6h^H(}43bX5g+>NZS*J99#vn4zw*VTGSN1j5>K!ElI+E?3uL~0z7f$f*j*} zaGG?hSCf>>5Cj(~z2g4$(RP9w@;ubP;Msb?^E_$exI!pWAH#^DZnPAO=OL%_@qniT zg4aWhS=K>4{?L@+YZ~F!GM^8TnJQ!&-HueDNUVcFTtdcyRG$Q zaL5O!h*nEnf9;~j?K-4G5B(PT7PnXmg(w0I?G%p#pF(8NcMSMKTZ= zF&V6x13<-FY7Peu0*o2<7CYO#bM;B=neu>YpX}T;uezM`?7)?ZA`~iezIPHL%Z2H| zqh<+ErHOZHwONV6S#<;5^6QF}MqIBXCaCD`f@=5cy09nAGV1({=>8)1Lzho$7c19| z+sC-K4qa%J{=NIc5uHS4V8K5o`0c3yz+bft?^foHB=#*rGG76M_wj;chBgc31K+&b ztD9%<$p4vy>l82VbhZ>$#DNQ>x0|r__@a$wM5>9)6VToeR{S?$(PsFFRB8s++nN*E zkFOLVEBhk3U!F%~H^*9ilE*~qCf^AB^6|-^L3Xhs@nM|qk*n8e-*5z=7=My)hRNF%c z@InF|q8tWc=o1zns@sl21GtokeEiE>ATG&u8<%1kOq%CAHWS)X!FgN9m`NyR9gM~! zgi~k{^EB?9pm|{I5PPNnx_<)SMRTdE95#7VuOosz&7@(FMIyK~u)Pm)_J0*ymLrBY znbh?Ky!)e^YTkq|jjyL0wn+?@h_JMm4#HuZTdnMMEq0<15QWZ=P2C#NSX=8c(ot&Ku{37OM>g zw2{AuGl$b@@h%wcOilQ9Bi4YEm>6o994IV~dYY6%vN1o;E*xegx4X|hDv3Wq*8<@j zHZo&YM@>izmFu5~CvQ9yV<>b^w{bYAfKg$r{um}0Y8IJHZE&aZA$t0if7k*)eUOG9 z-m>gOd=UvzZhbkUzZ$d1A=9@MgcL22ax2y^NKQU zQ`*9uVihlEj=NI)C0DM#v@T#?lP7kg-+W-@!+DT%j-0E*4=H)tMcFP-7I16gE&19@ z)gpp9g07p&JF#*vz4j|Ava4xH04KzeYRo=A6oe^Ef<4pr5jr|6mS)UEF)Z?elmJ%9COQqjw_quM&ly@_Xbh?3IeEwfdy2y64Gis*XA|iyFMjCfCZIVO2l5|0<)cKDmHFG?&^{}!fiEO|DRu@T2ZjX17oKs3~ zjq9={*O^gV!{T*HpHZM0(=|oaoi@5N_HZG+lafGk>1qGez;plI%zd-p`oJsQ^gyn( z67#2Vz0D0J64wtc3=KV6n^{SwDW;c|j6u>zSbjVA-erGx8> z>{x2k)wU_&Gd{JRXmnb|lg}#-xKbmBQ)q1_4$fiO%GHXfXg@EB;C%mFZf@noL^XFY z7}o4d$Y2gmop(UU^~VrqBP7#q`RXy9%SO zyxP9 zL|hH04)g9nm(p+*8P#EwHVkwDlR5OLaxkZ|-^w_kcAJN*Q?kuBwBmJ^gzf=isPr1S zmcr8Jb99UbndU%tsvaw!bPu>?>L~i^*(ua(3?*^tuZ3)lgF|fH%2>?{ZvCNvz?@6s zFGI>n$ceo3++6w&{$UGHW2u&KQ~bE0vZTYa-*<=Eb9B5I9vdbB$|CU>M*~z6Y(uHV z#FNkM`xvafIAV2Jng$7D><~v<0<9dhaO6i<=#Q6FURYluS1J)l7|#kLfvhFIV@SG6 zN(0Zd>RR5jSBFuF2(mFF%#XF&m1eCz{216+2OUfCZW-C#+ka!<0Ye!>`22)%*#V5H z-R*;wxCVgzfTozbZ+D-?d=HN5*={$>ntmtw6+{wtl(o3ebt;Qy#N|5<SIqdcZDyH)<#BuE9VXJF!n2U(V%HBcUbAK{)bX*m%yjgEEto!pfS?+R;nZPe+T*C~rs=`0*8Un{fYK-n<&z>nq z4gQU1B|Oz7>wt+R;*~#t60{khtGu%jU`9+TBlMe;v*H=n-Z5@h;C0CCYqMd3zjuHea1e1Z@Y{q26$z6%j0^!p5@+Kwzo}$n1b))W z;h1c|`sfu;p@n=w9N9B#Cc-j=c&-A^jJBV-fEDvHCqpppq}ijaXAvH+f-clLk>#6>FWQvBU?|@ag&)va-{V z#cSC~PYRPg2ii!ZM$N3Q&ag>uuW!uGDgcIXxKBzr_=yto6cBj}JD!MB5=_?5?;_Vl z|7u)JAF9zGJi7lvT;=9Z$qSJh%gUEj4}tIXc@2HV>^28#L=VimvDvV85MuHYUe4CV zBG&_Mo`HQ-m4tQyBE<=Y`S%dePPPoZ+7o@E9J(FnlR~UN)2W!SzoF7 z%xr2`nTA9rB{O&);=KV7V;7$u$$%2Gct%PDgP%SVL!L z_{cy(U`RM=$DjD5+2Cqi3dbvg@SfS^dmjEUZqKln2REx%qh~t4MET&yKXLYX01;*S zu|tdmM>medE^m?4IQsQ_!w%ZKQo(25j4b(_5}*mORjV|d+y=927sh793e%dN9Ee@Z ze|%|C?#e#XmBd~mM6)aH6`7Gt2!32XF1$Y;VQZ{rssT{H;s%p(G)>Xc>ryLwN$Ars zXcMx#eDyLXVIpqRTHyKPc6haEe0aOM_K+%}yC25!AgrV~)L5Vc1o%=_RP0mCl$a2^u=>NxZ}wjV}8<=9GSZUel`Wo}mt$ zP2&!PNv6Kp!V@p&(s4!U{b=-P6II0hHaG(Ic`ZyBelER{UUOgbtekelU<5_6GQpSv z&6!=CG1X~i0HV_6!KygDd*&Hf3`mESLWR!4s>4kRvo4p#Jy1vU4qrOo=d|7dL4 z(-!-s90WBZ#xG}VOuKi7SGL72%Exc4+hxqrMa##5^ixGmQ(9w9e`DZoi;v8JZrWel zpB2lYCY}o%M*%ugArPYvJ~?kUG1!0~tt(*X&;?`A5@7_xA1 zc{UN0>Dfd{6`X56ivOV4#kY`&h(KQN73eHEwESHi;q>yKj7ch&{|Cq7_UEZryL}^J zom#_tjdcPZqKxZEXrFa>MuMxzQy>NJu!$_YZfN-V^UHm#$P=pR!qNj39!@`gs~k_* zXom(gQ~Eh6Ou1qWzmWe%%J>V@54sli%@6AjTjnzE-rrJ&3VIcXDCqXwlR%P1;-@pc zy-rJqO-FEbRR#b6Ff8%W9KZ>(__inX=pT+Y2Q-sQ+yZi;Li5rM4SxI+FEr}e?3U~9 zV?(hHMu_mD|$W6|I4xAE6;ThXCn_KN1povf|j7H00frM?A-Stg;;secXpsSTF z>vm#@tj#KqIwM$$%c)sfwWL~vvWM1rA~E`%Yk03%NJZA|Ly*Ttm7GfDR>u#1NA-S8 zUX*Rj#HOCDP@u8N5G|9jDWm}nPk~Ywfo&%5H_ijWX=km{%eo#Y$cdcPC}h1a_KQb( zhps-o$x;qFIrTiJO&jUg(<#;=7HUv@n-t@>8IP!g$t~>62y0<##~2)Atx3A?dF}A?t?Z^E=Y2yzTne+X==?u}M9ud=p$h zpGiC_F12gi!Q>~CskErOAOdz2PI_CXvVUHR3RQQlBJp!b8z$A2#MO%E?H461p1dQ? zUGDfcN0GW^a#2a`S^=dtzaC*ZtcIghJ(6=^0jEBo|9q3(uo^at{=-4acyIbH;#_W< zR@~%g_ehUWeRABqNqFTL56=)}C8)PZ^DVL3B$xfgRcW;Bx_5nQ-8v2DM9h3FRBY^b z6l-%It1q&0_qW5DWSWO)!12LVC^RDbL2?t^@`pGq*Ju03#0Rp!X`tMxWhMz#W1*Q} zDtA+I+@WiD zIfY3zsd7JmaC>G#fBg43p>pQ^iG`;mJyXk)dv5C^U9EFP%fN9qq;50V-Mu+nQx4#% za;Q2l?fhrg`!`wRb9V``J>eY&1Z8;TJraze*IL3)k{4(sU>_tNuRtOulp|EngNZ>u zYk{w;zYC2^?u_=-*Pr68CXJ92iyOOta2JF&>C%cdWG$}Y4Rm@%82*}`{(zpflc2!X z-FzXrJHH4t-6GY*&WW{=78;C^y#DYfhLAO>Itp@HB?0Y1SYL{*Bd^X?7=V*{idz(< zL>9W|JL$`df>P&zwp}UsW22YAPz_4kna=w1|Hoc-b!PerR+Qqq0wcR-rjI zB!JKduHZNOT8aPK)j=E=P$Yrjg7CbP1#(nHLg}zjCT1&JmsHmbK}`lGEp-VgLT0C@0YLJk50xm@w^T z6=qr&Wh*&FsF}UrQ6Xba8H=r#!pw_7hG`3 zj;qsiPkLzkFop33<39$bdX;R{WD`k-#WPdUh(zR=78~Jk4Fd1!T<CZTxT#nXXT@je~4cO$kT?T&i-xNsO zXOr4&n6h8{V$!50K^}d0F=51ZA>;SY5b4N2E!$s)LQS-gZ{Mz3-1`Xf-!bEI zOOHsA$6AkFW1n1Q##bLL-KjqZlK;MVjnTq4e3QeuOfO{IP0}BK`G(Ogmb2NP=R66B z>5ulmjpa(e+Cb$}Lv0=#EI3C$esoWVs?QEo#~X9cSmtXGgAsb4<%MjI@Prt?lDp$(HHEVftOBv=-YzY}s;tX!;qc zc4BpxPUDrk)YQN0)=@g@geS%O$i%d1&+~HPfcq_48N0mA33W=0zTuwd&4Bphj8d2oq%@aQY^y5CQ-H3Dz`nhu%2)zUyz+|^RTaCp!QP{))kFwa3JB^Dl~PH7Y0|p{ z_l=rMUunsmGgY`Moc=97b}{xabCvtQoW9pYX&dPojfy%c_DvGN4F}tO*-sB~xecx< zdTTkRA>ZMWiAH?inaNXh648%+Z8mL8-uy+3lkxlD=f`|^#yS_A)IKK`kFc{cuTS%3 zMmUA`+1uf_>~E$c)W1`$cs5_C+a;rQw$>@B2;n?_&D9I}_J(~?c}mkWqYF!pWk>UM z5PfJag8vdZSmCdhTwyA{h9=ZKAreFJUuf*M(~~;|;>>3h<&LVT=V{_bIDG$3F7;Ph zXTPY?KtR%%f~KAkRG({%(f~d$zkWQwaC+~(+JI|Y(C<`$Ri3XcE{1bGhWosC7XHPl zs`a~Kp%~hjn`98qPXS7ERthn^21!u{xi`_1JBN8-F?nxWOUcYp{{!Eebeh96)Cys0 z0FI}+B@eEVk2KN6SCVz0Fk5azF|}LRv^tECFT&P?OB!WvN&xs0caHGg_y?SV%5`pz zG1{-uI}@)xw%r51F9N~;=1PaSkG>g_0O(+f!1|=D(07`_jU*l#VGl#HZn+RNmU03a z-Y?(?=JNU`nU7@8{i?JY9(9{S8`5-y8dPP@jIj`!=H?n?f!n_kzVmEBr(?zpkCQr~AYTwWTO-sg5w$O~Wqv zAUYic3%E;*jt6Rc_3UlDR!?|k`e0I~Ltedy>WPuM#0)HV7&U1uG%^;&OGp zJcI+7jA(2T;tq6>JqOC&1lNRb;nq;~XpOwLC6vQzKS$pl)8os)I(WXD?4s-zKNRCw zJpZLg5BIP7J14y&`cnE5S~WjFv1$WJAh#8&NO|h0``oiO+?1wrMSJ0(EuShhJu14) zm#cq8t_jdA9xY&3#9^0v-#!KW!TOGYeYIOI_)%th@w>4SR==bexxej)2q=&JVP=5G zhs!ST50se2s2y=No$YnF%|+hJp=M2{Xn(EIa2%RlPfdP(R#)*q&$F)J(0l&CN11J` z1U9)SVl+8U)?CbX6~dJ|;?0kWRtTBWtm>BMAru&w&4gL?_Ra$2Nx8tT=fiHK4y!Qx zR)&}gFP)JfHYpTi;L&z+t)psx3gWZ}2xU-oj!Prig~IKPm*{HzBxZ@kO@Ow)N=1Kl z^|_`#_lgVmV!4yJ(Ow3BRT*v)gSy57n?!#et^#p~NTW9K($E|l#04hOBpVs<9*TyH zt34C$11osp@59i%4P{n;+PFg79$w03Nm>Dc{bRxPzCQkOu4%)nE9#?@>t=njtfJ5+TPF zOf18wMr!;%PD|k>#%^x!s_Qj6__yKrKF%63!@?rsFV-uQT;wRAIxEyRr88p|P^pAv zpJT41yW9rp<4Sf`k(g!F(L|ieKDU|rs1wI|AQj>gVKJro2LGXlcT$Ql+aQlgaPf7K z8u5JPJtc3F3S%S45&sPwmEv~6Il9~4iW{#&VS*$#Tju=>mj=RSveH-?=LJL#=QVo9 zk+5Z<;pzL^{$@R6epSZkry6TiWsP$5M_nq+s;)hL0PR{x+xl$bU~lec0Z~?%2Bo5O zW9I=wllX>&TUR8fSuVva^k>g%De8sQ_9UM|^1lcrN+f5%wP4y2hvf8J2a+wVJpb)f z<==jV9_g(Z3a0t>TK=i8aG=wORU$bf!E~;}Vf?g)cX6^eSI~@!gpYfP%THfCeu(k~ zp~+PLNJ6Ndg;K?2%lHw^l2C-9Kj$yQ)*5wQd5yCd z3HUj(OSatf)m&1{mTQ(THKMS;T-z+^n!7pLQ`j|!Ae zJIfA@_b+|Y^rywe`?8{=-k1_7Lr_ayRwdldO*#lbTwiNo`7Yq zM#WvVWC4^CP$tD0GZ_AnytHZmUJxGg#01Of8$iT(#wwPB$L=Yp)jl7+xlB9d;$IJfe0bt?*9^ZIMI(6QY#JdD3H^a z1$>H`OujECZrQAv+R!^MhX{$3YEYv16i8aXHa8p@t=N+l(8SkxbtJ3f2{$TnVtx51 z#g~H*obhV#C|+e8b!^HWd zyZ?u%w+w5uYodj5EfOeREDi4N+E55k+)9xmrMSDhySuwXaV_rdUfkXN%k!S^I_FRR zW?ys9%pO^5ZE8;vXv5|p!)zx~ zIr^`L-=hlFnjtp49bw|W6!o%;o?aLDvkjs1NTtZ7IYcKGef3en^d$S`{|9t*#B+R| z=FjyLH{cJp6bFyShL^2P_^ca&Vt|1giDfkg zIjK?=I4T5ym&RAqm2(`T$;W8Zhg}5>z}GC|#Zht4)*wxr`Jg8lN1q(45eT`OaVk!v z>CMSCwt{1+qdA&28NZi+{8{Nk1s5mVuuOP4epMYWOnsZRDfk5a=Rc+&5}ReA3l7UO z{|wn_#O?=2Z{qz>Lnw@bkQA{bBFJ$k>~9#8=`+lgI`$93sdUq1L*TH?5Dj)4XdITz zGKRDLUpIvi9?@Ig>6J`rk*Mqs)!cIj@4+?KvqiL5C4S*j-=}UUdouE_8e0R4jDDX|KC z+)G$!`1csS_E}{FfY|STSpe%>s(m8Q)%+thmj!*sM1&|jil#t_qnB}TqALA_f;1|^ z9HBLIntTNdHR1@~U>=k1!vIOZ<*_E$*I+3z&XS!ec1f*PPI&|xY|+dcE6m>n`M086 z^5%Z%tA}^En-QJO@e>0PXPyIs0Oytvnw~d*w;cA%&A!0`U3q}mzPl4O_NDKOMFDZv z4Ollj1!N+iRBHSXtTaR9kV;3?kGoQEoE@ah+>JdseK;zp9p`Fj5-0dNsJxF0?#gzF zll~ZiDk#@zBwpHe*Eqzt^gNb*^NT>=}WHVdTNzNYDp`1UCxlf;&i6a5q~&63sj+Y;jQxWPP1oXq!rO zk1%+@I^?TT+uqhmkuUsgGP3m@d&T!cjo5>P<8wVBnHFdBCrX=YyPW2Z5B_6F)2t^x zg3$z5J1>tdio+m(Wq=e3Bkr5uWX1Q={?63ASb*HMM)s83A&XrKw7hSNX21q_cSQw* zJ=c;yKo@I=mg$6VqE0`!JYOw;UtLJie-Ti7=I?2klBH&gaPaf(oGpb^I)#sPQqH*;ybS-)r{IF_=heIVrgeE<3qT$%0CfD#lE z?YR^it{y_0GzxjAv1L_!WTGBXqk`XFB7HowhX>T(;gw#)DxIDgIPc%eaiP97u}k}w zUjB-Ho(~Z8AdTUuy?+Jcq2aW|>8w7a>qMj8N zSM650OXS;4HN)*ajU`+?#pix)S%3JIM@)_>{Y*qZi>^4W8%|R{#5rH zpc^@v$Tkz-g$;Z2d$j}WV9R~7ci+v&T~|Hx2|c$}VW*OL_Z}6rRe{f!V)^X3@1v#b z6zF2JbCgKBfJrXp+DIIQ3*j{K&UaY5C`ueenaGN4Q#w3jN%`EpxoZmdVwCXd>ojwL zStgThb!fonDfQNZ21A*6~u( zvVybMlmb`Mlpe0LQ1e>?)U1!pGdqtv`c79T=`_Cb&$A509j7vHr!>GLA4FTcxC%Dw zlKU&3-%>bfwq22Cl0EIyrlPpg9gcQ z5?Ew-<&YU0X;3hLAml&12JB-R*fr6=dh62j4+wuEP%yg|MG<=OBH|yNd*CH%Q;HttUHcz0F#FE>O$ zWzkLsFo_#mi3~Yc-L8oojjjv7;4Zn;YHf{6X=zJ$ydUbkRCjZ>?XDEZZblR^h~mC< zjI1B7wQjRaaA);g%H*T)%JAZ+o8vfr;gkC3=*GDN%con6uL(E^-RzLqyG0p}HF9M? zuRl`#%oK$chq1VI#n;Km&%C53kXepL!irmUb0j;|O~E!yTXl1n%HUmdR6DpaW==WZ)oSIz#uXDna(W1IaB{U_2N9Dh#(-?`n! zz~a~1TVL-KHofcy#(b-y!V1OQI8>L6+9)sR7h1^}V+=NOQoD{Z{R1CsnMvi2HGAEA zBNYcKVj}?)ySha;Hs&oq?o?U|14%DZqU+?O@ur)tm=v?ztV%#c3qgXeXwc@+KjhJ) zk?{y?|Cl)pgu#dKAx=y-EKQ}SIS2T=hm7KzR@t9-9g>7Kcc*1RL_SaRSjAf1no?h=nH|EP6!$tKvHm8iNjU5ZK_D#syVvF()o z)G(sW5RIvpXbmuw%)CBe^MM(#f8-o%ke>z%Zr-b3^v?3=65jr)aQaLVa&td_eHTrz zdw4*^wRd$5IE1<433<|Bhou`1o&zqVNH=1RDG?%%d1sxlp-+efe+Gs!k~H zo6Nx7FQyO0lzq6xGkH&PdhVT8wWn3ZIUTJr^lYlu4>l(3b`67F%L>e{t8!BY+b6TP z45GzF>er9S60VT#XO2G36Qmuf!wLXIwgD)3!@s-&Ld4$JDU6T9Ec39BdqQ>WNiN+$e zC4x0NTkKa`7YeV37}4yQL2iee2iq*rWPHmXX8=X%w*rAo!)r2tb9n|$!SnGhxcs!X zyfX-x?YVviIkHqv&4zFNAB<$()MUmCEISxV^^x(g+oj|(m-pSWRkLXI&;}w;O_{~w zmaECWit~r?afvvQ7JEi5UbZ~=r+T)XPGt=zhWu-(O28h7%7PkbimZ*WF|dBC3i&&AYmrT{lc< z4EYOR0j*kN(iB~;cZR=Wv0d193cKbX+bR`48B%CtSeX=!WoKOU3!?V6wzu{DzqV7WDn3k z8~|ddgicsbR;Yzs8Sckr+66MD^352Wr+cJR_=DoAnh*wEh~`x9%lrHUSL$sqev$&kWT!IyAvz8Me|>!umyXQF761C%)!#e6 z57m_m4O;;U47k9l1GCN+eyqb*4qt=u8bjGKPTMWO(~YI-0<$wc;KsBtiu<1rf1%rU z>GLn(=R>4*%MZbF70Z3}$pk^p)6XktdY=wuF|sW8PPaeBnD&lyl(wf;dPqfhmFIo6 zaWaBv(iEU!B;6H@s{VUab4cxU8mV}t!*a29ksWLvhJk-Okeb{a(IdWDrR?tuvB=P7 z4%eYZ>$ie#1XgdOzgvGPXYj;Cyxm*XacDmpPP&zTR4Qqf@z*6(({;+0VCF^%7P(e* zWRPf8sV0E(zAGS}s0;XtelLIs4;KZC>kY}=Da|bf$(I#}rr;>D?axvSo{Bo2Z86Ob zn<3T9Ym$BDnSHoAEvy>7JTQfdgaqVj+iMt8c)Tg)ar|_uC7ZD<3sZZQOxrWJWg+m?Pl}Nag-WOfXr13Hod1R89Pt0*NorCB#OPE0?URi4 z;a4sA&ZOp1bTRbE)>p5)Mx*XWl;Biwe=P9bA%2zdB|30NSQYbA{$S3H5rDpB$h{tU ziR8=Y_XAj5x5k4Y7+P^s$&W)4(JwJ?&ej;3 zHv7#-!1ov?$w&>Go{FQcQj+uu!wk+D>kyN&gOBiH){Z>jUUKZNWu=mah%v$%0+>ch z_(i1@O}^N7%3>VbE5yH(aC(d(KbAw@w|UmM%%p!2wQ&1;H#8n#>b;1d-7!bf82rxD zqF~*dyY<4%?SS}`{}}f|CEz7mll8T7L8S9weoe!TiaqQ`7WhGX^>#;Sg}g5cXXGD+ z9Ar6J^y5ZxCq)}dgB7bRiC?>M7X6TU{Ppl>eXFiV5X!rqfV}e|Tq3Xj5J+uC!&K$} zU}SJ5grH?VIx%xULQHL_Pgd06>Fef4Dc6_!O2gJ7*I#c*I>8r`MHNHTNWaux}81^}9# zO7$_=?($roC1m6WEGD?$SvdVODtc;jV37;LsAvAsswfY_TIZH}XY-K}jHrV?YI zKK&^kZ(_jsM7)y&9Pn_6E70G>N_sCGo*ecGRPDX~gJVHa+ia~8q5LB^ zM!p}CN|{RYg9iQQ;Yaw4uMrf2*yKf`gd+18Uc9<%6o(;6iotO*!4PVDC?DaX2g!l> zC34MEPDj(|T7I&H&r2L5{f~6zug2gD4zpRu3xV-4k!QAdq!{Jo&%lSB5BE$gMT?6c zUsb-Xzb~EFD#YuCp1r8MDTQ%&Zji6#`<=aPS_)@;cY2>Dz7BG!?XeWgx52F*+C|PD z`EH^Iue5vmQY*t4Q9jBFInGz1`3SQONmc#up(_4IbPwj0dMVLXBRGcTq35w>iYm5W zCWj#k#Tl37mv3L-jKnev*l#zh zY_m^AG)KP2eRYpKp@VX+|3unT`PcJNnzp$0CeeScqKfH;YMp=N1J7 zSh_#29z?@XQ~nH+F`HjQ23X!7hE#4j-fuigD)3m=LD*O;wW zGQ6E4A+?ZOI$X_uoR8jA?%}-d2bYg8ALR*Ru*j5F+=}Iw(L+o8(831o*KdJ~(%P-t zD&M_adxSf3#MhRn`l>%)SK0k$L{XbV# z*Twv6%DBrv(VzSbf-wW{up>c(e@LDuQQMmIrrr; zDX9t5nnhJ|1k|!YY*4T}Zc;@T`MCOlQqyfFqufrCk%$067m- z<_3vh@2=AG`kkcJlc^Xx4=E9MqEh_PCmVphAKgDJgWaGC;uUj*2#IH4jr8>M#!sE;ffR;3$;h&qJ2*5i^(Q z%%XpnaYAf9~5oH$Rv_Sdc-s_%If3=IT?LzWBxq+`DIENH+Swq z48bzpOD@6*F7_XX^fa_X%{w)mAd%)-F~3M%pO9U%Y=v^Z@tK%Of{aoUgZ zi2%K^y=CG!hYXHcf%{M^{B4>6XWyR6Z_?Y3&P2I}Cnq~EFx3KehAsTLMaEiuZkTQD zl4tZ|wEtzcoZ7-^wJz)aTDUj<^cf5nSz1i`TkY)6J%CIVj~VO&^_|1&QwDf_Ww$IM$qiO_ZvU z*-#cq$;Vyk8-do%gVX0-2O^7q&_d^+-WmZR1HTxvw9+qC^K|Vc8u><-f+gB{ErnDu zLF|k_qhpj93qm}NsK6+zy8MqG9nKF@Z0%+7FsBjRPyWrcO$sCws}KXABD=X>CZBwz zwda+KkaBjwup)T`Vtg_8JW1XeJoWRl9a3C&1jmSM%UA8c^0@(9)_>G%p~~c`$fSEW z-hWM!`&By*E!}Cr_3>|F-@f5gZ1Efa6-5smyJiMHBn&N(-X9mRQ$aX7D(|B6DYao7 z_~h&vW~2jCP~bX?<@*^B@Mt41i|?>o;Z*VkZlc0=FA&!i`G|H z%2u$ppf6bqgriznSz~0QfJt;AkAlyd%Dx{KgNGm51jMXRj@HX<%~qC;s

Fj8b+u#XuSv;u}TO6Mf^kz4M;yw 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 YV{c?-a;OG>?f?J)07*qoM6N<$g7C?b_y7O^ literal 0 HcmV?d00001 diff --git a/test/loadFont.js b/test/loadFont.js new file mode 100644 index 000000000..2e76ec12c --- /dev/null +++ b/test/loadFont.js @@ -0,0 +1,9 @@ +var Jimp = require("../index.js"); + +Jimp.loadFont("font/font.fnt").then(function (font) { + if (font.common.lineHeight != 80) { + console.log("Error: font reading mismatch."); + } +}).catch(function (err) { + console.log(err); +});