/*! * Zfont v1.2.8 * Text plugin for Zdog * 2019 James Daniel * MIT Licensed * github.com/jaames/zfont */ !function(r,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(r=r||self).Zfont=t()}(this,function(){"use strict";var z={parse:function(r){var t=z._bin,e=new Uint8Array(r),a=0,n=(t.readFixed(e,a),t.readUshort(e,a+=4));t.readUshort(e,a+=2),t.readUshort(e,a+=2),t.readUshort(e,a+=2);a+=2;for(var o=["cmap","head","hhea","maxp","hmtx","name","OS/2","post","loca","glyf","kern","CFF ","GPOS","GSUB","SVG "],i={_data:e},s={},h=0;h>>e&1)&&t++;return t},z._lctf.readClassDef=function(r,t){var e=z._bin,a=[],n=e.readUshort(r,t);if(t+=2,1==n){var o=e.readUshort(r,t),i=e.readUshort(r,t+=2);t+=2;for(var s=0;s>4,d=15&d;if(15!=c&&u.push(c),15!=d&&u.push(d),15==d)break}for(var p="",v=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],g=0;g=o.xMax||o.yMin>=o.yMax)return null;if(0>>8;if(0!=(f&=15))throw"unknown kern table format: "+f;t=z.kern.readFormat0(r,t,s)}return s},z.kern.parseV1=function(r,t,e,a){var n=z._bin,o=(n.readFixed(r,t),n.readUint(r,t+=4));t+=4;for(var i={glyph1:[],rval:[]},s=0;s>>8;if(0!=(h&=15))throw"unknown kern table format: "+h;t=z.kern.readFormat0(r,t,i)}return i},z.kern.readFormat0=function(r,t,e){var a=z._bin,n=-1,o=a.readUshort(r,t);a.readUshort(r,t+=2),a.readUshort(r,t+=2),a.readUshort(r,t+=2);t+=2;for(var i=0;i=a.map.length?0:a.map[t];if(4==a.format){for(var n=-1,o=0;ot)return 0;return 65535&(0!=a.idRangeOffset[n]?a.glyphIdArray[t-a.startCount[n]+(a.idRangeOffset[n]>>1)-(a.idRangeOffset.length-n)]:t+a.idDelta[n])}if(12!=a.format)throw"unknown cmap table format "+a.format;if(t>a.groups[a.groups.length-1][1])return 0;for(o=0;om)){for(T=!0,w=0;w>1,i=!(n.length=0);else if("o3"==P||"o23"==P)n.length%2!=0&&!i&&(s=n.shift()+e.Private.nominalWidthX),o+=n.length>>1,i=!(n.length=0);else if("o4"==P)1Math.abs(S-u)?l=m+n.shift():u=S+n.shift(),z.U.P.curveTo(a,d,c,p,v,b,_),z.U.P.curveTo(a,g,U,m,S,l,u));else if("o14"==P)0>1,i=!(n.length=0),f+=o+7>>3;else if("o21"==P)2