/*! * Copyright (c) 2011 Simo Kinnunen. * Licensed under the MIT license. * * @version ${Version} */ var Cufon = (function() { var api = function() { return api.replace.apply(null, arguments); }; var DOM = api.DOM = { ready: (function() { var complete = false, readyStatus = { loaded: 1, complete: 1 }; var queue = [], perform = function() { if (complete) return; complete = true; for (var fn; fn = queue.shift(); fn()); }; // Gecko, Opera, WebKit r26101+ if (document.addEventListener) { document.addEventListener('DOMContentLoaded', perform, false); window.addEventListener('pageshow', perform, false); // For cached Gecko pages } // Old WebKit, Internet Explorer if (!window.opera && document.readyState) (function() { readyStatus[document.readyState] ? perform() : setTimeout(arguments.callee, 10); })(); // Internet Explorer if (document.readyState && document.createStyleSheet) (function() { try { document.body.doScroll('left'); perform(); } catch (e) { setTimeout(arguments.callee, 1); } })(); addEvent(window, 'load', perform); // Fallback return function(listener) { if (!arguments.length) perform(); else complete ? listener() : queue.push(listener); }; })(), root: function() { return document.documentElement || document.body; }, strict: (function() { var doctype; // no doctype (doesn't always catch it though.. IE I'm looking at you) if (document.compatMode == 'BackCompat') return false; // WebKit, Gecko, Opera, IE9+ doctype = document.doctype; if (doctype) { return !/frameset|transitional/i.test(doctype.publicId); } // IE<9, firstChild is the doctype even if there's an XML declaration doctype = document.firstChild; if (doctype.nodeType != 8 || /^DOCTYPE.+(transitional|frameset)/i.test(doctype.data)) { return false; } return true; })() }; var CSS = api.CSS = { Size: function(value, base) { this.value = parseFloat(value); this.unit = String(value).match(/[a-z%]*$/)[0] || 'px'; this.convert = function(value) { return value / base * this.value; }; this.convertFrom = function(value) { return value / this.value * base; }; this.toString = function() { return this.value + this.unit; }; }, addClass: function(el, className) { var current = el.className; el.className = current + (current && ' ') + className; return el; }, color: cached(function(value) { var parsed = {}; parsed.color = value.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function($0, $1, $2) { parsed.opacity = parseFloat($2); return 'rgb(' + $1 + ')'; }); return parsed; }), // has no direct CSS equivalent. // @see http://msdn.microsoft.com/en-us/library/system.windows.fontstretches.aspx fontStretch: cached(function(value) { if (typeof value == 'number') return value; if (/%$/.test(value)) return parseFloat(value) / 100; return { 'ultra-condensed': 0.5, 'extra-condensed': 0.625, condensed: 0.75, 'semi-condensed': 0.875, 'semi-expanded': 1.125, expanded: 1.25, 'extra-expanded': 1.5, 'ultra-expanded': 2 }[value] || 1; }), getStyle: function(el) { var view = document.defaultView; if (view && view.getComputedStyle) return new Style(view.getComputedStyle(el, null)); if (el.currentStyle) return new Style(el.currentStyle); return new Style(el.style); }, gradient: cached(function(value) { var gradient = { id: value, type: value.match(/^-([a-z]+)-gradient\(/)[1], stops: [] }, colors = value.substr(value.indexOf('(')).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig); for (var i = 0, l = colors.length, stop; i < l; ++i) { stop = colors[i].split('=', 2).reverse(); gradient.stops.push([ stop[1] || i / (l - 1), stop[0] ]); } return gradient; }), quotedList: cached(function(value) { // doesn't work properly with empty quoted strings (""), but // it's not worth the extra code. var list = [], re = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, match; while (match = re.exec(value)) list.push(match[3] || match[1]); return list; }), recognizesMedia: cached(function(media) { var el = document.createElement('style'), sheet, container, supported; el.type = 'text/css'; el.media = media; try { // this is cached anyway el.appendChild(document.createTextNode('/**/')); } catch (e) {} container = elementsByTagName('head')[0]; container.insertBefore(el, container.firstChild); sheet = (el.sheet || el.styleSheet); supported = sheet && !sheet.disabled; container.removeChild(el); return supported; }), removeClass: function(el, className) { var re = RegExp('(?:^|\\s+)' + className + '(?=\\s|$)', 'g'); el.className = el.className.replace(re, ''); return el; }, supports: function(property, value) { var checker = document.createElement('span').style; if (checker[property] === undefined) return false; checker[property] = value; return checker[property] === value; }, textAlign: function(word, style, position, wordCount) { if (style.get('textAlign') == 'right') { if (position > 0) word = ' ' + word; } else if (position < wordCount - 1) word += ' '; return word; }, textShadow: cached(function(value) { if (value == 'none') return null; var shadows = [], currentShadow = {}, result, offCount = 0; var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig; while (result = re.exec(value)) { if (result[0] == ',') { shadows.push(currentShadow); currentShadow = {}; offCount = 0; } else if (result[1]) { currentShadow.color = result[1]; } else { currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2]; } } shadows.push(currentShadow); return shadows; }), textTransform: (function() { var map = { uppercase: function(s) { return s.toUpperCase(); }, lowercase: function(s) { return s.toLowerCase(); }, capitalize: function(s) { return s.replace(/(?:^|\s)./g, function($0) { return $0.toUpperCase(); }); } }; return function(text, style) { var transform = map[style.get('textTransform')]; return transform ? transform(text) : text; }; })(), whiteSpace: (function() { var ignore = { inline: 1, 'inline-block': 1, 'run-in': 1 }; var wsStart = /^\s+/, wsEnd = /\s+$/; return function(text, style, node, previousElement, simple) { if (simple) return text.replace(wsStart, '').replace(wsEnd, ''); // @fixme too simple if (previousElement) { if (previousElement.nodeName.toLowerCase() == 'br') { text = text.replace(wsStart, ''); } } if (ignore[style.get('display')]) return text; if (!node.previousSibling) text = text.replace(wsStart, ''); if (!node.nextSibling) text = text.replace(wsEnd, ''); return text; }; })() }; CSS.ready = (function() { // don't do anything in Safari 2 (it doesn't recognize any media type) var complete = !CSS.recognizesMedia('all'), hasLayout = false; var queue = [], perform = function() { complete = true; for (var fn; fn = queue.shift(); fn()); }; var links = elementsByTagName('link'), styles = elementsByTagName('style'); var checkTypes = { '': 1, 'text/css': 1 }; function isContainerReady(el) { if (!checkTypes[el.type.toLowerCase()]) return true; return el.disabled || isSheetReady(el.sheet, el.media || 'screen'); } function isSheetReady(sheet, media) { // in Opera sheet.disabled is true when it's still loading, // even though link.disabled is false. they stay in sync if // set manually. if (!CSS.recognizesMedia(media || 'all')) return true; if (!sheet || sheet.disabled) return false; try { var rules = sheet.cssRules, rule; if (rules) { // needed for Safari 3 and Chrome 1.0. // in standards-conforming browsers cssRules contains @-rules. // Chrome 1.0 weirdness: rules[] // returns the last rule, so a for loop is the only option. search: for (var i = 0, l = rules.length; rule = rules[i], i < l; ++i) { switch (rule.type) { case 2: // @charset break; case 3: // @import if (!isSheetReady(rule.styleSheet, rule.media.mediaText)) return false; break; default: // only @charset can precede @import break search; } } } } catch (e) {} // probably a style sheet from another domain return true; } function allStylesLoaded() { // Internet Explorer's style sheet model, there's no need to do anything if (document.createStyleSheet) return true; // standards-compliant browsers var el, i; for (i = 0; el = links[i]; ++i) { if (el.rel.toLowerCase() == 'stylesheet' && !isContainerReady(el)) return false; } for (i = 0; el = styles[i]; ++i) { if (!isContainerReady(el)) return false; } return true; } DOM.ready(function() { // getComputedStyle returns null in Gecko if used in an iframe with display: none if (!hasLayout) hasLayout = CSS.getStyle(document.body).isUsable(); if (complete || (hasLayout && allStylesLoaded())) perform(); else setTimeout(arguments.callee, 10); }); return function(listener) { if (complete) listener(); else queue.push(listener); }; })(); function Font(data) { var face = this.face = data.face, wordSeparators = { '\u0020': 1, '\u00a0': 1, '\u3000': 1 }; this.glyphs = (function(glyphs) { var key, fallbacks = { '\u2011': '\u002d', '\u00ad': '\u2011' }; for (key in fallbacks) { if (!hasOwnProperty(fallbacks, key)) continue; if (!glyphs[key]) glyphs[key] = glyphs[fallbacks[key]]; } return glyphs; })(data.glyphs); this.w = data.w; this.baseSize = parseInt(face['units-per-em'], 10); this.family = face['font-family'].toLowerCase(); this.weight = face['font-weight']; this.style = face['font-style'] || 'normal'; this.viewBox = (function () { var parts = face.bbox.split(/\s+/); var box = { minX: parseInt(parts[0], 10), minY: parseInt(parts[1], 10), maxX: parseInt(parts[2], 10), maxY: parseInt(parts[3], 10) }; box.width = box.maxX - box.minX; box.height = box.maxY - box.minY; box.toString = function() { return [ this.minX, this.minY, this.width, this.height ].join(' '); }; return box; })(); this.ascent = -parseInt(face.ascent, 10); this.descent = -parseInt(face.descent, 10); this.height = -this.ascent + this.descent; this.spacing = function(chars, letterSpacing, wordSpacing) { var glyphs = this.glyphs, glyph, kerning, k, jumps = [], width = 0, w, i = -1, j = -1, chr; while (chr = chars[++i]) { glyph = glyphs[chr] || this.missingGlyph; if (!glyph) continue; if (kerning) { width -= k = kerning[chr] || 0; jumps[j] -= k; } w = glyph.w; if (isNaN(w)) w = +this.w; // may have been a String in old fonts if (w > 0) { w += letterSpacing; if (wordSeparators[chr]) w += wordSpacing; } width += jumps[++j] = ~~w; // get rid of decimals kerning = glyph.k; } jumps.total = width; return jumps; }; } function FontFamily() { var styles = {}, mapping = { oblique: 'italic', italic: 'oblique' }; this.add = function(font) { (styles[font.style] || (styles[font.style] = {}))[font.weight] = font; }; this.get = function(style, weight) { var weights = styles[style] || styles[mapping[style]] || styles.normal || styles.italic || styles.oblique; if (!weights) return null; // we don't have to worry about "bolder" and "lighter" // because IE's currentStyle returns a numeric value for it, // and other browsers use the computed value anyway weight = { normal: 400, bold: 700 }[weight] || parseInt(weight, 10); if (weights[weight]) return weights[weight]; // http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight // Gecko uses x99/x01 for lighter/bolder var up = { 1: 1, 99: 0 }[weight % 100], alts = [], min, max; if (up === undefined) up = weight > 400; if (weight == 500) weight = 400; for (var alt in weights) { if (!hasOwnProperty(weights, alt)) continue; alt = parseInt(alt, 10); if (!min || alt < min) min = alt; if (!max || alt > max) max = alt; alts.push(alt); } if (weight < min) weight = min; if (weight > max) weight = max; alts.sort(function(a, b) { return (up ? (a >= weight && b >= weight) ? a < b : a > b : (a <= weight && b <= weight) ? a > b : a < b) ? -1 : 1; }); return weights[alts[0]]; }; } function HoverHandler() { function contains(node, anotherNode) { try { if (node.contains) return node.contains(anotherNode); return node.compareDocumentPosition(anotherNode) & 16; } catch(e) {} // probably a XUL element such as a scrollbar return false; } // mouseover/mouseout (standards) mode function onOverOut(e) { var related = e.relatedTarget; // there might be no relatedTarget if the element is right next // to the window frame if (related && contains(this, related)) return; trigger(this, e.type == 'mouseover'); } // mouseenter/mouseleave (probably ie) mode function onEnterLeave(e) { if (!e) e = window.event; // ie model, we don't have access to "this", but // mouseenter/leave doesn't bubble so it's fine. trigger(e.target || e.srcElement, e.type == 'mouseenter'); } function trigger(el, hoverState) { // A timeout is needed so that the event can actually "happen" // before replace is triggered. This ensures that styles are up // to date. setTimeout(function() { var options = sharedStorage.get(el).options; if (hoverState) { options = merge(options, options.hover); options._mediatorMode = 1; } api.replace(el, options, true); }, 10); } this.attach = function(el) { if (el.onmouseenter === undefined) { addEvent(el, 'mouseover', onOverOut); addEvent(el, 'mouseout', onOverOut); } else { addEvent(el, 'mouseenter', onEnterLeave); addEvent(el, 'mouseleave', onEnterLeave); } }; this.detach = function(el) { if (el.onmouseenter === undefined) { removeEvent(el, 'mouseover', onOverOut); removeEvent(el, 'mouseout', onOverOut); } else { removeEvent(el, 'mouseenter', onEnterLeave); removeEvent(el, 'mouseleave', onEnterLeave); } }; } function ReplaceHistory() { var list = [], map = {}; function filter(keys) { var values = [], key; for (var i = 0; key = keys[i]; ++i) values[i] = list[map[key]]; return values; } this.add = function(key, args) { map[key] = list.push(args) - 1; }; this.repeat = function() { var snapshot = arguments.length ? filter(arguments) : list, args; for (var i = 0; args = snapshot[i++];) api.replace(args[0], args[1], true); }; } function Storage() { var map = {}, at = 0; function identify(el) { return el.cufid || (el.cufid = ++at); } this.get = function(el) { var id = identify(el); return map[id] || (map[id] = {}); }; } function Style(style) { var custom = {}, sizes = {}; this.extend = function(styles) { for (var property in styles) { if (hasOwnProperty(styles, property)) custom[property] = styles[property]; } return this; }; this.get = function(property) { return custom[property] != undefined ? custom[property] : style[property]; }; this.getSize = function(property, base) { return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base)); }; this.isUsable = function() { return !!style; }; } function addEvent(el, type, listener) { if (el.addEventListener) { el.addEventListener(type, listener, false); } else if (el.attachEvent) { // we don't really need "this" right now, saves code el.attachEvent('on' + type, listener); } } function attach(el, options) { if (options._mediatorMode) return el; var storage = sharedStorage.get(el); var oldOptions = storage.options; if (oldOptions) { if (oldOptions === options) return el; if (oldOptions.hover) hoverHandler.detach(el); } if (options.hover && options.hoverables[el.nodeName.toLowerCase()]) { hoverHandler.attach(el); } storage.options = options; return el; } function cached(fun) { var cache = {}; return function(key) { if (!hasOwnProperty(cache, key)) cache[key] = fun.apply(null, arguments); return cache[key]; }; } function getFont(el, style) { var families = CSS.quotedList(style.get('fontFamily').toLowerCase()), family; for (var i = 0; family = families[i]; ++i) { if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight')); } return null; } function elementsByTagName(query) { return document.getElementsByTagName(query); } function hasOwnProperty(obj, property) { return obj.hasOwnProperty(property); } function merge() { var merged = {}, arg, key; for (var i = 0, l = arguments.length; arg = arguments[i], i < l; ++i) { for (key in arg) { if (hasOwnProperty(arg, key)) merged[key] = arg[key]; } } return merged; } function process(font, text, style, options, node, el) { var fragment = document.createDocumentFragment(), processed; if (text === '') return fragment; var separate = options.separate; var parts = text.split(separators[separate]), needsAligning = (separate == 'words'); if (needsAligning && HAS_BROKEN_REGEXP) { // @todo figure out a better way to do this if (/^\s/.test(text)) parts.unshift(''); if (/\s$/.test(text)) parts.push(''); } for (var i = 0, l = parts.length; i < l; ++i) { processed = engines[options.engine](font, needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i], style, options, node, el, i < l - 1); if (processed) fragment.appendChild(processed); } return fragment; } function removeEvent(el, type, listener) { if (el.removeEventListener) { el.removeEventListener(type, listener, false); } else if (el.detachEvent) { el.detachEvent('on' + type, listener); } } function replaceElement(el, options) { var name = el.nodeName.toLowerCase(); if (options.ignore[name]) return; if (options.ignoreClass && options.ignoreClass.test(el.className)) return; if (options.onBeforeReplace) options.onBeforeReplace(el, options); var replace = !options.textless[name], simple = (options.trim === 'simple'); var style = CSS.getStyle(attach(el, options)).extend(options); // may cause issues if the element contains other elements // with larger fontSize, however such cases are rare and can // be fixed by using a more specific selector if (parseFloat(style.get('fontSize')) === 0) return; var font = getFont(el, style), node, type, next, anchor, text, lastElement; var isShy = options.softHyphens, anyShy = false, pos, shy, reShy = /\u00ad/g; var modifyText = options.modifyText; if (!font) return; for (node = el.firstChild; node; node = next) { type = node.nodeType; next = node.nextSibling; if (replace && type == 3) { if (isShy && el.nodeName.toLowerCase() != TAG_SHY) { pos = node.data.indexOf('\u00ad'); if (pos >= 0) { node.splitText(pos); next = node.nextSibling; next.deleteData(0, 1); shy = document.createElement(TAG_SHY); shy.appendChild(document.createTextNode('\u00ad')); el.insertBefore(shy, next); next = shy; anyShy = true; } } // Node.normalize() is broken in IE 6, 7, 8 if (anchor) { anchor.appendData(node.data); el.removeChild(node); } else anchor = node; if (next) continue; } if (anchor) { text = anchor.data; if (!isShy) text = text.replace(reShy, ''); text = CSS.whiteSpace(text, style, anchor, lastElement, simple); // modify text only on the first replace if (modifyText) text = modifyText(text, anchor, el, options); el.replaceChild(process(font, text, style, options, node, el), anchor); anchor = null; } if (type == 1) { if (node.firstChild) { if (node.nodeName.toLowerCase() == 'cufon') { engines[options.engine](font, null, style, options, node, el); } else arguments.callee(node, options); } lastElement = node; } } if (isShy && anyShy) { updateShy(el); if (!trackingShy) addEvent(window, 'resize', updateShyOnResize); trackingShy = true; } if (options.onAfterReplace) options.onAfterReplace(el, options); } function updateShy(context) { var shys, shy, parent, glue, newGlue, next, prev, i; shys = context.getElementsByTagName(TAG_SHY); // unfortunately there doesn't seem to be any easy // way to avoid having to loop through the shys twice. for (i = 0; shy = shys[i]; ++i) { shy.className = C_SHY_DISABLED; glue = parent = shy.parentNode; if (glue.nodeName.toLowerCase() != TAG_GLUE) { newGlue = document.createElement(TAG_GLUE); newGlue.appendChild(shy.previousSibling); parent.insertBefore(newGlue, shy); newGlue.appendChild(shy); } else { // get rid of double glue (edge case fix) glue = glue.parentNode; if (glue.nodeName.toLowerCase() == TAG_GLUE) { parent = glue.parentNode; while (glue.firstChild) { parent.insertBefore(glue.firstChild, glue); } parent.removeChild(glue); } } } for (i = 0; shy = shys[i]; ++i) { shy.className = ''; glue = shy.parentNode; parent = glue.parentNode; next = glue.nextSibling || parent.nextSibling; // make sure we're comparing same types prev = (next.nodeName.toLowerCase() == TAG_GLUE) ? glue : shy.previousSibling; if (prev.offsetTop >= next.offsetTop) { shy.className = C_SHY_DISABLED; if (prev.offsetTop < next.offsetTop) { // we have an annoying edge case, double the glue newGlue = document.createElement(TAG_GLUE); parent.insertBefore(newGlue, glue); newGlue.appendChild(glue); newGlue.appendChild(next); } } } } function updateShyOnResize() { if (ignoreResize) return; // needed for IE CSS.addClass(DOM.root(), C_VIEWPORT_RESIZING); clearTimeout(shyTimer); shyTimer = setTimeout(function() { ignoreResize = true; CSS.removeClass(DOM.root(), C_VIEWPORT_RESIZING); updateShy(document); ignoreResize = false; }, 100); } var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0; var TAG_GLUE = 'cufonglue'; var TAG_SHY = 'cufonshy'; var C_SHY_DISABLED = 'cufon-shy-disabled'; var C_VIEWPORT_RESIZING = 'cufon-viewport-resizing'; var sharedStorage = new Storage(); var hoverHandler = new HoverHandler(); var replaceHistory = new ReplaceHistory(); var initialized = false; var trackingShy = false; var shyTimer; var ignoreResize = false; var engines = {}, fonts = {}, defaultOptions = { autoDetect: false, engine: null, forceHitArea: false, hover: false, hoverables: { a: true }, ignore: { applet: 1, canvas: 1, col: 1, colgroup: 1, head: 1, iframe: 1, map: 1, noscript: 1, optgroup: 1, option: 1, script: 1, select: 1, style: 1, textarea: 1, title: 1, pre: 1 }, ignoreClass: null, modifyText: null, onAfterReplace: null, onBeforeReplace: null, printable: true, selector: ( window.Sizzle || (window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues || (window.dojo && dojo.query) || (window.glow && glow.dom && glow.dom.get) || (window.Ext && Ext.query) || (window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query) || (window.$$ && function(query) { return $$(query); }) || (window.$ && function(query) { return $(query); }) || (document.querySelectorAll && function(query) { return document.querySelectorAll(query); }) || elementsByTagName ), separate: 'words', // 'none' and 'characters' are also accepted softHyphens: true, textless: { dl: 1, html: 1, ol: 1, table: 1, tbody: 1, thead: 1, tfoot: 1, tr: 1, ul: 1 }, textShadow: 'none', trim: 'advanced' }; var separators = { // The first pattern may cause unicode characters above // code point 255 to be removed in Safari 3.0. Luckily enough // Safari 3.0 does not include non-breaking spaces in \s, so // we can just use a simple alternative pattern. words: /\s/.test('\u00a0') ? /[^\S\u00a0]+/ : /\s+/, characters: '', none: /^/ }; api.now = function() { DOM.ready(); return api; }; api.refresh = function() { replaceHistory.repeat.apply(replaceHistory, arguments); return api; }; api.registerEngine = function(id, engine) { if (!engine) return api; engines[id] = engine; return api.set('engine', id); }; api.registerFont = function(data) { if (!data) return api; var font = new Font(data), family = font.family; if (!fonts[family]) fonts[family] = new FontFamily(); fonts[family].add(font); return api.set('fontFamily', '"' + family + '"'); }; api.replace = function(elements, options, ignoreHistory) { options = merge(defaultOptions, options); if (!options.engine) return api; // there's no browser support so we'll just stop here if (!initialized) { CSS.addClass(DOM.root(), 'cufon-active cufon-loading'); CSS.ready(function() { // fires before any replace() calls, but it doesn't really matter CSS.addClass(CSS.removeClass(DOM.root(), 'cufon-loading'), 'cufon-ready'); }); initialized = true; } if (options.hover) options.forceHitArea = true; if (options.autoDetect) delete options.fontFamily; if (typeof options.ignoreClass == 'string') { options.ignoreClass = new RegExp('(?:^|\\s)(?:' + options.ignoreClass.replace(/\s+/g, '|') + ')(?:\\s|$)'); } if (typeof options.textShadow == 'string') { options.textShadow = CSS.textShadow(options.textShadow); } if (typeof options.color == 'string' && /^-/.test(options.color)) { options.textGradient = CSS.gradient(options.color); } else delete options.textGradient; if (typeof elements == 'string') { if (!ignoreHistory) replaceHistory.add(elements, arguments); elements = [ elements ]; } else if (elements.nodeType) elements = [ elements ]; CSS.ready(function() { for (var i = 0, l = elements.length; i < l; ++i) { var el = elements[i]; if (typeof el == 'string') api.replace(options.selector(el), options, true); else replaceElement(el, options); } }); return api; }; api.set = function(option, value) { defaultOptions[option] = value; return api; }; return api; })(); Cufon.registerEngine('vml', (function() { var ns = document.namespaces; if (!ns) return; ns.add('cvml', 'urn:schemas-microsoft-com:vml'); ns = null; var check = document.createElement('cvml:shape'); check.style.behavior = 'url(#default#VML)'; if (!check.coordsize) return; // VML isn't supported check = null; var HAS_BROKEN_LINEHEIGHT = (document.documentMode || 0) < 8; document.write(('').replace(/;/g, '!important;')); function getFontSizeInPixels(el, value) { return getSizeInPixels(el, /(?:em|ex|%)$|^[a-z-]+$/i.test(value) ? '1em' : value); } // Original by Dead Edwards. // Combined with getFontSizeInPixels it also works with relative units. function getSizeInPixels(el, value) { if (!isNaN(value) || /px$/i.test(value)) return parseFloat(value); var style = el.style.left, runtimeStyle = el.runtimeStyle.left; el.runtimeStyle.left = el.currentStyle.left; el.style.left = value.replace('%', 'em'); var result = el.style.pixelLeft; el.style.left = style; el.runtimeStyle.left = runtimeStyle; return result; } function getSpacingValue(el, style, size, property) { var key = 'computed' + property, value = style[key]; if (isNaN(value)) { value = style.get(property); style[key] = value = (value == 'normal') ? 0 : ~~size.convertFrom(getSizeInPixels(el, value)); } return value; } var fills = {}; function gradientFill(gradient) { var id = gradient.id; if (!fills[id]) { var stops = gradient.stops, fill = document.createElement('cvml:fill'), colors = []; fill.type = 'gradient'; fill.angle = 180; fill.focus = '0'; fill.method = 'none'; fill.color = stops[0][1]; for (var j = 1, k = stops.length - 1; j < k; ++j) { colors.push(stops[j][0] * 100 + '% ' + stops[j][1]); } fill.colors = colors.join(','); fill.color2 = stops[k][1]; fills[id] = fill; } return fills[id]; } return function(font, text, style, options, node, el, hasNext) { var redraw = (text === null); if (redraw) text = node.alt; var viewBox = font.viewBox; var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize)); var wrapper, canvas; if (redraw) { wrapper = node; canvas = node.firstChild; } else { wrapper = document.createElement('cufon'); wrapper.className = 'cufon cufon-vml'; wrapper.alt = text; canvas = document.createElement('cufoncanvas'); wrapper.appendChild(canvas); if (options.printable) { var print = document.createElement('cufontext'); print.appendChild(document.createTextNode(text)); wrapper.appendChild(print); } // ie6, for some reason, has trouble rendering the last VML element in the document. // we can work around this by injecting a dummy element where needed. // @todo find a better solution if (!hasNext) wrapper.appendChild(document.createElement('cvml:shape')); } var wStyle = wrapper.style; var cStyle = canvas.style; var height = size.convert(viewBox.height), roundedHeight = Math.ceil(height); var roundingFactor = roundedHeight / height; var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch')); var minX = viewBox.minX, minY = viewBox.minY; cStyle.height = roundedHeight; cStyle.top = Math.round(size.convert(minY - font.ascent)); cStyle.left = Math.round(size.convert(minX)); wStyle.height = size.convert(font.height) + 'px'; var color = style.get('color'); var chars = Cufon.CSS.textTransform(text, style).split(''); var jumps = font.spacing(chars, getSpacingValue(el, style, size, 'letterSpacing'), getSpacingValue(el, style, size, 'wordSpacing') ); if (!jumps.length) return null; var width = jumps.total; var fullWidth = -minX + width + (viewBox.width - jumps[jumps.length - 1]); var shapeWidth = size.convert(fullWidth * stretchFactor), roundedShapeWidth = Math.round(shapeWidth); var coordSize = fullWidth + ',' + viewBox.height, coordOrigin; var stretch = 'r' + coordSize + 'ns'; var fill = options.textGradient && gradientFill(options.textGradient); var glyphs = font.glyphs, offsetX = 0; var shadows = options.textShadow; var i = -1, j = 0, chr; while (chr = chars[++i]) { var glyph = glyphs[chars[i]] || font.missingGlyph, shape; if (!glyph) continue; if (redraw) { // some glyphs may be missing so we can't use i shape = canvas.childNodes[j]; while (shape.firstChild) shape.removeChild(shape.firstChild); // shadow, fill } else { shape = document.createElement('cvml:shape'); canvas.appendChild(shape); } shape.stroked = 'f'; shape.coordsize = coordSize; shape.coordorigin = coordOrigin = (minX - offsetX) + ',' + minY; shape.path = (glyph.d ? 'm' + glyph.d + 'xe' : '') + 'm' + coordOrigin + stretch; shape.fillcolor = color; if (fill) shape.appendChild(fill.cloneNode(false)); // it's important to not set top/left or IE8 will grind to a halt var sStyle = shape.style; sStyle.width = roundedShapeWidth; sStyle.height = roundedHeight; if (shadows) { // due to the limitations of the VML shadow element there // can only be two visible shadows. opacity is shared // for all shadows. var shadow1 = shadows[0], shadow2 = shadows[1]; var color1 = Cufon.CSS.color(shadow1.color), color2; var shadow = document.createElement('cvml:shadow'); shadow.on = 't'; shadow.color = color1.color; shadow.offset = shadow1.offX + ',' + shadow1.offY; if (shadow2) { color2 = Cufon.CSS.color(shadow2.color); shadow.type = 'double'; shadow.color2 = color2.color; shadow.offset2 = shadow2.offX + ',' + shadow2.offY; } shadow.opacity = color1.opacity || (color2 && color2.opacity) || 1; shape.appendChild(shadow); } offsetX += jumps[j++]; } // addresses flickering issues on :hover var cover = shape.nextSibling, coverFill, vStyle; if (options.forceHitArea) { if (!cover) { cover = document.createElement('cvml:rect'); cover.stroked = 'f'; cover.className = 'cufon-vml-cover'; coverFill = document.createElement('cvml:fill'); coverFill.opacity = 0; cover.appendChild(coverFill); canvas.appendChild(cover); } vStyle = cover.style; vStyle.width = roundedShapeWidth; vStyle.height = roundedHeight; } else if (cover) canvas.removeChild(cover); wStyle.width = Math.max(Math.ceil(size.convert(width * stretchFactor)), 0); if (HAS_BROKEN_LINEHEIGHT) { var yAdjust = style.computedYAdjust; if (yAdjust === undefined) { var lineHeight = style.get('lineHeight'); if (lineHeight == 'normal') lineHeight = '1em'; else if (!isNaN(lineHeight)) lineHeight += 'em'; // no unit style.computedYAdjust = yAdjust = 0.5 * (getSizeInPixels(el, lineHeight) - parseFloat(wStyle.height)); } if (yAdjust) { wStyle.marginTop = Math.ceil(yAdjust) + 'px'; wStyle.marginBottom = yAdjust + 'px'; } } return wrapper; }; })()); Cufon.registerEngine('canvas', (function() { // Safari 2 doesn't support .apply() on native methods var check = document.createElement('canvas'); if (!check || !check.getContext || !check.getContext.apply) return; check = null; var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block'); // Firefox 2 w/ non-strict doctype (almost standards mode) var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId)); var styleSheet = document.createElement('style'); styleSheet.type = 'text/css'; styleSheet.appendChild(document.createTextNode(( 'cufon{text-indent:0;}' + '@media screen,projection{' + 'cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;' + (HAS_BROKEN_LINEHEIGHT ? '' : 'font-size:1px;line-height:1px;') + '}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;text-align:left;text-indent:-10000in;}' + (HAS_INLINE_BLOCK ? 'cufon canvas{position:relative;}' : 'cufon canvas{position:absolute;}') + 'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' + 'cufonglue{white-space:nowrap;display:inline-block;}' + '.cufon-viewport-resizing cufonglue{white-space:normal;}' + '}' + '@media print{' + 'cufon{padding:0;}' + // Firefox 2 'cufon canvas{display:none;}' + '}' ).replace(/;/g, '!important;'))); document.getElementsByTagName('head')[0].appendChild(styleSheet); function generateFromVML(path, context) { var atX = 0, atY = 0; var code = [], re = /([mrvxe])([^a-z]*)/g, match; generate: for (var i = 0; match = re.exec(path); ++i) { var c = match[2].split(','); switch (match[1]) { case 'v': code[i] = { m: 'bezierCurveTo', a: [ atX + ~~c[0], atY + ~~c[1], atX + ~~c[2], atY + ~~c[3], atX += ~~c[4], atY += ~~c[5] ] }; break; case 'r': code[i] = { m: 'lineTo', a: [ atX += ~~c[0], atY += ~~c[1] ] }; break; case 'm': code[i] = { m: 'moveTo', a: [ atX = ~~c[0], atY = ~~c[1] ] }; break; case 'x': code[i] = { m: 'closePath' }; break; case 'e': break generate; } context[code[i].m].apply(context, code[i].a); } return code; } function interpret(code, context) { for (var i = 0, l = code.length; i < l; ++i) { var line = code[i]; context[line.m].apply(context, line.a); } } return function(font, text, style, options, node, el) { var redraw = (text === null); if (redraw) text = node.getAttribute('alt'); var viewBox = font.viewBox; var size = style.getSize('fontSize', font.baseSize); var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0; var shadows = options.textShadow, shadowOffsets = []; if (shadows) { for (var i = shadows.length; i--;) { var shadow = shadows[i]; var x = size.convertFrom(parseFloat(shadow.offX)); var y = size.convertFrom(parseFloat(shadow.offY)); shadowOffsets[i] = [ x, y ]; if (y < expandTop) expandTop = y; if (x > expandRight) expandRight = x; if (y > expandBottom) expandBottom = y; if (x < expandLeft) expandLeft = x; } } var chars = Cufon.CSS.textTransform(text, style).split(''); var jumps = font.spacing(chars, ~~size.convertFrom(parseFloat(style.get('letterSpacing')) || 0), ~~size.convertFrom(parseFloat(style.get('wordSpacing')) || 0) ); if (!jumps.length) return null; // there's nothing to render var width = jumps.total; expandRight += viewBox.width - jumps[jumps.length - 1]; expandLeft += viewBox.minX; var wrapper, canvas; if (redraw) { wrapper = node; canvas = node.firstChild; } else { wrapper = document.createElement('cufon'); wrapper.className = 'cufon cufon-canvas'; wrapper.setAttribute('alt', text); canvas = document.createElement('canvas'); wrapper.appendChild(canvas); if (options.printable) { var print = document.createElement('cufontext'); print.appendChild(document.createTextNode(text)); wrapper.appendChild(print); } } var wStyle = wrapper.style; var cStyle = canvas.style; var height = size.convert(viewBox.height); var roundedHeight = Math.ceil(height); var roundingFactor = roundedHeight / height; var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch')); var stretchedWidth = width * stretchFactor; var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft)); var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom)); canvas.width = canvasWidth; canvas.height = canvasHeight; // needed for WebKit and full page zoom cStyle.width = canvasWidth + 'px'; cStyle.height = canvasHeight + 'px'; // minY has no part in canvas.height expandTop += viewBox.minY; cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px'; cStyle.left = Math.round(size.convert(expandLeft)) + 'px'; var wrapperWidth = Math.max(Math.ceil(size.convert(stretchedWidth)), 0) + 'px'; if (HAS_INLINE_BLOCK) { wStyle.width = wrapperWidth; wStyle.height = size.convert(font.height) + 'px'; } else { wStyle.paddingLeft = wrapperWidth; wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px'; } var g = canvas.getContext('2d'), scale = height / viewBox.height; // proper horizontal scaling is performed later g.scale(scale, scale * roundingFactor); g.translate(-expandLeft, -expandTop); g.save(); function renderText() { var glyphs = font.glyphs, glyph, i = -1, j = -1, chr; g.scale(stretchFactor, 1); while (chr = chars[++i]) { var glyph = glyphs[chars[i]] || font.missingGlyph; if (!glyph) continue; if (glyph.d) { g.beginPath(); if (glyph.code) interpret(glyph.code, g); else glyph.code = generateFromVML('m' + glyph.d, g); g.fill(); } g.translate(jumps[++j], 0); } g.restore(); } if (shadows) { for (var i = shadows.length; i--;) { var shadow = shadows[i]; g.save(); g.fillStyle = shadow.color; g.translate.apply(g, shadowOffsets[i]); renderText(); } } var gradient = options.textGradient; if (gradient) { var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY); for (var i = 0, l = stops.length; i < l; ++i) { fill.addColorStop.apply(fill, stops[i]); } g.fillStyle = fill; } else g.fillStyle = style.get('color'); renderText(); return wrapper; }; })()); /*! * The following copyright notice may not be removed under any circumstances. * * Copyright: * MicroMarket 1994 */ Cufon.registerFont({"w":221,"face":{"font-family":"Futura","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 4 2 0 0 2 0 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-58 -380 424 105","underline-thickness":"27","underline-position":"-40.68","unicode-range":"U+0002-U+F8FF"},"glyphs":{" ":{"w":110},"!":{"d":"81,-16v0,-11,-9,-20,-20,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v11,0,20,-10,20,-21xm46,-55r30,0r0,-216r-30,0r0,216","w":121},"\"":{"d":"43,-153r21,0r7,-118r-34,0xm100,-153r21,0r7,-118r-34,0","w":164},"#":{"d":"72,-198r-43,0r0,28r39,0r-11,62r-41,0r0,28r37,0r-14,80r27,0r15,-80r44,0r-14,80r27,0r15,-80r41,0r0,-28r-36,0r10,-62r38,0r0,-28r-33,0r12,-73r-28,0r-13,73r-44,0r13,-73r-28,0xm140,-170r-10,62r-45,0r11,-62r44,0"},"$":{"d":"128,-124v46,9,48,86,0,97r0,-97xm104,-167v-38,-7,-44,-72,0,-79r0,79xm41,-206v-1,44,33,58,63,71r0,110v-27,-3,-44,-23,-48,-49r-29,8v8,39,34,67,77,70r0,37r24,0r0,-39v38,-10,67,-36,67,-82v0,-47,-34,-61,-67,-76r0,-89v17,2,25,16,33,28r24,-16v-10,-21,-31,-37,-57,-41r0,-37r-24,0r0,37v-37,5,-62,28,-63,68"},"%":{"d":"132,-217v0,-36,-23,-59,-60,-59v-36,0,-60,22,-60,59v0,37,24,59,60,59v36,0,60,-23,60,-59xm35,-217v0,-22,16,-36,37,-36v21,0,37,14,37,36v0,22,-15,36,-37,36v-22,0,-37,-14,-37,-36xm215,-276r-158,271r15,10r157,-272xm276,-54v0,-37,-25,-60,-61,-60v-36,0,-60,24,-60,60v0,36,25,59,60,59v35,0,61,-23,61,-59xm178,-54v0,-23,15,-37,37,-37v22,0,38,14,38,37v0,22,-16,36,-38,36v-21,0,-37,-14,-37,-36","w":286},"&":{"d":"116,-251v37,0,34,53,7,63r-14,11v-8,-14,-23,-23,-23,-44v0,-16,14,-31,30,-30xm93,5v40,0,64,-23,87,-43r29,38r38,0r-46,-59r35,-41r-22,-18r-31,36r-57,-73v21,-16,48,-31,48,-68v0,-34,-24,-53,-58,-53v-35,0,-58,21,-59,57v0,28,17,42,27,58v-32,22,-70,41,-70,92v0,46,33,74,79,74xm147,-48v-32,44,-126,21,-99,-43v10,-23,35,-34,54,-48r60,78","w":250},"'":{"d":"42,-153r21,0r6,-118r-34,0","w":104},"(":{"d":"92,74v-38,-96,-38,-249,0,-345r-26,-13v-44,96,-44,275,0,370","w":103},")":{"d":"37,86v45,-95,43,-277,0,-370r-25,13v38,95,38,250,0,345","w":103},"*":{"d":"48,-239r-9,26r49,14r-31,40r21,16r29,-43r28,43r22,-16r-32,-40r49,-14r-8,-26r-48,18r2,-50r-27,0r2,50","w":213},"+":{"d":"97,-106r-73,0r0,28r73,0r0,73r28,0r0,-73r73,0r0,-28r-73,0r0,-73r-28,0r0,73"},",":{"d":"21,54r19,8r41,-92r-27,-10","w":110},"-":{"d":"1,-73r74,0r0,-27r-74,0r0,27","w":74},".":{"d":"76,-16v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v12,0,21,-9,21,-21","w":110},"\/":{"d":"6,46r24,11r169,-343r-24,-11","w":205},"0":{"d":"111,5v129,-7,131,-274,0,-281v-132,7,-128,274,0,281xm44,-134v0,-53,15,-110,67,-114v92,11,89,213,0,225v-51,-6,-67,-58,-67,-111"},"1":{"d":"102,0r30,0r0,-271r-59,0r-16,28r45,0r0,243"},"2":{"d":"106,-248v52,-2,66,62,36,98r-127,150r175,0r0,-28r-114,0r94,-111v54,-63,-11,-167,-98,-131v-29,12,-49,38,-51,78r30,0v3,-32,20,-55,55,-56"},"3":{"d":"151,-201v0,33,-22,43,-53,44r0,28v33,0,58,18,57,51v-1,33,-21,55,-53,55v-29,0,-50,-18,-52,-48r-29,0v2,48,33,76,80,76v50,0,84,-30,84,-81v0,-31,-14,-57,-38,-67v20,-9,32,-32,34,-59v5,-70,-86,-95,-129,-54v-13,13,-21,30,-23,52r30,0v3,-26,16,-44,45,-44v27,0,47,20,47,47"},"4":{"d":"171,-72r0,-215r-169,243r139,0r0,44r30,0r0,-44r34,0r0,-28r-34,0xm55,-72r86,-123r0,123r-86,0"},"5":{"d":"91,5v103,0,134,-147,46,-184v-16,-7,-34,-10,-53,-6r18,-58r86,0r0,-28r-108,0r-39,130v41,-34,122,-16,119,48v-2,43,-26,70,-68,70v-29,0,-49,-18,-60,-38r-24,17v16,27,42,49,83,49"},"6":{"d":"203,-89v0,-61,-52,-98,-112,-86r62,-84r-22,-17r-90,123v-12,17,-25,37,-25,65v2,57,38,93,93,93v56,0,94,-36,94,-94xm173,-87v0,38,-26,64,-64,64v-38,0,-63,-26,-63,-64v0,-38,25,-63,63,-63v38,0,64,25,64,63"},"7":{"d":"13,-9r23,14r183,-276r-201,0r0,28r149,0"},"8":{"d":"58,-76v0,-31,22,-52,53,-52v31,0,52,21,52,52v0,32,-22,53,-52,53v-30,0,-53,-21,-53,-53xm187,-201v0,-46,-30,-72,-76,-75v-76,-6,-101,104,-43,135v-24,10,-41,34,-40,65v2,50,33,77,83,81v84,6,111,-117,43,-146v19,-10,33,-34,33,-60xm64,-201v0,-28,20,-47,47,-47v27,0,47,19,47,47v0,27,-20,47,-47,47v-27,0,-47,-20,-47,-47"},"9":{"d":"16,-184v0,62,52,99,112,87r-62,86r22,16v35,-52,82,-96,108,-154v28,-64,-20,-127,-86,-127v-56,0,-94,37,-94,92xm46,-185v0,-38,26,-63,64,-63v37,0,63,26,63,63v0,38,-25,63,-63,63v-38,0,-64,-25,-64,-63"},":":{"d":"76,-16v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v12,0,21,-9,21,-21xm76,-154v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,21,-9,21,-20","w":110},";":{"d":"55,-40r-33,94r19,8r41,-92xm85,-154v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,21,-9,21,-20","w":110},"\u037e":{"d":"55,-40r-33,94r19,8r41,-92xm85,-154v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,21,-9,21,-20","w":110},"<":{"d":"24,-105r0,25r174,75r0,-31r-132,-56r132,-57r0,-30"},"=":{"d":"24,-106r174,0r0,-28r-174,0r0,28xm24,-50r174,0r0,-28r-174,0r0,28"},">":{"d":"156,-92r-132,56r0,31r174,-75r0,-25r-174,-74r0,30"},"?":{"d":"59,-162v-49,23,-31,111,28,106v37,-3,58,-24,59,-62r-29,0v-1,19,-8,34,-29,34v-24,0,-40,-32,-22,-48v35,-19,90,-22,87,-79v-2,-39,-25,-65,-64,-65v-46,0,-76,31,-65,81r30,0v-10,-27,6,-53,33,-53v35,0,50,48,23,66v-14,10,-35,13,-51,20xm107,-16v0,-11,-9,-20,-20,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v11,0,20,-10,20,-21","w":175},"@":{"d":"177,-115v-10,45,-83,44,-83,-10v0,-50,70,-83,86,-29v4,13,0,27,-3,39xm69,-122v-4,61,76,86,109,44v2,12,8,22,20,22v51,0,80,-49,77,-107v-4,-69,-52,-113,-125,-113v-85,0,-133,57,-137,140v-6,122,134,173,236,117r-25,-19v-15,11,-38,17,-68,17v-71,0,-117,-44,-117,-115v0,-69,41,-114,110,-114v63,0,104,34,100,100v-2,31,-15,61,-41,69v-14,0,-7,-21,-5,-31r18,-92r-26,0r-5,22v-12,-15,-25,-25,-48,-25v-48,0,-70,37,-73,85","w":288},"A":{"d":"216,0r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm80,-105r47,-109r45,109r-92,0","w":251,"k":{"y":14,"w":14,"v":14,"Y":36,"W":36,"V":36,"T":29}},"B":{"d":"157,-78v0,50,-48,52,-99,50r0,-98v49,0,99,-1,99,48xm163,-198v1,-71,-63,-76,-136,-73r0,271v81,3,161,2,161,-76v0,-37,-20,-61,-52,-69v17,-11,26,-28,27,-53xm132,-198v0,43,-31,48,-74,46r0,-91v42,-1,74,2,74,45","w":204},"C":{"d":"152,-248v36,0,63,16,82,36r0,-37v-91,-66,-222,0,-222,114v0,114,135,177,222,113r0,-37v-19,19,-47,36,-82,36v-66,0,-110,-47,-110,-113v0,-65,44,-112,110,-112","w":258},"D":{"d":"229,-135v0,-108,-81,-146,-202,-136r0,271v120,9,202,-28,202,-135xm199,-136v0,76,-54,115,-141,108r0,-215v86,-6,141,30,141,107","w":244},"E":{"d":"168,0r0,-28r-110,0r0,-107r107,0r0,-28r-107,0r0,-80r110,0r0,-28r-141,0r0,271r141,0","w":192},"F":{"d":"151,-271r-124,0r0,271r31,0r0,-135r90,0r0,-28r-90,0r0,-80r93,0r0,-28","w":172,"k":{"A":29,".":47,",":47}},"G":{"d":"12,-135v0,100,96,168,194,128v47,-19,76,-60,74,-129r-113,0r0,28r80,0v-3,54,-44,85,-97,85v-63,0,-108,-46,-108,-112v0,-67,44,-111,111,-113v46,-2,72,22,93,51r22,-20v-25,-34,-60,-59,-115,-59v-85,0,-141,56,-141,141","w":295},"H":{"d":"59,-271r-30,0r0,271r30,0r0,-133r139,0r0,133r30,0r0,-271r-30,0r0,110r-139,0r0,-110","w":257},"I":{"d":"28,-271r0,271r30,0r0,-271r-30,0","w":86},"J":{"d":"-24,8v43,41,109,13,109,-65r0,-214r-30,0r-1,232v5,40,-42,49,-61,24","w":113},"K":{"d":"58,-271r-31,0r0,271r31,0r0,-117r7,-8r111,125r42,0r-132,-145r128,-126r-41,0r-115,116r0,-116","w":219},"L":{"d":"27,-271r0,271r105,0r0,-28r-74,0r0,-243r-31,0","w":135,"k":{"y":14,"Y":29,"W":29,"V":29,"T":29}},"M":{"d":"39,0r35,-184r87,195r88,-195r35,184r31,0r-55,-287r-99,228r-98,-228r-55,287r31,0","w":322},"N":{"d":"59,0r0,-209r212,221r0,-283r-30,0r0,210r-212,-222r0,283r30,0","w":300},"O":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113","w":310},"P":{"d":"170,-195v0,-70,-64,-82,-143,-76r0,271r31,0r0,-119v66,5,112,-18,112,-76xm140,-196v0,44,-36,51,-82,49r0,-96v44,-1,82,2,82,47","w":181,"k":{"A":29,".":50,",":50}},"Q":{"d":"155,-248v97,-4,145,119,82,188r-47,-49r-40,0r66,65v-69,50,-177,-2,-172,-92v4,-66,44,-109,111,-112xm155,5v31,1,63,-13,82,-27r23,25r38,0r-41,-42v23,-25,40,-52,40,-96v0,-85,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,136,141,140","w":310},"R":{"d":"136,-194v0,42,-34,49,-78,48r0,-97v45,-2,79,5,78,49xm166,-197v0,-72,-66,-77,-139,-74r0,271r31,0r0,-119r7,0r82,119r37,0r-86,-122v41,-4,68,-31,68,-75","w":195,"k":{"y":7,"Y":7,"W":7,"V":7,"T":7}},"S":{"d":"104,-248v26,0,35,12,46,29r25,-15v-13,-24,-37,-40,-71,-42v-74,-5,-101,95,-39,127v35,18,89,22,89,73v0,32,-23,53,-56,53v-32,0,-49,-23,-54,-51r-30,8v10,41,36,68,85,71v81,6,114,-111,45,-148v-31,-17,-85,-20,-85,-63v0,-27,19,-42,45,-42","w":201},"T":{"d":"166,-243r0,-28r-162,0r0,28r65,0r0,243r30,0r0,-243r67,0","w":169,"k":{"y":22,"w":22,"u":22,"s":27,"r":14,"o":36,"i":11,"e":36,"c":36,"a":36,"A":29,";":36,":":36,".":36,"-":22,",":36}},"U":{"d":"123,-23v-46,0,-66,-32,-66,-87r0,-161r-30,0r0,169v-3,69,35,107,96,107v61,0,97,-38,97,-107r0,-169r-30,0r0,177v2,46,-27,71,-67,71","w":246},"V":{"d":"2,-271r110,287r110,-287r-32,0r-78,207r-77,-207r-33,0","w":224,"k":{"y":11,"u":14,"r":14,"o":29,"i":7,"e":29,"a":29,"A":36,";":14,":":14,".":36,"-":22,",":36}},"W":{"d":"5,-271r104,285r88,-218r87,218r104,-285r-32,0r-72,203r-87,-217r-88,217r-72,-203r-32,0","w":392,"k":{"u":14,"r":14,"o":36,"i":7,"e":36,"a":29,"A":36,";":25,":":25,".":36,"-":7,",":36}},"X":{"d":"5,0r34,0r63,-112r62,112r34,0r-80,-140r74,-131r-35,0r-55,102r-56,-102r-34,0r73,131","w":203},"Y":{"d":"92,0r30,0r0,-117r89,-154r-35,0r-69,121r-69,-121r-35,0r89,154r0,117","w":213,"k":{"v":22,"u":29,"q":36,"p":29,"o":36,"i":14,"e":36,"a":36,"A":29,";":29,":":29,".":43,"-":36,",":43}},"Z":{"d":"203,-271r-179,0r0,28r129,0r-148,243r194,0r0,-28r-144,0","w":210},"[":{"d":"106,-257r0,-27r-69,0r0,370r69,0r0,-26r-39,0r0,-317r39,0","w":113},"\\":{"d":"175,11r24,-11r-169,-297r-24,11","w":205},"]":{"d":"8,60r0,26r68,0r0,-370r-68,0r0,27r38,0r0,317r-38,0","w":113},"^":{"d":"55,-116r56,-118r55,118r32,0r-74,-155r-26,0r-74,155r31,0"},"_":{"d":"0,41r0,27r180,0r0,-27r-180,0","w":180},"`":{"d":"83,-199r18,-10r-43,-59r-30,14","w":128},"a":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90","w":207},"b":{"d":"53,-86v0,-35,20,-61,55,-61v36,0,57,25,57,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm113,-174v-26,0,-45,13,-58,29r0,-152r-29,0r0,297r29,0r0,-23v13,16,33,28,59,28v51,0,81,-38,81,-90v0,-52,-29,-89,-82,-89","w":207},"c":{"d":"40,-85v0,-65,85,-79,113,-34r0,-38v-56,-41,-143,0,-143,72v0,76,88,113,144,72v-1,-12,2,-28,-1,-38v-27,47,-113,32,-113,-34","w":171},"d":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-6,79,95,116,140,61r0,23r29,0r0,-297r-29,0r-1,152v-12,-16,-32,-29,-58,-29v-53,0,-77,38,-81,90","w":207},"e":{"d":"149,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-55,0,-78,39,-82,92v-6,93,128,116,161,39xm43,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0","w":186},"f":{"d":"102,-298v-42,-15,-72,12,-72,61r0,68r-16,0r0,26r16,0r0,143r29,0r0,-143r43,0r0,-26r-43,0v3,-43,-17,-123,43,-100r0,-29","w":98},"g":{"d":"41,-86v0,-35,20,-61,55,-61v36,0,57,25,57,61v0,37,-19,64,-57,64v-37,0,-55,-27,-55,-64xm97,94v57,0,83,-38,83,-102r0,-161r-29,0v-1,7,2,18,-1,24v-12,-16,-31,-29,-57,-29v-52,0,-78,38,-82,90v-5,80,95,116,140,61v2,51,-5,91,-54,91v-31,0,-54,-19,-54,-51r-29,0v3,48,32,77,83,77","w":208},"h":{"d":"105,-174v-24,0,-36,12,-49,25r0,-148r-29,0r0,297r29,0v5,-59,-20,-147,42,-147v60,0,28,93,36,147r29,0v-4,-74,21,-176,-58,-174","w":190},"i":{"d":"62,-169r-29,0r0,169r29,0r0,-169xm68,-233v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v12,0,21,-9,21,-21","w":94},"j":{"d":"62,-169r-29,0r0,264r29,0r0,-264xm68,-233v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v12,0,21,-9,21,-21","w":94},"k":{"d":"26,-297r0,297r29,0v3,-25,-7,-63,7,-77r68,77r38,0r-86,-97r73,-72r-39,0r-61,62r0,-190r-29,0","w":169},"l":{"d":"27,-297r0,297r28,0r0,-297r-28,0","w":81},"m":{"d":"144,-146v-13,-33,-71,-36,-88,-5r0,-18r-29,0r0,169r29,0v5,-57,-20,-147,38,-147v26,0,30,26,30,51r0,96r29,0v6,-55,-20,-147,36,-147v55,0,23,95,31,147r29,0v-5,-71,22,-174,-54,-174v-23,0,-42,12,-51,28","w":276},"n":{"d":"105,-174v-24,0,-36,12,-49,25r0,-20r-29,0r0,169r29,0v5,-59,-20,-147,42,-147v60,0,28,93,36,147r29,0v-4,-74,21,-176,-58,-174","w":190},"o":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63","w":202},"p":{"d":"53,-86v0,-35,20,-61,55,-61v36,0,57,25,57,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm195,-84v6,-80,-97,-118,-140,-61r0,-24r-29,0r0,264r29,0r0,-119v13,16,32,29,58,29v52,0,78,-37,82,-89","w":207},"q":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm94,5v27,0,45,-14,59,-29r0,119r29,0r0,-264r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-52,0,-81,38,-81,90v0,51,28,87,81,89","w":207},"r":{"d":"119,-166v-22,-15,-54,-5,-64,15r0,-18r-29,0r0,169r29,0v6,-54,-20,-140,33,-147v9,0,11,3,17,7","w":120,"k":{"y":-14,"x":-14,"w":-14,"v":-14,"t":-7,"n":-3,"m":-3,"f":-7,".":22,"-":7,",":22}},"s":{"d":"52,-129v1,-25,40,-21,44,-1r24,-13v-13,-44,-96,-39,-96,17v0,52,71,36,77,78v2,15,-12,27,-28,26v-21,0,-26,-13,-34,-27r-26,11v9,23,29,41,60,43v53,3,77,-71,33,-97v-19,-11,-49,-12,-54,-37","w":143},"t":{"d":"88,-143r0,-26r-30,0r0,-61r-29,0r0,61r-18,0r0,26r18,0r0,143r29,0r0,-143r30,0","w":86},"u":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0v2,79,-17,174,67,174v84,0,66,-95,67,-174r-29,0v-7,56,23,147,-38,147","w":184},"v":{"d":"0,-169r84,180r82,-180r-32,0r-50,114r-51,-114r-33,0","w":166,"k":{".":29,",":29}},"w":{"d":"1,-169r83,181r52,-126r53,126r84,-181r-33,0r-51,114r-53,-127r-52,127r-50,-114r-33,0","w":273,"k":{".":22,",":22}},"x":{"d":"0,0r36,0r54,-69r54,69r35,0r-70,-90r62,-79r-36,0r-45,57r-44,-57r-35,0r61,79","w":179},"y":{"d":"22,95r33,0r125,-264r-33,0r-54,121r-60,-121r-34,0r78,153","w":179,"k":{".":29,",":29}},"z":{"d":"184,-169r-158,0r0,26r100,0r-122,143r175,0r0,-27r-117,0","w":186},"{":{"d":"102,-284v-113,-8,-14,161,-84,174r0,23v70,12,-30,182,84,173r0,-26v-65,5,7,-122,-54,-159v32,-19,29,-79,27,-131v-1,-22,4,-30,27,-27r0,-27","w":120},"|":{"d":"89,-297r0,297r28,0r0,-297r-28,0","w":205},"}":{"d":"18,86v115,10,14,-160,84,-173r0,-23v-70,-14,30,-183,-84,-174r0,27v47,-9,23,57,27,95v3,29,11,52,28,63v-32,18,-30,78,-28,131v1,22,-4,31,-27,28r0,26","w":120},"~":{"d":"148,-89v-32,-10,-70,-60,-104,-20v-9,11,-14,23,-20,37r25,10v6,-20,17,-45,41,-29v22,15,63,48,88,14v8,-11,15,-23,20,-37r-24,-10v-5,14,-13,33,-26,35"},"\u00c4":{"d":"184,-77r32,77r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm172,-105r-92,0r47,-109xm110,-337v0,-11,-10,-19,-20,-19v-10,0,-19,8,-19,19v0,11,8,20,19,20v11,0,20,-9,20,-20xm181,-337v0,-11,-10,-19,-20,-19v-10,0,-19,8,-19,19v0,11,8,20,19,20v11,0,20,-9,20,-20","w":251},"\u00c5":{"d":"184,-77r32,77r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm172,-105r-92,0r47,-109xm161,-345v0,-23,-14,-35,-35,-35v-21,0,-34,14,-35,35v-1,19,16,35,35,35v19,0,36,-16,35,-35xm109,-345v0,-10,7,-17,17,-17v10,0,17,7,17,17v0,10,-7,17,-17,17v-10,0,-17,-7,-17,-17","w":251},"\u00c7":{"d":"152,-248v36,0,63,16,82,36r0,-37v-91,-66,-222,0,-222,114v0,114,135,177,222,113r0,-37v-19,19,-47,36,-82,36v-66,0,-110,-47,-110,-113v0,-65,44,-112,110,-112xm160,19r-27,-11r-34,54r20,10","w":258},"\u00c9":{"d":"168,0r0,-28r-110,0r0,-107r107,0r0,-28r-107,0r0,-80r110,0r0,-28r-141,0r0,271r141,0xm60,-311r18,10r55,-55r-30,-14","w":192},"\u00d1":{"d":"29,0r30,0r0,-209r212,221r0,-283r-30,0r0,210r-212,-222r0,283xm196,-357v-16,42,-64,-20,-94,9v-6,6,-11,13,-15,20r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":300},"\u00d6":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113xm139,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20xm210,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20","w":310},"\u00dc":{"d":"123,-23v-46,0,-66,-32,-66,-87r0,-161r-30,0r0,169v-3,69,35,107,96,107v61,0,97,-38,97,-107r0,-169r-30,0r0,177v2,46,-27,71,-67,71xm107,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20xm178,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20","w":246},"\u00e1":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm111,-268r-43,59r18,10r55,-55","w":207},"\u00e0":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm68,-254r55,55r18,-10r-43,-59","w":207},"\u00e2":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm48,-217r20,16r36,-31r36,31r21,-16r-57,-48","w":207},"\u00e4":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm88,-234v0,-11,-9,-20,-20,-20v-11,0,-19,10,-19,20v0,10,8,19,19,19v11,0,20,-8,20,-19xm159,-234v0,-11,-9,-20,-20,-20v-11,0,-19,9,-19,20v0,11,8,19,19,19v11,0,20,-8,20,-19","w":207},"\u00e3":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm137,-255v-15,42,-67,-20,-94,10v-6,6,-11,12,-15,19r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":207},"\u00e5":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-5,78,92,119,140,61r0,23r29,0r0,-169r-29,0v-1,7,2,18,-1,24v-12,-16,-32,-29,-58,-29v-53,0,-78,38,-81,90xm139,-243v0,-22,-14,-35,-35,-35v-21,0,-33,14,-35,35v-1,19,16,35,35,35v19,0,36,-16,35,-35xm87,-243v0,-10,7,-17,17,-17v10,0,17,7,17,17v0,10,-7,17,-17,17v-10,0,-17,-7,-17,-17","w":207},"\u00e7":{"d":"40,-85v0,-65,85,-79,113,-34r0,-38v-56,-41,-143,0,-143,72v0,76,88,113,144,72v-1,-12,2,-28,-1,-38v-27,47,-113,32,-113,-34xm117,19r-27,-11r-35,54r21,10","w":171},"\u00e9":{"d":"149,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-55,0,-78,39,-82,92v-6,93,128,116,161,39xm43,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0xm100,-268r-43,59r18,10r55,-55","w":186},"\u00e8":{"d":"149,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-55,0,-78,39,-82,92v-6,93,128,116,161,39xm43,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0xm57,-254r55,55r18,-10r-43,-59","w":186},"\u00ea":{"d":"149,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-55,0,-78,39,-82,92v-6,93,128,116,161,39xm43,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0xm37,-217r21,16r35,-31r36,31r21,-16r-57,-48","w":186},"\u00eb":{"d":"149,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-55,0,-78,39,-82,92v-6,93,128,116,161,39xm43,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0xm77,-234v0,-11,-8,-20,-19,-20v-11,0,-19,9,-19,20v0,11,8,19,19,19v11,0,19,-8,19,-19xm148,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19","w":186},"\u00ed":{"d":"33,-169r0,169r29,0r0,-169r-29,0xm11,-209r18,10r55,-55r-30,-14","w":94},"\u00ec":{"d":"33,-169r0,169r29,0r0,-169r-29,0xm66,-199r18,-10r-43,-59r-30,14","w":94},"\u00ee":{"d":"33,-169r0,169r29,0r0,-169r-29,0xm11,-201r36,-31r36,31r21,-16r-57,-48r-56,48","w":94},"\u00ef":{"d":"62,-169r-29,0r0,169r29,0r0,-169xm31,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19xm102,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19","w":94},"\u00f1":{"d":"105,-174v-24,0,-36,12,-49,25r0,-20r-29,0r0,169r29,0v5,-59,-20,-147,42,-147v60,0,28,93,36,147r29,0v-4,-74,21,-176,-58,-174xm141,-255v-15,42,-67,-20,-94,10v-6,6,-11,12,-15,19r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":190},"\u00f3":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63xm108,-268r-43,59r18,10r55,-55","w":202},"\u00f2":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63xm65,-254r55,55r18,-10r-43,-59","w":202},"\u00f4":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63xm45,-217r20,16r36,-31r36,31r21,-16r-57,-48","w":202},"\u00f6":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63xm85,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19xm156,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19","w":202},"\u00f5":{"d":"12,-84v0,53,36,89,89,89v53,0,89,-36,89,-89v0,-53,-35,-90,-89,-90v-54,0,-89,37,-89,90xm41,-85v0,-38,23,-62,60,-62v38,0,60,24,60,62v0,39,-22,63,-60,63v-37,0,-60,-25,-60,-63xm147,-255v-15,42,-67,-20,-94,10v-6,6,-11,12,-15,19r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":202},"\u00fa":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0v2,79,-17,174,67,174v84,0,66,-95,67,-174r-29,0v-7,56,23,147,-38,147xm99,-268r-43,59r18,10r55,-55","w":184},"\u00f9":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0v2,79,-17,174,67,174v84,0,66,-95,67,-174r-29,0v-7,56,23,147,-38,147xm51,-254r56,55r18,-10r-43,-59","w":184},"\u00fb":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0v2,79,-17,174,67,174v84,0,66,-95,67,-174r-29,0v-7,56,23,147,-38,147xm36,-217r20,16r36,-31r36,31r21,-16r-57,-48","w":184},"\u00fc":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0v2,79,-17,174,67,174v84,0,66,-95,67,-174r-29,0v-7,56,23,147,-38,147xm76,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19xm147,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-8,19,-19","w":184},"\u2020":{"d":"92,-205r-60,0r0,28r60,0r0,236r29,0r0,-236r60,0r0,-28r-60,0r0,-66r-29,0r0,66","w":213},"\u00b0":{"d":"72,-168v32,0,54,-22,54,-54v0,-32,-22,-54,-54,-54v-32,0,-54,22,-54,54v0,32,22,54,54,54xm72,-259v22,0,37,15,37,37v0,22,-15,36,-37,37v-20,1,-38,-17,-37,-37v1,-22,14,-37,37,-37","w":144},"\u00a2":{"d":"134,-201v19,2,31,17,43,28r0,-38v-13,-9,-27,-15,-43,-16r0,-38r-24,0r0,39v-46,7,-76,39,-76,89v0,49,32,79,76,87r0,40r24,0r0,-40v17,-1,31,-10,43,-17r0,-38v-10,12,-24,26,-43,28r0,-124xm110,-77v-50,-5,-62,-91,-19,-115v6,-4,12,-7,19,-8r0,123"},"\u00a3":{"d":"116,-276v-67,-2,-101,72,-66,127r15,29r-36,0r0,24r46,0v6,17,-1,40,-9,51v-26,-1,-42,19,-53,35r24,15v34,-61,136,51,171,-42r-24,-15v-9,11,-15,27,-33,27v-19,0,-39,-11,-54,-16v7,-14,16,-36,9,-55r43,0r0,-24r-51,0v-11,-25,-32,-45,-32,-78v0,-30,20,-49,50,-49v36,0,48,26,49,60r29,-8v-1,-50,-29,-79,-78,-81"},"\u00a7":{"d":"67,-105v0,-25,16,-40,40,-40v24,0,38,17,40,40v-3,23,-16,40,-40,40v-25,0,-40,-16,-40,-40xm111,-276v-68,-5,-91,91,-36,113v-23,9,-38,28,-38,58v0,75,96,48,104,109v3,23,-14,35,-37,36v-26,1,-38,-16,-37,-41r-29,0v1,44,21,66,65,69v68,5,91,-88,36,-114v21,-12,35,-28,37,-58v5,-77,-96,-48,-104,-108v-3,-23,16,-36,39,-36v25,1,34,16,36,42r28,0v0,-42,-24,-67,-64,-70","w":213},"\u2022":{"d":"39,-136v0,41,27,68,68,68v41,0,68,-28,68,-68v0,-40,-28,-68,-68,-68v-40,0,-68,27,-68,68","w":213},"\u00b6":{"d":"99,-271v-87,-4,-104,138,-32,164v9,3,18,5,28,5r0,157r24,0r0,-303r29,0r0,303r23,0r0,-303r21,0r0,-23r-93,0","w":213},"\u00df":{"d":"97,-302v-67,-2,-77,60,-71,133r-16,0r0,26r16,0r0,143r29,0r0,-231v-1,-29,16,-43,42,-44v23,0,41,16,41,40v-1,28,-17,44,-47,43r0,27v42,3,74,25,74,69v0,45,-31,69,-74,74r0,27v61,-3,104,-40,104,-100v0,-44,-24,-74,-58,-86v18,-8,30,-29,30,-53v0,-43,-28,-67,-70,-68","w":207},"\u00ae":{"d":"3,-136v0,85,56,141,141,141v85,0,141,-56,141,-141v0,-85,-56,-140,-141,-140v-85,0,-141,55,-141,140xm264,-136v0,72,-48,119,-120,119v-72,0,-120,-47,-120,-119v0,-71,49,-119,120,-119v71,0,120,48,120,119xm213,-173v0,-54,-70,-38,-122,-40r0,153r22,0r0,-71r26,0r46,71r26,0r-46,-71v30,0,47,-14,48,-42xm192,-173v-4,29,-47,19,-79,21r0,-40v29,3,74,-8,79,19","w":288},"\u0160":{"d":"104,-248v26,0,35,12,46,29r25,-15v-13,-24,-37,-40,-71,-42v-74,-5,-101,95,-39,127v35,18,89,22,89,73v0,32,-23,53,-56,53v-32,0,-49,-23,-54,-51r-30,8v10,41,36,68,85,71v81,6,114,-111,45,-148v-31,-17,-85,-20,-85,-63v0,-27,19,-42,45,-42xm160,-351r-20,-17r-36,31r-36,-31r-21,17r57,48","w":201},"\u2122":{"d":"290,-271r-45,109r-44,-109r-36,0r0,151r21,0r1,-130r51,130r14,0r52,-130r0,130r22,0r0,-151r-36,0xm13,-271r0,21r51,0r0,130r21,0r0,-130r51,0r0,-21r-123,0","w":338},"\u00b4":{"d":"28,-209r18,10r55,-55r-30,-14","w":128},"\u00a8":{"d":"68,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-9,19,-19xm139,-234v0,-11,-8,-20,-19,-20v-11,0,-20,9,-20,20v0,11,9,19,20,19v11,0,19,-9,19,-19","w":168},"\u017d":{"d":"203,-271r-179,0r0,28r129,0r-148,243r194,0r0,-28r-144,0xm149,-368r-36,31r-36,-31r-21,17r57,48r56,-48","w":210},"\u00d8":{"d":"297,-136v0,-38,-15,-66,-33,-89r32,-33r-20,-21r-33,33v-91,-70,-233,-6,-229,111v1,36,13,66,31,87r-33,33r20,20r33,-33v24,18,53,33,91,33v84,0,141,-58,141,-141xm67,-69v-61,-77,13,-212,124,-173v11,4,21,9,31,16xm266,-136v4,93,-108,145,-179,88r156,-157v14,18,22,41,23,69","w":310},"\u00b1":{"d":"97,-124r-73,0r0,28r73,0r0,55r28,0r0,-55r73,0r0,-28r-73,0r0,-55r-28,0r0,55xm198,0r0,-28r-174,0r0,28r174,0"},"\u2264":{"d":"216,0r141,0r-12,-28r-110,0r-44,-106r107,0r-13,-28r-106,0r-34,-81r110,0r-13,-28r-119,0r-121,271r34,0r32,-76r116,0xm81,-104r46,-107r44,107r-90,0","w":360},"\u2265":{"d":"161,-103v3,-46,76,-60,95,-17v3,5,5,11,6,17r-101,0xm39,-50v0,-40,86,-41,88,-2v1,41,-86,41,-88,2xm265,-57v-11,31,-65,49,-91,18v-8,-9,-16,-22,-16,-39r133,0v0,-57,-25,-96,-80,-96v-29,0,-55,15,-66,35v-13,-38,-76,-41,-116,-25r0,28v40,-20,110,-15,100,45v-38,-30,-120,-15,-119,41v1,66,115,71,137,21v18,32,74,45,110,21v13,-8,24,-20,32,-35","w":303},"\u2206":{"d":"126,0r0,-92r85,0r0,-23r-85,0r20,-36r65,0r0,-23r-52,0r56,-97r-35,0r-69,120r-69,-120r-35,0r56,97r-53,0r0,23r66,0r20,36r-86,0r0,23r86,0r0,92r30,0"},"\u00b5":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0r0,264r29,0r0,-107v40,40,105,5,105,-60r0,-97r-29,0v-7,56,23,147,-38,147","w":184},"\u03bc":{"d":"92,-22v-62,0,-31,-92,-38,-147r-29,0r0,264r29,0r0,-107v40,40,105,5,105,-60r0,-97r-29,0v-7,56,23,147,-38,147","w":184},"\u2202":{"d":"3,-136v0,85,56,141,141,141v85,0,141,-56,141,-141v0,-85,-56,-140,-141,-140v-85,0,-141,55,-141,140xm264,-136v0,72,-48,119,-120,119v-72,0,-120,-47,-120,-119v0,-71,49,-119,120,-119v71,0,120,48,120,119xm93,-138v-9,-60,88,-80,101,-27r22,0v-8,-31,-29,-53,-67,-53v-50,0,-74,32,-78,81v-7,86,130,113,145,26r-22,0v-19,58,-106,34,-101,-27","w":288},"\u2211":{"d":"0,-73r180,0r0,-27r-180,0r0,27","w":180},"\u220f":{"d":"84,-238v0,-11,-9,-20,-20,-20v-11,0,-19,10,-19,20v0,10,8,19,19,19v11,0,20,-8,20,-19","w":128},"\u0161":{"d":"52,-129v1,-25,40,-21,44,-1r24,-13v-13,-44,-96,-39,-96,17v0,52,71,36,77,78v2,15,-12,27,-28,26v-21,0,-26,-13,-34,-27r-26,11v9,23,29,41,60,43v53,3,77,-71,33,-97v-19,-11,-49,-12,-54,-37xm126,-239r-19,-14r-32,27r-32,-27r-19,14r51,43","w":143},"\u222b":{"d":"53,-272r-21,58r14,4r34,-57xm109,-272r-21,58r15,4r34,-57","w":168},"\u00aa":{"d":"26,-224v0,-22,14,-35,37,-36v23,0,36,16,36,37v0,23,-13,37,-36,38v-24,0,-37,-17,-37,-39xm8,-222v-4,50,62,69,91,36r0,14r18,0r0,-101r-18,0v-1,4,2,12,-1,14v-27,-34,-96,-13,-90,37xm117,-130r0,-18r-109,0r0,18r109,0","w":124},"\u00ba":{"d":"3,-222v0,34,24,53,58,53v34,0,58,-20,58,-53v0,-32,-23,-54,-58,-54v-34,0,-58,21,-58,54xm22,-222v0,-24,16,-38,39,-38v24,0,39,15,39,38v0,23,-15,37,-39,37v-23,0,-38,-13,-39,-37xm116,-130r0,-18r-110,0r0,18r110,0","w":121},"\u017e":{"d":"184,-169r-158,0r0,26r100,0r-122,143r175,0r0,-27r-117,0xm133,-253r-32,27r-32,-27r-19,14r51,43r51,-43","w":186},"\u00f8":{"d":"101,5v74,4,113,-87,72,-143r25,-25r-19,-18r-25,25v-55,-42,-147,-2,-142,72v1,20,8,40,17,53r-25,25r18,18r26,-25v14,11,31,17,53,18xm50,-51v-23,-39,1,-100,51,-96v12,0,23,3,33,9xm152,-119v32,53,-23,124,-85,88","w":202},"\u00bf":{"d":"117,-9v49,-23,30,-111,-29,-106v-37,2,-58,23,-58,62r29,0v0,-21,10,-33,29,-34v38,-2,37,53,2,59v-37,6,-69,25,-68,69v1,39,26,64,65,64v47,0,73,-30,65,-80r-30,0v8,28,-7,53,-33,53v-34,0,-50,-47,-23,-66v14,-10,35,-13,51,-21xm109,-154v0,-11,-9,-20,-20,-20v-11,0,-21,9,-21,20v0,11,10,20,21,20v11,0,20,-9,20,-20","w":175},"\u00a1":{"d":"81,-154v0,-11,-9,-20,-20,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,20,-9,20,-20xm76,-114r-30,0r0,216r30,0r0,-216","w":121},"\u00ac":{"d":"198,-37r0,-97r-174,0r0,28r146,0r0,69r28,0"},"\u221a":{"d":"156,-148r-20,-15r-60,77r60,74r20,-15r-49,-59xm94,-148r-19,-15r-60,77r60,74r19,-15r-48,-59","w":180},"\u0192":{"d":"194,-297v-75,-26,-87,52,-95,116r-30,0r-4,25r30,0v-12,52,-14,113,-34,158v-7,16,-25,22,-53,20r-6,27v116,20,100,-117,123,-205r43,0r4,-25r-43,0v10,-37,2,-109,59,-89"},"\u2248":{"d":"44,-12r60,-74r-60,-77r-20,15r49,62r-49,59xm105,-12r60,-74r-60,-77r-19,15r48,62r-48,59","w":180},"\u0106":{"d":"152,-248v36,0,63,16,82,36r0,-37v-91,-66,-222,0,-222,114v0,114,135,177,222,113r0,-37v-19,19,-47,36,-82,36v-66,0,-110,-47,-110,-113v0,-65,44,-112,110,-112xm167,-373r-43,59r18,11r55,-56","w":258},"\u00ab":{"d":"91,-92r-67,67r20,20r67,-67r67,67r20,-20r-67,-67r67,-67r-20,-20r-67,67r-67,-67r-20,20"},"\u010c":{"d":"152,-248v36,0,63,16,82,36r0,-37v-91,-66,-222,0,-222,114v0,114,135,177,222,113r0,-37v-19,19,-47,36,-82,36v-66,0,-110,-47,-110,-113v0,-65,44,-112,110,-112xm211,-351r-20,-17r-36,31r-36,-31r-21,17r57,48","w":258},"\u2026":{"d":"81,-16v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v12,0,21,-9,21,-21xm200,-16v0,-11,-9,-20,-20,-20v-11,0,-20,9,-20,20v0,11,9,21,20,21v11,0,20,-10,20,-21xm320,-16v0,-11,-9,-20,-20,-20v-11,0,-21,9,-21,20v0,12,9,21,21,21v11,0,20,-10,20,-21","w":360},"\u00a0":{"w":180},"\u00c0":{"d":"216,0r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm80,-105r47,-109r45,109r-92,0xm145,-301r18,-10r-43,-59r-30,14","w":251},"\u00c3":{"d":"184,-77r32,77r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm172,-105r-92,0r47,-109xm172,-357v-16,42,-64,-20,-94,9v-6,6,-11,13,-15,20r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":251},"\u00d5":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113xm201,-357v-16,42,-64,-20,-94,9v-6,6,-11,13,-15,20r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":310},"\u0152":{"d":"155,5v49,0,86,-25,107,-57r0,52r142,0r0,-28r-111,0r0,-107r108,0r0,-28r-108,0r0,-80r111,0r0,-28r-142,0r0,53v-21,-32,-58,-58,-107,-58v-85,0,-141,56,-141,141v0,84,57,140,141,140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113","w":428},"\u0153":{"d":"300,-57v-13,42,-90,47,-103,1v-3,-7,-4,-14,-4,-22r133,0v1,-56,-26,-96,-81,-96v-33,0,-56,18,-69,41v-12,-24,-41,-41,-75,-41v-54,0,-89,37,-89,90v0,53,36,89,89,89v35,0,61,-17,75,-41v15,37,77,54,116,28v13,-8,24,-20,32,-35xm195,-103v3,-46,77,-60,95,-17v3,5,5,11,6,17r-101,0xm42,-85v0,-38,22,-62,60,-62v37,0,60,24,60,62v0,38,-23,63,-60,63v-38,0,-60,-24,-60,-63","w":338},"\u0110":{"d":"229,-135v0,-108,-81,-146,-202,-136r0,110r-27,0r0,28r27,0r0,133v120,9,202,-28,202,-135xm199,-136v0,76,-54,115,-141,108r0,-105r48,0r0,-28r-48,0r0,-82v86,-6,141,30,141,107","w":244},"\u2014":{"d":"0,-73r360,0r0,-27r-360,0r0,27","w":360},"\u201c":{"d":"143,-269r-20,-7r-41,92r27,9xm82,-269r-19,-7r-41,92r27,9","w":164},"\u201d":{"d":"22,-182r19,7r41,-91r-26,-10xm82,-182r20,7r41,-91r-27,-10","w":164},"\u2018":{"d":"82,-269r-19,-7r-41,92r27,9","w":104},"\u2019":{"d":"22,-182r19,7r41,-91r-27,-10","w":104},"\u00f7":{"d":"24,-78r174,0r0,-28r-174,0r0,28xm131,-24v0,-11,-9,-21,-20,-21v-12,0,-21,9,-21,21v0,11,10,20,21,20v11,0,20,-9,20,-20xm131,-160v0,-11,-9,-21,-20,-21v-12,0,-21,9,-21,21v0,11,10,20,21,20v11,0,20,-9,20,-20"},"\uf8ff":{"d":"77,-16r-55,111r33,0r125,-264r-33,0r-54,121r-60,-121r-34,0xm74,-234v0,-11,-9,-20,-20,-20v-11,0,-19,9,-19,20v0,11,8,19,19,19v11,0,20,-8,20,-19xm145,-234v0,-11,-9,-20,-20,-20v-11,0,-19,9,-19,20v0,11,8,19,19,19v11,0,20,-8,20,-19","w":179},"\u00a9":{"d":"92,-117r0,117r30,0r0,-117r89,-154r-35,0r-69,121r-69,-121r-35,0xm91,-337v0,-11,-10,-19,-20,-19v-10,0,-19,8,-19,19v0,11,8,20,19,20v11,0,20,-9,20,-20xm162,-337v0,-11,-10,-19,-20,-19v-10,0,-19,8,-19,19v0,11,8,20,19,20v11,0,20,-9,20,-20","w":213},"\u2044":{"d":"-58,-4r16,9r158,-272r-16,-9","w":57},"\u20ac":{"d":"170,-177v-28,-27,-90,-27,-118,0r-15,-15r-13,13r14,14v-24,31,-24,83,0,114r-14,14r13,13r15,-15v28,27,90,27,118,0r15,15r13,-13r-14,-14v24,-31,24,-83,0,-114r14,-14r-13,-13xm42,-108v0,-42,27,-67,69,-67v42,0,69,25,69,67v0,39,-28,67,-69,67v-41,0,-69,-28,-69,-67"},"\u2039":{"d":"94,-148r-19,-15r-60,77r60,74r19,-15r-48,-59","w":118},"\u203a":{"d":"44,-12r60,-74r-60,-77r-20,15r49,62r-49,59","w":118},"\u00c6":{"d":"97,-298v-42,-15,-71,13,-71,61r0,68r-16,0r0,26r16,0r0,143r28,0r0,-143r43,0r0,-26r-43,0v5,-42,-19,-122,43,-100r0,-29xm154,-169r-29,0r0,169r29,0r0,-169xm160,-233v0,-11,-9,-20,-20,-20v-11,0,-21,9,-21,20v0,12,9,21,21,21v11,0,20,-10,20,-21","w":186},"\u00bb":{"d":"154,-297r-29,0r0,297r29,0r0,-297xm97,-298v-42,-15,-71,13,-71,61r0,68r-16,0r0,26r16,0r0,143r28,0r0,-143r43,0r0,-26r-43,0v5,-42,-19,-122,43,-100r0,-29","w":180},"\u2013":{"d":"92,-205r-60,0r0,28r60,0r0,131r-60,0r0,28r60,0r0,77r29,0r0,-77r60,0r0,-28r-60,0r0,-131r60,0r0,-28r-60,0r0,-66r-29,0r0,66","w":213},"\u00b7":{"d":"76,-92v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,21,-9,21,-20","w":110},"\u22c5":{"d":"76,-92v0,-11,-10,-20,-21,-20v-11,0,-20,9,-20,20v0,11,9,20,20,20v11,0,21,-9,21,-20","w":110},"\u201a":{"d":"22,54r19,8r41,-92r-26,-10","w":104},"\u201e":{"d":"22,54r19,8r41,-92r-26,-10xm85,54r19,8r41,-92r-26,-10","w":167},"\u2030":{"d":"133,-217v0,-35,-23,-59,-60,-59v-37,0,-61,24,-61,59v0,36,25,59,61,59v36,0,60,-24,60,-59xm35,-217v0,-22,16,-36,38,-36v21,0,37,14,37,36v0,22,-15,36,-37,36v-22,0,-38,-14,-38,-36xm216,-276r-158,271r15,10r157,-272xm276,-54v0,-38,-24,-60,-60,-60v-35,0,-60,22,-60,60v0,37,25,59,60,59v35,0,60,-22,60,-59xm179,-54v0,-23,15,-37,37,-37v22,0,37,14,37,37v0,22,-16,36,-37,36v-21,0,-37,-14,-37,-36xm424,-54v0,-36,-24,-60,-60,-60v-36,0,-61,23,-61,60v0,36,25,59,61,59v35,0,60,-23,60,-59xm326,-54v0,-23,16,-37,38,-37v22,0,37,14,37,37v0,22,-16,36,-37,36v-22,0,-38,-14,-38,-36","w":436},"\u00c2":{"d":"216,0r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm80,-105r47,-109r45,109r-92,0xm90,-303r36,-31r36,31r21,-17r-57,-48r-57,48","w":251},"\u0107":{"d":"40,-85v0,-65,85,-79,113,-34r0,-38v-56,-41,-143,0,-143,72v0,76,88,113,144,72v-1,-12,2,-28,-1,-38v-27,47,-113,32,-113,-34xm109,-253r-39,52r16,10r50,-50","w":171},"\u00c1":{"d":"216,0r33,0r-122,-284r-125,284r33,0r33,-77r116,0xm80,-105r47,-109r45,109r-92,0xm90,-311r18,10r55,-55r-31,-14","w":251},"\u010d":{"d":"40,-85v0,-65,85,-79,113,-34r0,-38v-56,-41,-143,0,-143,72v0,76,88,113,144,72v-1,-12,2,-28,-1,-38v-27,47,-113,32,-113,-34xm152,-239r-19,-14r-32,27r-32,-27r-19,14r51,43","w":171},"\u00c8":{"d":"168,0r0,-28r-110,0r0,-107r107,0r0,-28r-107,0r0,-80r110,0r0,-28r-141,0r0,271r141,0xm115,-301r18,-10r-43,-59r-30,14","w":192},"\u00cd":{"d":"28,-271r0,271r30,0r0,-271r-30,0xm7,-311r18,10r55,-55r-30,-14","w":86},"\u00ce":{"d":"28,-271r0,271r30,0r0,-271r-30,0xm7,-303r36,-31r36,31r21,-17r-57,-48r-56,48","w":86},"\u00cf":{"d":"58,-271r-30,0r0,271r30,0r0,-271xm27,-337v0,-10,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-10,19,-20xm98,-337v0,-11,-10,-19,-20,-19v-10,0,-19,9,-19,19v0,11,8,20,19,20v11,0,20,-9,20,-20","w":86},"\u00cc":{"d":"28,-271r0,271r30,0r0,-271r-30,0xm62,-301r18,-10r-43,-59r-30,14","w":86},"\u00d3":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113xm162,-370r-43,59r18,10r55,-55","w":310},"\u00d4":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113xm99,-320r20,17r36,-31r36,31r21,-17r-57,-48","w":310},"\u0111":{"d":"42,-86v0,-35,21,-61,56,-61v36,0,56,25,56,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64xm13,-84v-6,79,95,116,140,61r0,23r29,0r0,-220r14,0r0,-21r-14,0r0,-56r-29,0r0,56r-59,0r0,21r59,0v-1,24,2,53,-1,75v-12,-16,-32,-29,-58,-29v-53,0,-77,38,-81,90","w":207},"\u00d2":{"d":"297,-135v0,-84,-57,-141,-142,-141v-85,0,-141,56,-141,141v0,84,57,140,141,140v85,0,142,-57,142,-140xm44,-136v0,-66,43,-112,111,-112v67,0,111,45,111,112v0,68,-45,113,-111,113v-67,0,-111,-46,-111,-113xm119,-356r55,55r18,-10r-43,-59","w":310},"\u00da":{"d":"123,-23v-46,0,-66,-32,-66,-87r0,-161r-30,0r0,169v-3,69,35,107,96,107v61,0,97,-38,97,-107r0,-169r-30,0r0,177v2,46,-27,71,-67,71xm130,-370r-43,59r18,10r55,-55","w":246},"\u00db":{"d":"123,-23v-46,0,-66,-32,-66,-87r0,-161r-30,0r0,169v-3,69,35,107,96,107v61,0,97,-38,97,-107r0,-169r-30,0r0,177v2,46,-27,71,-67,71xm67,-320r20,17r36,-31r36,31r21,-17r-57,-48","w":246},"\u00d9":{"d":"123,-23v-46,0,-66,-32,-66,-87r0,-161r-30,0r0,169v-3,69,35,107,96,107v61,0,97,-38,97,-107r0,-169r-30,0r0,177v2,46,-27,71,-67,71xm87,-356r55,55r18,-10r-43,-59","w":246},"\u0131":{"d":"33,-169r0,169r29,0r0,-169r-29,0","w":94},"\u02c6":{"d":"49,-201r35,-31r36,31r21,-16r-57,-48r-56,48","w":169},"\u02dc":{"d":"137,-255v-15,42,-67,-20,-94,10v-6,6,-11,12,-15,19r18,14v16,-42,66,21,93,-9v6,-7,12,-12,15,-20","w":182},"\u00af":{"d":"28,-221r124,0r0,-25r-124,0r0,25","w":179},"\u03c0":{"d":"87,-233v-20,0,-28,-10,-34,-25r-25,0v2,52,90,66,112,20v3,-6,6,-13,7,-20r-25,0v-6,15,-14,25,-35,25","w":174},"\u00cb":{"d":"27,0r141,0r0,-28r-110,0r0,-107r107,0r0,-28r-107,0r0,-80r110,0r0,-28r-141,0r0,271xm80,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20xm151,-337v0,-11,-9,-19,-19,-19v-11,0,-20,8,-20,19v0,11,9,20,20,20v11,0,19,-9,19,-20","w":192},"\u02da":{"d":"98,-243v0,-22,-14,-35,-35,-35v-21,0,-33,14,-35,35v-1,19,16,35,35,35v19,0,36,-16,35,-35xm46,-243v0,-10,7,-17,17,-17v10,0,17,7,17,17v0,10,-7,17,-17,17v-10,0,-17,-7,-17,-17","w":126},"\u00b8":{"d":"63,8r-35,54r20,10r41,-53","w":117},"\u00ca":{"d":"168,0r0,-28r-110,0r0,-107r107,0r0,-28r-107,0r0,-80r110,0r0,-28r-141,0r0,271r141,0xm60,-303r36,-31r36,31r21,-17r-57,-48r-56,48","w":192},"\u00e6":{"d":"52,37v0,-20,18,-27,29,-37v-34,-3,-53,15,-53,42v0,29,37,42,62,28r4,-24v-14,10,-42,11,-42,-9","w":121},"\u02c7":{"d":"121,-265r-36,30r-36,-30r-21,16r57,48r56,-48","w":169},"\ue014":{"w":0},"\ue003":{"d":"104,-248v26,0,35,12,46,29r25,-15v-13,-24,-37,-40,-71,-42v-74,-5,-101,95,-39,127v35,18,89,22,89,73v0,32,-23,53,-56,53v-32,0,-49,-23,-54,-51r-30,8v10,41,36,68,85,71v81,6,114,-111,45,-148v-31,-17,-85,-20,-85,-63v0,-27,19,-42,45,-42xm157,-351r-20,-17r-36,31r-36,-31r-21,17r57,48","w":201},"\ue004":{"d":"52,-129v1,-25,40,-21,44,-1r24,-13v-13,-44,-96,-39,-96,17v0,52,71,36,77,78v2,15,-12,27,-28,26v-21,0,-26,-13,-34,-27r-26,11v9,23,29,41,60,43v53,3,77,-71,33,-97v-19,-11,-49,-12,-54,-37xm129,-249r-21,-16r-36,30r-36,-30r-21,16r57,48","w":143},"\ue005":{"d":"92,0r30,0r0,-117r89,-154r-35,0r-69,121r-69,-121r-35,0r89,154r0,117xm79,-311r18,10r55,-55r-30,-14","w":213},"\ue006":{"d":"22,95r33,0r125,-264r-33,0r-54,121r-60,-121r-34,0r78,153xm60,-209r18,10r55,-55r-30,-14","w":179},"\ue007":{"d":"170,-145v0,-58,-45,-82,-112,-76r0,-50r-31,0r0,271r31,0r0,-68v65,4,112,-18,112,-77xm140,-145v-1,44,-37,50,-82,49r0,-97v45,-1,83,3,82,48","w":181},"\ue008":{"d":"195,-84v6,-80,-97,-118,-140,-61r0,-152r-29,0r0,392r29,0r0,-119v13,16,32,29,58,29v52,0,78,-37,82,-89xm53,-86v0,-35,20,-61,55,-61v36,0,57,25,57,61v0,38,-19,64,-56,64v-37,0,-56,-28,-56,-64","w":207},"\ue009":{"d":"203,-271r-179,0r0,28r129,0r-148,243r194,0r0,-28r-144,0xm141,-368r-35,31r-36,-31r-21,17r57,48r56,-48","w":210},"\ue00a":{"d":"184,-169r-158,0r0,26r100,0r-122,143r175,0r0,-27r-117,0xm130,-265r-36,30r-36,-30r-21,16r57,48r56,-48","w":186},"\ue00b":{"d":"65,-255r0,144r22,0r0,-162r-41,0r-10,18r29,0xm242,-147v32,0,42,36,23,57r-82,90r114,0r0,-19r-71,0v24,-33,67,-49,71,-98v5,-56,-89,-64,-106,-18v-3,6,-4,13,-4,20r21,0v0,-20,13,-32,34,-32xm217,-276r-158,272r16,9r158,-272","w":332},"\ue00c":{"d":"65,-111r22,0r0,-162r-41,0r-10,18r29,0r0,144xm275,-45r0,-127r-110,146r88,0r0,26r22,0r0,-26r22,0r0,-19r-22,0xm202,-45r51,-68r0,68r-51,0xm75,-4r16,9r158,-272r-16,-9","w":332},"\ue00d":{"d":"70,-111r22,0r0,-162r-41,0r-10,18r29,0r0,144","w":132},"\ue00e":{"d":"282,-45r0,-127r-110,146r89,0r0,26r21,0r0,-26r22,0r0,-19r-22,0xm261,-45r-52,0r52,-68r0,68xm254,-276r-158,272r16,9r158,-272xm112,-231v0,17,-15,25,-33,25r0,19v21,-1,35,11,35,30v0,18,-14,31,-32,31v-18,0,-32,-10,-32,-27r-21,0v1,30,22,42,52,45v54,6,75,-70,30,-88v38,-17,22,-80,-28,-80v-29,0,-46,18,-49,43r22,0v1,-16,11,-24,27,-24v17,0,29,10,29,26","w":332},"\ue00f":{"d":"96,-231v0,17,-15,25,-33,25r0,19v21,-1,35,11,35,30v0,18,-14,31,-32,31v-17,0,-31,-11,-31,-27r-22,0v1,30,23,41,52,45v54,7,75,-70,30,-88v38,-18,22,-80,-28,-80v-29,0,-46,18,-49,43r22,0v1,-16,11,-24,27,-24v18,0,29,10,29,26","w":132},"\ue010":{"d":"69,-257v31,0,42,35,23,56r-83,90r114,0r0,-18r-70,0v22,-27,54,-47,68,-81v26,-64,-77,-89,-103,-36v-3,6,-4,13,-4,20r21,0v0,-20,13,-31,34,-31","w":132},"\ue011":{"d":"89,-119r0,119r28,0r0,-119r-28,0xm89,-297r0,119r28,0r0,-119r-28,0","w":205},"\ue012":{"d":"198,-78r0,-28r-174,0r0,28r174,0"},"\ue013":{"d":"91,-92r-67,67r20,20r67,-67r67,67r20,-20r-67,-67r67,-67r-20,-20r-67,67r-67,-67r-20,20"},"\ue002":{"d":"60,-297r-29,0r0,146r-26,19r0,32r26,-20r0,120r29,0r0,-135r27,-20r0,-31r-27,19r0,-130","w":92},"\ue000":{"d":"229,-135v0,-108,-81,-146,-202,-136r0,110r-27,0r0,28r27,0r0,133v120,9,202,-28,202,-135xm199,-136v0,76,-54,115,-141,108r0,-105r48,0r0,-28r-48,0r0,-82v86,-6,141,30,141,107","w":244},"\ue001":{"d":"58,-271r-31,0r0,124r-27,19r0,32r27,-20r0,116r105,0r0,-28r-74,0r0,-104r46,-32r0,-31r-46,32r0,-108","w":135}}}); /// function formatText(index, panel) { return index + ""; } var CMS = { init: function () { this.search(); //content options $("A#favs").click(function () { if ($.browser.msie) { window.external.AddFavorite(location.href, document.title); } if ($.browser.mozilla) { window.sidebar.addPanel(document.title, location.href, ""); } return false; }); }, doSearch: function (q, $input) { if (q.length > 2) { var qs = "?q=" + encodeURIComponent(q); if ($input.hasClass("l1")) { window.location.href = "/hr/trazi/" + qs; } else { window.location.href = "/en/search/" + qs; } } }, search: function () { $("#search INPUT").keypress(function (e) { if (e.which == 13) { CMS.doSearch($(this).val(), $(this)); } }); $("#search A").click(function (e) { $inp = $(this).parent().find("INPUT").eq(0); CMS.doSearch($inp.val(), $inp); return false; }); } }; $(function () { CMS.init(); function setHeight() { var $wh = $(window).height(); var $ch = $("#header").height() + $("#menu").height() + $("#wrap").height(); if ($wh > $ch) { $("#wrap").height($("#wrap").height() + ($wh - $ch) - 46); } } $(window).resize(function () { setHeight(); }); setHeight(); }); //font replace if (!(typeof Cufon == 'undefined')) Cufon.replace('h1'); // Works without a selector engine