/*!
 * jQuery Cycle Plugin (with Transition Definitions)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version: 2.88 (08-JUN-2010)
 * Dual licensed under the MIT and GPL licenses.
 * http://jquery.malsup.com/license.html
 * Requires: jQuery v1.2.6 or later
 */
;(function($) {

var ver = '2.88';

// if $.support is not defined (pre jQuery 1.3) add what I need
if ($.support == undefined) {
	$.support = {
		opacity: !($.browser.msie)
	};
}

function debug(s) {
	if ($.fn.cycle.debug)
		log(s);
}
function log() {
	if (window.console && window.console.log)
		window.console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
};

// the options arg can be...
//   a number  - indicates an immediate transition should occur to the given slide index
//   a string  - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
//   an object - properties to control the slideshow
//
// the arg2 arg can be...
//   the name of an fx (only used in conjunction with a numeric value for 'options')
//   the value true (only used in first arg == 'resume') and indicates
//	 that the resume should occur immediately (not wait for next timeout)

$.fn.cycle = function(options, arg2) {
	var o = { s: this.selector, c: this.context };

	// in 1.3+ we can fix mistakes with the ready state
	if (this.length === 0 && options != 'stop') {
		if (!$.isReady && o.s) {
			log('DOM not ready, queuing slideshow');
			$(function() {
				$(o.s,o.c).cycle(options,arg2);
			});
			return this;
		}
		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
		return this;
	}

	// iterate the matched nodeset
	return this.each(function() {
		var opts = handleArguments(this, options, arg2);
		if (opts === false)
			return;

		opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;

		// stop existing slideshow for this container (if there is one)
		if (this.cycleTimeout)
			clearTimeout(this.cycleTimeout);
		this.cycleTimeout = this.cyclePause = 0;

		var $cont = $(this);
		var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
		var els = $slides.get();
		if (els.length < 2) {
			log('terminating; too few slides: ' + els.length);
			return;
		}

		var opts2 = buildOptions($cont, $slides, els, opts, o);
		if (opts2 === false)
			return;

		var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.rev);

		// if it's an auto slideshow, kick it off
		if (startTime) {
			startTime += (opts2.delay || 0);
			if (startTime < 10)
				startTime = 10;
			debug('first timeout: ' + startTime);
			this.cycleTimeout = setTimeout(function(){go(els,opts2,0,(!opts2.rev && !opts.backwards))}, startTime);
		}
	});
};

// process the args that were passed to the plugin fn
function handleArguments(cont, options, arg2) {
	if (cont.cycleStop == undefined)
		cont.cycleStop = 0;
	if (options === undefined || options === null)
		options = {};
	if (options.constructor == String) {
		switch(options) {
		case 'destroy':
		case 'stop':
			var opts = $(cont).data('cycle.opts');
			if (!opts)
				return false;
			cont.cycleStop++; // callbacks look for change
			if (cont.cycleTimeout)
				clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout = 0;
			$(cont).removeData('cycle.opts');
			if (options == 'destroy')
				destroy(opts);
			return false;
		case 'toggle':
			cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
			checkInstantResume(cont.cyclePause, arg2, cont);
			return false;
		case 'pause':
			cont.cyclePause = 1;
			return false;
		case 'resume':
			cont.cyclePause = 0;
			checkInstantResume(false, arg2, cont);
			return false;
		case 'prev':
		case 'next':
			var opts = $(cont).data('cycle.opts');
			if (!opts) {
				log('options not found, "prev/next" ignored');
				return false;
			}
			$.fn.cycle[options](opts);
			return false;
		default:
			options = { fx: options };
		};
		return options;
	}
	else if (options.constructor == Number) {
		// go to the requested slide
		var num = options;
		options = $(cont).data('cycle.opts');
		if (!options) {
			log('options not found, can not advance slide');
			return false;
		}
		if (num < 0 || num >= options.elements.length) {
			log('invalid slide index: ' + num);
			return false;
		}
		options.nextSlide = num;
		if (cont.cycleTimeout) {
			clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout = 0;
		}
		if (typeof arg2 == 'string')
			options.oneTimeFx = arg2;
		go(options.elements, options, 1, num >= options.currSlide);
		return false;
	}
	return options;

	function checkInstantResume(isPaused, arg2, cont) {
		if (!isPaused && arg2 === true) { // resume now!
			var options = $(cont).data('cycle.opts');
			if (!options) {
				log('options not found, can not resume');
				return false;
			}
			if (cont.cycleTimeout) {
				clearTimeout(cont.cycleTimeout);
				cont.cycleTimeout = 0;
			}
			go(options.elements, options, 1, (!opts.rev && !opts.backwards));
		}
	}
};

function removeFilter(el, opts) {
	if (!$.support.opacity && opts.cleartype && el.style.filter) {
		try { el.style.removeAttribute('filter'); }
		catch(smother) {} // handle old opera versions
	}
};

// unbind event handlers
function destroy(opts) {
	if (opts.next)
		$(opts.next).unbind(opts.prevNextEvent);
	if (opts.prev)
		$(opts.prev).unbind(opts.prevNextEvent);

	if (opts.pager || opts.pagerAnchorBuilder)
		$.each(opts.pagerAnchors || [], function() {
			this.unbind().remove();
		});
	opts.pagerAnchors = null;
	if (opts.destroy) // callback
		opts.destroy(opts);
};

// one-time initialization
function buildOptions($cont, $slides, els, options, o) {
	// support metadata plugin (v1.0 and v2.0)
	var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
	if (opts.autostop)
		opts.countdown = opts.autostopCount || els.length;

	var cont = $cont[0];
	$cont.data('cycle.opts', opts);
	opts.$cont = $cont;
	opts.stopCount = cont.cycleStop;
	opts.elements = els;
	opts.before = opts.before ? [opts.before] : [];
	opts.after = opts.after ? [opts.after] : [];
	opts.after.unshift(function(){ opts.busy=0; });

	// push some after callbacks
	if (!$.support.opacity && opts.cleartype)
		opts.after.push(function() { removeFilter(this, opts); });
	if (opts.continuous)
		opts.after.push(function() { go(els,opts,0,(!opts.rev && !opts.backwards)); });

	saveOriginalOpts(opts);

	// clearType corrections
	if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
		clearTypeFix($slides);

	// container requires non-static position so that slides can be position within
	if ($cont.css('position') == 'static')
		$cont.css('position', 'relative');
	if (opts.width)
		$cont.width(opts.width);
	if (opts.height && opts.height != 'auto')
		$cont.height(opts.height);

	if (opts.startingSlide)
		opts.startingSlide = parseInt(opts.startingSlide);
	else if (opts.backwards)
		opts.startingSlide = els.length - 1;

	// if random, mix up the slide array
	if (opts.random) {
		opts.randomMap = [];
		for (var i = 0; i < els.length; i++)
			opts.randomMap.push(i);
		opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
		opts.randomIndex = 1;
		opts.startingSlide = opts.randomMap[1];
	}
	else if (opts.startingSlide >= els.length)
		opts.startingSlide = 0; // catch bogus input
	opts.currSlide = opts.startingSlide || 0;
	var first = opts.startingSlide;

	// set position and zIndex on all the slides
	$slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
		var z;
		if (opts.backwards)
			z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
		else
			z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
		$(this).css('z-index', z)
	});

	// make sure first slide is visible
	$(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
	removeFilter(els[first], opts);

	// stretch slides
	if (opts.fit && opts.width)
		$slides.width(opts.width);
	if (opts.fit && opts.height && opts.height != 'auto')
		$slides.height(opts.height);

	// stretch container
	var reshape = opts.containerResize && !$cont.innerHeight();
	if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
		var maxw = 0, maxh = 0;
		for(var j=0; j < els.length; j++) {
			var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
			if (!w) w = e.offsetWidth || e.width || $e.attr('width')
			if (!h) h = e.offsetHeight || e.height || $e.attr('height');
			maxw = w > maxw ? w : maxw;
			maxh = h > maxh ? h : maxh;
		}
		if (maxw > 0 && maxh > 0)
			$cont.css({width:maxw+'px',height:maxh+'px'});
	}

	if (opts.pause)
		$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});

	if (supportMultiTransitions(opts) === false)
		return false;

	// apparently a lot of people use image slideshows without height/width attributes on the images.
	// Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
	var requeue = false;
	options.requeueAttempts = options.requeueAttempts || 0;
	$slides.each(function() {
		// try to get height/width of each slide
		var $el = $(this);
		this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
		this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);

		if ( $el.is('img') ) {
			// sigh..  sniffing, hacking, shrugging...  this crappy hack tries to account for what browsers do when
			// an image is being downloaded and the markup did not include sizing info (height/width attributes);
			// there seems to be some "default" sizes used in this situation
			var loadingIE	= ($.browser.msie  && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
			var loadingFF	= ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
			var loadingOp	= ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
			var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
			// don't requeue for images that are still loading but have a valid size
			if (loadingIE || loadingFF || loadingOp || loadingOther) {
				if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
					log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
					setTimeout(function() {$(o.s,o.c).cycle(options)}, opts.requeueTimeout);
					requeue = true;
					return false; // break each loop
				}
				else {
					log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
				}
			}
		}
		return true;
	});

	if (requeue)
		return false;

	opts.cssBefore = opts.cssBefore || {};
	opts.animIn = opts.animIn || {};
	opts.animOut = opts.animOut || {};

	$slides.not(':eq('+first+')').css(opts.cssBefore);
	if (opts.cssFirst)
		$($slides[first]).css(opts.cssFirst);

	if (opts.timeout) {
		opts.timeout = parseInt(opts.timeout);
		// ensure that timeout and speed settings are sane
		if (opts.speed.constructor == String)
			opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed);
		if (!opts.sync)
			opts.speed = opts.speed / 2;

		var buffer = opts.fx == 'shuffle' ? 500 : 250;
		while((opts.timeout - opts.speed) < buffer) // sanitize timeout
			opts.timeout += opts.speed;
	}
	if (opts.easing)
		opts.easeIn = opts.easeOut = opts.easing;
	if (!opts.speedIn)
		opts.speedIn = opts.speed;
	if (!opts.speedOut)
		opts.speedOut = opts.speed;

	opts.slideCount = els.length;
	opts.currSlide = opts.lastSlide = first;
	if (opts.random) {
		if (++opts.randomIndex == els.length)
			opts.randomIndex = 0;
		opts.nextSlide = opts.randomMap[opts.randomIndex];
	}
	else if (opts.backwards)
		opts.nextSlide = opts.startingSlide == 0 ? (els.length-1) : opts.startingSlide-1;
	else
		opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;

	// run transition init fn
	if (!opts.multiFx) {
		var init = $.fn.cycle.transitions[opts.fx];
		if ($.isFunction(init))
			init($cont, $slides, opts);
		else if (opts.fx != 'custom' && !opts.multiFx) {
			log('unknown transition: ' + opts.fx,'; slideshow terminating');
			return false;
		}
	}

	// fire artificial events
	var e0 = $slides[first];
	if (opts.before.length)
		opts.before[0].apply(e0, [e0, e0, opts, true]);
	if (opts.after.length > 1)
		opts.after[1].apply(e0, [e0, e0, opts, true]);

	if (opts.next)
		$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1)});
	if (opts.prev)
		$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1)});
	if (opts.pager || opts.pagerAnchorBuilder)
		buildPager(els,opts);

	exposeAddSlide(opts, els);

	return opts;
};

// save off original opts so we can restore after clearing state
function saveOriginalOpts(opts) {
	opts.original = { before: [], after: [] };
	opts.original.cssBefore = $.extend({}, opts.cssBefore);
	opts.original.cssAfter  = $.extend({}, opts.cssAfter);
	opts.original.animIn	= $.extend({}, opts.animIn);
	opts.original.animOut   = $.extend({}, opts.animOut);
	$.each(opts.before, function() { opts.original.before.push(this); });
	$.each(opts.after,  function() { opts.original.after.push(this); });
};

function supportMultiTransitions(opts) {
	var i, tx, txs = $.fn.cycle.transitions;
	// look for multiple effects
	if (opts.fx.indexOf(',') > 0) {
		opts.multiFx = true;
		opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
		// discard any bogus effect names
		for (i=0; i < opts.fxs.length; i++) {
			var fx = opts.fxs[i];
			tx = txs[fx];
			if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
				log('discarding unknown transition: ',fx);
				opts.fxs.splice(i,1);
				i--;
			}
		}
		// if we have an empty list then we threw everything away!
		if (!opts.fxs.length) {
			log('No valid transitions named; slideshow terminating.');
			return false;
		}
	}
	else if (opts.fx == 'all') {  // auto-gen the list of transitions
		opts.multiFx = true;
		opts.fxs = [];
		for (p in txs) {
			tx = txs[p];
			if (txs.hasOwnProperty(p) && $.isFunction(tx))
				opts.fxs.push(p);
		}
	}
	if (opts.multiFx && opts.randomizeEffects) {
		// munge the fxs array to make effect selection random
		var r1 = Math.floor(Math.random() * 20) + 30;
		for (i = 0; i < r1; i++) {
			var r2 = Math.floor(Math.random() * opts.fxs.length);
			opts.fxs.push(opts.fxs.splice(r2,1)[0]);
		}
		debug('randomized fx sequence: ',opts.fxs);
	}
	return true;
};

// provide a mechanism for adding slides after the slideshow has started
function exposeAddSlide(opts, els) {
	opts.addSlide = function(newSlide, prepend) {
		var $s = $(newSlide), s = $s[0];
		if (!opts.autostopCount)
			opts.countdown++;
		els[prepend?'unshift':'push'](s);
		if (opts.els)
			opts.els[prepend?'unshift':'push'](s); // shuffle needs this
		opts.slideCount = els.length;

		$s.css('position','absolute');
		$s[prepend?'prependTo':'appendTo'](opts.$cont);

		if (prepend) {
			opts.currSlide++;
			opts.nextSlide++;
		}

		if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
			clearTypeFix($s);

		if (opts.fit && opts.width)
			$s.width(opts.width);
		if (opts.fit && opts.height && opts.height != 'auto')
			$slides.height(opts.height);
		s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
		s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();

		$s.css(opts.cssBefore);

		if (opts.pager || opts.pagerAnchorBuilder)
			$.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);

		if ($.isFunction(opts.onAddSlide))
			opts.onAddSlide($s);
		else
			$s.hide(); // default behavior
	};
}

// reset internal state; we do this on every pass in order to support multiple effects
$.fn.cycle.resetState = function(opts, fx) {
	fx = fx || opts.fx;
	opts.before = []; opts.after = [];
	opts.cssBefore = $.extend({}, opts.original.cssBefore);
	opts.cssAfter  = $.extend({}, opts.original.cssAfter);
	opts.animIn	= $.extend({}, opts.original.animIn);
	opts.animOut   = $.extend({}, opts.original.animOut);
	opts.fxFn = null;
	$.each(opts.original.before, function() { opts.before.push(this); });
	$.each(opts.original.after,  function() { opts.after.push(this); });

	// re-init
	var init = $.fn.cycle.transitions[fx];
	if ($.isFunction(init))
		init(opts.$cont, $(opts.elements), opts);
};

// this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
function go(els, opts, manual, fwd) {
	// opts.busy is true if we're in the middle of an animation
	if (manual && opts.busy && opts.manualTrump) {
		// let manual transitions requests trump active ones
		debug('manualTrump in go(), stopping active transition');
		$(els).stop(true,true);
		opts.busy = false;
	}
	// don't begin another timeout-based transition if there is one active
	if (opts.busy) {
		debug('transition active, ignoring new tx request');
		return;
	}

	var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];

	// stop cycling if we have an outstanding stop request
	if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
		return;

	// check to see if we should stop cycling based on autostop options
	if (!manual && !p.cyclePause && !opts.bounce &&
		((opts.autostop && (--opts.countdown <= 0)) ||
		(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
		if (opts.end)
			opts.end(opts);
		return;
	}

	// if slideshow is paused, only transition on a manual trigger
	var changed = false;
	if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
		changed = true;
		var fx = opts.fx;
		// keep trying to get the slide size if we don't have it yet
		curr.cycleH = curr.cycleH || $(curr).height();
		curr.cycleW = curr.cycleW || $(curr).width();
		next.cycleH = next.cycleH || $(next).height();
		next.cycleW = next.cycleW || $(next).width();

		// support multiple transition types
		if (opts.multiFx) {
			if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length)
				opts.lastFx = 0;
			fx = opts.fxs[opts.lastFx];
			opts.currFx = fx;
		}

		// one-time fx overrides apply to:  $('div').cycle(3,'zoom');
		if (opts.oneTimeFx) {
			fx = opts.oneTimeFx;
			opts.oneTimeFx = null;
		}

		$.fn.cycle.resetState(opts, fx);

		// run the before callbacks
		if (opts.before.length)
			$.each(opts.before, function(i,o) {
				if (p.cycleStop != opts.stopCount) return;
				o.apply(next, [curr, next, opts, fwd]);
			});

		// stage the after callacks
		var after = function() {
			$.each(opts.after, function(i,o) {
				if (p.cycleStop != opts.stopCount) return;
				o.apply(next, [curr, next, opts, fwd]);
			});
		};

		debug('tx firing; currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);

		// get ready to perform the transition
		opts.busy = 1;
		if (opts.fxFn) // fx function provided?
			opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
		else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
			$.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
		else
			$.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
	}

	if (changed || opts.nextSlide == opts.currSlide) {
		// calculate the next slide
		opts.lastSlide = opts.currSlide;
		if (opts.random) {
			opts.currSlide = opts.nextSlide;
			if (++opts.randomIndex == els.length)
				opts.randomIndex = 0;
			opts.nextSlide = opts.randomMap[opts.randomIndex];
			if (opts.nextSlide == opts.currSlide)
				opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
		}
		else if (opts.backwards) {
			var roll = (opts.nextSlide - 1) < 0;
			if (roll && opts.bounce) {
				opts.backwards = !opts.backwards;
				opts.nextSlide = 1;
				opts.currSlide = 0;
			}
			else {
				opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
				opts.currSlide = roll ? 0 : opts.nextSlide+1;
			}
		}
		else { // sequence
			var roll = (opts.nextSlide + 1) == els.length;
			if (roll && opts.bounce) {
				opts.backwards = !opts.backwards;
				opts.nextSlide = els.length-2;
				opts.currSlide = els.length-1;
			}
			else {
				opts.nextSlide = roll ? 0 : opts.nextSlide+1;
				opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
			}
		}
	}
	if (changed && opts.pager)
		opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);

	// stage the next transition
	var ms = 0;
	if (opts.timeout && !opts.continuous)
		ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
	else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
		ms = 10;
	if (ms > 0)
		p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, (!opts.rev && !opts.backwards)) }, ms);
};

// invoked after transition
$.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
   $(pager).each(function() {
       $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
   });
};

// calculate timeout value for current transition
function getTimeout(curr, next, opts, fwd) {
	if (opts.timeoutFn) {
		// call user provided calc fn
		var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
		while ((t - opts.speed) < 250) // sanitize timeout
			t += opts.speed;
		debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
		if (t !== false)
			return t;
	}
	return opts.timeout;
};

// expose next/prev function, caller must pass in state
$.fn.cycle.next = function(opts) { advance(opts, opts.rev?-1:1); };
$.fn.cycle.prev = function(opts) { advance(opts, opts.rev?1:-1);};

// advance slide forward or back
function advance(opts, val) {
	var els = opts.elements;
	var p = opts.$cont[0], timeout = p.cycleTimeout;
	if (timeout) {
		clearTimeout(timeout);
		p.cycleTimeout = 0;
	}
	if (opts.random && val < 0) {
		// move back to the previously display slide
		opts.randomIndex--;
		if (--opts.randomIndex == -2)
			opts.randomIndex = els.length-2;
		else if (opts.randomIndex == -1)
			opts.randomIndex = els.length-1;
		opts.nextSlide = opts.randomMap[opts.randomIndex];
	}
	else if (opts.random) {
		opts.nextSlide = opts.randomMap[opts.randomIndex];
	}
	else {
		opts.nextSlide = opts.currSlide + val;
		if (opts.nextSlide < 0) {
			if (opts.nowrap) return false;
			opts.nextSlide = els.length - 1;
		}
		else if (opts.nextSlide >= els.length) {
			if (opts.nowrap) return false;
			opts.nextSlide = 0;
		}
	}

	var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
	if ($.isFunction(cb))
		cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
	go(els, opts, 1, val>=0);
	return false;
};

function buildPager(els, opts) {
	var $p = $(opts.pager);
	$.each(els, function(i,o) {
		$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
	});
	opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
};

$.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
	var a;
	if ($.isFunction(opts.pagerAnchorBuilder)) {
		a = opts.pagerAnchorBuilder(i,el);
		debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
	}
	else
		a = '<a href="#">'+(i+1)+'</a>';

	if (!a)
		return;
	var $a = $(a);
	// don't reparent if anchor is in the dom
	if ($a.parents('body').length === 0) {
		var arr = [];
		if ($p.length > 1) {
			$p.each(function() {
				var $clone = $a.clone(true);
				$(this).append($clone);
				arr.push($clone[0]);
			});
			$a = $(arr);
		}
		else {
			$a.appendTo($p);
		}
	}

	opts.pagerAnchors =  opts.pagerAnchors || [];
	opts.pagerAnchors.push($a);
	$a.bind(opts.pagerEvent, function(e) {
		e.preventDefault();
		opts.nextSlide = i;
		var p = opts.$cont[0], timeout = p.cycleTimeout;
		if (timeout) {
			clearTimeout(timeout);
			p.cycleTimeout = 0;
		}
		var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
		if ($.isFunction(cb))
			cb(opts.nextSlide, els[opts.nextSlide]);
		go(els,opts,1,opts.currSlide < i); // trigger the trans
//		return false; // <== allow bubble
	});

	if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
		$a.bind('click.cycle', function(){return false;}); // suppress click

	if (opts.pauseOnPagerHover)
		$a.hover(function() { opts.$cont[0].cyclePause++; }, function() { opts.$cont[0].cyclePause--; } );
};

// helper fn to calculate the number of slides between the current and the next
$.fn.cycle.hopsFromLast = function(opts, fwd) {
	var hops, l = opts.lastSlide, c = opts.currSlide;
	if (fwd)
		hops = c > l ? c - l : opts.slideCount - l;
	else
		hops = c < l ? l - c : l + opts.slideCount - c;
	return hops;
};

// fix clearType problems in ie6 by setting an explicit bg color
// (otherwise text slides look horrible during a fade transition)
function clearTypeFix($slides) {
	debug('applying clearType background-color hack');
	function hex(s) {
		s = parseInt(s).toString(16);
		return s.length < 2 ? '0'+s : s;
	};
	function getBg(e) {
		for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
			var v = $.css(e,'background-color');
			if (v.indexOf('rgb') >= 0 ) {
				var rgb = v.match(/\d+/g);
				return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
			}
			if (v && v != 'transparent')
				return v;
		}
		return '#ffffff';
	};
	$slides.each(function() { $(this).css('background-color', getBg(this)); });
};

// reset common props before the next transition
$.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
	$(opts.elements).not(curr).hide();
	opts.cssBefore.opacity = 1;
	opts.cssBefore.display = 'block';
	if (w !== false && next.cycleW > 0)
		opts.cssBefore.width = next.cycleW;
	if (h !== false && next.cycleH > 0)
		opts.cssBefore.height = next.cycleH;
	opts.cssAfter = opts.cssAfter || {};
	opts.cssAfter.display = 'none';
	$(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
	$(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
};

// the actual fn for effecting a transition
$.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
	var $l = $(curr), $n = $(next);
	var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
	$n.css(opts.cssBefore);
	if (speedOverride) {
		if (typeof speedOverride == 'number')
			speedIn = speedOut = speedOverride;
		else
			speedIn = speedOut = 1;
		easeIn = easeOut = null;
	}
	var fn = function() {$n.animate(opts.animIn, speedIn, easeIn, cb)};
	$l.animate(opts.animOut, speedOut, easeOut, function() {
		if (opts.cssAfter) $l.css(opts.cssAfter);
		if (!opts.sync) fn();
	});
	if (opts.sync) fn();
};

// transition definitions - only fade is defined here, transition pack defines the rest
$.fn.cycle.transitions = {
	fade: function($cont, $slides, opts) {
		$slides.not(':eq('+opts.currSlide+')').css('opacity',0);
		opts.before.push(function(curr,next,opts) {
			$.fn.cycle.commonReset(curr,next,opts);
			opts.cssBefore.opacity = 0;
		});
		opts.animIn	   = { opacity: 1 };
		opts.animOut   = { opacity: 0 };
		opts.cssBefore = { top: 0, left: 0 };
	}
};

$.fn.cycle.ver = function() { return ver; };

// override these globally if you like (they are all optional)
$.fn.cycle.defaults = {
	fx:			  'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
	timeout:	   4000,  // milliseconds between slide transitions (0 to disable auto advance)
	timeoutFn:     null,  // callback for determining per-slide timeout value:  function(currSlideElement, nextSlideElement, options, forwardFlag)
	continuous:	   0,	  // true to start next transition immediately after current one completes
	speed:		   1000,  // speed of the transition (any valid fx speed value)
	speedIn:	   null,  // speed of the 'in' transition
	speedOut:	   null,  // speed of the 'out' transition
	next:		   null,  // selector for element to use as event trigger for next slide
	prev:		   null,  // selector for element to use as event trigger for previous slide
//	prevNextClick: null,  // @deprecated; please use onPrevNextEvent instead
	onPrevNextEvent: null,  // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
	prevNextEvent:'click.cycle',// event which drives the manual transition to the previous or next slide
	pager:		   null,  // selector for element to use as pager container
	//pagerClick   null,  // @deprecated; please use onPagerEvent instead
	onPagerEvent:  null,  // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
	pagerEvent:	  'click.cycle', // name of event which drives the pager navigation
	allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
	pagerAnchorBuilder: null, // callback fn for building anchor links:  function(index, DOMelement)
	before:		   null,  // transition callback (scope set to element to be shown):	 function(currSlideElement, nextSlideElement, options, forwardFlag)
	after:		   null,  // transition callback (scope set to element that was shown):  function(currSlideElement, nextSlideElement, options, forwardFlag)
	end:		   null,  // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
	easing:		   null,  // easing method for both in and out transitions
	easeIn:		   null,  // easing for "in" transition
	easeOut:	   null,  // easing for "out" transition
	shuffle:	   null,  // coords for shuffle animation, ex: { top:15, left: 200 }
	animIn:		   null,  // properties that define how the slide animates in
	animOut:	   null,  // properties that define how the slide animates out
	cssBefore:	   null,  // properties that define the initial state of the slide before transitioning in
	cssAfter:	   null,  // properties that defined the state of the slide after transitioning out
	fxFn:		   null,  // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
	height:		  'auto', // container height
	startingSlide: 0,	  // zero-based index of the first slide to be displayed
	sync:		   1,	  // true if in/out transitions should occur simultaneously
	random:		   0,	  // true for random, false for sequence (not applicable to shuffle fx)
	fit:		   0,	  // force slides to fit container
	containerResize: 1,	  // resize container to fit largest slide
	pause:		   0,	  // true to enable "pause on hover"
	pauseOnPagerHover: 0, // true to pause when hovering over pager link
	autostop:	   0,	  // true to end slideshow after X transitions (where X == slide count)
	autostopCount: 0,	  // number of transitions (optionally used with autostop to define X)
	delay:		   0,	  // additional delay (in ms) for first transition (hint: can be negative)
	slideExpr:	   null,  // expression for selecting slides (if something other than all children is required)
	cleartype:	   !$.support.opacity,  // true if clearType corrections should be applied (for IE)
	cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
	nowrap:		   0,	  // true to prevent slideshow from wrapping
	fastOnEvent:   0,	  // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
	randomizeEffects: 1,  // valid when multiple effects are used; true to make the effect sequence random
	rev:		   0,	 // causes animations to transition in reverse
	manualTrump:   true,  // causes manual transition to stop an active transition instead of being ignored
	requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
	requeueTimeout: 250,  // ms delay for requeue
	activePagerClass: 'activeSlide', // class name used for the active pager link
	updateActivePagerLink: null, // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
	backwards:     false  // true to start slideshow at last slide and move backwards through the stack
};

})(jQuery);


/*!
 * jQuery Cycle Plugin Transition Definitions
 * This script is a plugin for the jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version:	 2.72
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function($) {

//
// These functions define one-time slide initialization for the named
// transitions. To save file size feel free to remove any of these that you
// don't need.
//
$.fn.cycle.transitions.none = function($cont, $slides, opts) {
	opts.fxFn = function(curr,next,opts,after){
		$(next).show();
		$(curr).hide();
		after();
	};
}

// scrollUp/Down/Left/Right
$.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var h = $cont.height();
	opts.cssBefore ={ top: h, left: 0 };
	opts.cssFirst = { top: 0 };
	opts.animIn	  = { top: 0 };
	opts.animOut  = { top: -h };
};
$.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var h = $cont.height();
	opts.cssFirst = { top: 0 };
	opts.cssBefore= { top: -h, left: 0 };
	opts.animIn	  = { top: 0 };
	opts.animOut  = { top: h };
};
$.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var w = $cont.width();
	opts.cssFirst = { left: 0 };
	opts.cssBefore= { left: w, top: 0 };
	opts.animIn	  = { left: 0 };
	opts.animOut  = { left: 0-w };
};
$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var w = $cont.width();
	opts.cssFirst = { left: 0 };
	opts.cssBefore= { left: -w, top: 0 };
	opts.animIn	  = { left: 0 };
	opts.animOut  = { left: w };
};
$.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
	$cont.css('overflow','hidden').width();
	opts.before.push(function(curr, next, opts, fwd) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
		opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
	});
	opts.cssFirst = { left: 0 };
	opts.cssBefore= { top: 0 };
	opts.animIn   = { left: 0 };
	opts.animOut  = { top: 0 };
};
$.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push(function(curr, next, opts, fwd) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
		opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
	});
	opts.cssFirst = { top: 0 };
	opts.cssBefore= { left: 0 };
	opts.animIn   = { top: 0 };
	opts.animOut  = { left: 0 };
};

// slideX/slideY
$.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width = next.cycleW;
	});
	opts.cssBefore = { left: 0, top: 0, width: 0 };
	opts.animIn	 = { width: 'show' };
	opts.animOut = { width: 0 };
};
$.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height = next.cycleH;
	});
	opts.cssBefore = { left: 0, top: 0, height: 0 };
	opts.animIn	 = { height: 'show' };
	opts.animOut = { height: 0 };
};

// shuffle
$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
	var i, w = $cont.css('overflow', 'visible').width();
	$slides.css({left: 0, top: 0});
	opts.before.push(function(curr,next,opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
	});
	// only adjust speed once!
	if (!opts.speedAdjusted) {
		opts.speed = opts.speed / 2; // shuffle has 2 transitions
		opts.speedAdjusted = true;
	}
	opts.random = 0;
	opts.shuffle = opts.shuffle || {left:-w, top:15};
	opts.els = [];
	for (i=0; i < $slides.length; i++)
		opts.els.push($slides[i]);

	for (i=0; i < opts.currSlide; i++)
		opts.els.push(opts.els.shift());

	// custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
	opts.fxFn = function(curr, next, opts, cb, fwd) {
		var $el = fwd ? $(curr) : $(next);
		$(next).css(opts.cssBefore);
		var count = opts.slideCount;
		$el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
			var hops = $.fn.cycle.hopsFromLast(opts, fwd);
			for (var k=0; k < hops; k++)
				fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
			if (fwd) {
				for (var i=0, len=opts.els.length; i < len; i++)
					$(opts.els[i]).css('z-index', len-i+count);
			}
			else {
				var z = $(curr).css('z-index');
				$el.css('z-index', parseInt(z)+1+count);
			}
			$el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
				$(fwd ? this : curr).hide();
				if (cb) cb();
			});
		});
	};
	opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
};

// turnUp/Down/Left/Right
$.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top = next.cycleH;
		opts.animIn.height = next.cycleH;
	});
	opts.cssFirst  = { top: 0 };
	opts.cssBefore = { left: 0, height: 0 };
	opts.animIn	   = { top: 0 };
	opts.animOut   = { height: 0 };
};
$.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height = next.cycleH;
		opts.animOut.top   = curr.cycleH;
	});
	opts.cssFirst  = { top: 0 };
	opts.cssBefore = { left: 0, top: 0, height: 0 };
	opts.animOut   = { height: 0 };
};
$.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left = next.cycleW;
		opts.animIn.width = next.cycleW;
	});
	opts.cssBefore = { top: 0, width: 0  };
	opts.animIn	   = { left: 0 };
	opts.animOut   = { width: 0 };
};
$.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width = next.cycleW;
		opts.animOut.left = curr.cycleW;
	});
	opts.cssBefore = { top: 0, left: 0, width: 0 };
	opts.animIn	   = { left: 0 };
	opts.animOut   = { width: 0 };
};

// zoom
$.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,false,true);
		opts.cssBefore.top = next.cycleH/2;
		opts.cssBefore.left = next.cycleW/2;
		opts.animIn	   = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
		opts.animOut   = { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 };
	});
	opts.cssFirst = { top:0, left: 0 };
	opts.cssBefore = { width: 0, height: 0 };
};

// fadeZoom
$.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,false);
		opts.cssBefore.left = next.cycleW/2;
		opts.cssBefore.top = next.cycleH/2;
		opts.animIn	= { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
	});
	opts.cssBefore = { width: 0, height: 0 };
	opts.animOut  = { opacity: 0 };
};

// blindX
$.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
	var w = $cont.css('overflow','hidden').width();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.width = next.cycleW;
		opts.animOut.left   = curr.cycleW;
	});
	opts.cssBefore = { left: w, top: 0 };
	opts.animIn = { left: 0 };
	opts.animOut  = { left: w };
};
// blindY
$.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
	var h = $cont.css('overflow','hidden').height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height = next.cycleH;
		opts.animOut.top   = curr.cycleH;
	});
	opts.cssBefore = { top: h, left: 0 };
	opts.animIn = { top: 0 };
	opts.animOut  = { top: h };
};
// blindZ
$.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
	var h = $cont.css('overflow','hidden').height();
	var w = $cont.width();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height = next.cycleH;
		opts.animOut.top   = curr.cycleH;
	});
	opts.cssBefore = { top: h, left: w };
	opts.animIn = { top: 0, left: 0 };
	opts.animOut  = { top: h, left: w };
};

// growX - grow horizontally from centered 0 width
$.fn.cycle.transitions.growX = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left = this.cycleW/2;
		opts.animIn = { left: 0, width: this.cycleW };
		opts.animOut = { left: 0 };
	});
	opts.cssBefore = { width: 0, top: 0 };
};
// growY - grow vertically from centered 0 height
$.fn.cycle.transitions.growY = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top = this.cycleH/2;
		opts.animIn = { top: 0, height: this.cycleH };
		opts.animOut = { top: 0 };
	});
	opts.cssBefore = { height: 0, left: 0 };
};

// curtainX - squeeze in both edges horizontally
$.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true,true);
		opts.cssBefore.left = next.cycleW/2;
		opts.animIn = { left: 0, width: this.cycleW };
		opts.animOut = { left: curr.cycleW/2, width: 0 };
	});
	opts.cssBefore = { top: 0, width: 0 };
};
// curtainY - squeeze in both edges vertically
$.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false,true);
		opts.cssBefore.top = next.cycleH/2;
		opts.animIn = { top: 0, height: next.cycleH };
		opts.animOut = { top: curr.cycleH/2, height: 0 };
	});
	opts.cssBefore = { left: 0, height: 0 };
};

// cover - curr slide covered by next slide
$.fn.cycle.transitions.cover = function($cont, $slides, opts) {
	var d = opts.direction || 'left';
	var w = $cont.css('overflow','hidden').width();
	var h = $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		if (d == 'right')
			opts.cssBefore.left = -w;
		else if (d == 'up')
			opts.cssBefore.top = h;
		else if (d == 'down')
			opts.cssBefore.top = -h;
		else
			opts.cssBefore.left = w;
	});
	opts.animIn = { left: 0, top: 0};
	opts.animOut = { opacity: 1 };
	opts.cssBefore = { top: 0, left: 0 };
};

// uncover - curr slide moves off next slide
$.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
	var d = opts.direction || 'left';
	var w = $cont.css('overflow','hidden').width();
	var h = $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		if (d == 'right')
			opts.animOut.left = w;
		else if (d == 'up')
			opts.animOut.top = -h;
		else if (d == 'down')
			opts.animOut.top = h;
		else
			opts.animOut.left = -w;
	});
	opts.animIn = { left: 0, top: 0 };
	opts.animOut = { opacity: 1 };
	opts.cssBefore = { top: 0, left: 0 };
};

// toss - move top slide and fade away
$.fn.cycle.transitions.toss = function($cont, $slides, opts) {
	var w = $cont.css('overflow','visible').width();
	var h = $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		// provide default toss settings if animOut not provided
		if (!opts.animOut.left && !opts.animOut.top)
			opts.animOut = { left: w*2, top: -h/2, opacity: 0 };
		else
			opts.animOut.opacity = 0;
	});
	opts.cssBefore = { left: 0, top: 0 };
	opts.animIn = { left: 0 };
};

// wipe - clip animation
$.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
	var w = $cont.css('overflow','hidden').width();
	var h = $cont.height();
	opts.cssBefore = opts.cssBefore || {};
	var clip;
	if (opts.clip) {
		if (/l2r/.test(opts.clip))
			clip = 'rect(0px 0px '+h+'px 0px)';
		else if (/r2l/.test(opts.clip))
			clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
		else if (/t2b/.test(opts.clip))
			clip = 'rect(0px '+w+'px 0px 0px)';
		else if (/b2t/.test(opts.clip))
			clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
		else if (/zoom/.test(opts.clip)) {
			var top = parseInt(h/2);
			var left = parseInt(w/2);
			clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
		}
	}

	opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';

	var d = opts.cssBefore.clip.match(/(\d+)/g);
	var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]);

	opts.before.push(function(curr, next, opts) {
		if (curr == next) return;
		var $curr = $(curr), $next = $(next);
		$.fn.cycle.commonReset(curr,next,opts,true,true,false);
		opts.cssAfter.display = 'block';

		var step = 1, count = parseInt((opts.speedIn / 13)) - 1;
		(function f() {
			var tt = t ? t - parseInt(step * (t/count)) : 0;
			var ll = l ? l - parseInt(step * (l/count)) : 0;
			var bb = b < h ? b + parseInt(step * ((h-b)/count || 1)) : h;
			var rr = r < w ? r + parseInt(step * ((w-r)/count || 1)) : w;
			$next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
			(step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
		})();
	});
	opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
	opts.animIn	   = { left: 0 };
	opts.animOut   = { left: 0 };
};

})(jQuery);

/**
* hoverIntent is similar to jQuery's built-in "hover" function except that
* instead of firing the onMouseOver event immediately, hoverIntent checks
* to see if the user's mouse has slowed down (beneath the sensitivity
* threshold) before firing the onMouseOver event.
*
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* hoverIntent is currently available for use in all personal or commercial
* projects under both MIT and GPL licenses. This means that you can choose
* the license that best suits your project, and use it accordingly.
*
* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
* $("ul li").hoverIntent( showNav , hideNav );
*
* // advanced usage receives configuration object only
* $("ul li").hoverIntent({
*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
*	interval: 100,   // number = milliseconds of polling interval
*	over: showNav,  // function = onMouseOver callback (required)
*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
*	out: hideNav    // function = onMouseOut callback (required)
* });
*
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne brian(at)cherne(dot)net
*/
(function($) {
    $.fn.hoverIntent = function(f,g) {
        // default configuration options
        var cfg = {
            sensitivity: 7,
            interval: 100,
            timeout: 0
        };
        // override configuration options with user supplied object
        cfg = $.extend(cfg, g ? {
            over: f,
            out: g
        } : f );

        // instantiate variables
        // cX, cY = current X and Y position of mouse, updated by mousemove event
        // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
        var cX, cY, pX, pY;

        // A private function for getting mouse position
        var track = function(ev) {
            cX = ev.pageX;
            cY = ev.pageY;
        };

        // A private function for comparing current and previous mouse position
        var compare = function(ev,ob) {
            ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
            // compare mouse positions to see if they've crossed the threshold
            if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
                $(ob).unbind("mousemove",track);
                // set hoverIntent state to true (so mouseOut can be called)
                ob.hoverIntent_s = 1;
                return cfg.over.apply(ob,[ev]);
            } else {
                // set previous coordinates for next time
                pX = cX;
                pY = cY;
                // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
                ob.hoverIntent_t = setTimeout( function(){
                    compare(ev, ob);
                } , cfg.interval );
            }
        };

        // A private function for delaying the mouseOut function
        var delay = function(ev,ob) {
            ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
            ob.hoverIntent_s = 0;
            return cfg.out.apply(ob,[ev]);
        };

        // A private function for handling mouse 'hovering'
        var handleHover = function(e) {
            // copy objects to be passed into t (required for event object to be passed in IE)
            var ev = jQuery.extend({},e);
            var ob = this;

            // cancel hoverIntent timer if it exists
            if (ob.hoverIntent_t) {
                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
            }

            // if e.type == "mouseenter"
            if (e.type == "mouseenter") {
                // set "previous" X and Y position based on initial entry point
                pX = ev.pageX;
                pY = ev.pageY;
                // update "current" X and Y position based on mousemove
                $(ob).bind("mousemove",track);
                // start polling interval (self-calling timeout) to compare mouse coordinates over time
                if (ob.hoverIntent_s != 1) {
                    ob.hoverIntent_t = setTimeout( function(){
                        compare(ev,ob);
                    } , cfg.interval );
                }

            // else e.type == "mouseleave"
            } else {
                // unbind expensive mousemove event
                $(ob).unbind("mousemove",track);
                // if hoverIntent state is true, then call the mouseOut function after the specified delay
                if (ob.hoverIntent_s == 1) {
                    ob.hoverIntent_t = setTimeout( function(){
                        delay(ev,ob);
                    } , cfg.timeout );
                }
            }
        };

        // bind the function to the two event listeners
        return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover);
    };
})(jQuery);

/*
 * DC Mega Menu - jQuery mega menu
 * Copyright (c) 2011 Design Chemical
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 */
(function($){

    //define the defaults for the plugin and how to call it
    $.fn.dcMegaMenu = function(options){
        //set default options
        var defaults = {
            classParent: 'dc-mega',
            rowItems: 4,
            speed: 0,
            effect: 'fade',
            event: 'hover',
            classSubParent: 'mega-hdr',
            classSubLink: 'mega-hdr'
        };

        //call in the default otions
        var options = $.extend(defaults, options);
        var $dcMegaMenuObj = this;

        //act upon the element that is passed into the design
        return $dcMegaMenuObj.each(function(options){

            megaSetup();

            function megaOver(){
                var subNav = $('.sub',this);
                $(this).addClass('mega-hover');
                if(defaults.effect == 'fade'){
                    $(subNav).fadeIn(defaults.speed);
                }
                if(defaults.effect == 'slide'){
                    $(subNav).show(defaults.speed);
                }
                if(defaults.effect == 'slideDown'){
                    $(subNav).slideDown(defaults.speed);
                }
            }
            function megaAction(obj){
                var subNav = $('.sub',obj);
                $(obj).addClass('mega-hover');
                if(defaults.effect == 'fade'){
                    $(subNav).fadeIn(defaults.speed);
                }
                if(defaults.effect == 'slide'){
                    $(subNav).show(defaults.speed);
                }
                if(defaults.effect == 'slideDown'){
                    $(subNav).slideDown(defaults.speed);
                }
            }
            function megaOut(){
                var subNav = $('.sub',this);
                $(this).removeClass('mega-hover');
                $(subNav).fadeOut(defaults.speed);

            }
            function megaActionClose(obj){
                var subNav = $('.sub',obj);
                $(obj).removeClass('mega-hover');
                $(subNav).hide();
            }
            function megaReset(){
                $('li',$dcMegaMenuObj).removeClass('mega-hover');
                $('.sub',$dcMegaMenuObj).hide();
            }

            function megaSetup(){
                $arrow = '<span class="dc-mega-icon"></span>';
                var classParentLi = defaults.classParent+'-li';
                var menuWidth = $($dcMegaMenuObj).outerWidth(true);
                $('> li',$dcMegaMenuObj).each(function(){
                    //Set Width of sub
                    var mainSub = $('> ul',this);
                    var primaryLink = $('> a',this);
                    if($(mainSub).length > 0){
                        $(primaryLink).addClass(defaults.classParent).append($arrow);
                        $(mainSub).addClass('sub').wrap('<div class="sub-container" />');

                        var position = $(this).position();
                        parentLeft = position.left;

                        if($('ul',mainSub).length > 0){
                            $(this).addClass(classParentLi);
                            $('.sub-container',this).addClass('mega');
                            $('> li',mainSub).each(function(){
                                $(this).addClass('mega-unit');
                                if($('> ul',this).length){
                                    $(this).addClass(defaults.classSubParent);
                                    $('> a',this).addClass(defaults.classSubParent+'-a');
                                } else {
                                    $(this).addClass(defaults.classSubLink);
                                    $('> a',this).addClass(defaults.classSubLink+'-a');
                                }
                            });

                            // Create Rows
                            var hdrs = $('.mega-unit',this);
                            rowSize = parseInt(defaults.rowItems);
                            for(var i = 0; i < hdrs.length; i+=rowSize){
                                hdrs.slice(i, i+rowSize).wrapAll('<div class="row" />');
                            }

                            // Get Sub Dimensions & Set Row Height
                            $(mainSub).show();

                            // Get Position of Parent Item
                            var parentWidth = $(this).width();
                            var parentRight = parentLeft + parentWidth;

                            // Check available right margin
                            var marginRight = menuWidth - parentRight;

                            // // Calc Width of Sub Menu
                            var subWidth = $(mainSub).outerWidth(true);
                            var totalWidth = $(mainSub).parent('.sub-container').outerWidth(true);
                            var containerPad = totalWidth - subWidth;
                            var itemWidth = $('.mega-unit',mainSub).outerWidth(true);
                            var rowItems = $('.row:eq(0) .mega-unit',mainSub).length;
                            var innerItemWidth = itemWidth * rowItems;
                            var totalItemWidth = innerItemWidth + containerPad;

                            // Set mega header height
                            $('.row',this).each(function(){
                                $('.mega-unit:last',this).addClass('last');
                                var maxValue = undefined;
                                $('.mega-unit > a',this).each(function(){
                                    var val = parseInt($(this).height());
                                    if (maxValue === undefined || maxValue < val){
                                        maxValue = val;
                                    }
                                });
                                $('.mega-unit > a',this).css('height',maxValue+'px');
                                $(this).css('width',innerItemWidth+'px');
                            });

                            // // Calc Required Left Margin incl additional required for right align
                            var marginLeft = (totalItemWidth - parentWidth)/2;
                            if(marginRight < marginLeft){
                                marginLeft = marginLeft + marginLeft - marginRight;
                            }
                            var subLeft = parentLeft - marginLeft;

                            // If Left Position Is Negative Set To Left Margin
                            if(subLeft < 0){
                                $('.sub-container',this).css('left','0');
                            }else if(marginRight < marginLeft){
                                $('.sub-container',this).css('right','0');
                            }else {
                                $('.sub-container',this).css('left',parentLeft+'px').css('margin-left',-marginLeft+'px');
                            }

                            // Calculate Row Height
                            $('.row',mainSub).each(function(){
                                var rowHeight = $(this).height();
                                $('.mega-unit',this).css('height',rowHeight+'px');
                                $(this).parent('.row').css('height',rowHeight+'px');
                            });
                            $(mainSub).hide();

                        } else {
                            $('.sub-container',this).addClass('non-mega').css('left',parentLeft+'px');
                        }
                    }
                });
                // Set position of mega dropdown to bottom of main menu
                var menuHeight = $('> li > a',$dcMegaMenuObj).outerHeight(true);
                $('.sub-container',$dcMegaMenuObj).css({
                    top: menuHeight+'px'
                }).css('z-index','1000');

                if(defaults.event == 'hover'){
                    // HoverIntent Configuration
                    var config = {
                        sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
                        interval: 100, // number = milliseconds for onMouseOver polling interval
                        over: megaOver, // function = onMouseOver callback (REQUIRED)
                        timeout: 400, // number = milliseconds delay before onMouseOut
                        out: megaOut // function = onMouseOut callback (REQUIRED)
                    };
                    $('li',$dcMegaMenuObj).hoverIntent(config);
                }

                if(defaults.event == 'click'){

                    $('body').mouseup(function(e){
                        if(!$(e.target).parents('.mega-hover').length){
                            megaReset();
                        }
                    });

                    $('> li > a.'+defaults.classParent,$dcMegaMenuObj).click(function(e){
                        var $parentLi = $(this).parent();
                        if($parentLi.hasClass('mega-hover')){
                            megaActionClose($parentLi);
                        }
                        else {
                            megaAction($parentLi);
                        }
                        e.preventDefault();
                    });
                }
            }
        });
    };
})(jQuery);



/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 *
 * Open source under the BSD License.
 *
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
    def: 'easeOutQuad',
    swing: function (x, t, b, c, d) {
        //alert(jQuery.easing.default);
        return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
    },
    easeInQuad: function (x, t, b, c, d) {
        return c*(t/=d)*t + b;
    },
    easeOutQuad: function (x, t, b, c, d) {
        return -c *(t/=d)*(t-2) + b;
    },
    easeInOutQuad: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t + b;
        return -c/2 * ((--t)*(t-2) - 1) + b;
    },
    easeInCubic: function (x, t, b, c, d) {
        return c*(t/=d)*t*t + b;
    },
    easeOutCubic: function (x, t, b, c, d) {
        return c*((t=t/d-1)*t*t + 1) + b;
    },
    easeInOutCubic: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t + b;
        return c/2*((t-=2)*t*t + 2) + b;
    },
    easeInQuart: function (x, t, b, c, d) {
        return c*(t/=d)*t*t*t + b;
    },
    easeOutQuart: function (x, t, b, c, d) {
        return -c * ((t=t/d-1)*t*t*t - 1) + b;
    },
    easeInOutQuart: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
        return -c/2 * ((t-=2)*t*t*t - 2) + b;
    },
    easeInQuint: function (x, t, b, c, d) {
        return c*(t/=d)*t*t*t*t + b;
    },
    easeOutQuint: function (x, t, b, c, d) {
        return c*((t=t/d-1)*t*t*t*t + 1) + b;
    },
    easeInOutQuint: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
        return c/2*((t-=2)*t*t*t*t + 2) + b;
    },
    easeInSine: function (x, t, b, c, d) {
        return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
    },
    easeOutSine: function (x, t, b, c, d) {
        return c * Math.sin(t/d * (Math.PI/2)) + b;
    },
    easeInOutSine: function (x, t, b, c, d) {
        return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
    },
    easeInExpo: function (x, t, b, c, d) {
        return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
    },
    easeOutExpo: function (x, t, b, c, d) {
        return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
    },
    easeInOutExpo: function (x, t, b, c, d) {
        if (t==0) return b;
        if (t==d) return b+c;
        if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
        return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
    },
    easeInCirc: function (x, t, b, c, d) {
        return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
    },
    easeOutCirc: function (x, t, b, c, d) {
        return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
    },
    easeInOutCirc: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
        return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
    },
    easeInElastic: function (x, t, b, c, d) {
        var s=1.70158;
        var p=0;
        var a=c;
        if (t==0) return b;
        if ((t/=d)==1) return b+c;
        if (!p) p=d*.3;
        if (a < Math.abs(c)) {
            a=c;
            var s=p/4;
        }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
    },
    easeOutElastic: function (x, t, b, c, d) {
        var s=1.70158;
        var p=0;
        var a=c;
        if (t==0) return b;
        if ((t/=d)==1) return b+c;
        if (!p) p=d*.3;
        if (a < Math.abs(c)) {
            a=c;
            var s=p/4;
        }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
    },
    easeInOutElastic: function (x, t, b, c, d) {
        var s=1.70158;
        var p=0;
        var a=c;
        if (t==0) return b;
        if ((t/=d/2)==2) return b+c;
        if (!p) p=d*(.3*1.5);
        if (a < Math.abs(c)) {
            a=c;
            var s=p/4;
        }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
        return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
    },
    easeInBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c*(t/=d)*t*((s+1)*t - s) + b;
    },
    easeOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
    },
    easeInOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
    },
    easeInBounce: function (x, t, b, c, d) {
        return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
    },
    easeOutBounce: function (x, t, b, c, d) {
        if ((t/=d) < (1/2.75)) {
            return c*(7.5625*t*t) + b;
        } else if (t < (2/2.75)) {
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
        } else if (t < (2.5/2.75)) {
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
        }
        else {
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
        }
    },
    easeInOutBounce: function (x, t, b, c, d) {
        if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
        return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
    }
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 *
 * Open source under the BSD License.
 *
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

/*
	jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider
	Copyright (c) 2009 Niall Doherty
	This plugin available for use in all personal or commercial projects under both MIT and GPL licenses.
*/

$(function(){
    // Remove the coda-slider-no-js class from the body
    $("body").removeClass("coda-slider-no-js");
    // Preloader
    $(".coda-slider").children('.panel').hide().end().prepend('<p class="loading">Loading...</p>');
});

var sliderCount = 1;

$.fn.codaSlider = function(settings) {

    settings = $.extend({
        autoHeight: true,
        autoHeightEaseDuration: 0,
        autoHeightEaseFunction: "easeInOutQuint",
        autoSlide: false,
        autoSlideInterval: 7000,
        autoSlideStopWhenClicked: true,
        crossLinking: true,
        dynamicArrows: false,
        dynamicArrowLeftText: "&#171; left",
        dynamicArrowRightText: "right &#187;",
        dynamicTabs: true,
        dynamicTabsAlign: "center",
        dynamicTabsPosition: "top",
        externalTriggerSelector: "a.xtrig",
        firstPanelToLoad: 1,
        panelTitleSelector: "h2.title",
        slideEaseDuration: 0,
        slideEaseFunction: "easeInOutQuint"
    }, settings);

    return this.each(function(){

        // Uncomment the line below to test your preloader
        // alert("Testing preloader");

        var slider = $(this);

        // If we need arrows
        if (settings.dynamicArrows) {
            slider.parent().addClass("arrows");
            slider.before('<div class="coda-nav-left" id="coda-nav-left-' + sliderCount + '"><a href="#">' + settings.dynamicArrowLeftText + '</a></div>');
            slider.after('<div class="coda-nav-right" id="coda-nav-right-' + sliderCount + '"><a href="#">' + settings.dynamicArrowRightText + '</a></div>');
        };

        var panelWidth = slider.find(".panel").width();
        var panelCount = slider.find(".panel").size();
        var panelContainerWidth = panelWidth*panelCount;
        var navClicks = 0; // Used if autoSlideStopWhenClicked = true

        // Surround the collection of panel divs with a container div (wide enough for all panels to be lined up end-to-end)
        $('.panel', slider).wrapAll('<div class="panel-container"></div>');
        // Specify the width of the container div (wide enough for all panels to be lined up end-to-end)
        $(".panel-container", slider).css({
            width: panelContainerWidth
        });

        // Specify the current panel.
        // If the loaded URL has a hash (cross-linking), we're going to use that hash to give the slider a specific starting position...
        if (settings.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
            var currentPanel = parseInt(location.hash.slice(1));
            var offset = - (panelWidth*(currentPanel - 1));
            $('.panel-container', slider).css({
                marginLeft: offset
            });
        // If that's not the case, check to see if we're supposed to load a panel other than Panel 1 initially...
        }
        else if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) {
            var currentPanel = settings.firstPanelToLoad;
            var offset = - (panelWidth*(currentPanel - 1));
            $('.panel-container', slider).css({
                marginLeft: offset
            });
        // Otherwise, we'll just set the current panel to 1...
        } else {
            var currentPanel = 1;
        };

        // Left arrow click
        $("#coda-nav-left-" + sliderCount + " a").click(function(){
            navClicks++;
            if (currentPanel == 1) {
                offset = - (panelWidth*(panelCount - 1));
                alterPanelHeight(panelCount - 1);
                currentPanel = panelCount;
                slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('li:last a').addClass('current');
            } else {
                currentPanel -= 1;
                alterPanelHeight(currentPanel - 1);
                offset = - (panelWidth*(currentPanel - 1));
                slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().prev().find('a').addClass('current');
            };
            $('.panel-container', slider).animate({
                marginLeft: offset
            }, settings.slideEaseDuration, settings.slideEaseFunction);
            if (settings.crossLinking) {
                location.hash = currentPanel
            }; // Change the URL hash (cross-linking)
            return false;
        });

        // Right arrow click
        $('#coda-nav-right-' + sliderCount + ' a').click(function(){
            navClicks++;
            if (currentPanel == panelCount) {
                offset = 0;
                currentPanel = 1;
                alterPanelHeight(0);
                slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current');
            } else {
                offset = - (panelWidth*currentPanel);
                alterPanelHeight(currentPanel);
                currentPanel += 1;
                slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current');
            };
            $('.panel-container', slider).animate({
                marginLeft: offset
            }, settings.slideEaseDuration, settings.slideEaseFunction);
            if (settings.crossLinking) {
                location.hash = currentPanel
            }; // Change the URL hash (cross-linking)
            return false;
        });

        // If we need a dynamic menu
        if (settings.dynamicTabs) {
            var dynamicTabs = '<div class="coda-nav" id="coda-nav-' + sliderCount + '"><ul></ul></div>';
            switch (settings.dynamicTabsPosition) {
                case "bottom":
                    slider.parent().append(dynamicTabs);
                    break;
                default:
                    slider.parent().prepend(dynamicTabs);
                    break;
            };
            ul = $('#coda-nav-' + sliderCount + ' ul');
            // Create the nav items
            $('.panel', slider).each(function(n) {
                ul.append('<li class="tab' + (n+1) + '"><a href="#' + (n+1) + '">' + $(this).find(settings.panelTitleSelector).text() + '</a></li>');
            });
            navContainerWidth = slider.width() + slider.siblings('.coda-nav-left').width() + slider.siblings('.coda-nav-right').width();
            ul.parent().css({
                width: navContainerWidth
            });
            switch (settings.dynamicTabsAlign) {
                case "center":
                    ul.css({
                        width: ($("li", ul).width() + 2) * panelCount
                    });
                    break;
                case "right":
                    ul.css({
                        float: 'right'
                    });
                    break;
            };
        };

        // If we need a tabbed nav
        $('#coda-nav-' + sliderCount + ' a').each(function(z) {
            // What happens when a nav link is clicked
            $(this).bind("click", function() {
                navClicks++;
                $(this).addClass('current').parents('ul').find('a').not($(this)).removeClass('current');
                offset = - (panelWidth*z);
                alterPanelHeight(z);
                currentPanel = z + 1;
                $('.panel-container', slider).animate({
                    marginLeft: offset
                }, settings.slideEaseDuration, settings.slideEaseFunction);
                if (!settings.crossLinking) {
                    return false
                }; // Don't change the URL hash unless cross-linking is specified
            });
        });

        // External triggers (anywhere on the page)
        $(settings.externalTriggerSelector).each(function() {
            // Make sure this only affects the targeted slider
            if (sliderCount == parseInt($(this).attr("rel").slice(12))) {
                $(this).bind("click", function() {
                    navClicks++;
                    targetPanel = parseInt($(this).attr("href").slice(1));
                    offset = - (panelWidth*(targetPanel - 1));
                    alterPanelHeight(targetPanel - 1);
                    currentPanel = targetPanel;
                    // Switch the current tab:
                    slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (targetPanel - 1) + ') a').addClass('current');
                    // Slide
                    $('.panel-container', slider).animate({
                        marginLeft: offset
                    }, settings.slideEaseDuration, settings.slideEaseFunction);
                    if (!settings.crossLinking) {
                        return false
                    }; // Don't change the URL hash unless cross-linking is specified
                });
            };
        });

        // Specify which tab is initially set to "current". Depends on if the loaded URL had a hash or not (cross-linking).
        if (settings.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= panelCount) {
            $("#coda-nav-" + sliderCount + " a:eq(" + (location.hash.slice(1) - 1) + ")").addClass("current");
        // If there's no cross-linking, check to see if we're supposed to load a panel other than Panel 1 initially...
        } else if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) {
            $("#coda-nav-" + sliderCount + " a:eq(" + (settings.firstPanelToLoad - 1) + ")").addClass("current");
        // Otherwise we must be loading Panel 1, so make the first tab the current one.
        } else {
            $("#coda-nav-" + sliderCount + " a:eq(0)").addClass("current");
        };

        // Set the height of the first panel
        if (settings.autoHeight) {
            panelHeight = $('.panel:eq(' + (currentPanel - 1) + ')', slider).height();
            slider.css({
                height: panelHeight
            });
        };

        // Trigger autoSlide
        if (settings.autoSlide) {
            slider.ready(function() {
                setTimeout(autoSlide,settings.autoSlideInterval);
            });
        };

        function alterPanelHeight(x) {
            if (settings.autoHeight) {
                panelHeight = $('.panel:eq(' + x + ')', slider).height()
                slider.animate({
                    height: panelHeight
                }, settings.autoHeightEaseDuration, settings.autoHeightEaseFunction);
            };
        };

        function autoSlide() {
            if (navClicks == 0 || !settings.autoSlideStopWhenClicked) {
                if (currentPanel == panelCount) {
                    var offset = 0;
                    currentPanel = 1;
                } else {
                    var offset = - (panelWidth*currentPanel);
                    currentPanel += 1;
                };
                alterPanelHeight(currentPanel - 1);
                // Switch the current tab:
                slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current');
                // Slide:
                $('.panel-container', slider).animate({
                    marginLeft: offset
                }, settings.slideEaseDuration, settings.slideEaseFunction);
                setTimeout(autoSlide,settings.autoSlideInterval);
            };
        };

        // Kill the preloader
        $('.panel', slider).show().end().find("p.loading").remove();
        slider.removeClass("preload");

        sliderCount++;

    });
};



/**
 * pngFix
 */
(function($){
    jQuery.fn.pngFix=function(settings){
        settings=jQuery.extend({
            blankgif:'blank.gif'
        },settings);
        var ie55=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 5.5")!=-1);
        var ie6=(navigator.appName=="Microsoft Internet Explorer"&&parseInt(navigator.appVersion)==4&&navigator.appVersion.indexOf("MSIE 6.0")!=-1);
        if(jQuery.browser.msie&&(ie55||ie6)){
            jQuery(this).find("img[@src$=.png]").each(function(){
                jQuery(this).attr('width',jQuery(this).width());
                jQuery(this).attr('height',jQuery(this).height());
                var prevStyle='';
                var strNewHTML='';
                var imgId=(jQuery(this).attr('id'))?'id="'+jQuery(this).attr('id')+'" ':'';
                var imgClass=(jQuery(this).attr('class'))?'class="'+jQuery(this).attr('class')+'" ':'';
                var imgTitle=(jQuery(this).attr('title'))?'title="'+jQuery(this).attr('title')+'" ':'';
                var imgAlt=(jQuery(this).attr('alt'))?'alt="'+jQuery(this).attr('alt')+'" ':'';
                var imgAlign=(jQuery(this).attr('align'))?'float:'+jQuery(this).attr('align')+';':'';
                var imgHand=(jQuery(this).parent().attr('href'))?'cursor:hand;':'';
                if(this.style.border){
                    prevStyle+='border:'+this.style.border+';';
                    this.style.border=''
                }
                if(this.style.padding){
                    prevStyle+='padding:'+this.style.padding+';';
                    this.style.padding=''
                }
                if(this.style.margin){
                    prevStyle+='margin:'+this.style.margin+';';
                    this.style.margin=''
                }
                var imgStyle=(this.style.cssText);
                strNewHTML+='<span '+imgId+imgClass+imgTitle+imgAlt;
                strNewHTML+='style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
                strNewHTML+='width:'+jQuery(this).width()+'px;height:'+jQuery(this).height()+'px;';
                strNewHTML+='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+jQuery(this).attr('src')+'\', sizingMethod=\'scale\');';
                strNewHTML+=imgStyle+'"></span>';
                if(prevStyle!=''){
                    strNewHTML='<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:'+jQuery(this).width()+'px;height:'+jQuery(this).height()+'px;">'+strNewHTML+'</span>'
                }
                jQuery(this).hide();
                jQuery(this).after(strNewHTML)
            });
            jQuery(this).find("*").each(function(){
                var bgIMG=jQuery(this).css('background-image');
                if(bgIMG.indexOf(".png")!=-1){
                    var iebg=bgIMG.split('url("')[1].split('")')[0];
                    jQuery(this).css('background-image','none');
                    jQuery(this).get(0).runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+iebg+"',sizingMethod='scale')"
                }
            });
            jQuery(this).find("input[@src$=.png]").each(function(){
                var bgIMG=jQuery(this).attr('src');
                jQuery(this).get(0).runtimeStyle.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+bgIMG+'\', sizingMethod=\'scale\');';
                jQuery(this).attr('src',settings.blankgif)
            })
        }
        return jQuery
    }
})(jQuery);

/**
 * formval
 */
var nbsp=160;
var node_text=3;
var emptyString=/^\s*$/;
var global_valfield;
function trim(str){
    return str.replace(/^\s+|\s+$/g,'')
};

function setFocusDelayed(){
    global_valfield.focus()
};

function setfocus(valfield){
    global_valfield=valfield;
    setTimeout('setFocusDelayed()',100)
};

function msg(fld,msgtype,message){
    var dispmessage;
    if(emptyString.test(message))dispmessage=String.fromCharCode(nbsp);else dispmessage=message;
    var elem=document.getElementById(fld);
    elem.firstChild.nodeValue=dispmessage;
    elem.className=msgtype
};

var proceed=2;
function commonCheck(valfield,infofield,required){
    if(!document.getElementById)return true;
    var elem=document.getElementById(infofield);
    if(!elem.firstChild)return true;
    if(elem.firstChild.nodeType!=node_text)return true;
    if(emptyString.test(valfield.value)){
        if(required){
            msg(infofield,"error hide","");
            setfocus(valfield);
            return false
        }else{
            msg(infofield,"warn hide","");
            return true
        }
    }
    return proceed
};

function validatePresent(valfield,infofield){
    var stat=commonCheck(valfield,infofield,true);
    if(stat!=proceed)return stat;
    msg(infofield,"warn","");
    return true
};

function validateEmail(valfield,infofield,required){
    var stat=commonCheck(valfield,infofield,required);
    if(stat!=proceed)return stat;
    var tfld=trim(valfield.value);
    var email=/^[^@]+@[^@.]+\.[^@]*\w\w$/;
    if(!email.test(tfld)){
        msg(infofield,"error","Invalid e-mail address");
        setfocus(valfield);
        return false
    }
    var email2=/^[A-Za-z][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/;
    if(!email2.test(tfld))msg(infofield,"warn","Unusual e-mail address - check if correct");else msg(infofield,"warn","");
    return true
};

function validateTelnr(valfield,infofield,required){
    var stat=commonCheck(valfield,infofield,required);
    if(stat!=proceed)return stat;
    var tfld=trim(valfield.value);
    var telnr=/^\+?[0-9 ()-]+[0-9]$/;
    if(!telnr.test(tfld)){
        msg(infofield,"error","Invalid: Use only digits, spaces, (), - and leading +");
        setfocus(valfield);
        return false
    }
    var numdigits=0;
    for(var j=0;j<tfld.length;j++)if(tfld.charAt(j)>='0'&&tfld.charAt(j)<='9')numdigits++;if(numdigits<6){
        msg(infofield,"error","Error: "+numdigits+" digits - too short");
        setfocus(valfield);
        return false
    }
    if(numdigits>14)msg(infofield,"warn",numdigits+" digits - check if correct");
    else{
        if(numdigits<10)msg(infofield,"warn","Only "+numdigits+" digits - check if correct");else msg(infofield,"warn","")
    }
    return true
};

function reloadCartFrame(){
    //window.frames['cart_notice_frame'].location.reload();
    document.getElementById('cart_notice_frame').contentWindow.location.reload();

    return true;
}

function reloadPage(){
    window.location.reload();

    return true;
}

function validateExtension(valfield,infofield,required){
    var stat=commonCheck(valfield,infofield,required);
    if(stat!=proceed)return stat;
    var tfld=trim(valfield.value);
    var extRE=/^[0-9]{0,6}$/;
    if(!extRE.test(tfld)){
        msg(infofield,"error","Invalid extension - at most 6 digits.");
        setfocus(valfield);
        return false
    }
    return true
};

function validateNotes(valfield,infofield,required){
    var stat=commonCheck(valfield,infofield,required);
    if(stat!=proceed)return stat;
    var tfld=trim(valfield.value);
    var numChars=tfld.toString().length;
    if(numChars<1){
        msg(infofield,"error","Please enter a request.");
        setfocus(valfield);
        return false
    }
    if(numChars>1000){
        msg(infofield,"error","Your request is longer than the allowed 1000 characters ("+numChars+").");
        setfocus(valfield);
        return false
    }
};
/**
 * ev-utils
 */
function getPlugins(){
    $("#plugins_flash").val(getFlashVersion());
    $("#plugins_shockwave").val(getShockwaveVersion());
    $("#plugins_quickTime").val(getQuickTimeVersion())
};

function getFlashVersion(){
    var isInstalled=false;
    var version=null;
    if(window.ActiveXObject){
        var control=null;
        try{
            control=new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
        }catch(e){
            return
        }
        if(control){
            isInstalled=true
        }else{
            isInstalled=false
        }
        if(isInstalled){
            version=control.GetVariable('$version').substring(4);
            version=version.split(',');
            version=parseFloat(version[0]+'.'+version[1]);
            return version
        }else{
            $("#plugins_flash").addClass("warning");
            return"Flash Player is not installed."
        }
    }
    else{
        var thearray=navigator.plugins;
        var arraylength=thearray.length;
        for(i=0;i<arraylength;i++){
            theplugin=thearray[i];
            thename=theplugin.name;
            thedesc=theplugin.description;
            if(thedesc.indexOf("Shockwave Flash")!=-1){
                return thedesc
            }
        }
        $("#plugins_flash").addClass("warning");
        return"A Flash Player browser plugin does not seem to be installed."
    }
};

function getShockwaveVersion(){
    var isInstalled=false;
    var version=null;
    if(window.ActiveXObject){
        var control=null;
        try{
            control=new ActiveXObject('SWCtl.SWCtl')
        }catch(e){
            return
        }
        if(control){
            isInstalled=true
        }else{
            isInstalled=false
        }
        if(isInstalled){
            version=control.ShockwaveVersion('').split('r');
            version=parseFloat(version[0]);
            return version
        }
    }
    else{
        var thearray=navigator.plugins;
        var arraylength=thearray.length;
        for(i=0;i<arraylength;i++){
            theplugin=thearray[i];
            thename=theplugin.name;
            thedesc=theplugin.description;
            if(thedesc.indexOf("Shockwave for Director")!=-1){
                return thedesc.substring(thedesc.indexOf("version ")+8)
            }
        }
        $("#plugins_shockwave").addClass("warning");
        return"A Shockwave Player browser plugin does not seem to be installed."
    }
};

function getQuickTimeVersion(){
    var isInstalled=false;
    var version=null;
    if(window.ActiveXObject){
        var control=null;
        try{
            control=new ActiveXObject('QuickTime.QuickTime')
        }catch(e1){}
        if(control){
            isInstalled=true
        }
        try{
            control=new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck')
        }catch(e2){
            return
        }
        if(control){
            isInstalled=true
        }else{
            isInstalled=false
        }
        if(isInstalled){
            version=control.QuickTimeVersion.toString(16);
            version=version.substring(0,1)+'.'+version.substring(1,3);
            version=parseFloat(version);
            return version
        }
    }else{
        var thearray=navigator.plugins;
        var arraylength=thearray.length;
        for(i=0;i<arraylength;i++){
            theplugin=thearray[i];
            thename=theplugin.name;
            thedesc=theplugin.description;
            if(thedesc.indexOf("QuickTime")!=-1){
                return"QuickTime has been detected on your system."
            }
        }
        $("#plugins_quickTime").addClass("warning");
        return"A QuickTime browser plugin does not seem to be installed."
    }
};

//execute this before the doc is ready to avoid flickering
$('.mega-menu-home').dcMegaMenu();
$('.mega-menu-home-student').dcMegaMenu({
    rowItems: '2'
});
$('.mega-menu-vlrc').dcMegaMenu({
    rowItems: '2'
});
$('.mega-menu-admin').dcMegaMenu();


function ValidateCC(ccNumber){
    var bOdd=true;
    var sum=new Number(0);
    var num=new Number(0);
    if(ccNumber.length<13||ccNumber.length>16){
        return""
    }
    for(var i=ccNumber.length-1;i>=0;i--){
        num=Number(ccNumber.substr(i,1));
        if(bOdd){
            sum=sum+(num*1)
        }else{
            num=(num*2);
            var tString=String(num);
            var n=(tString.length-1);
            for(n;n>=0;n--){
                sum=sum+Number(tString.substr(n,1))
            }
        }
        bOdd=!bOdd
    }
    if((sum%10)!=0)return"";
    if(Number(ccNumber.length)==16&&ccNumber.substring(0,2)>="51"&&ccNumber.substring(0,2)<="55"){
        return("mastercard")
    }
    if(Number(ccNumber.length)==16&&ccNumber.substring(0,1)=="4"){
        return("visa")
    }
    if(Number(ccNumber.length)==13&&(ccNumber.substring(0,1)=="4")){
        return"visa"
    }
    if(Number(ccNumber.length)==16&&ccNumber.substring(0,4)=="6011"){
        return"discover"
    }
    if(Number(ccNumber.length)==15&&(ccNumber.substring(0,2)=="34"||ccNumber.substring(0,2)=="37")){
        return("amex")
    }
    if(Number(ccNumber.length)==14&&(ccNumber.substring(0,2)=="36"||ccNumber.substring(0,2)=="30"||ccNumber.substring(0,2)=="38")){
        return("dinersclub")
    }
    return("")
};

function LZ(x){
    return(x<0||x>9?"":"0")+x
};

function formatDate(date){
    var i_format=0;
    var c="";
    var token="";
    var y=date.getYear()+"";
    var M=date.getMonth()+1;
    var d=date.getDate();
    var E=date.getDay();
    var H=date.getHours();
    var m=date.getMinutes();
    var s=date.getSeconds();
    if(y.length<4){
        y=""+(y-0+1900)
    }
    var result=y+"-"+LZ(M)+"-"+LZ(d)+", "+LZ(H)+":"+LZ(m);
    return result
};

function enableFields(idSuffix,checky){
    fulfilledon=document.getElementById("fo_"+idSuffix);
    tracking=document.getElementById("tc_"+idSuffix);
    fulfilledon.disabled=checky.checked?false:true;
    if(checky.checked==true){
        fulfilledon.value=formatDate(new Date())
    }else{
        fulfilledon.value=''
    }
    tracking.disabled=checky.checked?false:true
};



$(document).ready(function(){

    VideoJS.setupAllWhenReady();


    $("dd").hide();
    $("dt").click(function(){
        var $nextDd=$(this).next("dd");
        var vis=$nextDd.is(":visible");

        $("dd:visible").slideUp(400);

        if (vis == false){
            $nextDd.css("style", "display:inline").slideDown(400);
        }
    });
    //coda slider

    $('#purchase .coda-slider').codaSlider();
    $('#admin-coda .coda-slider').codaSlider();
    $('#showcase-slider .coda-slider').codaSlider({
        autoHeight: false,
        autoHeightEaseDuration: 2000,
        autoHeightEaseFunction: "easeInOutQuint",
        autoSlide: true,
        autoSlideInterval: 10000,
        autoSlideStopWhenClicked: true,
        crossLinking: true,
        dynamicArrows: false,
        dynamicArrowLeftText: "&#171; left",
        dynamicArrowRightText: "right &#187;",
        dynamicTabs: true,
        dynamicTabsAlign: "center",
        dynamicTabsPosition: "bottom",
        externalTriggerSelector: "a.xtrig",
        firstPanelToLoad: 1,
        panelTitleSelector: "h2.title",
        slideEaseDuration: 2000,
        slideEaseFunction: "easeInOutQuint"
    });

    $('div#program-menu:eq(0) > div').hide();
    $('div#program-menu:eq(0) > h3').click(function(){
        var $nextDiv=$(this).next();

        var vis=$nextDiv.is(":visible");

        $('div#program-menu:eq(0) > div:visible').slideUp(400);

        if (vis == false){
            //alert("Should make div visible");
            $nextDiv.css("style", "display:inline").slideToggle(400);
        }
    });


    //jnotify
    $('.addToCartButtonDVD').click(function(){
        $.jnotify("Adding DVD<br/>To Cart", "dvd");
    });

    $('.addToCartButtonCD').click(function(){
        $.jnotify("Adding CD<br/>To Cart", "cd");
    });

    $('.addToCartButtonSub').click(function(){
        $.jnotify("Adding Subscription<br/>To Cart", "sub");
    });

    $('.addToCartButtonDownload').click(function(){
        $.jnotify("Adding Download<br/>To Cart", "download");
    });

    $('.addToCartButtonSeries').click(function(){
        $.jnotify("Adding Series<br/>To Cart", "sub");
    });

    $('.addToCartButtonSeriesCD').click(function(){
        $.jnotify("Adding Series<br/>To Cart", "seriescd");
    });

    $('.addToCartButtonSeriesDVD').click(function(){
        $.jnotify("Adding Series<br/>To Cart", "series");
    });

    $('.addToCartButtonBundle').click(function(){
        $.jnotify("Adding Bundle<br/>To Cart", "bundle");
    });

    $('.addToCartButtonGeneral').click(function(){
        $.jnotify("Adding Item<br/>To Cart", "");
    });

    var color = $("#notice").css('borderTopColor');
    var highlight = "#00927d";

    $("#notice").css({
        borderTopColor: highlight,
        borderRightColor: highlight,
        borderBottomColor: highlight,
        borderLeftColor: highlight
    }).animate({
        borderTopColor: color,
        borderRightColor: color,
        borderBottomColor: color,
        borderLeftColor: color
    }, 1000).animate({
        borderTopColor: highlight,
        borderRightColor: highlight,
        borderBottomColor: highlight,
        borderLeftColor: highlight
    }, 1000).animate({
        borderTopColor: color,
        borderRightColor: color,
        borderBottomColor: color,
        borderLeftColor: color
    }, 1000).animate({
        borderTopColor: highlight,
        borderRightColor: highlight,
        borderBottomColor: highlight,
        borderLeftColor: highlight
    }, 1000).animate({
        borderTopColor: color,
        borderRightColor: color,
        borderBottomColor: color,
        borderLeftColor: color
    }, 1000);

    var successColor = $(".successBox").css('backgroundColor');
    $(".successBox").animate({
        backgroundColor: "#00a297"
    }, 1000).animate({
        backgroundColor: successColor
    }, 2000);

    var errorColor = $(".errorBox").css('backgroundColor');
    $(".errorBox").animate({
        backgroundColor: "#f5a40b"
    }, 1500).animate({
        backgroundColor: errorColor
    }, 6500);







    $('.slideshow').cycle({
		fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
	});

    // Cufon activation
    Cufon.replace('#nav ul li a.nav', {
        fontFamily: 'Quicksand Bold',
        hover: true
    });

    Cufon.replace('.studentLargeTitle', {
        fontFamily: 'Quicksand Bold'
    });

    Cufon.replace('#top-nav ul li a.nav', {
        fontFamily: 'Quicksand Bold',
        hover: true
    });
    Cufon.replace('.home h2', {
        fontFamily: 'Futura-Lt-BT'
    });
    Cufon.replace('.grey-em', {
        fontFamily: 'Futura-Lt-BT-ital'
    });
    Cufon.replace('.home h3', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('.vlrc h3', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('#inside-left-col h3', {
        fontFamily: 'Futura-Lt-BT'
    });
    Cufon.replace('#inside-right-col h3', {
        fontFamily: 'Futura-Lt-BT'
    });
    Cufon.replace('blockquote p', {
        fontFamily: 'Futura-Lt-BT-ital'
    });


    Cufon.replace('h3.videos-nav', {
        fontFamily: 'Quicksand Bold',
        hover: true
    });
    Cufon.replace('#content h2', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('.grey-em', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('#content h3', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('#content blockquote p', {
        fontFamily: 'Quicksand Book'
    });
    Cufon.replace('.modal h2', {
        fontFamily: 'Quicksand Book'
    });

    Cufon.replace('.modal h3', {
        fontFamily: 'Quicksand Book'
    });

    Cufon.replace('#program-menu h4', {
        fontFamily: 'Futura-Lt-BT'
    });

    Cufon.replace('#mega-menu li .sub li h3', {
        fontFamily: 'Quicksand Bold'
    });


//END Cufon

/** VLRC side Menus **/
//$('.sub-program-menu').css('display', 'none');
//$('.sub-program-menu:first').css('display', 'block');

/** END VLRC Side Menus **/






});




/*!
 * Copyright (c) 2010 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;
        }

    };

    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');

        function isContainerReady(el) {
            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;
        }

        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');
        }

        function onEnterLeave(e) {
            trigger(this, 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;
                api.replace(el, hoverState ? merge(options, options.hover) : 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);
            }
        };

    }

    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) {
            el.attachEvent('on' + type, function() {
                return listener.call(el, window.event);
            });
        }
    }

    function attach(el, options) {
        var storage = sharedStorage.get(el);
        if (storage.options) return 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 replaceElement(el, options) {
        var name = el.nodeName.toLowerCase();
        if (options.ignore[name]) 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,
        //fontScale: 1,
        //fontScaling: false,
        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
        },
        modifyText: null,
        onAfterReplace: null,
        onBeforeReplace: null,
        printable: true,
        //rotation: 0,
        //selectable: false,
        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.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 1990-1998 Bitstream Inc.  All rights reserved.
 */
Cufon.registerFont({
    "w":207,
    "face":{
        "font-family":"Futura-Lt-BT",
        "font-weight":400,
        "font-stretch":"normal",
        "units-per-em":"360",
        "panose-1":"2 11 4 2 2 2 4 2 3 3",
        "ascent":"274",
        "descent":"-86",
        "x-height":"7",
        "bbox":"-4 -276.493 339 85",
        "underline-thickness":"14.0625",
        "underline-position":"-32.168",
        "unicode-range":"U+0020-U+007E"
    },
    "glyphs":{
        " ":{
            "w":103
        },
        "!":{
            "d":"45,-53r0,-210r22,0r0,210r-22,0xm56,7v-11,0,-18,-7,-18,-18v0,-9,7,-19,18,-18v9,-1,19,9,18,18v1,11,-9,18,-18,18",
            "w":111
        },
        "\"":{
            "d":"79,-252r0,97r-15,0r0,-97r15,0xm33,-252r0,97r-15,0r0,-97r15,0",
            "w":96
        },
        "#":{
            "d":"172,-152r-47,0r-18,49r48,0xm161,-256r-31,88r48,0r31,-88r19,0r-30,88r56,0r-5,16r-57,0r-18,49r61,0r-5,16r-62,0r-30,87r-20,0r31,-87r-47,0r-32,87r-19,0r30,-87r-58,0r5,-16r59,0r18,-49r-64,0r5,-16r65,0r31,-88r19,0",
            "w":276
        },
        "$":{
            "d":"98,-238v-28,1,-47,38,-27,63v6,7,15,14,27,20r0,-83xm112,-21v36,-1,53,-53,31,-81v-7,-8,-17,-16,-31,-23r0,104xm175,-74v0,40,-26,69,-63,74r0,30r-14,0r0,-31v-36,-1,-58,-19,-70,-47r20,-10v8,23,23,35,50,38r0,-111v-34,-18,-59,-29,-59,-68v0,-35,26,-53,59,-58r0,-18r14,0r0,17v25,3,41,14,51,32r-18,10v-5,-10,-18,-21,-33,-21r0,88v38,20,63,31,63,75"
        },
        "%":{
            "d":"201,-108v-24,0,-31,21,-31,49v0,28,7,50,31,50v23,0,31,-24,31,-50v0,-28,-7,-49,-31,-49xm201,-125v34,0,51,28,51,66v0,39,-16,66,-51,66v-35,0,-52,-27,-52,-66v0,-38,17,-66,52,-66xm63,-244v-24,0,-31,22,-31,50v0,28,7,49,31,49v23,0,31,-22,31,-49v0,-28,-7,-50,-31,-50xm63,-260v35,0,51,28,51,66v0,38,-17,66,-51,66v-35,0,-52,-28,-52,-66v0,-38,17,-66,52,-66xm47,7r148,-267r20,0r-148,267r-20,0",
            "w":263
        },
        "&":{
            "d":"45,-96v-30,47,28,106,78,72v10,-7,22,-16,34,-29r-67,-82v-16,10,-40,30,-45,39xm104,-238v-34,0,-42,37,-22,59r15,20v17,-13,38,-23,38,-50v0,-16,-14,-29,-31,-29xm217,-101v-11,18,-22,34,-35,49r45,52r-26,0r-32,-38v-20,24,-42,42,-78,43v-43,1,-78,-29,-76,-72v2,-43,30,-60,64,-83v-13,-18,-30,-33,-30,-60v0,-27,26,-46,56,-46v30,0,52,20,51,48v-2,33,-21,44,-48,62r64,79v12,-14,20,-28,30,-43",
            "w":230
        },
        "'":{
            "d":"33,-252r0,97r-15,0r0,-97r15,0",
            "w":50
        },
        "(":{
            "d":"74,78v-53,-89,-56,-258,0,-347r16,8v-48,85,-50,246,0,330",
            "w":98
        },
        ")":{
            "d":"8,69v51,-84,49,-245,0,-330r16,-8v57,87,53,259,0,347",
            "w":98
        },
        "*":{
            "d":"28,-163r-7,-14r41,-21r-41,-23r7,-14r40,26r-1,-48r16,0r-2,48r41,-25r7,13r-41,23r41,21r-8,14r-40,-25r1,47r-15,0r2,-46",
            "w":150
        },
        "+":{
            "d":"157,-215r0,101r98,0r0,14r-98,0r0,100r-14,0r0,-100r-98,0r0,-14r98,0r0,-101r14,0",
            "w":299
        },
        ",":{
            "d":"57,-45r25,11r-46,91r-15,-7",
            "w":103
        },
        "-":{
            "d":"24,-89r77,0r0,23r-77,0r0,-23",
            "w":124,
            "k":{
                "x":6,
                "s":-7,
                "q":-7,
                "o":-7,
                "e":-7,
                "d":-7,
                "c":-7,
                "Y":28,
                "X":13,
                "W":20,
                "V":21,
                "T":33,
                "S":-7,
                "Q":-13,
                "O":-13,
                "J":-20,
                "G":-13,
                "C":-7,
                "A":6
            }
        },
        ".":{
            "d":"52,3v-11,0,-18,-7,-18,-18v0,-11,7,-18,18,-18v11,0,18,7,18,18v0,11,-7,18,-18,18",
            "w":103
        },
        "\/":{
            "d":"126,-263r19,0r-126,296r-19,0",
            "w":145
        },
        "0":{
            "d":"103,-239v-85,0,-86,225,1,225v49,0,62,-52,62,-113v0,-60,-13,-112,-63,-112xm190,-126v0,73,-24,133,-87,133v-60,0,-86,-63,-85,-133v0,-72,24,-134,86,-134v63,0,86,63,86,134"
        },
        "1":{
            "d":"96,0r0,-234r-47,0r11,-21r58,0r0,255r-22,0"
        },
        "2":{
            "d":"99,-260v46,0,78,27,80,72v2,47,-82,128,-119,168r118,0r0,20r-165,0v39,-44,141,-143,141,-187v0,-30,-24,-52,-57,-52v-35,0,-57,25,-56,61r-23,0v-2,-51,31,-82,81,-82"
        },
        "3":{
            "d":"180,-68v5,70,-92,96,-139,56v-14,-12,-22,-30,-24,-53r26,0v2,34,21,51,56,51v35,0,57,-20,57,-54v0,-38,-26,-59,-68,-55r0,-22v38,3,64,-11,64,-46v0,-29,-21,-48,-50,-48v-30,0,-45,15,-49,41r-25,0v4,-37,33,-62,74,-62v42,-1,74,26,74,67v0,32,-20,51,-45,59v29,9,47,30,49,66"
        },
        "4":{
            "d":"127,-85r0,-116r-81,116r81,0xm127,0r0,-65r-116,0r139,-198r0,178r26,0r0,20r-26,0r0,65r-23,0"
        },
        "5":{
            "d":"157,-81v0,-63,-81,-80,-117,-44r-7,-1r33,-129r104,0r0,20r-88,0r-20,80v55,-27,119,10,119,72v0,94,-133,123,-167,41r19,-14v14,24,28,42,62,42v39,0,62,-27,62,-67"
        },
        "6":{
            "d":"104,-135v-34,0,-58,26,-58,62v0,35,23,60,57,60v36,0,57,-26,57,-63v0,-34,-24,-59,-56,-59xm100,7v-65,0,-95,-63,-69,-122v18,-40,72,-108,101,-150r19,12r-82,111v50,-34,116,5,116,67v0,48,-37,82,-85,82"
        },
        "7":{
            "d":"39,-3r118,-232r-125,0r0,-20r158,0r-129,263"
        },
        "8":{
            "d":"46,-70v0,34,23,56,58,56v35,0,57,-22,57,-56v0,-36,-21,-57,-57,-57v-36,0,-58,22,-58,57xm56,-193v0,28,20,45,48,45v29,0,48,-17,48,-45v0,-28,-19,-46,-48,-46v-29,0,-48,17,-48,46xm22,-69v0,-37,20,-62,50,-70v-69,-20,-40,-129,32,-121v75,-10,98,105,31,121v30,8,50,33,50,69v0,48,-32,77,-81,77v-48,0,-83,-29,-82,-76"
        },
        "9":{
            "d":"103,-118v34,0,59,-26,58,-62v-1,-35,-23,-60,-58,-60v-35,0,-57,27,-57,63v0,33,23,59,57,59xm106,-260v65,0,97,65,69,124v-21,43,-72,105,-102,148r-19,-12r83,-111v-50,33,-115,-6,-115,-67v0,-48,36,-82,84,-82"
        },
        ":":{
            "d":"56,3v-11,0,-18,-7,-18,-18v0,-11,7,-18,18,-18v9,0,19,7,18,18v1,11,-9,18,-18,18xm56,-115v-25,0,-22,-37,0,-37v9,1,18,8,18,18v0,10,-9,19,-18,19",
            "w":111
        },
        ";":{
            "d":"71,-115v-25,0,-22,-37,0,-37v9,1,18,8,18,18v0,10,-9,19,-18,19xm58,-45r26,11r-47,91r-14,-7",
            "w":111
        },
        "<":{
            "d":"253,-182r-183,75r183,74r0,16r-207,-85r0,-11r207,-85r0,16",
            "w":299
        },
        "=":{
            "d":"255,-82r0,14r-210,0r0,-14r210,0xm255,-146r0,14r-210,0r0,-14r210,0",
            "w":299
        },
        ">":{
            "d":"253,-113r0,11r-207,85r0,-16r184,-74r-184,-75r0,-16",
            "w":299
        },
        "?":{
            "d":"89,7v-10,0,-19,-8,-19,-18v0,-27,37,-21,37,0v-1,10,-8,18,-18,18xm93,-241v-28,0,-42,19,-42,48r-21,0v-2,-43,22,-70,64,-70v48,0,72,50,50,91v-12,22,-83,49,-82,78v0,17,11,29,30,28v21,0,34,-12,33,-34r19,0v1,36,-18,53,-55,53v-39,0,-62,-42,-41,-74v14,-22,86,-52,83,-82v-2,-21,-15,-39,-38,-38",
            "w":185
        },
        "@":{
            "d":"184,-175v24,0,39,11,45,30r11,-23r14,0r-28,116v-1,11,9,17,21,16v49,-5,75,-49,75,-99v0,-66,-57,-109,-128,-107v-94,3,-151,58,-154,152v-1,79,60,126,142,126v44,0,82,-14,110,-34r5,8v-30,24,-66,39,-114,39v-96,0,-162,-47,-162,-141v0,-103,72,-163,175,-163v81,0,143,41,143,118v0,65,-34,115,-97,115v-22,0,-38,-11,-33,-33v-10,17,-26,33,-51,33v-37,0,-54,-21,-55,-58v-1,-48,36,-96,81,-95xm121,-78v0,42,46,54,73,30v20,-17,23,-50,31,-79v-5,-22,-17,-34,-41,-35v-39,0,-63,41,-63,84",
            "w":360
        },
        "A":{
            "d":"63,-107r89,0r-44,-112xm-3,0r113,-268r108,268r-25,0r-33,-87r-105,0r-34,87r-24,0",
            "w":214,
            "k":{
                "Y":20,
                "W":6,
                "V":6,
                "U":6,
                "T":20,
                "Q":6,
                "O":6,
                "G":6,
                "C":6,
                ";":-7,
                ":":-7,
                "-":8
            }
        },
        "B":{
            "d":"143,-189v0,-50,-39,-49,-88,-48r0,94v48,1,88,2,88,-46xm155,-71v0,-52,-44,-55,-100,-52r0,103v57,3,100,0,100,-51xm180,-76v2,77,-65,79,-148,76r0,-257v75,-4,135,-1,135,67v0,29,-16,49,-40,54v33,3,53,26,53,60",
            "w":199,
            "k":{
                "Y":6,
                "W":6,
                "V":6,
                ".":10,
                "-":-10,
                ",":10
            }
        },
        "C":{
            "d":"155,-263v35,-1,64,11,84,27r0,26v-23,-20,-45,-32,-82,-33v-65,-1,-114,48,-112,115v2,69,41,111,109,113v36,1,61,-12,83,-30r0,28v-22,14,-49,24,-82,24v-83,0,-135,-52,-135,-135v0,-83,53,-132,135,-135",
            "w":257,
            "k":{
                ";":-7,
                ":":-7,
                "-":-8
            }
        },
        "D":{
            "d":"206,-129v-1,-88,-48,-117,-151,-109r0,218v101,9,151,-20,151,-109xm231,-128v0,110,-73,138,-199,128r0,-257v127,-9,199,17,199,129",
            "w":250,
            "k":{
                "Y":6,
                "W":6,
                "V":6,
                "A":6,
                ".":21,
                "-":-11,
                ",":21
            }
        },
        "E":{
            "d":"32,0r0,-257r127,0r0,22r-104,0r0,80r104,0r0,22r-104,0r0,111r104,0r0,22r-127,0",
            "w":184,
            "k":{
                ";":-7,
                ":":-7,
                ".":-7,
                "-":-7,
                ",":-7
            }
        },
        "F":{
            "d":"32,0r0,-257r127,0r0,22r-104,0r0,80r101,0r0,22r-101,0r0,133r-23,0",
            "w":180,
            "k":{
                "u":13,
                "r":20,
                "o":13,
                "i":13,
                "e":13,
                "a":13,
                "A":26,
                ";":15,
                ":":15,
                ".":71,
                "-":18,
                ",":71
            }
        },
        "G":{
            "d":"20,-128v0,-134,180,-181,240,-79r-17,14v-19,-29,-48,-47,-90,-49v-65,-2,-108,51,-108,116v0,95,111,144,178,86v19,-16,28,-40,28,-67r-89,0r0,-20r115,0v1,82,-46,133,-126,134v-78,1,-131,-57,-131,-135",
            "w":294,
            "k":{
                "Y":6,
                "T":6,
                ";":-7,
                ":":-7,
                ".":10,
                "-":-8,
                ",":10
            }
        },
        "H":{
            "d":"32,0r0,-257r23,0r0,104r140,0r0,-104r24,0r0,257r-24,0r0,-133r-140,0r0,133r-23,0",
            "w":250,
            "k":{
                ".":6,
                ",":6
            }
        },
        "I":{
            "d":"32,0r0,-257r23,0r0,257r-23,0",
            "w":87
        },
        "J":{
            "d":"18,-35v21,35,64,22,64,-35r0,-187r23,0r0,202v10,65,-76,82,-104,35",
            "w":134,
            "k":{
                ";":11,
                ":":11,
                ".":18,
                "-":6,
                ",":18
            }
        },
        "K":{
            "d":"32,0r0,-257r23,0r0,120r117,-120r30,0r-122,123r128,134r-34,0r-119,-131r0,131r-23,0",
            "w":206,
            "k":{
                "y":13,
                "u":6,
                "o":6,
                "e":6,
                "a":6,
                "Y":13,
                "W":13,
                "U":6,
                "T":13,
                "O":13,
                "C":13,
                ";":-7,
                ":":-7,
                ".":-7,
                "-":18,
                ",":-7
            }
        },
        "L":{
            "d":"32,0r0,-257r23,0r0,235r89,0r0,22r-112,0",
            "w":148,
            "k":{
                "y":13,
                "u":6,
                "o":6,
                "e":6,
                "a":6,
                "Y":26,
                "W":20,
                "V":20,
                "U":6,
                "T":20,
                "O":13,
                ";":-7,
                ":":-7,
                ".":-7,
                "-":6,
                ",":-7
            }
        },
        "M":{
            "d":"149,10r-90,-207r-19,197r-25,0r35,-268r99,229r102,-229r33,268r-24,0r-19,-197",
            "w":300
        },
        "N":{
            "d":"32,0r0,-268r182,215r0,-204r22,0r0,265r-182,-216r0,208r-22,0",
            "w":268,
            "k":{
                ";":10,
                ":":10,
                ".":16,
                ",":16
            }
        },
        "O":{
            "d":"45,-128v0,68,44,114,112,114v68,0,113,-46,113,-114v0,-68,-45,-114,-113,-114v-68,0,-112,46,-112,114xm157,-263v83,0,138,53,138,135v0,82,-56,135,-138,135v-81,0,-137,-54,-137,-135v0,-82,55,-135,137,-135",
            "w":315,
            "k":{
                "Y":13,
                "X":6,
                "V":6,
                "T":20,
                "A":6,
                ";":-7,
                ":":-7,
                ".":15,
                "-":-10,
                ",":15
            }
        },
        "P":{
            "d":"168,-187v0,62,-46,75,-113,72r0,115r-23,0r0,-257v76,-4,136,0,136,70xm143,-185v-1,-48,-33,-55,-88,-52r0,101v52,0,89,1,88,-49",
            "w":180,
            "k":{
                "u":13,
                "s":13,
                "r":13,
                "o":20,
                "n":13,
                "i":6,
                "e":20,
                "a":20,
                "A":20,
                ";":16,
                ":":16,
                ".":86,
                "-":28,
                ",":86
            }
        },
        "Q":{
            "d":"45,-128v-4,91,105,144,178,92r-60,-69r29,0r47,55v18,-19,31,-43,31,-78v-3,-69,-46,-115,-113,-115v-67,0,-109,46,-112,115xm295,-128v0,43,-17,72,-41,95r43,51r-28,0r-31,-36v-23,15,-47,24,-83,23v-81,-3,-135,-53,-135,-133v0,-82,55,-135,137,-135v82,0,138,53,138,135",
            "w":315,
            "k":{
                ";":-7,
                ":":-7,
                "-":-10
            }
        },
        "R":{
            "d":"137,-188v0,-47,-34,-51,-82,-49r0,95v46,1,82,2,82,-46xm163,-187v0,40,-26,64,-67,64r92,123r-28,0r-91,-123r-14,0r0,123r-23,0r0,-257v70,-3,131,2,131,70",
            "w":190,
            "k":{
                "y":6,
                "u":6,
                "o":6,
                "e":6,
                "a":6,
                "Y":6,
                "T":6,
                "-":10
            }
        },
        "S":{
            "d":"159,-68v8,86,-125,100,-147,25r20,-11v8,23,25,39,53,40v33,1,52,-21,52,-54v0,-72,-114,-60,-114,-134v0,-64,99,-83,124,-29r-18,11v-14,-35,-86,-29,-82,19v5,55,123,58,112,133",
            "w":179,
            "k":{
                ";":-7,
                ":":-7,
                ".":6,
                "-":-11,
                ",":6
            }
        },
        "T":{
            "d":"78,0r0,-235r-71,0r0,-22r165,0r0,22r-71,0r0,235r-23,0",
            "w":178,
            "k":{
                "y":43,
                "w":43,
                "u":36,
                "s":43,
                "r":36,
                "o":43,
                "i":10,
                "e":43,
                "c":43,
                "a":43,
                "O":20,
                "C":13,
                "A":26,
                ";":23,
                ":":23,
                ".":46,
                "-":33,
                ",":46
            }
        },
        "U":{
            "d":"125,7v-126,0,-89,-150,-94,-264r23,0r0,168v-1,50,23,74,71,75v107,2,60,-148,70,-243r23,0v-5,113,32,264,-93,264",
            "w":249,
            "k":{
                "A":6,
                ";":11,
                ":":11,
                ".":21,
                "-":10,
                ",":21
            }
        },
        "V":{
            "d":"98,10r-101,-267r27,0r74,209r78,-209r26,0",
            "w":198,
            "k":{
                "y":10,
                "u":20,
                "o":20,
                "e":20,
                "a":20,
                "O":6,
                "A":6,
                ";":24,
                ":":24,
                ".":60,
                "-":29,
                ",":60
            }
        },
        "W":{
            "d":"93,10r-89,-267r25,0r64,205r69,-216r71,214r62,-203r24,0r-86,267r-71,-218",
            "w":323,
            "k":{
                "y":6,
                "u":20,
                "r":13,
                "o":20,
                "i":6,
                "e":20,
                "a":20,
                "A":6,
                ";":21,
                ":":21,
                ".":44,
                "-":21,
                ",":44
            }
        },
        "X":{
            "d":"21,0r-25,0r78,-135r-71,-122r27,0r58,102r58,-102r25,0r-71,121r79,136r-26,0r-66,-114",
            "w":174,
            "k":{
                "O":6,
                "C":6,
                ";":6,
                ":":6,
                ".":-7,
                "-":18,
                ",":-7
            }
        },
        "Y":{
            "d":"87,0r0,-118r-85,-139r28,0r69,118r69,-118r27,0r-84,139r0,118r-24,0",
            "w":196,
            "k":{
                "u":38,
                "o":40,
                "i":6,
                "e":40,
                "a":40,
                "O":13,
                "C":6,
                "A":20,
                ";":38,
                ":":38,
                ".":48,
                "-":43,
                ",":48
            }
        },
        "Z":{
            "d":"4,0r153,-236r-130,0r0,-21r170,0r-152,235r137,0r0,22r-178,0",
            "w":201,
            "k":{
                ";":-7,
                ":":-7,
                ".":-7,
                "-":6,
                ",":-7
            }
        },
        "[":{
            "d":"39,-263r51,0r0,17r-31,0r0,301r31,0r0,17r-51,0r0,-335",
            "w":98
        },
        "\\":{
            "d":"126,33r-126,-296r19,0r126,296r-19,0",
            "w":145
        },
        "]":{
            "d":"59,-263r0,335r-51,0r0,-17r31,0r0,-301r-31,0r0,-17r51,0",
            "w":98
        },
        "^":{
            "d":"190,-256r95,98r-22,0r-83,-83r-83,83r-22,0r94,-98r21,0",
            "w":360
        },
        "_":{
            "d":"180,71r0,14r-180,0r0,-14r180,0",
            "w":180
        },
        "`":{
            "d":"113,-181r-16,0r-50,-62r29,0",
            "w":180
        },
        "a":{
            "d":"92,-142v-35,0,-53,29,-53,66v0,38,17,62,52,63v35,0,54,-29,53,-67v0,-36,-18,-62,-52,-62xm87,-162v28,0,49,14,57,35r0,-29r22,0r0,156r-22,0r0,-28v-28,65,-129,30,-129,-49v0,-46,28,-85,72,-85",
            "w":194
        },
        "b":{
            "d":"103,-13v35,0,52,-25,52,-63v0,-37,-18,-66,-53,-66v-34,0,-52,26,-52,62v0,38,18,67,53,67xm179,-77v0,79,-100,115,-129,49r0,28r-21,0r0,-272r21,0r0,145v9,-20,29,-35,57,-35v44,0,72,39,72,85",
            "w":194,
            "k":{
                "-":-7
            }
        },
        "c":{
            "d":"16,-76v0,-68,74,-106,134,-75r0,24v-40,-33,-112,-11,-112,52v0,59,74,81,115,46r0,24v-58,32,-137,0,-137,-71",
            "w":164
        },
        "d":{
            "d":"92,-142v-34,0,-52,29,-52,66v-1,38,17,62,52,63v35,0,54,-29,53,-67v0,-36,-19,-62,-53,-62xm88,-162v28,0,47,14,56,35r0,-145r22,0r0,272r-22,0r0,-28v-9,22,-26,34,-54,35v-45,0,-75,-36,-75,-84v0,-46,29,-85,73,-85",
            "w":194
        },
        "e":{
            "d":"137,-96v2,-42,-53,-59,-81,-32v-9,8,-15,18,-16,32r97,0xm91,-162v46,1,74,35,72,85r-124,0v2,37,18,64,53,64v27,0,42,-15,52,-37r20,11v-14,29,-33,46,-72,46v-46,0,-77,-36,-77,-83v-1,-49,29,-86,76,-86",
            "w":178,
            "k":{
                "-":-7
            }
        },
        "f":{
            "d":"92,-253v-25,-11,-37,4,-37,38r0,59r35,0r0,19r-35,0r0,137r-21,0r0,-137r-29,0r0,-19r29,0v0,-63,-10,-140,62,-116",
            "w":93,
            "k":{
                ".":13,
                ",":13
            }
        },
        "g":{
            "d":"89,-162v25,1,48,15,55,35r0,-29r22,0v-8,97,35,234,-74,234v-40,0,-66,-14,-70,-48r27,0v5,20,19,29,45,29v47,1,54,-36,50,-88v-9,21,-29,35,-56,36v-46,0,-72,-35,-72,-84v0,-48,27,-85,73,-85xm144,-79v0,-37,-18,-62,-53,-63v-35,-1,-52,29,-52,65v-1,37,16,63,50,64v35,0,56,-29,55,-66",
            "w":194,
            "k":{
                ".":6,
                "-":6,
                ",":6
            }
        },
        "h":{
            "d":"99,-142v-66,0,-46,82,-49,142r-21,0r0,-272r20,0r0,140v22,-44,111,-40,111,26r0,106r-21,0v-6,-55,21,-142,-40,-142",
            "w":187
        },
        "i":{
            "d":"41,-200v-22,0,-19,-33,0,-33v9,0,17,7,17,16v1,11,-7,17,-17,17xm30,0r0,-156r23,0r0,156r-23,0",
            "w":82
        },
        "j":{
            "d":"41,-200v-22,0,-19,-33,0,-33v9,0,17,7,17,16v1,11,-7,17,-17,17xm30,78r0,-234r23,0r0,234r-23,0",
            "w":82
        },
        "k":{
            "d":"29,0r0,-272r21,0r0,185r78,-69r30,0r-83,70r89,86r-30,0r-84,-81r0,81r-21,0",
            "w":164,
            "k":{
                "-":15
            }
        },
        "l":{
            "d":"53,0r-23,0r0,-272r23,0r0,272",
            "w":82
        },
        "m":{
            "d":"95,-143v-62,0,-42,84,-45,143r-21,0r0,-156r21,0r0,25v13,-39,86,-41,98,0v20,-46,107,-40,107,26r0,105r-21,0v-5,-55,20,-142,-38,-143v-61,-1,-39,86,-43,143r-22,0v-6,-53,22,-143,-36,-143",
            "w":284
        },
        "n":{
            "d":"99,-142v-66,0,-46,82,-49,142r-21,0r0,-156r20,0r0,24v22,-44,111,-40,111,26r0,106r-21,0v-6,-55,21,-142,-40,-142",
            "w":187
        },
        "o":{
            "d":"39,-77v0,35,28,64,61,64v33,0,62,-29,62,-64v0,-35,-28,-65,-62,-65v-34,0,-61,30,-61,65xm185,-78v0,51,-36,85,-85,85v-49,0,-84,-34,-84,-85v0,-51,35,-84,84,-84v49,0,85,33,85,84",
            "w":200,
            "k":{
                "-":-7
            }
        },
        "p":{
            "d":"105,-13v34,-1,51,-27,50,-64v0,-36,-17,-66,-52,-65v-35,1,-53,26,-53,63v0,37,20,66,55,66xm179,-77v7,80,-100,114,-129,48r0,107r-21,0r0,-234r21,0r0,29v10,-20,28,-35,55,-35v46,0,70,38,74,85",
            "w":194,
            "k":{
                "-":-7
            }
        },
        "q":{
            "d":"144,-79v0,-37,-18,-62,-53,-63v-35,-1,-52,29,-52,65v-1,37,16,63,50,64v35,0,56,-29,55,-66xm89,-162v27,0,46,15,56,35r0,-29r21,0r0,234r-21,0r0,-107v-11,21,-28,35,-57,36v-46,0,-72,-36,-72,-84v-1,-48,27,-85,73,-85",
            "w":194
        },
        "r":{
            "d":"112,-138v-66,-14,-65,68,-62,138r-21,0r0,-156r21,0r0,31v15,-25,35,-45,69,-33",
            "w":113,
            "k":{
                ".":36,
                "-":13,
                ",":36
            }
        },
        "s":{
            "d":"122,-40v0,58,-98,62,-111,12r21,-12v4,32,68,39,68,1v0,-36,-81,-30,-81,-78v0,-54,89,-59,102,-13r-20,11v-3,-27,-59,-33,-59,0v0,41,80,25,80,79",
            "w":137,
            "k":{
                "-":-7
            }
        },
        "t":{
            "d":"33,-137r-28,0r0,-19r28,0r0,-64r22,0r0,64r31,0r0,19r-31,0r0,137r-22,0r0,-137",
            "w":89,
            "k":{
                "-":8
            }
        },
        "u":{
            "d":"95,7v-79,0,-66,-87,-66,-163r21,0v4,59,-17,143,45,143v62,0,40,-85,44,-143r22,0v0,76,13,163,-66,163",
            "w":189
        },
        "v":{
            "d":"5,-156r24,0r48,118r48,-118r24,0r-72,166",
            "w":153,
            "k":{
                ".":28,
                ",":28
            }
        },
        "w":{
            "d":"67,10r-63,-166r23,0r41,112r49,-120r49,120r40,-112r23,0r-62,166r-50,-124",
            "w":233,
            "k":{
                ".":26,
                "-":-7,
                ",":26
            }
        },
        "x":{
            "d":"5,-156r27,0r38,57r39,-57r26,0r-53,75r58,81r-26,0r-44,-63r-43,63r-27,0r58,-81",
            "w":141,
            "k":{
                "-":11
            }
        },
        "y":{
            "d":"8,-156r23,0r44,122r41,-122r23,0r-80,234r-23,0r28,-79",
            "w":145,
            "k":{
                ".":31,
                "-":6,
                ",":31
            }
        },
        "z":{
            "d":"4,0r87,-136r-81,0r0,-20r118,0r-86,136r89,0r0,20r-127,0",
            "w":137
        },
        "{":{
            "d":"84,-151v-1,-64,-6,-118,65,-109v-1,6,4,18,-6,16v-83,-13,-2,140,-75,151v41,6,33,55,34,104v0,39,9,46,47,46v-1,7,4,19,-7,16v-65,7,-58,-48,-58,-108v0,-39,-16,-54,-53,-50r0,-16v39,2,54,-11,53,-50",
            "w":180
        },
        "|":{
            "d":"98,-275r0,360r-16,0r0,-360r16,0",
            "w":180
        },
        "}":{
            "d":"31,-260v69,-8,67,44,65,109v-1,39,14,52,53,50r0,16v-55,-10,-55,39,-53,92v2,53,-13,67,-65,66v1,-7,-4,-18,7,-16v82,14,0,-139,74,-150v-41,-7,-33,-56,-34,-105v0,-39,-10,-46,-47,-46r0,-16",
            "w":180
        },
        "~":{
            "d":"99,-126v26,-2,78,25,102,24v28,-2,46,-12,68,-28r0,16v-33,26,-72,34,-119,14v-48,-22,-83,-12,-119,15r0,-16v21,-14,39,-24,68,-25",
            "w":299
        },
        "\u00a0":{
            "w":103
        }
    }
});



/*!
 * The following copyright notice may not be removed under any circumstances.
 *
 * Copyright:
 * Copyright 1990-2001 Bitstream Inc. All rights reserved.
 */
Cufon.registerFont({
    "w":201,
    "face":{
        "font-family":"Futura-Lt-BT-ital",
        "font-weight":400,
        "font-style":"italic",
        "font-stretch":"normal",
        "units-per-em":"360",
        "panose-1":"2 11 4 2 2 2 4 9 3 3",
        "ascent":"274",
        "descent":"-86",
        "x-height":"7",
        "bbox":"-26 -285 339 85",
        "underline-thickness":"14.0625",
        "underline-position":"-32.168",
        "slope":"-7.5",
        "unicode-range":"U+0020-U+007E"
    },
    "glyphs":{
        " ":{
            "w":100
        },
        "!":{
            "d":"34,-51r28,-212r21,0r-28,212r-21,0xm39,-29v9,-1,19,9,18,18v1,11,-9,18,-18,18v-11,0,-18,-7,-18,-18v0,-9,7,-19,18,-18",
            "w":109
        },
        "\"":{
            "d":"79,-252r0,97r-15,0r0,-97r15,0xm33,-252r0,97r-15,0r0,-97r15,0",
            "w":96
        },
        "#":{
            "d":"172,-152r-47,0r-18,49r48,0xm161,-256r-31,88r48,0r31,-88r19,0r-30,88r56,0r-5,16r-57,0r-18,49r61,0r-5,16r-62,0r-30,87r-20,0r31,-87r-47,0r-32,87r-19,0r30,-87r-58,0r5,-16r59,0r18,-49r-64,0r5,-16r65,0r31,-88r19,0",
            "w":276
        },
        "$":{
            "d":"108,-239v-37,-1,-57,42,-38,73v5,7,14,13,26,20xm92,-14v41,0,62,-48,41,-82v-5,-9,-16,-14,-28,-20xm109,-139v51,14,72,83,34,124v-13,13,-31,21,-54,22r-4,30r-13,0r4,-31v-33,-5,-49,-23,-63,-51r15,-15v11,24,25,39,50,46r15,-109v-46,-14,-69,-78,-32,-116v12,-12,29,-19,50,-20r3,-26r14,0r-4,27v26,2,41,18,53,37r-14,12v-10,-15,-21,-29,-41,-30"
        },
        "%":{
            "d":"15,-178v-1,-42,20,-82,56,-82v32,0,44,20,45,54v1,41,-21,80,-56,81v-31,0,-44,-20,-45,-53xm72,-246v-26,1,-41,37,-39,70v0,21,7,37,26,37v28,0,39,-37,39,-71v0,-23,-5,-37,-26,-36xm48,7r145,-267r15,0r-145,267r-15,0xm142,-48v0,-42,21,-80,56,-81v32,-1,45,20,45,54v0,40,-21,80,-55,80v-32,0,-46,-20,-46,-53xm200,-116v-26,0,-41,38,-40,70v0,23,7,38,26,38v28,0,39,-38,39,-72v0,-23,-5,-36,-25,-36",
            "w":257
        },
        "&":{
            "d":"113,-243v-42,1,-41,57,-17,82v25,-15,50,-23,50,-51v0,-17,-15,-31,-33,-31xm26,-63v-3,41,47,63,83,41v12,-7,25,-16,39,-30r-59,-83v-34,20,-61,33,-63,72xm162,-66v13,-11,25,-24,36,-38r13,15v-4,5,-24,25,-36,40r35,49r-25,0r-26,-35v-24,23,-46,40,-84,42v-40,2,-72,-32,-70,-71v2,-48,34,-65,74,-88v-34,-36,-24,-110,35,-109v28,0,54,20,52,48v-2,36,-27,50,-60,67",
            "w":216
        },
        "'":{
            "d":"33,-252r0,97r-15,0r0,-97r15,0",
            "w":50
        },
        "(":{
            "d":"112,-256v-61,70,-89,218,-39,317r-16,9v-55,-106,-23,-268,41,-339",
            "w":111
        },
        ")":{
            "d":"-8,58v61,-69,89,-219,39,-318r16,-9v53,108,22,268,-42,339",
            "w":111
        },
        "*":{
            "d":"33,-168r-6,-15r43,-17r-38,-27r9,-13r37,31r5,-48r15,1r-7,48r43,-20r6,14r-44,18r38,26r-9,13r-37,-30r-5,47r-14,-2r7,-46",
            "w":150
        },
        "+":{
            "d":"157,-215r0,101r98,0r0,14r-98,0r0,100r-14,0r0,-100r-98,0r0,-14r98,0r0,-101r14,0",
            "w":299
        },
        ",":{
            "d":"-10,40r46,-89r24,14r-57,84",
            "w":100
        },
        "-":{
            "d":"10,-87r76,0r-2,19r-77,0",
            "w":108,
            "k":{
                "x":6,
                "s":-7,
                "q":-7,
                "o":-7,
                "e":-7,
                "d":-7,
                "c":-7,
                "Y":28,
                "X":13,
                "W":20,
                "V":21,
                "T":33,
                "S":-7,
                "Q":-13,
                "O":-13,
                "J":-20,
                "G":-13,
                "C":-7
            }
        },
        ".":{
            "d":"35,3v-9,0,-19,-7,-18,-18v-1,-11,9,-18,18,-18v11,0,18,7,18,18v0,11,-7,18,-18,18",
            "w":100
        },
        "\/":{
            "d":"0,33r137,-296r19,0r-138,296r-18,0",
            "w":155
        },
        "0":{
            "d":"86,-13v70,0,97,-140,65,-208v-6,-14,-20,-19,-36,-19v-64,0,-78,83,-78,150v0,43,11,77,49,77xm116,-260v50,0,73,46,71,102v-2,81,-23,165,-100,165v-52,0,-72,-45,-72,-102v0,-82,21,-165,101,-165"
        },
        "1":{
            "d":"76,0r31,-236r-46,0r9,-19r61,0r-33,255r-22,0"
        },
        "2":{
            "d":"110,-260v45,-1,78,24,77,68v8,43,-87,131,-135,172r113,0r-3,20r-162,0v44,-42,120,-104,151,-147v28,-39,12,-97,-43,-94v-35,2,-60,26,-61,62r-21,0v1,-50,33,-81,84,-81"
        },
        "3":{
            "d":"127,-130v83,25,40,143,-39,137v-48,-3,-75,-26,-77,-72r20,0v2,32,23,52,56,52v36,0,64,-23,63,-59v-1,-37,-28,-51,-68,-50v3,-8,-3,-21,12,-20v40,2,68,-16,68,-54v0,-29,-21,-45,-52,-45v-29,-1,-52,18,-53,44r-24,0v2,-78,153,-86,151,0v0,37,-24,59,-57,67"
        },
        "4":{
            "d":"121,-82r18,-124r-101,124r83,0xm111,0r8,-63r-118,0r166,-200r-24,181r27,0r-2,19r-28,0r-8,63r-21,0"
        },
        "5":{
            "d":"178,-85v0,87,-126,126,-171,54r14,-17v14,20,31,35,62,35v39,0,72,-32,72,-69v0,-64,-79,-82,-118,-47r-7,-5r44,-121r105,0r-3,21r-87,0r-29,76v57,-23,118,13,118,73"
        },
        "6":{
            "d":"89,7v-68,0,-92,-74,-60,-129v24,-41,84,-100,119,-141r16,15r-97,105v50,-26,109,2,109,63v0,49,-39,87,-87,87xm155,-80v0,-35,-22,-56,-57,-56v-35,0,-63,31,-62,67v0,33,22,55,55,55v38,0,65,-28,64,-66"
        },
        "7":{
            "d":"30,-2r130,-231r-124,0r4,-22r157,0r-148,264"
        },
        "8":{
            "d":"97,-127v-36,0,-61,27,-61,62v0,30,23,53,54,52v36,0,63,-27,63,-63v-1,-31,-24,-51,-56,-51xm111,-241v-30,0,-51,21,-52,49v0,26,20,43,47,43v29,0,51,-17,51,-46v0,-28,-17,-47,-46,-46xm15,-67v0,-41,23,-64,58,-73v-20,-12,-34,-26,-35,-54v-1,-39,33,-66,72,-66v40,-1,68,21,68,60v1,35,-20,58,-49,63v81,22,42,144,-39,144v-46,0,-75,-28,-75,-74"
        },
        "9":{
            "d":"45,-173v0,35,22,56,57,56v36,0,62,-31,62,-67v0,-33,-22,-55,-55,-55v-38,0,-65,28,-64,66xm111,-260v67,0,92,73,60,129v-24,42,-83,100,-119,141r-16,-15r97,-106v-49,28,-110,-2,-110,-62v0,-49,40,-87,88,-87"
        },
        ":":{
            "d":"40,2v-10,0,-18,-8,-18,-18v0,-9,8,-18,18,-18v10,0,19,9,18,18v1,11,-9,18,-18,18xm55,-115v-25,0,-22,-37,0,-37v9,1,18,8,18,18v0,10,-9,19,-18,19",
            "w":109
        },
        ";":{
            "d":"55,-115v-25,0,-22,-37,0,-37v9,1,18,8,18,18v0,10,-9,19,-18,19xm-6,40r47,-89r24,14r-57,84",
            "w":109
        },
        "<":{
            "d":"253,-182r-183,75r183,74r0,16r-207,-85r0,-11r207,-85r0,16",
            "w":299
        },
        "=":{
            "d":"255,-82r0,14r-210,0r0,-14r210,0xm255,-146r0,14r-210,0r0,-14r210,0",
            "w":299
        },
        ">":{
            "d":"253,-113r0,11r-207,85r0,-16r184,-74r-184,-75r0,-16",
            "w":299
        },
        "?":{
            "d":"83,-73v22,-1,32,-12,37,-31r20,5v-5,58,-111,59,-110,-3v1,-67,112,-48,112,-106v0,-23,-18,-38,-42,-37v-28,1,-41,18,-48,43r-20,-6v9,-34,31,-56,71,-56v36,-1,61,24,61,59v0,60,-112,65,-113,104v0,17,14,28,32,28xm72,7v-9,0,-18,-8,-18,-18v0,-9,9,-19,18,-18v11,0,18,7,18,18v0,11,-7,18,-18,18",
            "w":178
        },
        "@":{
            "d":"184,-175v24,0,39,11,45,30r11,-23r14,0r-28,116v-1,11,9,17,21,16v49,-5,75,-49,75,-99v0,-66,-57,-109,-128,-107v-94,3,-151,58,-154,152v-1,79,60,126,142,126v44,0,82,-14,110,-34r5,8v-30,24,-66,39,-114,39v-96,0,-162,-47,-162,-141v0,-103,72,-163,175,-163v81,0,143,41,143,118v0,65,-34,115,-97,115v-22,0,-38,-11,-33,-33v-10,17,-26,33,-51,33v-37,0,-54,-21,-55,-58v-1,-48,36,-96,81,-95xm121,-78v0,42,46,54,73,30v20,-17,23,-50,31,-79v-5,-22,-17,-34,-41,-35v-39,0,-63,41,-63,84",
            "w":360
        },
        "A":{
            "d":"152,-103r-32,-113r-63,113r95,0xm-26,0r152,-263r79,263r-24,0r-24,-84r-111,0r-47,84r-25,0",
            "w":206,
            "k":{
                "y":-7,
                "w":-7,
                "v":-7,
                "u":-7,
                "t":-7,
                "q":-7,
                "o":-7,
                "f":-7,
                "e":-7,
                "d":-7,
                "c":-7,
                "Y":13,
                "W":6,
                "V":6,
                "T":13,
                ";":-7,
                ":":-7,
                ".":-11,
                ",":-11
            }
        },
        "B":{
            "d":"148,-197v0,-41,-37,-42,-81,-41r-12,91v53,3,93,-2,93,-50xm174,-76v0,75,-70,81,-160,76r34,-257v67,-3,122,-2,122,60v0,33,-15,52,-42,59v28,7,46,29,46,62xm150,-78v0,-50,-42,-50,-97,-49r-14,107v61,2,111,0,111,-58",
            "w":194,
            "k":{
                "Y":6,
                ".":10,
                "-":-10,
                ",":10
            }
        },
        "C":{
            "d":"19,-119v0,-121,136,-183,230,-116r-6,24v-19,-21,-43,-33,-81,-33v-76,0,-116,52,-120,126v-7,96,110,132,183,81r-6,27v-90,45,-200,-3,-200,-109",
            "w":249,
            "k":{
                ";":-7,
                ":":-7,
                "-":-8
            }
        },
        "D":{
            "d":"204,-137v0,-78,-46,-108,-136,-101r-29,219v109,7,165,-25,165,-118xm228,-137v0,98,-62,145,-171,137r-43,0r34,-257v114,-8,180,21,180,120",
            "w":246,
            "k":{
                "Y":10,
                "W":6,
                "V":6,
                "A":6,
                ".":21,
                "-":-11,
                ",":21
            }
        },
        "E":{
            "d":"14,0r34,-257r127,0r-3,19r-104,0r-11,85r101,0r-2,19r-102,0r-15,114r108,0r-3,20r-130,0",
            "w":183,
            "k":{
                ";":-7,
                ":":-7,
                ".":-7,
                "-":-7,
                ",":-7
            }
        },
        "F":{
            "d":"14,0r34,-257r127,0r-3,19r-104,0r-11,85r101,0r-2,19r-102,0r-18,134r-22,0",
            "w":178,
            "k":{
                "u":13,
                "r":20,
                "o":13,
                "i":13,
                "e":13,
                "a":13,
                "A":26,
                ";":15,
                ":":15,
                ".":71,
                "-":18,
                ",":71
            }
        },
        "G":{
            "d":"42,-118v-7,93,113,136,176,79v19,-17,30,-40,31,-68r-87,0r3,-19r109,1v0,80,-50,132,-129,132v-74,1,-126,-50,-126,-125v0,-138,180,-194,254,-93r-16,15v-21,-29,-49,-48,-94,-48v-75,0,-115,53,-121,126",
            "w":293,
            "k":{
                "Y":6,
                "T":6,
                ";":-7,
                ":":-7,
                ".":10,
                "-":-8,
                ",":10
            }
        },
        "H":{
            "d":"14,0r34,-257r22,0r-14,106r141,0r14,-106r22,0r-33,257r-22,0r17,-132r-141,0r-18,132r-22,0",
            "w":248,
            "k":{
                ".":6,
                ",":6
            }
        },
        "I":{
            "d":"15,0r34,-257r22,0r-34,257r-22,0",
            "w":86
        },
        "J":{
            "d":"103,-104v-5,81,-23,128,-95,104v-8,-3,-14,-12,-20,-21r19,-13v8,10,15,18,31,19v25,8,40,-65,47,-121r16,-121r22,0",
            "w":135,
            "k":{
                ";":11,
                ":":11,
                ".":18,
                ",":18
            }
        },
        "K":{
            "d":"14,0r34,-257r22,0r-16,123r122,-123r29,0r-126,125r107,132r-29,0r-104,-129r-17,129r-22,0",
            "w":198,
            "k":{
                "y":13,
                "u":13,
                "o":13,
                "e":13,
                "a":13,
                "Y":13,
                "W":13,
                "U":6,
                "T":13,
                "O":20,
                "C":13,
                ";":-7,
                ":":-7,
                ".":-7,
                "-":11,
                ",":-7
            }
        },
        "L":{
            "d":"14,0r34,-257r22,0r-31,237r99,0r-2,20r-122,0",
            "w":148,
            "k":{
                "y":13,
                "u":6,
                "o":6,
                "e":6,
                "a":6,
                "Y":20,
                "W":20,
                "V":20,
                "U":6,
                "T":20,
                "O":20,
                ";":-7,
                ":":-7,
                ".":-7,
                "-":6,
                ",":-7
            }
        },
        "M":{
            "d":"0,0r79,-264r62,221r119,-221r11,264r-22,0r-6,-194r-109,202r-56,-203r-54,195r-24,0",
            "w":299
        },
        "N":{
            "d":"14,0r35,-264r154,215r28,-208r21,0r-35,264r-154,-215r-27,208r-22,0",
            "w":266,
            "k":{
                ";":10,
                ":":10,
                ".":16,
                ",":16
            }
        },
        "O":{
            "d":"147,-13v74,-2,118,-52,121,-126v2,-62,-44,-107,-106,-105v-74,2,-117,53,-120,126v-2,62,43,107,105,105xm19,-118v3,-89,55,-142,144,-145v77,-2,130,50,128,125v-2,89,-58,143,-147,145v-73,2,-127,-51,-125,-125",
            "w":309,
            "k":{
                "Y":13,
                "X":6,
                "V":6,
                "T":20,
                ";":-7,
                ":":-7,
                ".":15,
                "-":-10,
                ",":15
            }
        },
        "P":{
            "d":"177,-194v0,65,-51,78,-125,74r-16,120r-22,0r34,-257v71,-3,129,0,129,63xm154,-193v0,-43,-37,-47,-86,-44r-13,98v55,2,99,-3,99,-54",
            "w":181,
            "k":{
                "u":13,
                "s":13,
                "r":13,
                "o":20,
                "n":13,
                "i":6,
                "e":20,
                "a":20,
                "A":20,
                ";":16,
                ":":16,
                ".":86,
                "-":34,
                ",":86
            }
        },
        "Q":{
            "d":"42,-118v-4,80,78,127,153,94r-52,-61r26,0r44,52v31,-22,53,-58,55,-106v1,-62,-43,-107,-105,-105v-75,2,-117,53,-121,126xm291,-139v-1,57,-27,97,-64,122r37,43r-26,0r-28,-34v-88,42,-197,-10,-191,-111v5,-88,55,-141,144,-144v76,-2,128,50,128,124",
            "w":309,
            "k":{
                ";":-7,
                ":":-7,
                "-":-10
            }
        },
        "R":{
            "d":"177,-194v0,48,-34,74,-83,74r79,120r-25,0r-79,-120r-17,0r-16,120r-22,0r34,-257v71,-3,128,0,129,63xm154,-193v0,-43,-37,-47,-86,-44r-13,98v55,2,99,-3,99,-54",
            "w":190,
            "k":{
                "u":6,
                "o":6,
                "e":6,
                "a":6,
                "Y":6,
                "T":6,
                "-":10
            }
        },
        "S":{
            "d":"153,-69v0,62,-72,97,-121,62v-13,-9,-23,-21,-31,-39r15,-15v13,26,28,46,61,47v31,1,54,-21,53,-54v-1,-68,-100,-54,-100,-127v0,-71,109,-93,137,-30r-15,13v-17,-46,-103,-39,-101,17v2,65,102,51,102,126",
            "w":179,
            "k":{
                ";":-7,
                ":":-7,
                ".":6,
                "-":-11,
                ",":6
            }
        },
        "T":{
            "d":"58,0r31,-237r-74,0r3,-20r163,0r-2,20r-68,0r-31,237r-22,0",
            "w":174,
            "k":{
                "y":43,
                "w":43,
                "u":36,
                "s":43,
                "r":36,
                "o":43,
                "i":16,
                "e":43,
                "c":43,
                "a":43,
                "O":20,
                "C":20,
                "A":26,
                ";":23,
                ":":23,
                ".":46,
                "-":33,
                ",":46
            }
        },
        "U":{
            "d":"104,8v-128,0,-64,-167,-58,-265r22,0r-23,182v-1,39,23,62,61,62v109,-1,78,-153,102,-244r22,0v-22,107,4,265,-126,265",
            "w":243,
            "k":{
                "A":6,
                ";":11,
                ":":11,
                ".":21,
                "-":10,
                ",":21
            }
        },
        "V":{
            "d":"78,7r-67,-264r23,0r52,209r105,-209r24,0",
            "w":203,
            "k":{
                "y":6,
                "u":23,
                "o":26,
                "i":6,
                "e":26,
                "a":26,
                "O":6,
                "A":13,
                ";":24,
                ":":24,
                ".":60,
                "-":29,
                ",":60
            }
        },
        "W":{
            "d":"74,9r-61,-266r23,0r45,202r89,-210r48,210r87,-202r24,0r-117,266r-47,-212",
            "w":325,
            "k":{
                "y":6,
                "u":26,
                "r":20,
                "o":20,
                "i":13,
                "e":20,
                "a":20,
                "A":6,
                ";":21,
                ":":21,
                ".":44,
                "-":21,
                ",":44
            }
        },
        "X":{
            "d":"-15,0r95,-133r-60,-124r24,0r51,109r76,-109r26,0r-92,129r65,128r-25,0r-55,-112r-77,112r-28,0",
            "w":185,
            "k":{
                "O":13,
                "C":6,
                ";":6,
                ":":6,
                ".":-7,
                "-":18,
                ",":-7
            }
        },
        "Y":{
            "d":"61,0r16,-120r-70,-137r24,0r58,116r80,-116r25,0r-95,138r-16,119r-22,0",
            "w":178,
            "k":{
                "u":31,
                "o":33,
                "i":6,
                "e":33,
                "a":33,
                "O":13,
                "C":13,
                "A":16,
                ";":38,
                ":":38,
                ".":48,
                "-":43,
                ",":48
            }
        },
        "Z":{
            "d":"-8,0r171,-237r-128,0r2,-20r166,0r-171,236r139,0r-3,21r-176,0",
            "w":200,
            "k":{
                ";":-7,
                ":":-7,
                ".":-7,
                "-":6,
                ",":-7
            }
        },
        "[":{
            "d":"22,65r43,-328r48,0r-2,18r-30,0r-38,291r29,0r-2,19r-48,0",
            "w":111
        },
        "\\":{
            "d":"127,33r-18,0r-81,-296r19,0",
            "w":155
        },
        "]":{
            "d":"83,-263r-43,328r-49,0r3,-19r29,0r39,-291r-30,0r3,-18r48,0",
            "w":111
        },
        "^":{
            "d":"190,-256r95,98r-22,0r-83,-83r-83,83r-22,0r94,-98r21,0",
            "w":360
        },
        "_":{
            "d":"180,71r0,14r-180,0r0,-14r180,0",
            "w":180
        },
        "`":{
            "d":"118,-181r-16,0r-49,-62r25,0",
            "w":180
        },
        "a":{
            "d":"89,-144v-66,0,-83,132,-9,133v34,0,57,-35,57,-73v0,-32,-18,-60,-48,-60xm9,-72v0,-78,104,-127,133,-53r4,-31r21,0r-20,156r-21,0r3,-23v-11,18,-28,29,-54,30v-40,1,-66,-37,-66,-79",
            "w":192
        },
        "b":{
            "d":"90,-11v66,4,83,-133,8,-133v-65,-4,-79,132,-8,133xm170,-82v0,77,-106,126,-133,51r-4,31r-21,0r35,-272r21,0r-18,140v12,-17,28,-29,54,-29v40,-1,66,37,66,79",
            "w":192,
            "k":{
                "-":-7
            }
        },
        "c":{
            "d":"30,-73v0,57,66,78,105,43r-5,25v-51,31,-122,-3,-122,-67v0,-71,83,-115,142,-74r-5,20v-42,-37,-115,-8,-115,53",
            "w":159
        },
        "d":{
            "d":"31,-72v0,33,18,61,49,61v35,0,57,-36,57,-74v0,-32,-18,-59,-48,-59v-35,-1,-59,35,-58,72xm9,-73v0,-77,105,-126,133,-52r20,-147r20,0r-35,272r-21,0r3,-23v-12,17,-28,29,-54,30v-41,1,-66,-38,-66,-80",
            "w":192
        },
        "e":{
            "d":"141,-92v5,-50,-54,-66,-86,-39v-11,9,-18,22,-23,39r109,0xm93,-162v49,0,75,35,68,87r-131,0v-10,68,82,82,106,34r15,14v-32,58,-143,37,-143,-41v0,-53,34,-94,85,-94",
            "w":184,
            "k":{
                "-":-7
            }
        },
        "f":{
            "d":"111,-252v-53,-25,-42,57,-51,96r37,0r-3,19r-37,0r-18,137r-21,0r18,-137r-28,0r2,-19r28,0v10,-51,0,-143,75,-115",
            "w":95,
            "k":{
                ".":13,
                ",":13
            }
        },
        "g":{
            "d":"31,-73v0,32,18,59,49,59v35,1,57,-34,57,-72v0,-32,-19,-58,-48,-58v-34,0,-59,33,-58,71xm87,-162v29,1,46,13,55,37r4,-31r21,0v-14,70,-7,171,-44,215v-34,41,-126,14,-120,-41v6,1,16,-2,21,1v-4,41,61,54,84,26v10,-12,17,-45,21,-71v-12,18,-26,30,-54,30v-40,1,-66,-36,-66,-78v0,-47,33,-89,78,-88",
            "w":192,
            "k":{
                ".":6,
                "-":6,
                ",":6
            }
        },
        "h":{
            "d":"133,-98v13,-48,-49,-58,-72,-29v-22,26,-21,85,-28,127r-21,0r35,-272r21,0r-19,141v24,-47,115,-41,105,32r-13,99r-21,0",
            "w":185
        },
        "i":{
            "d":"51,-198v-9,0,-16,-7,-16,-15v0,-9,6,-16,16,-16v9,0,16,7,16,16v0,8,-8,15,-16,15xm13,0r21,-156r21,0r-20,156r-22,0",
            "w":81
        },
        "j":{
            "d":"51,-198v-9,0,-16,-7,-16,-15v0,-9,6,-16,16,-16v9,0,16,7,16,16v0,8,-8,15,-16,15xm3,78r31,-234r21,0r-31,234r-21,0",
            "w":81
        },
        "k":{
            "d":"12,0r35,-272r21,0r-24,184r86,-68r33,0r-93,72r76,84r-26,0r-76,-83r-11,83r-21,0",
            "w":162,
            "k":{
                "-":15
            }
        },
        "l":{
            "d":"13,0r36,-272r21,0r-36,272r-21,0",
            "w":81
        },
        "m":{
            "d":"47,-131v17,-36,92,-45,100,3v13,-19,28,-34,56,-34v73,2,33,105,30,162r-20,0r13,-113v4,-37,-51,-39,-67,-15v-18,28,-19,86,-26,128r-21,0r14,-112v4,-38,-51,-41,-67,-16v-19,28,-19,87,-27,128r-20,0r20,-156r20,0",
            "w":278
        },
        "n":{
            "d":"133,-98v13,-48,-49,-58,-72,-29v-22,26,-21,85,-28,127r-21,0r20,-156r21,0r-4,25v24,-47,115,-41,105,32r-13,99r-21,0",
            "w":185
        },
        "o":{
            "d":"153,-82v1,-35,-24,-61,-58,-61v-38,0,-65,33,-65,71v0,35,25,60,58,60v38,0,64,-32,65,-70xm88,7v-46,0,-80,-32,-80,-78v0,-51,39,-92,89,-91v45,0,79,32,79,78v0,51,-38,92,-88,91",
            "w":196,
            "k":{
                "-":-7
            }
        },
        "p":{
            "d":"90,-11v66,4,83,-133,8,-133v-65,-4,-80,133,-8,133xm92,7v-29,-1,-46,-13,-55,-37r-15,108r-21,0r31,-234r21,0r-4,24v14,-17,28,-30,55,-30v41,-1,66,38,66,80v0,48,-33,90,-78,89",
            "w":192,
            "k":{
                "-":-7
            }
        },
        "q":{
            "d":"89,-144v-66,0,-83,132,-9,133v34,0,57,-35,57,-73v0,-32,-18,-60,-48,-60xm9,-72v0,-78,104,-127,133,-53r4,-31r21,0r-31,234r-21,0r14,-101v-12,17,-27,30,-54,30v-40,1,-66,-37,-66,-79",
            "w":192
        },
        "r":{
            "d":"109,-137v-70,-25,-67,75,-76,137r-21,0r20,-156r21,0r-4,26v14,-21,34,-39,65,-29",
            "w":110,
            "k":{
                ".":36,
                "-":13,
                ",":36
            }
        },
        "s":{
            "d":"117,-42v0,61,-96,61,-118,18r13,-13v14,29,79,39,85,-2v-3,-42,-77,-27,-77,-76v0,-53,75,-59,103,-24r-13,14v-14,-24,-71,-29,-71,8v0,33,78,30,78,75",
            "w":141,
            "k":{
                "-":-7
            }
        },
        "t":{
            "d":"32,-137r-25,0r2,-19r26,0r8,-64r21,0r-8,64r32,0r-3,19r-32,0r-18,137r-21,0",
            "w":87,
            "k":{
                "-":8
            }
        },
        "u":{
            "d":"129,-13v-34,38,-120,22,-111,-47r13,-96r21,0r-13,110v-3,38,56,42,74,18v18,-25,20,-88,27,-128r21,0r-10,77v-5,35,-7,49,-22,66",
            "w":185
        },
        "v":{
            "d":"55,10r-55,-166r23,0r37,122r70,-122r24,0",
            "w":156,
            "k":{
                ".":28,
                ",":28
            }
        },
        "w":{
            "d":"53,10r-52,-166r23,0r34,117r60,-128r29,127r66,-116r23,0r-96,166r-29,-125",
            "w":233,
            "k":{
                ".":26,
                "-":-7,
                ",":26
            }
        },
        "x":{
            "d":"-11,0r66,-80r-47,-76r23,0r38,64r51,-64r28,0r-68,79r47,77r-24,0r-37,-64r-50,64r-27,0",
            "w":145,
            "k":{
                "-":11
            }
        },
        "y":{
            "d":"15,78r-23,0r54,-90r-45,-144r23,0r36,123r71,-123r24,0",
            "w":156,
            "k":{
                ".":31,
                "-":6,
                ",":31
            }
        },
        "z":{
            "d":"-10,0r113,-137r-91,0r2,-19r128,0r-112,137r95,0r-2,19r-133,0",
            "w":143
        },
        "{":{
            "d":"84,-151v-1,-64,-6,-118,65,-109v-1,6,4,18,-6,16v-83,-13,-2,140,-75,151v41,6,33,55,34,104v0,39,9,46,47,46v-1,7,4,19,-7,16v-65,7,-58,-48,-58,-108v0,-39,-16,-54,-53,-50r0,-16v39,2,54,-11,53,-50",
            "w":180
        },
        "|":{
            "d":"98,-275r0,360r-16,0r0,-360r16,0",
            "w":180
        },
        "}":{
            "d":"31,-260v69,-8,67,44,65,109v-1,39,14,52,53,50r0,16v-55,-10,-55,39,-53,92v2,53,-13,67,-65,66v1,-7,-4,-18,7,-16v82,14,0,-139,74,-150v-41,-7,-33,-56,-34,-105v0,-39,-10,-46,-47,-46r0,-16",
            "w":180
        },
        "~":{
            "d":"99,-126v26,-2,78,25,102,24v28,-2,46,-12,68,-28r0,16v-33,26,-72,34,-119,14v-48,-22,-83,-12,-119,15r0,-16v21,-14,39,-24,68,-25",
            "w":299
        },
        "\u00a0":{
            "w":100
        }
    }
});


/*!
 * The following copyright notice may not be removed under any circumstances.
 *
 * Copyright:
 * Copyright (c) Andrew Paglinawan, 2008. All rights reserved.
 *
 * Trademark:
 * Dashling is a trademark of the Andrew Paglinawan.
 *
 * Full name:
 * QuicksandBook-Regular
 *
 * Manufacturer:
 * Andrew Paglinawan
 *
 * Designer:
 * Andrew Paglinawan
 */
Cufon.registerFont({
    "w":237,
    "face":{
        "font-family":"Quicksand Book",
        "font-weight":400,
        "font-stretch":"normal",
        "units-per-em":"360",
        "panose-1":"2 7 3 3 0 0 0 6 0 0",
        "ascent":"288",
        "descent":"-72",
        "bbox":"-8.5 -289 381.785 74",
        "underline-thickness":"18",
        "underline-position":"-18",
        "unicode-range":"U+0020-U+007E"
    },
    "glyphs":{
        " ":{
            "w":108
        },
        "B":{
            "d":"37,-9r0,-234v6,-18,44,-7,65,-9v58,-5,85,80,39,112v28,10,49,36,49,68v0,40,-32,72,-72,72r-72,0v-5,0,-9,-4,-9,-9xm55,-18r63,0v30,0,54,-24,54,-54v0,-55,-58,-58,-117,-54r0,108xm55,-144v47,4,92,-2,92,-45v0,-43,-45,-49,-92,-45r0,90",
            "w":213,
            "k":{
                "?":2,
                "A":7,
                "y":4,
                "w":4,
                "v":14,
                "i":14,
                "Y":11,
                "X":7,
                "W":5,
                "V":7,
                "T":7,
                "I":4,
                "B":25
            }
        },
        "C":{
            "d":"26,-127v0,-105,132,-168,213,-101v9,7,-3,22,-11,15v-68,-58,-184,-6,-184,86v0,88,115,143,183,85v9,-7,22,7,12,15v-80,65,-213,3,-213,-100",
            "w":277,
            "k":{
                "-":4,
                "A":5,
                "y":4,
                "x":4,
                "w":4,
                "v":4,
                "q":4,
                "o":4,
                "l":12,
                "g":4,
                "e":4,
                "d":4,
                "c":4,
                "Y":7,
                "X":4,
                "Q":7,
                "O":7,
                "G":7,
                "C":7
            }
        },
        "D":{
            "d":"219,-126v0,86,-72,139,-174,126v-4,0,-8,-4,-8,-9r0,-234v4,-18,37,-9,56,-9v69,0,126,57,126,126xm55,-18v86,10,147,-34,147,-108v0,-73,-61,-118,-147,-108r0,216",
            "w":258,
            "k":{
                "}":7,
                "]":7,
                "\\":14,
                ",":14,
                "\/":14,
                "?":7,
                ".":14,
                "A":23,
                ")":11,
                "x":4,
                "w":8,
                "a":32,
                "Z":16,
                "Y":23,
                "X":20,
                "W":13,
                "V":16,
                "T":20,
                "S":4,
                "R":7,
                "O":5,
                "N":22,
                "J":14,
                "I":18,
                "H":18,
                "E":18,
                "D":11
            }
        },
        "E":{
            "d":"37,-9r0,-234v0,-5,4,-9,10,-9r129,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-121,0r0,99r106,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-106,0r0,99r121,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-131,0v-4,0,-8,-4,-8,-9",
            "w":213,
            "k":{
                "y":4,
                "w":4,
                "v":4,
                "o":4,
                "e":4,
                "d":4,
                "c":4,
                "R":-7
            }
        },
        "F":{
            "d":"37,-9r0,-234v0,-5,4,-9,10,-9r129,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-121,0r0,99r106,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-106,0r0,108v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9",
            "w":217,
            "k":{
                ",":36,
                "\/":25,
                "?":-4,
                ".":36,
                "A":29,
                "z":5,
                "y":5,
                "w":4,
                "v":5,
                "u":26,
                "s":4,
                "q":4,
                "o":26,
                "m":26,
                "g":4,
                "e":5,
                "d":4,
                "c":5,
                "a":9,
                "&":11,
                "Z":4,
                "Q":7,
                "O":7,
                "J":40,
                "G":7,
                "C":7
            }
        },
        "G":{
            "d":"242,-36v-13,29,-54,36,-85,36v-72,0,-131,-57,-131,-128v0,-103,133,-168,213,-99v8,6,-3,21,-11,14v-67,-58,-184,-4,-184,85v0,87,108,142,180,89r0,-74r-69,0v-5,0,-9,-4,-9,-9v0,-5,4,-9,9,-9r79,0v4,0,8,4,8,9r0,86",
            "w":293,
            "k":{
                "\\":5,
                "?":4,
                "y":2,
                "w":19,
                "v":2,
                "o":7,
                "a":-4,
                "Y":11,
                "X":4,
                "W":5,
                "V":7,
                "T":7,
                "L":18,
                "H":16,
                "F":18
            }
        },
        "H":{
            "d":"185,-9r0,-108r-130,0r0,108v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-234v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,108r130,0r0,-108v0,-5,3,-9,8,-9v5,0,9,4,9,9r0,234v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9",
            "w":255,
            "k":{
                "A":23,
                "Y":16,
                "W":18,
                "O":11,
                "I":18
            }
        },
        "I":{
            "d":"40,-243v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,234v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-234",
            "w":109
        },
        "J":{
            "d":"17,-59v-1,-5,0,-10,5,-11v5,-1,10,1,11,5v9,28,35,47,65,47v37,0,68,-30,68,-67r0,-158v0,-5,4,-9,9,-9v5,0,8,4,8,9r0,158v0,48,-38,85,-85,85v-38,0,-70,-25,-81,-59",
            "w":213,
            "k":{
                ",":5,
                ".":5,
                "A":9,
                "i":-11,
                "h":-8,
                "e":-15,
                "a":-19,
                "J":7
            }
        },
        "K":{
            "d":"37,-9r0,-233v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,146r152,-153v9,-7,22,4,13,13r-97,96r99,126v5,5,-1,14,-7,14v-3,0,-5,0,-7,-3r-97,-124r-56,55r0,63v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9",
            "w":257,
            "k":{
                "-":18,
                "y":18,
                "w":18,
                "v":22,
                "u":7,
                "t":9,
                "q":9,
                "o":11,
                "g":9,
                "f":7,
                "e":11,
                "d":9,
                "c":11,
                "a":4,
                "&":4,
                "Y":14,
                "W":11,
                "V":11,
                "U":5,
                "T":4,
                "S":4,
                "Q":18,
                "O":18,
                "G":18,
                "C":18,
                "B":16
            }
        },
        "L":{
            "d":"176,0r-130,0v-5,0,-9,-4,-9,-9r0,-234v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,225r121,0v5,0,9,4,9,9v0,5,-4,9,-9,9",
            "w":202,
            "k":{
                "\\":43,
                "*":29,
                "-":14,
                "?":22,
                "w":18,
                "v":22,
                "t":7,
                "q":2,
                "o":4,
                "g":2,
                "f":7,
                "e":4,
                "d":2,
                "c":4,
                "&":4,
                "Y":47,
                "W":36,
                "V":41,
                "U":7,
                "T":36,
                "Q":14,
                "O":14,
                "I":-2,
                "G":14,
                "C":14
            }
        },
        "M":{
            "d":"232,-9r0,-207r-81,112v-3,6,-11,6,-15,0r-81,-112r0,207v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-233v0,-8,12,-12,17,-5r90,124r89,-124v5,-7,17,-3,16,5r0,233v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9",
            "w":303,
            "k":{
                "A":23,
                "P":18,
                "O":16,
                "M":12,
                "E":18
            }
        },
        "N":{
            "d":"224,-9v1,9,-14,13,-17,4r-151,-210r0,206v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9r0,-231v-3,-8,10,-15,15,-7r153,211r0,-205v0,-5,3,-8,8,-8v5,0,9,3,9,8r0,232",
            "w":277,
            "k":{
                "Y":16,
                "U":18,
                "T":4,
                "O":18,
                "N":12,
                "I":13,
                "G":18,
                "E":23,
                "D":18
            }
        },
        "O":{
            "d":"26,-128v0,-71,54,-128,122,-128v67,0,121,57,121,128v0,71,-54,128,-121,128v-68,0,-122,-57,-122,-128xm44,-128v0,62,47,110,104,110v55,0,103,-48,103,-110v0,-62,-48,-110,-103,-110v-57,0,-104,48,-104,110",
            "w":306,
            "k":{
                "}":7,
                "]":7,
                "\\":14,
                ",":14,
                "\/":14,
                "?":7,
                ".":14,
                "A":14,
                ")":11,
                "x":2,
                "Z":14,
                "Y":22,
                "X":18,
                "W":13,
                "V":14,
                "U":16,
                "T":20,
                "S":2,
                "O":4,
                "N":9,
                "M":14,
                "L":2,
                "K":11,
                "J":11,
                "I":18,
                "H":14,
                "D":11,
                "C":11,
                "B":13
            }
        },
        "P":{
            "d":"37,-9r0,-234v0,-5,4,-9,10,-9r70,0v40,0,72,32,72,72v0,40,-32,72,-72,72r-62,0r0,99v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9xm55,-125r62,0v30,0,55,-25,55,-55v0,-54,-58,-58,-117,-54r0,109",
            "w":209,
            "k":{
                ",":36,
                "\/":22,
                ".":36,
                "A":25,
                "y":-4,
                "w":-4,
                "v":-4,
                "u":-2,
                "t":-5,
                "o":5,
                "g":8,
                "f":11,
                "e":4,
                "d":8,
                "c":2,
                "&":7,
                "Z":5,
                "Y":4,
                "X":11,
                "W":2,
                "V":4,
                "J":36
            }
        },
        "Q":{
            "d":"155,8v43,13,79,46,122,8v4,-3,9,-2,12,2v3,4,3,10,-1,13v-20,15,-39,21,-57,21v-41,1,-86,-46,-127,-21v-6,4,-12,0,-13,-4v-2,-19,26,-18,38,-27v-60,-8,-105,-63,-105,-127v0,-70,54,-129,121,-129v67,0,121,59,121,129v0,71,-53,116,-111,135xm42,-127v0,61,47,110,103,110v56,0,103,-49,103,-110v0,-62,-47,-110,-103,-110v-56,0,-103,48,-103,110",
            "w":303,
            "k":{
                "?":7,
                ")":4,
                "Y":23,
                "W":13,
                "V":14,
                "T":20
            }
        },
        "R":{
            "d":"191,-4v-25,0,-26,-21,-28,-53v-3,-51,-56,-55,-113,-51r0,99v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-234v0,-5,4,-10,10,-9r70,0v76,-4,97,111,31,137v18,10,37,28,37,58v0,28,4,32,17,41v1,5,-1,10,-6,12xm167,-180v0,-54,-58,-58,-117,-54r0,108v59,4,117,1,117,-54",
            "w":225,
            "k":{
                "t":-4,
                "q":2,
                "o":4,
                "g":2,
                "f":-4,
                "e":4,
                "d":2,
                "c":4,
                "Y":9,
                "W":5,
                "V":7,
                "U":22,
                "T":7,
                "O":6,
                "J":2
            }
        },
        "S":{
            "d":"68,-225v-47,36,1,79,53,85v44,5,92,24,92,70v0,43,-46,71,-93,70v-39,0,-72,-19,-93,-36v-3,-3,-4,-8,-1,-11v3,-4,8,-4,11,-1v36,40,155,48,160,-22v-10,-77,-165,-32,-165,-120v0,-40,43,-66,87,-66v33,0,58,17,78,30v4,3,5,7,2,11v-2,4,-7,5,-11,2v-29,-25,-86,-38,-120,-12",
            "w":240,
            "k":{
                "\\":7,
                "?":4,
                "A":5,
                "z":2,
                "y":5,
                "x":5,
                "w":4,
                "v":5,
                "t":2,
                "f":2,
                "Z":4,
                "Y":11,
                "X":9,
                "W":9,
                "V":11,
                "T":5,
                "S":4
            }
        },
        "T":{
            "d":"103,-9r0,-225r-76,0v-5,0,-9,-4,-9,-9v0,-5,4,-9,9,-9r169,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-76,0r0,225v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9",
            "w":233,
            "k":{
                ",":36,
                ";":18,
                ":":18,
                "\/":32,
                "-":32,
                ".":36,
                "A":34,
                "z":40,
                "y":36,
                "x":36,
                "w":36,
                "v":36,
                "u":36,
                "t":18,
                "s":41,
                "r":36,
                "q":45,
                "p":36,
                "o":49,
                "n":36,
                "m":36,
                "l":5,
                "j":14,
                "i":14,
                "h":7,
                "g":45,
                "f":18,
                "e":49,
                "d":45,
                "c":49,
                "a":49,
                "&":25,
                "Z":7,
                "S":5,
                "Q":20,
                "O":20,
                "J":40,
                "G":20,
                "D":5,
                "C":20
            }
        },
        "U":{
            "d":"38,-243v0,-5,3,-9,8,-9v5,0,9,4,9,9r0,141v0,46,38,84,84,84v47,0,85,-38,85,-84r0,-141v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,141v0,56,-46,102,-103,102v-56,0,-101,-46,-101,-102r0,-141",
            "w":293,
            "k":{
                ",":5,
                "\/":5,
                ".":5,
                "A":18,
                "x":2,
                "Z":16,
                "X":4,
                "W":18,
                "T":11,
                "R":9,
                "O":14,
                "N":5,
                "M":18,
                "L":17,
                "K":18,
                "J":7,
                "I":18,
                "H":18,
                "F":18,
                "E":18,
                "D":11
            }
        },
        "V":{
            "d":"137,-8v0,9,-16,11,-17,2r-98,-232v-4,-9,11,-19,16,-8r90,215r91,-215v1,-4,7,-6,11,-4v4,2,6,8,4,12",
            "w":270,
            "k":{
                ",":43,
                ";":7,
                ":":7,
                "\/":43,
                "-":14,
                ".":43,
                "A":49,
                "z":20,
                "y":14,
                "x":18,
                "w":13,
                "v":14,
                "u":14,
                "t":7,
                "s":22,
                "r":14,
                "q":23,
                "p":14,
                "o":25,
                "n":14,
                "m":14,
                "l":4,
                "j":7,
                "i":7,
                "g":23,
                "f":9,
                "e":25,
                "d":23,
                "c":25,
                "a":25,
                "&":20,
                "Z":4,
                "Y":7,
                "X":7,
                "W":4,
                "V":4,
                "S":9,
                "Q":14,
                "O":14,
                "J":43,
                "I":18,
                "G":14,
                "E":11,
                "C":14
            }
        },
        "W":{
            "d":"283,-6v-2,8,-14,7,-17,0r-64,-152r-67,157v-5,3,-14,0,-14,-6r-97,-231v-5,-10,11,-18,16,-8r90,215r64,-152v4,-7,13,-6,17,0r64,152r90,-215v2,-4,7,-6,12,-4v4,2,6,8,4,12",
            "w":396,
            "k":{
                ",":36,
                ";":5,
                ":":5,
                "\/":36,
                "-":13,
                ".":36,
                "A":43,
                "z":20,
                "y":13,
                "x":14,
                "w":13,
                "v":13,
                "u":13,
                "t":9,
                "s":22,
                "r":13,
                "q":22,
                "p":13,
                "o":23,
                "n":13,
                "m":13,
                "l":4,
                "j":5,
                "i":5,
                "g":22,
                "f":11,
                "e":23,
                "d":22,
                "c":23,
                "a":25,
                "&":16,
                "Z":4,
                "Y":7,
                "X":5,
                "W":4,
                "V":4,
                "S":7,
                "Q":13,
                "O":13,
                "J":38,
                "I":18,
                "G":13,
                "E":7,
                "C":13
            }
        },
        "X":{
            "d":"36,0v-6,0,-11,-8,-6,-14r81,-111r-81,-112v-3,-4,-3,-9,1,-12v4,-3,9,-2,12,2r78,107r78,-107v3,-4,9,-5,13,-2v4,3,4,8,1,12r-81,112r81,111v5,6,0,14,-6,14v-3,0,-6,-1,-8,-4r-78,-107r-78,107v-1,3,-4,4,-7,4",
            "w":259,
            "k":{
                "-":18,
                "?":5,
                "A":18,
                "y":14,
                "w":14,
                "v":18,
                "u":7,
                "t":7,
                "q":14,
                "o":16,
                "l":4,
                "j":4,
                "i":4,
                "g":14,
                "f":7,
                "e":16,
                "d":14,
                "c":16,
                "a":4,
                "&":4,
                "Y":7,
                "W":5,
                "V":7,
                "U":18,
                "S":11,
                "Q":18,
                "O":18,
                "J":4,
                "I":18,
                "G":18,
                "E":16,
                "C":18
            }
        },
        "Y":{
            "d":"107,-9r0,-112r-85,-116v-3,-4,-2,-9,2,-12v4,-3,9,-2,12,2r79,108r79,-108v3,-4,8,-5,12,-2v4,3,5,8,2,12r-84,115r0,113v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9",
            "w":217,
            "k":{
                ",":47,
                ";":14,
                ":":14,
                "\/":40,
                "-":29,
                ".":47,
                "A":17,
                "z":29,
                "y":22,
                "x":25,
                "w":20,
                "v":22,
                "u":27,
                "t":11,
                "s":36,
                "r":27,
                "q":38,
                "p":27,
                "o":40,
                "n":27,
                "m":27,
                "l":4,
                "j":7,
                "i":7,
                "g":38,
                "f":14,
                "e":40,
                "d":38,
                "c":40,
                "a":36,
                "&":25,
                "Z":4,
                "X":7,
                "W":7,
                "V":7,
                "S":13,
                "R":-11,
                "Q":22,
                "O":22,
                "L":-18,
                "J":47,
                "I":-18,
                "G":22,
                "C":22
            }
        },
        "Z":{
            "d":"35,0v-8,1,-10,-10,-6,-15r159,-218r-153,0v-5,0,-8,-4,-8,-9v0,-5,3,-9,8,-9r177,4v3,3,3,7,0,10r-160,219r154,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-171,0",
            "w":240,
            "k":{
                "-":11,
                "y":5,
                "w":5,
                "v":7,
                "q":7,
                "o":9,
                "g":7,
                "f":4,
                "e":9,
                "d":7,
                "c":9,
                "&":5,
                "Z":4,
                "T":-13,
                "S":4,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "&":{
            "d":"202,-145v5,24,-5,40,-21,46v11,54,-31,97,-81,99v-78,3,-111,-111,-47,-150v-36,-36,-6,-102,45,-102v33,0,61,27,61,61v0,5,-4,8,-9,8v-5,0,-9,-3,-9,-8v0,-24,-19,-43,-43,-43v-24,0,-43,19,-43,43v-6,22,34,37,15,51v-57,25,-38,125,30,122v40,-2,73,-35,63,-79v-35,-4,-64,5,-57,36v1,6,-3,11,-8,12v-10,-2,-11,-5,-11,-19v0,-35,37,-52,84,-47v22,3,6,-30,21,-37v5,-1,9,3,10,7",
            "w":250,
            "k":{
                "Y":25,
                "W":18,
                "V":22,
                "T":32,
                "S":4
            }
        },
        "\u00a0":{
            "w":108
        },
        "0":{
            "d":"111,0v-116,-5,-116,-247,0,-252v115,5,115,248,0,252xm159,-204v-51,-72,-118,1,-118,78v0,78,69,148,118,78v26,-37,26,-119,0,-156",
            "w":255,
            "k":{
                ",":7,
                "\/":13,
                ".":7,
                "7":11,
                "3":4,
                "2":4,
                "1":2
            }
        },
        "1":{
            "d":"61,-9r0,-217v-16,5,-32,27,-48,18v-3,-5,0,-10,4,-12r48,-30v6,-3,13,2,13,10r0,231v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9",
            "w":120
        },
        "2":{
            "d":"26,-219v43,-62,150,-27,150,49v0,22,-9,44,-27,61r-101,91r119,0v5,0,9,4,9,9v0,5,-4,9,-9,9v-48,-2,-105,5,-148,-3v-3,-4,-4,-8,0,-12r118,-107v46,-37,13,-112,-43,-112v-22,0,-43,13,-56,27v-4,4,-9,4,-12,0v-4,-4,-4,-9,0,-12",
            "w":212,
            "k":{
                "7":5,
                "4":11
            }
        },
        "3":{
            "d":"157,-86v0,-34,-33,-68,-67,-67v-7,0,-16,-10,-8,-17r63,-64r-97,0v-5,0,-9,-4,-9,-9v0,-5,4,-9,9,-9r118,0v8,0,12,11,6,16r-65,67v36,6,68,44,68,83v0,70,-94,118,-146,61v-4,-3,-4,-9,0,-13v3,-4,9,-4,13,0v40,44,115,8,115,-48",
            "w":219,
            "k":{
                "\/":4,
                "9":2,
                "7":9,
                "5":2
            }
        },
        "4":{
            "d":"173,0v-17,-3,-6,-35,-9,-52r-143,-2v-4,-3,-4,-8,-1,-12r146,-182v6,-7,16,-1,16,6r0,173v11,0,26,-3,26,9v0,11,-15,7,-26,8v-3,18,8,49,-9,52xm45,-69r119,0r0,-148",
            "w":239,
            "k":{
                "\/":7,
                "9":4,
                "7":14,
                "1":7
            }
        },
        "5":{
            "d":"171,-85v0,70,-95,116,-146,60v-4,-4,-4,-9,0,-12v4,-4,9,-4,13,0v41,43,115,7,115,-48v0,-58,-75,-92,-115,-48v-7,7,-17,1,-15,-9r12,-101v0,-6,4,-9,10,-9r117,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-110,0r-9,75v57,-36,128,14,128,74",
            "w":217,
            "k":{
                "\/":7,
                "9":2,
                "7":11,
                "3":2,
                "2":4
            }
        },
        "6":{
            "d":"107,0v-51,-1,-86,-41,-84,-97v3,-73,35,-155,113,-155v5,0,9,4,9,9v0,5,-4,9,-9,9v-54,2,-81,47,-91,96v44,-56,145,-20,145,55v0,46,-37,83,-83,83xm107,-149v-38,1,-71,33,-65,74v4,32,32,57,65,57v37,0,66,-29,66,-65v0,-36,-29,-66,-66,-66",
            "w":231,
            "k":{
                "\/":4,
                "9":4,
                "7":9,
                "3":4,
                "1":7
            }
        },
        "7":{
            "d":"165,-251v8,-1,14,8,9,14r-97,232v-5,11,-20,2,-17,-7r93,-221r-121,0v-5,0,-9,-4,-9,-9v0,-5,4,-9,9,-9r133,0",
            "w":211,
            "k":{
                ",":36,
                "\/":50,
                "-":11,
                ".":36,
                "9":5,
                "8":4,
                "6":7,
                "5":9,
                "4":31,
                "3":7,
                "2":5,
                "1":-4,
                "0":7
            }
        },
        "8":{
            "d":"70,-157v-39,-26,-19,-95,32,-95v50,0,70,70,30,95v30,12,51,41,51,75v0,45,-36,82,-81,82v-45,0,-82,-37,-82,-82v0,-34,20,-63,50,-75xm37,-82v0,36,29,65,65,65v36,0,64,-29,64,-65v0,-35,-28,-64,-64,-64v-36,0,-65,29,-65,64xm67,-200v0,19,16,36,35,36v19,0,35,-17,35,-36v0,-19,-16,-35,-35,-35v-19,0,-35,16,-35,35",
            "w":226,
            "k":{
                "9":2,
                "7":4
            }
        },
        "9":{
            "d":"190,-179v8,88,-27,176,-112,179v-5,0,-9,-3,-9,-8v0,-5,4,-10,9,-10v55,-1,83,-46,92,-96v-44,55,-146,21,-146,-55v0,-46,37,-83,83,-83v43,0,79,32,83,73xm107,-104v37,0,66,-28,66,-65v0,-36,-29,-65,-66,-65v-36,0,-66,29,-66,65v0,37,30,65,66,65",
            "w":231,
            "k":{
                ",":4,
                "\/":9,
                ".":4,
                "7":9,
                "5":2,
                "3":4,
                "2":4
            }
        },
        "a":{
            "d":"173,-176v5,0,8,3,8,8r0,159v0,5,-3,9,-8,9v-14,-1,-8,-22,-9,-35v-41,66,-150,29,-150,-53v0,-80,108,-120,150,-54v1,-13,-5,-34,9,-34xm98,-17v36,0,66,-31,66,-71v0,-40,-30,-71,-66,-71v-36,0,-66,31,-66,71v0,40,30,71,66,71",
            "w":222,
            "k":{
                "\\":27,
                "*":5,
                "?":13,
                "y":-11,
                "w":7,
                "v":7,
                "n":4,
                "l":-5,
                "j":-43,
                "g":-13
            }
        },
        "b":{
            "d":"33,-9r0,-234v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,101v42,-64,153,-29,153,54v0,81,-110,119,-153,54v4,18,-6,49,-18,25xm119,-159v-37,0,-68,30,-68,71v0,39,31,70,68,70v37,0,67,-31,67,-70v0,-39,-30,-71,-67,-71",
            "k":{
                "}":5,
                "]":7,
                "\\":25,
                "*":5,
                ",":4,
                "?":13,
                ".":4,
                ")":11,
                "z":5,
                "y":9,
                "x":11,
                "w":7,
                "v":9
            }
        },
        "c":{
            "d":"169,-31v3,24,-36,31,-57,31v-50,1,-91,-39,-91,-89v0,-71,92,-113,147,-68v4,3,4,8,1,12v-19,6,-35,-19,-57,-14v-41,0,-74,31,-74,70v0,58,74,94,119,56v4,-3,9,-1,12,2",
            "w":205,
            "k":{
                "\\":14,
                "?":5,
                ")":5,
                "y":2,
                "x":4,
                "w":2,
                "v":2,
                "q":4,
                "o":5,
                "g":4,
                "e":5,
                "d":4,
                "c":5
            }
        },
        "d":{
            "d":"184,0v-14,0,-8,-21,-9,-34v-42,64,-153,28,-153,-54v0,-82,110,-119,153,-54r0,-101v0,-5,4,-9,9,-9v5,0,8,4,8,9r0,234v0,5,-3,9,-8,9xm107,-18v38,-1,70,-31,68,-73v-1,-38,-32,-68,-68,-68v-37,0,-68,32,-68,71v0,39,31,70,68,70",
            "k":{
                "e":5
            }
        },
        "e":{
            "d":"107,0v-48,0,-86,-40,-86,-88v0,-49,38,-88,86,-88v45,0,82,36,85,83v0,5,-4,8,-9,8r-145,0v0,67,94,93,125,36v6,-10,21,0,15,9v-15,24,-41,40,-71,40xm173,-102v-10,-74,-124,-73,-134,0r134,0",
            "w":219,
            "k":{
                "}":4,
                "]":7,
                "\\":29,
                "*":7,
                ",":4,
                "?":14,
                ".":4,
                ")":11,
                "z":5,
                "y":-11,
                "x":11,
                "w":9,
                "v":9,
                "t":14,
                "r":8
            }
        },
        "f":{
            "d":"55,-179v-4,-43,9,-74,48,-73v5,0,8,4,8,9v0,5,-3,9,-8,9v-33,-2,-29,22,-30,55v18,-4,49,5,25,17r-25,0r0,154v0,5,-4,8,-9,8v-5,0,-9,-3,-9,-8r0,-154v-17,5,-46,-7,-23,-17r23,0",
            "w":130,
            "k":{
                "}":-11,
                "]":-7,
                "\\":-11,
                "*":-11,
                ",":16,
                "\/":16,
                "?":-13,
                ".":16,
                ")":-11,
                "z":4,
                "q":4,
                "o":4,
                "g":4,
                "e":4,
                "d":4,
                "c":4,
                "a":5
            }
        },
        "g":{
            "d":"188,-168r0,154v1,58,-64,102,-120,74v-4,-3,-6,-7,-4,-11v9,-13,24,6,40,2v45,-2,72,-36,66,-87v-41,65,-148,30,-148,-53v0,-81,106,-118,148,-53v-4,-18,4,-49,18,-26xm104,-18v36,0,66,-31,66,-71v0,-39,-30,-70,-66,-70v-36,0,-65,31,-65,70v0,40,29,71,65,71",
            "k":{
                "\\":18
            }
        },
        "h":{
            "d":"51,-6v-2,9,-19,7,-18,-3r0,-234v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,93v36,-49,130,-24,130,43r0,98v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-98v0,-31,-25,-52,-56,-52v-31,0,-56,21,-56,52r0,101",
            "w":220,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "y":5,
                "w":5,
                "v":7,
                "a":-14
            }
        },
        "i":{
            "d":"34,-168v0,-5,3,-8,8,-8v5,0,9,3,9,8r0,159v0,5,-4,9,-9,9v-5,0,-8,-4,-8,-9r0,-159xm34,-217v-5,-17,15,-23,17,-8v5,16,-16,24,-17,8",
            "w":101,
            "k":{
                "l":8
            }
        },
        "j":{
            "d":"30,-208v-13,0,-12,-27,0,-26v8,0,9,8,8,17v0,5,-3,9,-8,9xm-2,60v1,-13,22,-6,22,-22r0,-205v0,-5,4,-9,9,-9v5,0,8,4,8,9r0,205v3,20,-30,44,-39,22",
            "w":89,
            "k":{
                "a":7
            }
        },
        "k":{
            "d":"33,-9r0,-234v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,169r105,-104v4,-4,8,-4,12,0v4,3,4,8,0,12r-68,68r68,84v5,5,0,14,-6,14v-3,0,-6,0,-7,-3r-68,-82r-36,36v-3,17,7,46,-9,49v-5,0,-9,-4,-9,-9",
            "w":201,
            "k":{
                "\\":14,
                "-":7,
                "y":5,
                "w":7,
                "v":7,
                "u":4,
                "t":4,
                "q":9,
                "o":9,
                "g":9,
                "e":9,
                "d":9,
                "c":9,
                "a":4
            }
        },
        "l":{
            "d":"36,-243v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,234v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-234",
            "w":89,
            "k":{
                "y":-23,
                "e":-16
            }
        },
        "m":{
            "d":"50,-8v1,10,-15,10,-17,2r0,-162v0,-10,18,-11,17,0r0,17v29,-37,99,-30,118,12v30,-62,135,-39,135,35r0,96v0,4,-4,8,-9,8v-5,0,-8,-4,-8,-8r0,-96v-1,-30,-25,-55,-55,-55v-30,0,-54,25,-54,55r0,97v-2,8,-18,10,-18,-1r0,-96v0,-30,-24,-55,-54,-55v-30,0,-55,25,-55,55r0,96",
            "w":342,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "y":5,
                "w":5,
                "v":7
            }
        },
        "n":{
            "d":"50,-9v3,11,-14,11,-16,4v-3,-49,0,-108,-1,-162v0,-5,4,-9,9,-9v11,0,7,15,8,26v37,-50,127,-20,127,46r0,95v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-95v0,-30,-24,-55,-54,-55v-30,0,-55,25,-55,55r0,95",
            "w":220,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "y":5,
                "w":5,
                "v":7,
                "d":7
            }
        },
        "o":{
            "d":"25,-88v0,-48,38,-88,84,-88v46,0,83,40,83,88v0,48,-37,88,-83,88v-46,0,-84,-40,-84,-88xm42,-88v0,39,31,71,67,71v36,0,66,-32,66,-71v0,-39,-30,-71,-66,-71v-36,0,-67,32,-67,71",
            "w":225,
            "k":{
                "}":5,
                "]":7,
                "\\":29,
                "*":7,
                ",":7,
                "?":18,
                ".":7,
                ")":11,
                "z":7,
                "y":-16,
                "x":13,
                "w":14,
                "v":11,
                "u":6,
                "t":7,
                "r":7,
                "f":13
            }
        },
        "p":{
            "d":"33,65r0,-233v0,-5,4,-8,9,-8v14,0,8,21,9,34v42,-64,152,-28,152,53v0,81,-110,120,-152,53r0,101v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9xm118,-159v-37,1,-67,30,-67,70v0,39,31,71,67,71v37,0,68,-32,68,-71v0,-39,-31,-70,-68,-70",
            "k":{
                "}":5,
                "]":7,
                "\\":25,
                "*":5,
                ",":4,
                "?":13,
                ".":4,
                ")":11,
                "z":5,
                "y":9,
                "x":11,
                "w":7,
                "v":9,
                "l":7,
                "i":11,
                "e":4
            }
        },
        "q":{
            "d":"174,65r0,-101v-42,65,-152,30,-152,-53v0,-81,110,-118,152,-53v1,-13,-5,-34,9,-34v5,0,9,3,9,8r0,233v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9xm39,-89v0,39,30,71,67,71v37,0,68,-32,68,-71v0,-39,-31,-70,-68,-70v-37,0,-67,31,-67,70",
            "k":{
                "\\":18
            }
        },
        "r":{
            "d":"124,-159v-39,-3,-67,49,-73,73r0,77v0,11,-18,12,-18,0r0,-158v0,-5,4,-9,9,-9v16,2,7,31,9,47v13,-24,37,-46,73,-47v5,0,8,4,8,9v0,5,-3,8,-8,8",
            "w":158,
            "k":{
                "\\":11,
                "*":-7,
                ",":32,
                "\/":27,
                ".":32,
                "z":4,
                "q":9,
                "o":9,
                "e":18,
                "d":9,
                "c":9,
                "a":9
            }
        },
        "s":{
            "d":"53,-150v-48,69,99,27,99,100v0,15,-9,26,-21,36v-30,25,-89,11,-109,-11v-4,-3,-4,-8,-1,-12v21,-8,37,25,66,20v33,1,66,-32,35,-54v-28,-20,-97,-12,-98,-59v0,-51,85,-57,115,-27v4,3,6,8,3,12v-18,10,-33,-20,-55,-15v-14,0,-26,4,-34,10",
            "w":177,
            "k":{
                "}":4,
                "]":5,
                "\\":27,
                "?":13,
                ")":7,
                "z":4,
                "y":-13,
                "x":9,
                "w":5,
                "v":7,
                "t":-5,
                "s":4
            }
        },
        "t":{
            "d":"64,-176v12,1,30,-3,31,8v-1,12,-18,9,-31,9r0,128v1,17,20,9,22,22v0,4,-5,9,-9,9v-18,0,-31,-13,-31,-31r0,-128v-11,0,-34,3,-31,-9v-3,-11,21,-7,31,-8r0,-66v0,-4,4,-9,8,-9v5,0,10,5,10,9r0,66",
            "w":144,
            "k":{
                "\\":14,
                "t":23,
                "r":25,
                "q":5,
                "o":5,
                "h":7,
                "g":5,
                "e":14,
                "d":5,
                "c":5,
                "a":11
            }
        },
        "u":{
            "d":"30,-168v0,-5,4,-9,9,-9v5,0,8,4,8,9r0,96v0,30,24,55,54,55v30,0,55,-25,55,-55r0,-96v0,-11,18,-12,18,0r0,96v0,40,-33,72,-73,72v-40,0,-71,-32,-71,-72r0,-96",
            "w":220,
            "k":{
                "\\":18,
                "n":9,
                "l":11
            }
        },
        "v":{
            "d":"103,-7v0,7,-13,10,-16,2r-66,-158v-2,-4,0,-9,4,-11v4,-2,10,0,11,4r59,139r59,-139v1,-4,7,-6,11,-4v4,2,6,7,4,11",
            "w":209,
            "k":{
                "}":4,
                "]":7,
                "\\":18,
                ",":31,
                "\/":25,
                "-":5,
                "?":4,
                ".":31,
                "z":2,
                "y":5,
                "x":4,
                "w":5,
                "v":5,
                "s":7,
                "q":9,
                "o":11,
                "g":9,
                "e":11,
                "d":9,
                "c":11,
                "a":9
            }
        },
        "w":{
            "d":"203,-6v-2,7,-15,9,-16,0r-41,-97r-41,98v-2,7,-14,6,-16,0r-66,-158v-2,-4,0,-9,4,-11v4,-2,10,0,11,4r59,139r41,-96v2,-7,13,-7,16,0r41,96r58,-139v5,-9,21,-3,16,7",
            "w":309,
            "k":{
                "}":4,
                "]":7,
                "\\":18,
                ",":25,
                "\/":22,
                "-":4,
                "?":4,
                ".":25,
                "z":2,
                "y":4,
                "x":4,
                "w":4,
                "v":5,
                "s":5,
                "q":7,
                "o":9,
                "l":21,
                "i":22,
                "g":7,
                "e":22,
                "d":7,
                "c":9,
                "a":7
            }
        },
        "x":{
            "d":"33,0v-5,0,-11,-8,-6,-14r54,-73r-54,-75v-3,-4,-3,-9,1,-12v4,-3,9,-2,12,2r51,70r51,-70v3,-4,9,-5,12,-2v4,3,5,8,2,12r-54,75r54,73v5,6,-1,14,-7,14v-3,0,-6,-1,-7,-4r-51,-69r-51,69v-1,3,-4,4,-7,4",
            "w":205,
            "k":{
                "}":4,
                "]":4,
                "\\":18,
                "-":11,
                "?":5,
                "y":4,
                "w":4,
                "v":4,
                "s":7,
                "q":11,
                "o":13,
                "i":16,
                "g":11,
                "e":13,
                "d":11,
                "c":13,
                "a":16
            }
        },
        "y":{
            "d":"145,-168v-2,-9,14,-11,16,-4v3,49,0,104,1,158v1,58,-64,102,-120,74v-9,-5,-3,-18,7,-15v50,20,102,-14,96,-71v-37,49,-126,21,-126,-46r0,-96v0,-5,4,-8,8,-8v5,0,9,3,9,8r0,96v0,30,24,54,54,54v30,0,55,-24,55,-54r0,-96",
            "w":211,
            "k":{
                "}":4,
                "]":7,
                "\\":18,
                ",":31,
                "\/":25,
                "-":5,
                "?":4,
                ".":31,
                "z":2,
                "y":4,
                "x":4,
                "w":4,
                "v":5,
                "s":7,
                "q":9,
                "o":11,
                "l":11,
                "g":9,
                "e":11,
                "d":9,
                "c":11,
                "a":9
            }
        },
        "z":{
            "d":"145,-175v9,-1,13,11,6,16r-104,142r99,0v5,0,8,3,8,8v0,5,-3,9,-8,9r-115,0v-8,1,-12,-11,-6,-15r104,-143r-98,0v-5,0,-9,-3,-9,-8v0,-5,4,-9,9,-9r114,0",
            "w":199,
            "k":{
                "\\":16,
                "q":5,
                "o":5,
                "g":5,
                "e":5,
                "d":5,
                "c":5
            }
        },
        "!":{
            "d":"33,-243v0,-5,4,-9,9,-9v5,0,9,4,9,9r0,180v0,5,-4,9,-9,9v-5,0,-9,-4,-9,-9r0,-180xm33,-9v-5,-17,16,-23,18,-8v5,17,-16,23,-18,8",
            "w":90
        },
        "(":{
            "d":"105,35v-92,-5,-93,-167,-62,-243v11,-27,32,-45,62,-45v12,0,13,20,0,20v-73,6,-69,155,-44,214v10,23,23,34,44,34v5,0,10,5,10,10v0,6,-5,10,-10,10",
            "w":154,
            "k":{
                "s":5,
                "q":11,
                "o":11,
                "j":-11,
                "g":7,
                "e":11,
                "d":11,
                "c":11,
                "Q":11,
                "O":11,
                "J":5,
                "G":11,
                "C":11
            }
        },
        ")":{
            "d":"111,-109v0,71,-16,141,-80,144v-5,0,-9,-4,-9,-10v0,-5,4,-10,9,-10v49,-3,60,-65,60,-124v0,-60,-11,-120,-60,-124v-11,0,-12,-20,0,-20v64,3,80,74,80,144",
            "w":154
        },
        "+":{
            "d":"113,-36v-24,-6,-7,-53,-12,-78r-66,0v-7,0,-12,-5,-12,-12v6,-24,53,-7,78,-12v4,-26,-12,-71,12,-78v24,7,7,52,12,78v26,4,71,-12,78,12v-7,24,-52,7,-78,12r0,66v0,7,-5,12,-12,12",
            "w":223
        },
        "<":{
            "d":"25,-118v-5,-3,-2,-12,0,-15r114,-115v4,-4,11,-4,15,0v4,4,4,11,0,15r-108,108r108,108v7,7,0,18,-8,17v-3,0,-5,-1,-7,-3",
            "w":223
        },
        ">":{
            "d":"43,0v-8,1,-14,-11,-7,-17r107,-108r-107,-108v-4,-4,-4,-11,0,-15v4,-4,10,-4,14,0r115,116v3,4,2,11,-1,14r-114,115v-2,2,-4,3,-7,3",
            "w":223
        },
        "A":{
            "d":"198,-6r-23,-59r-115,0r-22,59v-1,5,-5,6,-11,6v-4,-2,-7,-8,-5,-12r87,-234v2,-6,15,-7,17,0r88,234v2,4,-1,13,-8,12v-3,0,-7,-2,-8,-6xm118,-218r-51,135r102,0",
            "w":232,
            "k":{
                "\\":43,
                "*":36,
                "-":14,
                "?":22,
                "y":4,
                "w":16,
                "v":22,
                "u":4,
                "t":11,
                "q":9,
                "o":9,
                "g":9,
                "f":7,
                "e":9,
                "d":9,
                "c":9,
                "Z":-13,
                "Y":27,
                "W":29,
                "V":32,
                "U":9,
                "T":36,
                "S":6,
                "O":14,
                "H":7,
                "G":12,
                "C":14
            }
        },
        ".":{
            "d":"30,-18v0,-10,8,-18,18,-18v10,0,18,8,18,18v0,10,-8,18,-18,18v-10,0,-18,-8,-18,-18",
            "w":82,
            "k":{
                "y":22,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "7":7,
                "1":18,
                "0":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "?":{
            "d":"83,-50v-16,-5,-5,-37,-8,-55v0,-5,4,-8,8,-8v34,0,61,-28,61,-61v0,-62,-90,-83,-114,-30v-2,4,-7,5,-11,2v-4,-3,-6,-7,-3,-11v31,-66,145,-40,145,39v0,40,-31,73,-70,77v-3,16,7,44,-8,47xm83,0v-7,0,-9,-8,-8,-16v0,-5,4,-9,8,-9v8,0,9,8,8,17v0,5,-3,8,-8,8",
            "w":192
        },
        "=":{
            "d":"39,-77v-6,0,-11,-4,-11,-10v0,-5,5,-10,11,-10r128,0v6,0,10,5,10,10v0,6,-4,10,-10,10r-128,0xm39,-155v-6,0,-11,-5,-11,-10v0,-6,5,-10,11,-10r128,0v6,0,10,4,10,10v0,5,-4,10,-10,10r-128,0",
            "w":223
        },
        "-":{
            "d":"31,-118v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r76,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-76,0",
            "w":146,
            "k":{
                "A":14,
                "z":4,
                "y":5,
                "x":11,
                "w":4,
                "v":5,
                "7":14,
                "3":4,
                "1":11,
                "Z":11,
                "Y":29,
                "X":18,
                "W":13,
                "V":14,
                "T":32
            }
        },
        "\u00ad":{
            "d":"31,-118v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r76,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-76,0",
            "w":146
        },
        "\/":{
            "d":"44,-5v-5,11,-20,2,-16,-7r98,-234v4,-10,22,-3,17,7",
            "w":151,
            "k":{
                "\/":61,
                "A":43,
                "z":22,
                "y":18,
                "x":18,
                "w":18,
                "v":18,
                "u":18,
                "t":7,
                "s":31,
                "r":18,
                "q":25,
                "p":18,
                "o":29,
                "n":18,
                "m":18,
                "g":25,
                "f":9,
                "e":29,
                "d":25,
                "c":29,
                "a":23,
                "9":7,
                "8":5,
                "7":4,
                "6":13,
                "5":7,
                "4":34,
                "3":4,
                "2":7,
                "1":-4,
                "0":13,
                "Z":7,
                "S":11,
                "Q":14,
                "O":14,
                "J":47,
                "G":14,
                "C":14
            }
        },
        ":":{
            "d":"31,-18v0,-10,8,-18,18,-18v10,0,18,8,18,18v0,10,-8,18,-18,18v-10,0,-18,-8,-18,-18xm31,-169v0,-10,8,-18,18,-18v10,0,18,8,18,18v0,10,-8,18,-18,18v-10,0,-18,-8,-18,-18",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        ";":{
            "d":"24,-169v0,-10,8,-18,18,-18v10,0,18,8,18,18v0,10,-8,18,-18,18v-10,0,-18,-8,-18,-18xm55,-20v3,34,-10,53,-28,58v-17,-10,24,-21,14,-38v-7,-1,-11,-9,-10,-20v0,-7,5,-12,12,-12v7,0,12,5,12,12",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        "\u037e":{
            "d":"24,-169v0,-10,8,-18,18,-18v10,0,18,8,18,18v0,10,-8,18,-18,18v-10,0,-18,-8,-18,-18xm55,-20v3,34,-10,53,-28,58v-17,-10,24,-21,14,-38v-7,-1,-11,-9,-10,-20v0,-7,5,-12,12,-12v7,0,12,5,12,12",
            "w":86
        },
        ",":{
            "d":"53,-20v3,34,-9,53,-28,58v-17,-10,24,-21,14,-38v-12,-1,-14,-33,2,-32v7,0,12,5,12,12",
            "w":82,
            "k":{
                "y":16,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "j":-5,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "7":7,
                "1":18,
                "0":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "'":{
            "d":"25,-166r11,-77v-1,-11,20,-15,23,-4r-23,81v-1,5,-3,7,-6,7v-3,0,-6,-2,-5,-7",
            "w":82
        },
        "\"":{
            "d":"90,-166r11,-77v-1,-11,20,-16,22,-4v-4,30,-15,54,-22,81v-1,5,-3,7,-6,7v-3,0,-6,-2,-5,-7xm25,-166r11,-77v-1,-11,20,-15,23,-4r-23,81v-1,5,-3,7,-6,7v-3,0,-6,-2,-5,-7",
            "w":147
        },
        "_":{
            "d":"-1,58v-10,0,-10,-16,0,-16r218,0v10,0,10,16,0,16r-218,0",
            "w":216
        },
        "*":{
            "d":"77,-145v-14,-5,-2,-32,-4,-47r-38,25v-8,0,-11,-11,-3,-15r37,-17v-13,-9,-34,-11,-42,-25v12,-18,32,13,46,17v1,-15,-10,-41,4,-47v16,4,3,32,5,47v13,-8,23,-19,38,-24v8,-1,9,13,2,14r-37,18v13,9,35,9,42,24v0,7,-8,10,-13,5r-32,-22v-1,16,11,42,-5,47",
            "w":154,
            "k":{
                "A":36,
                "t":-4,
                "s":4,
                "q":5,
                "o":7,
                "g":5,
                "e":7,
                "d":5,
                "c":7,
                "a":4,
                "J":29
            }
        },
        "@":{
            "d":"145,-18v13,3,35,-10,38,4v3,14,-24,14,-38,14v-70,0,-126,-56,-126,-126v0,-70,56,-126,126,-126v70,0,126,56,126,126v0,43,-6,74,-53,85v-22,-1,-27,-17,-26,-39v-35,45,-111,14,-111,-46v0,-37,28,-68,64,-68v59,0,68,62,65,125v1,6,2,12,11,11v27,-12,33,-37,33,-68v0,-59,-50,-109,-109,-109v-60,0,-108,50,-108,109v0,60,48,108,108,108xm100,-126v0,28,20,49,45,49v25,0,47,-21,47,-49v0,-27,-22,-50,-47,-50v-25,0,-45,23,-45,50",
            "w":352
        },
        "\\":{
            "d":"139,-13v2,6,-1,13,-9,12v-3,0,-7,-1,-8,-5r-98,-233v-2,-5,0,-10,5,-12v5,-2,9,1,11,5",
            "w":161,
            "k":{
                "y":22,
                "w":22,
                "v":25,
                "t":11,
                "j":-11,
                "f":4,
                "Y":40,
                "W":36,
                "V":43,
                "U":5,
                "T":32,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "`":{
            "d":"108,-216v-21,8,-36,-24,-49,-36v1,-7,19,-12,25,-2",
            "w":180
        },
        "~":{
            "d":"60,-105v-12,-3,-12,16,-23,19v-5,0,-7,-5,-6,-11v10,-46,48,-18,75,-12v12,3,12,-17,23,-19v6,-1,7,6,5,11v-11,47,-47,18,-74,12",
            "w":165
        },
        "#":{
            "d":"51,-9r10,-58v-16,-2,-43,7,-45,-9v3,-15,32,-5,48,-8r15,-85v-16,-3,-45,8,-48,-8v2,-18,34,-6,51,-9r10,-60v1,-5,4,-7,9,-7v6,0,9,5,8,10r-10,57r75,0r10,-60v1,-5,4,-7,9,-7v6,0,9,5,8,10r-10,57v15,2,42,-7,44,8v-2,17,-31,6,-47,9r-15,85v16,3,44,-7,48,8v-3,17,-34,6,-51,9r-10,61v-1,5,-4,7,-9,7v-6,0,-9,-5,-8,-10r10,-58r-75,0r-10,61v-1,5,-4,7,-9,7v-6,0,-9,-5,-8,-10xm81,-84r75,0r15,-85r-75,0",
            "w":252
        },
        "$":{
            "d":"31,-52v24,16,46,34,77,35r0,-102v-54,-12,-77,-32,-77,-68v0,-36,32,-64,76,-65v-5,-16,11,-32,17,-14r0,15v28,3,55,12,69,33v0,5,-4,9,-9,9v-22,-9,-39,-26,-61,-26r0,101v55,12,78,32,78,67v0,38,-32,66,-77,67v4,18,-3,53,-17,28r0,-28v-31,-3,-56,-15,-81,-35v-7,-6,-4,-17,5,-17xm183,-65v0,-25,-13,-41,-60,-51r0,100v36,-1,60,-22,60,-49xm50,-188v0,24,12,39,58,50r0,-98v-35,1,-58,22,-58,48",
            "w":227,
            "k":{
                "7":4
            }
        },
        "[":{
            "d":"35,37r0,-280v0,-5,5,-9,10,-9r83,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-76,0r0,271r76,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-83,0v-5,0,-10,-5,-10,-10",
            "w":154,
            "k":{
                "y":4,
                "x":4,
                "w":7,
                "v":7,
                "s":5,
                "q":7,
                "o":7,
                "j":-11,
                "e":7,
                "d":7,
                "c":7,
                "a":4,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "]":{
            "d":"120,-243r0,280v0,5,-5,10,-10,10r-83,0v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r76,0r0,-271r-76,0v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r83,0v5,0,10,4,10,9",
            "w":154
        },
        "^":{
            "d":"90,-238r-44,57v-3,5,-15,8,-17,1v14,-25,33,-45,49,-68v6,-9,18,-9,24,0v16,23,35,43,49,68v-1,7,-16,4,-18,-1",
            "w":180
        },
        "{":{
            "d":"146,50v-74,-16,-73,-40,-72,-101v0,-28,-9,-45,-46,-45v-6,0,-8,-3,-8,-7v0,-4,2,-7,8,-7v49,0,47,-31,46,-74v0,-37,11,-61,72,-73v10,-2,10,10,3,12v-64,16,-58,34,-58,90v0,32,-14,45,-37,52v33,7,37,36,37,79v0,36,6,49,58,63v2,1,5,2,5,5v0,4,-4,7,-8,6",
            "w":172,
            "k":{
                "z":4,
                "y":4,
                "x":4,
                "w":4,
                "v":4,
                "s":4,
                "q":5,
                "o":5,
                "j":-13,
                "g":4,
                "e":5,
                "d":5,
                "c":5,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "}":{
            "d":"27,-257v73,16,73,40,72,101v0,28,8,46,45,46v6,0,9,3,9,7v0,4,-3,7,-9,7v-50,-1,-45,32,-45,74v0,37,-11,60,-72,72v-7,2,-11,-9,-4,-11v64,-16,58,-34,58,-90v0,-32,15,-45,38,-52v-33,-7,-38,-36,-38,-79v0,-36,-6,-49,-58,-63v-7,-2,-4,-14,4,-12",
            "w":172
        },
        "|":{
            "d":"44,40r0,-321v0,-4,3,-8,7,-8v4,0,8,4,8,8r0,321v0,11,-15,10,-15,0",
            "w":102
        }
    }
});
/*!
 * The following copyright notice may not be removed under any circumstances.
 *
 * Copyright:
 * Copyright (c) Andrew Paglinawan, 2008. All rights reserved.
 *
 * Trademark:
 * Quicksand Bold is a trademark of the Andrew Paglinawan.
 *
 * Full name:
 * QuicksandBold-Regular
 *
 * Manufacturer:
 * Andrew Paglinawan
 *
 * Designer:
 * Andrew Paglinawan
 */
Cufon.registerFont({
    "w":237,
    "face":{
        "font-family":"Quicksand Bold",
        "font-weight":700,
        "font-stretch":"normal",
        "units-per-em":"360",
        "panose-1":"0 0 0 0 0 0 0 0 0 0",
        "ascent":"288",
        "descent":"-72",
        "x-height":"1",
        "bbox":"-9 -289 370.533 68",
        "underline-thickness":"18",
        "underline-position":"-18",
        "unicode-range":"U+0020-U+007E"
    },
    "glyphs":{
        " ":{
            "w":108
        },
        "B":{
            "d":"122,0v-32,-2,-85,12,-85,-20r0,-212v0,-29,43,-18,71,-20v54,-2,90,66,55,109v63,35,35,148,-41,143xm77,-212r0,58v31,3,60,-1,60,-30v0,-28,-30,-30,-60,-28xm77,-114r0,74v40,2,82,2,82,-37v0,-39,-41,-39,-82,-37",
            "w":213,
            "k":{
                "?":2,
                "y":4,
                "w":4,
                "v":14,
                "A":7,
                "i":14,
                "Y":11,
                "X":7,
                "W":5,
                "V":7,
                "T":7,
                "I":4,
                "B":25
            }
        },
        "C":{
            "d":"67,-130v0,72,93,117,149,69v8,-6,22,-5,29,4v6,9,6,22,-3,29v-81,67,-216,4,-216,-102v0,-105,134,-168,216,-101v22,17,-8,48,-26,33v-55,-47,-149,-3,-149,68",
            "w":277,
            "k":{
                "-":4,
                "y":4,
                "x":4,
                "w":4,
                "v":4,
                "A":5,
                "q":4,
                "o":4,
                "l":12,
                "g":4,
                "e":4,
                "d":4,
                "c":4,
                "Y":7,
                "X":4,
                "Q":7,
                "O":7,
                "G":7,
                "C":7
            }
        },
        "D":{
            "d":"37,-20r0,-212v0,-27,37,-19,63,-20v69,0,125,57,125,126v0,85,-68,126,-168,126v-11,0,-20,-9,-20,-20xm77,-212r0,172v64,7,108,-30,108,-86v0,-54,-44,-94,-108,-86",
            "w":258,
            "k":{
                "}":7,
                "]":7,
                "\\":14,
                "\/":14,
                ",":14,
                ".":14,
                "?":7,
                ")":11,
                "x":4,
                "w":8,
                "A":23,
                "a":32,
                "Z":16,
                "Y":23,
                "X":20,
                "W":13,
                "V":16,
                "T":20,
                "S":4,
                "R":7,
                "O":5,
                "N":22,
                "J":14,
                "I":18,
                "H":18,
                "E":18,
                "D":11
            }
        },
        "E":{
            "d":"58,0v-12,0,-21,-9,-21,-20r0,-212v0,-11,9,-20,21,-20r117,0v10,0,20,9,20,20v0,11,-10,20,-20,20r-98,0r0,66v36,5,98,-15,104,20v-5,36,-68,14,-104,20r0,66r98,0v10,0,20,9,20,20v0,11,-10,20,-20,20r-117,0",
            "w":213,
            "k":{
                "y":4,
                "w":4,
                "v":4,
                "o":4,
                "e":4,
                "d":4,
                "c":4,
                "R":-7
            }
        },
        "F":{
            "d":"57,0v-11,0,-20,-9,-20,-20r0,-212v0,-11,9,-20,21,-20r117,0v10,0,20,9,20,20v0,11,-10,20,-20,20r-98,0r0,66v36,5,98,-15,104,20v-5,36,-68,14,-104,20v-5,37,17,106,-20,106",
            "w":217,
            "k":{
                "\/":25,
                ",":36,
                ".":36,
                "?":-4,
                "&":11,
                "z":5,
                "y":5,
                "w":4,
                "v":5,
                "u":26,
                "A":29,
                "s":4,
                "q":4,
                "o":26,
                "m":26,
                "g":4,
                "e":5,
                "d":4,
                "c":5,
                "a":9,
                "Z":4,
                "Q":7,
                "O":7,
                "J":40,
                "G":7,
                "C":7
            }
        },
        "G":{
            "d":"249,-45v-8,36,-56,45,-90,45v-73,0,-133,-57,-133,-129v0,-105,134,-170,215,-102v9,7,11,20,4,29v-7,9,-20,10,-29,3v-56,-46,-149,-3,-149,70v0,67,81,112,141,74r0,-49v-29,-2,-72,9,-72,-21v0,-35,59,-15,93,-20v36,3,14,66,20,100",
            "w":293,
            "k":{
                "\\":5,
                "?":4,
                "y":2,
                "w":19,
                "v":2,
                "o":7,
                "a":-4,
                "Y":11,
                "X":4,
                "W":5,
                "V":7,
                "T":7,
                "L":18,
                "H":16,
                "F":18
            }
        },
        "H":{
            "d":"57,0v-11,0,-20,-9,-20,-20r0,-212v0,-11,9,-20,20,-20v37,0,14,70,20,106r94,0r0,-86v0,-11,8,-20,19,-20v11,0,21,9,21,20r0,212v0,11,-10,20,-21,20v-36,0,-13,-70,-19,-106r-94,0v-5,37,17,106,-20,106",
            "w":255,
            "k":{
                "A":23,
                "Y":16,
                "W":18,
                "O":11,
                "I":18
            }
        },
        "I":{
            "d":"40,-232v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,212v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-212",
            "w":109
        },
        "J":{
            "d":"31,-87v11,-4,23,3,26,13v12,50,96,40,96,-15r0,-143v0,-11,10,-20,21,-20v11,0,19,9,19,20r0,143v0,49,-40,89,-89,89v-40,0,-73,-26,-85,-62v-4,-11,2,-22,12,-25",
            "w":213,
            "k":{
                ",":5,
                ".":5,
                "A":9,
                "i":-11,
                "h":-8,
                "e":-15,
                "a":-19,
                "J":7
            }
        },
        "K":{
            "d":"57,0v-11,0,-20,-9,-20,-20r0,-210v0,-10,9,-20,20,-20v11,0,20,10,20,20r0,103r117,-117v8,-8,20,-8,28,0v8,8,8,20,0,28r-79,79r79,105v12,12,0,33,-15,32v-5,0,-11,-2,-15,-7r-78,-102r-37,38v-2,28,9,70,-20,71",
            "w":257,
            "k":{
                "-":18,
                "&":4,
                "y":18,
                "w":18,
                "v":22,
                "u":7,
                "t":9,
                "q":9,
                "o":11,
                "g":9,
                "f":7,
                "e":11,
                "d":9,
                "c":11,
                "a":4,
                "Y":14,
                "W":11,
                "V":11,
                "U":5,
                "T":4,
                "S":4,
                "Q":18,
                "O":18,
                "G":18,
                "C":18,
                "B":16
            }
        },
        "L":{
            "d":"58,0v-12,0,-21,-9,-21,-20r0,-212v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,192r98,0v10,0,20,9,20,20v0,11,-10,20,-20,20r-117,0",
            "w":202,
            "k":{
                "*":29,
                "-":14,
                "\\":43,
                "?":22,
                "&":4,
                "w":18,
                "v":22,
                "t":7,
                "q":2,
                "o":4,
                "g":2,
                "f":7,
                "e":4,
                "d":2,
                "c":4,
                "Y":47,
                "W":36,
                "V":41,
                "U":7,
                "T":36,
                "Q":14,
                "O":14,
                "I":-2,
                "G":14,
                "C":14
            }
        },
        "M":{
            "d":"217,-244v11,-15,38,-7,37,12r0,212v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-151r-52,72v-8,11,-25,11,-33,0r-52,-72r0,151v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-212v-1,-19,26,-27,37,-12r72,100",
            "w":303,
            "k":{
                "A":23,
                "P":18,
                "O":16,
                "M":12,
                "E":18
            }
        },
        "N":{
            "d":"229,-20v1,20,-27,26,-37,11r-115,-160r0,149v0,11,-9,20,-19,20v-11,0,-20,-9,-20,-20r0,-209v-2,-17,23,-29,35,-13r116,161r0,-148v0,-10,9,-19,20,-19v11,0,20,9,20,19r0,209",
            "w":277,
            "k":{
                "Y":16,
                "U":18,
                "T":4,
                "O":18,
                "N":12,
                "I":13,
                "G":18,
                "E":23,
                "D":18
            }
        },
        "O":{
            "d":"26,-130v0,-70,54,-129,124,-129v69,0,123,60,123,129v0,70,-55,130,-123,130v-70,0,-123,-59,-124,-130xm150,-41v45,0,81,-41,81,-89v0,-47,-35,-88,-81,-88v-47,0,-83,41,-83,88v0,48,36,89,83,89",
            "w":306,
            "k":{
                "}":7,
                "]":7,
                "\\":14,
                "\/":14,
                ",":14,
                ".":14,
                "?":7,
                ")":11,
                "x":2,
                "A":14,
                "Z":14,
                "Y":22,
                "X":18,
                "W":13,
                "V":14,
                "U":16,
                "T":20,
                "S":2,
                "O":4,
                "N":9,
                "M":14,
                "L":2,
                "K":11,
                "J":11,
                "I":18,
                "H":14,
                "D":11,
                "C":11,
                "B":13
            }
        },
        "P":{
            "d":"199,-175v-1,59,-52,86,-122,77v-5,34,15,98,-20,98v-11,0,-20,-9,-20,-20r0,-212v2,-32,54,-20,85,-20v43,0,77,34,77,77xm77,-212r0,74v40,2,82,1,82,-37v0,-39,-41,-39,-82,-37",
            "w":209,
            "k":{
                "\/":22,
                ",":36,
                ".":36,
                "&":7,
                "y":-4,
                "w":-4,
                "v":-4,
                "u":-2,
                "A":25,
                "t":-5,
                "o":5,
                "g":8,
                "f":11,
                "e":4,
                "d":8,
                "c":2,
                "Z":5,
                "Y":4,
                "X":11,
                "W":2,
                "V":4,
                "J":36
            }
        },
        "Q":{
            "d":"150,-256v111,0,167,152,89,227v-13,14,-29,25,-48,32v31,15,46,21,75,-1v9,-7,24,-6,30,4v20,34,-43,52,-65,52v-34,0,-57,-23,-88,-27v-26,2,-42,19,-54,-4v-6,-11,0,-24,11,-28v-42,-19,-77,-66,-76,-122v0,-72,56,-133,126,-133xm150,-213v-48,0,-84,41,-84,90v0,49,36,90,84,91v47,0,84,-42,84,-91v0,-49,-37,-90,-84,-90",
            "w":303,
            "k":{
                "?":7,
                ")":4,
                "Y":23,
                "W":13,
                "V":14,
                "T":20
            }
        },
        "R":{
            "d":"166,-116v19,13,25,46,26,74v21,6,15,41,-9,38v-27,-4,-32,-25,-33,-59v-1,-36,-39,-37,-78,-35v-5,34,15,98,-20,98v-11,0,-20,-9,-20,-20r0,-212v2,-32,54,-18,85,-20v71,-5,104,96,49,136xm72,-138v40,2,82,1,82,-37v0,-39,-41,-39,-82,-37r0,74",
            "w":225,
            "k":{
                "t":-4,
                "q":2,
                "o":4,
                "g":2,
                "f":-4,
                "e":4,
                "d":2,
                "c":4,
                "Y":9,
                "W":5,
                "V":7,
                "U":22,
                "T":7,
                "O":6,
                "J":2
            }
        },
        "S":{
            "d":"70,-188v6,42,76,31,107,51v48,14,58,84,14,116v-46,33,-126,16,-159,-15v-19,-18,6,-44,24,-29v28,37,141,40,126,-23v-34,-44,-149,-17,-149,-100v0,-44,46,-71,91,-71v35,0,60,17,78,29v8,6,11,17,5,25v-24,26,-53,-25,-83,-17v-25,0,-53,14,-54,34",
            "w":240,
            "k":{
                "\\":7,
                "?":4,
                "z":2,
                "y":5,
                "x":5,
                "w":4,
                "v":5,
                "A":5,
                "t":2,
                "f":2,
                "Z":4,
                "Y":11,
                "X":9,
                "W":9,
                "V":11,
                "T":5,
                "S":4
            }
        },
        "T":{
            "d":"211,-232v-1,31,-48,17,-77,20r0,192v0,11,-9,20,-20,20v-11,0,-19,-9,-19,-20r0,-192v-29,-3,-76,11,-77,-20v0,-11,9,-20,20,-20r154,0v11,0,19,9,19,20",
            "w":233,
            "k":{
                "-":32,
                "\/":32,
                ";":18,
                ":":18,
                ",":36,
                ".":36,
                "&":25,
                "z":40,
                "y":36,
                "x":36,
                "w":36,
                "v":36,
                "u":36,
                "A":34,
                "t":18,
                "s":41,
                "r":36,
                "q":45,
                "p":36,
                "o":49,
                "n":36,
                "m":36,
                "l":5,
                "j":14,
                "i":14,
                "h":7,
                "g":45,
                "f":18,
                "e":49,
                "d":45,
                "c":49,
                "a":49,
                "Z":7,
                "S":5,
                "Q":20,
                "O":20,
                "J":40,
                "G":20,
                "D":5,
                "C":20
            }
        },
        "U":{
            "d":"246,-104v0,57,-46,104,-104,104v-58,0,-104,-47,-104,-104r0,-128v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,128v0,35,29,64,64,64v36,0,64,-29,64,-64r0,-128v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,128",
            "w":293,
            "k":{
                "\/":5,
                ",":5,
                ".":5,
                "x":2,
                "A":18,
                "Z":16,
                "X":4,
                "W":18,
                "T":11,
                "R":9,
                "O":14,
                "N":5,
                "M":18,
                "L":17,
                "K":18,
                "J":7,
                "I":18,
                "H":18,
                "F":18,
                "E":18,
                "D":11
            }
        },
        "V":{
            "d":"149,-12v-2,15,-33,15,-36,0r-89,-210v-4,-10,1,-22,11,-26v10,-4,22,1,26,11r70,166r70,-166v4,-10,16,-15,26,-11v10,4,15,16,11,26",
            "w":270,
            "k":{
                "-":14,
                "\/":43,
                ";":7,
                ":":7,
                ",":43,
                ".":43,
                "&":20,
                "z":20,
                "y":14,
                "x":18,
                "w":13,
                "v":14,
                "u":14,
                "A":49,
                "t":7,
                "s":22,
                "r":14,
                "q":23,
                "p":14,
                "o":25,
                "n":14,
                "m":14,
                "l":4,
                "j":7,
                "i":7,
                "g":23,
                "f":9,
                "e":25,
                "d":23,
                "c":25,
                "a":25,
                "Z":4,
                "Y":7,
                "X":7,
                "W":4,
                "V":4,
                "S":9,
                "Q":14,
                "O":14,
                "J":43,
                "I":18,
                "G":14,
                "E":11,
                "C":14
            }
        },
        "W":{
            "d":"150,-12v-3,16,-33,14,-36,0r-88,-210v-4,-10,0,-22,10,-26v10,-4,22,1,26,11r70,166r47,-110v6,-16,31,-16,37,0r47,110r70,-166v4,-10,16,-15,26,-11v10,4,14,16,10,26r-92,217v-9,8,-30,5,-32,-7r-47,-112",
            "w":396,
            "k":{
                "-":13,
                "\/":36,
                ";":5,
                ":":5,
                ",":36,
                ".":36,
                "&":16,
                "z":20,
                "y":13,
                "x":14,
                "w":13,
                "v":13,
                "u":13,
                "A":43,
                "t":9,
                "s":22,
                "r":13,
                "q":22,
                "p":13,
                "o":23,
                "n":13,
                "m":13,
                "l":4,
                "j":5,
                "i":5,
                "g":22,
                "f":11,
                "e":23,
                "d":22,
                "c":23,
                "a":25,
                "Z":4,
                "Y":7,
                "X":5,
                "W":4,
                "V":4,
                "S":7,
                "Q":13,
                "O":13,
                "J":38,
                "I":18,
                "G":13,
                "E":7,
                "C":13
            }
        },
        "X":{
            "d":"213,-245v9,6,11,18,5,27r-69,93r69,94v15,22,-18,42,-32,23r-61,-83r-61,83v-6,9,-18,11,-27,4v-9,-6,-11,-18,-5,-27r69,-94r-69,-93v-6,-9,-4,-21,5,-27v9,-7,21,-5,27,4r61,83r61,-83v7,-9,18,-11,27,-4",
            "w":259,
            "k":{
                "-":18,
                "?":5,
                "&":4,
                "y":14,
                "w":14,
                "v":18,
                "u":7,
                "A":18,
                "t":7,
                "q":14,
                "o":16,
                "l":4,
                "j":4,
                "i":4,
                "g":14,
                "f":7,
                "e":16,
                "d":14,
                "c":16,
                "a":4,
                "Y":7,
                "W":5,
                "V":7,
                "U":18,
                "S":11,
                "Q":18,
                "O":18,
                "J":4,
                "I":18,
                "G":18,
                "E":16,
                "C":18
            }
        },
        "Y":{
            "d":"208,-246v9,6,11,19,5,28r-74,101r0,97v0,11,-9,20,-20,20v-10,0,-20,-9,-20,-20r0,-97r-73,-101v-7,-9,-5,-22,4,-28v9,-6,22,-4,28,5r61,84r62,-84v7,-9,18,-11,27,-5",
            "w":217,
            "k":{
                "-":29,
                "\/":40,
                ";":14,
                ":":14,
                ",":47,
                ".":47,
                "&":25,
                "z":29,
                "y":22,
                "x":25,
                "w":20,
                "v":22,
                "u":27,
                "A":17,
                "t":11,
                "s":36,
                "r":27,
                "q":38,
                "p":27,
                "o":40,
                "n":27,
                "m":27,
                "l":4,
                "j":7,
                "i":7,
                "g":38,
                "f":14,
                "e":40,
                "d":38,
                "c":40,
                "a":36,
                "Z":4,
                "X":7,
                "W":7,
                "V":7,
                "S":13,
                "R":-11,
                "Q":22,
                "O":22,
                "L":-18,
                "J":47,
                "I":-18,
                "G":22,
                "C":22
            }
        },
        "Z":{
            "d":"201,-252v17,0,25,20,16,32r-132,180r116,0v11,0,20,9,20,20v0,11,-9,20,-20,20r-175,-15v1,-5,-1,-14,4,-16r132,-181r-117,0v-11,0,-19,-9,-19,-20v0,-11,8,-20,19,-20r156,0",
            "w":240,
            "k":{
                "-":11,
                "&":5,
                "y":5,
                "w":5,
                "v":7,
                "q":7,
                "o":9,
                "g":7,
                "f":4,
                "e":9,
                "d":7,
                "c":9,
                "Z":4,
                "T":-13,
                "S":4,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "a":{
            "d":"14,-90v0,-68,78,-116,134,-74v3,-21,38,-21,38,3r0,142v0,22,-34,26,-38,4v-57,41,-134,-8,-134,-75xm100,-39v27,0,48,-22,48,-51v0,-29,-21,-51,-48,-51v-28,0,-47,23,-47,51v0,28,19,51,47,51",
            "w":222,
            "k":{
                "*":5,
                "\\":27,
                "?":13,
                "y":-11,
                "w":7,
                "v":7,
                "n":4,
                "l":-5,
                "j":-43,
                "g":-13
            }
        },
        "b":{
            "d":"53,0v-34,-3,-20,-57,-20,-90r0,-143v0,-10,9,-19,20,-19v33,3,16,55,20,87v56,-40,135,7,135,75v0,68,-78,115,-136,75v-2,9,-9,15,-19,15xm121,-141v-26,0,-48,23,-48,51v0,28,22,51,48,51v26,0,48,-23,48,-51v0,-28,-22,-51,-48,-51",
            "k":{
                "}":5,
                "]":7,
                "*":5,
                "\\":25,
                ",":4,
                ".":4,
                "?":13,
                ")":11,
                "z":5,
                "y":9,
                "x":11,
                "w":7,
                "v":9
            }
        },
        "c":{
            "d":"21,-90v0,-74,93,-117,149,-70v8,6,11,19,4,26v-19,22,-38,-7,-62,-7v-29,0,-53,23,-53,51v0,42,55,68,88,40v8,-6,20,-5,27,4v14,32,-34,45,-62,46v-50,0,-91,-41,-91,-90",
            "w":205,
            "k":{
                "\\":14,
                "?":5,
                ")":5,
                "y":2,
                "x":4,
                "w":2,
                "v":2,
                "q":4,
                "o":5,
                "g":4,
                "e":5,
                "d":4,
                "c":5
            }
        },
        "d":{
            "d":"197,-90v-4,33,14,87,-20,90v-10,0,-17,-6,-19,-15v-57,40,-136,-6,-136,-75v0,-68,78,-115,135,-75v4,-32,-13,-84,20,-87v11,0,20,9,20,19r0,143xm157,-90v0,-28,-22,-51,-48,-51v-26,0,-48,23,-48,51v0,28,22,51,48,51v26,0,48,-23,48,-51",
            "k":{
                "e":5
            }
        },
        "e":{
            "d":"173,-24v-52,54,-152,11,-152,-66v0,-49,39,-90,88,-90v48,1,86,36,86,89v0,9,-9,14,-19,14r-114,0v4,35,54,54,84,31v18,-14,44,4,27,22xm109,-146v-31,0,-46,23,-49,38r102,0v-4,-14,-22,-38,-53,-38",
            "w":219,
            "k":{
                "}":4,
                "]":7,
                "*":7,
                "\\":29,
                ",":4,
                ".":4,
                "?":14,
                ")":11,
                "z":5,
                "y":-11,
                "x":11,
                "w":9,
                "v":9,
                "t":14,
                "r":8
            }
        },
        "f":{
            "d":"107,-212v-17,-1,-11,3,-14,25v17,-2,30,5,30,20v0,15,-13,22,-30,20r0,127v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-127v-17,2,-30,-6,-30,-20v0,-14,13,-22,30,-20v-2,-40,16,-66,54,-65v11,0,20,8,20,19v0,11,-9,21,-20,21",
            "w":130,
            "k":{
                "}":-11,
                "]":-7,
                "*":-11,
                "\\":-11,
                "\/":16,
                ",":16,
                ".":16,
                "?":-13,
                ")":-11,
                "z":4,
                "q":4,
                "o":4,
                "g":4,
                "e":4,
                "d":4,
                "c":4,
                "a":5
            }
        },
        "g":{
            "d":"22,-89v0,-68,77,-117,134,-76v3,-21,38,-18,38,4r0,139v1,60,-65,106,-124,77v-9,-4,-13,-15,-8,-25v10,-20,28,-5,46,-4v23,0,42,-17,47,-39v-57,39,-133,-9,-133,-76xm108,-37v28,0,48,-22,48,-52v0,-28,-20,-53,-48,-52v-27,0,-48,25,-48,52v0,29,21,52,48,52",
            "k":{
                "\\":18
            }
        },
        "h":{
            "d":"112,-140v-51,0,-38,69,-39,120v0,28,-40,24,-40,0r0,-212v0,-11,9,-20,20,-20v32,2,17,52,20,82v53,-30,122,12,117,69v-3,35,15,95,-19,101v-52,-11,18,-140,-59,-140",
            "w":220,
            "k":{
                "*":5,
                "\\":27,
                "?":11,
                "y":5,
                "w":5,
                "v":7,
                "a":-14
            }
        },
        "i":{
            "d":"53,-180v11,0,20,8,20,20r0,141v0,11,-9,19,-20,19v-11,0,-19,-8,-19,-19r0,-141v0,-12,8,-20,19,-20xm53,-252v14,0,20,11,20,27v0,11,-9,20,-20,20v-14,0,-19,-12,-19,-28v0,-11,8,-19,19,-19",
            "w":101,
            "k":{
                "l":8
            }
        },
        "j":{
            "d":"38,-205v-13,-1,-20,-12,-20,-27v0,-12,9,-20,20,-20v13,0,20,11,20,27v0,10,-9,20,-20,20xm18,64v-12,0,-20,-8,-20,-20v0,-10,8,-19,20,-19r0,-185v0,-11,9,-20,19,-20v11,0,20,9,20,20r0,185v0,21,-17,39,-39,39",
            "w":89,
            "k":{
                "a":7
            }
        },
        "k":{
            "d":"53,0v-11,0,-20,-9,-20,-20r0,-212v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,124r74,-73v8,-8,20,-8,28,0v8,8,8,20,0,28r-54,54r56,66v12,13,-1,33,-16,33v-6,0,-11,-2,-15,-7r-53,-64r-20,20v0,24,3,51,-20,51",
            "w":201,
            "k":{
                "-":7,
                "\\":14,
                "y":5,
                "w":7,
                "v":7,
                "u":4,
                "t":4,
                "q":9,
                "o":9,
                "g":9,
                "e":9,
                "d":9,
                "c":9,
                "a":4
            }
        },
        "l":{
            "d":"36,-232v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,212v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-212",
            "w":89,
            "k":{
                "y":-23,
                "e":-16
            }
        },
        "m":{
            "d":"221,-141v-52,0,-34,73,-37,122v0,10,-9,19,-19,19v-53,0,18,-141,-57,-141v-53,0,-28,80,-37,129v-3,18,-38,14,-38,-7r0,-142v0,-20,31,-26,37,-8v31,-20,74,-10,95,14v40,-50,137,-17,131,51v-3,36,16,97,-19,104v-50,-12,18,-141,-56,-141",
            "w":342,
            "k":{
                "*":5,
                "\\":27,
                "?":11,
                "y":5,
                "w":5,
                "v":7
            }
        },
        "n":{
            "d":"72,-19v0,11,-9,20,-19,19v-37,-4,-14,-69,-20,-105v3,-29,-11,-74,20,-75v8,0,14,4,17,11v49,-31,119,9,114,64v-3,36,16,98,-19,105v-51,-12,20,-141,-57,-141v-51,0,-36,73,-36,122",
            "w":220,
            "k":{
                "*":5,
                "\\":27,
                "?":11,
                "y":5,
                "w":5,
                "v":7,
                "d":7
            }
        },
        "o":{
            "d":"112,1v-50,0,-87,-41,-87,-91v0,-48,38,-90,87,-90v48,0,85,43,85,90v0,49,-37,91,-85,91xm112,-141v-29,0,-48,22,-48,51v0,29,18,52,48,52v28,0,47,-24,47,-52v0,-28,-20,-50,-47,-51",
            "w":225,
            "k":{
                "}":5,
                "]":7,
                "*":7,
                "\\":29,
                ",":7,
                ".":7,
                "?":18,
                ")":11,
                "z":7,
                "y":-16,
                "x":13,
                "w":14,
                "v":11,
                "u":6,
                "t":7,
                "r":7,
                "f":13
            }
        },
        "p":{
            "d":"53,68v-10,0,-20,-10,-20,-20r0,-209v-1,-22,37,-25,39,-4v57,-40,136,6,136,75v0,68,-78,115,-135,75v-4,31,13,80,-20,83xm121,-141v-26,0,-48,23,-48,51v0,28,22,51,48,51v26,0,48,-23,48,-51v0,-28,-22,-51,-48,-51",
            "k":{
                "}":5,
                "]":7,
                "*":5,
                "\\":25,
                ",":4,
                ".":4,
                "?":13,
                ")":11,
                "z":5,
                "y":9,
                "x":11,
                "w":7,
                "v":9,
                "l":7,
                "i":11,
                "e":4
            }
        },
        "q":{
            "d":"177,67v-33,-2,-16,-52,-20,-82v-57,40,-135,-6,-135,-75v0,-68,78,-115,136,-75v3,-23,39,-18,39,4r0,209v0,10,-9,19,-20,19xm157,-90v0,-28,-21,-51,-48,-51v-27,0,-49,24,-49,51v0,28,22,51,49,51v27,0,48,-23,48,-51",
            "k":{
                "\\":18
            }
        },
        "r":{
            "d":"72,-158v11,-18,72,-38,72,-3v0,10,-8,19,-19,19v-30,-1,-49,37,-53,55v-6,31,14,87,-19,87v-10,0,-20,-9,-20,-19r0,-142v0,-10,10,-19,20,-19v12,0,20,10,19,22",
            "w":158,
            "k":{
                "*":-7,
                "\\":11,
                "\/":27,
                ",":32,
                ".":32,
                "z":4,
                "q":9,
                "o":9,
                "e":18,
                "d":9,
                "c":9,
                "a":9
            }
        },
        "s":{
            "d":"63,-127v25,26,98,12,98,71v1,64,-103,69,-134,31v-8,-6,-8,-18,-2,-26v27,-24,54,32,91,6v19,-46,-91,-14,-91,-82v0,-58,90,-65,120,-33v9,6,10,17,5,26v-23,27,-62,-35,-87,7",
            "w":177,
            "k":{
                "}":4,
                "]":5,
                "\\":27,
                "?":13,
                ")":7,
                "z":4,
                "y":-13,
                "x":9,
                "w":5,
                "v":7,
                "t":-5,
                "s":4
            }
        },
        "t":{
            "d":"85,-180v17,-2,29,6,29,20v0,14,-12,22,-29,20r0,100v11,0,20,9,20,20v0,11,-9,20,-20,20v-58,-1,-36,-85,-40,-140v-17,2,-30,-5,-30,-20v0,-15,13,-22,30,-20v2,-29,-9,-72,21,-72v29,0,17,45,19,72",
            "w":144,
            "k":{
                "\\":14,
                "t":23,
                "r":25,
                "q":5,
                "o":5,
                "h":7,
                "g":5,
                "e":14,
                "d":5,
                "c":5,
                "a":11
            }
        },
        "A":{
            "d":"209,-1v-33,6,-31,-39,-43,-58r-88,0v-12,21,-10,63,-43,58v-10,-4,-16,-16,-12,-26r80,-212v6,-17,32,-17,38,0r80,212v4,10,-2,22,-12,26xm93,-99r58,0r-29,-77",
            "w":232,
            "k":{
                "*":36,
                "-":14,
                "\\":43,
                "?":22,
                "y":4,
                "w":16,
                "v":22,
                "u":4,
                "t":11,
                "q":9,
                "o":9,
                "g":9,
                "f":7,
                "e":9,
                "d":9,
                "c":9,
                "Z":-13,
                "Y":27,
                "W":29,
                "V":32,
                "U":9,
                "T":36,
                "S":6,
                "O":14,
                "H":7,
                "G":12,
                "C":14
            }
        },
        "u":{
            "d":"181,-75v0,41,-35,75,-76,75v-41,0,-75,-34,-75,-75v0,-36,-16,-98,19,-105v52,12,-20,140,56,142v53,1,35,-73,38,-123v0,-10,7,-19,18,-19v36,0,20,69,20,105",
            "w":220,
            "k":{
                "\\":18,
                "n":9,
                "l":11
            }
        },
        "v":{
            "d":"117,-12v-3,14,-32,15,-35,0r-59,-139v-4,-10,1,-21,11,-25v9,-4,20,1,24,11r41,98r42,-98v4,-10,15,-15,24,-11v10,4,15,15,11,25",
            "w":209,
            "k":{
                "}":4,
                "]":7,
                "-":5,
                "\\":18,
                "\/":25,
                ",":31,
                ".":31,
                "?":4,
                "z":2,
                "y":5,
                "x":4,
                "w":5,
                "v":5,
                "s":7,
                "q":9,
                "o":11,
                "g":9,
                "e":11,
                "d":9,
                "c":11,
                "a":9
            }
        },
        "w":{
            "d":"119,-12v-4,15,-29,14,-35,0r-59,-139v-4,-10,1,-21,11,-25v9,-4,19,1,23,11r43,97r25,-61v5,-14,29,-14,35,0r26,61r42,-97v4,-10,16,-15,25,-11v10,4,14,15,10,25r-66,148v-39,12,-38,-48,-54,-71",
            "w":309,
            "k":{
                "}":4,
                "]":7,
                "-":4,
                "\\":18,
                "\/":22,
                ",":25,
                ".":25,
                "?":4,
                "z":2,
                "y":4,
                "x":4,
                "w":4,
                "v":5,
                "s":5,
                "q":7,
                "o":9,
                "l":21,
                "i":22,
                "g":7,
                "e":22,
                "d":7,
                "c":9,
                "a":7
            }
        },
        "x":{
            "d":"132,-170v14,-19,47,2,31,22r-42,59r42,59v15,22,-16,41,-31,22r-36,-49v-17,18,-25,47,-50,57v-15,1,-25,-18,-16,-30r43,-59r-43,-59v-6,-8,-4,-20,4,-26v9,-6,20,-4,26,4r36,48",
            "w":205,
            "k":{
                "}":4,
                "]":4,
                "-":11,
                "\\":18,
                "?":5,
                "y":4,
                "w":4,
                "v":4,
                "s":7,
                "q":11,
                "o":13,
                "i":16,
                "g":11,
                "e":13,
                "d":11,
                "c":13,
                "a":16
            }
        },
        "y":{
            "d":"150,-180v35,0,13,69,19,104v14,92,-40,161,-123,128v-10,-4,-14,-15,-9,-25v9,-19,29,-4,46,-3v21,0,39,-14,45,-33v-50,28,-109,-14,-109,-67r0,-85v0,-11,8,-19,18,-19v54,0,-19,141,57,141v52,0,34,-73,37,-122v0,-11,8,-19,19,-19",
            "w":211,
            "k":{
                "}":4,
                "]":7,
                "-":5,
                "\\":18,
                "\/":25,
                ",":31,
                ".":31,
                "?":4,
                "z":2,
                "y":4,
                "x":4,
                "w":4,
                "v":5,
                "s":7,
                "q":9,
                "o":11,
                "l":11,
                "g":9,
                "e":11,
                "d":9,
                "c":11,
                "a":9
            }
        },
        "z":{
            "d":"145,-180v16,-1,23,19,15,30r-81,112v31,4,85,-13,85,19v0,10,-9,19,-19,19r-115,-4v-7,-3,-12,-19,-4,-26r81,-112v-31,-4,-85,13,-85,-19v0,-10,9,-19,19,-19r104,0",
            "w":199,
            "k":{
                "\\":16,
                "q":5,
                "o":5,
                "g":5,
                "e":5,
                "d":5,
                "c":5
            }
        },
        "&":{
            "d":"81,-74v0,-39,43,-61,89,-55v-11,-32,32,-45,38,-17v6,21,-2,43,-18,51v7,54,-36,93,-86,95v-77,3,-115,-103,-58,-150v-28,-44,7,-102,57,-102v37,0,67,30,67,67v0,11,-9,20,-20,20v-29,-1,-13,-47,-47,-47v-15,0,-27,12,-27,27v0,20,38,42,8,56v-40,19,-30,92,20,89v27,0,48,-20,47,-49v-53,-5,-10,38,-49,45v-14,-2,-21,-10,-21,-30",
            "w":250,
            "k":{
                "Y":25,
                "W":18,
                "V":22,
                "T":32,
                "S":4
            }
        },
        "@":{
            "d":"215,-79v42,-51,-4,-133,-70,-133v-47,0,-86,39,-86,86v1,54,48,96,107,84v10,-3,21,4,24,14v6,23,-23,29,-45,28v-69,0,-126,-56,-126,-126v0,-69,57,-126,126,-126v70,0,126,57,126,126v0,44,-14,85,-61,89v-17,1,-29,-11,-33,-24v-48,25,-103,-14,-102,-65v0,-39,31,-73,70,-73v56,0,78,53,70,120xm145,-93v17,0,30,-15,30,-33v0,-18,-13,-33,-30,-33v-18,0,-30,15,-30,33v0,18,12,33,30,33",
            "w":352
        },
        "(":{
            "d":"112,34v-92,-3,-96,-133,-77,-218v9,-35,33,-70,77,-70v13,0,22,11,22,23v0,33,-46,13,-50,45v-18,44,-26,174,28,174v13,0,22,10,22,23v0,13,-9,23,-22,23",
            "w":154,
            "k":{
                "s":5,
                "q":11,
                "o":11,
                "j":-11,
                "g":7,
                "e":11,
                "d":11,
                "c":11,
                "Q":11,
                "O":11,
                "J":5,
                "G":11,
                "C":11
            }
        },
        ")":{
            "d":"130,-110v0,71,-17,140,-86,144v-13,0,-22,-10,-22,-23v0,-13,9,-23,22,-23v37,0,41,-54,41,-98v0,-47,-2,-98,-41,-98v-13,0,-22,-10,-22,-23v0,-12,9,-23,22,-23v70,5,86,71,86,144",
            "w":154
        },
        "+":{
            "d":"114,-36v-30,0,-18,-43,-20,-71v-28,-2,-71,9,-71,-20v0,-29,43,-18,71,-20v2,-27,-10,-70,20,-70v30,0,19,42,21,70v28,2,71,-9,71,20v0,29,-43,18,-71,20v-1,29,8,71,-21,71",
            "w":223
        },
        "0":{
            "d":"115,0v-121,-4,-122,-247,0,-252v119,5,120,247,0,252xm115,-40v67,-7,67,-165,0,-172v-67,6,-69,166,0,172",
            "w":255,
            "k":{
                "\/":13,
                ",":7,
                ".":7,
                "7":11,
                "3":4,
                "2":4,
                "1":2
            }
        },
        "1":{
            "d":"23,-223v21,-9,59,-48,75,-13r0,216v0,11,-9,20,-20,20v-11,0,-20,-9,-20,-20r0,-177v-11,8,-31,18,-41,1v-6,-9,-3,-22,6,-27",
            "w":120
        },
        "2":{
            "d":"31,-220v48,-60,158,-26,155,54v-2,62,-64,90,-96,126v34,5,96,-15,96,20v0,11,-9,20,-20,20r-128,0v-16,2,-29,-22,-14,-35r107,-96v31,-27,9,-84,-31,-81v-29,-6,-44,44,-71,20v-8,-7,-5,-19,2,-28",
            "w":212,
            "k":{
                "7":5,
                "4":11
            }
        },
        "3":{
            "d":"145,-90v0,-26,-23,-50,-48,-49v-16,1,-29,-22,-16,-35r37,-38v-30,-3,-77,12,-79,-20v0,-11,9,-20,20,-20r107,0v19,-1,25,23,14,35r-45,46v28,12,51,47,51,81v0,74,-100,122,-153,63v-8,-8,-9,-21,0,-28v23,-20,40,19,63,14v26,1,49,-23,49,-49",
            "w":219,
            "k":{
                "\/":4,
                "9":2,
                "7":9,
                "5":2
            }
        },
        "4":{
            "d":"157,-245v10,-13,35,-7,35,13r0,145v14,-1,24,8,24,20v0,12,-10,21,-24,20v1,23,2,47,-20,47v-21,0,-20,-25,-19,-47v-41,-2,-92,5,-126,-4v-9,-7,-10,-19,-3,-28xm153,-87r0,-89r-72,89r72,0",
            "w":239,
            "k":{
                "\/":7,
                "9":4,
                "7":14,
                "1":7
            }
        },
        "5":{
            "d":"35,-234v2,-10,9,-18,21,-18r106,0v12,0,21,9,21,21v0,37,-73,14,-110,20r-4,35v61,-17,114,33,114,87v0,73,-99,122,-153,63v-8,-8,-9,-22,0,-29v23,-20,40,20,63,14v25,2,49,-24,49,-48v0,-40,-53,-67,-83,-35v-13,13,-38,4,-35,-17",
            "w":217,
            "k":{
                "\/":7,
                "9":2,
                "7":11,
                "3":2,
                "2":4
            }
        },
        "6":{
            "d":"24,-78v-6,-90,27,-167,112,-174v11,0,20,8,21,19v1,28,-38,19,-53,31v-11,9,-21,21,-28,35v60,-25,123,20,122,80v0,48,-39,87,-87,87v-45,0,-84,-34,-87,-78xm111,-40v26,0,47,-21,47,-47v0,-26,-21,-48,-47,-48v-26,0,-47,22,-47,48v0,26,21,47,47,47",
            "w":231,
            "k":{
                "\/":4,
                "9":4,
                "7":9,
                "3":4,
                "1":7
            }
        },
        "7":{
            "d":"43,-252v47,0,121,-19,143,16v0,4,0,8,-1,11r-90,213v-4,10,-14,14,-26,11v-10,-5,-15,-16,-11,-26r78,-185r-93,0v-11,0,-20,-9,-20,-20v0,-11,9,-20,20,-20",
            "w":211,
            "k":{
                "-":11,
                "\/":50,
                ",":36,
                ".":36,
                "9":5,
                "8":4,
                "6":7,
                "5":9,
                "4":31,
                "3":7,
                "2":5,
                "1":-4,
                "0":7
            }
        },
        "8":{
            "d":"153,-157v23,15,39,41,39,71v0,47,-39,86,-86,86v-84,0,-116,-118,-48,-157v-30,-38,0,-95,48,-95v46,0,77,58,47,95xm106,-213v-12,0,-20,9,-20,20v0,11,8,21,20,21v11,0,20,-10,20,-21v0,-11,-9,-20,-20,-20xm106,-39v26,0,47,-21,47,-47v0,-26,-21,-46,-47,-46v-26,0,-47,20,-47,46v0,26,21,47,47,47",
            "w":226,
            "k":{
                "9":2,
                "7":4
            }
        },
        "9":{
            "d":"198,-174v6,90,-27,167,-112,174v-11,0,-20,-8,-21,-19v0,-27,38,-19,53,-31v11,-9,21,-21,28,-35v-60,25,-123,-20,-122,-80v0,-48,39,-87,87,-87v45,0,84,34,87,78xm111,-212v-26,0,-47,21,-47,47v0,26,21,48,47,48v26,0,47,-22,47,-48v0,-26,-21,-47,-47,-47",
            "w":231,
            "k":{
                "\/":9,
                ",":4,
                ".":4,
                "7":9,
                "5":2,
                "3":4,
                "2":4
            }
        },
        "!":{
            "d":"53,-67v-11,0,-20,-9,-20,-20r0,-145v0,-11,9,-20,20,-20v11,0,20,9,20,20r0,145v0,11,-9,20,-20,20xm53,-47v29,0,25,48,0,47v-13,-1,-20,-11,-20,-27v0,-11,9,-20,20,-20",
            "w":90
        },
        "?":{
            "d":"84,-42v12,0,17,10,17,24v0,10,-7,18,-17,18v-11,0,-18,-10,-18,-24v0,-10,9,-18,18,-18xm159,-176v0,36,-25,65,-58,73v1,19,2,41,-17,41v-23,0,-18,-32,-18,-56v0,-9,9,-18,18,-18v23,0,41,-18,41,-40v0,-41,-59,-55,-76,-21v-5,9,-16,12,-25,7v-26,-31,29,-62,60,-62v42,0,75,34,75,76",
            "w":192
        },
        "<":{
            "d":"28,-109v-8,-7,-7,-25,0,-32r102,-102v9,-9,23,-9,32,0v9,9,9,23,0,32r-85,86r85,86v21,20,-11,54,-32,33",
            "w":223
        },
        ">":{
            "d":"175,-141v8,7,7,25,0,32r-102,103v-8,8,-23,8,-32,0v-9,-9,-9,-24,0,-33r85,-86r-85,-86v-9,-9,-9,-23,0,-32v9,-9,23,-9,32,0",
            "w":223
        },
        "=":{
            "d":"108,-93v-27,0,-74,12,-80,-13v5,-25,53,-13,80,-13v7,0,13,6,13,13v0,7,-6,13,-13,13xm108,-134v-27,0,-74,12,-80,-13v7,-24,54,-12,80,-12v7,0,13,5,13,12v0,7,-6,13,-13,13",
            "w":223
        },
        ".":{
            "d":"30,-24v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27",
            "w":82,
            "k":{
                "7":7,
                "1":18,
                "0":7,
                "y":22,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        ",":{
            "d":"82,-20v0,41,-20,70,-51,72v-15,1,-15,-17,-3,-20v17,-4,25,-16,24,-32v-25,-3,-29,-52,4,-51v16,0,26,12,26,31",
            "w":82,
            "k":{
                "7":7,
                "1":18,
                "0":7,
                "y":16,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "j":-5,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        ":":{
            "d":"31,-24v0,-15,12,-27,27,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-27,-12,-27,-27xm31,-167v0,-15,12,-27,27,-27v15,0,27,12,27,27v0,15,-12,26,-27,26v-15,0,-27,-11,-27,-26",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        ";":{
            "d":"35,-164v0,-18,13,-31,31,-31v18,0,31,13,31,31v0,17,-13,31,-31,31v-18,0,-31,-14,-31,-31xm96,-19v2,44,-24,75,-61,77v-19,0,-17,-21,-3,-24v18,-3,29,-17,28,-34v-31,-4,-34,-61,4,-60v20,0,32,16,32,41",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        "\u037e":{
            "d":"35,-164v0,-18,13,-31,31,-31v18,0,31,13,31,31v0,17,-13,31,-31,31v-18,0,-31,-14,-31,-31xm96,-19v2,44,-24,75,-61,77v-19,0,-17,-21,-3,-24v18,-3,29,-17,28,-34v-31,-4,-34,-61,4,-60v20,0,32,16,32,41",
            "w":86
        },
        "\/":{
            "d":"67,-12v-12,27,-45,6,-36,-15r88,-210v4,-10,16,-15,26,-11v10,4,14,16,10,26",
            "w":151,
            "k":{
                "\/":61,
                "9":7,
                "8":5,
                "7":4,
                "6":13,
                "5":7,
                "4":34,
                "3":4,
                "2":7,
                "1":-4,
                "0":13,
                "z":22,
                "y":18,
                "x":18,
                "w":18,
                "v":18,
                "u":18,
                "A":43,
                "t":7,
                "s":31,
                "r":18,
                "q":25,
                "p":18,
                "o":29,
                "n":18,
                "m":18,
                "g":25,
                "f":9,
                "e":29,
                "d":25,
                "c":29,
                "a":23,
                "Z":7,
                "S":11,
                "Q":14,
                "O":14,
                "J":47,
                "G":14,
                "C":14
            }
        },
        "\\":{
            "d":"151,-27v5,12,-3,27,-18,27v-8,0,-16,-4,-19,-12r-88,-210v-4,-10,0,-22,10,-26v10,-4,23,1,27,11",
            "w":161,
            "k":{
                "y":22,
                "w":22,
                "v":25,
                "t":11,
                "j":-11,
                "f":4,
                "Y":40,
                "W":36,
                "V":43,
                "U":5,
                "T":32,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "\u00a0":{
            "w":108
        },
        "-":{
            "d":"113,-89v-33,0,-89,14,-89,-21v0,-35,56,-22,89,-22v12,0,21,10,21,22v0,12,-9,21,-21,21",
            "w":146,
            "k":{
                "7":14,
                "3":4,
                "1":11,
                "z":4,
                "y":5,
                "x":11,
                "w":4,
                "v":5,
                "A":14,
                "Z":11,
                "Y":29,
                "X":18,
                "W":13,
                "V":14,
                "T":32
            }
        },
        "'":{
            "d":"25,-156v10,-36,-15,-97,41,-97v10,0,14,9,11,20r-27,80v-3,15,-25,14,-25,-3",
            "w":82
        },
        "\"":{
            "d":"104,-156v8,-37,-15,-97,41,-97v9,0,13,10,10,20r-26,80v-3,16,-28,13,-25,-3xm25,-156v10,-36,-15,-97,41,-97v10,0,13,10,10,20r-26,80v-3,15,-25,14,-25,-3",
            "w":147
        },
        "#":{
            "d":"63,2v-29,0,-14,-38,-12,-60v-34,10,-48,-33,-16,-37r23,0r11,-63v-20,2,-40,-1,-40,-19v0,-20,25,-19,46,-18v6,-22,0,-59,26,-59v29,0,16,38,12,59r57,0v6,-22,-1,-59,26,-59v29,0,16,37,12,59v19,-2,36,1,36,18v0,19,-21,21,-42,19r-11,63v20,-1,39,0,39,18v0,21,-23,20,-45,19v-7,22,-1,60,-27,60v-29,0,-14,-38,-11,-60r-57,0v-7,22,1,60,-27,60xm96,-95r57,0r10,-63r-56,0",
            "w":252
        },
        "$":{
            "d":"22,-46v13,-45,58,9,85,8r0,-71v-53,-14,-77,-33,-77,-74v0,-39,30,-65,75,-69v-1,-13,4,-23,16,-23v12,0,18,10,16,24v25,7,60,9,66,37v0,11,-9,20,-20,20v-17,-5,-33,-17,-48,-19r0,69v55,14,78,35,78,74v0,40,-30,66,-76,70v1,18,2,37,-16,37v-18,0,-17,-20,-16,-38v-27,-3,-51,-13,-73,-28v-6,-4,-10,-9,-10,-17xm135,-36v46,-6,51,-55,0,-66r0,66xm107,-216v-45,6,-50,53,0,64r0,-64",
            "w":227,
            "k":{
                "7":4
            }
        },
        "*":{
            "d":"83,-136v-19,0,-8,-29,-8,-45v-13,7,-39,38,-48,11v5,-16,27,-17,40,-25v-13,-8,-35,-9,-40,-25v9,-26,35,2,48,11v0,0,-11,-46,8,-46v19,0,7,30,7,46v12,-8,38,-38,48,-11v-4,17,-27,16,-40,25v13,9,35,8,40,25v-9,27,-35,-4,-48,-11v0,16,12,45,-7,45",
            "w":154,
            "k":{
                "A":36,
                "t":-4,
                "s":4,
                "q":5,
                "o":7,
                "g":5,
                "e":7,
                "d":5,
                "c":7,
                "a":4,
                "J":29
            }
        },
        "[":{
            "d":"35,25r0,-255v3,-36,61,-22,96,-22v9,0,17,8,17,17v-2,27,-45,14,-71,17r0,231v26,3,69,-10,71,17v-5,31,-60,17,-91,17v-12,0,-22,-10,-22,-22",
            "w":154,
            "k":{
                "y":4,
                "x":4,
                "w":7,
                "v":7,
                "s":5,
                "q":7,
                "o":7,
                "j":-11,
                "e":7,
                "d":7,
                "c":7,
                "a":4,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "]":{
            "d":"132,-230r0,255v-2,37,-60,22,-95,22v-9,0,-17,-8,-17,-17v2,-27,45,-14,71,-17r0,-231v-26,-3,-69,10,-71,-17v5,-31,60,-17,91,-17v12,0,21,10,21,22",
            "w":154
        },
        "{":{
            "d":"142,49v-67,-17,-70,-39,-70,-96v0,-26,-10,-38,-34,-39v-24,0,-24,-35,0,-35v34,0,33,-31,33,-65v0,-35,15,-57,71,-69v11,-3,20,5,20,15v0,9,-6,13,-10,14v-77,10,-7,109,-77,123v33,9,37,34,37,76v0,24,5,35,40,46v4,1,10,6,10,15v0,10,-9,18,-20,15",
            "w":172,
            "k":{
                "z":4,
                "y":4,
                "x":4,
                "w":4,
                "v":4,
                "s":4,
                "q":5,
                "o":5,
                "j":-13,
                "g":4,
                "e":5,
                "d":5,
                "c":5,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "}":{
            "d":"39,-255v67,16,70,37,70,95v0,27,10,38,34,39v23,0,24,35,0,35v-34,-1,-34,30,-34,65v0,35,-14,58,-70,70v-11,3,-20,-5,-20,-15v0,-9,6,-14,11,-15v46,-14,39,-31,38,-73v0,-28,14,-41,38,-49v-33,-8,-37,-36,-37,-76v0,-24,-4,-36,-39,-47v-5,-1,-11,-5,-11,-14v0,-10,9,-18,20,-15",
            "w":172
        },
        "~":{
            "d":"72,-100v-16,0,-14,17,-28,18v-7,0,-13,-6,-13,-12v4,-25,18,-41,38,-41v20,0,38,14,51,14v16,0,15,-18,29,-18v7,0,13,6,13,12v-4,25,-18,42,-38,41v-20,0,-39,-14,-52,-14",
            "w":165
        },
        "|":{
            "d":"44,31r0,-303v0,-10,8,-17,17,-17v10,0,17,7,17,17r0,303v0,10,-7,17,-17,17v-9,0,-17,-7,-17,-17",
            "w":102
        },
        "^":{
            "d":"91,-225v-14,15,-29,48,-52,49v-12,0,-12,-10,-6,-18v18,-22,49,-86,82,-46v14,17,30,34,38,57v-23,25,-48,-28,-62,-42",
            "w":180
        },
        "_":{
            "d":"8,58v-9,0,-17,-8,-17,-17v0,-9,8,-17,17,-17r218,0v9,0,17,8,17,17v0,9,-8,17,-17,17r-218,0",
            "w":216
        },
        "`":{
            "d":"126,-220v-23,23,-57,-17,-67,-36v1,-13,36,-21,43,-4v6,14,17,25,24,40",
            "w":180
        }
    }
});
/*!
 * The following copyright notice may not be removed under any circumstances.
 *
 * Copyright:
 * Copyright (c) Andrew Paglinawan, 2008. All rights reserved.
 *
 * Trademark:
 * Dashling is a trademark of the Andrew Paglinawan.
 *
 * Full name:
 * QuicksandBookOblique-Regular
 *
 * Manufacturer:
 * Andrew Paglinawan
 *
 * Designer:
 * Andrew Paglinawan
 */
Cufon.registerFont({
    "w":237,
    "face":{
        "font-family":"Quicksand Book Oblique",
        "font-weight":400,
        "font-style":"oblique",
        "font-stretch":"normal",
        "units-per-em":"360",
        "panose-1":"2 7 3 3 0 0 0 6 0 0",
        "ascent":"288",
        "descent":"-72",
        "bbox":"-7.25483 -287 383.444 73.486",
        "underline-thickness":"18",
        "underline-position":"-18",
        "unicode-range":"U+0020-U+007E"
    },
    "glyphs":{
        " ":{
            "w":108
        },
        "B":{
            "d":"203,-84v0,79,-73,91,-158,84v-5,-1,-7,-6,-6,-11r41,-234v9,-15,43,-5,64,-7v30,-2,55,22,54,53v-1,28,-15,45,-33,59v21,8,38,30,38,56xm58,-18v67,6,123,-5,127,-66v2,-50,-58,-44,-108,-43xm80,-145v54,5,98,-6,101,-54v2,-40,-44,-38,-85,-36",
            "w":213,
            "k":{
                "?":2,
                "A":22,
                "y":4,
                "w":4,
                "v":-23,
                "i":14,
                "Y":11,
                "X":7,
                "W":5,
                "V":7,
                "T":7,
                "I":16,
                "B":25
            }
        },
        "C":{
            "d":"243,-211v-75,-58,-199,6,-199,105v0,83,105,112,167,65v4,-3,9,-2,12,2v3,4,2,9,-2,12v-73,56,-198,20,-195,-79v3,-113,141,-188,228,-118v4,3,4,8,1,12v-3,4,-8,4,-12,1",
            "w":258,
            "k":{
                "-":4,
                "y":4,
                "x":4,
                "v":4,
                "q":4,
                "o":4,
                "l":12,
                "h":11,
                "g":4,
                "e":4,
                "d":4,
                "c":4,
                "Y":4,
                "X":4,
                "Q":7,
                "O":7,
                "G":7,
                "C":7
            }
        },
        "D":{
            "d":"242,-146v-6,103,-84,157,-197,146v-5,-1,-8,-5,-7,-10r42,-234v5,-16,36,-8,55,-8v61,0,111,45,107,106xm58,-17v95,9,167,-43,167,-129v0,-64,-53,-97,-129,-88",
            "w":258,
            "k":{
                "}":7,
                "]":7,
                "\/":14,
                "\\":14,
                ",":14,
                "?":7,
                ".":14,
                "A":16,
                ")":11,
                "x":4,
                "a":-12,
                "Z":16,
                "Y":23,
                "X":20,
                "W":13,
                "V":16,
                "T":20,
                "S":4,
                "J":14
            }
        },
        "F":{
            "d":"56,-8v-2,10,-19,9,-17,-3r41,-235v1,-4,5,-7,9,-7r129,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-122,0r-18,100r105,0v5,0,8,3,8,8v0,5,-3,9,-8,9r-108,0",
            "w":216,
            "k":{
                "\/":25,
                ",":36,
                "?":-4,
                ".":36,
                "A":29,
                "z":5,
                "y":5,
                "w":4,
                "v":5,
                "u":26,
                "s":4,
                "r":9,
                "q":4,
                "o":26,
                "m":26,
                "l":27,
                "i":27,
                "h":18,
                "g":4,
                "e":5,
                "d":4,
                "c":5,
                "a":9,
                "&":11,
                "Z":4,
                "Q":7,
                "O":7,
                "J":40,
                "G":7,
                "C":7
            }
        },
        "G":{
            "d":"243,-212v-76,-60,-196,9,-199,105v-2,81,102,114,164,67r13,-73r-67,0v-5,0,-8,-3,-8,-8v0,-5,3,-9,8,-9r79,0v5,1,8,5,7,10v-7,30,-8,66,-19,92v-72,57,-197,18,-195,-79v3,-114,142,-189,229,-118v9,7,-3,20,-12,13",
            "w":288,
            "k":{
                "\\":5,
                "?":4,
                "z":27,
                "y":18,
                "w":19,
                "v":2,
                "u":18,
                "s":27,
                "r":27,
                "p":45,
                "o":23,
                "n":18,
                "m":27,
                "l":27,
                "k":27,
                "j":27,
                "i":36,
                "h":27,
                "d":27,
                "c":9,
                "Y":11,
                "X":4,
                "W":5,
                "V":7,
                "T":7
            }
        },
        "H":{
            "d":"90,-251v5,1,8,5,7,10r-19,107r129,0r20,-110v1,-5,5,-8,10,-7v5,1,8,5,7,10r-41,235v-2,11,-20,8,-18,-3r19,-107r-129,0r-20,110v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10r42,-235v1,-5,5,-8,10,-7",
            "w":273,
            "k":{
                "u":9,
                "s":27,
                "r":18,
                "o":9,
                "i":27,
                "a":9
            }
        },
        "I":{
            "d":"58,-6v-2,10,-20,8,-17,-3r41,-235v1,-5,5,-8,10,-7v5,1,8,5,7,10",
            "w":109,
            "k":{
                "r":18,
                "p":18
            }
        },
        "J":{
            "d":"33,-63v4,27,25,46,55,46v38,0,76,-31,82,-69r28,-158v1,-5,5,-8,10,-7v5,1,8,5,7,10r-28,157v-8,86,-154,121,-171,24v-1,-5,2,-9,7,-10v5,-1,9,2,10,7",
            "w":213,
            "k":{
                ",":5,
                ".":5,
                "A":9,
                "i":-11,
                "h":-8,
                "e":-15,
                "a":-19,
                "J":7
            }
        },
        "K":{
            "d":"90,-252v5,1,8,5,7,10r-25,144r179,-153v4,-3,9,-2,12,2v3,4,3,9,-1,12r-115,98r81,125v4,5,0,14,-7,13v-3,0,-6,-1,-8,-4r-79,-123r-67,57r-12,63v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10r42,-234v1,-5,5,-8,10,-7",
            "w":257,
            "k":{
                "-":18,
                "y":18,
                "w":18,
                "v":22,
                "u":7,
                "t":9,
                "q":9,
                "o":11,
                "g":9,
                "f":7,
                "e":11,
                "d":9,
                "c":11,
                "a":4,
                "&":4,
                "Y":14,
                "W":11,
                "V":11,
                "U":5,
                "T":4,
                "S":4,
                "Q":18,
                "O":18,
                "G":18,
                "C":18
            }
        },
        "L":{
            "d":"185,-8v0,5,-4,8,-9,8r-131,0v-5,-1,-8,-5,-7,-10r42,-234v1,-5,5,-8,10,-7v5,1,8,5,7,10r-40,224r119,0v5,0,9,4,9,9",
            "w":222,
            "k":{
                "\\":43,
                "*":29,
                "-":14,
                "?":22,
                "y":22,
                "w":18,
                "v":22,
                "u":11,
                "t":7,
                "q":2,
                "o":18,
                "g":2,
                "f":7,
                "e":4,
                "d":2,
                "c":4,
                "&":4,
                "Y":47,
                "W":36,
                "V":41,
                "U":7,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "M":{
            "d":"251,-7v-2,10,-20,8,-18,-3r37,-205r-101,112v-3,5,-13,3,-15,-2r-61,-112r-37,210v-1,5,-5,8,-11,7v-5,-1,-8,-5,-7,-10r42,-234v2,-7,12,-10,17,-3r67,124r112,-125v5,-6,18,-2,16,7",
            "w":312
        },
        "N":{
            "d":"38,-11r42,-233v-1,-9,12,-12,16,-4r116,213r36,-209v1,-5,5,-8,10,-7v5,1,9,5,8,10r-41,233v-2,8,-15,9,-18,2r-114,-211r-38,209v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10",
            "w":284
        },
        "O":{
            "d":"26,-104v2,-86,70,-147,142,-148v65,-1,113,59,98,128r-8,-2r8,2v-13,69,-73,124,-139,124v-58,1,-102,-46,-101,-104xm127,-17v62,0,124,-56,124,-131v0,-50,-34,-86,-84,-86v-61,2,-123,56,-123,130v0,50,34,87,83,87",
            "w":306,
            "k":{
                "}":7,
                "]":7,
                "\/":14,
                "\\":14,
                ",":14,
                "?":7,
                ".":14,
                "A":14,
                ")":11,
                "z":18,
                "x":27,
                "u":27,
                "s":18,
                "r":27,
                "q":27,
                "p":18,
                "o":27,
                "n":27,
                "m":27,
                "l":27,
                "Z":14,
                "Y":22,
                "X":18,
                "W":13,
                "V":14,
                "T":20,
                "S":2,
                "J":11
            }
        },
        "P":{
            "d":"221,-191v-3,73,-67,90,-148,83r-18,101v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10r42,-235v1,-4,4,-7,9,-7r70,0v35,0,64,26,62,61xm76,-126v67,5,125,-4,127,-65v2,-50,-58,-44,-108,-43",
            "w":209,
            "k":{
                "\/":22,
                ",":36,
                ".":36,
                "A":25,
                "y":-18,
                "w":-27,
                "v":-27,
                "u":-2,
                "t":-5,
                "f":-27,
                "e":2,
                "c":2,
                "a":-27,
                "&":7,
                "Z":5,
                "Y":4,
                "X":11,
                "W":2,
                "V":4,
                "J":36
            }
        },
        "Q":{
            "d":"143,7v39,17,74,46,120,10v4,-3,9,-3,12,1v2,4,1,9,-4,13v-23,15,-42,21,-61,21v-41,0,-80,-46,-123,-21v-5,3,-12,1,-12,-4v1,-19,29,-19,43,-28v-58,-8,-94,-62,-83,-126v13,-70,76,-129,143,-129v67,0,110,59,98,129v-12,68,-68,115,-133,134xm53,-127v-11,61,26,110,83,110v56,0,112,-49,123,-110v11,-62,-27,-111,-84,-111v-56,0,-111,49,-122,111",
            "w":303,
            "k":{
                "?":7,
                ")":4,
                "Y":23,
                "W":13,
                "V":14,
                "T":20
            }
        },
        "R":{
            "d":"192,-4v-30,2,-23,-39,-19,-63v-4,-45,-55,-42,-105,-41r-17,101v-1,5,-5,8,-11,7v-5,-1,-8,-5,-7,-10r42,-235v13,-16,54,-7,79,-7v35,0,62,26,62,61v-1,39,-24,63,-54,77v23,9,33,46,25,81v-3,17,22,14,5,29xm91,-234r-19,108v67,5,124,-3,127,-65v3,-49,-58,-44,-108,-43",
            "w":225,
            "k":{
                "A":20,
                "t":-4,
                "q":2,
                "o":4,
                "g":2,
                "f":-4,
                "e":4,
                "d":2,
                "c":4,
                "Y":9,
                "W":5,
                "V":7,
                "U":22,
                "T":4,
                "J":2
            }
        },
        "S":{
            "d":"73,-188v-6,74,156,27,142,119v-6,41,-56,68,-104,69v-37,0,-68,-19,-85,-36v-3,-3,-2,-8,1,-11v3,-4,8,-4,11,-1v34,45,154,41,161,-21v9,-77,-153,-30,-141,-119v5,-38,51,-64,96,-64v33,0,55,16,72,29v3,2,4,7,1,11v-3,4,-9,5,-12,2v-35,-42,-138,-29,-142,22",
            "w":240,
            "k":{
                "\\":7,
                "?":4,
                "A":5,
                "z":2,
                "y":5,
                "x":5,
                "w":4,
                "v":5,
                "t":2,
                "p":18,
                "n":9,
                "m":9,
                "l":18,
                "f":2,
                "Z":4,
                "Y":11,
                "X":9,
                "W":9,
                "V":11,
                "T":5,
                "S":4
            }
        },
        "T":{
            "d":"79,-8v-2,12,-19,8,-17,-3r39,-224r-74,0v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8r169,0v5,0,9,3,9,8v0,5,-4,9,-9,9r-77,0",
            "w":233,
            "k":{
                "\/":32,
                "E":-11,
                ",":36,
                ";":18,
                ":":18,
                "-":32,
                ".":36,
                "A":32,
                "z":81,
                "y":63,
                "x":36,
                "w":63,
                "v":36,
                "u":72,
                "t":18,
                "s":81,
                "r":81,
                "q":45,
                "p":36,
                "o":81,
                "n":36,
                "m":36,
                "l":5,
                "j":14,
                "i":72,
                "h":57,
                "g":45,
                "f":18,
                "e":49,
                "d":45,
                "c":49,
                "a":49,
                "&":25,
                "Z":7,
                "S":5,
                "Q":20,
                "O":20,
                "J":40,
                "G":20,
                "C":20
            }
        },
        "U":{
            "d":"125,0v-55,0,-96,-45,-85,-104r24,-141v1,-5,6,-8,11,-7v5,1,8,5,7,10r-27,156v13,114,155,65,170,-18r26,-141v1,-5,5,-8,10,-7v5,1,8,5,7,10r-25,141v-10,56,-62,101,-118,101",
            "w":293,
            "k":{
                "\/":5,
                ",":5,
                ".":5,
                "A":9,
                "x":2,
                "p":27,
                "X":4,
                "J":7
            }
        },
        "V":{
            "d":"95,-5v-2,7,-15,5,-16,-2r-57,-235v-1,-5,1,-9,6,-10v5,-1,10,1,11,6r52,214r129,-216v3,-4,8,-6,12,-3v4,3,6,8,3,12",
            "w":270,
            "k":{
                "\/":43,
                ",":43,
                ";":7,
                ":":7,
                "-":14,
                ".":43,
                "A":36,
                "z":20,
                "y":14,
                "x":18,
                "w":13,
                "v":14,
                "u":14,
                "t":7,
                "s":45,
                "r":14,
                "q":23,
                "p":14,
                "o":63,
                "n":14,
                "m":14,
                "l":4,
                "j":7,
                "i":45,
                "h":45,
                "g":23,
                "f":9,
                "e":56,
                "d":23,
                "c":25,
                "a":25,
                "&":20,
                "Z":4,
                "Y":7,
                "X":7,
                "W":4,
                "V":4,
                "S":9,
                "Q":14,
                "O":14,
                "J":43,
                "G":14,
                "C":14
            }
        },
        "W":{
            "d":"96,-4v-3,6,-15,5,-16,-2r-57,-235v-1,-5,1,-10,6,-11v5,-1,10,2,11,7r52,214r92,-154v4,-6,15,-5,17,2r37,152r129,-216v3,-4,8,-7,12,-4v4,3,6,9,3,13r-145,238v-6,1,-10,-3,-11,-6r-37,-153",
            "w":396,
            "k":{
                "\/":36,
                ",":36,
                ";":5,
                ":":5,
                "-":13,
                ".":36,
                "A":32,
                "z":20,
                "y":36,
                "x":14,
                "w":13,
                "v":13,
                "u":45,
                "t":9,
                "s":22,
                "r":13,
                "q":22,
                "p":13,
                "o":45,
                "n":13,
                "m":13,
                "l":4,
                "j":5,
                "i":45,
                "g":22,
                "f":11,
                "e":45,
                "d":22,
                "c":23,
                "a":27,
                "&":16,
                "Z":4,
                "Y":7,
                "X":5,
                "W":4,
                "V":4,
                "S":7,
                "Q":13,
                "O":13,
                "J":38,
                "G":13,
                "C":13
            }
        },
        "X":{
            "d":"153,-124r62,111v3,5,0,15,-8,14v-3,0,-6,-2,-7,-5r-59,-107r-98,109v-8,9,-21,-4,-13,-12r102,-113r-62,-111v-6,-11,9,-18,15,-9r59,107r98,-108v7,-9,22,2,13,11",
            "w":259,
            "k":{
                "-":18,
                "?":5,
                "y":14,
                "w":14,
                "v":18,
                "u":7,
                "t":7,
                "q":14,
                "o":16,
                "l":4,
                "j":4,
                "i":27,
                "g":14,
                "f":7,
                "e":16,
                "d":14,
                "c":16,
                "a":18,
                "&":4,
                "Y":7,
                "W":5,
                "V":7,
                "U":4,
                "S":11,
                "Q":18,
                "O":18,
                "J":4,
                "G":18,
                "C":18
            }
        },
        "Y":{
            "d":"209,-237r-106,117r-19,113v-1,5,-5,8,-11,7v-5,-1,-8,-5,-7,-10r20,-113r-64,-115v-6,-11,9,-18,15,-9r60,108r99,-109v3,-4,8,-4,12,-1v4,3,4,8,1,12",
            "w":217,
            "k":{
                "\/":40,
                ",":47,
                ";":14,
                ":":14,
                "-":29,
                ".":47,
                "A":40,
                "z":29,
                "y":22,
                "x":25,
                "w":20,
                "v":22,
                "u":27,
                "t":11,
                "s":36,
                "r":27,
                "q":38,
                "p":63,
                "o":40,
                "n":27,
                "m":27,
                "l":4,
                "j":7,
                "i":36,
                "g":38,
                "f":14,
                "e":54,
                "d":38,
                "c":40,
                "a":45,
                "&":25,
                "Z":4,
                "X":7,
                "W":7,
                "V":7,
                "S":13,
                "Q":22,
                "O":22,
                "J":47,
                "G":22,
                "C":22
            }
        },
        "Z":{
            "d":"247,-251v8,-1,11,9,7,14r-200,220r152,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-179,-4v-1,-2,-2,-9,1,-11r199,-220r-151,0v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8r171,0",
            "w":240,
            "k":{
                "-":11,
                "y":5,
                "w":5,
                "v":7,
                "q":7,
                "o":9,
                "g":7,
                "f":4,
                "e":9,
                "d":7,
                "c":9,
                "&":5,
                "Z":4,
                "S":4,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "&":{
            "d":"158,-115v24,2,39,-2,39,-27v0,-5,3,-10,8,-10v6,0,9,5,9,12v0,22,-13,36,-29,41v-1,58,-47,97,-97,99v-40,1,-71,-29,-70,-69v1,-40,22,-64,49,-82v-30,-44,16,-102,61,-101v34,1,57,27,51,63v-1,5,-5,8,-10,7v-9,-1,-8,-11,-6,-18v0,-20,-14,-34,-35,-34v-26,1,-49,23,-53,52v-2,18,24,28,10,42v-27,14,-49,36,-50,71v0,30,21,52,53,52v40,0,79,-34,79,-80v-39,-4,-64,10,-64,38v1,11,-18,13,-18,2v0,-34,26,-61,73,-58",
            "w":250,
            "k":{
                "Y":25,
                "W":18,
                "V":22,
                "T":32,
                "S":4
            }
        },
        "\u00a0":{
            "w":108
        },
        "0":{
            "d":"23,-96v3,-78,43,-156,111,-156v56,0,77,65,67,127r-9,-1r9,1v-10,59,-49,125,-108,125v-45,0,-71,-45,-70,-96xm93,-18v55,0,92,-71,93,-138v0,-41,-16,-78,-52,-78v-55,0,-92,71,-93,138v0,41,16,78,52,78",
            "w":255,
            "k":{
                "\/":13,
                ",":7,
                ".":7,
                "7":11,
                "3":4,
                "2":4,
                "1":2
            }
        },
        "1":{
            "d":"71,-251v6,-4,14,2,13,9r-42,235v-2,10,-20,8,-17,-3r38,-217v-16,5,-34,29,-50,17v-2,-4,0,-10,4,-12",
            "w":120
        },
        "2":{
            "d":"63,-220v41,-49,145,-41,143,37v0,27,-15,55,-39,74r-116,91r116,0v5,0,9,4,9,9v0,5,-4,9,-9,9r-141,0v-7,1,-12,-11,-5,-16r136,-106v47,-31,39,-113,-22,-113v-21,0,-47,15,-61,29v-4,3,-10,2,-13,-2v-3,-4,-2,-9,2,-12",
            "w":212,
            "k":{
                "7":5,
                "4":11
            }
        },
        "3":{
            "d":"206,-252v10,0,7,11,3,16r-77,67v65,11,68,106,17,144v-38,29,-90,36,-121,0v-3,-3,-1,-9,3,-13v4,-4,10,-4,13,0v55,58,161,-28,112,-95v-12,-17,-35,-16,-51,-24v-3,-4,-2,-9,2,-13r74,-64r-96,0v-5,0,-9,-4,-8,-9v1,-5,6,-9,11,-9r118,0",
            "w":219,
            "k":{
                "\/":4,
                "9":2,
                "7":9,
                "5":2
            }
        },
        "4":{
            "d":"199,-250v7,-5,17,-1,16,8r-31,172v11,0,24,-2,24,9v0,12,-16,9,-27,9v-6,16,-1,50,-18,51v-16,-8,1,-35,0,-51v-46,-2,-102,5,-142,-3v-4,-4,-4,-8,0,-12xm48,-70r118,0r26,-147",
            "w":239,
            "k":{
                "\/":7,
                "9":4,
                "7":14,
                "1":7
            }
        },
        "5":{
            "d":"164,-99v0,-55,-69,-70,-107,-33v-6,6,-18,0,-15,-10v11,-36,19,-76,35,-108v35,-6,83,0,122,-2v5,0,10,4,10,9v0,5,-5,9,-10,9r-111,0r-22,74v52,-30,116,3,116,61v0,71,-102,137,-157,74v-3,-4,-3,-10,1,-13v4,-3,10,-3,13,1v44,51,125,-8,125,-62",
            "w":217,
            "k":{
                "\/":7,
                "9":2,
                "7":11,
                "3":2,
                "2":4
            }
        },
        "6":{
            "d":"23,-71v2,-84,54,-178,141,-182v5,0,9,4,9,9v0,5,-3,9,-8,9v-55,1,-92,48,-109,94v47,-50,151,-23,135,59r-9,-2r9,2v-8,46,-51,81,-97,81v-41,0,-72,-31,-71,-70xm94,-18v40,0,80,-33,81,-79v0,-30,-22,-52,-55,-52v-39,1,-78,33,-79,78v0,30,21,53,53,53",
            "w":231,
            "k":{
                "\/":4,
                "9":4,
                "7":9,
                "3":4,
                "1":7
            }
        },
        "7":{
            "d":"173,-252v8,-1,9,8,8,13r-140,234v-2,4,-8,7,-12,3v-4,-3,-6,-8,-3,-12r132,-221r-121,0v-5,0,-8,-4,-8,-9v0,-5,3,-8,8,-8r136,0",
            "w":211,
            "k":{
                "\/":50,
                ",":36,
                "-":11,
                ".":36,
                "9":5,
                "8":4,
                "6":7,
                "5":9,
                "4":31,
                "3":7,
                "2":5,
                "1":-4,
                "0":7
            }
        },
        "8":{
            "d":"131,-252v55,0,58,78,16,95v23,10,39,35,39,63v-1,56,-47,93,-96,94v-39,1,-70,-31,-70,-69v1,-47,31,-74,66,-89v-37,-32,0,-94,45,-94xm80,-199v5,0,10,0,8,7v0,16,11,27,28,27v39,0,65,-70,15,-70v-20,0,-40,17,-43,37xm90,-17v39,0,77,-32,78,-77v0,-30,-20,-52,-52,-52v-36,0,-72,30,-78,66r-8,-2v8,0,8,5,7,13v0,30,21,52,53,52",
            "w":226,
            "k":{
                "9":2,
                "7":4
            }
        },
        "9":{
            "d":"121,-252v43,0,75,32,72,77v-6,77,-55,174,-142,175v-5,0,-9,-4,-9,-9v0,-5,4,-9,9,-9v54,-2,91,-48,109,-94v-44,47,-138,27,-136,-44v2,-57,47,-96,97,-96xm95,-103v39,0,80,-33,80,-79v0,-89,-125,-50,-133,15r-8,-2v8,0,8,5,7,13v0,30,22,53,54,53",
            "w":231,
            "k":{
                "\/":9,
                ",":4,
                ".":4,
                "7":9,
                "5":2,
                "3":4,
                "2":4
            }
        },
        "a":{
            "d":"155,-33v-40,54,-141,38,-141,-40v0,-87,115,-141,160,-67v4,-13,0,-36,15,-36v5,1,8,5,7,10r-28,159v-2,10,-20,8,-17,-3xm113,-158v-41,0,-82,37,-82,85v0,32,23,56,54,56v39,-1,81,-36,81,-86v0,-32,-21,-55,-53,-55",
            "w":222,
            "k":{
                "\\":27,
                "*":5,
                "?":13,
                "z":27,
                "x":24,
                "w":7,
                "v":7,
                "s":9,
                "r":18,
                "p":40,
                "n":21,
                "m":21,
                "l":18,
                "k":22,
                "j":9,
                "i":20,
                "g":9,
                "d":13,
                "c":11,
                "b":18
            }
        },
        "b":{
            "d":"219,-86v-8,76,-121,121,-162,51v-4,13,1,36,-16,36v-5,-1,-7,-6,-6,-11r41,-234v1,-5,5,-8,10,-7v5,1,8,5,7,10r-17,98v46,-59,160,-33,143,57r-9,-1xm120,-17v40,0,82,-35,83,-85v0,-33,-22,-56,-56,-56v-41,1,-83,38,-83,85v0,33,23,56,56,56",
            "k":{
                "}":5,
                "]":7,
                "\\":25,
                "*":5,
                ",":4,
                "?":13,
                ".":4,
                ")":11,
                "z":5,
                "y":-9,
                "x":11,
                "w":7,
                "v":9,
                "r":11,
                "e":-18,
                "a":-18
            }
        },
        "c":{
            "d":"157,-19v-50,40,-137,12,-136,-56v2,-81,98,-130,159,-82v9,7,-5,19,-12,13v-47,-40,-130,6,-130,69v0,54,69,73,109,42v4,-3,9,-2,12,2v3,4,2,9,-2,12",
            "w":205,
            "k":{
                "\\":14,
                "?":5,
                ")":5,
                "y":2,
                "x":4,
                "w":2,
                "v":2,
                "t":-12,
                "q":4,
                "o":5,
                "k":23,
                "h":27,
                "g":4,
                "e":5,
                "d":4,
                "c":5
            }
        },
        "d":{
            "d":"166,-33v-42,54,-144,38,-144,-41v0,-89,120,-140,163,-67r18,-104v1,-5,6,-8,11,-7v5,1,8,5,7,10r-41,234v-1,4,-5,8,-10,8v-14,-3,-5,-21,-4,-33xm94,-18v40,0,82,-35,83,-85v0,-33,-22,-56,-55,-56v-37,0,-75,32,-82,72r-8,-2v9,-1,7,8,7,15v0,33,22,56,55,56",
            "k":{
                "r":27,
                "p":36,
                "o":18,
                "n":18,
                "l":30
            }
        },
        "e":{
            "d":"170,-40v-37,59,-152,50,-149,-34v1,-61,49,-102,101,-102v45,0,78,36,71,85v-1,4,-4,6,-8,6r-146,0v-14,73,85,86,118,35v3,-4,8,-4,12,-1v4,3,4,7,1,11xm122,-159v-33,0,-66,25,-78,57r133,-1v0,-32,-22,-56,-55,-56",
            "w":219,
            "k":{
                "}":4,
                "]":7,
                "\\":29,
                "*":7,
                ",":4,
                "?":14,
                ".":4,
                ")":11,
                "z":36,
                "x":28,
                "w":9,
                "v":9,
                "s":14,
                "r":37,
                "p":27,
                "n":27,
                "m":9,
                "i":9,
                "h":27,
                "c":6,
                "b":11
            }
        },
        "f":{
            "d":"118,-252v5,0,8,4,7,9v-3,14,-29,7,-34,16v-8,4,-13,32,-15,48v12,1,33,-5,32,8v-2,13,-21,8,-35,9r-28,154v-1,10,-19,11,-17,0r27,-154v-12,-1,-33,5,-31,-9v3,-12,21,-7,34,-8v3,-40,18,-74,60,-73",
            "w":130,
            "k":{
                "}":-11,
                "]":-7,
                "\/":16,
                "\\":-11,
                "*":-11,
                ",":16,
                "?":-13,
                ".":16,
                ")":-11,
                "z":4,
                "q":4,
                "o":26,
                "i":27,
                "h":27,
                "g":4,
                "e":12,
                "d":4,
                "c":9,
                "a":5
            }
        },
        "g":{
            "d":"162,-32v-40,52,-140,38,-140,-40v0,-90,116,-141,159,-68v4,-13,0,-36,15,-36v5,1,8,6,7,11r-27,153v-11,57,-72,103,-131,74v-4,-2,-6,-8,-4,-12v11,-11,24,4,40,3v42,-3,79,-38,81,-85xm120,-158v-39,0,-81,36,-81,86v0,33,22,55,54,55v40,0,81,-37,81,-85v0,-33,-22,-56,-54,-56",
            "k":{
                "\\":18,
                "u":9,
                "r":27,
                "p":36,
                "o":18,
                "h":36,
                "f":9
            }
        },
        "h":{
            "d":"51,-7v-1,10,-19,8,-18,-1r42,-236v1,-5,5,-8,10,-7v5,1,9,5,8,10r-16,89v40,-45,135,-22,121,50r-18,95v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10v5,-53,47,-149,-27,-149v-31,0,-63,26,-68,57",
            "w":220,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "w":5,
                "v":7,
                "e":7,
                "a":-7
            }
        },
        "i":{
            "d":"43,0v-4,0,-10,-6,-8,-10r28,-159v1,-5,5,-7,10,-7v5,0,8,5,7,10r-29,159v-1,4,-4,7,-8,7xm82,-228v12,2,7,24,-3,25v-10,0,-8,-10,-7,-18v1,-4,6,-8,10,-7",
            "w":101,
            "k":{
                "x":27,
                "v":-17,
                "t":-14,
                "p":18,
                "l":8,
                "h":9
            }
        },
        "j":{
            "d":"80,-229v12,2,8,25,-3,25v-9,0,-9,-10,-7,-18v1,-4,6,-8,10,-7xm70,-176v5,1,8,4,7,9r-37,207v-3,16,-17,28,-33,28v-5,0,-9,-3,-9,-8v2,-14,22,-7,25,-23r37,-207v0,-4,5,-7,10,-6",
            "w":89,
            "k":{
                "a":-22
            }
        },
        "k":{
            "d":"167,-1v-4,3,-9,3,-12,-2r-52,-81r-44,37v-6,16,2,46,-18,48v-5,-1,-8,-5,-7,-10r42,-235v1,-5,5,-8,10,-7v5,1,8,5,7,10r-29,167r121,-103v8,-8,21,6,12,13r-81,69r54,82v3,4,1,9,-3,12",
            "w":201,
            "k":{
                "\\":14,
                "-":7,
                "y":5,
                "w":-27,
                "v":7,
                "u":4,
                "t":4,
                "q":9,
                "o":9,
                "g":9,
                "e":9,
                "d":9,
                "c":9,
                "a":-18
            }
        },
        "l":{
            "d":"88,-252v5,1,8,5,7,10r-41,235v-2,10,-20,8,-17,-3r41,-234v1,-5,5,-9,10,-8",
            "w":89,
            "k":{
                "y":-34,
                "v":-36,
                "t":-24,
                "f":-9,
                "e":-16,
                "a":-27
            }
        },
        "m":{
            "d":"68,-102r-20,102v-8,3,-16,-1,-14,-9r28,-159v1,-5,5,-8,10,-7v11,1,6,14,5,23v31,-35,100,-30,114,14v31,-59,145,-45,130,36r-17,96v-2,10,-18,8,-17,-3v6,-53,48,-145,-27,-149v-31,-2,-61,27,-66,56r-17,96v-2,5,-4,8,-10,7v-5,-1,-7,-5,-6,-10v4,-53,48,-149,-27,-149v-30,0,-60,25,-66,56",
            "w":342,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "y":5,
                "w":-9,
                "v":7,
                "t":-27,
                "e":-18,
                "a":-9
            }
        },
        "n":{
            "d":"77,-152v39,-46,131,-20,117,50r-17,95v-2,10,-19,8,-17,-3v7,-51,46,-148,-27,-148v-30,0,-59,24,-65,55v-7,34,-11,73,-22,103v-8,1,-13,-3,-12,-10r28,-158v1,-5,5,-8,10,-7v11,1,6,14,5,23",
            "w":220,
            "k":{
                "\\":27,
                "*":5,
                "?":11,
                "y":5,
                "w":5,
                "v":7,
                "p":18,
                "i":18,
                "e":-11,
                "a":-9
            }
        },
        "o":{
            "d":"124,-176v47,0,79,41,69,90r-8,-2r8,2v-9,48,-51,86,-97,86v-40,0,-72,-31,-71,-73v2,-59,48,-103,99,-103xm96,-17v40,-1,82,-38,82,-86v0,-33,-22,-56,-55,-56v-40,1,-81,38,-81,86v0,33,22,56,54,56",
            "w":225,
            "k":{
                "}":5,
                "]":7,
                "\\":29,
                "*":7,
                ",":7,
                "?":18,
                ".":7,
                ")":11,
                "z":45,
                "y":11,
                "x":13,
                "w":9,
                "v":11,
                "u":18,
                "t":14,
                "r":22,
                "p":36,
                "n":18,
                "m":14,
                "l":18,
                "g":9,
                "f":13
            }
        },
        "p":{
            "d":"231,-102v0,89,-117,134,-162,66r-18,102v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10r41,-231v1,-5,5,-9,10,-8v14,3,5,21,4,33v42,-55,142,-37,142,41xm132,-19v39,-1,80,-35,81,-83v0,-33,-21,-56,-55,-56v-39,1,-80,35,-81,84v0,32,23,55,55,55",
            "k":{
                "}":5,
                "]":7,
                "\\":25,
                "*":5,
                ",":4,
                "?":13,
                ".":4,
                ")":11,
                "z":5,
                "y":9,
                "x":11,
                "w":7,
                "v":9,
                "p":27,
                "l":7,
                "g":-18,
                "e":-7,
                "d":-27,
                "a":-27
            }
        },
        "q":{
            "d":"22,-74v0,-90,119,-138,162,-66v4,-13,0,-36,15,-36v5,1,8,6,7,11r-41,232v-2,10,-20,8,-17,-3r17,-98v-40,54,-143,39,-143,-40xm94,-18v40,0,82,-36,82,-85v0,-94,-127,-52,-136,16r-8,-1r8,1v-7,39,18,69,54,69",
            "k":{
                "\\":18,
                "u":18
            }
        },
        "r":{
            "d":"152,-158v-41,-2,-75,49,-87,72r-14,78v-1,5,-6,10,-10,7v-5,-1,-7,-4,-6,-9r28,-158v1,-5,4,-9,9,-8v16,6,0,31,1,46v18,-21,43,-46,79,-46v5,0,9,4,9,9v0,5,-4,9,-9,9",
            "w":158,
            "k":{
                "\/":27,
                "\\":11,
                "*":-7,
                ",":32,
                ".":32,
                "z":4,
                "x":9,
                "v":-22,
                "t":-23,
                "q":9,
                "p":18,
                "f":-17,
                "d":9,
                "c":9
            }
        },
        "s":{
            "d":"75,-150v-31,18,-9,46,25,50v30,3,59,17,54,50v-2,15,-13,26,-26,36v-31,24,-87,12,-106,-11v-3,-3,-4,-8,0,-12v4,-4,10,-4,13,-1v24,39,131,15,94,-32v-26,-19,-94,-12,-87,-60v7,-46,89,-60,119,-27v4,3,4,8,1,12v-18,13,-31,-19,-54,-14v-13,0,-24,3,-33,9",
            "w":177,
            "k":{
                "}":4,
                "]":5,
                "\\":27,
                "?":13,
                ")":7,
                "z":4,
                "y":-9,
                "x":9,
                "w":5,
                "v":7,
                "t":-5,
                "s":4,
                "p":21,
                "i":12,
                "c":-9,
                "a":-18
            }
        },
        "t":{
            "d":"51,0v-17,0,-30,-14,-27,-33r23,-126v-12,-1,-32,5,-32,-8v0,-14,22,-8,35,-9r12,-69v1,-5,5,-8,10,-7v5,1,8,5,7,10r-11,66v18,3,50,-8,54,9v-5,16,-39,5,-57,8r-24,132v-1,13,20,5,19,18v0,5,-4,9,-9,9",
            "w":144,
            "k":{
                "\\":14,
                "z":27,
                "y":18,
                "t":23,
                "s":35,
                "r":36,
                "q":5,
                "o":36,
                "m":27,
                "l":27,
                "k":27,
                "i":46,
                "h":43,
                "g":5,
                "e":49,
                "d":5,
                "c":36,
                "b":27,
                "a":11
            }
        },
        "u":{
            "d":"91,0v-39,0,-67,-31,-60,-73r17,-95v1,-5,5,-9,10,-8v4,1,7,5,6,10v-4,53,-47,148,27,148v30,0,60,-24,66,-55r17,-95v1,-5,4,-9,9,-8v5,1,8,5,7,10r-16,96v-7,39,-44,70,-83,70",
            "w":220,
            "k":{
                "\\":18,
                "s":27,
                "r":27,
                "p":45,
                "n":23,
                "m":27,
                "l":45,
                "i":24,
                "h":27,
                "g":9,
                "d":18,
                "b":36,
                "a":9
            }
        },
        "v":{
            "d":"74,-5v-3,6,-15,5,-15,-2r-39,-158v-1,-4,1,-9,6,-10v5,-1,9,2,10,7r34,137r83,-140v3,-4,8,-6,12,-3v4,3,6,8,3,12",
            "w":209,
            "k":{
                "}":4,
                "]":7,
                "\/":25,
                "\\":18,
                ",":31,
                "-":5,
                "?":4,
                ".":31,
                "z":2,
                "y":5,
                "x":4,
                "w":5,
                "v":5,
                "u":27,
                "s":45,
                "q":9,
                "o":18,
                "i":34,
                "g":9,
                "e":51,
                "d":9,
                "c":11,
                "a":21
            }
        },
        "w":{
            "d":"76,-5v-3,7,-16,4,-16,-3r-38,-157v-1,-5,1,-9,6,-10v5,-1,10,2,11,7r33,137r58,-98v3,-7,14,-4,16,3r24,95r83,-140v3,-4,8,-6,12,-3v4,3,5,8,2,12r-98,161v-7,1,-10,-2,-11,-7r-23,-95",
            "w":309,
            "k":{
                "}":4,
                "]":7,
                "\/":22,
                "\\":18,
                ",":25,
                "-":4,
                "?":4,
                ".":25,
                "z":2,
                "y":27,
                "x":4,
                "w":4,
                "v":5,
                "s":5,
                "r":27,
                "q":7,
                "o":40,
                "n":45,
                "k":36,
                "i":78,
                "h":36,
                "g":45,
                "e":27,
                "d":7,
                "c":36,
                "a":27
            }
        },
        "x":{
            "d":"170,-172v3,-4,8,-4,12,-1v3,3,4,8,1,12r-68,74r41,73v3,5,-1,14,-8,13v-3,0,-6,-1,-7,-4r-37,-69v-24,24,-43,53,-70,73v-7,1,-12,-9,-7,-14r68,-74r-41,-73v-6,-11,9,-18,15,-9r38,69",
            "w":205,
            "k":{
                "}":4,
                "]":4,
                "\\":18,
                "-":11,
                "?":5,
                "y":4,
                "w":4,
                "v":4,
                "s":7,
                "q":11,
                "o":13,
                "n":18,
                "m":25,
                "i":36,
                "g":11,
                "e":13,
                "d":11,
                "c":13,
                "a":16
            }
        },
        "y":{
            "d":"166,-169v2,-10,19,-8,17,3r-27,154v-10,57,-73,100,-132,73v-9,-4,-2,-19,8,-15v50,21,104,-18,108,-69v-39,44,-128,21,-116,-50r16,-96v1,-4,5,-8,10,-7v5,1,8,5,7,10v-5,52,-46,149,27,149v30,0,60,-25,65,-56",
            "w":211,
            "k":{
                "}":4,
                "]":7,
                "\/":25,
                "\\":18,
                ",":31,
                "-":5,
                "?":4,
                ".":31,
                "z":2,
                "y":4,
                "x":4,
                "w":4,
                "v":5,
                "s":7,
                "r":27,
                "q":9,
                "p":40,
                "o":11,
                "n":27,
                "m":9,
                "l":18,
                "k":36,
                "h":18,
                "g":9,
                "e":11,
                "d":9,
                "c":11,
                "a":9
            }
        },
        "z":{
            "d":"176,-176v8,-1,10,10,6,14r-132,145r98,0v5,0,8,4,8,9v0,5,-3,9,-8,9v-40,-5,-93,5,-126,-7v0,-3,1,-6,2,-8r132,-145r-97,0v-5,0,-9,-4,-9,-9v0,-5,4,-8,9,-8r117,0",
            "w":199,
            "k":{
                "\\":16,
                "t":-9,
                "s":9,
                "q":5,
                "o":5,
                "g":5,
                "e":5,
                "d":5,
                "c":5
            }
        },
        "!":{
            "d":"86,-251v5,1,8,5,7,10r-32,181v-1,5,-4,8,-10,7v-5,-1,-8,-5,-7,-10r32,-181v1,-5,5,-8,10,-7xm46,-25v12,2,9,27,-4,26v-12,-2,-8,-29,4,-26",
            "w":90
        },
        "(":{
            "d":"88,34v-100,-7,-56,-189,-20,-243v17,-26,41,-45,71,-45v5,0,9,5,8,10v-1,5,-7,10,-12,10v-70,9,-98,132,-82,215v4,23,17,33,38,33v5,0,10,5,9,10v-1,6,-7,10,-12,10",
            "w":154,
            "k":{
                "s":5,
                "q":11,
                "o":11,
                "j":-11,
                "g":7,
                "e":11,
                "d":11,
                "c":11,
                "Q":11,
                "O":11,
                "J":5,
                "G":11,
                "C":11
            }
        },
        ")":{
            "d":"82,-254v98,8,55,188,20,243v-17,26,-41,45,-71,45v-5,0,-9,-5,-8,-10v1,-5,7,-10,12,-10v72,-7,96,-134,82,-214v-4,-23,-18,-34,-39,-34v-5,0,-9,-5,-8,-10v1,-6,7,-10,12,-10",
            "w":154
        },
        "+":{
            "d":"125,-137v25,4,68,-11,74,12v-6,24,-53,7,-78,12r-12,66v-1,7,-5,11,-13,10v-23,-12,2,-52,1,-76v-25,-4,-68,11,-74,-12v7,-24,53,-8,79,-12r11,-67v3,-15,26,-10,23,4",
            "w":223
        },
        "<":{
            "d":"24,-119v-3,-4,-2,-12,1,-15r136,-115v4,-4,10,-3,14,1v4,4,3,11,-1,15r-128,109r88,107v6,7,0,17,-8,17v-3,0,-6,0,-8,-3",
            "w":223
        },
        ">":{
            "d":"187,-133v3,4,2,13,-2,15r-135,115v-4,5,-10,4,-14,-1v-4,-4,-3,-10,1,-14r127,-109r-88,-108v-4,-4,-2,-11,2,-15v4,-4,10,-3,14,2",
            "w":223
        },
        "A":{
            "d":"186,-66r-115,0r-34,61v-2,4,-7,7,-11,4v-4,-3,-6,-8,-4,-12r130,-234v3,-8,15,-5,16,2r47,235v1,5,-2,10,-8,10v-4,0,-8,-3,-9,-7xm183,-83r-27,-136r-75,136r102,0",
            "w":232,
            "k":{
                "\\":43,
                "*":36,
                "-":14,
                "?":22,
                "y":4,
                "w":16,
                "v":-14,
                "u":4,
                "t":11,
                "q":9,
                "o":9,
                "g":-11,
                "f":7,
                "e":9,
                "d":9,
                "c":9,
                "Z":27,
                "Y":40,
                "W":32,
                "V":36,
                "U":9,
                "T":36,
                "S":29,
                "Q":14,
                "O":14,
                "G":32,
                "C":14
            }
        },
        ".":{
            "d":"72,-21v-1,25,-45,29,-40,0v1,-24,45,-28,40,0",
            "w":82,
            "k":{
                "y":22,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "7":7,
                "1":18,
                "0":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "?":{
            "d":"40,-18v2,-10,20,-6,17,3v-2,7,-3,16,-11,15v-7,-1,-8,-10,-6,-18xm64,-113v37,-1,74,-30,75,-73v1,-59,-85,-62,-109,-18v-3,4,-8,5,-12,2v-4,-3,-5,-8,-2,-12v35,-63,155,-41,138,42v-8,40,-43,71,-83,75v-6,15,1,43,-16,47v-17,-9,2,-38,1,-55v0,-4,4,-8,8,-8",
            "w":192
        },
        "=":{
            "d":"172,-96v6,0,10,5,10,10v0,6,-4,10,-10,10r-133,0v-5,0,-11,-4,-11,-10v0,-5,6,-10,11,-10r133,0xm186,-176v5,0,10,5,10,10v0,6,-5,10,-10,10r-133,0v-6,0,-11,-4,-11,-10v0,-5,5,-10,11,-10r133,0",
            "w":223
        },
        "-":{
            "d":"31,-118v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r76,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-76,0",
            "w":146,
            "k":{
                "A":14,
                "z":4,
                "y":5,
                "x":11,
                "w":4,
                "v":5,
                "7":14,
                "3":4,
                "1":11,
                "Z":11,
                "Y":29,
                "X":18,
                "W":13,
                "V":14,
                "T":32
            }
        },
        "\u00ad":{
            "d":"31,-118v-4,0,-7,-3,-7,-7v0,-4,3,-7,7,-7r76,0v4,0,7,3,7,7v0,4,-3,7,-7,7r-76,0",
            "w":146
        },
        ":":{
            "d":"92,-203v-1,15,-28,18,-26,0v1,-15,28,-18,26,0xm58,-12v-1,14,-28,17,-25,0v1,-15,28,-18,25,0",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        ";":{
            "d":"70,-203v0,-15,28,-18,26,0v-1,15,-28,18,-26,0xm22,32v8,-12,26,-17,23,-33v-14,-2,-11,-34,5,-32v24,3,3,55,-4,59v-10,6,-21,18,-24,6",
            "w":86,
            "k":{
                "Y":14,
                "W":5,
                "V":7,
                "T":18
            }
        },
        "\u037e":{
            "d":"70,-203v0,-15,28,-18,26,0v-1,15,-28,18,-26,0xm22,32v8,-12,26,-17,23,-33v-14,-2,-11,-34,5,-32v24,3,3,55,-4,59v-10,6,-21,18,-24,6",
            "w":86
        },
        ",":{
            "d":"20,32v10,-11,28,-16,27,-32v-14,-4,-5,-32,9,-32v11,0,10,11,7,20v-3,31,-20,44,-39,49v-3,0,-5,-1,-4,-5",
            "w":82,
            "k":{
                "y":16,
                "w":25,
                "v":31,
                "t":9,
                "q":4,
                "o":7,
                "j":-5,
                "g":4,
                "f":5,
                "e":7,
                "d":4,
                "c":7,
                "7":7,
                "1":18,
                "0":7,
                "Y":47,
                "W":36,
                "V":43,
                "U":5,
                "T":36,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "'":{
            "d":"25,-189v11,-10,27,-16,27,-32v-15,-5,-4,-33,9,-32v11,1,10,12,7,21v-3,31,-21,42,-38,49v-3,0,-6,-2,-5,-6",
            "w":82,
            "k":{
                "s":14
            }
        },
        "\"":{
            "d":"90,-166r11,-77v-1,-11,20,-16,22,-4v-4,30,-15,54,-22,81v-1,5,-3,7,-6,7v-3,0,-6,-2,-5,-7xm25,-166r11,-77v-1,-11,20,-15,23,-4r-23,81v-1,5,-3,7,-6,7v-3,0,-6,-2,-5,-7",
            "w":147
        },
        "_":{
            "d":"-2,58v-4,0,-6,-4,-5,-8v1,-4,6,-8,10,-8r217,0v4,0,7,4,6,8v-1,4,-6,8,-10,8r-218,0",
            "w":216
        },
        "*":{
            "d":"73,-144v-15,-8,4,-33,4,-47v-15,8,-27,18,-43,24v-10,0,-6,-12,0,-14r41,-18v-12,-8,-53,-18,-30,-32v15,5,23,17,35,25v4,-15,-3,-42,12,-47v4,0,7,3,6,7r-10,40v15,-8,27,-19,43,-25v9,0,7,14,0,15r-41,17v12,9,33,11,38,25v-12,18,-31,-12,-43,-17v-4,16,3,42,-12,47",
            "w":154,
            "k":{
                "A":36,
                "t":-4,
                "s":4,
                "q":5,
                "o":7,
                "g":5,
                "e":7,
                "d":5,
                "c":7,
                "a":4,
                "J":29
            }
        },
        "@":{
            "d":"158,-4v-75,19,-141,-30,-139,-101v2,-86,73,-147,148,-147v61,0,108,46,108,106v0,55,-12,81,-62,105v-24,3,-34,-14,-29,-37v-33,37,-104,18,-102,-37v2,-45,36,-77,75,-78v36,-1,60,32,53,73r-10,55v0,6,4,8,9,6v36,-15,48,-46,48,-87v0,-51,-37,-88,-90,-88v-65,0,-130,53,-130,129v-1,59,53,101,117,84v5,-1,9,2,10,7v1,5,-1,9,-6,10xm157,-176v-48,-7,-88,96,-21,100v50,8,87,-96,21,-100",
            "w":352
        },
        "\\":{
            "d":"120,-13v2,5,-1,12,-8,12v-3,0,-7,-1,-8,-5r-99,-233v-2,-5,0,-10,5,-12v5,-2,10,1,12,5",
            "w":180,
            "k":{
                "y":22,
                "w":22,
                "v":25,
                "t":11,
                "j":-11,
                "f":4,
                "Y":40,
                "W":36,
                "V":43,
                "U":5,
                "T":32,
                "Q":14,
                "O":14,
                "G":14,
                "C":14
            }
        },
        "E":{
            "d":"48,1v-8,1,-11,-5,-10,-11r42,-234v1,-4,5,-7,9,-7r129,0v5,0,9,4,9,9v0,5,-4,8,-9,8r-122,0r-18,100r105,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-108,0r-18,99r120,0v5,0,8,4,8,9v0,5,-3,9,-8,9r-129,0",
            "w":213,
            "k":{
                "y":4,
                "w":-9,
                "v":-9,
                "o":4,
                "e":4,
                "d":4,
                "c":4
            }
        },
        "\/":{
            "d":"16,-5v-5,11,-21,3,-16,-7r98,-234v2,-4,6,-6,11,-4v5,2,7,6,5,11",
            "w":180,
            "k":{
                "\/":61,
                "A":43,
                "z":22,
                "y":18,
                "x":18,
                "w":18,
                "v":18,
                "u":18,
                "t":7,
                "s":31,
                "r":18,
                "q":25,
                "p":18,
                "o":29,
                "n":18,
                "m":18,
                "g":25,
                "f":9,
                "e":29,
                "d":25,
                "c":29,
                "a":23,
                "9":7,
                "8":5,
                "7":4,
                "6":13,
                "5":7,
                "4":34,
                "3":4,
                "2":7,
                "1":-4,
                "0":13,
                "Z":7,
                "S":11,
                "Q":14,
                "O":14,
                "J":47,
                "G":14,
                "C":14
            }
        },
        "`":{
            "d":"103,-216v-20,8,-33,-24,-44,-36v1,-7,21,-13,25,-2v5,13,14,24,19,38",
            "w":180
        },
        "$":{
            "d":"34,-52v21,15,37,34,68,35r26,-102v-51,-12,-69,-32,-60,-68v9,-36,48,-64,92,-65v2,-10,3,-23,15,-22v12,1,3,16,2,23v26,2,42,11,58,25v9,6,-1,17,-9,17v-18,-10,-32,-26,-54,-26r-25,101v52,12,70,32,61,67v-10,38,-49,66,-94,67v-5,13,-2,35,-18,37v-14,-5,1,-26,1,-37v-31,-3,-55,-13,-73,-35v-6,-7,3,-17,10,-17xm117,-16v64,1,117,-84,26,-100xm157,-236v-62,0,-114,81,-25,98",
            "w":227,
            "k":{
                "7":4
            }
        },
        "#":{
            "d":"41,-9r19,-58v-15,-2,-43,7,-43,-9v5,-15,32,-5,49,-8r29,-85v-15,-3,-45,7,-46,-8v4,-17,34,-6,52,-9r20,-60v1,-5,5,-7,10,-7v6,0,8,5,7,10r-20,57r75,0r20,-60v1,-5,5,-7,10,-7v6,0,7,5,6,10r-19,57v14,2,43,-7,43,8v-4,16,-32,6,-49,9r-29,85v15,3,46,-8,47,8v-4,17,-34,6,-52,9r-21,61v-1,5,-5,7,-10,7v-6,0,-8,-5,-7,-10r20,-58r-74,0r-21,61v-1,5,-5,7,-10,7v-6,0,-7,-5,-6,-10xm84,-84r74,0r29,-85r-74,0",
            "w":252
        },
        "[":{
            "d":"36,37r59,-280v1,-5,7,-9,12,-9r83,0v4,0,6,3,5,7v-1,4,-4,7,-8,7r-76,0r-57,271r76,0v4,0,6,3,5,7v-1,4,-4,7,-8,7r-83,0v-5,0,-9,-5,-8,-10",
            "w":154,
            "k":{
                "y":4,
                "x":4,
                "w":7,
                "v":7,
                "s":5,
                "q":7,
                "o":7,
                "j":-11,
                "e":7,
                "d":7,
                "c":7,
                "a":4,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "]":{
            "d":"180,-243r-59,280v-1,5,-7,10,-12,10r-83,0v-4,0,-6,-3,-5,-7v1,-4,4,-7,8,-7r76,0r57,-271r-76,0v-4,0,-6,-3,-5,-7v1,-4,4,-7,8,-7r83,0v5,0,9,4,8,9",
            "w":154
        },
        "{":{
            "d":"103,50v-74,-13,-57,-54,-43,-101v8,-28,5,-45,-32,-45v-6,0,-8,-3,-7,-7v1,-4,5,-7,11,-7v50,1,55,-37,66,-74v11,-37,30,-61,94,-73v4,-1,7,2,6,6v-1,3,-3,5,-6,6v-70,15,-69,39,-84,90v-9,32,-29,45,-53,52v35,5,25,49,15,79v-12,35,-8,49,40,63v6,4,-1,13,-7,11",
            "w":172,
            "k":{
                "z":4,
                "y":4,
                "x":4,
                "w":4,
                "v":4,
                "s":4,
                "q":5,
                "o":5,
                "j":-13,
                "g":4,
                "e":5,
                "d":5,
                "c":5,
                "Q":7,
                "O":7,
                "J":4,
                "G":7,
                "C":7
            }
        },
        "}":{
            "d":"114,-257v74,13,59,54,44,101v-8,28,-5,46,32,46v6,0,8,3,7,7v-1,4,-5,7,-11,7v-50,-1,-56,35,-66,74v-10,37,-30,60,-94,72v-4,1,-7,-2,-6,-6v1,-3,3,-4,6,-5v70,-15,69,-39,84,-90v9,-32,28,-45,52,-52v-35,-5,-24,-49,-14,-79v11,-36,8,-49,-40,-63v-2,-1,-4,-3,-3,-6v1,-4,5,-7,9,-6",
            "w":172
        },
        "|":{
            "d":"44,42r57,-321v1,-4,5,-8,9,-8v4,0,8,4,7,8r-57,321v-1,4,-5,8,-9,8v-4,0,-8,-4,-7,-8",
            "w":102
        },
        "^":{
            "d":"100,-237r-53,56v-5,7,-24,7,-15,-3r59,-64v7,-8,17,-9,23,0r38,68v-1,6,-18,5,-19,-1",
            "w":180
        },
        "~":{
            "d":"60,-105v-12,-3,-12,16,-23,19v-5,0,-7,-5,-6,-11v10,-46,48,-18,75,-12v12,3,12,-17,23,-19v6,-1,7,6,5,11v-11,47,-47,18,-74,12",
            "w":165
        }
    }
});




/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){
    $.fn.hoverIntent=function(f,g){
        var cfg={
            sensitivity:7,
            interval:100,
            timeout:250
        };

        cfg=$.extend(cfg,g?{
            over:f,
            out:g
        }:f);
        var cX,cY,pX,pY;
        var track=function(ev){
            cX=ev.pageX;
            cY=ev.pageY;
        };

        var compare=function(ev,ob){
            ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
            if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){
                $(ob).unbind("mousemove",track);
                ob.hoverIntent_s=1;
                return cfg.over.apply(ob,[ev]);
            }else{
                pX=cX;
                pY=cY;
                ob.hoverIntent_t=setTimeout(function(){
                    compare(ev,ob);
                },cfg.interval);
            }
        };

        var delay=function(ev,ob){
            ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
            ob.hoverIntent_s=0;
            return cfg.out.apply(ob,[ev]);
        };

        var handleHover=function(e){
            var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;
            while(p&&p!=this){
                try{
                    p=p.parentNode;
                }catch(e){
                    p=this;
                }
            }
            if(p==this){
                return false;
            }
            var ev=jQuery.extend({},e);
            var ob=this;
            if(ob.hoverIntent_t){
                ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
            }
            if(e.type=="mouseover"){
                pX=ev.pageX;
                pY=ev.pageY;
                $(ob).bind("mousemove",track);
                if(ob.hoverIntent_s!=1){
                    ob.hoverIntent_t=setTimeout(function(){
                        compare(ev,ob);
                    },cfg.interval);
                }
            }else{
                $(ob).unbind("mousemove",track);
                if(ob.hoverIntent_s==1){
                    ob.hoverIntent_t=setTimeout(function(){
                        delay(ev,ob);
                    },cfg.timeout);
                }
            }
        };

        return this.mouseover(handleHover).mouseout(handleHover);
    };

})(jQuery);


/*
VideoJS - HTML5 Video Player
v2.0.2

This file is part of VideoJS. Copyright 2010 Zencoder, Inc.

VideoJS is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

VideoJS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with VideoJS.  If not, see <http://www.gnu.org/licenses/>.
*/

// Self-executing function to prevent global vars and help with minification
(function(window, undefined){
    var document = window.document;

    // Using jresig's Class implementation http://ejohn.org/blog/simple-javascript-inheritance/
    (function(){
        var initializing=false, fnTest=/xyz/.test(function(){
            xyz;
        }) ? /\b_super\b/ : /.*/;
        this.JRClass = function(){};
        JRClass.extend = function(prop) {
            var _super = this.prototype;
            initializing = true;
            var prototype = new this();
            initializing = false;
            for (var name in prop) {
                prototype[name] = typeof prop[name] == "function" && typeof _super[name] == "function" && fnTest.test(prop[name]) ? (function(name, fn){
                    return function() {
                        var tmp = this._super;
                        this._super = _super[name];
                        var ret = fn.apply(this, arguments);
                        this._super = tmp;
                        return ret;
                    };
                })(name, prop[name]) : prop[name];
            }
            function JRClass() {
                if ( !initializing && this.init ) this.init.apply(this, arguments);
            }
            JRClass.prototype = prototype;
            JRClass.constructor = JRClass;
            JRClass.extend = arguments.callee;
            return JRClass;
        };

    })();

    // Video JS Player Class
    var VideoJS = JRClass.extend({

        // Initialize the player for the supplied video tag element
        // element: video tag
        init: function(element, setOptions){

            // Allow an ID string or an element
            if (typeof element == 'string') {
                this.video = document.getElementById(element);
            } else {
                this.video = element;
            }
            // Store reference to player on the video element.
            // So you can acess the player later: document.getElementById("video_id").player.play();
            this.video.player = this;
            this.values = {}; // Cache video values.
            this.elements = {}; // Store refs to controls elements.

            // Default Options
            this.options = {
                autoplay: false,
                preload: true,
                useBuiltInControls: false, // Use the browser's controls (iPhone)
                controlsBelow: false, // Display control bar below video vs. in front of
                controlsAtStart: false, // Make controls visible when page loads
                controlsHiding: true, // Hide controls when not over the video
                defaultVolume: 0.85, // Will be overridden by localStorage volume if available
                playerFallbackOrder: ["html5", "flash", "links"], // Players and order to use them
                flashPlayer: "htmlObject",
                flashPlayerVersion: false // Required flash version for fallback
            };
            // Override default options with global options
            if (typeof VideoJS.options == "object") {
                _V_.merge(this.options, VideoJS.options);
            }
            // Override default & global options with options specific to this player
            if (typeof setOptions == "object") {
                _V_.merge(this.options, setOptions);
            }
            // Override preload & autoplay with video attributes
            if (this.getPreloadAttribute() !== undefined) {
                this.options.preload = this.getPreloadAttribute();
            }
            if (this.getAutoplayAttribute() !== undefined) {
                this.options.autoplay = this.getAutoplayAttribute();
            }

            // Store reference to embed code pieces
            this.box = this.video.parentNode;
            this.linksFallback = this.getLinksFallback();
            this.hideLinksFallback(); // Will be shown again if "links" player is used

            // Loop through the player names list in options, "html5" etc.
            // For each player name, initialize the player with that name under VideoJS.players
            // If the player successfully initializes, we're done
            // If not, try the next player in the list
            this.each(this.options.playerFallbackOrder, function(playerType){
                if (this[playerType+"Supported"]()) { // Check if player type is supported
                    this[playerType+"Init"](); // Initialize player type
                    return true; // Stop looping though players
                }
            });

            // Start Global Listeners - API doesn't exist before now
            this.activateElement(this, "player");
            this.activateElement(this.box, "box");
        },
        /* Behaviors
  ================================================================================ */
        behaviors: {},
        newBehavior: function(name, activate, functions){
            this.behaviors[name] = activate;
            this.extend(functions);
        },
        activateElement: function(element, behavior){
            // Allow passing and ID string
            if (typeof element == "string") {
                element = document.getElementById(element);
            }
            this.behaviors[behavior].call(this, element);
        },
        /* Errors/Warnings
  ================================================================================ */
        errors: [], // Array to track errors
        warnings: [],
        warning: function(warning){
            this.warnings.push(warning);
            this.log(warning);
        },
        /* History of errors/events (not quite there yet)
  ================================================================================ */
        history: [],
        log: function(event){
            if (!event) {
                return;
            }
            if (typeof event == "string") {
                event = {
                    type: event
                };
            }
            if (event.type) {
                this.history.push(event.type);
            }
            if (this.history.length >= 50) {
                this.history.shift();
            }
            try {
                console.log(event.type);
            } catch(e) {
                try {
                    opera.postError(event.type);
                } catch(e){}
            }
        },
        /* Local Storage
  ================================================================================ */
        setLocalStorage: function(key, value){
            if (!localStorage) {
                return;
            }
            try {
                localStorage[key] = value;
            } catch(e) {
                if (e.code == 22 || e.code == 1014) { // Webkit == 22 / Firefox == 1014
                    this.warning(VideoJS.warnings.localStorageFull);
                }
            }
        },
        /* Helpers
  ================================================================================ */
        getPreloadAttribute: function(){
            if (typeof this.video.hasAttribute == "function" && this.video.hasAttribute("preload")) {
                var preload = this.video.getAttribute("preload");
                // Only included the attribute, thinking it was boolean
                if (preload === "" || preload === "true") {
                    return "auto";
                }
                if (preload === "false") {
                    return "none";
                }
                return preload;
            }
        },
        getAutoplayAttribute: function(){
            if (typeof this.video.hasAttribute == "function" && this.video.hasAttribute("autoplay")) {
                var autoplay = this.video.getAttribute("autoplay");
                if (autoplay === "false") {
                    return false;
                }
                return true;
            }
        },
        // Calculates amoutn of buffer is full
        bufferedPercent: function(){
            return (this.duration()) ? this.buffered()[1] / this.duration() : 0;
        },
        // Each that maintains player as context
        // Break if true is returned
        each: function(arr, fn){
            if (!arr || arr.length === 0) {
                return;
            }
            for (var i=0,j=arr.length; i<j; i++) {
                if (fn.call(this, arr[i], i)) {
                    break;
                }
            }
        },
        extend: function(obj){
            for (var attrname in obj) {
                if (obj.hasOwnProperty(attrname)) {
                    this[attrname]=obj[attrname];
                }
            }
        }
    });
    VideoJS.player = VideoJS.prototype;

    ////////////////////////////////////////////////////////////////////////////////
    // Player Types
    ////////////////////////////////////////////////////////////////////////////////

    /* Flash Object Fallback (Player Type)
================================================================================ */
    VideoJS.player.extend({
        flashSupported: function(){
            if (!this.flashElement) {
                this.flashElement = this.getFlashElement();
            }
            // Check if object exists & Flash Player version is supported
            if (this.flashElement && this.flashPlayerVersionSupported()) {
                return true;
            } else {
                return false;
            }
        },
        flashInit: function(){
            this.replaceWithFlash();
            this.element = this.flashElement;
            this.video.src = ""; // Stop video from downloading if HTML5 is still supported
            var flashPlayerType = VideoJS.flashPlayers[this.options.flashPlayer];
            this.extend(VideoJS.flashPlayers[this.options.flashPlayer].api);
            (flashPlayerType.init.context(this))();
        },
        // Get Flash Fallback object element from Embed Code
        getFlashElement: function(){
            var children = this.video.children;
            for (var i=0,j=children.length; i<j; i++) {
                if (children[i].className == "vjs-flash-fallback") {
                    return children[i];
                }
            }
        },
        // Used to force a browser to fall back when it's an HTML5 browser but there's no supported sources
        replaceWithFlash: function(){
            // this.flashElement = this.video.removeChild(this.flashElement);
            if (this.flashElement) {
                this.box.insertBefore(this.flashElement, this.video);
                this.video.style.display = "none"; // Removing it was breaking later players
            }
        },
        // Check if browser can use this flash player
        flashPlayerVersionSupported: function(){
            var playerVersion = (this.options.flashPlayerVersion) ? this.options.flashPlayerVersion : VideoJS.flashPlayers[this.options.flashPlayer].flashPlayerVersion;
            return VideoJS.getFlashVersion() >= playerVersion;
        }
    });
    VideoJS.flashPlayers = {};
    VideoJS.flashPlayers.htmlObject = {
        flashPlayerVersion: 9,
        init: function() {
            return true;
        },
        api: { // No video API available with HTML Object embed method
            width: function(width){
                if (width !== undefined) {
                    this.element.width = width;
                    this.box.style.width = width+"px";
                    this.triggerResizeListeners();
                    return this;
                }
                return this.element.width;
            },
            height: function(height){
                if (height !== undefined) {
                    this.element.height = height;
                    this.box.style.height = height+"px";
                    this.triggerResizeListeners();
                    return this;
                }
                return this.element.height;
            }
        }
    };


    /* Download Links Fallback (Player Type)
================================================================================ */
    VideoJS.player.extend({
        linksSupported: function(){
            return true;
        },
        linksInit: function(){
            this.showLinksFallback();
            this.element = this.video;
        },
        // Get the download links block element
        getLinksFallback: function(){
            return this.box.getElementsByTagName("P")[0];
        },
        // Hide no-video download paragraph
        hideLinksFallback: function(){
            if (this.linksFallback) {
                this.linksFallback.style.display = "none";
            }
        },
        // Hide no-video download paragraph
        showLinksFallback: function(){
            if (this.linksFallback) {
                this.linksFallback.style.display = "block";
            }
        }
    });

    ////////////////////////////////////////////////////////////////////////////////
    // Class Methods
    // Functions that don't apply to individual videos.
    ////////////////////////////////////////////////////////////////////////////////

    // Combine Objects - Use "safe" to protect from overwriting existing items
    VideoJS.merge = function(obj1, obj2, safe){
        for (var attrname in obj2){
            if (obj2.hasOwnProperty(attrname) && (!safe || !obj1.hasOwnProperty(attrname))) {
                obj1[attrname]=obj2[attrname];
            }
        }
        return obj1;
    };
    VideoJS.extend = function(obj){
        this.merge(this, obj, true);
    };

    VideoJS.extend({
        // Add VideoJS to all video tags with the video-js class when the DOM is ready
        setupAllWhenReady: function(options){
            // Options is stored globally, and added ot any new player on init
            VideoJS.options = options;
            VideoJS.DOMReady(VideoJS.setup);
        },

        // Run the supplied function when the DOM is ready
        DOMReady: function(fn){
            VideoJS.addToDOMReady(fn);
        },

        // Set up a specific video or array of video elements
        // "video" can be:
        //    false, undefined, or "All": set up all videos with the video-js class
        //    A video tag ID or video tag element: set up one video and return one player
        //    An array of video tag elements/IDs: set up each and return an array of players
        setup: function(videos, options){
            var returnSingular = false,
            playerList = [],
            videoElement;

            // If videos is undefined or "All", set up all videos with the video-js class
            if (!videos || videos == "All") {
                videos = VideoJS.getVideoJSTags();
            // If videos is not an array, add to an array
            } else if (typeof videos != 'object' || videos.nodeType == 1) {
                videos = [videos];
                returnSingular = true;
            }

            // Loop through videos and create players for them
            for (var i=0; i<videos.length; i++) {
                if (typeof videos[i] == 'string') {
                    videoElement = document.getElementById(videos[i]);
                } else { // assume DOM object
                    videoElement = videos[i];
                }
                playerList.push(new VideoJS(videoElement, options));
            }

            // Return one or all depending on what was passed in
            return (returnSingular) ? playerList[0] : playerList;
        },

        // Find video tags with the video-js class
        getVideoJSTags: function() {
            var videoTags = document.getElementsByTagName("video"),
            videoJSTags = [], videoTag;

            for (var i=0,j=videoTags.length; i<j; i++) {
                videoTag = videoTags[i];
                if (videoTag.className.indexOf("video-js") != -1) {
                    videoJSTags.push(videoTag);
                }
            }
            return videoJSTags;
        },

        // Check if the browser supports video.
        browserSupportsVideo: function() {
            if (typeof VideoJS.videoSupport != "undefined") {
                return VideoJS.videoSupport;
            }
            VideoJS.videoSupport = !!document.createElement('video').canPlayType;
            return VideoJS.videoSupport;
        },

        getFlashVersion: function(){
            // Cache Version
            if (typeof VideoJS.flashVersion != "undefined") {
                return VideoJS.flashVersion;
            }
            var version = 0, desc;
            if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") {
                desc = navigator.plugins["Shockwave Flash"].description;
                if (desc && !(typeof navigator.mimeTypes != "undefined" && navigator.mimeTypes["application/x-shockwave-flash"] && !navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)) {
                    version = parseInt(desc.match(/^.*\s+([^\s]+)\.[^\s]+\s+[^\s]+$/)[1], 10);
                }
            } else if (typeof window.ActiveXObject != "undefined") {
                try {
                    var testObject = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                    if (testObject) {
                        version = parseInt(testObject.GetVariable("$version").match(/^[^\s]+\s(\d+)/)[1], 10);
                    }
                }
                catch(e) {}
            }
            VideoJS.flashVersion = version;
            return VideoJS.flashVersion;
        },

        // Browser & Device Checks
        isIE: function(){
            return !+"\v1";
        },
        isIPad: function(){
            return navigator.userAgent.match(/iPad/i) !== null;
        },
        isIPhone: function(){
            return navigator.userAgent.match(/iPhone/i) !== null;
        },
        isIOS: function(){
            return VideoJS.isIPhone() || VideoJS.isIPad();
        },
        iOSVersion: function() {
            var match = navigator.userAgent.match(/OS (\d+)_/i);
            if (match && match[1]) {
                return match[1];
            }
        },
        isAndroid: function(){
            return navigator.userAgent.match(/Android/i) !== null;
        },
        androidVersion: function() {
            var match = navigator.userAgent.match(/Android (\d+)\./i);
            if (match && match[1]) {
                return match[1];
            }
        },

        warnings: {
            // Safari errors if you call functions on a video that hasn't loaded yet
            videoNotReady: "Video is not ready yet (try playing the video first).",
            // Getting a QUOTA_EXCEEDED_ERR when setting local storage occasionally
            localStorageFull: "Local Storage is Full"
        }
    });

    // Shim to make Video tag valid in IE
    if(VideoJS.isIE()) {
        document.createElement("video");
    }

    // Expose to global
    window.VideoJS = window._V_ = VideoJS;

    /* HTML5 Player Type
================================================================================ */
    VideoJS.player.extend({
        html5Supported: function(){
            if (VideoJS.browserSupportsVideo() && this.canPlaySource()) {
                return true;
            } else {
                return false;
            }
        },
        html5Init: function(){
            this.element = this.video;

            this.fixPreloading(); // Support old browsers that used autobuffer
            this.supportProgressEvents(); // Support browsers that don't use 'buffered'

            // Set to stored volume OR 85%
            this.volume((localStorage && localStorage.volume) || this.options.defaultVolume);

            // Update interface for device needs
            if (VideoJS.isIOS()) {
                this.options.useBuiltInControls = true;
                this.iOSInterface();
            } else if (VideoJS.isAndroid()) {
                this.options.useBuiltInControls = true;
                this.androidInterface();
            }

            // Add VideoJS Controls
            if (!this.options.useBuiltInControls) {
                this.video.controls = false;

                if (this.options.controlsBelow) {
                    _V_.addClass(this.box, "vjs-controls-below");
                }

                // Make a click on th video act as a play button
                this.activateElement(this.video, "playToggle");

                // Build Interface
                this.buildStylesCheckDiv(); // Used to check if style are loaded
                this.buildAndActivatePoster();
                this.buildBigPlayButton();
                this.buildAndActivateSpinner();
                this.buildAndActivateControlBar();
                this.loadInterface(); // Show everything once styles are loaded
                this.getSubtitles();
            }
        },
        /* Source Managemet
  ================================================================================ */
        canPlaySource: function(){
            // Cache Result
            if (this.canPlaySourceResult) {
                return this.canPlaySourceResult;
            }
            // Loop through sources and check if any can play
            var children = this.video.children;
            for (var i=0,j=children.length; i<j; i++) {
                if (children[i].tagName.toUpperCase() == "SOURCE") {
                    var canPlay = this.video.canPlayType(children[i].type) || this.canPlayExt(children[i].src);
                    if (canPlay == "probably" || canPlay == "maybe") {
                        this.firstPlayableSource = children[i];
                        this.canPlaySourceResult = true;
                        return true;
                    }
                }
            }
            this.canPlaySourceResult = false;
            return false;
        },
        // Check if the extention is compatible, for when type won't work
        canPlayExt: function(src){
            if (!src) {
                return "";
            }
            var match = src.match(/\.([^\.]+)$/);
            if (match && match[1]) {
                var ext = match[1].toLowerCase();
                // Android canPlayType doesn't work
                if (VideoJS.isAndroid()) {
                    if (ext == "mp4" || ext == "m4v") {
                        return "maybe";
                    }
                // Allow Apple HTTP Streaming for iOS
                } else if (VideoJS.isIOS()) {
                    if (ext == "m3u8") {
                        return "maybe";
                    }
                }
            }
            return "";
        },
        // Force the video source - Helps fix loading bugs in a handful of devices, like the iPad/iPhone poster bug
        // And iPad/iPhone javascript include location bug. And Android type attribute bug
        forceTheSource: function(){
            this.video.src = this.firstPlayableSource.src; // From canPlaySource()
            this.video.load();
        },
        /* Device Fixes
  ================================================================================ */
        // Support older browsers that used "autobuffer"
        fixPreloading: function(){
            if (typeof this.video.hasAttribute == "function" && this.video.hasAttribute("preload") && this.video.preload != "none") {
                this.video.autobuffer = true; // Was a boolean
            } else {
                this.video.autobuffer = false;
                this.video.preload = "none";
            }
        },

        // Listen for Video Load Progress (currently does not if html file is local)
        // Buffered does't work in all browsers, so watching progress as well
        supportProgressEvents: function(e){
            _V_.addListener(this.video, 'progress', this.playerOnVideoProgress.context(this));
        },
        playerOnVideoProgress: function(event){
            this.setBufferedFromProgress(event);
        },
        setBufferedFromProgress: function(event){ // HTML5 Only
            if(event.total > 0) {
                var newBufferEnd = (event.loaded / event.total) * this.duration();
                if (newBufferEnd > this.values.bufferEnd) {
                    this.values.bufferEnd = newBufferEnd;
                }
            }
        },

        iOSInterface: function(){
            if(VideoJS.iOSVersion() < 4) {
                this.forceTheSource();
            } // Fix loading issues
            if(VideoJS.isIPad()) { // iPad could work with controlsBelow
                this.buildAndActivateSpinner(); // Spinner still works well on iPad, since iPad doesn't have one
            }
        },

        // Fix android specific quirks
        // Use built-in controls, but add the big play button, since android doesn't have one.
        androidInterface: function(){
            this.forceTheSource(); // Fix loading issues
            _V_.addListener(this.video, "click", function(){
                this.play();
            }); // Required to play
            this.buildBigPlayButton(); // But don't activate the normal way. Pause doesn't work right on android.
            _V_.addListener(this.bigPlayButton, "click", function(){
                this.play();
            }.context(this));
            this.positionBox();
            this.showBigPlayButtons();
        },
        /* Wait for styles (TODO: move to _V_)
  ================================================================================ */
        loadInterface: function(){
            if(!this.stylesHaveLoaded()) {
                // Don't want to create an endless loop either.
                if (!this.positionRetries) {
                    this.positionRetries = 1;
                }
                if (this.positionRetries++ < 100) {
                    setTimeout(this.loadInterface.context(this),10);
                    return;
                }
            }
            this.hideStylesCheckDiv();
            this.showPoster();
            if (this.video.paused !== false) {
                this.showBigPlayButtons();
            }
            if (this.options.controlsAtStart) {
                this.showControlBars();
            }
            this.positionAll();
        },
        /* Control Bar
  ================================================================================ */
        buildAndActivateControlBar: function(){
            /* Creating this HTML
      <div class="vjs-controls">
        <div class="vjs-play-control">
          <span></span>
        </div>
        <div class="vjs-progress-control">
          <div class="vjs-progress-holder">
            <div class="vjs-load-progress"></div>
            <div class="vjs-play-progress"></div>
          </div>
        </div>
        <div class="vjs-time-control">
          <span class="vjs-current-time-display">00:00</span><span> / </span><span class="vjs-duration-display">00:00</span>
        </div>
        <div class="vjs-volume-control">
          <div>
            <span></span><span></span><span></span><span></span><span></span><span></span>
          </div>
        </div>
        <div class="vjs-fullscreen-control">
          <div>
            <span></span><span></span><span></span><span></span>
          </div>
        </div>
      </div>
    */

            // Create a div to hold the different controls
            this.controls = _V_.createElement("div", {
                className: "vjs-controls"
            });
            // Add the controls to the video's container
            this.box.appendChild(this.controls);
            this.activateElement(this.controls, "controlBar");
            this.activateElement(this.controls, "mouseOverVideoReporter");

            // Build the play control
            this.playControl = _V_.createElement("div", {
                className: "vjs-play-control",
                innerHTML: "<span></span>"
            });
            this.controls.appendChild(this.playControl);
            this.activateElement(this.playControl, "playToggle");

            // Build the progress control
            this.progressControl = _V_.createElement("div", {
                className: "vjs-progress-control"
            });
            this.controls.appendChild(this.progressControl);

            // Create a holder for the progress bars
            this.progressHolder = _V_.createElement("div", {
                className: "vjs-progress-holder"
            });
            this.progressControl.appendChild(this.progressHolder);
            this.activateElement(this.progressHolder, "currentTimeScrubber");

            // Create the loading progress display
            this.loadProgressBar = _V_.createElement("div", {
                className: "vjs-load-progress"
            });
            this.progressHolder.appendChild(this.loadProgressBar);
            this.activateElement(this.loadProgressBar, "loadProgressBar");

            // Create the playing progress display
            this.playProgressBar = _V_.createElement("div", {
                className: "vjs-play-progress"
            });
            this.progressHolder.appendChild(this.playProgressBar);
            this.activateElement(this.playProgressBar, "playProgressBar");

            // Create the progress time display (00:00 / 00:00)
            this.timeControl = _V_.createElement("div", {
                className: "vjs-time-control"
            });
            this.controls.appendChild(this.timeControl);

            // Create the current play time display
            this.currentTimeDisplay = _V_.createElement("span", {
                className: "vjs-current-time-display",
                innerHTML: "00:00"
            });
            this.timeControl.appendChild(this.currentTimeDisplay);
            this.activateElement(this.currentTimeDisplay, "currentTimeDisplay");

            // Add time separator
            this.timeSeparator = _V_.createElement("span", {
                innerHTML: " / "
            });
            this.timeControl.appendChild(this.timeSeparator);

            // Create the total duration display
            this.durationDisplay = _V_.createElement("span", {
                className: "vjs-duration-display",
                innerHTML: "00:00"
            });
            this.timeControl.appendChild(this.durationDisplay);
            this.activateElement(this.durationDisplay, "durationDisplay");

            // Create the volumne control
            this.volumeControl = _V_.createElement("div", {
                className: "vjs-volume-control",
                innerHTML: "<div><span></span><span></span><span></span><span></span><span></span><span></span></div>"
            });
            this.controls.appendChild(this.volumeControl);
            this.activateElement(this.volumeControl, "volumeScrubber");

            this.volumeDisplay = this.volumeControl.children[0];
            this.activateElement(this.volumeDisplay, "volumeDisplay");

            // Crete the fullscreen control
            this.fullscreenControl = _V_.createElement("div", {
                className: "vjs-fullscreen-control",
                innerHTML: "<div><span></span><span></span><span></span><span></span></div>"
            });
            this.controls.appendChild(this.fullscreenControl);
            this.activateElement(this.fullscreenControl, "fullscreenToggle");
        },
        /* Poster Image
  ================================================================================ */
        buildAndActivatePoster: function(){
            this.updatePosterSource();
            if (this.video.poster) {
                this.poster = document.createElement("img");
                // Add poster to video box
                this.box.appendChild(this.poster);

                // Add poster image data
                this.poster.src = this.video.poster;
                // Add poster styles
                this.poster.className = "vjs-poster";
                this.activateElement(this.poster, "poster");
            } else {
                this.poster = false;
            }
        },
        /* Big Play Button
  ================================================================================ */
        buildBigPlayButton: function(){
            /* Creating this HTML
      <div class="vjs-big-play-button"><span></span></div>
    */
            this.bigPlayButton = _V_.createElement("div", {
                className: "vjs-big-play-button",
                innerHTML: "<span></span>"
            });
            this.box.appendChild(this.bigPlayButton);
            this.activateElement(this.bigPlayButton, "bigPlayButton");
        },
        /* Spinner (Loading)
  ================================================================================ */
        buildAndActivateSpinner: function(){
            this.spinner = _V_.createElement("div", {
                className: "vjs-spinner",
                innerHTML: "<div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>"
            });
            this.box.appendChild(this.spinner);
            this.activateElement(this.spinner, "spinner");
        },
        /* Styles Check - Check if styles are loaded (move ot _V_)
  ================================================================================ */
        // Sometimes the CSS styles haven't been applied to the controls yet
        // when we're trying to calculate the height and position them correctly.
        // This causes a flicker where the controls are out of place.
        buildStylesCheckDiv: function(){
            this.stylesCheckDiv = _V_.createElement("div", {
                className: "vjs-styles-check"
            });
            this.stylesCheckDiv.style.position = "absolute";
            this.box.appendChild(this.stylesCheckDiv);
        },
        hideStylesCheckDiv: function(){
            this.stylesCheckDiv.style.display = "none";
        },
        stylesHaveLoaded: function(){
            if (this.stylesCheckDiv.offsetHeight != 5) {
                return false;
            } else {
                return true;
            }
        },
        /* VideoJS Box - Holds all elements
  ================================================================================ */
        positionAll: function(){
            this.positionBox();
            this.positionControlBars();
            this.positionPoster();
        },
        positionBox: function(){
            // Set width based on fullscreen or not.
            if (this.videoIsFullScreen) {
                this.box.style.width = "";
                this.element.style.height="";
                if (this.options.controlsBelow) {
                    this.box.style.height = "";
                    this.element.style.height = (this.box.offsetHeight - this.controls.offsetHeight) + "px";
                }
            } else {
                this.box.style.width = this.width() + "px";
                this.element.style.height=this.height()+"px";
                if (this.options.controlsBelow) {
                    this.element.style.height = "";
                // this.box.style.height = this.video.offsetHeight + this.controls.offsetHeight + "px";
                }
            }
        },
        /* Subtitles
  ================================================================================ */
        getSubtitles: function(){
            var tracks = this.video.getElementsByTagName("TRACK");
            for (var i=0,j=tracks.length; i<j; i++) {
                if (tracks[i].getAttribute("kind") == "subtitles" && tracks[i].getAttribute("src")) {
                    this.subtitlesSource = tracks[i].getAttribute("src");
                    this.loadSubtitles();
                    this.buildSubtitles();
                }
            }
        },
        loadSubtitles: function() {
            _V_.get(this.subtitlesSource, this.parseSubtitles.context(this));
        },
        parseSubtitles: function(subText) {
            var lines = subText.split("\n"),
            line = "",
            subtitle, time, text;
            this.subtitles = [];
            this.currentSubtitle = false;
            this.lastSubtitleIndex = 0;

            for (var i=0; i<lines.length; i++) {
                line = _V_.trim(lines[i]); // Trim whitespace and linebreaks
                if (line) { // Loop until a line with content

                    // First line - Number
                    subtitle = {
                        id: line, // Subtitle Number
                        index: this.subtitles.length // Position in Array
                    };

                    // Second line - Time
                    line = _V_.trim(lines[++i]);
                    time = line.split(" --> ");
                    subtitle.start = this.parseSubtitleTime(time[0]);
                    subtitle.end = this.parseSubtitleTime(time[1]);

                    // Additional lines - Subtitle Text
                    text = [];
                    for (var j=i; j<lines.length; j++) { // Loop until a blank line or end of lines
                        line = _V_.trim(lines[++i]);
                        if (!line) {
                            break;
                        }
                        text.push(line);
                    }
                    subtitle.text = text.join('<br/>');

                    // Add this subtitle
                    this.subtitles.push(subtitle);
                }
            }
        },

        parseSubtitleTime: function(timeText) {
            var parts = timeText.split(':'),
            time = 0;
            // hours => seconds
            time += parseFloat(parts[0])*60*60;
            // minutes => seconds
            time += parseFloat(parts[1])*60;
            // get seconds
            var seconds = parts[2].split(/\.|,/); // Either . or ,
            time += parseFloat(seconds[0]);
            // add miliseconds
            ms = parseFloat(seconds[1]);
            if (ms) {
                time += ms/1000;
            }
            return time;
        },

        buildSubtitles: function(){
            /* Creating this HTML
      <div class="vjs-subtitles"></div>
    */
            this.subtitlesDisplay = _V_.createElement("div", {
                className: 'vjs-subtitles'
            });
            this.box.appendChild(this.subtitlesDisplay);
            this.activateElement(this.subtitlesDisplay, "subtitlesDisplay");
        },

        /* Player API - Translate functionality from player to video
  ================================================================================ */
        addVideoListener: function(type, fn){
            _V_.addListener(this.video, type, fn.rEvtContext(this));
        },

        play: function(){
            this.video.play();
            return this;
        },
        onPlay: function(fn){
            this.addVideoListener("play", fn);
            return this;
        },

        pause: function(){
            this.video.pause();
            return this;
        },
        onPause: function(fn){
            this.addVideoListener("pause", fn);
            return this;
        },
        paused: function() {
            return this.video.paused;
        },

        currentTime: function(seconds){
            if (seconds !== undefined) {
                try {
                    this.video.currentTime = seconds;
                }
                catch(e) {
                    this.warning(VideoJS.warnings.videoNotReady);
                }
                this.values.currentTime = seconds;
                return this;
            }
            return this.video.currentTime;
        },
        onCurrentTimeUpdate: function(fn){
            this.currentTimeListeners.push(fn);
        },

        duration: function(){
            return this.video.duration;
        },

        buffered: function(){
            // Storing values allows them be overridden by setBufferedFromProgress
            if (this.values.bufferStart === undefined) {
                this.values.bufferStart = 0;
                this.values.bufferEnd = 0;
            }
            if (this.video.buffered && this.video.buffered.length > 0) {
                var newEnd = this.video.buffered.end(0);
                if (newEnd > this.values.bufferEnd) {
                    this.values.bufferEnd = newEnd;
                }
            }
            return [this.values.bufferStart, this.values.bufferEnd];
        },

        volume: function(percentAsDecimal){
            if (percentAsDecimal !== undefined) {
                // Force value to between 0 and 1
                this.values.volume = Math.max(0, Math.min(1, parseFloat(percentAsDecimal)));
                this.video.volume = this.values.volume;
                this.setLocalStorage("volume", this.values.volume);
                return this;
            }
            if (this.values.volume) {
                return this.values.volume;
            }
            return this.video.volume;
        },
        onVolumeChange: function(fn){
            _V_.addListener(this.video, 'volumechange', fn.rEvtContext(this));
        },

        width: function(width){
            if (width !== undefined) {
                this.video.width = width; // Not using style so it can be overridden on fullscreen.
                this.box.style.width = width+"px";
                this.triggerResizeListeners();
                return this;
            }
            return this.video.offsetWidth;
        },
        height: function(height){
            if (height !== undefined) {
                this.video.height = height;
                this.box.style.height = height+"px";
                this.triggerResizeListeners();
                return this;
            }
            return this.video.offsetHeight;
        },

        supportsFullScreen: function(){
            if(typeof this.video.webkitEnterFullScreen == 'function') {
                // Seems to be broken in Chromium/Chrome
                if (!navigator.userAgent.match("Chrome") && !navigator.userAgent.match("Mac OS X 10.5")) {
                    return true;
                }
            }
            return false;
        },

        html5EnterNativeFullScreen: function(){
            try {
                this.video.webkitEnterFullScreen();
            } catch (e) {
                if (e.code == 11) {
                    this.warning(VideoJS.warnings.videoNotReady);
                }
            }
            return this;
        },

        // Turn on fullscreen (window) mode
        // Real fullscreen isn't available in browsers quite yet.
        enterFullScreen: function(){
            if (this.supportsFullScreen()) {
                this.html5EnterNativeFullScreen();
            } else {
                this.enterFullWindow();
            }
        },

        exitFullScreen: function(){
            if (this.supportsFullScreen()) {
            // Shouldn't be called
            } else {
                this.exitFullWindow();
            }
        },

        enterFullWindow: function(){
            this.videoIsFullScreen = true;
            // Storing original doc overflow value to return to when fullscreen is off
            this.docOrigOverflow = document.documentElement.style.overflow;
            // Add listener for esc key to exit fullscreen
            _V_.addListener(document, "keydown", this.fullscreenOnEscKey.rEvtContext(this));
            // Add listener for a window resize
            _V_.addListener(window, "resize", this.fullscreenOnWindowResize.rEvtContext(this));
            // Hide any scroll bars
            document.documentElement.style.overflow = 'hidden';
            // Apply fullscreen styles
            _V_.addClass(this.box, "vjs-fullscreen");
            // Resize the box, controller, and poster
            this.positionAll();
        },

        // Turn off fullscreen (window) mode
        exitFullWindow: function(){
            this.videoIsFullScreen = false;
            document.removeEventListener("keydown", this.fullscreenOnEscKey, false);
            window.removeEventListener("resize", this.fullscreenOnWindowResize, false);
            // Unhide scroll bars.
            document.documentElement.style.overflow = this.docOrigOverflow;
            // Remove fullscreen styles
            _V_.removeClass(this.box, "vjs-fullscreen");
            // Resize the box, controller, and poster to original sizes
            this.positionAll();
        },

        onError: function(fn){
            this.addVideoListener("error", fn);
            return this;
        },
        onEnded: function(fn){
            this.addVideoListener("ended", fn);
            return this;
        }
    });

    ////////////////////////////////////////////////////////////////////////////////
    // Element Behaviors
    // Tell elements how to act or react
    ////////////////////////////////////////////////////////////////////////////////

    /* Player Behaviors - How VideoJS reacts to what the video is doing.
================================================================================ */
    VideoJS.player.newBehavior("player", function(player){
        this.onError(this.playerOnVideoError);
        // Listen for when the video is played
        this.onPlay(this.playerOnVideoPlay);
        this.onPlay(this.trackCurrentTime);
        // Listen for when the video is paused
        this.onPause(this.playerOnVideoPause);
        this.onPause(this.stopTrackingCurrentTime);
        // Listen for when the video ends
        this.onEnded(this.playerOnVideoEnded);
        // Set interval for load progress using buffer watching method
        // this.trackCurrentTime();
        this.trackBuffered();
        // Buffer Full
        this.onBufferedUpdate(this.isBufferFull);
    },{
        playerOnVideoError: function(event){
            this.log(event);
            this.log(this.video.error);
        },
        playerOnVideoPlay: function(event){
            this.hasPlayed = true;
        },
        playerOnVideoPause: function(event){},
        playerOnVideoEnded: function(event){
            this.currentTime(0);
            this.pause();
        },

        /* Load Tracking -------------------------------------------------------------- */
        // Buffer watching method for load progress.
        // Used for browsers that don't support the progress event
        trackBuffered: function(){
            this.bufferedInterval = setInterval(this.triggerBufferedListeners.context(this), 500);
        },
        stopTrackingBuffered: function(){
            clearInterval(this.bufferedInterval);
        },
        bufferedListeners: [],
        onBufferedUpdate: function(fn){
            this.bufferedListeners.push(fn);
        },
        triggerBufferedListeners: function(){
            this.isBufferFull();
            this.each(this.bufferedListeners, function(listener){
                (listener.context(this))();
            });
        },
        isBufferFull: function(){
            if (this.bufferedPercent() == 1) {
                this.stopTrackingBuffered();
            }
        },

        /* Time Tracking -------------------------------------------------------------- */
        trackCurrentTime: function(){
            if (this.currentTimeInterval) {
                clearInterval(this.currentTimeInterval);
            }
            this.currentTimeInterval = setInterval(this.triggerCurrentTimeListeners.context(this), 100); // 42 = 24 fps
            this.trackingCurrentTime = true;
        },
        // Turn off play progress tracking (when paused or dragging)
        stopTrackingCurrentTime: function(){
            clearInterval(this.currentTimeInterval);
            this.trackingCurrentTime = false;
        },
        currentTimeListeners: [],
        // onCurrentTimeUpdate is in API section now
        triggerCurrentTimeListeners: function(late, newTime){ // FF passes milliseconds late as the first argument
            this.each(this.currentTimeListeners, function(listener){
                (listener.context(this))(newTime || this.currentTime());
            });
        },

        /* Resize Tracking -------------------------------------------------------------- */
        resizeListeners: [],
        onResize: function(fn){
            this.resizeListeners.push(fn);
        },
        // Trigger anywhere the video/box size is changed.
        triggerResizeListeners: function(){
            this.each(this.resizeListeners, function(listener){
                (listener.context(this))();
            });
        }
    }
    );
    /* Mouse Over Video Reporter Behaviors - i.e. Controls hiding based on mouse location
================================================================================ */
    VideoJS.player.newBehavior("mouseOverVideoReporter", function(element){
        // Listen for the mouse move the video. Used to reveal the controller.
        _V_.addListener(element, "mousemove", this.mouseOverVideoReporterOnMouseMove.context(this));
        // Listen for the mouse moving out of the video. Used to hide the controller.
        _V_.addListener(element, "mouseout", this.mouseOverVideoReporterOnMouseOut.context(this));
    },{
        mouseOverVideoReporterOnMouseMove: function(){
            this.showControlBars();
            clearInterval(this.mouseMoveTimeout);
            this.mouseMoveTimeout = setTimeout(this.hideControlBars.context(this), 4000);
        },
        mouseOverVideoReporterOnMouseOut: function(event){
            // Prevent flicker by making sure mouse hasn't left the video
            var parent = event.relatedTarget;
            while (parent && parent !== this.box) {
                parent = parent.parentNode;
            }
            if (parent !== this.box) {
                this.hideControlBars();
            }
        }
    }
    );
    /* Mouse Over Video Reporter Behaviors - i.e. Controls hiding based on mouse location
================================================================================ */
    VideoJS.player.newBehavior("box", function(element){
        this.positionBox();
        _V_.addClass(element, "vjs-paused");
        this.activateElement(element, "mouseOverVideoReporter");
        this.onPlay(this.boxOnVideoPlay);
        this.onPause(this.boxOnVideoPause);
    },{
        boxOnVideoPlay: function(){
            _V_.removeClass(this.box, "vjs-paused");
            _V_.addClass(this.box, "vjs-playing");
        },
        boxOnVideoPause: function(){
            _V_.removeClass(this.box, "vjs-playing");
            _V_.addClass(this.box, "vjs-paused");
        }
    }
    );
    /* Poster Image Overlay
================================================================================ */
    VideoJS.player.newBehavior("poster", function(element){
        this.activateElement(element, "mouseOverVideoReporter");
        this.activateElement(element, "playButton");
        this.onPlay(this.hidePoster);
        this.onEnded(this.showPoster);
        this.onResize(this.positionPoster);
    },{
        showPoster: function(){
            if (!this.poster) {
                return;
            }
            this.poster.style.display = "block";
            this.positionPoster();
        },
        positionPoster: function(){
            // Only if the poster is visible
            if (!this.poster || this.poster.style.display == 'none') {
                return;
            }
            this.poster.style.height = this.height() + "px"; // Need incase controlsBelow
            this.poster.style.width = this.width() + "px"; // Could probably do 100% of box
        },
        hidePoster: function(){
            if (!this.poster) {
                return;
            }
            this.poster.style.display = "none";
        },
        // Update poster source from attribute or fallback image
        // iPad breaks if you include a poster attribute, so this fixes that
        updatePosterSource: function(){
            if (!this.video.poster) {
                var images = this.video.getElementsByTagName("img");
                if (images.length > 0) {
                    this.video.poster = images[0].src;
                }
            }
        }
    }
    );
    /* Control Bar Behaviors
================================================================================ */
    VideoJS.player.newBehavior("controlBar", function(element){
        if (!this.controlBars) {
            this.controlBars = [];
            this.onResize(this.positionControlBars);
        }
        this.controlBars.push(element);
        _V_.addListener(element, "mousemove", this.onControlBarsMouseMove.context(this));
        _V_.addListener(element, "mouseout", this.onControlBarsMouseOut.context(this));
    },{
        showControlBars: function(){
            if (!this.options.controlsAtStart && !this.hasPlayed) {
                return;
            }
            this.each(this.controlBars, function(bar){
                bar.style.display = "block";
            });
        },
        // Place controller relative to the video's position (now just resizing bars)
        positionControlBars: function(){
            this.updatePlayProgressBars();
            this.updateLoadProgressBars();
        },
        hideControlBars: function(){
            if (this.options.controlsHiding && !this.mouseIsOverControls) {
                this.each(this.controlBars, function(bar){
                    bar.style.display = "none";
                });
            }
        },
        // Block controls from hiding when mouse is over them.
        onControlBarsMouseMove: function(){
            this.mouseIsOverControls = true;
        },
        onControlBarsMouseOut: function(event){
            this.mouseIsOverControls = false;
        }
    }
    );
    /* PlayToggle, PlayButton, PauseButton Behaviors
================================================================================ */
    // Play Toggle
    VideoJS.player.newBehavior("playToggle", function(element){
        if (!this.elements.playToggles) {
            this.elements.playToggles = [];
            this.onPlay(this.playTogglesOnPlay);
            this.onPause(this.playTogglesOnPause);
        }
        this.elements.playToggles.push(element);
        _V_.addListener(element, "click", this.onPlayToggleClick.context(this));
    },{
        onPlayToggleClick: function(event){
            if (this.paused()) {
                this.play();
            } else {
                this.pause();
            }
        },
        playTogglesOnPlay: function(event){
            this.each(this.elements.playToggles, function(toggle){
                _V_.removeClass(toggle, "vjs-paused");
                _V_.addClass(toggle, "vjs-playing");
            });
        },
        playTogglesOnPause: function(event){
            this.each(this.elements.playToggles, function(toggle){
                _V_.removeClass(toggle, "vjs-playing");
                _V_.addClass(toggle, "vjs-paused");
            });
        }
    }
    );
    // Play
    VideoJS.player.newBehavior("playButton", function(element){
        _V_.addListener(element, "click", this.onPlayButtonClick.context(this));
    },{
        onPlayButtonClick: function(event){
            this.play();
        }
    }
    );
    // Pause
    VideoJS.player.newBehavior("pauseButton", function(element){
        _V_.addListener(element, "click", this.onPauseButtonClick.context(this));
    },{
        onPauseButtonClick: function(event){
            this.pause();
        }
    }
    );
    /* Play Progress Bar Behaviors
================================================================================ */
    VideoJS.player.newBehavior("playProgressBar", function(element){
        if (!this.playProgressBars) {
            this.playProgressBars = [];
            this.onCurrentTimeUpdate(this.updatePlayProgressBars);
        }
        this.playProgressBars.push(element);
    },{
        // Ajust the play progress bar's width based on the current play time
        updatePlayProgressBars: function(newTime){
            var progress = (newTime !== undefined) ? newTime / this.duration() : this.currentTime() / this.duration();
            if (isNaN(progress)) {
                progress = 0;
            }
            this.each(this.playProgressBars, function(bar){
                if (bar.style) {
                    bar.style.width = _V_.round(progress * 100, 2) + "%";
                }
            });
        }
    }
    );
    /* Load Progress Bar Behaviors
================================================================================ */
    VideoJS.player.newBehavior("loadProgressBar", function(element){
        if (!this.loadProgressBars) {
            this.loadProgressBars = [];
        }
        this.loadProgressBars.push(element);
        this.onBufferedUpdate(this.updateLoadProgressBars);
    },{
        updateLoadProgressBars: function(){
            this.each(this.loadProgressBars, function(bar){
                if (bar.style) {
                    bar.style.width = _V_.round(this.bufferedPercent() * 100, 2) + "%";
                }
            });
        }
    }
    );

    /* Current Time Display Behaviors
================================================================================ */
    VideoJS.player.newBehavior("currentTimeDisplay", function(element){
        if (!this.currentTimeDisplays) {
            this.currentTimeDisplays = [];
            this.onCurrentTimeUpdate(this.updateCurrentTimeDisplays);
        }
        this.currentTimeDisplays.push(element);
    },{
        // Update the displayed time (00:00)
        updateCurrentTimeDisplays: function(newTime){
            if (!this.currentTimeDisplays) {
                return;
            }
            // Allows for smooth scrubbing, when player can't keep up.
            var time = (newTime) ? newTime : this.currentTime();
            this.each(this.currentTimeDisplays, function(dis){
                dis.innerHTML = _V_.formatTime(time);
            });
        }
    }
    );

    /* Duration Display Behaviors
================================================================================ */
    VideoJS.player.newBehavior("durationDisplay", function(element){
        if (!this.durationDisplays) {
            this.durationDisplays = [];
            this.onCurrentTimeUpdate(this.updateDurationDisplays);
        }
        this.durationDisplays.push(element);
    },{
        updateDurationDisplays: function(){
            if (!this.durationDisplays) {
                return;
            }
            this.each(this.durationDisplays, function(dis){
                if (this.duration()) {
                    dis.innerHTML = _V_.formatTime(this.duration());
                }
            });
        }
    }
    );

    /* Current Time Scrubber Behaviors
================================================================================ */
    VideoJS.player.newBehavior("currentTimeScrubber", function(element){
        _V_.addListener(element, "mousedown", this.onCurrentTimeScrubberMouseDown.rEvtContext(this));
    },{
        // Adjust the play position when the user drags on the progress bar
        onCurrentTimeScrubberMouseDown: function(event, scrubber){
            event.preventDefault();
            this.currentScrubber = scrubber;

            this.stopTrackingCurrentTime(); // Allows for smooth scrubbing

            this.videoWasPlaying = !this.paused();
            this.pause();

            _V_.blockTextSelection();
            this.setCurrentTimeWithScrubber(event);
            _V_.addListener(document, "mousemove", this.onCurrentTimeScrubberMouseMove.rEvtContext(this));
            _V_.addListener(document, "mouseup", this.onCurrentTimeScrubberMouseUp.rEvtContext(this));
        },
        onCurrentTimeScrubberMouseMove: function(event){ // Removeable
            this.setCurrentTimeWithScrubber(event);
        },
        onCurrentTimeScrubberMouseUp: function(event){ // Removeable
            _V_.unblockTextSelection();
            document.removeEventListener("mousemove", this.onCurrentTimeScrubberMouseMove, false);
            document.removeEventListener("mouseup", this.onCurrentTimeScrubberMouseUp, false);
            if (this.videoWasPlaying) {
                this.play();
                this.trackCurrentTime();
            }
        },
        setCurrentTimeWithScrubber: function(event){
            var newProgress = _V_.getRelativePosition(event.pageX, this.currentScrubber);
            var newTime = newProgress * this.duration();
            this.triggerCurrentTimeListeners(0, newTime); // Allows for smooth scrubbing
            // Don't let video end while scrubbing.
            if (newTime == this.duration()) {
                newTime = newTime - 0.1;
            }
            this.currentTime(newTime);
        }
    }
    );
    /* Volume Display Behaviors
================================================================================ */
    VideoJS.player.newBehavior("volumeDisplay", function(element){
        if (!this.volumeDisplays) {
            this.volumeDisplays = [];
            this.onVolumeChange(this.updateVolumeDisplays);
        }
        this.volumeDisplays.push(element);
        this.updateVolumeDisplay(element); // Set the display to the initial volume
    },{
        // Update the volume control display
        // Unique to these default controls. Uses borders to create the look of bars.
        updateVolumeDisplays: function(){
            if (!this.volumeDisplays) {
                return;
            }
            this.each(this.volumeDisplays, function(dis){
                this.updateVolumeDisplay(dis);
            });
        },
        updateVolumeDisplay: function(display){
            var volNum = Math.ceil(this.volume() * 6);
            this.each(display.children, function(child, num){
                if (num < volNum) {
                    _V_.addClass(child, "vjs-volume-level-on");
                } else {
                    _V_.removeClass(child, "vjs-volume-level-on");
                }
            });
        }
    }
    );
    /* Volume Scrubber Behaviors
================================================================================ */
    VideoJS.player.newBehavior("volumeScrubber", function(element){
        _V_.addListener(element, "mousedown", this.onVolumeScrubberMouseDown.rEvtContext(this));
    },{
        // Adjust the volume when the user drags on the volume control
        onVolumeScrubberMouseDown: function(event, scrubber){
            // event.preventDefault();
            _V_.blockTextSelection();
            this.currentScrubber = scrubber;
            this.setVolumeWithScrubber(event);
            _V_.addListener(document, "mousemove", this.onVolumeScrubberMouseMove.rEvtContext(this));
            _V_.addListener(document, "mouseup", this.onVolumeScrubberMouseUp.rEvtContext(this));
        },
        onVolumeScrubberMouseMove: function(event){
            this.setVolumeWithScrubber(event);
        },
        onVolumeScrubberMouseUp: function(event){
            this.setVolumeWithScrubber(event);
            _V_.unblockTextSelection();
            document.removeEventListener("mousemove", this.onVolumeScrubberMouseMove, false);
            document.removeEventListener("mouseup", this.onVolumeScrubberMouseUp, false);
        },
        setVolumeWithScrubber: function(event){
            var newVol = _V_.getRelativePosition(event.pageX, this.currentScrubber);
            this.volume(newVol);
        }
    }
    );
    /* Fullscreen Toggle Behaviors
================================================================================ */
    VideoJS.player.newBehavior("fullscreenToggle", function(element){
        _V_.addListener(element, "click", this.onFullscreenToggleClick.context(this));
    },{
        // When the user clicks on the fullscreen button, update fullscreen setting
        onFullscreenToggleClick: function(event){
            if (!this.videoIsFullScreen) {
                this.enterFullScreen();
            } else {
                this.exitFullScreen();
            }
        },

        fullscreenOnWindowResize: function(event){ // Removeable
            this.positionControlBars();
        },
        // Create listener for esc key while in full screen mode
        fullscreenOnEscKey: function(event){ // Removeable
            if (event.keyCode == 27) {
                this.exitFullScreen();
            }
        }
    }
    );
    /* Big Play Button Behaviors
================================================================================ */
    VideoJS.player.newBehavior("bigPlayButton", function(element){
        if (!this.elements.bigPlayButtons) {
            this.elements.bigPlayButtons = [];
            this.onPlay(this.bigPlayButtonsOnPlay);
            this.onEnded(this.bigPlayButtonsOnEnded);
        }
        this.elements.bigPlayButtons.push(element);
        this.activateElement(element, "playButton");
    },{
        bigPlayButtonsOnPlay: function(event){
            this.hideBigPlayButtons();
        },
        bigPlayButtonsOnEnded: function(event){
            this.showBigPlayButtons();
        },
        showBigPlayButtons: function(){
            this.each(this.elements.bigPlayButtons, function(element){
                element.style.display = "block";
            });
        },
        hideBigPlayButtons: function(){
            this.each(this.elements.bigPlayButtons, function(element){
                element.style.display = "none";
            });
        }
    }
    );
    /* Spinner
================================================================================ */
    VideoJS.player.newBehavior("spinner", function(element){
        if (!this.spinners) {
            this.spinners = [];
            _V_.addListener(this.video, "loadeddata", this.spinnersOnVideoLoadedData.context(this));
            _V_.addListener(this.video, "loadstart", this.spinnersOnVideoLoadStart.context(this));
            _V_.addListener(this.video, "seeking", this.spinnersOnVideoSeeking.context(this));
            _V_.addListener(this.video, "seeked", this.spinnersOnVideoSeeked.context(this));
            _V_.addListener(this.video, "canplay", this.spinnersOnVideoCanPlay.context(this));
            _V_.addListener(this.video, "canplaythrough", this.spinnersOnVideoCanPlayThrough.context(this));
            _V_.addListener(this.video, "waiting", this.spinnersOnVideoWaiting.context(this));
            _V_.addListener(this.video, "stalled", this.spinnersOnVideoStalled.context(this));
            _V_.addListener(this.video, "suspend", this.spinnersOnVideoSuspend.context(this));
            _V_.addListener(this.video, "playing", this.spinnersOnVideoPlaying.context(this));
            _V_.addListener(this.video, "timeupdate", this.spinnersOnVideoTimeUpdate.context(this));
        }
        this.spinners.push(element);
    },{
        showSpinners: function(){
            this.each(this.spinners, function(spinner){
                spinner.style.display = "block";
            });
            clearInterval(this.spinnerInterval);
            this.spinnerInterval = setInterval(this.rotateSpinners.context(this), 100);
        },
        hideSpinners: function(){
            this.each(this.spinners, function(spinner){
                spinner.style.display = "none";
            });
            clearInterval(this.spinnerInterval);
        },
        spinnersRotated: 0,
        rotateSpinners: function(){
            this.each(this.spinners, function(spinner){
                // spinner.style.transform =       'scale(0.5) rotate('+this.spinnersRotated+'deg)';
                spinner.style.WebkitTransform = 'scale(0.5) rotate('+this.spinnersRotated+'deg)';
                spinner.style.MozTransform =    'scale(0.5) rotate('+this.spinnersRotated+'deg)';
            });
            if (this.spinnersRotated == 360) {
                this.spinnersRotated = 0;
            }
            this.spinnersRotated += 45;
        },
        spinnersOnVideoLoadedData: function(event){
            this.hideSpinners();
        },
        spinnersOnVideoLoadStart: function(event){
            this.showSpinners();
        },
        spinnersOnVideoSeeking: function(event){ /* this.showSpinners(); */ },
        spinnersOnVideoSeeked: function(event){ /* this.hideSpinners(); */ },
        spinnersOnVideoCanPlay: function(event){ /* this.hideSpinners(); */ },
        spinnersOnVideoCanPlayThrough: function(event){
            this.hideSpinners();
        },
        spinnersOnVideoWaiting: function(event){
            // Safari sometimes triggers waiting inappropriately
            // Like after video has played, any you play again.
            this.showSpinners();
        },
        spinnersOnVideoStalled: function(event){},
        spinnersOnVideoSuspend: function(event){},
        spinnersOnVideoPlaying: function(event){
            this.hideSpinners();
        },
        spinnersOnVideoTimeUpdate: function(event){
            // Safari sometimes calls waiting and doesn't recover
            if(this.spinner.style.display == "block") {
                this.hideSpinners();
            }
        }
    }
    );
    /* Subtitles
================================================================================ */
    VideoJS.player.newBehavior("subtitlesDisplay", function(element){
        if (!this.subtitleDisplays) {
            this.subtitleDisplays = [];
            this.onCurrentTimeUpdate(this.subtitleDisplaysOnVideoTimeUpdate);
            this.onEnded(function() {
                this.lastSubtitleIndex = 0;
            }.context(this));
        }
        this.subtitleDisplays.push(element);
    },{
        subtitleDisplaysOnVideoTimeUpdate: function(time){
            // Assuming all subtitles are in order by time, and do not overlap
            if (this.subtitles) {
                // If current subtitle should stay showing, don't do anything. Otherwise, find new subtitle.
                if (!this.currentSubtitle || this.currentSubtitle.start >= time || this.currentSubtitle.end < time) {
                    var newSubIndex = false,
                    // Loop in reverse if lastSubtitle is after current time (optimization)
                    // Meaning the user is scrubbing in reverse or rewinding
                    reverse = (this.subtitles[this.lastSubtitleIndex].start > time),
                    // If reverse, step back 1 becase we know it's not the lastSubtitle
                    i = this.lastSubtitleIndex - (reverse) ? 1 : 0;
                    while (true) { // Loop until broken
                        if (reverse) { // Looping in reverse
                            // Stop if no more, or this subtitle ends before the current time (no earlier subtitles should apply)
                            if (i < 0 || this.subtitles[i].end < time) {
                                break;
                            }
                            // End is greater than time, so if start is less, show this subtitle
                            if (this.subtitles[i].start < time) {
                                newSubIndex = i;
                                break;
                            }
                            i--;
                        } else { // Looping forward
                            // Stop if no more, or this subtitle starts after time (no later subtitles should apply)
                            if (i >= this.subtitles.length || this.subtitles[i].start > time) {
                                break;
                            }
                            // Start is less than time, so if end is later, show this subtitle
                            if (this.subtitles[i].end > time) {
                                newSubIndex = i;
                                break;
                            }
                            i++;
                        }
                    }

                    // Set or clear current subtitle
                    if (newSubIndex !== false) {
                        this.currentSubtitle = this.subtitles[newSubIndex];
                        this.lastSubtitleIndex = newSubIndex;
                        this.updateSubtitleDisplays(this.currentSubtitle.text);
                    } else if (this.currentSubtitle) {
                        this.currentSubtitle = false;
                        this.updateSubtitleDisplays("");
                    }
                }
            }
        },
        updateSubtitleDisplays: function(val){
            this.each(this.subtitleDisplays, function(disp){
                disp.innerHTML = val;
            });
        }
    }
    );

    ////////////////////////////////////////////////////////////////////////////////
    // Convenience Functions (mini library)
    // Functions not specific to video or VideoJS and could probably be replaced with a library like jQuery
    ////////////////////////////////////////////////////////////////////////////////

    VideoJS.extend({

        addClass: function(element, classToAdd){
            if ((" "+element.className+" ").indexOf(" "+classToAdd+" ") == -1) {
                element.className = element.className === "" ? classToAdd : element.className + " " + classToAdd;
            }
        },
        removeClass: function(element, classToRemove){
            if (element.className.indexOf(classToRemove) == -1) {
                return;
            }
            var classNames = element.className.split(/\s+/);
            classNames.splice(classNames.lastIndexOf(classToRemove),1);
            element.className = classNames.join(" ");
        },
        createElement: function(tagName, attributes){
            return this.merge(document.createElement(tagName), attributes);
        },

        // Attempt to block the ability to select text while dragging controls
        blockTextSelection: function(){
            document.body.focus();
            document.onselectstart = function () {
                return false;
            };
        },
        // Turn off text selection blocking
        unblockTextSelection: function(){
            document.onselectstart = function () {
                return true;
            };
        },

        // Return seconds as MM:SS
        formatTime: function(secs) {
            var seconds = Math.round(secs);
            var minutes = Math.floor(seconds / 60);
            minutes = (minutes >= 10) ? minutes : "0" + minutes;
            seconds = Math.floor(seconds % 60);
            seconds = (seconds >= 10) ? seconds : "0" + seconds;
            return minutes + ":" + seconds;
        },

        // Return the relative horizonal position of an event as a value from 0-1
        getRelativePosition: function(x, relativeElement){
            return Math.max(0, Math.min(1, (x - this.findPosX(relativeElement)) / relativeElement.offsetWidth));
        },
        // Get an objects position on the page
        findPosX: function(obj) {
            var curleft = obj.offsetLeft;
            while(obj = obj.offsetParent) {
                curleft += obj.offsetLeft;
            }
            return curleft;
        },
        getComputedStyleValue: function(element, style){
            return window.getComputedStyle(element, null).getPropertyValue(style);
        },

        round: function(num, dec) {
            if (!dec) {
                dec = 0;
            }
            return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
        },

        addListener: function(element, type, handler){
            if (element.addEventListener) {
                element.addEventListener(type, handler, false);
            } else if (element.attachEvent) {
                element.attachEvent("on"+type, handler);
            }
        },
        removeListener: function(element, type, handler){
            if (element.removeEventListener) {
                element.removeEventListener(type, handler, false);
            } else if (element.attachEvent) {
                element.detachEvent("on"+type, handler);
            }
        },

        get: function(url, onSuccess){
            if (typeof XMLHttpRequest == "undefined") {
                XMLHttpRequest = function () {
                    try {
                        return new ActiveXObject("Msxml2.XMLHTTP.6.0");
                    } catch (e) {}
                    try {
                        return new ActiveXObject("Msxml2.XMLHTTP.3.0");
                    } catch (f) {}
                    try {
                        return new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (g) {}
                    //Microsoft.XMLHTTP points to Msxml2.XMLHTTP.3.0 and is redundant
                    throw new Error("This browser does not support XMLHttpRequest.");
                };
            }
            var request = new XMLHttpRequest();
            request.open("GET",url);
            request.onreadystatechange = function() {
                if (request.readyState == 4 && request.status == 200) {
                    onSuccess(request.responseText);
                }
            }.context(this);
            request.send();
        },

        trim: function(string){
            return string.toString().replace(/^\s+/, "").replace(/\s+$/, "");
        },

        // DOM Ready functionality adapted from jQuery. http://jquery.com/
        bindDOMReady: function(){
            if (document.readyState === "complete") {
                return VideoJS.onDOMReady();
            }
            if (document.addEventListener) {
                document.addEventListener("DOMContentLoaded", VideoJS.DOMContentLoaded, false);
                window.addEventListener("load", VideoJS.onDOMReady, false);
            } else if (document.attachEvent) {
                document.attachEvent("onreadystatechange", VideoJS.DOMContentLoaded);
                window.attachEvent("onload", VideoJS.onDOMReady);
            }
        },

        DOMContentLoaded: function(){
            if (document.addEventListener) {
                document.removeEventListener( "DOMContentLoaded", VideoJS.DOMContentLoaded, false);
                VideoJS.onDOMReady();
            } else if ( document.attachEvent ) {
                if ( document.readyState === "complete" ) {
                    document.detachEvent("onreadystatechange", VideoJS.DOMContentLoaded);
                    VideoJS.onDOMReady();
                }
            }
        },

        // Functions to be run once the DOM is loaded
        DOMReadyList: [],
        addToDOMReady: function(fn){
            if (VideoJS.DOMIsReady) {
                fn.call(document);
            } else {
                VideoJS.DOMReadyList.push(fn);
            }
        },

        DOMIsReady: false,
        onDOMReady: function(){
            if (VideoJS.DOMIsReady) {
                return;
            }
            if (!document.body) {
                return setTimeout(VideoJS.onDOMReady, 13);
            }
            VideoJS.DOMIsReady = true;
            if (VideoJS.DOMReadyList) {
                for (var i=0; i<VideoJS.DOMReadyList.length; i++) {
                    VideoJS.DOMReadyList[i].call(document);
                }
                VideoJS.DOMReadyList = null;
            }
        }
    });
    VideoJS.bindDOMReady();

    // Allows for binding context to functions
    // when using in event listeners and timeouts
    Function.prototype.context = function(obj){
        var method = this,
        temp = function(){
            return method.apply(obj, arguments);
        };
        return temp;
    };

    // Like context, in that it creates a closure
    // But insteaad keep "this" intact, and passes the var as the second argument of the function
    // Need for event listeners where you need to know what called the event
    // Only use with event callbacks
    Function.prototype.evtContext = function(obj){
        var method = this,
        temp = function(){
            var origContext = this;
            return method.call(obj, arguments[0], origContext);
        };
        return temp;
    };

    // Removeable Event listener with Context
    // Replaces the original function with a version that has context
    // So it can be removed using the original function name.
    // In order to work, a version of the function must already exist in the player/prototype
    Function.prototype.rEvtContext = function(obj, funcParent){
        if (this.hasContext === true) {
            return this;
        }
        if (!funcParent) {
            funcParent = obj;
        }
        for (var attrname in funcParent) {
            if (funcParent[attrname] == this) {
                funcParent[attrname] = this.evtContext(obj);
                funcParent[attrname].hasContext = true;
                return funcParent[attrname];
            }
        }
        return this.evtContext(obj);
    };

    // jQuery Plugin
    if (window.jQuery) {
        (function($) {
            $.fn.VideoJS = function(options) {
                this.each(function() {
                    VideoJS.setup(this, options);
                });
                return this;
            };
            $.fn.player = function() {
                return this[0].player;
            };
        })(jQuery);
    }


    // Expose to global
    window.VideoJS = window._V_ = VideoJS;

// End self-executing function
})(window);


/*
 * jNotify jQuery Plug-in
 *
 * Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * 	http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Date: 2010-09-30
 * Rev:  1.1.00
 */
(function(B){
    B.jnotify=function(K,M,L){
        return new C(K,M,L)
    };

    B.jnotify.version="1.1.00";
    var J,D=[],E=0,H=false,I=false,G,F,A={
        type:"",
        delay:2000,
        sticky:false,
        closeLabel:"&times;",
        showClose:true,
        fadeSpeed:1000,
        slideSpeed:250,
        classContainer:"jnotify-container",
        classNotification:"jnotify-notification",
        classBackground:"jnotify-background",
        classClose:"jnotify-close",
        classMessage:"jnotify-message",
        init:null,
        create:null,
        beforeRemove:null,
        remove:null,
        transition:null
    };

    B.jnotify.setup=function(K){
        A=B.extend({},A,K)
    };

    B.jnotify.play=function(M,N){
        if(H&&(M!==true)||(D.length==0)){
            return
        }
        H=true;
        var L=D.shift();
        F=L;
        var K=(arguments.length>=2)?parseInt(N,10):L.options.delay;
        G=setTimeout(function(){
            G=0;
            L.remove(function(){
                if(D.length==0){
                    H=false
                }else{
                    if(!I){
                        B.jnotify.play(true)
                    }
                }
            })
        },K)
    };

    B.jnotify.pause=function(){
        clearTimeout(G);
        if(G){
            D.unshift(F)
        }
        I=H=true
    };

    B.jnotify.resume=function(){
        I=false;
        B.jnotify.play(true,0)
    };

    function C(P,N){
        var M=this,K=typeof N;
        if(K=="number"){
            N=B.extend({},A,{
                delay:N
            })
        }else{
            if(K=="boolean"){
                N=B.extend({},A,{
                    sticky:true
                })
            }else{
                if(K=="string"){
                    N=B.extend({},A,{
                        type:N,
                        delay:((arguments.length>2)&&(typeof arguments[2]=="number"))?arguments[2]:A.delay,
                        sticky:((arguments.length>2)&&(typeof arguments[2]=="boolean"))?arguments[2]:A.sticky
                    })
                }else{
                    N=B.extend({},A,N)
                }
            }
        }
        this.options=N;
        if(!J){
            J=B('<div class="'+A.classContainer+'" />').appendTo("body");
            if(B.isFunction(N.init)){
                N.init.apply(M,[J])
            }
        }
        function O(S){
            var R='<div class="'+N.classNotification+(N.type.length?(" "+N.classNotification+"-"+N.type):"")+'"><div class="'+N.classBackground+'"></div>'+(N.sticky&&N.showClose?('<a class="'+N.classClose+'">'+N.closeLabel+"</a>"):"")+'<div class="'+N.classMessage+'"><div>'+S+"</div></div></div>";
            E++;
            var Q=B(R);
            if(N.sticky){
                Q.find("a."+N.classClose).bind("click.jnotify",function(){
                    M.remove()
                })
            }
            if(B.isFunction(N.create)){
                N.create.apply(M,[Q])
            }
            return Q.appendTo(J)
        }
        this.remove=function(U){
            var Q=L.find("."+N.classMessage),S=Q.parent();
            var R=E--;
            if(B.isFunction(N.beforeRemove)){
                N.beforeRemove.apply(M,[Q])
            }
            function T(){
                S.remove();
                if(B.isFunction(U)){
                    U.apply(M,[Q])
                }
                if(B.isFunction(N.remove)){
                    N.remove.apply(M,[Q])
                }
            }
            if(B.isFunction(N.transition)){
                N.transition.apply(M,[S,Q,R,T,N])
            }else{
                Q.fadeTo(N.fadeSpeed,0.01,function(){
                    if(R<=1){
                        T()
                    }else{
                        S.slideUp(N.slideSpeed,T)
                    }
                });
                if(E<=0){
                    S.fadeOut(N.fadeSpeed)
                }
            }
        };

        var L=O(P);
        if(!N.sticky){
            D.push(this);
            B.jnotify.play()
        }
        return this
    }
})(jQuery);

/*
 * flowplayer.js 3.2.6. The Flowplayer API
 *
 * Copyright 2009-2011 Flowplayer Oy
 *
 * This file is part of Flowplayer.
 *
 * Flowplayer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Flowplayer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Date: 2011-02-04 05:45:28 -0500 (Fri, 04 Feb 2011)
 * Revision: 614
 */
(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}if(J){J.cached=true;j(x,"onLoad",J)}flashembed(q,G,{config:t})};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.6";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p},_swfHeight:function(){return v.clientHeight}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=w._swfHeight();m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var I=0;m(t.playlist,function(){var K=this;if(typeof K=="object"&&K.length){K={url:""+K}}m(t.clip,function(L,M){if(M!==undefined&&K[L]===undefined&&typeof M!="function"){K[L]=M}});t.playlist[I]=K;K=new h(K,I,w);F.push(K);I++});m(t,function(K,L){if(typeof L=="function"){if(s[K]){s[K](L)}else{j(x,K,L)}delete t[K]}});m(t.plugins,function(K,L){if(L){y[K]=new l(K,L,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);u=q.innerHTML;function J(L){var K=w.hasiPadSupport&&w.hasiPadSupport();if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(F[0].url)&&!K){return true}if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(L)}function H(){if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",J,false)}else{if(q.attachEvent){q.attachEvent("onclick",J)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}setTimeout(H,0)}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}q=z;B()}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:false},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var e=typeof jQuery=="function";var i={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(e){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:"1.0.4",conf:i}}function j(){if(c.done){return false}var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){c.ready[k].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(k){if(c.done){return k()}if(c.timer){c.ready.push(k)}else{c.ready=[k];c.timer=setInterval(j,13)}};function f(l,k){if(k){for(key in k){if(k.hasOwnProperty(key)){l[key]=k[key]}}}return l}function g(k){switch(h(k)){case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){return g(n)}).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){if(k.hasOwnProperty(m)){l.push('"'+m+'":'+g(k[m]))}}return"{"+l.join(",")+"}"}return String(k).replace(/\s/g," ").replace(/\'/g,'"')}function h(l){if(l===null||l===undefined){return false}var k=typeof l;return(k=="object"&&l.push)?"array":k}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(k,n){var m=[];for(var l in k){if(k.hasOwnProperty(l)){m[l]=n(k[l])}}return m}function a(r,t){var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){q.id="_"+(""+Math.random()).substring(9)}if(q.id){n+=' id="'+q.id+'"'}if(q.cachebusting){q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(q.w3c||!s){n+=' data="'+q.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(q.w3c||s){n+='<param name="movie" value="'+q.src+'" />'}q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){if(q[l]!==null){n+='<param name="'+l+'" value="'+q[l]+'" />'}}var o="";if(t){for(var m in t){if(t[m]!==null){o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"}}o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"}n+="</object>";return n}function d(m,p,l){var k=flashembed.getVersion();f(this,{getContainer:function(){return m},getConf:function(){return p},getVersion:function(){return k},getFlashvars:function(){return l},getApi:function(){return m.firstChild},getHTML:function(){return a(p,l)}});var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)}else{if(q&&r&&flashembed.isSupported([6,65])){f(p,{src:r});l={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};m.innerHTML=a(p,l)}else{if(m.innerHTML.replace(/\s/g,"")!==""){}else{m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(m.tagName=="A"){m.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!o&&p.onFail){var n=p.onFail.call(this);if(typeof n=="string"){m.innerHTML=n}}if(document.all){window[p.id]=document.getElementById(p.id)}}window.flashembed=function(l,m,k){if(typeof l=="string"){var n=document.getElementById(l);if(n){l=n}else{c(function(){flashembed(l,m,k)});return}}if(!l){return}if(typeof m=="string"){m={src:m}}var o=f({},i);f(o,m);return new d(l,o,k)};f(window.flashembed,{getVersion:function(){var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]}}else{if(window.ActiveXObject){try{var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(q){try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"}catch(k){if(m[0]==6){return m}}try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(o){}}if(typeof p=="object"){l=p.GetVariable("$version");if(typeof l!="undefined"){l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]}}}}return m},isSupported:function(k){var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l},domReady:c,asString:g,getHTML:a});if(e){jQuery.fn.flashembed=function(l,k){var m=null;this.each(function(){m=flashembed(this,l,k)});return l.api===false?this:m}}})();
