text: var pluginOembedLoadLazyVideo = function() {
  	var a = this.parentNode,
  		b = a.children[0];
  	b.src = b.dataset.src, this.remove()
  };
  document.addEventListener("DOMContentLoaded", function(a) {
  	for (var b = document.getElementsByClassName("kirby-plugin-oembed__thumb"), c = 0; c < b.length; c++) b[c].addEventListener("click", pluginOembedLoadLazyVideo, !1)
  }), ! function() {
  	"use strict";
  	var a = function(a) {
  		var b = this;
  		b.mainContainer = null, b.selector = null, b.settings = $.extend({
  			elements: "[data-scroll-scope]",
  			forcedElements: '[data-scroll-scope="force"]',
  			events: "DOMMouseScroll mousewheel scroll touchstart touchmove"
  		}, a && (a.elements || a.forcedElements || a.events) ? a : {}), b.getTargetedElements = function() {
  			return b.mainContainer.find(b.selector)
  		}, b.getSelector = function(a) {
  			for (var b = [], c = 0; c < a.length; c++) a[c] && a[c].length && b.push(a[c]);
  			return b.length ? b.join(", ") : null
  		}, b.normalizeJqueryObject = function(a) {
  			return a ? a instanceof jQuery ? a : $(a) : null
  		}, b.killScrolling = function(a, b) {
  			return b || "touchmove" !== a.type && "touchstart" !== a.type ? (a.preventDefault(), a.stopPropagation(), a.returnValue = !1, !1) : void 0
  		}, b.onScroll = function(a) {
  			if (a.isLegitScroll) return !0;
  			var c = $(this),
  				d = b.settings.forcedElements && c.is(b.settings.forcedElements),
  				e = this.scrollHeight,
  				f = c.outerHeight(),
  				g = e - f - this.scrollTop;
  			if (f >= e) return d && "touchstart" !== a.type ? b.killScrolling(a, d) : !0;
  			var h = a.originalEvent.wheelDelta;
  			d && "undefined" == typeof h && "touchstart" === a.type && (this.scrollTop <= 0 ? c.scrollTop(1) : 0 >= g && c.scrollTop(e - f - 1));
  			var i = h > 0;
  			return !i && -h > g ? (c.scrollTop(this.scrollHeight), b.killScrolling(a, d)) : i && h > this.scrollTop ? (c.scrollTop(0), b.killScrolling(a, d)) : (a.isLegitScroll = !0, !0)
  		}, b.unbind = function() {
  			return b.mainContainer && b.mainContainer.off(b.settings.events, b.selector, b.onScroll), b
  		}, b.bind = function(a) {
  			return a = b.normalizeJqueryObject(a), a && b.unbind(), b.mainContainer = a, b.mainContainer.on(b.settings.events, b.selector, b.onScroll), b
  		}, b.settings.elements = b.getSelector([b.settings.elements]), b.settings.forcedElements = b.getSelector([b.settings.forcedElements]), b.selector = b.getSelector([b.settings.elements, b.settings.forcedElements])
  	};
  	"function" == typeof define && "object" == typeof define.amd && define.amd ? define(function() {
  		return a
  	}) : "undefined" != typeof module && module.exports ? module.exports = a : (window.ScrollScope = a, jQuery && ! function(b) {
  		b.fn.scrollScope = function(b) {
  			var c = new a(b);
  			return c.bind(this), c.mainContainer
  		}
  	}(jQuery))
  }(), ! function(a, b) {
  	var c = b(a, a.document);
  	a.lazySizes = c, "object" == typeof module && module.exports && (module.exports = c)
  }(window, function(a, b) {
  	"use strict";
  	if (b.getElementsByClassName) {
  		var c, d = b.documentElement,
  			e = a.HTMLPictureElement && "sizes" in b.createElement("img"),
  			f = "addEventListener",
  			g = "getAttribute",
  			h = a[f],
  			i = a.setTimeout,
  			j = a.requestAnimationFrame || i,
  			k = /^picture$/i,
  			l = ["load", "error", "lazyincluded", "_lazyloaded"],
  			m = {},
  			n = Array.prototype.forEach,
  			o = function(a, b) {
  				return m[b] || (m[b] = new RegExp("(\\s|^)" + b + "(\\s|$)")), m[b].test(a[g]("class") || "") && m[b]
  			},
  			p = function(a, b) {
  				o(a, b) || a.setAttribute("class", (a[g]("class") || "").trim() + " " + b)
  			},
  			q = function(a, b) {
  				var c;
  				(c = o(a, b)) && a.setAttribute("class", (a[g]("class") || "").replace(c, " "))
  			},
  			r = function(a, b, c) {
  				var d = c ? f : "removeEventListener";
  				c && r(a, b), l.forEach(function(c) {
  					a[d](c, b)
  				})
  			},
  			s = function(a, c, d, e, f) {
  				var g = b.createEvent("CustomEvent");
  				return g.initCustomEvent(c, !e, !f, d || {}), a.dispatchEvent(g), g
  			},
  			t = function(b, d) {
  				var f;
  				!e && (f = a.picturefill || c.pf) ? f({
  					reevaluate: !0,
  					elements: [b]
  				}) : d && d.src && (b.src = d.src)
  			},
  			u = function(a, b) {
  				return (getComputedStyle(a, null) || {})[b]
  			},
  			v = function(a, b, d) {
  				for (d = d || a.offsetWidth; d < c.minSize && b && !a._lazysizesWidth;) d = b.offsetWidth, b = b.parentNode;
  				return d
  			},
  			w = function(b) {
  				var c, d = 0,
  					e = a.Date,
  					f = function() {
  						c = !1, d = e.now(), b()
  					},
  					g = function() {
  						i(f)
  					},
  					h = function() {
  						j(g)
  					};
  				return function() {
  					if (!c) {
  						var a = 125 - (e.now() - d);
  						c = !0, 6 > a && (a = 6), i(h, a)
  					}
  				}
  			},
  			x = function() {
  				var e, l, m, v, x, z, A, B, C, D, E, F, G, H, I, J = /^img$/i,
  					K = /^iframe$/i,
  					L = "onscroll" in a && !/glebot/.test(navigator.userAgent),
  					M = 0,
  					N = 0,
  					O = 0,
  					P = 0,
  					Q = function(a) {
  						O--, a && a.target && r(a.target, Q), (!a || 0 > O || !a.target) && (O = 0)
  					},
  					R = function(a, c) {
  						var e, f = a,
  							g = "hidden" == u(b.body, "visibility") || "hidden" != u(a, "visibility");
  						for (C -= c, F += c, D -= c, E += c; g && (f = f.offsetParent) && f != b.body && f != d;) g = (u(f, "opacity") || 1) > 0, g && "visible" != u(f, "overflow") && (e = f.getBoundingClientRect(), g = E > e.left && D < e.right && F > e.top - 1 && C < e.bottom + 1);
  						return g
  					},
  					S = function() {
  						var a, b, f, h, i, j, k, n, o;
  						if ((x = c.loadMode) && 8 > O && (a = e.length)) {
  							b = 0, P++, null == H && ("expand" in c || (c.expand = d.clientHeight > 600 ? d.clientWidth > 600 ? 550 : 410 : 359), G = c.expand, H = G * c.expFactor), H > N && 1 > O && P > 3 && x > 2 ? (N = H, P = 0) : N = x > 1 && P > 2 && 6 > O ? G : M;
  							for (; a > b; b++)
  								if (e[b] && !e[b]._lazyRace)
  									if (L)
  										if ((n = e[b][g]("data-expand")) && (j = 1 * n) || (j = N), o !== j && (A = innerWidth + j * I, B = innerHeight + j, k = -1 * j, o = j), f = e[b].getBoundingClientRect(), (F = f.bottom) >= k && (C = f.top) <= B && (E = f.right) >= k * I && (D = f.left) <= A && (F || E || D || C) && (m && 3 > O && !n && (3 > x || 4 > P) || R(e[b], j))) {
  											if (Z(e[b]), i = !0, O > 9) break
  										} else !i && m && !h && 4 > O && 4 > P && x > 2 && (l[0] || c.preloadAfterLoad) && (l[0] || !n && (F || E || D || C || "auto" != e[b][g](c.sizesAttr))) && (h = l[0] || e[b]);
  							else Z(e[b]);
  							h && !i && Z(h)
  						}
  					},
  					T = w(S),
  					U = function(a) {
  						p(a.target, c.loadedClass), q(a.target, c.loadingClass), r(a.target, V)
  					},
  					V = function(a) {
  						a = {
  							target: a.target
  						}, j(function() {
  							U(a)
  						})
  					},
  					W = function(a, b) {
  						try {
  							a.contentWindow.location.replace(b)
  						} catch (c) {
  							a.src = b
  						}
  					},
  					X = function(a) {
  						var b, d, e = a[g](c.srcsetAttr);
  						(b = c.customMedia[a[g]("data-media") || a[g]("media")]) && a.setAttribute("media", b), e && a.setAttribute("srcset", e), b && (d = a.parentNode, d.insertBefore(a.cloneNode(), a), d.removeChild(a))
  					},
  					Y = function() {
  						var a, b = [],
  							c = function() {
  								for (; b.length;) b.shift()();
  								a = !1
  							},
  							d = function(d) {
  								b.push(d), a || (a = !0, j(c))
  							};
  						return {
  							add: d,
  							run: c
  						}
  					}(),
  					Z = function(a) {
  						var b, d, e, f, h, l, u, w = J.test(a.nodeName),
  							x = w && (a[g](c.sizesAttr) || a[g]("sizes")),
  							z = "auto" == x;
  						(!z && m || !w || !a.src && !a.srcset || a.complete || o(a, c.errorClass)) && (z && (u = a.offsetWidth), a._lazyRace = !0, O++, c.rC && (u = c.rC(a, u) || u), Y.add(function() {
  							(h = s(a, "lazybeforeunveil")).defaultPrevented || (x && (z ? (y.updateElem(a, !0, u), p(a, c.autosizesClass)) : a.setAttribute("sizes", x)), d = a[g](c.srcsetAttr), b = a[g](c.srcAttr), w && (e = a.parentNode, f = e && k.test(e.nodeName || "")), l = h.detail.firesLoad || "src" in a && (d || b || f), h = {
  								target: a
  							}, l && (r(a, Q, !0), clearTimeout(v), v = i(Q, 2500), p(a, c.loadingClass), r(a, V, !0)), f && n.call(e.getElementsByTagName("source"), X), d ? a.setAttribute("srcset", d) : b && !f && (K.test(a.nodeName) ? W(a, b) : a.src = b), (d || f) && t(a, {
  								src: b
  							})), j(function() {
  								a._lazyRace && delete a._lazyRace, q(a, c.lazyClass), (!l || a.complete) && (l ? Q(h) : O--, U(h))
  							})
  						}))
  					},
  					$ = function() {
  						if (!m) {
  							if (Date.now() - z < 999) return void i($, 999);
  							var a, d = function() {
  								c.loadMode = 3, T()
  							};
  							m = !0, c.loadMode = 3, b.hidden ? (S(), Y.run()) : T(), h("scroll", function() {
  								3 == c.loadMode && (c.loadMode = 2), clearTimeout(a), a = i(d, 99)
  							}, !0)
  						}
  					};
  				return {
  					_: function() {
  						z = Date.now(), e = b.getElementsByClassName(c.lazyClass), l = b.getElementsByClassName(c.lazyClass + " " + c.preloadClass), I = c.hFac, h("scroll", T, !0), h("resize", T, !0), a.MutationObserver ? new MutationObserver(T).observe(d, {
  							childList: !0,
  							subtree: !0,
  							attributes: !0
  						}) : (d[f]("DOMNodeInserted", T, !0), d[f]("DOMAttrModified", T, !0), setInterval(T, 999)), h("hashchange", T, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend", "webkitAnimationEnd"].forEach(function(a) {
  							b[f](a, T, !0)
  						}), /d$|^c/.test(b.readyState) ? $() : (h("load", $), b[f]("DOMContentLoaded", T), i($, 2e4)), T(e.length > 0)
  					},
  					checkElems: T,
  					unveil: Z
  				}
  			}(),
  			y = function() {
  				var a, d = function(a, b, c) {
  						var d, e, f, g, h = a.parentNode;
  						if (h && (c = v(a, h, c), g = s(a, "lazybeforesizes", {
  								width: c,
  								dataAttr: !!b
  							}), !g.defaultPrevented && (c = g.detail.width, c && c !== a._lazysizesWidth))) {
  							if (a._lazysizesWidth = c, c += "px", a.setAttribute("sizes", c), k.test(h.nodeName || ""))
  								for (d = h.getElementsByTagName("source"), e = 0, f = d.length; f > e; e++) d[e].setAttribute("sizes", c);
  							g.detail.dataAttr || t(a, g.detail)
  						}
  					},
  					e = function() {
  						var b, c = a.length;
  						if (c)
  							for (b = 0; c > b; b++) d(a[b])
  					},
  					f = w(e);
  				return {
  					_: function() {
  						a = b.getElementsByClassName(c.autosizesClass), h("resize", f)
  					},
  					checkElems: f,
  					updateElem: d
  				}
  			}(),
  			z = function() {
  				z.i || (z.i = !0, y._(), x._())
  			};
  		return function() {
  			var b, d = {
  				lazyClass: "lazyload",
  				loadedClass: "lazyloaded",
  				loadingClass: "lazyloading",
  				preloadClass: "lazypreload",
  				errorClass: "lazyerror",
  				autosizesClass: "lazyautosizes",
  				srcAttr: "data-src",
  				srcsetAttr: "data-srcset",
  				sizesAttr: "data-sizes",
  				minSize: 40,
  				customMedia: {},
  				init: !0,
  				expFactor: 1.7,
  				hFac: .8,
  				loadMode: 2
  			};
  			c = a.lazySizesConfig || a.lazysizesConfig || {};
  			for (b in d) b in c || (c[b] = d[b]);
  			a.lazySizesConfig = c, i(function() {
  				c.init && z()
  			})
  		}(), {
  			cfg: c,
  			autoSizer: y,
  			loader: x,
  			init: z,
  			uP: t,
  			aC: p,
  			rC: q,
  			hC: o,
  			fire: s,
  			gW: v
  		}
  	}
  }), ! function(a, b, c) {
  	"use strict";
  	if (a.addEventListener) {
  		var d, e = /^picture$/i,
  			f = b.documentElement,
  			g = function() {
  				var a, b = /(([^,\s].[^\s]+)\s+(\d+)(w|h)(\s+(\d+)(w|h))?)/g,
  					c = function(b, c, d, e, f, g, h, i) {
  						a.push({
  							c: c,
  							u: d,
  							w: 1 * ("w" == i ? h : e)
  						})
  					};
  				return function(d) {
  					return a = [], d.replace(b, c), a
  				}
  			}(),
  			h = function() {
  				var a = function(a, b) {
  						return a.w - b.w
  					},
  					b = function(b, c) {
  						var d = {
  								srcset: b.getAttribute(lazySizes.cfg.srcsetAttr) || ""
  							},
  							e = g(d.srcset);
  						return Object.defineProperty(b, c, {
  							value: d,
  							writable: !0
  						}), d.cands = e, d.index = 0, d.dirty = !1, e[0] && e[0].w ? (e.sort(a), d.cSrcset = [e[d.index].c]) : (d.cSrcset = d.srcset ? [d.srcset] : [], d.cands = []), d
  					};
  				return function(a, c) {
  					var d, f, g, h;
  					if (!a[c] && (h = a.parentNode || {}, a[c] = b(a, c), a[c].isImg = !0, e.test(h.nodeName || "")))
  						for (a[c].picture = !0, d = h.getElementsByTagName("source"), f = 0, g = d.length; g > f; f++) b(d[f], c).isImg = !1;
  					return a[c]
  				}
  			}(),
  			i = {
  				_lazyOptimumx: function() {
  					var a = function(a, b, c) {
  						var d, e;
  						return a && a.w ? a.w > c ? !1 : (d = 1 - a.w / c, e = b / c - 1, 0 > e - d) : !0
  					};
  					return function(b, c) {
  						var d, e;
  						for (d = b.index + 1; d < b.cands.length && (e = b.cands[d], e.w <= c || a(b.cands[d - 1], e.w, c)); d++) b.cSrcset.push(e.c), b.index = d
  					}
  				}()
  			},
  			j = function() {
  				var a = function(a, b, c, d) {
  					var e, f = a[d];
  					f && (e = f.index, i[d](f, b), f.dirty && e == f.index || (f.cSrcset.join(", "), a.setAttribute(c, f.cSrcset.join(", ")), f.dirty = !0))
  				};
  				return function(b, c, d, e) {
  					var f, g, h, i, j = b[e];
  					if (j.width = c, j.picture && (g = b.parentNode))
  						for (f = g.getElementsByTagName("source"), i = 0, h = f.length; h > i; i++) a(f[i], c, d, e);
  					a(b, c, d, e)
  				}
  			}(),
  			k = function(a) {
  				var b = a.getAttribute("data-optimumx") || a.getAttribute("data-maxdpr");
  				return b && (b = "auto" == b ? d.getOptimumX(a) : parseFloat(b, 10)), b
  			},
  			l = function() {
  				a.lazySizes && !a.lazySizes.getOptimumX && (lazySizes.getX = k, lazySizes.pWS = g, f.removeEventListener("lazybeforeunveil", l))
  			};
  		f.addEventListener("lazybeforeunveil", l), setTimeout(l), d = a.lazySizes && lazySizes.cfg || a.lazySizesConfig, d || (d = {}, a.lazySizesConfig = d), "function" != typeof d.getOptimumX && (d.getOptimumX = function() {
  			var b = a.devicePixelRatio || 1;
  			return b > 2.5 ? b *= .6 : b > 1.9 && (b *= .8), Math.min(Math.round(100 * b) / 100, 2)
  		}), a.devicePixelRatio && (addEventListener("lazybeforesizes", function(a) {
  			var b, c, d, e;
  			a.defaultPrevented || !(b = k(a.target)) || b >= devicePixelRatio || (c = h(a.target, "_lazyOptimumx"), d = a.detail.width * b, d && (c.width || 0) < d && (e = a.detail.dataAttr ? lazySizes.cfg.srcsetAttr : "srcset", j(a.target, d, e, "_lazyOptimumx")))
  		}), addEventListener("lazybeforeunveil", function(a) {
  			a.target._lazyOptimumx && !a.detail.reloaded && (a.target._lazyOptimumx = null)
  		}))
  	}
  }(window, document);
  var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
  (_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
  		"use strict";
  		_gsScope._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(a, b, c) {
  				var d = function(a) {
  						var b, c = [],
  							d = a.length;
  						for (b = 0; b !== d; c.push(a[b++]));
  						return c
  					},
  					e = function(a, b, c) {
  						var d, e, f = a.cycle;
  						for (d in f) e = f[d], a[d] = "function" == typeof e ? e.call(b[c], c) : e[c % e.length];
  						delete a.cycle
  					},
  					f = function(a, b, d) {
  						c.call(this, a, b, d), this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._dirty = !0, this.render = f.prototype.render
  					},
  					g = 1e-10,
  					h = c._internals,
  					i = h.isSelector,
  					j = h.isArray,
  					k = f.prototype = c.to({}, .1, {}),
  					l = [];
  				f.version = "1.18.5", k.constructor = f, k.kill()._gc = !1, f.killTweensOf = f.killDelayedCallsTo = c.killTweensOf, f.getTweensOf = c.getTweensOf, f.lagSmoothing = c.lagSmoothing, f.ticker = c.ticker, f.render = c.render, k.invalidate = function() {
  					return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), c.prototype.invalidate.call(this)
  				}, k.updateTo = function(a, b) {
  					var d, e = this.ratio,
  						f = this.vars.immediateRender || a.immediateRender;
  					b && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
  					for (d in a) this.vars[d] = a[d];
  					if (this._initted || f)
  						if (b) this._initted = !1, f && this.render(0, !0, !0);
  						else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && c._onPluginEvent("_onDisable", this), this._time / this._duration > .998) {
  						var g = this._totalTime;
  						this.render(0, !0, !1), this._initted = !1, this.render(g, !0, !1)
  					} else if (this._initted = !1, this._init(), this._time > 0 || f)
  						for (var h, i = 1 / (1 - e), j = this._firstPT; j;) h = j.s + j.c, j.c *= i, j.s = h - j.c, j = j._next;
  					return this
  				}, k.render = function(a, b, c) {
  					this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
  					var d, e, f, i, j, k, l, m, n = this._dirty ? this.totalDuration() : this._totalDuration,
  						o = this._time,
  						p = this._totalTime,
  						q = this._cycle,
  						r = this._duration,
  						s = this._rawPrevTime;
  					if (a >= n - 1e-7 ? (this._totalTime = n, this._cycle = this._repeat, this._yoyo && 0 !== (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = r, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (d = !0, e = "onComplete", c = c || this._timeline.autoRemoveChildren), 0 === r && (this._initted || !this.vars.lazy || c) && (this._startTime === this._timeline._duration && (a = 0), (0 > s || 0 >= a && a >= -1e-7 || s === g && "isPause" !== this.data) && s !== a && (c = !0, s > g && (e = "onReverseComplete")), this._rawPrevTime = m = !b || a || s === a ? a : g)) : 1e-7 > a ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== p || 0 === r && s > 0) && (e = "onReverseComplete", d = this._reversed), 0 > a && (this._active = !1, 0 === r && (this._initted || !this.vars.lazy || c) && (s >= 0 && (c = !0), this._rawPrevTime = m = !b || a || s === a ? a : g)), this._initted || (c = !0)) : (this._totalTime = this._time = a, 0 !== this._repeat && (i = r + this._repeatDelay, this._cycle = this._totalTime / i >> 0, 0 !== this._cycle && this._cycle === this._totalTime / i && a >= p && this._cycle--, this._time = this._totalTime - this._cycle * i, this._yoyo && 0 !== (1 & this._cycle) && (this._time = r - this._time), this._time > r ? this._time = r : this._time < 0 && (this._time = 0)), this._easeType ? (j = this._time / r, k = this._easeType, l = this._easePower, (1 === k || 3 === k && j >= .5) && (j = 1 - j), 3 === k && (j *= 2), 1 === l ? j *= j : 2 === l ? j *= j * j : 3 === l ? j *= j * j * j : 4 === l && (j *= j * j * j * j), 1 === k ? this.ratio = 1 - j : 2 === k ? this.ratio = j : this._time / r < .5 ? this.ratio = j / 2 : this.ratio = 1 - j / 2) : this.ratio = this._ease.getRatio(this._time / r)), o === this._time && !c && q === this._cycle) return void(p !== this._totalTime && this._onUpdate && (b || this._callback("onUpdate")));
  					if (!this._initted) {
  						if (this._init(), !this._initted || this._gc) return;
  						if (!c && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration)) return this._time = o, this._totalTime = p, this._rawPrevTime = s, this._cycle = q, h.lazyTweens.push(this), void(this._lazy = [a, b]);
  						this._time && !d ? this.ratio = this._ease.getRatio(this._time / r) : d && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
  					}
  					for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== o && a >= 0 && (this._active = !0), 0 === p && (2 === this._initted && a > 0 && this._init(), this._startAt && (a >= 0 ? this._startAt.render(a, b, c) : e || (e = "_dummyGS")), this.vars.onStart && (0 !== this._totalTime || 0 === r) && (b || this._callback("onStart"))), f = this._firstPT; f;) f.f ? f.t[f.p](f.c * this.ratio + f.s) : f.t[f.p] = f.c * this.ratio + f.s, f = f._next;
  					this._onUpdate && (0 > a && this._startAt && this._startTime && this._startAt.render(a, b, c), b || (this._totalTime !== p || e) && this._callback("onUpdate")), this._cycle !== q && (b || this._gc || this.vars.onRepeat && this._callback("onRepeat")), e && (!this._gc || c) && (0 > a && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(a, b, c), d && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !b && this.vars[e] && this._callback(e), 0 === r && this._rawPrevTime === g && m !== g && (this._rawPrevTime = 0))
  				}, f.to = function(a, b, c) {
  					return new f(a, b, c)
  				}, f.from = function(a, b, c) {
  					return c.runBackwards = !0, c.immediateRender = 0 != c.immediateRender, new f(a, b, c)
  				}, f.fromTo = function(a, b, c, d) {
  					return d.startAt = c, d.immediateRender = 0 != d.immediateRender && 0 != c.immediateRender, new f(a, b, d)
  				}, f.staggerTo = f.allTo = function(a, b, g, h, k, m, n) {
  					h = h || 0;
  					var o, p, q, r, s = 0,
  						t = [],
  						u = function() {
  							g.onComplete && g.onComplete.apply(g.onCompleteScope || this, arguments), k.apply(n || g.callbackScope || this, m || l)
  						},
  						v = g.cycle,
  						w = g.startAt && g.startAt.cycle;
  					for (j(a) || ("string" == typeof a && (a = c.selector(a) || a), i(a) && (a = d(a))), a = a || [], 0 > h && (a = d(a), a.reverse(), h *= -1), o = a.length - 1, q = 0; o >= q; q++) {
  						p = {};
  						for (r in g) p[r] = g[r];
  						if (v && (e(p, a, q), null != p.duration && (b = p.duration, delete p.duration)), w) {
  							w = p.startAt = {};
  							for (r in g.startAt) w[r] = g.startAt[r];
  							e(p.startAt, a, q)
  						}
  						p.delay = s + (p.delay || 0), q === o && k && (p.onComplete = u), t[q] = new f(a[q], b, p), s += h
  					}
  					return t
  				}, f.staggerFrom = f.allFrom = function(a, b, c, d, e, g, h) {
  					return c.runBackwards = !0, c.immediateRender = 0 != c.immediateRender, f.staggerTo(a, b, c, d, e, g, h)
  				}, f.staggerFromTo = f.allFromTo = function(a, b, c, d, e, g, h, i) {
  					return d.startAt = c, d.immediateRender = 0 != d.immediateRender && 0 != c.immediateRender, f.staggerTo(a, b, d, e, g, h, i)
  				}, f.delayedCall = function(a, b, c, d, e) {
  					return new f(b, 0, {
  						delay: a,
  						onComplete: b,
  						onCompleteParams: c,
  						callbackScope: d,
  						onReverseComplete: b,
  						onReverseCompleteParams: c,
  						immediateRender: !1,
  						useFrames: e,
  						overwrite: 0
  					})
  				}, f.set = function(a, b) {
  					return new f(a, 0, b)
  				}, f.isTweening = function(a) {
  					return c.getTweensOf(a, !0).length > 0
  				};
  				var m = function(a, b) {
  						for (var d = [], e = 0, f = a._first; f;) f instanceof c ? d[e++] = f : (b && (d[e++] = f), d = d.concat(m(f, b)), e = d.length), f = f._next;
  						return d
  					},
  					n = f.getAllTweens = function(b) {
  						return m(a._rootTimeline, b).concat(m(a._rootFramesTimeline, b))
  					};
  				f.killAll = function(a, c, d, e) {
  					null == c && (c = !0), null == d && (d = !0);
  					var f, g, h, i = n(0 != e),
  						j = i.length,
  						k = c && d && e;
  					for (h = 0; j > h; h++) g = i[h], (k || g instanceof b || (f = g.target === g.vars.onComplete) && d || c && !f) && (a ? g.totalTime(g._reversed ? 0 : g.totalDuration()) : g._enabled(!1, !1))
  				}, f.killChildTweensOf = function(a, b) {
  					if (null != a) {
  						var e, g, k, l, m, n = h.tweenLookup;
  						if ("string" == typeof a && (a = c.selector(a) || a), i(a) && (a = d(a)), j(a))
  							for (l = a.length; --l > -1;) f.killChildTweensOf(a[l], b);
  						else {
  							e = [];
  							for (k in n)
  								for (g = n[k].target.parentNode; g;) g === a && (e = e.concat(n[k].tweens)), g = g.parentNode;
  							for (m = e.length, l = 0; m > l; l++) b && e[l].totalTime(e[l].totalDuration()), e[l]._enabled(!1, !1)
  						}
  					}
  				};
  				var o = function(a, c, d, e) {
  					c = c !== !1, d = d !== !1, e = e !== !1;
  					for (var f, g, h = n(e), i = c && d && e, j = h.length; --j > -1;) g = h[j], (i || g instanceof b || (f = g.target === g.vars.onComplete) && d || c && !f) && g.paused(a)
  				};
  				return f.pauseAll = function(a, b, c) {
  					o(!0, a, b, c)
  				}, f.resumeAll = function(a, b, c) {
  					o(!1, a, b, c)
  				}, f.globalTimeScale = function(b) {
  					var d = a._rootTimeline,
  						e = c.ticker.time;
  					return arguments.length ? (b = b || g, d._startTime = e - (e - d._startTime) * d._timeScale / b, d = a._rootFramesTimeline, e = c.ticker.frame, d._startTime = e - (e - d._startTime) * d._timeScale / b, d._timeScale = a._rootTimeline._timeScale = b, b) : d._timeScale
  				}, k.progress = function(a, b) {
  					return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - a : a) + this._cycle * (this._duration + this._repeatDelay), b) : this._time / this.duration()
  				}, k.totalProgress = function(a, b) {
  					return arguments.length ? this.totalTime(this.totalDuration() * a, b) : this._totalTime / this.totalDuration()
  				}, k.time = function(a, b) {
  					return arguments.length ? (this._dirty && this.totalDuration(), a > this._duration && (a = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? a = this._duration - a + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (a += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(a, b)) : this._time
  				}, k.duration = function(b) {
  					return arguments.length ? a.prototype.duration.call(this, b) : this._duration
  				}, k.totalDuration = function(a) {
  					return arguments.length ? -1 === this._repeat ? this : this.duration((a - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
  				}, k.repeat = function(a) {
  					return arguments.length ? (this._repeat = a, this._uncache(!0)) : this._repeat
  				}, k.repeatDelay = function(a) {
  					return arguments.length ? (this._repeatDelay = a, this._uncache(!0)) : this._repeatDelay
  				}, k.yoyo = function(a) {
  					return arguments.length ? (this._yoyo = a, this) : this._yoyo
  				}, f
  			}, !0), _gsScope._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(a, b, c) {
  				var d = function(a) {
  						b.call(this, a), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
  						var c, d, e = this.vars;
  						for (d in e) c = e[d], i(c) && -1 !== c.join("").indexOf("{self}") && (e[d] = this._swapSelfInParams(c));
  						i(e.tweens) && this.add(e.tweens, 0, e.align, e.stagger)
  					},
  					e = 1e-10,
  					f = c._internals,
  					g = d._internals = {},
  					h = f.isSelector,
  					i = f.isArray,
  					j = f.lazyTweens,
  					k = f.lazyRender,
  					l = _gsScope._gsDefine.globals,
  					m = function(a) {
  						var b, c = {};
  						for (b in a) c[b] = a[b];
  						return c
  					},
  					n = function(a, b, c) {
  						var d, e, f = a.cycle;
  						for (d in f) e = f[d], a[d] = "function" == typeof e ? e.call(b[c], c) : e[c % e.length];
  						delete a.cycle
  					},
  					o = g.pauseCallback = function() {},
  					p = function(a) {
  						var b, c = [],
  							d = a.length;
  						for (b = 0; b !== d; c.push(a[b++]));
  						return c
  					},
  					q = d.prototype = new b;
  				return d.version = "1.18.5", q.constructor = d, q.kill()._gc = q._forcingPlayhead = q._hasPause = !1, q.to = function(a, b, d, e) {
  					var f = d.repeat && l.TweenMax || c;
  					return b ? this.add(new f(a, b, d), e) : this.set(a, d, e)
  				}, q.from = function(a, b, d, e) {
  					return this.add((d.repeat && l.TweenMax || c).from(a, b, d), e)
  				}, q.fromTo = function(a, b, d, e, f) {
  					var g = e.repeat && l.TweenMax || c;
  					return b ? this.add(g.fromTo(a, b, d, e), f) : this.set(a, e, f)
  				}, q.staggerTo = function(a, b, e, f, g, i, j, k) {
  					var l, o, q = new d({
  							onComplete: i,
  							onCompleteParams: j,
  							callbackScope: k,
  							smoothChildTiming: this.smoothChildTiming
  						}),
  						r = e.cycle;
  					for ("string" == typeof a && (a = c.selector(a) || a), a = a || [], h(a) && (a = p(a)), f = f || 0, 0 > f && (a = p(a), a.reverse(), f *= -1), o = 0; o < a.length; o++) l = m(e), l.startAt && (l.startAt = m(l.startAt), l.startAt.cycle && n(l.startAt, a, o)), r && (n(l, a, o), null != l.duration && (b = l.duration, delete l.duration)), q.to(a[o], b, l, o * f);
  					return this.add(q, g)
  				}, q.staggerFrom = function(a, b, c, d, e, f, g, h) {
  					return c.immediateRender = 0 != c.immediateRender, c.runBackwards = !0, this.staggerTo(a, b, c, d, e, f, g, h)
  				}, q.staggerFromTo = function(a, b, c, d, e, f, g, h, i) {
  					return d.startAt = c, d.immediateRender = 0 != d.immediateRender && 0 != c.immediateRender, this.staggerTo(a, b, d, e, f, g, h, i)
  				}, q.call = function(a, b, d, e) {
  					return this.add(c.delayedCall(0, a, b, d), e)
  				}, q.set = function(a, b, d) {
  					return d = this._parseTimeOrLabel(d, 0, !0), null == b.immediateRender && (b.immediateRender = d === this._time && !this._paused), this.add(new c(a, 0, b), d)
  				}, d.exportRoot = function(a, b) {
  					a = a || {}, null == a.smoothChildTiming && (a.smoothChildTiming = !0);
  					var e, f, g = new d(a),
  						h = g._timeline;
  					for (null == b && (b = !0), h._remove(g, !0), g._startTime = 0, g._rawPrevTime = g._time = g._totalTime = h._time, e = h._first; e;) f = e._next, b && e instanceof c && e.target === e.vars.onComplete || g.add(e, e._startTime - e._delay), e = f;
  					return h.add(g, 0), g
  				}, q.add = function(e, f, g, h) {
  					var j, k, l, m, n, o;
  					if ("number" != typeof f && (f = this._parseTimeOrLabel(f, 0, !0, e)), !(e instanceof a)) {
  						if (e instanceof Array || e && e.push && i(e)) {
  							for (g = g || "normal", h = h || 0, j = f, k = e.length, l = 0; k > l; l++) i(m = e[l]) && (m = new d({
  								tweens: m
  							})), this.add(m, j), "string" != typeof m && "function" != typeof m && ("sequence" === g ? j = m._startTime + m.totalDuration() / m._timeScale : "start" === g && (m._startTime -= m.delay())), j += h;
  							return this._uncache(!0)
  						}
  						if ("string" == typeof e) return this.addLabel(e, f);
  						if ("function" != typeof e) throw "Cannot add " + e + " into the timeline; it is not a tween, timeline, function, or string.";
  						e = c.delayedCall(0, e)
  					}
  					if (b.prototype.add.call(this, e, f), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
  						for (n = this, o = n.rawTime() > e._startTime; n._timeline;) o && n._timeline.smoothChildTiming ? n.totalTime(n._totalTime, !0) : n._gc && n._enabled(!0, !1), n = n._timeline;
  					return this
  				}, q.remove = function(b) {
  					if (b instanceof a) {
  						this._remove(b, !1);
  						var c = b._timeline = b.vars.useFrames ? a._rootFramesTimeline : a._rootTimeline;
  						return b._startTime = (b._paused ? b._pauseTime : c._time) - (b._reversed ? b.totalDuration() - b._totalTime : b._totalTime) / b._timeScale, this
  					}
  					if (b instanceof Array || b && b.push && i(b)) {
  						for (var d = b.length; --d > -1;) this.remove(b[d]);
  						return this
  					}
  					return "string" == typeof b ? this.removeLabel(b) : this.kill(null, b)
  				}, q._remove = function(a, c) {
  					b.prototype._remove.call(this, a, c);
  					var d = this._last;
  					return d ? this._time > d._startTime + d._totalDuration / d._timeScale && (this._time = this.duration(), this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
  				}, q.append = function(a, b) {
  					return this.add(a, this._parseTimeOrLabel(null, b, !0, a))
  				}, q.insert = q.insertMultiple = function(a, b, c, d) {
  					return this.add(a, b || 0, c, d)
  				}, q.appendMultiple = function(a, b, c, d) {
  					return this.add(a, this._parseTimeOrLabel(null, b, !0, a), c, d)
  				}, q.addLabel = function(a, b) {
  					return this._labels[a] = this._parseTimeOrLabel(b), this
  				}, q.addPause = function(a, b, d, e) {
  					var f = c.delayedCall(0, o, d, e || this);
  					return f.vars.onComplete = f.vars.onReverseComplete = b, f.data = "isPause", this._hasPause = !0, this.add(f, a)
  				}, q.removeLabel = function(a) {
  					return delete this._labels[a], this
  				}, q.getLabelTime = function(a) {
  					return null != this._labels[a] ? this._labels[a] : -1
  				}, q._parseTimeOrLabel = function(b, c, d, e) {
  					var f;
  					if (e instanceof a && e.timeline === this) this.remove(e);
  					else if (e && (e instanceof Array || e.push && i(e)))
  						for (f = e.length; --f > -1;) e[f] instanceof a && e[f].timeline === this && this.remove(e[f]);
  					if ("string" == typeof c) return this._parseTimeOrLabel(c, d && "number" == typeof b && null == this._labels[c] ? b - this.duration() : 0, d);
  					if (c = c || 0, "string" != typeof b || !isNaN(b) && null == this._labels[b]) null == b && (b = this.duration());
  					else {
  						if (f = b.indexOf("="), -1 === f) return null == this._labels[b] ? d ? this._labels[b] = this.duration() + c : c : this._labels[b] + c;
  						c = parseInt(b.charAt(f - 1) + "1", 10) * Number(b.substr(f + 1)), b = f > 1 ? this._parseTimeOrLabel(b.substr(0, f - 1), 0, d) : this.duration()
  					}
  					return Number(b) + c
  				}, q.seek = function(a, b) {
  					return this.totalTime("number" == typeof a ? a : this._parseTimeOrLabel(a), b !== !1)
  				}, q.stop = function() {
  					return this.paused(!0)
  				}, q.gotoAndPlay = function(a, b) {
  					return this.play(a, b)
  				}, q.gotoAndStop = function(a, b) {
  					return this.pause(a, b)
  				}, q.render = function(a, b, c) {
  					this._gc && this._enabled(!0, !1);
  					var d, f, g, h, i, l, m, n = this._dirty ? this.totalDuration() : this._totalDuration,
  						o = this._time,
  						p = this._startTime,
  						q = this._timeScale,
  						r = this._paused;
  					if (a >= n - 1e-7) this._totalTime = this._time = n, this._reversed || this._hasPausedChild() || (f = !0, h = "onComplete", i = !!this._timeline.autoRemoveChildren, 0 === this._duration && (0 >= a && a >= -1e-7 || this._rawPrevTime < 0 || this._rawPrevTime === e) && this._rawPrevTime !== a && this._first && (i = !0, this._rawPrevTime > e && (h = "onReverseComplete"))), this._rawPrevTime = this._duration || !b || a || this._rawPrevTime === a ? a : e, a = n + 1e-4;
  					else if (1e-7 > a)
  						if (this._totalTime = this._time = 0, (0 !== o || 0 === this._duration && this._rawPrevTime !== e && (this._rawPrevTime > 0 || 0 > a && this._rawPrevTime >= 0)) && (h = "onReverseComplete", f = this._reversed), 0 > a) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (i = f = !0, h = "onReverseComplete") : this._rawPrevTime >= 0 && this._first && (i = !0), this._rawPrevTime = a;
  						else {
  							if (this._rawPrevTime = this._duration || !b || a || this._rawPrevTime === a ? a : e, 0 === a && f)
  								for (d = this._first; d && 0 === d._startTime;) d._duration || (f = !1), d = d._next;
  							a = 0, this._initted || (i = !0)
  						}
  					else {
  						if (this._hasPause && !this._forcingPlayhead && !b) {
  							if (a >= o)
  								for (d = this._first; d && d._startTime <= a && !l;) d._duration || "isPause" !== d.data || d.ratio || 0 === d._startTime && 0 === this._rawPrevTime || (l = d), d = d._next;
  							else
  								for (d = this._last; d && d._startTime >= a && !l;) d._duration || "isPause" === d.data && d._rawPrevTime > 0 && (l = d), d = d._prev;
  							l && (this._time = a = l._startTime, this._totalTime = a + this._cycle * (this._totalDuration + this._repeatDelay))
  						}
  						this._totalTime = this._time = this._rawPrevTime = a
  					}
  					if (this._time !== o && this._first || c || i || l) {
  						if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== o && a > 0 && (this._active = !0), 0 === o && this.vars.onStart && (0 === this._time && this._duration || b || this._callback("onStart")), m = this._time, m >= o)
  							for (d = this._first; d && (g = d._next, m === this._time && (!this._paused || r));)(d._active || d._startTime <= m && !d._paused && !d._gc) && (l === d && this.pause(), d._reversed ? d.render((d._dirty ? d.totalDuration() : d._totalDuration) - (a - d._startTime) * d._timeScale, b, c) : d.render((a - d._startTime) * d._timeScale, b, c)), d = g;
  						else
  							for (d = this._last; d && (g = d._prev, m === this._time && (!this._paused || r));) {
  								if (d._active || d._startTime <= o && !d._paused && !d._gc) {
  									if (l === d) {
  										for (l = d._prev; l && l.endTime() > this._time;) l.render(l._reversed ? l.totalDuration() - (a - l._startTime) * l._timeScale : (a - l._startTime) * l._timeScale, b, c), l = l._prev;
  										l = null, this.pause()
  									}
  									d._reversed ? d.render((d._dirty ? d.totalDuration() : d._totalDuration) - (a - d._startTime) * d._timeScale, b, c) : d.render((a - d._startTime) * d._timeScale, b, c)
  								}
  								d = g
  							}
  						this._onUpdate && (b || (j.length && k(), this._callback("onUpdate"))), h && (this._gc || (p === this._startTime || q !== this._timeScale) && (0 === this._time || n >= this.totalDuration()) && (f && (j.length && k(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !b && this.vars[h] && this._callback(h)))
  					}
  				}, q._hasPausedChild = function() {
  					for (var a = this._first; a;) {
  						if (a._paused || a instanceof d && a._hasPausedChild()) return !0;
  						a = a._next
  					}
  					return !1
  				}, q.getChildren = function(a, b, d, e) {
  					e = e || -9999999999;
  					for (var f = [], g = this._first, h = 0; g;) g._startTime < e || (g instanceof c ? b !== !1 && (f[h++] = g) : (d !== !1 && (f[h++] = g), a !== !1 && (f = f.concat(g.getChildren(!0, b, d)), h = f.length))), g = g._next;
  					return f
  				}, q.getTweensOf = function(a, b) {
  					var d, e, f = this._gc,
  						g = [],
  						h = 0;
  					for (f && this._enabled(!0, !0), d = c.getTweensOf(a), e = d.length; --e > -1;)(d[e].timeline === this || b && this._contains(d[e])) && (g[h++] = d[e]);
  					return f && this._enabled(!1, !0), g
  				}, q.recent = function() {
  					return this._recent
  				}, q._contains = function(a) {
  					for (var b = a.timeline; b;) {
  						if (b === this) return !0;
  						b = b.timeline
  					}
  					return !1
  				}, q.shiftChildren = function(a, b, c) {
  					c = c || 0;
  					for (var d, e = this._first, f = this._labels; e;) e._startTime >= c && (e._startTime += a), e = e._next;
  					if (b)
  						for (d in f) f[d] >= c && (f[d] += a);
  					return this._uncache(!0)
  				}, q._kill = function(a, b) {
  					if (!a && !b) return this._enabled(!1, !1);
  					for (var c = b ? this.getTweensOf(b) : this.getChildren(!0, !0, !1), d = c.length, e = !1; --d > -1;) c[d]._kill(a, b) && (e = !0);
  					return e
  				}, q.clear = function(a) {
  					var b = this.getChildren(!1, !0, !0),
  						c = b.length;
  					for (this._time = this._totalTime = 0; --c > -1;) b[c]._enabled(!1, !1);
  					return a !== !1 && (this._labels = {}), this._uncache(!0)
  				}, q.invalidate = function() {
  					for (var b = this._first; b;) b.invalidate(), b = b._next;
  					return a.prototype.invalidate.call(this)
  				}, q._enabled = function(a, c) {
  					if (a === this._gc)
  						for (var d = this._first; d;) d._enabled(a, !0), d = d._next;
  					return b.prototype._enabled.call(this, a, c)
  				}, q.totalTime = function(b, c, d) {
  					this._forcingPlayhead = !0;
  					var e = a.prototype.totalTime.apply(this, arguments);
  					return this._forcingPlayhead = !1, e
  				}, q.duration = function(a) {
  					return arguments.length ? (0 !== this.duration() && 0 !== a && this.timeScale(this._duration / a), this) : (this._dirty && this.totalDuration(), this._duration)
  				}, q.totalDuration = function(a) {
  					if (!arguments.length) {
  						if (this._dirty) {
  							for (var b, c, d = 0, e = this._last, f = 999999999999; e;) b = e._prev, e._dirty && e.totalDuration(), e._startTime > f && this._sortChildren && !e._paused ? this.add(e, e._startTime - e._delay) : f = e._startTime, e._startTime < 0 && !e._paused && (d -= e._startTime, this._timeline.smoothChildTiming && (this._startTime += e._startTime / this._timeScale), this.shiftChildren(-e._startTime, !1, -9999999999), f = 0), c = e._startTime + e._totalDuration / e._timeScale, c > d && (d = c), e = b;
  							this._duration = this._totalDuration = d, this._dirty = !1
  						}
  						return this._totalDuration
  					}
  					return a && this.totalDuration() ? this.timeScale(this._totalDuration / a) : this
  				}, q.paused = function(b) {
  					if (!b)
  						for (var c = this._first, d = this._time; c;) c._startTime === d && "isPause" === c.data && (c._rawPrevTime = 0), c = c._next;
  					return a.prototype.paused.apply(this, arguments)
  				}, q.usesFrames = function() {
  					for (var b = this._timeline; b._timeline;) b = b._timeline;
  					return b === a._rootFramesTimeline
  				}, q.rawTime = function() {
  					return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale
  				}, d
  			}, !0), _gsScope._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(a, b, c) {
  				var d = function(b) {
  						a.call(this, b), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0
  					},
  					e = 1e-10,
  					f = b._internals,
  					g = f.lazyTweens,
  					h = f.lazyRender,
  					i = new c(null, null, 1, 0),
  					j = d.prototype = new a;
  				return j.constructor = d, j.kill()._gc = !1, d.version = "1.18.5", j.invalidate = function() {
  					return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), a.prototype.invalidate.call(this)
  				}, j.addCallback = function(a, c, d, e) {
  					return this.add(b.delayedCall(0, a, d, e), c)
  				}, j.removeCallback = function(a, b) {
  					if (a)
  						if (null == b) this._kill(null, a);
  						else
  							for (var c = this.getTweensOf(a, !1), d = c.length, e = this._parseTimeOrLabel(b); --d > -1;) c[d]._startTime === e && c[d]._enabled(!1, !1);
  					return this
  				}, j.removePause = function(b) {
  					return this.removeCallback(a._internals.pauseCallback, b)
  				}, j.tweenTo = function(a, c) {
  					c = c || {};
  					var d, e, f, g = {
  						ease: i,
  						useFrames: this.usesFrames(),
  						immediateRender: !1
  					};
  					for (e in c) g[e] = c[e];
  					return g.time = this._parseTimeOrLabel(a), d = Math.abs(Number(g.time) - this._time) / this._timeScale || .001, f = new b(this, d, g), g.onStart = function() {
  						f.target.paused(!0), f.vars.time !== f.target.time() && d === f.duration() && f.duration(Math.abs(f.vars.time - f.target.time()) / f.target._timeScale), c.onStart && f._callback("onStart")
  					}, f
  				}, j.tweenFromTo = function(a, b, c) {
  					c = c || {}, a = this._parseTimeOrLabel(a), c.startAt = {
  						onComplete: this.seek,
  						onCompleteParams: [a],
  						callbackScope: this
  					}, c.immediateRender = c.immediateRender !== !1;
  					var d = this.tweenTo(b, c);
  					return d.duration(Math.abs(d.vars.time - a) / this._timeScale || .001)
  				}, j.render = function(a, b, c) {
  					this._gc && this._enabled(!0, !1);
  					var d, f, i, j, k, l, m, n, o = this._dirty ? this.totalDuration() : this._totalDuration,
  						p = this._duration,
  						q = this._time,
  						r = this._totalTime,
  						s = this._startTime,
  						t = this._timeScale,
  						u = this._rawPrevTime,
  						v = this._paused,
  						w = this._cycle;
  					if (a >= o - 1e-7) this._locked || (this._totalTime = o, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (f = !0, j = "onComplete", k = !!this._timeline.autoRemoveChildren, 0 === this._duration && (0 >= a && a >= -1e-7 || 0 > u || u === e) && u !== a && this._first && (k = !0, u > e && (j = "onReverseComplete"))), this._rawPrevTime = this._duration || !b || a || this._rawPrevTime === a ? a : e, this._yoyo && 0 !== (1 & this._cycle) ? this._time = a = 0 : (this._time = p, a = p + 1e-4);
  					else if (1e-7 > a)
  						if (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== q || 0 === p && u !== e && (u > 0 || 0 > a && u >= 0) && !this._locked) && (j = "onReverseComplete", f = this._reversed), 0 > a) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (k = f = !0, j = "onReverseComplete") : u >= 0 && this._first && (k = !0), this._rawPrevTime = a;
  						else {
  							if (this._rawPrevTime = p || !b || a || this._rawPrevTime === a ? a : e, 0 === a && f)
  								for (d = this._first; d && 0 === d._startTime;) d._duration || (f = !1), d = d._next;
  							a = 0, this._initted || (k = !0)
  						}
  					else if (0 === p && 0 > u && (k = !0), this._time = this._rawPrevTime = a, this._locked || (this._totalTime = a, 0 !== this._repeat && (l = p + this._repeatDelay, this._cycle = this._totalTime / l >> 0, 0 !== this._cycle && this._cycle === this._totalTime / l && a >= r && this._cycle--, this._time = this._totalTime - this._cycle * l, this._yoyo && 0 !== (1 & this._cycle) && (this._time = p - this._time), this._time > p ? (this._time = p, a = p + 1e-4) : this._time < 0 ? this._time = a = 0 : a = this._time)), this._hasPause && !this._forcingPlayhead && !b) {
  						if (a = this._time, a >= q)
  							for (d = this._first; d && d._startTime <= a && !m;) d._duration || "isPause" !== d.data || d.ratio || 0 === d._startTime && 0 === this._rawPrevTime || (m = d), d = d._next;
  						else
  							for (d = this._last; d && d._startTime >= a && !m;) d._duration || "isPause" === d.data && d._rawPrevTime > 0 && (m = d), d = d._prev;
  						m && (this._time = a = m._startTime, this._totalTime = a + this._cycle * (this._totalDuration + this._repeatDelay))
  					}
  					if (this._cycle !== w && !this._locked) {
  						var x = this._yoyo && 0 !== (1 & w),
  							y = x === (this._yoyo && 0 !== (1 & this._cycle)),
  							z = this._totalTime,
  							A = this._cycle,
  							B = this._rawPrevTime,
  							C = this._time;
  						if (this._totalTime = w * p, this._cycle < w ? x = !x : this._totalTime += p, this._time = q, this._rawPrevTime = 0 === p ? u - 1e-4 : u, this._cycle = w, this._locked = !0, q = x ? 0 : p, this.render(q, b, 0 === p), b || this._gc || this.vars.onRepeat && this._callback("onRepeat"), q !== this._time) return;
  						if (y && (q = x ? p + 1e-4 : -1e-4, this.render(q, !0, !1)), this._locked = !1, this._paused && !v) return;
  						this._time = C, this._totalTime = z, this._cycle = A, this._rawPrevTime = B
  					}
  					if (!(this._time !== q && this._first || c || k || m)) return void(r !== this._totalTime && this._onUpdate && (b || this._callback("onUpdate")));
  					if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== r && a > 0 && (this._active = !0), 0 === r && this.vars.onStart && (0 === this._totalTime && this._totalDuration || b || this._callback("onStart")), n = this._time, n >= q)
  						for (d = this._first; d && (i = d._next, n === this._time && (!this._paused || v));)(d._active || d._startTime <= this._time && !d._paused && !d._gc) && (m === d && this.pause(), d._reversed ? d.render((d._dirty ? d.totalDuration() : d._totalDuration) - (a - d._startTime) * d._timeScale, b, c) : d.render((a - d._startTime) * d._timeScale, b, c)), d = i;
  					else
  						for (d = this._last; d && (i = d._prev, n === this._time && (!this._paused || v));) {
  							if (d._active || d._startTime <= q && !d._paused && !d._gc) {
  								if (m === d) {
  									for (m = d._prev; m && m.endTime() > this._time;) m.render(m._reversed ? m.totalDuration() - (a - m._startTime) * m._timeScale : (a - m._startTime) * m._timeScale, b, c), m = m._prev;
  									m = null, this.pause()
  								}
  								d._reversed ? d.render((d._dirty ? d.totalDuration() : d._totalDuration) - (a - d._startTime) * d._timeScale, b, c) : d.render((a - d._startTime) * d._timeScale, b, c)
  							}
  							d = i
  						}
  					this._onUpdate && (b || (g.length && h(), this._callback("onUpdate"))), j && (this._locked || this._gc || (s === this._startTime || t !== this._timeScale) && (0 === this._time || o >= this.totalDuration()) && (f && (g.length && h(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !b && this.vars[j] && this._callback(j)))
  				}, j.getActive = function(a, b, c) {
  					null == a && (a = !0), null == b && (b = !0), null == c && (c = !1);
  					var d, e, f = [],
  						g = this.getChildren(a, b, c),
  						h = 0,
  						i = g.length;
  					for (d = 0; i > d; d++) e = g[d], e.isActive() && (f[h++] = e);
  					return f
  				}, j.getLabelAfter = function(a) {
  					a || 0 !== a && (a = this._time);
  					var b, c = this.getLabelsArray(),
  						d = c.length;
  					for (b = 0; d > b; b++)
  						if (c[b].time > a) return c[b].name;
  					return null
  				}, j.getLabelBefore = function(a) {
  					null == a && (a = this._time);
  					for (var b = this.getLabelsArray(), c = b.length; --c > -1;)
  						if (b[c].time < a) return b[c].name;
  					return null
  				}, j.getLabelsArray = function() {
  					var a, b = [],
  						c = 0;
  					for (a in this._labels) b[c++] = {
  						time: this._labels[a],
  						name: a
  					};
  					return b.sort(function(a, b) {
  						return a.time - b.time
  					}), b
  				}, j.progress = function(a, b) {
  					return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - a : a) + this._cycle * (this._duration + this._repeatDelay), b) : this._time / this.duration()
  				}, j.totalProgress = function(a, b) {
  					return arguments.length ? this.totalTime(this.totalDuration() * a, b) : this._totalTime / this.totalDuration()
  				}, j.totalDuration = function(b) {
  					return arguments.length ? -1 !== this._repeat && b ? this.timeScale(this.totalDuration() / b) : this : (this._dirty && (a.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
  				}, j.time = function(a, b) {
  					return arguments.length ? (this._dirty && this.totalDuration(), a > this._duration && (a = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? a = this._duration - a + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (a += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(a, b)) : this._time
  				}, j.repeat = function(a) {
  					return arguments.length ? (this._repeat = a, this._uncache(!0)) : this._repeat
  				}, j.repeatDelay = function(a) {
  					return arguments.length ? (this._repeatDelay = a, this._uncache(!0)) : this._repeatDelay
  				}, j.yoyo = function(a) {
  					return arguments.length ? (this._yoyo = a, this) : this._yoyo
  				}, j.currentLabel = function(a) {
  					return arguments.length ? this.seek(a, !0) : this.getLabelBefore(this._time + 1e-8)
  				}, d
  			}, !0),
  			function() {
  				var a = 180 / Math.PI,
  					b = [],
  					c = [],
  					d = [],
  					e = {},
  					f = _gsScope._gsDefine.globals,
  					g = function(a, b, c, d) {
  						c === d && (c = d - (d - b) / 1e6), a === b && (b = a + (c - a) / 1e6), this.a = a, this.b = b, this.c = c, this.d = d, this.da = d - a, this.ca = c - a, this.ba = b - a
  					},
  					h = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",
  					i = function(a, b, c, d) {
  						var e = {
  								a: a
  							},
  							f = {},
  							g = {},
  							h = {
  								c: d
  							},
  							i = (a + b) / 2,
  							j = (b + c) / 2,
  							k = (c + d) / 2,
  							l = (i + j) / 2,
  							m = (j + k) / 2,
  							n = (m - l) / 8;
  						return e.b = i + (a - i) / 4, f.b = l + n, e.c = f.a = (e.b + f.b) / 2, f.c = g.a = (l + m) / 2, g.b = m - n, h.b = k + (d - k) / 4, g.c = h.a = (g.b + h.b) / 2, [e, f, g, h]
  					},
  					j = function(a, e, f, g, h) {
  						var j, k, l, m, n, o, p, q, r, s, t, u, v, w = a.length - 1,
  							x = 0,
  							y = a[0].a;
  						for (j = 0; w > j; j++) n = a[x], k = n.a, l = n.d, m = a[x + 1].d, h ? (t = b[j], u = c[j], v = (u + t) * e * .25 / (g ? .5 : d[j] || .5), o = l - (l - k) * (g ? .5 * e : 0 !== t ? v / t : 0), p = l + (m - l) * (g ? .5 * e : 0 !== u ? v / u : 0), q = l - (o + ((p - o) * (3 * t / (t + u) + .5) / 4 || 0))) : (o = l - (l - k) * e * .5, p = l + (m - l) * e * .5, q = l - (o + p) / 2), o += q, p += q, n.c = r = o, 0 !== j ? n.b = y : n.b = y = n.a + .6 * (n.c - n.a), n.da = l - k, n.ca = r - k, n.ba = y - k, f ? (s = i(k, y, r, l), a.splice(x, 1, s[0], s[1], s[2], s[3]), x += 4) : x++, y = p;
  						n = a[x], n.b = y, n.c = y + .4 * (n.d - y), n.da = n.d - n.a, n.ca = n.c - n.a, n.ba = y - n.a, f && (s = i(n.a, y, n.c, n.d), a.splice(x, 1, s[0], s[1], s[2], s[3]))
  					},
  					k = function(a, d, e, f) {
  						var h, i, j, k, l, m, n = [];
  						if (f)
  							for (a = [f].concat(a), i = a.length; --i > -1;) "string" == typeof(m = a[i][d]) && "=" === m.charAt(1) && (a[i][d] = f[d] + Number(m.charAt(0) + m.substr(2)));
  						if (h = a.length - 2, 0 > h) return n[0] = new g(a[0][d], 0, 0, a[-1 > h ? 0 : 1][d]), n;
  						for (i = 0; h > i; i++) j = a[i][d], k = a[i + 1][d], n[i] = new g(j, 0, 0, k), e && (l = a[i + 2][d], b[i] = (b[i] || 0) + (k - j) * (k - j), c[i] = (c[i] || 0) + (l - k) * (l - k));
  						return n[i] = new g(a[i][d], 0, 0, a[i + 1][d]), n
  					},
  					l = function(a, f, g, i, l, m) {
  						var n, o, p, q, r, s, t, u, v = {},
  							w = [],
  							x = m || a[0];
  						l = "string" == typeof l ? "," + l + "," : h, null == f && (f = 1);
  						for (o in a[0]) w.push(o);
  						if (a.length > 1) {
  							for (u = a[a.length - 1], t = !0, n = w.length; --n > -1;)
  								if (o = w[n], Math.abs(x[o] - u[o]) > .05) {
  									t = !1;
  									break
  								}
  							t && (a = a.concat(), m && a.unshift(m), a.push(a[1]), m = a[a.length - 3])
  						}
  						for (b.length = c.length = d.length = 0, n = w.length; --n > -1;) o = w[n], e[o] = -1 !== l.indexOf("," + o + ","), v[o] = k(a, o, e[o], m);
  						for (n = b.length; --n > -1;) b[n] = Math.sqrt(b[n]), c[n] = Math.sqrt(c[n]);
  						if (!i) {
  							for (n = w.length; --n > -1;)
  								if (e[o])
  									for (p = v[w[n]], s = p.length - 1, q = 0; s > q; q++) r = p[q + 1].da / c[q] + p[q].da / b[q] || 0, d[q] = (d[q] || 0) + r * r;
  							for (n = d.length; --n > -1;) d[n] = Math.sqrt(d[n])
  						}
  						for (n = w.length, q = g ? 4 : 1; --n > -1;) o = w[n], p = v[o], j(p, f, g, i, e[o]), t && (p.splice(0, q), p.splice(p.length - q, q));
  						return v
  					},
  					m = function(a, b, c) {
  						b = b || "soft";
  						var d, e, f, h, i, j, k, l, m, n, o, p = {},
  							q = "cubic" === b ? 3 : 2,
  							r = "soft" === b,
  							s = [];
  						if (r && c && (a = [c].concat(a)), null == a || a.length < q + 1) throw "invalid Bezier data";
  						for (m in a[0]) s.push(m);
  						for (j = s.length; --j > -1;) {
  							for (m = s[j], p[m] = i = [], n = 0, l = a.length, k = 0; l > k; k++) d = null == c ? a[k][m] : "string" == typeof(o = a[k][m]) && "=" === o.charAt(1) ? c[m] + Number(o.charAt(0) + o.substr(2)) : Number(o), r && k > 1 && l - 1 > k && (i[n++] = (d + i[n - 2]) / 2), i[n++] = d;
  							for (l = n - q + 1, n = 0, k = 0; l > k; k += q) d = i[k], e = i[k + 1], f = i[k + 2], h = 2 === q ? 0 : i[k + 3], i[n++] = o = 3 === q ? new g(d, e, f, h) : new g(d, (2 * e + d) / 3, (2 * e + f) / 3, f);
  							i.length = n
  						}
  						return p
  					},
  					n = function(a, b, c) {
  						for (var d, e, f, g, h, i, j, k, l, m, n, o = 1 / c, p = a.length; --p > -1;)
  							for (m = a[p], f = m.a, g = m.d - f, h = m.c - f, i = m.b - f, d = e = 0, k = 1; c >= k; k++) j = o * k, l = 1 - j, d = e - (e = (j * j * g + 3 * l * (j * h + l * i)) * j), n = p * c + k - 1, b[n] = (b[n] || 0) + d * d
  					},
  					o = function(a, b) {
  						b = b >> 0 || 6;
  						var c, d, e, f, g = [],
  							h = [],
  							i = 0,
  							j = 0,
  							k = b - 1,
  							l = [],
  							m = [];
  						for (c in a) n(a[c], g, b);
  						for (e = g.length, d = 0; e > d; d++) i += Math.sqrt(g[d]), f = d % b, m[f] = i, f === k && (j += i, f = d / b >> 0, l[f] = m, h[f] = j, i = 0, m = []);
  						return {
  							length: j,
  							lengths: h,
  							segments: l
  						}
  					},
  					p = _gsScope._gsDefine.plugin({
  						propName: "bezier",
  						priority: -1,
  						version: "1.3.6",
  						API: 2,
  						global: !0,
  						init: function(a, b, c) {
  							this._target = a, b instanceof Array && (b = {
  								values: b
  							}), this._func = {}, this._round = {}, this._props = [], this._timeRes = null == b.timeResolution ? 6 : parseInt(b.timeResolution, 10);
  							var d, e, f, g, h, i = b.values || [],
  								j = {},
  								k = i[0],
  								n = b.autoRotate || c.vars.orientToBezier;
  							this._autoRotate = n ? n instanceof Array ? n : [
  								["x", "y", "rotation", n === !0 ? 0 : Number(n) || 0]
  							] : null;
  							for (d in k) this._props.push(d);
  							for (f = this._props.length; --f > -1;) d = this._props[f], this._overwriteProps.push(d), e = this._func[d] = "function" == typeof a[d], j[d] = e ? a[d.indexOf("set") || "function" != typeof a["get" + d.substr(3)] ? d : "get" + d.substr(3)]() : parseFloat(a[d]), h || j[d] !== i[0][d] && (h = j);
  							if (this._beziers = "cubic" !== b.type && "quadratic" !== b.type && "soft" !== b.type ? l(i, isNaN(b.curviness) ? 1 : b.curviness, !1, "thruBasic" === b.type, b.correlate, h) : m(i, b.type, j), this._segCount = this._beziers[d].length, this._timeRes) {
  								var p = o(this._beziers, this._timeRes);
  								this._length = p.length, this._lengths = p.lengths, this._segments = p.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
  							}
  							if (n = this._autoRotate)
  								for (this._initialRotations = [], n[0] instanceof Array || (this._autoRotate = n = [n]), f = n.length; --f > -1;) {
  									for (g = 0; 3 > g; g++) d = n[f][g], this._func[d] = "function" == typeof a[d] ? a[d.indexOf("set") || "function" != typeof a["get" + d.substr(3)] ? d : "get" + d.substr(3)] : !1;
  									d = n[f][2], this._initialRotations[f] = (this._func[d] ? this._func[d].call(this._target) : this._target[d]) || 0
  								}
  							return this._startRatio = c.vars.runBackwards ? 1 : 0, !0
  						},
  						set: function(b) {
  							var c, d, e, f, g, h, i, j, k, l, m = this._segCount,
  								n = this._func,
  								o = this._target,
  								p = b !== this._startRatio;
  							if (this._timeRes) {
  								if (k = this._lengths, l = this._curSeg, b *= this._length, e = this._li, b > this._l2 && m - 1 > e) {
  									for (j = m - 1; j > e && (this._l2 = k[++e]) <= b;);
  									this._l1 = k[e - 1], this._li = e, this._curSeg = l = this._segments[e], this._s2 = l[this._s1 = this._si = 0]
  								} else if (b < this._l1 && e > 0) {
  									for (; e > 0 && (this._l1 = k[--e]) >= b;);
  									0 === e && b < this._l1 ? this._l1 = 0 : e++, this._l2 = k[e], this._li = e, this._curSeg = l = this._segments[e], this._s1 = l[(this._si = l.length - 1) - 1] || 0, this._s2 = l[this._si]
  								}
  								if (c = e, b -= this._l1, e = this._si, b > this._s2 && e < l.length - 1) {
  									for (j = l.length - 1; j > e && (this._s2 = l[++e]) <= b;);
  									this._s1 = l[e - 1], this._si = e
  								} else if (b < this._s1 && e > 0) {
  									for (; e > 0 && (this._s1 = l[--e]) >= b;);
  									0 === e && b < this._s1 ? this._s1 = 0 : e++, this._s2 = l[e], this._si = e
  								}
  								h = (e + (b - this._s1) / (this._s2 - this._s1)) * this._prec || 0
  							} else c = 0 > b ? 0 : b >= 1 ? m - 1 : m * b >> 0, h = (b - c * (1 / m)) * m;
  							for (d = 1 - h, e = this._props.length; --e > -1;) f = this._props[e], g = this._beziers[f][c], i = (h * h * g.da + 3 * d * (h * g.ca + d * g.ba)) * h + g.a, this._round[f] && (i = Math.round(i)), n[f] ? o[f](i) : o[f] = i;
  							if (this._autoRotate) {
  								var q, r, s, t, u, v, w, x = this._autoRotate;
  								for (e = x.length; --e > -1;) f = x[e][2], v = x[e][3] || 0, w = x[e][4] === !0 ? 1 : a, g = this._beziers[x[e][0]], q = this._beziers[x[e][1]], g && q && (g = g[c], q = q[c], r = g.a + (g.b - g.a) * h, t = g.b + (g.c - g.b) * h, r += (t - r) * h, t += (g.c + (g.d - g.c) * h - t) * h, s = q.a + (q.b - q.a) * h, u = q.b + (q.c - q.b) * h, s += (u - s) * h, u += (q.c + (q.d - q.c) * h - u) * h, i = p ? Math.atan2(u - s, t - r) * w + v : this._initialRotations[e], n[f] ? o[f](i) : o[f] = i)
  							}
  						}
  					}),
  					q = p.prototype;
  				p.bezierThrough = l, p.cubicToQuadratic = i, p._autoCSS = !0, p.quadraticToCubic = function(a, b, c) {
  					return new g(a, (2 * b + a) / 3, (2 * b + c) / 3, c)
  				}, p._cssRegister = function() {
  					var a = f.CSSPlugin;
  					if (a) {
  						var b = a._internals,
  							c = b._parseToProxy,
  							d = b._setPluginRatio,
  							e = b.CSSPropTween;
  						b._registerComplexSpecialProp("bezier", {
  							parser: function(a, b, f, g, h, i) {
  								b instanceof Array && (b = {
  									values: b
  								}), i = new p;
  								var j, k, l, m = b.values,
  									n = m.length - 1,
  									o = [],
  									q = {};
  								if (0 > n) return h;
  								for (j = 0; n >= j; j++) l = c(a, m[j], g, h, i, n !== j), o[j] = l.end;
  								for (k in b) q[k] = b[k];
  								return q.values = o, h = new e(a, "bezier", 0, 0, l.pt, 2), h.data = l, h.plugin = i, h.setRatio = d, 0 === q.autoRotate && (q.autoRotate = !0), !q.autoRotate || q.autoRotate instanceof Array || (j = q.autoRotate === !0 ? 0 : Number(q.autoRotate), q.autoRotate = null != l.end.left ? [
  									["left", "top", "rotation", j, !1]
  								] : null != l.end.x ? [
  									["x", "y", "rotation", j, !1]
  								] : !1), q.autoRotate && (g._transform || g._enableTransforms(!1), l.autoRotate = g._target._gsTransform, l.proxy.rotation = l.autoRotate.rotation || 0), i._onInitTween(l.proxy, q, g._tween), h
  							}
  						})
  					}
  				}, q._roundProps = function(a, b) {
  					for (var c = this._overwriteProps, d = c.length; --d > -1;)(a[c[d]] || a.bezier || a.bezierThrough) && (this._round[c[d]] = b)
  				}, q._kill = function(a) {
  					var b, c, d = this._props;
  					for (b in this._beziers)
  						if (b in a)
  							for (delete this._beziers[b], delete this._func[b], c = d.length; --c > -1;) d[c] === b && d.splice(c, 1);
  					return this._super._kill.call(this, a)
  				}
  			}(), _gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(a, b) {
  				var c, d, e, f, g = function() {
  						a.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = g.prototype.setRatio
  					},
  					h = _gsScope._gsDefine.globals,
  					i = {},
  					j = g.prototype = new a("css");
  				j.constructor = g, g.version = "1.18.5", g.API = 2, g.defaultTransformPerspective = 0, g.defaultSkewType = "compensated", g.defaultSmoothOrigin = !0, j = "px", g.suffixMap = {
  					top: j,
  					right: j,
  					bottom: j,
  					left: j,
  					width: j,
  					height: j,
  					fontSize: j,
  					padding: j,
  					margin: j,
  					perspective: j,
  					lineHeight: ""
  				};
  				var k, l, m, n, o, p, q = /(?:\-|\.|\b)(\d|\.|e\-)+/g,
  					r = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
  					s = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
  					t = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,
  					u = /(?:\d|\-|\+|=|#|\.)*/g,
  					v = /opacity *= *([^)]*)/i,
  					w = /opacity:([^;]*)/i,
  					x = /alpha\(opacity *=.+?\)/i,
  					y = /^(rgb|hsl)/,
  					z = /([A-Z])/g,
  					A = /-([a-z])/gi,
  					B = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
  					C = function(a, b) {
  						return b.toUpperCase()
  					},
  					D = /(?:Left|Right|Width)/i,
  					E = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
  					F = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
  					G = /,(?=[^\)]*(?:\(|$))/gi,
  					H = /[\s,\(]/i,
  					I = Math.PI / 180,
  					J = 180 / Math.PI,
  					K = {},
  					L = document,
  					M = function(a) {
  						return L.createElementNS ? L.createElementNS("http://www.w3.org/1999/xhtml", a) : L.createElement(a)
  					},
  					N = M("div"),
  					O = M("img"),
  					P = g._internals = {
  						_specialProps: i
  					},
  					Q = navigator.userAgent,
  					R = function() {
  						var a = Q.indexOf("Android"),
  							b = M("a");
  						return m = -1 !== Q.indexOf("Safari") && -1 === Q.indexOf("Chrome") && (-1 === a || Number(Q.substr(a + 8, 1)) > 3), o = m && Number(Q.substr(Q.indexOf("Version/") + 8, 1)) < 6, n = -1 !== Q.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Q) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Q)) && (p = parseFloat(RegExp.$1)), b ? (b.style.cssText = "top:1px;opacity:.55;", /^0.55/.test(b.style.opacity)) : !1
  					}(),
  					S = function(a) {
  						return v.test("string" == typeof a ? a : (a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
  					},
  					T = function(a) {
  						window.console && console.log(a)
  					},
  					U = "",
  					V = "",
  					W = function(a, b) {
  						b = b || N;
  						var c, d, e = b.style;
  						if (void 0 !== e[a]) return a;
  						for (a = a.charAt(0).toUpperCase() + a.substr(1), c = ["O", "Moz", "ms", "Ms", "Webkit"], d = 5; --d > -1 && void 0 === e[c[d] + a];);
  						return d >= 0 ? (V = 3 === d ? "ms" : c[d], U = "-" + V.toLowerCase() + "-", V + a) : null
  					},
  					X = L.defaultView ? L.defaultView.getComputedStyle : function() {},
  					Y = g.getStyle = function(a, b, c, d, e) {
  						var f;
  						return R || "opacity" !== b ? (!d && a.style[b] ? f = a.style[b] : (c = c || X(a)) ? f = c[b] || c.getPropertyValue(b) || c.getPropertyValue(b.replace(z, "-$1").toLowerCase()) : a.currentStyle && (f = a.currentStyle[b]), null == e || f && "none" !== f && "auto" !== f && "auto auto" !== f ? f : e) : S(a)
  					},
  					Z = P.convertToPixels = function(a, c, d, e, f) {
  						if ("px" === e || !e) return d;
  						if ("auto" === e || !d) return 0;
  						var h, i, j, k = D.test(c),
  							l = a,
  							m = N.style,
  							n = 0 > d,
  							o = 1 === d;
  						if (n && (d = -d), o && (d *= 100), "%" === e && -1 !== c.indexOf("border")) h = d / 100 * (k ? a.clientWidth : a.clientHeight);
  						else {
  							if (m.cssText = "border:0 solid red;position:" + Y(a, "position") + ";line-height:0;", "%" !== e && l.appendChild && "v" !== e.charAt(0) && "rem" !== e) m[k ? "borderLeftWidth" : "borderTopWidth"] = d + e;
  							else {
  								if (l = a.parentNode || L.body, i = l._gsCache, j = b.ticker.frame, i && k && i.time === j) return i.width * d / 100;
  								m[k ? "width" : "height"] = d + e
  							}
  							l.appendChild(N), h = parseFloat(N[k ? "offsetWidth" : "offsetHeight"]), l.removeChild(N), k && "%" === e && g.cacheWidths !== !1 && (i = l._gsCache = l._gsCache || {}, i.time = j, i.width = h / d * 100), 0 !== h || f || (h = Z(a, c, d, e, !0))
  						}
  						return o && (h /= 100), n ? -h : h
  					},
  					$ = P.calculateOffset = function(a, b, c) {
  						if ("absolute" !== Y(a, "position", c)) return 0;
  						var d = "left" === b ? "Left" : "Top",
  							e = Y(a, "margin" + d, c);
  						return a["offset" + d] - (Z(a, b, parseFloat(e), e.replace(u, "")) || 0)
  					},
  					_ = function(a, b) {
  						var c, d, e, f = {};
  						if (b = b || X(a, null))
  							if (c = b.length)
  								for (; --c > -1;) e = b[c], (-1 === e.indexOf("-transform") || Aa === e) && (f[e.replace(A, C)] = b.getPropertyValue(e));
  							else
  								for (c in b)(-1 === c.indexOf("Transform") || za === c) && (f[c] = b[c]);
  						else if (b = a.currentStyle || a.style)
  							for (c in b) "string" == typeof c && void 0 === f[c] && (f[c.replace(A, C)] = b[c]);
  						return R || (f.opacity = S(a)), d = Na(a, b, !1), f.rotation = d.rotation, f.skewX = d.skewX, f.scaleX = d.scaleX, f.scaleY = d.scaleY, f.x = d.x, f.y = d.y, Ca && (f.z = d.z, f.rotationX = d.rotationX, f.rotationY = d.rotationY, f.scaleZ = d.scaleZ), f.filters && delete f.filters, f
  					},
  					aa = function(a, b, c, d, e) {
  						var f, g, h, i = {},
  							j = a.style;
  						for (g in c) "cssText" !== g && "length" !== g && isNaN(g) && (b[g] !== (f = c[g]) || e && e[g]) && -1 === g.indexOf("Origin") && ("number" == typeof f || "string" == typeof f) && (i[g] = "auto" !== f || "left" !== g && "top" !== g ? "" !== f && "auto" !== f && "none" !== f || "string" != typeof b[g] || "" === b[g].replace(t, "") ? f : 0 : $(a, g), void 0 !== j[g] && (h = new pa(j, g, j[g], h)));
  						if (d)
  							for (g in d) "className" !== g && (i[g] = d[g]);
  						return {
  							difs: i,
  							firstMPT: h
  						}
  					},
  					ba = {
  						width: ["Left", "Right"],
  						height: ["Top", "Bottom"]
  					},
  					ca = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
  					da = function(a, b, c) {
  						if ("svg" === (a.nodeName + "").toLowerCase()) return (c || X(a))[b] || 0;
  						if (a.getBBox && Ka(a)) return a.getBBox()[b] || 0;
  						var d = parseFloat("width" === b ? a.offsetWidth : a.offsetHeight),
  							e = ba[b],
  							f = e.length;
  						for (c = c || X(a, null); --f > -1;) d -= parseFloat(Y(a, "padding" + e[f], c, !0)) || 0, d -= parseFloat(Y(a, "border" + e[f] + "Width", c, !0)) || 0;
  						return d
  					},
  					ea = function(a, b) {
  						if ("contain" === a || "auto" === a || "auto auto" === a) return a + " ";
  						(null == a || "" === a) && (a = "0 0");
  						var c, d = a.split(" "),
  							e = -1 !== a.indexOf("left") ? "0%" : -1 !== a.indexOf("right") ? "100%" : d[0],
  							f = -1 !== a.indexOf("top") ? "0%" : -1 !== a.indexOf("bottom") ? "100%" : d[1];
  						if (d.length > 3 && !b) {
  							for (d = a.split(", ").join(",").split(","), a = [], c = 0; c < d.length; c++) a.push(ea(d[c]));
  							return a.join(",")
  						}
  						return null == f ? f = "center" === e ? "50%" : "0" : "center" === f && (f = "50%"), ("center" === e || isNaN(parseFloat(e)) && -1 === (e + "").indexOf("=")) && (e = "50%"), a = e + " " + f + (d.length > 2 ? " " + d[2] : ""), b && (b.oxp = -1 !== e.indexOf("%"), b.oyp = -1 !== f.indexOf("%"), b.oxr = "=" === e.charAt(1), b.oyr = "=" === f.charAt(1), b.ox = parseFloat(e.replace(t, "")), b.oy = parseFloat(f.replace(t, "")), b.v = a), b || a
  					},
  					fa = function(a, b) {
  						return "string" == typeof a && "=" === a.charAt(1) ? parseInt(a.charAt(0) + "1", 10) * parseFloat(a.substr(2)) : parseFloat(a) - parseFloat(b) || 0
  					},
  					ga = function(a, b) {
  						return null == a ? b : "string" == typeof a && "=" === a.charAt(1) ? parseInt(a.charAt(0) + "1", 10) * parseFloat(a.substr(2)) + b : parseFloat(a) || 0
  					},
  					ha = function(a, b, c, d) {
  						var e, f, g, h, i, j = 1e-6;
  						return null == a ? h = b : "number" == typeof a ? h = a : (e = 360, f = a.split("_"), i = "=" === a.charAt(1), g = (i ? parseInt(a.charAt(0) + "1", 10) * parseFloat(f[0].substr(2)) : parseFloat(f[0])) * (-1 === a.indexOf("rad") ? 1 : J) - (i ? 0 : b), f.length && (d && (d[c] = b + g), -1 !== a.indexOf("short") && (g %= e, g !== g % (e / 2) && (g = 0 > g ? g + e : g - e)), -1 !== a.indexOf("_cw") && 0 > g ? g = (g + 9999999999 * e) % e - (g / e | 0) * e : -1 !== a.indexOf("ccw") && g > 0 && (g = (g - 9999999999 * e) % e - (g / e | 0) * e)), h = b + g), j > h && h > -j && (h = 0), h
  					},
  					ia = {
  						aqua: [0, 255, 255],
  						lime: [0, 255, 0],
  						silver: [192, 192, 192],
  						black: [0, 0, 0],
  						maroon: [128, 0, 0],
  						teal: [0, 128, 128],
  						blue: [0, 0, 255],
  						navy: [0, 0, 128],
  						white: [255, 255, 255],
  						fuchsia: [255, 0, 255],
  						olive: [128, 128, 0],
  						yellow: [255, 255, 0],
  						orange: [255, 165, 0],
  						gray: [128, 128, 128],
  						purple: [128, 0, 128],
  						green: [0, 128, 0],
  						red: [255, 0, 0],
  						pink: [255, 192, 203],
  						cyan: [0, 255, 255],
  						transparent: [255, 255, 255, 0]
  					},
  					ja = function(a, b, c) {
  						return a = 0 > a ? a + 1 : a > 1 ? a - 1 : a, 255 * (1 > 6 * a ? b + (c - b) * a * 6 : .5 > a ? c : 2 > 3 * a ? b + (c - b) * (2 / 3 - a) * 6 : b) + .5 | 0
  					},
  					ka = g.parseColor = function(a, b) {
  						var c, d, e, f, g, h, i, j, k, l, m;
  						if (a)
  							if ("number" == typeof a) c = [a >> 16, a >> 8 & 255, 255 & a];
  							else {
  								if ("," === a.charAt(a.length - 1) && (a = a.substr(0, a.length - 1)), ia[a]) c = ia[a];
  								else if ("#" === a.charAt(0)) 4 === a.length && (d = a.charAt(1), e = a.charAt(2), f = a.charAt(3), a = "#" + d + d + e + e + f + f), a = parseInt(a.substr(1), 16), c = [a >> 16, a >> 8 & 255, 255 & a];
  								else if ("hsl" === a.substr(0, 3))
  									if (c = m = a.match(q), b) {
  										if (-1 !== a.indexOf("=")) return a.match(r)
  									} else g = Number(c[0]) % 360 / 360, h = Number(c[1]) / 100, i = Number(c[2]) / 100, e = .5 >= i ? i * (h + 1) : i + h - i * h, d = 2 * i - e, c.length > 3 && (c[3] = Number(a[3])), c[0] = ja(g + 1 / 3, d, e), c[1] = ja(g, d, e), c[2] = ja(g - 1 / 3, d, e);
  								else c = a.match(q) || ia.transparent;
  								c[0] = Number(c[0]), c[1] = Number(c[1]), c[2] = Number(c[2]), c.length > 3 && (c[3] = Number(c[3]))
  							}
  						else c = ia.black;
  						return b && !m && (d = c[0] / 255, e = c[1] / 255, f = c[2] / 255, j = Math.max(d, e, f), k = Math.min(d, e, f), i = (j + k) / 2, j === k ? g = h = 0 : (l = j - k, h = i > .5 ? l / (2 - j - k) : l / (j + k), g = j === d ? (e - f) / l + (f > e ? 6 : 0) : j === e ? (f - d) / l + 2 : (d - e) / l + 4, g *= 60), c[0] = g + .5 | 0, c[1] = 100 * h + .5 | 0, c[2] = 100 * i + .5 | 0), c
  					},
  					la = function(a, b) {
  						var c, d, e, f = a.match(ma) || [],
  							g = 0,
  							h = f.length ? "" : a;
  						for (c = 0; c < f.length; c++) d = f[c], e = a.substr(g, a.indexOf(d, g) - g), g += e.length + d.length, d = ka(d, b), 3 === d.length && d.push(1), h += e + (b ? "hsla(" + d[0] + "," + d[1] + "%," + d[2] + "%," + d[3] : "rgba(" + d.join(",")) + ")";
  						return h + a.substr(g)
  					},
  					ma = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";
  				for (j in ia) ma += "|" + j + "\\b";
  				ma = new RegExp(ma + ")", "gi"), g.colorStringFilter = function(a) {
  					var b, c = a[0] + a[1];
  					ma.test(c) && (b = -1 !== c.indexOf("hsl(") || -1 !== c.indexOf("hsla("), a[0] = la(a[0], b), a[1] = la(a[1], b)), ma.lastIndex = 0
  				}, b.defaultStringFilter || (b.defaultStringFilter = g.colorStringFilter);
  				var na = function(a, b, c, d) {
  						if (null == a) return function(a) {
  							return a
  						};
  						var e, f = b ? (a.match(ma) || [""])[0] : "",
  							g = a.split(f).join("").match(s) || [],
  							h = a.substr(0, a.indexOf(g[0])),
  							i = ")" === a.charAt(a.length - 1) ? ")" : "",
  							j = -1 !== a.indexOf(" ") ? " " : ",",
  							k = g.length,
  							l = k > 0 ? g[0].replace(q, "") : "";
  						return k ? e = b ? function(a) {
  							var b, m, n, o;
  							if ("number" == typeof a) a += l;
  							else if (d && G.test(a)) {
  								for (o = a.replace(G, "|").split("|"), n = 0; n < o.length; n++) o[n] = e(o[n]);
  								return o.join(",")
  							}
  							if (b = (a.match(ma) || [f])[0], m = a.split(b).join("").match(s) || [], n = m.length, k > n--)
  								for (; ++n < k;) m[n] = c ? m[(n - 1) / 2 | 0] : g[n];
  							return h + m.join(j) + j + b + i + (-1 !== a.indexOf("inset") ? " inset" : "")
  						} : function(a) {
  							var b, f, m;
  							if ("number" == typeof a) a += l;
  							else if (d && G.test(a)) {
  								for (f = a.replace(G, "|").split("|"), m = 0; m < f.length; m++) f[m] = e(f[m]);
  								return f.join(",")
  							}
  							if (b = a.match(s) || [], m = b.length, k > m--)
  								for (; ++m < k;) b[m] = c ? b[(m - 1) / 2 | 0] : g[m];
  							return h + b.join(j) + i
  						} : function(a) {
  							return a
  						}
  					},
  					oa = function(a) {
  						return a = a.split(","),
  							function(b, c, d, e, f, g, h) {
  								var i, j = (c + "").split(" ");
  								for (h = {}, i = 0; 4 > i; i++) h[a[i]] = j[i] = j[i] || j[(i - 1) / 2 >> 0];
  								return e.parse(b, h, f, g)
  							}
  					},
  					pa = (P._setPluginRatio = function(a) {
  						this.plugin.setRatio(a);
  						for (var b, c, d, e, f, g = this.data, h = g.proxy, i = g.firstMPT, j = 1e-6; i;) b = h[i.v], i.r ? b = Math.round(b) : j > b && b > -j && (b = 0), i.t[i.p] = b, i = i._next;
  						if (g.autoRotate && (g.autoRotate.rotation = h.rotation), 1 === a || 0 === a)
  							for (i = g.firstMPT, f = 1 === a ? "e" : "b"; i;) {
  								if (c = i.t, c.type) {
  									if (1 === c.type) {
  										for (e = c.xs0 + c.s + c.xs1, d = 1; d < c.l; d++) e += c["xn" + d] + c["xs" + (d + 1)];
  										c[f] = e
  									}
  								} else c[f] = c.s + c.xs0;
  								i = i._next
  							}
  					}, function(a, b, c, d, e) {
  						this.t = a, this.p = b, this.v = c, this.r = e, d && (d._prev = this, this._next = d)
  					}),
  					qa = (P._parseToProxy = function(a, b, c, d, e, f) {
  						var g, h, i, j, k, l = d,
  							m = {},
  							n = {},
  							o = c._transform,
  							p = K;
  						for (c._transform = null, K = b, d = k = c.parse(a, b, d, e), K = p, f && (c._transform = o, l && (l._prev = null, l._prev && (l._prev._next = null))); d && d !== l;) {
  							if (d.type <= 1 && (h = d.p, n[h] = d.s + d.c, m[h] = d.s, f || (j = new pa(d, "s", h, j, d.r), d.c = 0), 1 === d.type))
  								for (g = d.l; --g > 0;) i = "xn" + g, h = d.p + "_" + i, n[h] = d.data[i], m[h] = d[i], f || (j = new pa(d, i, h, j, d.rxp[i]));
  							d = d._next
  						}
  						return {
  							proxy: m,
  							end: n,
  							firstMPT: j,
  							pt: k
  						}
  					}, P.CSSPropTween = function(a, b, d, e, g, h, i, j, k, l, m) {
  						this.t = a, this.p = b, this.s = d, this.c = e, this.n = i || b, a instanceof qa || f.push(this.n), this.r = j, this.type = h || 0, k && (this.pr = k, c = !0), this.b = void 0 === l ? d : l, this.e = void 0 === m ? d + e : m, g && (this._next = g, g._prev = this)
  					}),
  					ra = function(a, b, c, d, e, f) {
  						var g = new qa(a, b, c, d - c, e, -1, f);
  						return g.b = c, g.e = g.xs0 = d, g
  					},
  					sa = g.parseComplex = function(a, b, c, d, e, f, h, i, j, l) {
  						c = c || f || "", h = new qa(a, b, 0, 0, h, l ? 2 : 1, null, !1, i, c, d), d += "", e && ma.test(d + c) && (d = [c, d], g.colorStringFilter(d), c = d[0], d = d[1]);
  						var m, n, o, p, s, t, u, v, w, x, y, z, A, B = c.split(", ").join(",").split(" "),
  							C = d.split(", ").join(",").split(" "),
  							D = B.length,
  							E = k !== !1;
  						for ((-1 !== d.indexOf(",") || -1 !== c.indexOf(",")) && (B = B.join(" ").replace(G, ", ").split(" "), C = C.join(" ").replace(G, ", ").split(" "), D = B.length), D !== C.length && (B = (f || "").split(" "), D = B.length), h.plugin = j, h.setRatio = l, ma.lastIndex = 0, m = 0; D > m; m++)
  							if (p = B[m], s = C[m], v = parseFloat(p), v || 0 === v) h.appendXtra("", v, fa(s, v), s.replace(r, ""), E && -1 !== s.indexOf("px"), !0);
  							else if (e && ma.test(p)) z = s.indexOf(")") + 1, z = ")" + (z ? s.substr(z) : ""), A = -1 !== s.indexOf("hsl") && R, p = ka(p, A), s = ka(s, A), w = p.length + s.length > 6, w && !R && 0 === s[3] ? (h["xs" + h.l] += h.l ? " transparent" : "transparent", h.e = h.e.split(C[m]).join("transparent")) : (R || (w = !1), A ? h.appendXtra(w ? "hsla(" : "hsl(", p[0], fa(s[0], p[0]), ",", !1, !0).appendXtra("", p[1], fa(s[1], p[1]), "%,", !1).appendXtra("", p[2], fa(s[2], p[2]), w ? "%," : "%" + z, !1) : h.appendXtra(w ? "rgba(" : "rgb(", p[0], s[0] - p[0], ",", !0, !0).appendXtra("", p[1], s[1] - p[1], ",", !0).appendXtra("", p[2], s[2] - p[2], w ? "," : z, !0), w && (p = p.length < 4 ? 1 : p[3], h.appendXtra("", p, (s.length < 4 ? 1 : s[3]) - p, z, !1))), ma.lastIndex = 0;
  						else if (t = p.match(q)) {
  							if (u = s.match(r), !u || u.length !== t.length) return h;
  							for (o = 0, n = 0; n < t.length; n++) y = t[n], x = p.indexOf(y, o), h.appendXtra(p.substr(o, x - o), Number(y), fa(u[n], y), "", E && "px" === p.substr(x + y.length, 2), 0 === n), o = x + y.length;
  							h["xs" + h.l] += p.substr(o)
  						} else h["xs" + h.l] += h.l || h["xs" + h.l] ? " " + s : s;
  						if (-1 !== d.indexOf("=") && h.data) {
  							for (z = h.xs0 + h.data.s, m = 1; m < h.l; m++) z += h["xs" + m] + h.data["xn" + m];
  							h.e = z + h["xs" + m]
  						}
  						return h.l || (h.type = -1, h.xs0 = h.e), h.xfirst || h
  					},
  					ta = 9;
  				for (j = qa.prototype, j.l = j.pr = 0; --ta > 0;) j["xn" + ta] = 0, j["xs" + ta] = "";
  				j.xs0 = "", j._next = j._prev = j.xfirst = j.data = j.plugin = j.setRatio = j.rxp = null, j.appendXtra = function(a, b, c, d, e, f) {
  					var g = this,
  						h = g.l;
  					return g["xs" + h] += f && (h || g["xs" + h]) ? " " + a : a || "", c || 0 === h || g.plugin ? (g.l++, g.type = g.setRatio ? 2 : 1, g["xs" + g.l] = d || "", h > 0 ? (g.data["xn" + h] = b + c, g.rxp["xn" + h] = e, g["xn" + h] = b, g.plugin || (g.xfirst = new qa(g, "xn" + h, b, c, g.xfirst || g, 0, g.n, e, g.pr), g.xfirst.xs0 = 0), g) : (g.data = {
  						s: b + c
  					}, g.rxp = {}, g.s = b, g.c = c, g.r = e, g)) : (g["xs" + h] += b + (d || ""), g)
  				};
  				var ua = function(a, b) {
  						b = b || {}, this.p = b.prefix ? W(a) || a : a, i[a] = i[this.p] = this, this.format = b.formatter || na(b.defaultValue, b.color, b.collapsible, b.multi), b.parser && (this.parse = b.parser), this.clrs = b.color, this.multi = b.multi, this.keyword = b.keyword, this.dflt = b.defaultValue, this.pr = b.priority || 0
  					},
  					va = P._registerComplexSpecialProp = function(a, b, c) {
  						"object" != typeof b && (b = {
  							parser: c
  						});
  						var d, e, f = a.split(","),
  							g = b.defaultValue;
  						for (c = c || [g], d = 0; d < f.length; d++) b.prefix = 0 === d && b.prefix, b.defaultValue = c[d] || g, e = new ua(f[d], b)
  					},
  					wa = function(a) {
  						if (!i[a]) {
  							var b = a.charAt(0).toUpperCase() + a.substr(1) + "Plugin";
  							va(a, {
  								parser: function(a, c, d, e, f, g, j) {
  									var k = h.com.greensock.plugins[b];
  									return k ? (k._cssRegister(), i[d].parse(a, c, d, e, f, g, j)) : (T("Error: " + b + " js file not loaded."), f)
  								}
  							})
  						}
  					};
  				j = ua.prototype, j.parseComplex = function(a, b, c, d, e, f) {
  					var g, h, i, j, k, l, m = this.keyword;
  					if (this.multi && (G.test(c) || G.test(b) ? (h = b.replace(G, "|").split("|"), i = c.replace(G, "|").split("|")) : m && (h = [b], i = [c])), i) {
  						for (j = i.length > h.length ? i.length : h.length, g = 0; j > g; g++) b = h[g] = h[g] || this.dflt, c = i[g] = i[g] || this.dflt, m && (k = b.indexOf(m), l = c.indexOf(m), k !== l && (-1 === l ? h[g] = h[g].split(m).join("") : -1 === k && (h[g] += " " + m)));
  						b = h.join(", "), c = i.join(", ")
  					}
  					return sa(a, this.p, b, c, this.clrs, this.dflt, d, this.pr, e, f)
  				}, j.parse = function(a, b, c, d, f, g, h) {
  					return this.parseComplex(a.style, this.format(Y(a, this.p, e, !1, this.dflt)), this.format(b), f, g)
  				}, g.registerSpecialProp = function(a, b, c) {
  					va(a, {
  						parser: function(a, d, e, f, g, h, i) {
  							var j = new qa(a, e, 0, 0, g, 2, e, !1, c);
  							return j.plugin = h, j.setRatio = b(a, d, f._tween, e), j
  						},
  						priority: c
  					})
  				}, g.useSVGTransformAttr = m || n;
  				var xa, ya = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),
  					za = W("transform"),
  					Aa = U + "transform",
  					Ba = W("transformOrigin"),
  					Ca = null !== W("perspective"),
  					Da = P.Transform = function() {
  						this.perspective = parseFloat(g.defaultTransformPerspective) || 0, this.force3D = g.defaultForce3D !== !1 && Ca ? g.defaultForce3D || "auto" : !1
  					},
  					Ea = window.SVGElement,
  					Fa = function(a, b, c) {
  						var d, e = L.createElementNS("http://www.w3.org/2000/svg", a),
  							f = /([a-z])([A-Z])/g;
  						for (d in c) e.setAttributeNS(null, d.replace(f, "$1-$2").toLowerCase(), c[d]);
  						return b.appendChild(e), e
  					},
  					Ga = L.documentElement,
  					Ha = function() {
  						var a, b, c, d = p || /Android/i.test(Q) && !window.chrome;
  						return L.createElementNS && !d && (a = Fa("svg", Ga), b = Fa("rect", a, {
  							width: 100,
  							height: 50,
  							x: 100
  						}), c = b.getBoundingClientRect().width, b.style[Ba] = "50% 50%", b.style[za] = "scaleX(0.5)", d = c === b.getBoundingClientRect().width && !(n && Ca), Ga.removeChild(a)), d
  					}(),
  					Ia = function(a, b, c, d, e, f) {
  						var h, i, j, k, l, m, n, o, p, q, r, s, t, u, v = a._gsTransform,
  							w = Ma(a, !0);
  						v && (t = v.xOrigin, u = v.yOrigin), (!d || (h = d.split(" ")).length < 2) && (n = a.getBBox(), b = ea(b).split(" "), h = [(-1 !== b[0].indexOf("%") ? parseFloat(b[0]) / 100 * n.width : parseFloat(b[0])) + n.x, (-1 !== b[1].indexOf("%") ? parseFloat(b[1]) / 100 * n.height : parseFloat(b[1])) + n.y]), c.xOrigin = k = parseFloat(h[0]), c.yOrigin = l = parseFloat(h[1]), d && w !== La && (m = w[0], n = w[1], o = w[2], p = w[3], q = w[4], r = w[5], s = m * p - n * o, i = k * (p / s) + l * (-o / s) + (o * r - p * q) / s, j = k * (-n / s) + l * (m / s) - (m * r - n * q) / s, k = c.xOrigin = h[0] = i, l = c.yOrigin = h[1] = j), v && (f && (c.xOffset = v.xOffset, c.yOffset = v.yOffset, v = c), e || e !== !1 && g.defaultSmoothOrigin !== !1 ? (i = k - t, j = l - u, v.xOffset += i * w[0] + j * w[2] - i, v.yOffset += i * w[1] + j * w[3] - j) : v.xOffset = v.yOffset = 0), f || a.setAttribute("data-svg-origin", h.join(" "))
  					},
  					Ja = function(a) {
  						try {
  							return a.getBBox()
  						} catch (a) {}
  					},
  					Ka = function(a) {
  						return !!(Ea && a.getBBox && a.getCTM && Ja(a) && (!a.parentNode || a.parentNode.getBBox && a.parentNode.getCTM))
  					},
  					La = [1, 0, 0, 1, 0, 0],
  					Ma = function(a, b) {
  						var c, d, e, f, g, h, i = a._gsTransform || new Da,
  							j = 1e5,
  							k = a.style;
  						if (za ? d = Y(a, Aa, null, !0) : a.currentStyle && (d = a.currentStyle.filter.match(E), d = d && 4 === d.length ? [d[0].substr(4), Number(d[2].substr(4)), Number(d[1].substr(4)), d[3].substr(4), i.x || 0, i.y || 0].join(",") : ""), c = !d || "none" === d || "matrix(1, 0, 0, 1, 0, 0)" === d, c && za && ((h = "none" === X(a).display) || !a.parentNode) && (h && (f = k.display, k.display = "block"), a.parentNode || (g = 1, Ga.appendChild(a)), d = Y(a, Aa, null, !0), c = !d || "none" === d || "matrix(1, 0, 0, 1, 0, 0)" === d, f ? k.display = f : h && Ra(k, "display"), g && Ga.removeChild(a)), (i.svg || a.getBBox && Ka(a)) && (c && -1 !== (k[za] + "").indexOf("matrix") && (d = k[za], c = 0), e = a.getAttribute("transform"), c && e && (-1 !== e.indexOf("matrix") ? (d = e, c = 0) : -1 !== e.indexOf("translate") && (d = "matrix(1,0,0,1," + e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",") + ")", c = 0))), c) return La;
  						for (e = (d || "").match(q) || [], ta = e.length; --ta > -1;) f = Number(e[ta]), e[ta] = (g = f - (f |= 0)) ? (g * j + (0 > g ? -.5 : .5) | 0) / j + f : f;
  						return b && e.length > 6 ? [e[0], e[1], e[4], e[5], e[12], e[13]] : e
  					},
  					Na = P.getTransform = function(a, c, d, e) {
  						if (a._gsTransform && d && !e) return a._gsTransform;
  						var f, h, i, j, k, l, m = d ? a._gsTransform || new Da : new Da,
  							n = m.scaleX < 0,
  							o = 2e-5,
  							p = 1e5,
  							q = Ca ? parseFloat(Y(a, Ba, c, !1, "0 0 0").split(" ")[2]) || m.zOrigin || 0 : 0,
  							r = parseFloat(g.defaultTransformPerspective) || 0;
  						if (m.svg = !(!a.getBBox || !Ka(a)), m.svg && (Ia(a, Y(a, Ba, c, !1, "50% 50%") + "", m, a.getAttribute("data-svg-origin")), xa = g.useSVGTransformAttr || Ha), f = Ma(a), f !== La) {
  							if (16 === f.length) {
  								var s, t, u, v, w, x = f[0],
  									y = f[1],
  									z = f[2],
  									A = f[3],
  									B = f[4],
  									C = f[5],
  									D = f[6],
  									E = f[7],
  									F = f[8],
  									G = f[9],
  									H = f[10],
  									I = f[12],
  									K = f[13],
  									L = f[14],
  									M = f[11],
  									N = Math.atan2(D, H);
  								m.zOrigin && (L = -m.zOrigin, I = F * L - f[12], K = G * L - f[13], L = H * L + m.zOrigin - f[14]), m.rotationX = N * J, N && (v = Math.cos(-N), w = Math.sin(-N), s = B * v + F * w, t = C * v + G * w, u = D * v + H * w, F = B * -w + F * v, G = C * -w + G * v, H = D * -w + H * v, M = E * -w + M * v, B = s, C = t, D = u), N = Math.atan2(-z, H), m.rotationY = N * J, N && (v = Math.cos(-N), w = Math.sin(-N), s = x * v - F * w, t = y * v - G * w, u = z * v - H * w, G = y * w + G * v, H = z * w + H * v, M = A * w + M * v, x = s, y = t, z = u), N = Math.atan2(y, x), m.rotation = N * J, N && (v = Math.cos(-N), w = Math.sin(-N), x = x * v + B * w, t = y * v + C * w, C = y * -w + C * v, D = z * -w + D * v, y = t), m.rotationX && Math.abs(m.rotationX) + Math.abs(m.rotation) > 359.9 && (m.rotationX = m.rotation = 0, m.rotationY = 180 - m.rotationY), m.scaleX = (Math.sqrt(x * x + y * y) * p + .5 | 0) / p, m.scaleY = (Math.sqrt(C * C + G * G) * p + .5 | 0) / p, m.scaleZ = (Math.sqrt(D * D + H * H) * p + .5 | 0) / p, m.rotationX || m.rotationY ? m.skewX = 0 : (m.skewX = B || C ? Math.atan2(B, C) * J + m.rotation : m.skewX || 0, Math.abs(m.skewX) > 90 && Math.abs(m.skewX) < 270 && (n ? (m.scaleX *= -1, m.skewX += m.rotation <= 0 ? 180 : -180, m.rotation += m.rotation <= 0 ? 180 : -180) : (m.scaleY *= -1, m.skewX += m.skewX <= 0 ? 180 : -180))), m.perspective = M ? 1 / (0 > M ? -M : M) : 0, m.x = I, m.y = K, m.z = L, m.svg && (m.x -= m.xOrigin - (m.xOrigin * x - m.yOrigin * B), m.y -= m.yOrigin - (m.yOrigin * y - m.xOrigin * C))
  							} else if (!Ca || e || !f.length || m.x !== f[4] || m.y !== f[5] || !m.rotationX && !m.rotationY) {
  								var O = f.length >= 6,
  									P = O ? f[0] : 1,
  									Q = f[1] || 0,
  									R = f[2] || 0,
  									S = O ? f[3] : 1;
  								m.x = f[4] || 0, m.y = f[5] || 0, i = Math.sqrt(P * P + Q * Q), j = Math.sqrt(S * S + R * R), k = P || Q ? Math.atan2(Q, P) * J : m.rotation || 0, l = R || S ? Math.atan2(R, S) * J + k : m.skewX || 0, Math.abs(l) > 90 && Math.abs(l) < 270 && (n ? (i *= -1, l += 0 >= k ? 180 : -180, k += 0 >= k ? 180 : -180) : (j *= -1, l += 0 >= l ? 180 : -180)), m.scaleX = i, m.scaleY = j, m.rotation = k, m.skewX = l, Ca && (m.rotationX = m.rotationY = m.z = 0, m.perspective = r, m.scaleZ = 1), m.svg && (m.x -= m.xOrigin - (m.xOrigin * P + m.yOrigin * R), m.y -= m.yOrigin - (m.xOrigin * Q + m.yOrigin * S))
  							}
  							m.zOrigin = q;
  							for (h in m) m[h] < o && m[h] > -o && (m[h] = 0)
  						}
  						return d && (a._gsTransform = m, m.svg && (xa && a.style[za] ? b.delayedCall(.001, function() {
  							Ra(a.style, za)
  						}) : !xa && a.getAttribute("transform") && b.delayedCall(.001, function() {
  							a.removeAttribute("transform")
  						}))), m
  					},
  					Oa = function(a) {
  						var b, c, d = this.data,
  							e = -d.rotation * I,
  							f = e + d.skewX * I,
  							g = 1e5,
  							h = (Math.cos(e) * d.scaleX * g | 0) / g,
  							i = (Math.sin(e) * d.scaleX * g | 0) / g,
  							j = (Math.sin(f) * -d.scaleY * g | 0) / g,
  							k = (Math.cos(f) * d.scaleY * g | 0) / g,
  							l = this.t.style,
  							m = this.t.currentStyle;
  						if (m) {
  							c = i, i = -j, j = -c, b = m.filter, l.filter = "";
  							var n, o, q = this.t.offsetWidth,
  								r = this.t.offsetHeight,
  								s = "absolute" !== m.position,
  								t = "progid:DXImageTransform.Microsoft.Matrix(M11=" + h + ", M12=" + i + ", M21=" + j + ", M22=" + k,
  								w = d.x + q * d.xPercent / 100,
  								x = d.y + r * d.yPercent / 100;
  							if (null != d.ox && (n = (d.oxp ? q * d.ox * .01 : d.ox) - q / 2, o = (d.oyp ? r * d.oy * .01 : d.oy) - r / 2, w += n - (n * h + o * i), x += o - (n * j + o * k)), s ? (n = q / 2, o = r / 2, t += ", Dx=" + (n - (n * h + o * i) + w) + ", Dy=" + (o - (n * j + o * k) + x) + ")") : t += ", sizingMethod='auto expand')", -1 !== b.indexOf("DXImageTransform.Microsoft.Matrix(") ? l.filter = b.replace(F, t) : l.filter = t + " " + b, (0 === a || 1 === a) && 1 === h && 0 === i && 0 === j && 1 === k && (s && -1 === t.indexOf("Dx=0, Dy=0") || v.test(b) && 100 !== parseFloat(RegExp.$1) || -1 === b.indexOf(b.indexOf("Alpha")) && l.removeAttribute("filter")), !s) {
  								var y, z, A, B = 8 > p ? 1 : -1;
  								for (n = d.ieOffsetX || 0, o = d.ieOffsetY || 0, d.ieOffsetX = Math.round((q - ((0 > h ? -h : h) * q + (0 > i ? -i : i) * r)) / 2 + w), d.ieOffsetY = Math.round((r - ((0 > k ? -k : k) * r + (0 > j ? -j : j) * q)) / 2 + x), ta = 0; 4 > ta; ta++) z = ca[ta], y = m[z], c = -1 !== y.indexOf("px") ? parseFloat(y) : Z(this.t, z, parseFloat(y), y.replace(u, "")) || 0, A = c !== d[z] ? 2 > ta ? -d.ieOffsetX : -d.ieOffsetY : 2 > ta ? n - d.ieOffsetX : o - d.ieOffsetY, l[z] = (d[z] = Math.round(c - A * (0 === ta || 2 === ta ? 1 : B))) + "px"
  							}
  						}
  					},
  					Pa = P.set3DTransformRatio = P.setTransformRatio = function(a) {
  						var b, c, d, e, f, g, h, i, j, k, l, m, o, p, q, r, s, t, u, v, w, x, y, z = this.data,
  							A = this.t.style,
  							B = z.rotation,
  							C = z.rotationX,
  							D = z.rotationY,
  							E = z.scaleX,
  							F = z.scaleY,
  							G = z.scaleZ,
  							H = z.x,
  							J = z.y,
  							K = z.z,
  							L = z.svg,
  							M = z.perspective,
  							N = z.force3D;
  						if (((1 === a || 0 === a) && "auto" === N && (this.tween._totalTime === this.tween._totalDuration || !this.tween._totalTime) || !N) && !K && !M && !D && !C && 1 === G || xa && L || !Ca) return void(B || z.skewX || L ? (B *= I, x = z.skewX * I, y = 1e5, b = Math.cos(B) * E, e = Math.sin(B) * E, c = Math.sin(B - x) * -F, f = Math.cos(B - x) * F, x && "simple" === z.skewType && (s = Math.tan(x), s = Math.sqrt(1 + s * s), c *= s, f *= s, z.skewY && (b *= s, e *= s)), L && (H += z.xOrigin - (z.xOrigin * b + z.yOrigin * c) + z.xOffset, J += z.yOrigin - (z.xOrigin * e + z.yOrigin * f) + z.yOffset, xa && (z.xPercent || z.yPercent) && (p = this.t.getBBox(), H += .01 * z.xPercent * p.width, J += .01 * z.yPercent * p.height), p = 1e-6, p > H && H > -p && (H = 0), p > J && J > -p && (J = 0)), u = (b * y | 0) / y + "," + (e * y | 0) / y + "," + (c * y | 0) / y + "," + (f * y | 0) / y + "," + H + "," + J + ")", L && xa ? this.t.setAttribute("transform", "matrix(" + u) : A[za] = (z.xPercent || z.yPercent ? "translate(" + z.xPercent + "%," + z.yPercent + "%) matrix(" : "matrix(") + u) : A[za] = (z.xPercent || z.yPercent ? "translate(" + z.xPercent + "%," + z.yPercent + "%) matrix(" : "matrix(") + E + ",0,0," + F + "," + H + "," + J + ")");
  						if (n && (p = 1e-4, p > E && E > -p && (E = G = 2e-5), p > F && F > -p && (F = G = 2e-5), !M || z.z || z.rotationX || z.rotationY || (M = 0)), B || z.skewX) B *= I, q = b = Math.cos(B), r = e = Math.sin(B), z.skewX && (B -= z.skewX * I, q = Math.cos(B), r = Math.sin(B), "simple" === z.skewType && (s = Math.tan(z.skewX * I), s = Math.sqrt(1 + s * s), q *= s, r *= s, z.skewY && (b *= s, e *= s))), c = -r, f = q;
  						else {
  							if (!(D || C || 1 !== G || M || L)) return void(A[za] = (z.xPercent || z.yPercent ? "translate(" + z.xPercent + "%," + z.yPercent + "%) translate3d(" : "translate3d(") + H + "px," + J + "px," + K + "px)" + (1 !== E || 1 !== F ? " scale(" + E + "," + F + ")" : ""));
  							b = f = 1, c = e = 0
  						}
  						j = 1, d = g = h = i = k = l = 0, m = M ? -1 / M : 0, o = z.zOrigin, p = 1e-6, v = ",", w = "0", B = D * I, B && (q = Math.cos(B), r = Math.sin(B), h = -r, k = m * -r, d = b * r, g = e * r, j = q, m *= q, b *= q, e *= q), B = C * I, B && (q = Math.cos(B), r = Math.sin(B), s = c * q + d * r, t = f * q + g * r, i = j * r, l = m * r, d = c * -r + d * q, g = f * -r + g * q, j *= q, m *= q, c = s, f = t), 1 !== G && (d *= G, g *= G, j *= G, m *= G), 1 !== F && (c *= F, f *= F, i *= F, l *= F), 1 !== E && (b *= E, e *= E, h *= E, k *= E), (o || L) && (o && (H += d * -o, J += g * -o, K += j * -o + o), L && (H += z.xOrigin - (z.xOrigin * b + z.yOrigin * c) + z.xOffset, J += z.yOrigin - (z.xOrigin * e + z.yOrigin * f) + z.yOffset), p > H && H > -p && (H = w), p > J && J > -p && (J = w), p > K && K > -p && (K = 0)), u = z.xPercent || z.yPercent ? "translate(" + z.xPercent + "%," + z.yPercent + "%) matrix3d(" : "matrix3d(", u += (p > b && b > -p ? w : b) + v + (p > e && e > -p ? w : e) + v + (p > h && h > -p ? w : h), u += v + (p > k && k > -p ? w : k) + v + (p > c && c > -p ? w : c) + v + (p > f && f > -p ? w : f), C || D || 1 !== G ? (u += v + (p > i && i > -p ? w : i) + v + (p > l && l > -p ? w : l) + v + (p > d && d > -p ? w : d), u += v + (p > g && g > -p ? w : g) + v + (p > j && j > -p ? w : j) + v + (p > m && m > -p ? w : m) + v) : u += ",0,0,0,0,1,0,", u += H + v + J + v + K + v + (M ? 1 + -K / M : 1) + ")", A[za] = u
  					};
  				j = Da.prototype, j.x = j.y = j.z = j.skewX = j.skewY = j.rotation = j.rotationX = j.rotationY = j.zOrigin = j.xPercent = j.yPercent = j.xOffset = j.yOffset = 0, j.scaleX = j.scaleY = j.scaleZ = 1, va("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {
  					parser: function(a, b, c, d, f, h, i) {
  						if (d._lastParsedTransform === i) return f;
  						d._lastParsedTransform = i;
  						var j, k, l, m, n, o, p, q, r, s = a._gsTransform,
  							t = a.style,
  							u = 1e-6,
  							v = ya.length,
  							w = i,
  							x = {},
  							y = "transformOrigin",
  							z = Na(a, e, !0, i.parseTransform);
  						if (d._transform = z, "string" == typeof w.transform && za) k = N.style, k[za] = w.transform, k.display = "block", k.position = "absolute", L.body.appendChild(N), j = Na(N, null, !1), z.svg && (p = z.xOrigin, q = z.yOrigin, j.x -= z.xOffset, j.y -= z.yOffset, (w.transformOrigin || w.svgOrigin) && (l = {}, Ia(a, ea(w.transformOrigin), l, w.svgOrigin, w.smoothOrigin, !0), p = l.xOrigin, q = l.yOrigin, j.x -= l.xOffset - z.xOffset, j.y -= l.yOffset - z.yOffset), (p || q) && (r = Ma(N, !0), j.x -= p - (p * r[0] + q * r[2]), j.y -= q - (p * r[1] + q * r[3]))), L.body.removeChild(N), j.perspective || (j.perspective = z.perspective), null != w.xPercent && (j.xPercent = ga(w.xPercent, z.xPercent)), null != w.yPercent && (j.yPercent = ga(w.yPercent, z.yPercent));
  						else if ("object" == typeof w) {
  							if (j = {
  									scaleX: ga(null != w.scaleX ? w.scaleX : w.scale, z.scaleX),
  									scaleY: ga(null != w.scaleY ? w.scaleY : w.scale, z.scaleY),
  									scaleZ: ga(w.scaleZ, z.scaleZ),
  									x: ga(w.x, z.x),
  									y: ga(w.y, z.y),
  									z: ga(w.z, z.z),
  									xPercent: ga(w.xPercent, z.xPercent),
  									yPercent: ga(w.yPercent, z.yPercent),
  									perspective: ga(w.transformPerspective, z.perspective)
  								}, o = w.directionalRotation, null != o)
  								if ("object" == typeof o)
  									for (k in o) w[k] = o[k];
  								else w.rotation = o;
  								"string" == typeof w.x && -1 !== w.x.indexOf("%") && (j.x = 0, j.xPercent = ga(w.x, z.xPercent)), "string" == typeof w.y && -1 !== w.y.indexOf("%") && (j.y = 0, j.yPercent = ga(w.y, z.yPercent)), j.rotation = ha("rotation" in w ? w.rotation : "shortRotation" in w ? w.shortRotation + "_short" : "rotationZ" in w ? w.rotationZ : z.rotation - z.skewY, z.rotation - z.skewY, "rotation", x), Ca && (j.rotationX = ha("rotationX" in w ? w.rotationX : "shortRotationX" in w ? w.shortRotationX + "_short" : z.rotationX || 0, z.rotationX, "rotationX", x), j.rotationY = ha("rotationY" in w ? w.rotationY : "shortRotationY" in w ? w.shortRotationY + "_short" : z.rotationY || 0, z.rotationY, "rotationY", x)), j.skewX = ha(w.skewX, z.skewX - z.skewY), (j.skewY = ha(w.skewY, z.skewY)) && (j.skewX += j.skewY, j.rotation += j.skewY)
  						}
  						for (Ca && null != w.force3D && (z.force3D = w.force3D, n = !0), z.skewType = w.skewType || z.skewType || g.defaultSkewType, m = z.force3D || z.z || z.rotationX || z.rotationY || j.z || j.rotationX || j.rotationY || j.perspective, m || null == w.scale || (j.scaleZ = 1); --v > -1;) c = ya[v], l = j[c] - z[c], (l > u || -u > l || null != w[c] || null != K[c]) && (n = !0, f = new qa(z, c, z[c], l, f), c in x && (f.e = x[c]), f.xs0 = 0, f.plugin = h, d._overwriteProps.push(f.n));
  						return l = w.transformOrigin, z.svg && (l || w.svgOrigin) && (p = z.xOffset, q = z.yOffset, Ia(a, ea(l), j, w.svgOrigin, w.smoothOrigin), f = ra(z, "xOrigin", (s ? z : j).xOrigin, j.xOrigin, f, y), f = ra(z, "yOrigin", (s ? z : j).yOrigin, j.yOrigin, f, y), (p !== z.xOffset || q !== z.yOffset) && (f = ra(z, "xOffset", s ? p : z.xOffset, z.xOffset, f, y), f = ra(z, "yOffset", s ? q : z.yOffset, z.yOffset, f, y)), l = xa ? null : "0px 0px"), (l || Ca && m && z.zOrigin) && (za ? (n = !0, c = Ba, l = (l || Y(a, c, e, !1, "50% 50%")) + "", f = new qa(t, c, 0, 0, f, -1, y), f.b = t[c], f.plugin = h, Ca ? (k = z.zOrigin, l = l.split(" "), z.zOrigin = (l.length > 2 && (0 === k || "0px" !== l[2]) ? parseFloat(l[2]) : k) || 0, f.xs0 = f.e = l[0] + " " + (l[1] || "50%") + " 0px", f = new qa(z, "zOrigin", 0, 0, f, -1, f.n), f.b = k, f.xs0 = f.e = z.zOrigin) : f.xs0 = f.e = l) : ea(l + "", z)), n && (d._transformType = z.svg && xa || !m && 3 !== this._transformType ? 2 : 3), f
  					},
  					prefix: !0
  				}), va("boxShadow", {
  					defaultValue: "0px 0px 0px 0px #999",
  					prefix: !0,
  					color: !0,
  					multi: !0,
  					keyword: "inset"
  				}), va("borderRadius", {
  					defaultValue: "0px",
  					parser: function(a, b, c, f, g, h) {
  						b = this.format(b);
  						var i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
  							z = a.style;
  						for (q = parseFloat(a.offsetWidth), r = parseFloat(a.offsetHeight), i = b.split(" "), j = 0; j < y.length; j++) this.p.indexOf("border") && (y[j] = W(y[j])), m = l = Y(a, y[j], e, !1, "0px"), -1 !== m.indexOf(" ") && (l = m.split(" "), m = l[0], l = l[1]), n = k = i[j], o = parseFloat(m), t = m.substr((o + "").length), u = "=" === n.charAt(1), u ? (p = parseInt(n.charAt(0) + "1", 10), n = n.substr(2), p *= parseFloat(n), s = n.substr((p + "").length - (0 > p ? 1 : 0)) || "") : (p = parseFloat(n), s = n.substr((p + "").length)), "" === s && (s = d[c] || t), s !== t && (v = Z(a, "borderLeft", o, t), w = Z(a, "borderTop", o, t), "%" === s ? (m = v / q * 100 + "%", l = w / r * 100 + "%") : "em" === s ? (x = Z(a, "borderLeft", 1, "em"), m = v / x + "em", l = w / x + "em") : (m = v + "px", l = w + "px"), u && (n = parseFloat(m) + p + s, k = parseFloat(l) + p + s)), g = sa(z, y[j], m + " " + l, n + " " + k, !1, "0px", g);
  						return g
  					},
  					prefix: !0,
  					formatter: na("0px 0px 0px 0px", !1, !0)
  				}), va("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius", {
  					defaultValue: "0px",
  					parser: function(a, b, c, d, f, g) {
  						return sa(a.style, c, this.format(Y(a, c, e, !1, "0px 0px")), this.format(b), !1, "0px", f)
  					},
  					prefix: !0,
  					formatter: na("0px 0px", !1, !0)
  				}), va("backgroundPosition", {
  					defaultValue: "0 0",
  					parser: function(a, b, c, d, f, g) {
  						var h, i, j, k, l, m, n = "background-position",
  							o = e || X(a, null),
  							q = this.format((o ? p ? o.getPropertyValue(n + "-x") + " " + o.getPropertyValue(n + "-y") : o.getPropertyValue(n) : a.currentStyle.backgroundPositionX + " " + a.currentStyle.backgroundPositionY) || "0 0"),
  							r = this.format(b);
  						if (-1 !== q.indexOf("%") != (-1 !== r.indexOf("%")) && r.split(",").length < 2 && (m = Y(a, "backgroundImage").replace(B, ""), m && "none" !== m)) {
  							for (h = q.split(" "), i = r.split(" "), O.setAttribute("src", m), j = 2; --j > -1;) q = h[j], k = -1 !== q.indexOf("%"), k !== (-1 !== i[j].indexOf("%")) && (l = 0 === j ? a.offsetWidth - O.width : a.offsetHeight - O.height, h[j] = k ? parseFloat(q) / 100 * l + "px" : parseFloat(q) / l * 100 + "%");
  							q = h.join(" ")
  						}
  						return this.parseComplex(a.style, q, r, f, g)
  					},
  					formatter: ea
  				}), va("backgroundSize", {
  					defaultValue: "0 0",
  					formatter: ea
  				}), va("perspective", {
  					defaultValue: "0px",
  					prefix: !0
  				}), va("perspectiveOrigin", {
  					defaultValue: "50% 50%",
  					prefix: !0
  				}), va("transformStyle", {
  					prefix: !0
  				}), va("backfaceVisibility", {
  					prefix: !0
  				}), va("userSelect", {
  					prefix: !0
  				}), va("margin", {
  					parser: oa("marginTop,marginRight,marginBottom,marginLeft")
  				}), va("padding", {
  					parser: oa("paddingTop,paddingRight,paddingBottom,paddingLeft")
  				}), va("clip", {
  					defaultValue: "rect(0px,0px,0px,0px)",
  					parser: function(a, b, c, d, f, g) {
  						var h, i, j;
  						return 9 > p ? (i = a.currentStyle, j = 8 > p ? " " : ",", h = "rect(" + i.clipTop + j + i.clipRight + j + i.clipBottom + j + i.clipLeft + ")", b = this.format(b).split(",").join(j)) : (h = this.format(Y(a, this.p, e, !1, this.dflt)), b = this.format(b)), this.parseComplex(a.style, h, b, f, g)
  					}
  				}), va("textShadow", {
  					defaultValue: "0px 0px 0px #999",
  					color: !0,
  					multi: !0
  				}), va("autoRound,strictUnits", {
  					parser: function(a, b, c, d, e) {
  						return e
  					}
  				}), va("border", {
  					defaultValue: "0px solid #000",
  					parser: function(a, b, c, d, f, g) {
  						var h = Y(a, "borderTopWidth", e, !1, "0px"),
  							i = this.format(b).split(" "),
  							j = i[0].replace(u, "");
  						return "px" !== j && (h = parseFloat(h) / Z(a, "borderTopWidth", 1, j) + j), this.parseComplex(a.style, this.format(h + " " + Y(a, "borderTopStyle", e, !1, "solid") + " " + Y(a, "borderTopColor", e, !1, "#000")), i.join(" "), f, g)
  					},
  					color: !0,
  					formatter: function(a) {
  						var b = a.split(" ");
  						return b[0] + " " + (b[1] || "solid") + " " + (a.match(ma) || ["#000"])[0]
  					}
  				}), va("borderWidth", {
  					parser: oa("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
  				}), va("float,cssFloat,styleFloat", {
  					parser: function(a, b, c, d, e, f) {
  						var g = a.style,
  							h = "cssFloat" in g ? "cssFloat" : "styleFloat";
  						return new qa(g, h, 0, 0, e, -1, c, !1, 0, g[h], b)
  					}
  				});
  				var Qa = function(a) {
  					var b, c = this.t,
  						d = c.filter || Y(this.data, "filter") || "",
  						e = this.s + this.c * a | 0;
  					100 === e && (-1 === d.indexOf("atrix(") && -1 === d.indexOf("radient(") && -1 === d.indexOf("oader(") ? (c.removeAttribute("filter"), b = !Y(this.data, "filter")) : (c.filter = d.replace(x, ""), b = !0)), b || (this.xn1 && (c.filter = d = d || "alpha(opacity=" + e + ")"), -1 === d.indexOf("pacity") ? 0 === e && this.xn1 || (c.filter = d + " alpha(opacity=" + e + ")") : c.filter = d.replace(v, "opacity=" + e))
  				};
  				va("opacity,alpha,autoAlpha", {
  					defaultValue: "1",
  					parser: function(a, b, c, d, f, g) {
  						var h = parseFloat(Y(a, "opacity", e, !1, "1")),
  							i = a.style,
  							j = "autoAlpha" === c;
  						return "string" == typeof b && "=" === b.charAt(1) && (b = ("-" === b.charAt(0) ? -1 : 1) * parseFloat(b.substr(2)) + h), j && 1 === h && "hidden" === Y(a, "visibility", e) && 0 !== b && (h = 0), R ? f = new qa(i, "opacity", h, b - h, f) : (f = new qa(i, "opacity", 100 * h, 100 * (b - h), f), f.xn1 = j ? 1 : 0, i.zoom = 1, f.type = 2, f.b = "alpha(opacity=" + f.s + ")", f.e = "alpha(opacity=" + (f.s + f.c) + ")", f.data = a, f.plugin = g, f.setRatio = Qa), j && (f = new qa(i, "visibility", 0, 0, f, -1, null, !1, 0, 0 !== h ? "inherit" : "hidden", 0 === b ? "hidden" : "inherit"), f.xs0 = "inherit", d._overwriteProps.push(f.n), d._overwriteProps.push(c)), f
  					}
  				});
  				var Ra = function(a, b) {
  						b && (a.removeProperty ? (("ms" === b.substr(0, 2) || "webkit" === b.substr(0, 6)) && (b = "-" + b), a.removeProperty(b.replace(z, "-$1").toLowerCase())) : a.removeAttribute(b))
  					},
  					Sa = function(a) {
  						if (this.t._gsClassPT = this, 1 === a || 0 === a) {
  							this.t.setAttribute("class", 0 === a ? this.b : this.e);
  							for (var b = this.data, c = this.t.style; b;) b.v ? c[b.p] = b.v : Ra(c, b.p), b = b._next;
  							1 === a && this.t._gsClassPT === this && (this.t._gsClassPT = null)
  						} else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
  					};
  				va("className", {
  					parser: function(a, b, d, f, g, h, i) {
  						var j, k, l, m, n, o = a.getAttribute("class") || "",
  							p = a.style.cssText;
  						if (g = f._classNamePT = new qa(a, d, 0, 0, g, 2), g.setRatio = Sa, g.pr = -11, c = !0, g.b = o, k = _(a, e), l = a._gsClassPT) {
  							for (m = {}, n = l.data; n;) m[n.p] = 1, n = n._next;
  							l.setRatio(1)
  						}
  						return a._gsClassPT = g, g.e = "=" !== b.charAt(1) ? b : o.replace(new RegExp("(?:\\s|^)" + b.substr(2) + "(?![\\w-])"), "") + ("+" === b.charAt(0) ? " " + b.substr(2) : ""), a.setAttribute("class", g.e), j = aa(a, k, _(a), i, m), a.setAttribute("class", o), g.data = j.firstMPT, a.style.cssText = p, g = g.xfirst = f.parse(a, j.difs, g, h)
  					}
  				});
  				var Ta = function(a) {
  					if ((1 === a || 0 === a) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
  						var b, c, d, e, f, g = this.t.style,
  							h = i.transform.parse;
  						if ("all" === this.e) g.cssText = "", e = !0;
  						else
  							for (b = this.e.split(" ").join("").split(","), d = b.length; --d > -1;) c = b[d], i[c] && (i[c].parse === h ? e = !0 : c = "transformOrigin" === c ? Ba : i[c].p), Ra(g, c);
  						e && (Ra(g, za), f = this.t._gsTransform, f && (f.svg && (this.t.removeAttribute("data-svg-origin"), this.t.removeAttribute("transform")), delete this.t._gsTransform))
  					}
  				};
  				for (va("clearProps", {
  						parser: function(a, b, d, e, f) {
  							return f = new qa(a, d, 0, 0, f, 2), f.setRatio = Ta, f.e = b, f.pr = -10, f.data = e._tween, c = !0, f
  						}
  					}), j = "bezier,throwProps,physicsProps,physics2D".split(","), ta = j.length; ta--;) wa(j[ta]);
  				j = g.prototype, j._firstPT = j._lastParsedTransform = j._transform = null, j._onInitTween = function(a, b, h) {
  					if (!a.nodeType) return !1;
  					this._target = a, this._tween = h, this._vars = b, k = b.autoRound, c = !1, d = b.suffixMap || g.suffixMap, e = X(a, ""), f = this._overwriteProps;
  					var j, n, p, q, r, s, t, u, v, x = a.style;
  					if (l && "" === x.zIndex && (j = Y(a, "zIndex", e), ("auto" === j || "" === j) && this._addLazySet(x, "zIndex", 0)), "string" == typeof b && (q = x.cssText, j = _(a, e), x.cssText = q + ";" + b, j = aa(a, j, _(a)).difs, !R && w.test(b) && (j.opacity = parseFloat(RegExp.$1)), b = j, x.cssText = q), b.className ? this._firstPT = n = i.className.parse(a, b.className, "className", this, null, null, b) : this._firstPT = n = this.parse(a, b, null), this._transformType) {
  						for (v = 3 === this._transformType, za ? m && (l = !0, "" === x.zIndex && (t = Y(a, "zIndex", e), ("auto" === t || "" === t) && this._addLazySet(x, "zIndex", 0)), o && this._addLazySet(x, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (v ? "visible" : "hidden"))) : x.zoom = 1, p = n; p && p._next;) p = p._next;
  						u = new qa(a, "transform", 0, 0, null, 2), this._linkCSSP(u, null, p), u.setRatio = za ? Pa : Oa, u.data = this._transform || Na(a, e, !0), u.tween = h, u.pr = -1, f.pop()
  					}
  					if (c) {
  						for (; n;) {
  							for (s = n._next, p = q; p && p.pr > n.pr;) p = p._next;
  							(n._prev = p ? p._prev : r) ? n._prev._next = n: q = n, (n._next = p) ? p._prev = n : r = n, n = s
  						}
  						this._firstPT = q
  					}
  					return !0
  				}, j.parse = function(a, b, c, f) {
  					var g, h, j, l, m, n, o, p, q, r, s = a.style;
  					for (g in b) n = b[g], h = i[g], h ? c = h.parse(a, n, g, this, c, f, b) : (m = Y(a, g, e) + "", q = "string" == typeof n, "color" === g || "fill" === g || "stroke" === g || -1 !== g.indexOf("Color") || q && y.test(n) ? (q || (n = ka(n), n = (n.length > 3 ? "rgba(" : "rgb(") + n.join(",") + ")"), c = sa(s, g, m, n, !0, "transparent", c, 0, f)) : q && H.test(n) ? c = sa(s, g, m, n, !0, null, c, 0, f) : (j = parseFloat(m), o = j || 0 === j ? m.substr((j + "").length) : "", ("" === m || "auto" === m) && ("width" === g || "height" === g ? (j = da(a, g, e), o = "px") : "left" === g || "top" === g ? (j = $(a, g, e), o = "px") : (j = "opacity" !== g ? 0 : 1, o = "")), r = q && "=" === n.charAt(1), r ? (l = parseInt(n.charAt(0) + "1", 10), n = n.substr(2), l *= parseFloat(n), p = n.replace(u, "")) : (l = parseFloat(n), p = q ? n.replace(u, "") : ""), "" === p && (p = g in d ? d[g] : o), n = l || 0 === l ? (r ? l + j : l) + p : b[g], o !== p && "" !== p && (l || 0 === l) && j && (j = Z(a, g, j, o), "%" === p ? (j /= Z(a, g, 100, "%") / 100, b.strictUnits !== !0 && (m = j + "%")) : "em" === p || "rem" === p || "vw" === p || "vh" === p ? j /= Z(a, g, 1, p) : "px" !== p && (l = Z(a, g, l, p), p = "px"), r && (l || 0 === l) && (n = l + j + p)), r && (l += j), !j && 0 !== j || !l && 0 !== l ? void 0 !== s[g] && (n || n + "" != "NaN" && null != n) ? (c = new qa(s, g, l || j || 0, 0, c, -1, g, !1, 0, m, n), c.xs0 = "none" !== n || "display" !== g && -1 === g.indexOf("Style") ? n : m) : T("invalid " + g + " tween value: " + b[g]) : (c = new qa(s, g, j, l - j, c, 0, g, k !== !1 && ("px" === p || "zIndex" === g), 0, m, n), c.xs0 = p))), f && c && !c.plugin && (c.plugin = f);
  					return c
  				}, j.setRatio = function(a) {
  					var b, c, d, e = this._firstPT,
  						f = 1e-6;
  					if (1 !== a || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
  						if (a || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -1e-6)
  							for (; e;) {
  								if (b = e.c * a + e.s, e.r ? b = Math.round(b) : f > b && b > -f && (b = 0), e.type)
  									if (1 === e.type)
  										if (d = e.l, 2 === d) e.t[e.p] = e.xs0 + b + e.xs1 + e.xn1 + e.xs2;
  										else if (3 === d) e.t[e.p] = e.xs0 + b + e.xs1 + e.xn1 + e.xs2 + e.xn2 + e.xs3;
  								else if (4 === d) e.t[e.p] = e.xs0 + b + e.xs1 + e.xn1 + e.xs2 + e.xn2 + e.xs3 + e.xn3 + e.xs4;
  								else if (5 === d) e.t[e.p] = e.xs0 + b + e.xs1 + e.xn1 + e.xs2 + e.xn2 + e.xs3 + e.xn3 + e.xs4 + e.xn4 + e.xs5;
  								else {
  									for (c = e.xs0 + b + e.xs1, d = 1; d < e.l; d++) c += e["xn" + d] + e["xs" + (d + 1)];
  									e.t[e.p] = c
  								} else -1 === e.type ? e.t[e.p] = e.xs0 : e.setRatio && e.setRatio(a);
  								else e.t[e.p] = b + e.xs0;
  								e = e._next
  							} else
  								for (; e;) 2 !== e.type ? e.t[e.p] = e.b : e.setRatio(a), e = e._next;
  						else
  							for (; e;) {
  								if (2 !== e.type)
  									if (e.r && -1 !== e.type)
  										if (b = Math.round(e.s + e.c), e.type) {
  											if (1 === e.type) {
  												for (d = e.l, c = e.xs0 + b + e.xs1, d = 1; d < e.l; d++) c += e["xn" + d] + e["xs" + (d + 1)];
  												e.t[e.p] = c
  											}
  										} else e.t[e.p] = b + e.xs0;
  								else e.t[e.p] = e.e;
  								else e.setRatio(a);
  								e = e._next
  							}
  				}, j._enableTransforms = function(a) {
  					this._transform = this._transform || Na(this._target, e, !0), this._transformType = this._transform.svg && xa || !a && 3 !== this._transformType ? 2 : 3
  				};
  				var Ua = function(a) {
  					this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0)
  				};
  				j._addLazySet = function(a, b, c) {
  					var d = this._firstPT = new qa(a, b, 0, 0, this._firstPT, 2);
  					d.e = c, d.setRatio = Ua, d.data = this
  				}, j._linkCSSP = function(a, b, c, d) {
  					return a && (b && (b._prev = a), a._next && (a._next._prev = a._prev), a._prev ? a._prev._next = a._next : this._firstPT === a && (this._firstPT = a._next, d = !0), c ? c._next = a : d || null !== this._firstPT || (this._firstPT = a), a._next = b, a._prev = c), a
  				}, j._kill = function(b) {
  					var c, d, e, f = b;
  					if (b.autoAlpha || b.alpha) {
  						f = {};
  						for (d in b) f[d] = b[d];
  						f.opacity = 1, f.autoAlpha && (f.visibility = 1)
  					}
  					return b.className && (c = this._classNamePT) && (e = c.xfirst, e && e._prev ? this._linkCSSP(e._prev, c._next, e._prev._prev) : e === this._firstPT && (this._firstPT = c._next), c._next && this._linkCSSP(c._next, c._next._next, e._prev), this._classNamePT = null), a.prototype._kill.call(this, f)
  				};
  				var Va = function(a, b, c) {
  					var d, e, f, g;
  					if (a.slice)
  						for (e = a.length; --e > -1;) Va(a[e], b, c);
  					else
  						for (d = a.childNodes, e = d.length; --e > -1;) f = d[e], g = f.type, f.style && (b.push(_(f)), c && c.push(f)), 1 !== g && 9 !== g && 11 !== g || !f.childNodes.length || Va(f, b, c)
  				};
  				return g.cascadeTo = function(a, c, d) {
  					var e, f, g, h, i = b.to(a, c, d),
  						j = [i],
  						k = [],
  						l = [],
  						m = [],
  						n = b._internals.reservedProps;
  					for (a = i._targets || i.target, Va(a, k, m), i.render(c, !0, !0), Va(a, l), i.render(0, !0, !0), i._enabled(!0), e = m.length; --e > -1;)
  						if (f = aa(m[e], k[e], l[e]), f.firstMPT) {
  							f = f.difs;
  							for (g in d) n[g] && (f[g] = d[g]);
  							h = {};
  							for (g in f) h[g] = k[e][g];
  							j.push(b.fromTo(m[e], c, h, f))
  						}
  					return j
  				}, a.activate([g]), g
  			}, !0),
  			function() {
  				var a = _gsScope._gsDefine.plugin({
  						propName: "roundProps",
  						version: "1.5",
  						priority: -1,
  						API: 2,
  						init: function(a, b, c) {
  							return this._tween = c, !0
  						}
  					}),
  					b = function(a) {
  						for (; a;) a.f || a.blob || (a.r = 1), a = a._next
  					},
  					c = a.prototype;
  				c._onInitAllProps = function() {
  					for (var a, c, d, e = this._tween, f = e.vars.roundProps.join ? e.vars.roundProps : e.vars.roundProps.split(","), g = f.length, h = {}, i = e._propLookup.roundProps; --g > -1;) h[f[g]] = 1;
  					for (g = f.length; --g > -1;)
  						for (a = f[g], c = e._firstPT; c;) d = c._next, c.pg ? c.t._roundProps(h, !0) : c.n === a && (2 === c.f && c.t ? b(c.t._firstPT) : (this._add(c.t, a, c.s, c.c), d && (d._prev = c._prev), c._prev ? c._prev._next = d : e._firstPT === c && (e._firstPT = d), c._next = c._prev = null, e._propLookup[a] = i)), c = d;
  					return !1
  				}, c._add = function(a, b, c, d) {
  					this._addTween(a, b, c, c + d, b, !0), this._overwriteProps.push(b)
  				}
  			}(),
  			function() {
  				_gsScope._gsDefine.plugin({
  					propName: "attr",
  					API: 2,
  					version: "0.5.0",
  					init: function(a, b, c) {
  						var d;
  						if ("function" != typeof a.setAttribute) return !1;
  						for (d in b) this._addTween(a, "setAttribute", a.getAttribute(d) + "", b[d] + "", d, !1, d), this._overwriteProps.push(d);
  						return !0
  					}
  				})
  			}(), _gsScope._gsDefine.plugin({
  				propName: "directionalRotation",
  				version: "0.2.1",
  				API: 2,
  				init: function(a, b, c) {
  					"object" != typeof b && (b = {
  						rotation: b
  					}), this.finals = {};
  					var d, e, f, g, h, i, j = b.useRadians === !0 ? 2 * Math.PI : 360,
  						k = 1e-6;
  					for (d in b) "useRadians" !== d && (i = (b[d] + "").split("_"), e = i[0], f = parseFloat("function" != typeof a[d] ? a[d] : a[d.indexOf("set") || "function" != typeof a["get" + d.substr(3)] ? d : "get" + d.substr(3)]()), g = this.finals[d] = "string" == typeof e && "=" === e.charAt(1) ? f + parseInt(e.charAt(0) + "1", 10) * Number(e.substr(2)) : Number(e) || 0, h = g - f, i.length && (e = i.join("_"), -1 !== e.indexOf("short") && (h %= j, h !== h % (j / 2) && (h = 0 > h ? h + j : h - j)), -1 !== e.indexOf("_cw") && 0 > h ? h = (h + 9999999999 * j) % j - (h / j | 0) * j : -1 !== e.indexOf("ccw") && h > 0 && (h = (h - 9999999999 * j) % j - (h / j | 0) * j)), (h > k || -k > h) && (this._addTween(a, d, f, f + h, d), this._overwriteProps.push(d)));
  					return !0
  				},
  				set: function(a) {
  					var b;
  					if (1 !== a) this._super.setRatio.call(this, a);
  					else
  						for (b = this._firstPT; b;) b.f ? b.t[b.p](this.finals[b.p]) : b.t[b.p] = this.finals[b.p], b = b._next
  				}
  			})._autoCSS = !0, _gsScope._gsDefine("easing.Back", ["easing.Ease"], function(a) {
  				var b, c, d, e = _gsScope.GreenSockGlobals || _gsScope,
  					f = e.com.greensock,
  					g = 2 * Math.PI,
  					h = Math.PI / 2,
  					i = f._class,
  					j = function(b, c) {
  						var d = i("easing." + b, function() {}, !0),
  							e = d.prototype = new a;
  						return e.constructor = d, e.getRatio = c, d
  					},
  					k = a.register || function() {},
  					l = function(a, b, c, d, e) {
  						var f = i("easing." + a, {
  							easeOut: new b,
  							easeIn: new c,
  							easeInOut: new d
  						}, !0);
  						return k(f, a), f
  					},
  					m = function(a, b, c) {
  						this.t = a, this.v = b, c && (this.next = c, c.prev = this, this.c = c.v - b, this.gap = c.t - a)
  					},
  					n = function(b, c) {
  						var d = i("easing." + b, function(a) {
  								this._p1 = a || 0 === a ? a : 1.70158, this._p2 = 1.525 * this._p1
  							}, !0),
  							e = d.prototype = new a;
  						return e.constructor = d, e.getRatio = c, e.config = function(a) {
  							return new d(a)
  						}, d
  					},
  					o = l("Back", n("BackOut", function(a) {
  						return (a -= 1) * a * ((this._p1 + 1) * a + this._p1) + 1
  					}), n("BackIn", function(a) {
  						return a * a * ((this._p1 + 1) * a - this._p1)
  					}), n("BackInOut", function(a) {
  						return (a *= 2) < 1 ? .5 * a * a * ((this._p2 + 1) * a - this._p2) : .5 * ((a -= 2) * a * ((this._p2 + 1) * a + this._p2) + 2)
  					})),
  					p = i("easing.SlowMo", function(a, b, c) {
  						b = b || 0 === b ? b : .7, null == a ? a = .7 : a > 1 && (a = 1), this._p = 1 !== a ? b : 0, this._p1 = (1 - a) / 2, this._p2 = a, this._p3 = this._p1 + this._p2, this._calcEnd = c === !0
  					}, !0),
  					q = p.prototype = new a;
  				return q.constructor = p, q.getRatio = function(a) {
  					var b = a + (.5 - a) * this._p;
  					return a < this._p1 ? this._calcEnd ? 1 - (a = 1 - a / this._p1) * a : b - (a = 1 - a / this._p1) * a * a * a * b : a > this._p3 ? this._calcEnd ? 1 - (a = (a - this._p3) / this._p1) * a : b + (a - b) * (a = (a - this._p3) / this._p1) * a * a * a : this._calcEnd ? 1 : b
  				}, p.ease = new p(.7, .7), q.config = p.config = function(a, b, c) {
  					return new p(a, b, c)
  				}, b = i("easing.SteppedEase", function(a) {
  					a = a || 1, this._p1 = 1 / a, this._p2 = a + 1
  				}, !0), q = b.prototype = new a, q.constructor = b, q.getRatio = function(a) {
  					return 0 > a ? a = 0 : a >= 1 && (a = .999999999), (this._p2 * a >> 0) * this._p1
  				}, q.config = b.config = function(a) {
  					return new b(a)
  				}, c = i("easing.RoughEase", function(b) {
  					b = b || {};
  					for (var c, d, e, f, g, h, i = b.taper || "none", j = [], k = 0, l = 0 | (b.points || 20), n = l, o = b.randomize !== !1, p = b.clamp === !0, q = b.template instanceof a ? b.template : null, r = "number" == typeof b.strength ? .4 * b.strength : .4; --n > -1;) c = o ? Math.random() : 1 / l * n, d = q ? q.getRatio(c) : c, "none" === i ? e = r : "out" === i ? (f = 1 - c, e = f * f * r) : "in" === i ? e = c * c * r : .5 > c ? (f = 2 * c, e = f * f * .5 * r) : (f = 2 * (1 - c), e = f * f * .5 * r), o ? d += Math.random() * e - .5 * e : n % 2 ? d += .5 * e : d -= .5 * e, p && (d > 1 ? d = 1 : 0 > d && (d = 0)), j[k++] = {
  						x: c,
  						y: d
  					};
  					for (j.sort(function(a, b) {
  							return a.x - b.x
  						}), h = new m(1, 1, null), n = l; --n > -1;) g = j[n], h = new m(g.x, g.y, h);
  					this._prev = new m(0, 0, 0 !== h.t ? h : h.next)
  				}, !0), q = c.prototype = new a, q.constructor = c, q.getRatio = function(a) {
  					var b = this._prev;
  					if (a > b.t) {
  						for (; b.next && a >= b.t;) b = b.next;
  						b = b.prev
  					} else
  						for (; b.prev && a <= b.t;) b = b.prev;
  					return this._prev = b, b.v + (a - b.t) / b.gap * b.c
  				}, q.config = function(a) {
  					return new c(a)
  				}, c.ease = new c, l("Bounce", j("BounceOut", function(a) {
  					return 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + .75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + .9375 : 7.5625 * (a -= 2.625 / 2.75) * a + .984375
  				}), j("BounceIn", function(a) {
  					return (a = 1 - a) < 1 / 2.75 ? 1 - 7.5625 * a * a : 2 / 2.75 > a ? 1 - (7.5625 * (a -= 1.5 / 2.75) * a + .75) : 2.5 / 2.75 > a ? 1 - (7.5625 * (a -= 2.25 / 2.75) * a + .9375) : 1 - (7.5625 * (a -= 2.625 / 2.75) * a + .984375)
  				}), j("BounceInOut", function(a) {
  					var b = .5 > a;
  					return a = b ? 1 - 2 * a : 2 * a - 1, a = 1 / 2.75 > a ? 7.5625 * a * a : 2 / 2.75 > a ? 7.5625 * (a -= 1.5 / 2.75) * a + .75 : 2.5 / 2.75 > a ? 7.5625 * (a -= 2.25 / 2.75) * a + .9375 : 7.5625 * (a -= 2.625 / 2.75) * a + .984375, b ? .5 * (1 - a) : .5 * a + .5
  				})), l("Circ", j("CircOut", function(a) {
  					return Math.sqrt(1 - (a -= 1) * a)
  				}), j("CircIn", function(a) {
  					return -(Math.sqrt(1 - a * a) - 1)
  				}), j("CircInOut", function(a) {
  					return (a *= 2) < 1 ? -.5 * (Math.sqrt(1 - a * a) - 1) : .5 * (Math.sqrt(1 - (a -= 2) * a) + 1)
  				})), d = function(b, c, d) {
  					var e = i("easing." + b, function(a, b) {
  							this._p1 = a >= 1 ? a : 1, this._p2 = (b || d) / (1 > a ? a : 1), this._p3 = this._p2 / g * (Math.asin(1 / this._p1) || 0), this._p2 = g / this._p2
  						}, !0),
  						f = e.prototype = new a;
  					return f.constructor = e, f.getRatio = c, f.config = function(a, b) {
  						return new e(a, b)
  					}, e
  				}, l("Elastic", d("ElasticOut", function(a) {
  					return this._p1 * Math.pow(2, -10 * a) * Math.sin((a - this._p3) * this._p2) + 1
  				}, .3), d("ElasticIn", function(a) {
  					return -(this._p1 * Math.pow(2, 10 * (a -= 1)) * Math.sin((a - this._p3) * this._p2))
  				}, .3), d("ElasticInOut", function(a) {
  					return (a *= 2) < 1 ? -.5 * (this._p1 * Math.pow(2, 10 * (a -= 1)) * Math.sin((a - this._p3) * this._p2)) : this._p1 * Math.pow(2, -10 * (a -= 1)) * Math.sin((a - this._p3) * this._p2) * .5 + 1
  				}, .45)), l("Expo", j("ExpoOut", function(a) {
  					return 1 - Math.pow(2, -10 * a)
  				}), j("ExpoIn", function(a) {
  					return Math.pow(2, 10 * (a - 1)) - .001
  				}), j("ExpoInOut", function(a) {
  					return (a *= 2) < 1 ? .5 * Math.pow(2, 10 * (a - 1)) : .5 * (2 - Math.pow(2, -10 * (a - 1)))
  				})), l("Sine", j("SineOut", function(a) {
  					return Math.sin(a * h)
  				}), j("SineIn", function(a) {
  					return -Math.cos(a * h) + 1
  				}), j("SineInOut", function(a) {
  					return -.5 * (Math.cos(Math.PI * a) - 1)
  				})), i("easing.EaseLookup", {
  					find: function(b) {
  						return a.map[b]
  					}
  				}, !0), k(e.SlowMo, "SlowMo", "ease,"), k(c, "RoughEase", "ease,"), k(b, "SteppedEase", "ease,"), o
  			}, !0)
  	}), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
  	function(a, b) {
  		"use strict";
  		var c = {},
  			d = a.GreenSockGlobals = a.GreenSockGlobals || a;
  		if (!d.TweenLite) {
  			var e, f, g, h, i, j = function(a) {
  					var b, c = a.split("."),
  						e = d;
  					for (b = 0; b < c.length; b++) e[c[b]] = e = e[c[b]] || {};
  					return e
  				},
  				k = j("com.greensock"),
  				l = 1e-10,
  				m = function(a) {
  					var b, c = [],
  						d = a.length;
  					for (b = 0; b !== d; c.push(a[b++]));
  					return c
  				},
  				n = function() {},
  				o = function() {
  					var a = Object.prototype.toString,
  						b = a.call([]);
  					return function(c) {
  						return null != c && (c instanceof Array || "object" == typeof c && !!c.push && a.call(c) === b)
  					}
  				}(),
  				p = {},
  				q = function(e, f, g, h) {
  					this.sc = p[e] ? p[e].sc : [], p[e] = this, this.gsClass = null, this.func = g;
  					var i = [];
  					this.check = function(k) {
  						for (var l, m, n, o, r, s = f.length, t = s; --s > -1;)(l = p[f[s]] || new q(f[s], [])).gsClass ? (i[s] = l.gsClass, t--) : k && l.sc.push(this);
  						if (0 === t && g) {
  							if (m = ("com.greensock." + e).split("."), n = m.pop(), o = j(m.join("."))[n] = this.gsClass = g.apply(g, i), h)
  								if (d[n] = o, r = "undefined" != typeof module && module.exports, !r && "function" == typeof define && define.amd) define((a.GreenSockAMDPath ? a.GreenSockAMDPath + "/" : "") + e.split(".").pop(), [], function() {
  									return o
  								});
  								else if (r)
  								if (e === b) {
  									module.exports = c[b] = o;
  									for (s in c) o[s] = c[s]
  								} else c[b] && (c[b][n] = o);
  							for (s = 0; s < this.sc.length; s++) this.sc[s].check()
  						}
  					}, this.check(!0)
  				},
  				r = a._gsDefine = function(a, b, c, d) {
  					return new q(a, b, c, d)
  				},
  				s = k._class = function(a, b, c) {
  					return b = b || function() {}, r(a, [], function() {
  						return b
  					}, c), b
  				};
  			r.globals = d;
  			var t = [0, 0, 1, 1],
  				u = [],
  				v = s("easing.Ease", function(a, b, c, d) {
  					this._func = a, this._type = c || 0, this._power = d || 0, this._params = b ? t.concat(b) : t
  				}, !0),
  				w = v.map = {},
  				x = v.register = function(a, b, c, d) {
  					for (var e, f, g, h, i = b.split(","), j = i.length, l = (c || "easeIn,easeOut,easeInOut").split(","); --j > -1;)
  						for (f = i[j], e = d ? s("easing." + f, null, !0) : k.easing[f] || {}, g = l.length; --g > -1;) h = l[g], w[f + "." + h] = w[h + f] = e[h] = a.getRatio ? a : a[h] || new a
  				};
  			for (g = v.prototype, g._calcEnd = !1, g.getRatio = function(a) {
  					if (this._func) return this._params[0] = a, this._func.apply(null, this._params);
  					var b = this._type,
  						c = this._power,
  						d = 1 === b ? 1 - a : 2 === b ? a : .5 > a ? 2 * a : 2 * (1 - a);
  					return 1 === c ? d *= d : 2 === c ? d *= d * d : 3 === c ? d *= d * d * d : 4 === c && (d *= d * d * d * d), 1 === b ? 1 - d : 2 === b ? d : .5 > a ? d / 2 : 1 - d / 2
  				}, e = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], f = e.length; --f > -1;) g = e[f] + ",Power" + f, x(new v(null, null, 1, f), g, "easeOut", !0), x(new v(null, null, 2, f), g, "easeIn" + (0 === f ? ",easeNone" : "")), x(new v(null, null, 3, f), g, "easeInOut");
  			w.linear = k.easing.Linear.easeIn, w.swing = k.easing.Quad.easeInOut;
  			var y = s("events.EventDispatcher", function(a) {
  				this._listeners = {}, this._eventTarget = a || this
  			});
  			g = y.prototype, g.addEventListener = function(a, b, c, d, e) {
  				e = e || 0;
  				var f, g, j = this._listeners[a],
  					k = 0;
  				for (this !== h || i || h.wake(), null == j && (this._listeners[a] = j = []), g = j.length; --g > -1;) f = j[g], f.c === b && f.s === c ? j.splice(g, 1) : 0 === k && f.pr < e && (k = g + 1);
  				j.splice(k, 0, {
  					c: b,
  					s: c,
  					up: d,
  					pr: e
  				})
  			}, g.removeEventListener = function(a, b) {
  				var c, d = this._listeners[a];
  				if (d)
  					for (c = d.length; --c > -1;)
  						if (d[c].c === b) return void d.splice(c, 1)
  			}, g.dispatchEvent = function(a) {
  				var b, c, d, e = this._listeners[a];
  				if (e)
  					for (b = e.length, c = this._eventTarget; --b > -1;) d = e[b], d && (d.up ? d.c.call(d.s || c, {
  						type: a,
  						target: c
  					}) : d.c.call(d.s || c))
  			};
  			var z = a.requestAnimationFrame,
  				A = a.cancelAnimationFrame,
  				B = Date.now || function() {
  					return (new Date).getTime()
  				},
  				C = B();
  			for (e = ["ms", "moz", "webkit", "o"], f = e.length; --f > -1 && !z;) z = a[e[f] + "RequestAnimationFrame"], A = a[e[f] + "CancelAnimationFrame"] || a[e[f] + "CancelRequestAnimationFrame"];
  			s("Ticker", function(a, b) {
  				var c, d, e, f, g, j = this,
  					k = B(),
  					m = b !== !1 && z ? "auto" : !1,
  					o = 500,
  					p = 33,
  					q = "tick",
  					r = function(a) {
  						var b, h, i = B() - C;
  						i > o && (k += i - p), C += i, j.time = (C - k) / 1e3, b = j.time - g, (!c || b > 0 || a === !0) && (j.frame++, g += b + (b >= f ? .004 : f - b), h = !0), a !== !0 && (e = d(r)), h && j.dispatchEvent(q)
  					};
  				y.call(j), j.time = j.frame = 0, j.tick = function() {
  					r(!0)
  				}, j.lagSmoothing = function(a, b) {
  					o = a || 1 / l, p = Math.min(b, o, 0)
  				}, j.sleep = function() {
  					null != e && (m && A ? A(e) : clearTimeout(e), d = n, e = null, j === h && (i = !1))
  				}, j.wake = function(a) {
  					null !== e ? j.sleep() : a ? k += -C + (C = B()) : j.frame > 10 && (C = B() - o + 5), d = 0 === c ? n : m && z ? z : function(a) {
  						return setTimeout(a, 1e3 * (g - j.time) + 1 | 0)
  					}, j === h && (i = !0), r(2)
  				}, j.fps = function(a) {
  					return arguments.length ? (c = a, f = 1 / (c || 60), g = this.time + f, void j.wake()) : c
  				}, j.useRAF = function(a) {
  					return arguments.length ? (j.sleep(), m = a, void j.fps(c)) : m
  				}, j.fps(a), setTimeout(function() {
  					"auto" === m && j.frame < 5 && "hidden" !== document.visibilityState && j.useRAF(!1)
  				}, 1500)
  			}), g = k.Ticker.prototype = new k.events.EventDispatcher, g.constructor = k.Ticker;
  			var D = s("core.Animation", function(a, b) {
  				if (this.vars = b = b || {}, this._duration = this._totalDuration = a || 0, this._delay = Number(b.delay) || 0, this._timeScale = 1, this._active = b.immediateRender === !0, this.data = b.data, this._reversed = b.reversed === !0, W) {
  					i || h.wake();
  					var c = this.vars.useFrames ? V : W;
  					c.add(this, c._time), this.vars.paused && this.paused(!0)
  				}
  			});
  			h = D.ticker = new k.Ticker, g = D.prototype, g._dirty = g._gc = g._initted = g._paused = !1, g._totalTime = g._time = 0, g._rawPrevTime = -1, g._next = g._last = g._onUpdate = g._timeline = g.timeline = null, g._paused = !1;
  			var E = function() {
  				i && B() - C > 2e3 && h.wake(), setTimeout(E, 2e3)
  			};
  			E(), g.play = function(a, b) {
  				return null != a && this.seek(a, b), this.reversed(!1).paused(!1)
  			}, g.pause = function(a, b) {
  				return null != a && this.seek(a, b), this.paused(!0)
  			}, g.resume = function(a, b) {
  				return null != a && this.seek(a, b), this.paused(!1)
  			}, g.seek = function(a, b) {
  				return this.totalTime(Number(a), b !== !1)
  			}, g.restart = function(a, b) {
  				return this.reversed(!1).paused(!1).totalTime(a ? -this._delay : 0, b !== !1, !0)
  			}, g.reverse = function(a, b) {
  				return null != a && this.seek(a || this.totalDuration(), b), this.reversed(!0).paused(!1)
  			}, g.render = function(a, b, c) {}, g.invalidate = function() {
  				return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, (this._gc || !this.timeline) && this._enabled(!0), this
  			}, g.isActive = function() {
  				var a, b = this._timeline,
  					c = this._startTime;
  				return !b || !this._gc && !this._paused && b.isActive() && (a = b.rawTime()) >= c && a < c + this.totalDuration() / this._timeScale
  			}, g._enabled = function(a, b) {
  				return i || h.wake(), this._gc = !a, this._active = this.isActive(), b !== !0 && (a && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !a && this.timeline && this._timeline._remove(this, !0)), !1
  			}, g._kill = function(a, b) {
  				return this._enabled(!1, !1)
  			}, g.kill = function(a, b) {
  				return this._kill(a, b), this
  			}, g._uncache = function(a) {
  				for (var b = a ? this : this.timeline; b;) b._dirty = !0, b = b.timeline;
  				return this
  			}, g._swapSelfInParams = function(a) {
  				for (var b = a.length, c = a.concat(); --b > -1;) "{self}" === a[b] && (c[b] = this);
  				return c
  			}, g._callback = function(a) {
  				var b = this.vars;
  				b[a].apply(b[a + "Scope"] || b.callbackScope || this, b[a + "Params"] || u)
  			}, g.eventCallback = function(a, b, c, d) {
  				if ("on" === (a || "").substr(0, 2)) {
  					var e = this.vars;
  					if (1 === arguments.length) return e[a];
  					null == b ? delete e[a] : (e[a] = b, e[a + "Params"] = o(c) && -1 !== c.join("").indexOf("{self}") ? this._swapSelfInParams(c) : c, e[a + "Scope"] = d), "onUpdate" === a && (this._onUpdate = b)
  				}
  				return this
  			}, g.delay = function(a) {
  				return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + a - this._delay), this._delay = a, this) : this._delay
  			}, g.duration = function(a) {
  				return arguments.length ? (this._duration = this._totalDuration = a, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== a && this.totalTime(this._totalTime * (a / this._duration), !0), this) : (this._dirty = !1, this._duration)
  			}, g.totalDuration = function(a) {
  				return this._dirty = !1, arguments.length ? this.duration(a) : this._totalDuration
  			}, g.time = function(a, b) {
  				return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(a > this._duration ? this._duration : a, b)) : this._time
  			}, g.totalTime = function(a, b, c) {
  				if (i || h.wake(), !arguments.length) return this._totalTime;
  				if (this._timeline) {
  					if (0 > a && !c && (a += this.totalDuration()), this._timeline.smoothChildTiming) {
  						this._dirty && this.totalDuration();
  						var d = this._totalDuration,
  							e = this._timeline;
  						if (a > d && !c && (a = d), this._startTime = (this._paused ? this._pauseTime : e._time) - (this._reversed ? d - a : a) / this._timeScale, e._dirty || this._uncache(!1), e._timeline)
  							for (; e._timeline;) e._timeline._time !== (e._startTime + e._totalTime) / e._timeScale && e.totalTime(e._totalTime, !0), e = e._timeline
  					}
  					this._gc && this._enabled(!0, !1), (this._totalTime !== a || 0 === this._duration) && (J.length && Y(), this.render(a, b, !1), J.length && Y())
  				}
  				return this
  			}, g.progress = g.totalProgress = function(a, b) {
  				var c = this.duration();
  				return arguments.length ? this.totalTime(c * a, b) : c ? this._time / c : this.ratio
  			}, g.startTime = function(a) {
  				return arguments.length ? (a !== this._startTime && (this._startTime = a, this.timeline && this.timeline._sortChildren && this.timeline.add(this, a - this._delay)), this) : this._startTime
  			}, g.endTime = function(a) {
  				return this._startTime + (0 != a ? this.totalDuration() : this.duration()) / this._timeScale
  			}, g.timeScale = function(a) {
  				if (!arguments.length) return this._timeScale;
  				if (a = a || l, this._timeline && this._timeline.smoothChildTiming) {
  					var b = this._pauseTime,
  						c = b || 0 === b ? b : this._timeline.totalTime();
  					this._startTime = c - (c - this._startTime) * this._timeScale / a
  				}
  				return this._timeScale = a, this._uncache(!1)
  			}, g.reversed = function(a) {
  				return arguments.length ? (a != this._reversed && (this._reversed = a, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
  			}, g.paused = function(a) {
  				if (!arguments.length) return this._paused;
  				var b, c, d = this._timeline;
  				return a != this._paused && d && (i || a || h.wake(), b = d.rawTime(), c = b - this._pauseTime, !a && d.smoothChildTiming && (this._startTime += c, this._uncache(!1)), this._pauseTime = a ? b : null, this._paused = a, this._active = this.isActive(), !a && 0 !== c && this._initted && this.duration() && (b = d.smoothChildTiming ? this._totalTime : (b - this._startTime) / this._timeScale, this.render(b, b === this._totalTime, !0))), this._gc && !a && this._enabled(!0, !1), this
  			};
  			var F = s("core.SimpleTimeline", function(a) {
  				D.call(this, 0, a), this.autoRemoveChildren = this.smoothChildTiming = !0
  			});
  			g = F.prototype = new D, g.constructor = F, g.kill()._gc = !1, g._first = g._last = g._recent = null, g._sortChildren = !1, g.add = g.insert = function(a, b, c, d) {
  				var e, f;
  				if (a._startTime = Number(b || 0) + a._delay, a._paused && this !== a._timeline && (a._pauseTime = a._startTime + (this.rawTime() - a._startTime) / a._timeScale), a.timeline && a.timeline._remove(a, !0), a.timeline = a._timeline = this, a._gc && a._enabled(!0, !0), e = this._last, this._sortChildren)
  					for (f = a._startTime; e && e._startTime > f;) e = e._prev;
  				return e ? (a._next = e._next, e._next = a) : (a._next = this._first, this._first = a), a._next ? a._next._prev = a : this._last = a, a._prev = e, this._recent = a, this._timeline && this._uncache(!0), this
  			}, g._remove = function(a, b) {
  				return a.timeline === this && (b || a._enabled(!1, !0), a._prev ? a._prev._next = a._next : this._first === a && (this._first = a._next), a._next ? a._next._prev = a._prev : this._last === a && (this._last = a._prev), a._next = a._prev = a.timeline = null, a === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
  			}, g.render = function(a, b, c) {
  				var d, e = this._first;
  				for (this._totalTime = this._time = this._rawPrevTime = a; e;) d = e._next, (e._active || a >= e._startTime && !e._paused) && (e._reversed ? e.render((e._dirty ? e.totalDuration() : e._totalDuration) - (a - e._startTime) * e._timeScale, b, c) : e.render((a - e._startTime) * e._timeScale, b, c)), e = d
  			}, g.rawTime = function() {
  				return i || h.wake(), this._totalTime
  			};
  			var G = s("TweenLite", function(b, c, d) {
  					if (D.call(this, c, d), this.render = G.prototype.render, null == b) throw "Cannot tween a null target.";
  					this.target = b = "string" != typeof b ? b : G.selector(b) || b;
  					var e, f, g, h = b.jquery || b.length && b !== a && b[0] && (b[0] === a || b[0].nodeType && b[0].style && !b.nodeType),
  						i = this.vars.overwrite;
  					if (this._overwrite = i = null == i ? U[G.defaultOverwrite] : "number" == typeof i ? i >> 0 : U[i], (h || b instanceof Array || b.push && o(b)) && "number" != typeof b[0])
  						for (this._targets = g = m(b), this._propLookup = [], this._siblings = [], e = 0; e < g.length; e++) f = g[e], f ? "string" != typeof f ? f.length && f !== a && f[0] && (f[0] === a || f[0].nodeType && f[0].style && !f.nodeType) ? (g.splice(e--, 1), this._targets = g = g.concat(m(f))) : (this._siblings[e] = Z(f, this, !1), 1 === i && this._siblings[e].length > 1 && _(f, this, null, 1, this._siblings[e])) : (f = g[e--] = G.selector(f), "string" == typeof f && g.splice(e + 1, 1)) : g.splice(e--, 1);
  					else this._propLookup = {}, this._siblings = Z(b, this, !1), 1 === i && this._siblings.length > 1 && _(b, this, null, 1, this._siblings);
  					(this.vars.immediateRender || 0 === c && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -l, this.render(Math.min(0, -this._delay)))
  				}, !0),
  				H = function(b) {
  					return b && b.length && b !== a && b[0] && (b[0] === a || b[0].nodeType && b[0].style && !b.nodeType)
  				},
  				I = function(a, b) {
  					var c, d = {};
  					for (c in a) T[c] || c in b && "transform" !== c && "x" !== c && "y" !== c && "width" !== c && "height" !== c && "className" !== c && "border" !== c || !(!Q[c] || Q[c] && Q[c]._autoCSS) || (d[c] = a[c], delete a[c]);
  					a.css = d
  				};
  			g = G.prototype = new D, g.constructor = G, g.kill()._gc = !1, g.ratio = 0, g._firstPT = g._targets = g._overwrittenProps = g._startAt = null, g._notifyPluginsOfEnabled = g._lazy = !1, G.version = "1.18.5", G.defaultEase = g._ease = new v(null, null, 1, 1), G.defaultOverwrite = "auto", G.ticker = h, G.autoSleep = 120, G.lagSmoothing = function(a, b) {
  				h.lagSmoothing(a, b)
  			}, G.selector = a.$ || a.jQuery || function(b) {
  				var c = a.$ || a.jQuery;
  				return c ? (G.selector = c, c(b)) : "undefined" == typeof document ? b : document.querySelectorAll ? document.querySelectorAll(b) : document.getElementById("#" === b.charAt(0) ? b.substr(1) : b)
  			};
  			var J = [],
  				K = {},
  				L = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
  				M = function(a) {
  					for (var b, c = this._firstPT, d = 1e-6; c;) b = c.blob ? a ? this.join("") : this.start : c.c * a + c.s, c.r ? b = Math.round(b) : d > b && b > -d && (b = 0), c.f ? c.fp ? c.t[c.p](c.fp, b) : c.t[c.p](b) : c.t[c.p] = b, c = c._next
  				},
  				N = function(a, b, c, d) {
  					var e, f, g, h, i, j, k, l = [a, b],
  						m = 0,
  						n = "",
  						o = 0;
  					for (l.start = a, c && (c(l), a = l[0], b = l[1]), l.length = 0, e = a.match(L) || [], f = b.match(L) || [], d && (d._next = null, d.blob = 1, l._firstPT = d), i = f.length, h = 0; i > h; h++) k = f[h], j = b.substr(m, b.indexOf(k, m) - m), n += j || !h ? j : ",", m += j.length, o ? o = (o + 1) % 5 : "rgba(" === j.substr(-5) && (o = 1), k === e[h] || e.length <= h ? n += k : (n && (l.push(n), n = ""), g = parseFloat(e[h]), l.push(g), l._firstPT = {
  						_next: l._firstPT,
  						t: l,
  						p: l.length - 1,
  						s: g,
  						c: ("=" === k.charAt(1) ? parseInt(k.charAt(0) + "1", 10) * parseFloat(k.substr(2)) : parseFloat(k) - g) || 0,
  						f: 0,
  						r: o && 4 > o
  					}), m += k.length;
  					return n += b.substr(m), n && l.push(n), l.setRatio = M, l
  				},
  				O = function(a, b, c, d, e, f, g, h) {
  					var i, j, k = "get" === c ? a[b] : c,
  						l = typeof a[b],
  						m = "string" == typeof d && "=" === d.charAt(1),
  						n = {
  							t: a,
  							p: b,
  							s: k,
  							f: "function" === l,
  							pg: 0,
  							n: e || b,
  							r: f,
  							pr: 0,
  							c: m ? parseInt(d.charAt(0) + "1", 10) * parseFloat(d.substr(2)) : parseFloat(d) - k || 0
  						};
  					return "number" !== l && ("function" === l && "get" === c && (j = b.indexOf("set") || "function" != typeof a["get" + b.substr(3)] ? b : "get" + b.substr(3), n.s = k = g ? a[j](g) : a[j]()), "string" == typeof k && (g || isNaN(k)) ? (n.fp = g, i = N(k, d, h || G.defaultStringFilter, n), n = {
  						t: i,
  						p: "setRatio",
  						s: 0,
  						c: 1,
  						f: 2,
  						pg: 0,
  						n: e || b,
  						pr: 0
  					}) : m || (n.s = parseFloat(k), n.c = parseFloat(d) - n.s || 0)), n.c ? ((n._next = this._firstPT) && (n._next._prev = n), this._firstPT = n, n) : void 0
  				},
  				P = G._internals = {
  					isArray: o,
  					isSelector: H,
  					lazyTweens: J,
  					blobDif: N
  				},
  				Q = G._plugins = {},
  				R = P.tweenLookup = {},
  				S = 0,
  				T = P.reservedProps = {
  					ease: 1,
  					delay: 1,
  					overwrite: 1,
  					onComplete: 1,
  					onCompleteParams: 1,
  					onCompleteScope: 1,
  					useFrames: 1,
  					runBackwards: 1,
  					startAt: 1,
  					onUpdate: 1,
  					onUpdateParams: 1,
  					onUpdateScope: 1,
  					onStart: 1,
  					onStartParams: 1,
  					onStartScope: 1,
  					onReverseComplete: 1,
  					onReverseCompleteParams: 1,
  					onReverseCompleteScope: 1,
  					onRepeat: 1,
  					onRepeatParams: 1,
  					onRepeatScope: 1,
  					easeParams: 1,
  					yoyo: 1,
  					immediateRender: 1,
  					repeat: 1,
  					repeatDelay: 1,
  					data: 1,
  					paused: 1,
  					reversed: 1,
  					autoCSS: 1,
  					lazy: 1,
  					onOverwrite: 1,
  					callbackScope: 1,
  					stringFilter: 1,
  					id: 1
  				},
  				U = {
  					none: 0,
  					all: 1,
  					auto: 2,
  					concurrent: 3,
  					allOnStart: 4,
  					preexisting: 5,
  					"true": 1,
  					"false": 0
  				},
  				V = D._rootFramesTimeline = new F,
  				W = D._rootTimeline = new F,
  				X = 30,
  				Y = P.lazyRender = function() {
  					var a, b = J.length;
  					for (K = {}; --b > -1;) a = J[b], a && a._lazy !== !1 && (a.render(a._lazy[0], a._lazy[1], !0), a._lazy = !1);
  					J.length = 0
  				};
  			W._startTime = h.time, V._startTime = h.frame, W._active = V._active = !0, setTimeout(Y, 1), D._updateRoot = G.render = function() {
  				var a, b, c;
  				if (J.length && Y(), W.render((h.time - W._startTime) * W._timeScale, !1, !1), V.render((h.frame - V._startTime) * V._timeScale, !1, !1), J.length && Y(), h.frame >= X) {
  					X = h.frame + (parseInt(G.autoSleep, 10) || 120);
  					for (c in R) {
  						for (b = R[c].tweens, a = b.length; --a > -1;) b[a]._gc && b.splice(a, 1);
  						0 === b.length && delete R[c]
  					}
  					if (c = W._first, (!c || c._paused) && G.autoSleep && !V._first && 1 === h._listeners.tick.length) {
  						for (; c && c._paused;) c = c._next;
  						c || h.sleep()
  					}
  				}
  			}, h.addEventListener("tick", D._updateRoot);
  			var Z = function(a, b, c) {
  					var d, e, f = a._gsTweenID;
  					if (R[f || (a._gsTweenID = f = "t" + S++)] || (R[f] = {
  							target: a,
  							tweens: []
  						}), b && (d = R[f].tweens, d[e = d.length] = b, c))
  						for (; --e > -1;) d[e] === b && d.splice(e, 1);
  					return R[f].tweens
  				},
  				$ = function(a, b, c, d) {
  					var e, f, g = a.vars.onOverwrite;
  					return g && (e = g(a, b, c, d)), g = G.onOverwrite, g && (f = g(a, b, c, d)), e !== !1 && f !== !1
  				},
  				_ = function(a, b, c, d, e) {
  					var f, g, h, i;
  					if (1 === d || d >= 4) {
  						for (i = e.length, f = 0; i > f; f++)
  							if ((h = e[f]) !== b) h._gc || h._kill(null, a, b) && (g = !0);
  							else if (5 === d) break;
  						return g
  					}
  					var j, k = b._startTime + l,
  						m = [],
  						n = 0,
  						o = 0 === b._duration;
  					for (f = e.length; --f > -1;)(h = e[f]) === b || h._gc || h._paused || (h._timeline !== b._timeline ? (j = j || aa(b, 0, o), 0 === aa(h, j, o) && (m[n++] = h)) : h._startTime <= k && h._startTime + h.totalDuration() / h._timeScale > k && ((o || !h._initted) && k - h._startTime <= 2e-10 || (m[n++] = h)));
  					for (f = n; --f > -1;)
  						if (h = m[f], 2 === d && h._kill(c, a, b) && (g = !0), 2 !== d || !h._firstPT && h._initted) {
  							if (2 !== d && !$(h, b)) continue;
  							h._enabled(!1, !1) && (g = !0)
  						}
  					return g
  				},
  				aa = function(a, b, c) {
  					for (var d = a._timeline, e = d._timeScale, f = a._startTime; d._timeline;) {
  						if (f += d._startTime, e *= d._timeScale, d._paused) return -100;
  						d = d._timeline
  					}
  					return f /= e, f > b ? f - b : c && f === b || !a._initted && 2 * l > f - b ? l : (f += a.totalDuration() / a._timeScale / e) > b + l ? 0 : f - b - l
  				};
  			g._init = function() {
  				var a, b, c, d, e, f = this.vars,
  					g = this._overwrittenProps,
  					h = this._duration,
  					i = !!f.immediateRender,
  					j = f.ease;
  				if (f.startAt) {
  					this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), e = {};
  					for (d in f.startAt) e[d] = f.startAt[d];
  					if (e.overwrite = !1, e.immediateRender = !0, e.lazy = i && f.lazy !== !1, e.startAt = e.delay = null, this._startAt = G.to(this.target, 0, e), i)
  						if (this._time > 0) this._startAt = null;
  						else if (0 !== h) return
  				} else if (f.runBackwards && 0 !== h)
  					if (this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;
  					else {
  						0 !== this._time && (i = !1), c = {};
  						for (d in f) T[d] && "autoCSS" !== d || (c[d] = f[d]);
  						if (c.overwrite = 0, c.data = "isFromStart", c.lazy = i && f.lazy !== !1, c.immediateRender = i, this._startAt = G.to(this.target, 0, c), i) {
  							if (0 === this._time) return
  						} else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
  					}
  				if (this._ease = j = j ? j instanceof v ? j : "function" == typeof j ? new v(j, f.easeParams) : w[j] || G.defaultEase : G.defaultEase, f.easeParams instanceof Array && j.config && (this._ease = j.config.apply(j, f.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
  					for (a = this._targets.length; --a > -1;) this._initProps(this._targets[a], this._propLookup[a] = {}, this._siblings[a], g ? g[a] : null) && (b = !0);
  				else b = this._initProps(this.target, this._propLookup, this._siblings, g);
  				if (b && G._onPluginEvent("_onInitAllProps", this), g && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), f.runBackwards)
  					for (c = this._firstPT; c;) c.s += c.c, c.c = -c.c, c = c._next;
  				this._onUpdate = f.onUpdate, this._initted = !0
  			}, g._initProps = function(b, c, d, e) {
  				var f, g, h, i, j, k;
  				if (null == b) return !1;
  				K[b._gsTweenID] && Y(), this.vars.css || b.style && b !== a && b.nodeType && Q.css && this.vars.autoCSS !== !1 && I(this.vars, b);
  				for (f in this.vars)
  					if (k = this.vars[f], T[f]) k && (k instanceof Array || k.push && o(k)) && -1 !== k.join("").indexOf("{self}") && (this.vars[f] = k = this._swapSelfInParams(k, this));
  					else if (Q[f] && (i = new Q[f])._onInitTween(b, this.vars[f], this)) {
  					for (this._firstPT = j = {
  							_next: this._firstPT,
  							t: i,
  							p: "setRatio",
  							s: 0,
  							c: 1,
  							f: 1,
  							n: f,
  							pg: 1,
  							pr: i._priority
  						}, g = i._overwriteProps.length; --g > -1;) c[i._overwriteProps[g]] = this._firstPT;
  					(i._priority || i._onInitAllProps) && (h = !0), (i._onDisable || i._onEnable) && (this._notifyPluginsOfEnabled = !0), j._next && (j._next._prev = j)
  				} else c[f] = O.call(this, b, f, "get", k, f, 0, null, this.vars.stringFilter);
  				return e && this._kill(e, b) ? this._initProps(b, c, d, e) : this._overwrite > 1 && this._firstPT && d.length > 1 && _(b, this, c, this._overwrite, d) ? (this._kill(c, b), this._initProps(b, c, d, e)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (K[b._gsTweenID] = !0), h)
  			}, g.render = function(a, b, c) {
  				var d, e, f, g, h = this._time,
  					i = this._duration,
  					j = this._rawPrevTime;
  				if (a >= i - 1e-7) this._totalTime = this._time = i, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (d = !0, e = "onComplete", c = c || this._timeline.autoRemoveChildren), 0 === i && (this._initted || !this.vars.lazy || c) && (this._startTime === this._timeline._duration && (a = 0), (0 > j || 0 >= a && a >= -1e-7 || j === l && "isPause" !== this.data) && j !== a && (c = !0, j > l && (e = "onReverseComplete")), this._rawPrevTime = g = !b || a || j === a ? a : l);
  				else if (1e-7 > a) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== h || 0 === i && j > 0) && (e = "onReverseComplete", d = this._reversed), 0 > a && (this._active = !1, 0 === i && (this._initted || !this.vars.lazy || c) && (j >= 0 && (j !== l || "isPause" !== this.data) && (c = !0), this._rawPrevTime = g = !b || a || j === a ? a : l)), this._initted || (c = !0);
  				else if (this._totalTime = this._time = a, this._easeType) {
  					var k = a / i,
  						m = this._easeType,
  						n = this._easePower;
  					(1 === m || 3 === m && k >= .5) && (k = 1 - k), 3 === m && (k *= 2), 1 === n ? k *= k : 2 === n ? k *= k * k : 3 === n ? k *= k * k * k : 4 === n && (k *= k * k * k * k), 1 === m ? this.ratio = 1 - k : 2 === m ? this.ratio = k : .5 > a / i ? this.ratio = k / 2 : this.ratio = 1 - k / 2
  				} else this.ratio = this._ease.getRatio(a / i);
  				if (this._time !== h || c) {
  					if (!this._initted) {
  						if (this._init(), !this._initted || this._gc) return;
  						if (!c && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = h, this._rawPrevTime = j, J.push(this), void(this._lazy = [a, b]);
  						this._time && !d ? this.ratio = this._ease.getRatio(this._time / i) : d && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
  					}
  					for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== h && a >= 0 && (this._active = !0), 0 === h && (this._startAt && (a >= 0 ? this._startAt.render(a, b, c) : e || (e = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === i) && (b || this._callback("onStart"))), f = this._firstPT; f;) f.f ? f.t[f.p](f.c * this.ratio + f.s) : f.t[f.p] = f.c * this.ratio + f.s, f = f._next;
  					this._onUpdate && (0 > a && this._startAt && a !== -1e-4 && this._startAt.render(a, b, c), b || (this._time !== h || d || c) && this._callback("onUpdate")), e && (!this._gc || c) && (0 > a && this._startAt && !this._onUpdate && a !== -1e-4 && this._startAt.render(a, b, c), d && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !b && this.vars[e] && this._callback(e), 0 === i && this._rawPrevTime === l && g !== l && (this._rawPrevTime = 0))
  				}
  			}, g._kill = function(a, b, c) {
  				if ("all" === a && (a = null), null == a && (null == b || b === this.target)) return this._lazy = !1, this._enabled(!1, !1);
  				b = "string" != typeof b ? b || this._targets || this.target : G.selector(b) || b;
  				var d, e, f, g, h, i, j, k, l, m = c && this._time && c._startTime === this._startTime && this._timeline === c._timeline;
  				if ((o(b) || H(b)) && "number" != typeof b[0])
  					for (d = b.length; --d > -1;) this._kill(a, b[d], c) && (i = !0);
  				else {
  					if (this._targets) {
  						for (d = this._targets.length; --d > -1;)
  							if (b === this._targets[d]) {
  								h = this._propLookup[d] || {}, this._overwrittenProps = this._overwrittenProps || [], e = this._overwrittenProps[d] = a ? this._overwrittenProps[d] || {} : "all";
  								break
  							}
  					} else {
  						if (b !== this.target) return !1;
  						h = this._propLookup, e = this._overwrittenProps = a ? this._overwrittenProps || {} : "all"
  					}
  					if (h) {
  						if (j = a || h, k = a !== e && "all" !== e && a !== h && ("object" != typeof a || !a._tempKill), c && (G.onOverwrite || this.vars.onOverwrite)) {
  							for (f in j) h[f] && (l || (l = []), l.push(f));
  							if ((l || !a) && !$(this, c, b, l)) return !1
  						}
  						for (f in j)(g = h[f]) && (m && (g.f ? g.t[g.p](g.s) : g.t[g.p] = g.s, i = !0), g.pg && g.t._kill(j) && (i = !0), g.pg && 0 !== g.t._overwriteProps.length || (g._prev ? g._prev._next = g._next : g === this._firstPT && (this._firstPT = g._next), g._next && (g._next._prev = g._prev), g._next = g._prev = null), delete h[f]), k && (e[f] = 1);
  						!this._firstPT && this._initted && this._enabled(!1, !1)
  					}
  				}
  				return i
  			}, g.invalidate = function() {
  				return this._notifyPluginsOfEnabled && G._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], D.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -l, this.render(Math.min(0, -this._delay))), this
  			}, g._enabled = function(a, b) {
  				if (i || h.wake(), a && this._gc) {
  					var c, d = this._targets;
  					if (d)
  						for (c = d.length; --c > -1;) this._siblings[c] = Z(d[c], this, !0);
  					else this._siblings = Z(this.target, this, !0)
  				}
  				return D.prototype._enabled.call(this, a, b), this._notifyPluginsOfEnabled && this._firstPT ? G._onPluginEvent(a ? "_onEnable" : "_onDisable", this) : !1
  			}, G.to = function(a, b, c) {
  				return new G(a, b, c)
  			}, G.from = function(a, b, c) {
  				return c.runBackwards = !0, c.immediateRender = 0 != c.immediateRender, new G(a, b, c)
  			}, G.fromTo = function(a, b, c, d) {
  				return d.startAt = c, d.immediateRender = 0 != d.immediateRender && 0 != c.immediateRender, new G(a, b, d)
  			}, G.delayedCall = function(a, b, c, d, e) {
  				return new G(b, 0, {
  					delay: a,
  					onComplete: b,
  					onCompleteParams: c,
  					callbackScope: d,
  					onReverseComplete: b,
  					onReverseCompleteParams: c,
  					immediateRender: !1,
  					lazy: !1,
  					useFrames: e,
  					overwrite: 0
  				})
  			}, G.set = function(a, b) {
  				return new G(a, 0, b)
  			}, G.getTweensOf = function(a, b) {
  				if (null == a) return [];
  				a = "string" != typeof a ? a : G.selector(a) || a;
  				var c, d, e, f;
  				if ((o(a) || H(a)) && "number" != typeof a[0]) {
  					for (c = a.length, d = []; --c > -1;) d = d.concat(G.getTweensOf(a[c], b));
  					for (c = d.length; --c > -1;)
  						for (f = d[c], e = c; --e > -1;) f === d[e] && d.splice(c, 1)
  				} else
  					for (d = Z(a).concat(), c = d.length; --c > -1;)(d[c]._gc || b && !d[c].isActive()) && d.splice(c, 1);
  				return d
  			}, G.killTweensOf = G.killDelayedCallsTo = function(a, b, c) {
  				"object" == typeof b && (c = b, b = !1);
  				for (var d = G.getTweensOf(a, b), e = d.length; --e > -1;) d[e]._kill(c, a)
  			};
  			var ba = s("plugins.TweenPlugin", function(a, b) {
  				this._overwriteProps = (a || "").split(","), this._propName = this._overwriteProps[0], this._priority = b || 0, this._super = ba.prototype
  			}, !0);
  			if (g = ba.prototype, ba.version = "1.18.0", ba.API = 2, g._firstPT = null, g._addTween = O, g.setRatio = M, g._kill = function(a) {
  					var b, c = this._overwriteProps,
  						d = this._firstPT;
  					if (null != a[this._propName]) this._overwriteProps = [];
  					else
  						for (b = c.length; --b > -1;) null != a[c[b]] && c.splice(b, 1);
  					for (; d;) null != a[d.n] && (d._next && (d._next._prev = d._prev), d._prev ? (d._prev._next = d._next, d._prev = null) : this._firstPT === d && (this._firstPT = d._next)), d = d._next;
  					return !1
  				}, g._roundProps = function(a, b) {
  					for (var c = this._firstPT; c;)(a[this._propName] || null != c.n && a[c.n.split(this._propName + "_").join("")]) && (c.r = b), c = c._next
  				}, G._onPluginEvent = function(a, b) {
  					var c, d, e, f, g, h = b._firstPT;
  					if ("_onInitAllProps" === a) {
  						for (; h;) {
  							for (g = h._next, d = e; d && d.pr > h.pr;) d = d._next;
  							(h._prev = d ? d._prev : f) ? h._prev._next = h: e = h, (h._next = d) ? d._prev = h : f = h, h = g
  						}
  						h = b._firstPT = e
  					}
  					for (; h;) h.pg && "function" == typeof h.t[a] && h.t[a]() && (c = !0), h = h._next;
  					return c
  				}, ba.activate = function(a) {
  					for (var b = a.length; --b > -1;) a[b].API === ba.API && (Q[(new a[b])._propName] = a[b]);
  					return !0
  				}, r.plugin = function(a) {
  					if (!(a && a.propName && a.init && a.API)) throw "illegal plugin definition.";
  					var b, c = a.propName,
  						d = a.priority || 0,
  						e = a.overwriteProps,
  						f = {
  							init: "_onInitTween",
  							set: "setRatio",
  							kill: "_kill",
  							round: "_roundProps",
  							initAll: "_onInitAllProps"
  						},
  						g = s("plugins." + c.charAt(0).toUpperCase() + c.substr(1) + "Plugin", function() {
  							ba.call(this, c, d), this._overwriteProps = e || []
  						}, a.global === !0),
  						h = g.prototype = new ba(c);
  					h.constructor = g, g.API = a.API;
  					for (b in f) "function" == typeof a[b] && (h[f[b]] = a[b]);
  					return g.version = a.version, ba.activate([g]), g
  				}, e = a._gsQueue) {
  				for (f = 0; f < e.length; f++) e[f]();
  				for (g in p) p[g].func || a.console.log("GSAP encountered missing dependency: com.greensock." + g)
  			}
  			i = !1
  		}
  	}("undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window, "TweenMax"), ! function(a, b) {
  		"function" == typeof define && define.amd ? define(b) : "object" == typeof exports ? module.exports = b() : a.ScrollMagic = b()
  	}(this, function() {
  		"use strict";
  		var a = function() {};
  		a.version = "2.0.5", window.addEventListener("mousewheel", function() {});
  		var b = "data-scrollmagic-pin-spacer";
  		a.Controller = function(d) {
  			var f, g, h = "ScrollMagic.Controller",
  				i = "FORWARD",
  				j = "REVERSE",
  				k = "PAUSED",
  				l = c.defaults,
  				m = this,
  				n = e.extend({}, l, d),
  				o = [],
  				p = !1,
  				q = 0,
  				r = k,
  				s = !0,
  				t = 0,
  				u = !0,
  				v = function() {
  					for (var a in n) l.hasOwnProperty(a) || delete n[a];
  					if (n.container = e.get.elements(n.container)[0], !n.container) throw h + " init failed.";
  					s = n.container === window || n.container === document.body || !document.body.contains(n.container), s && (n.container = window), t = y(), n.container.addEventListener("resize", C), n.container.addEventListener("scroll", C), n.refreshInterval = parseInt(n.refreshInterval) || l.refreshInterval, w()
  				},
  				w = function() {
  					n.refreshInterval > 0 && (g = window.setTimeout(D, n.refreshInterval))
  				},
  				x = function() {
  					return n.vertical ? e.get.scrollTop(n.container) : e.get.scrollLeft(n.container)
  				},
  				y = function() {
  					return n.vertical ? e.get.height(n.container) : e.get.width(n.container)
  				},
  				z = this._setScrollPos = function(a) {
  					n.vertical ? s ? window.scrollTo(e.get.scrollLeft(), a) : n.container.scrollTop = a : s ? window.scrollTo(a, e.get.scrollTop()) : n.container.scrollLeft = a
  				},
  				A = function() {
  					if (u && p) {
  						var a = e.type.Array(p) ? p : o.slice(0);
  						p = !1;
  						var b = q;
  						q = m.scrollPos();
  						var c = q - b;
  						0 !== c && (r = c > 0 ? i : j), r === j && a.reverse(), a.forEach(function(a) {
  							a.update(!0)
  						})
  					}
  				},
  				B = function() {
  					f = e.rAF(A)
  				},
  				C = function(a) {
  					"resize" == a.type && (t = y(), r = k), p !== !0 && (p = !0, B())
  				},
  				D = function() {
  					if (!s && t != y()) {
  						var a;
  						try {
  							a = new Event("resize", {
  								bubbles: !1,
  								cancelable: !1
  							})
  						} catch (b) {
  							a = document.createEvent("Event"), a.initEvent("resize", !1, !1)
  						}
  						n.container.dispatchEvent(a)
  					}
  					o.forEach(function(a) {
  						a.refresh()
  					}), w()
  				};
  			this._options = n;
  			var E = function(a) {
  				if (a.length <= 1) return a;
  				var b = a.slice(0);
  				return b.sort(function(a, b) {
  					return a.scrollOffset() > b.scrollOffset() ? 1 : -1
  				}), b
  			};
  			return this.addScene = function(b) {
  				if (e.type.Array(b)) b.forEach(function(a) {
  					m.addScene(a)
  				});
  				else if (b instanceof a.Scene)
  					if (b.controller() !== m) b.addTo(m);
  					else if (o.indexOf(b) < 0) {
  					o.push(b), o = E(o), b.on("shift.controller_sort", function() {
  						o = E(o)
  					});
  					for (var c in n.globalSceneOptions) b[c] && b[c].call(b, n.globalSceneOptions[c])
  				}
  				return m
  			}, this.removeScene = function(a) {
  				if (e.type.Array(a)) a.forEach(function(a) {
  					m.removeScene(a)
  				});
  				else {
  					var b = o.indexOf(a);
  					b > -1 && (a.off("shift.controller_sort"), o.splice(b, 1), a.remove())
  				}
  				return m
  			}, this.updateScene = function(b, c) {
  				return e.type.Array(b) ? b.forEach(function(a) {
  					m.updateScene(a, c)
  				}) : c ? b.update(!0) : p !== !0 && b instanceof a.Scene && (p = p || [], -1 == p.indexOf(b) && p.push(b), p = E(p), B()), m
  			}, this.update = function(a) {
  				return C({
  					type: "resize"
  				}), a && A(), m
  			}, this.scrollTo = function(c, d) {
  				if (e.type.Number(c)) z.call(n.container, c, d);
  				else if (c instanceof a.Scene) c.controller() === m && m.scrollTo(c.scrollOffset(), d);
  				else if (e.type.Function(c)) z = c;
  				else {
  					var f = e.get.elements(c)[0];
  					if (f) {
  						for (; f.parentNode.hasAttribute(b);) f = f.parentNode;
  						var g = n.vertical ? "top" : "left",
  							h = e.get.offset(n.container),
  							i = e.get.offset(f);
  						s || (h[g] -= m.scrollPos()), m.scrollTo(i[g] - h[g], d)
  					}
  				}
  				return m
  			}, this.scrollPos = function(a) {
  				return arguments.length ? (e.type.Function(a) && (x = a), m) : x.call(m)
  			}, this.info = function(a) {
  				var b = {
  					size: t,
  					vertical: n.vertical,
  					scrollPos: q,
  					scrollDirection: r,
  					container: n.container,
  					isDocument: s
  				};
  				return arguments.length ? void 0 !== b[a] ? b[a] : void 0 : b
  			}, this.loglevel = function() {
  				return m
  			}, this.enabled = function(a) {
  				return arguments.length ? (u != a && (u = !!a, m.updateScene(o, !0)), m) : u
  			}, this.destroy = function(a) {
  				window.clearTimeout(g);
  				for (var b = o.length; b--;) o[b].destroy(a);
  				return n.container.removeEventListener("resize", C), n.container.removeEventListener("scroll", C), e.cAF(f), null
  			}, v(), m
  		};
  		var c = {
  			defaults: {
  				container: window,
  				vertical: !0,
  				globalSceneOptions: {},
  				loglevel: 2,
  				refreshInterval: 100
  			}
  		};
  		a.Controller.addOption = function(a, b) {
  			c.defaults[a] = b
  		}, a.Controller.extend = function(b) {
  			var c = this;
  			a.Controller = function() {
  				return c.apply(this, arguments), this.$super = e.extend({}, this), b.apply(this, arguments) || this
  			}, e.extend(a.Controller, c), a.Controller.prototype = c.prototype, a.Controller.prototype.constructor = a.Controller
  		}, a.Scene = function(c) {
  			var f, g, h = "BEFORE",
  				i = "DURING",
  				j = "AFTER",
  				k = d.defaults,
  				l = this,
  				m = e.extend({}, k, c),
  				n = h,
  				o = 0,
  				p = {
  					start: 0,
  					end: 0
  				},
  				q = 0,
  				r = !0,
  				s = function() {
  					for (var a in m) k.hasOwnProperty(a) || delete m[a];
  					for (var b in k) B(b);
  					z()
  				},
  				t = {};
  			this.on = function(a, b) {
  				return e.type.Function(b) && (a = a.trim().split(" "), a.forEach(function(a) {
  					var c = a.split("."),
  						d = c[0],
  						e = c[1];
  					"*" != d && (t[d] || (t[d] = []), t[d].push({
  						namespace: e || "",
  						callback: b
  					}))
  				})), l
  			}, this.off = function(a, b) {
  				return a ? (a = a.trim().split(" "), a.forEach(function(a) {
  					var c = a.split("."),
  						d = c[0],
  						e = c[1] || "",
  						f = "*" === d ? Object.keys(t) : [d];
  					f.forEach(function(a) {
  						for (var c = t[a] || [], d = c.length; d--;) {
  							var f = c[d];
  							!f || e !== f.namespace && "*" !== e || b && b != f.callback || c.splice(d, 1)
  						}
  						c.length || delete t[a]
  					})
  				}), l) : l
  			}, this.trigger = function(b, c) {
  				if (b) {
  					var d = b.trim().split("."),
  						e = d[0],
  						f = d[1],
  						g = t[e];
  					g && g.forEach(function(b) {
  						f && f !== b.namespace || b.callback.call(l, new a.Event(e, b.namespace, l, c))
  					})
  				}
  				return l
  			}, l.on("change.internal", function(a) {
  				"loglevel" !== a.what && "tweenChanges" !== a.what && ("triggerElement" === a.what ? w() : "reverse" === a.what && l.update())
  			}).on("shift.internal", function() {
  				u(), l.update()
  			}), this.addTo = function(b) {
  				return b instanceof a.Controller && g != b && (g && g.removeScene(l), g = b, z(), v(!0), w(!0), u(), g.info("container").addEventListener("resize", x), b.addScene(l), l.trigger("add", {
  					controller: g
  				}), l.update()), l
  			}, this.enabled = function(a) {
  				return arguments.length ? (r != a && (r = !!a, l.update(!0)), l) : r
  			}, this.remove = function() {
  				if (g) {
  					g.info("container").removeEventListener("resize", x);
  					var a = g;
  					g = void 0, a.removeScene(l), l.trigger("remove")
  				}
  				return l
  			}, this.destroy = function(a) {
  				return l.trigger("destroy", {
  					reset: a
  				}), l.remove(), l.off("*.*"), null
  			}, this.update = function(a) {
  				if (g)
  					if (a)
  						if (g.enabled() && r) {
  							var b, c = g.info("scrollPos");
  							b = m.duration > 0 ? (c - p.start) / (p.end - p.start) : c >= p.start ? 1 : 0, l.trigger("update", {
  								startPos: p.start,
  								endPos: p.end,
  								scrollPos: c
  							}), l.progress(b)
  						} else C && n === i && E(!0);
  				else g.updateScene(l, !1);
  				return l
  			}, this.refresh = function() {
  				return v(), w(), l
  			}, this.progress = function(a) {
  				if (arguments.length) {
  					var b = !1,
  						c = n,
  						d = g ? g.info("scrollDirection") : "PAUSED",
  						e = m.reverse || a >= o;
  					if (0 === m.duration ? (b = o != a, o = 1 > a && e ? 0 : 1, n = 0 === o ? h : i) : 0 > a && n !== h && e ? (o = 0, n = h, b = !0) : a >= 0 && 1 > a && e ? (o = a, n = i, b = !0) : a >= 1 && n !== j ? (o = 1, n = j, b = !0) : n !== i || e || E(), b) {
  						var f = {
  								progress: o,
  								state: n,
  								scrollDirection: d
  							},
  							k = n != c,
  							p = function(a) {
  								l.trigger(a, f)
  							};
  						k && c !== i && (p("enter"), p(c === h ? "start" : "end")), p("progress"), k && n !== i && (p(n === h ? "start" : "end"), p("leave"))
  					}
  					return l
  				}
  				return o
  			};
  			var u = function() {
  					p = {
  						start: q + m.offset
  					}, g && m.triggerElement && (p.start -= g.info("size") * m.triggerHook), p.end = p.start + m.duration
  				},
  				v = function(a) {
  					if (f) {
  						var b = "duration";
  						A(b, f.call(l)) && !a && (l.trigger("change", {
  							what: b,
  							newval: m[b]
  						}), l.trigger("shift", {
  							reason: b
  						}))
  					}
  				},
  				w = function(a) {
  					var c = 0,
  						d = m.triggerElement;
  					if (g && d) {
  						for (var f = g.info(), h = e.get.offset(f.container), i = f.vertical ? "top" : "left"; d.parentNode.hasAttribute(b);) d = d.parentNode;
  						var j = e.get.offset(d);
  						f.isDocument || (h[i] -= g.scrollPos()), c = j[i] - h[i]
  					}
  					var k = c != q;
  					q = c, k && !a && l.trigger("shift", {
  						reason: "triggerElementPosition"
  					})
  				},
  				x = function() {
  					m.triggerHook > 0 && l.trigger("shift", {
  						reason: "containerResize"
  					})
  				},
  				y = e.extend(d.validate, {
  					duration: function(a) {
  						if (e.type.String(a) && a.match(/^(\.|\d)*\d+%$/)) {
  							var b = parseFloat(a) / 100;
  							a = function() {
  								return g ? g.info("size") * b : 0
  							}
  						}
  						if (e.type.Function(a)) {
  							f = a;
  							try {
  								a = parseFloat(f())
  							} catch (c) {
  								a = -1
  							}
  						}
  						if (a = parseFloat(a), !e.type.Number(a) || 0 > a) throw f ? (f = void 0, 0) : 0;
  						return a
  					}
  				}),
  				z = function(a) {
  					a = arguments.length ? [a] : Object.keys(y), a.forEach(function(a) {
  						var b;
  						if (y[a]) try {
  							b = y[a](m[a])
  						} catch (c) {
  							b = k[a]
  						} finally {
  							m[a] = b
  						}
  					});
  				},
  				A = function(a, b) {
  					var c = !1,
  						d = m[a];
  					return m[a] != b && (m[a] = b, z(a), c = d != m[a]), c
  				},
  				B = function(a) {
  					l[a] || (l[a] = function(b) {
  						return arguments.length ? ("duration" === a && (f = void 0), A(a, b) && (l.trigger("change", {
  							what: a,
  							newval: m[a]
  						}), d.shifts.indexOf(a) > -1 && l.trigger("shift", {
  							reason: a
  						})), l) : m[a]
  					})
  				};
  			this.controller = function() {
  				return g
  			}, this.state = function() {
  				return n
  			}, this.scrollOffset = function() {
  				return p.start
  			}, this.triggerPosition = function() {
  				var a = m.offset;
  				return g && (a += m.triggerElement ? q : g.info("size") * l.triggerHook()), a
  			};
  			var C, D;
  			l.on("shift.internal", function(a) {
  				var b = "duration" === a.reason;
  				(n === j && b || n === i && 0 === m.duration) && E(), b && F()
  			}).on("progress.internal", function() {
  				E()
  			}).on("add.internal", function() {
  				F()
  			}).on("destroy.internal", function(a) {
  				l.removePin(a.reset)
  			});
  			var E = function(a) {
  					if (C && g) {
  						var b = g.info(),
  							c = D.spacer.firstChild;
  						if (a || n !== i) {
  							var d = {
  									position: D.inFlow ? "relative" : "absolute",
  									top: 0,
  									left: 0
  								},
  								f = e.css(c, "position") != d.position;
  							D.pushFollowers ? m.duration > 0 && (n === j && 0 === parseFloat(e.css(D.spacer, "padding-top")) ? f = !0 : n === h && 0 === parseFloat(e.css(D.spacer, "padding-bottom")) && (f = !0)) : d[b.vertical ? "top" : "left"] = m.duration * o, e.css(c, d), f && F()
  						} else {
  							"fixed" != e.css(c, "position") && (e.css(c, {
  								position: "fixed"
  							}), F());
  							var k = e.get.offset(D.spacer, !0),
  								l = m.reverse || 0 === m.duration ? b.scrollPos - p.start : Math.round(o * m.duration * 10) / 10;
  							k[b.vertical ? "top" : "left"] += l, e.css(D.spacer.firstChild, {
  								top: k.top,
  								left: k.left
  							})
  						}
  					}
  				},
  				F = function() {
  					if (C && g && D.inFlow) {
  						var a = n === i,
  							b = g.info("vertical"),
  							c = D.spacer.firstChild,
  							d = e.isMarginCollapseType(e.css(D.spacer, "display")),
  							f = {};
  						D.relSize.width || D.relSize.autoFullWidth ? a ? e.css(C, {
  							width: e.get.width(D.spacer)
  						}) : e.css(C, {
  							width: "100%"
  						}) : (f["min-width"] = e.get.width(b ? C : c, !0, !0), f.width = a ? f["min-width"] : "auto"), D.relSize.height ? a ? e.css(C, {
  							height: e.get.height(D.spacer) - (D.pushFollowers ? m.duration : 0)
  						}) : e.css(C, {
  							height: "100%"
  						}) : (f["min-height"] = e.get.height(b ? c : C, !0, !d), f.height = a ? f["min-height"] : "auto"), D.pushFollowers && (f["padding" + (b ? "Top" : "Left")] = m.duration * o, f["padding" + (b ? "Bottom" : "Right")] = m.duration * (1 - o)), e.css(D.spacer, f)
  					}
  				},
  				G = function() {
  					g && C && n === i && !g.info("isDocument") && E()
  				},
  				H = function() {
  					g && C && n === i && ((D.relSize.width || D.relSize.autoFullWidth) && e.get.width(window) != e.get.width(D.spacer.parentNode) || D.relSize.height && e.get.height(window) != e.get.height(D.spacer.parentNode)) && F()
  				},
  				I = function(a) {
  					g && C && n === i && !g.info("isDocument") && (a.preventDefault(), g._setScrollPos(g.info("scrollPos") - ((a.wheelDelta || a[g.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || 30 * -a.detail)))
  				};
  			this.setPin = function(a, c) {
  				var d = {
  					pushFollowers: !0,
  					spacerClass: "scrollmagic-pin-spacer"
  				};
  				if (c = e.extend({}, d, c), a = e.get.elements(a)[0], !a) return l;
  				if ("fixed" === e.css(a, "position")) return l;
  				if (C) {
  					if (C === a) return l;
  					l.removePin()
  				}
  				C = a;
  				var f = C.parentNode.style.display,
  					g = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];
  				C.parentNode.style.display = "none";
  				var h = "absolute" != e.css(C, "position"),
  					i = e.css(C, g.concat(["display"])),
  					j = e.css(C, ["width", "height"]);
  				C.parentNode.style.display = f, !h && c.pushFollowers && (c.pushFollowers = !1);
  				var k = C.parentNode.insertBefore(document.createElement("div"), C),
  					m = e.extend(i, {
  						position: h ? "relative" : "absolute",
  						boxSizing: "content-box",
  						mozBoxSizing: "content-box",
  						webkitBoxSizing: "content-box"
  					});
  				if (h || e.extend(m, e.css(C, ["width", "height"])), e.css(k, m), k.setAttribute(b, ""), e.addClass(k, c.spacerClass), D = {
  						spacer: k,
  						relSize: {
  							width: "%" === j.width.slice(-1),
  							height: "%" === j.height.slice(-1),
  							autoFullWidth: "auto" === j.width && h && e.isMarginCollapseType(i.display)
  						},
  						pushFollowers: c.pushFollowers,
  						inFlow: h
  					}, !C.___origStyle) {
  					C.___origStyle = {};
  					var n = C.style,
  						o = g.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]);
  					o.forEach(function(a) {
  						C.___origStyle[a] = n[a] || ""
  					})
  				}
  				return D.relSize.width && e.css(k, {
  					width: j.width
  				}), D.relSize.height && e.css(k, {
  					height: j.height
  				}), k.appendChild(C), e.css(C, {
  					position: h ? "relative" : "absolute",
  					margin: "auto",
  					top: "auto",
  					left: "auto",
  					bottom: "auto",
  					right: "auto"
  				}), (D.relSize.width || D.relSize.autoFullWidth) && e.css(C, {
  					boxSizing: "border-box",
  					mozBoxSizing: "border-box",
  					webkitBoxSizing: "border-box"
  				}), window.addEventListener("scroll", G), window.addEventListener("resize", G), window.addEventListener("resize", H), C.addEventListener("mousewheel", I), C.addEventListener("DOMMouseScroll", I), E(), l
  			}, this.removePin = function(a) {
  				if (C) {
  					if (n === i && E(!0), a || !g) {
  						var c = D.spacer.firstChild;
  						if (c.hasAttribute(b)) {
  							var d = D.spacer.style,
  								f = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];
  							margins = {}, f.forEach(function(a) {
  								margins[a] = d[a] || ""
  							}), e.css(c, margins)
  						}
  						D.spacer.parentNode.insertBefore(c, D.spacer), D.spacer.parentNode.removeChild(D.spacer), C.parentNode.hasAttribute(b) || (e.css(C, C.___origStyle), delete C.___origStyle)
  					}
  					window.removeEventListener("scroll", G), window.removeEventListener("resize", G), window.removeEventListener("resize", H), C.removeEventListener("mousewheel", I), C.removeEventListener("DOMMouseScroll", I), C = void 0
  				}
  				return l
  			};
  			var J, K = [];
  			return l.on("destroy.internal", function(a) {
  				l.removeClassToggle(a.reset)
  			}), this.setClassToggle = function(a, b) {
  				var c = e.get.elements(a);
  				return 0 !== c.length && e.type.String(b) ? (K.length > 0 && l.removeClassToggle(), J = b, K = c, l.on("enter.internal_class leave.internal_class", function(a) {
  					var b = "enter" === a.type ? e.addClass : e.removeClass;
  					K.forEach(function(a) {
  						b(a, J)
  					})
  				}), l) : l
  			}, this.removeClassToggle = function(a) {
  				return a && K.forEach(function(a) {
  					e.removeClass(a, J)
  				}), l.off("start.internal_class end.internal_class"), J = void 0, K = [], l
  			}, s(), l
  		};
  		var d = {
  			defaults: {
  				duration: 0,
  				offset: 0,
  				triggerElement: void 0,
  				triggerHook: .5,
  				reverse: !0,
  				loglevel: 2
  			},
  			validate: {
  				offset: function(a) {
  					if (a = parseFloat(a), !e.type.Number(a)) throw 0;
  					return a
  				},
  				triggerElement: function(a) {
  					if (a = a || void 0) {
  						var b = e.get.elements(a)[0];
  						if (!b) throw 0;
  						a = b
  					}
  					return a
  				},
  				triggerHook: function(a) {
  					var b = {
  						onCenter: .5,
  						onEnter: 1,
  						onLeave: 0
  					};
  					if (e.type.Number(a)) a = Math.max(0, Math.min(parseFloat(a), 1));
  					else {
  						if (!(a in b)) throw 0;
  						a = b[a]
  					}
  					return a
  				},
  				reverse: function(a) {
  					return !!a
  				}
  			},
  			shifts: ["duration", "offset", "triggerHook"]
  		};
  		a.Scene.addOption = function(a, b, c, e) {
  			a in d.defaults || (d.defaults[a] = b, d.validate[a] = c, e && d.shifts.push(a))
  		}, a.Scene.extend = function(b) {
  			var c = this;
  			a.Scene = function() {
  				return c.apply(this, arguments), this.$super = e.extend({}, this), b.apply(this, arguments) || this
  			}, e.extend(a.Scene, c), a.Scene.prototype = c.prototype, a.Scene.prototype.constructor = a.Scene
  		}, a.Event = function(a, b, c, d) {
  			d = d || {};
  			for (var e in d) this[e] = d[e];
  			return this.type = a, this.target = this.currentTarget = c, this.namespace = b || "", this.timeStamp = this.timestamp = Date.now(), this
  		};
  		var e = a._util = function(a) {
  			var b, c = {},
  				d = function(a) {
  					return parseFloat(a) || 0
  				},
  				e = function(b) {
  					return b.currentStyle ? b.currentStyle : a.getComputedStyle(b)
  				},
  				f = function(b, c, f, g) {
  					if (c = c === document ? a : c, c === a) g = !1;
  					else if (!l.DomElement(c)) return 0;
  					b = b.charAt(0).toUpperCase() + b.substr(1).toLowerCase();
  					var h = (f ? c["offset" + b] || c["outer" + b] : c["client" + b] || c["inner" + b]) || 0;
  					if (f && g) {
  						var i = e(c);
  						h += "Height" === b ? d(i.marginTop) + d(i.marginBottom) : d(i.marginLeft) + d(i.marginRight)
  					}
  					return h
  				},
  				g = function(a) {
  					return a.replace(/^[^a-z]+([a-z])/g, "$1").replace(/-([a-z])/g, function(a) {
  						return a[1].toUpperCase()
  					})
  				};
  			c.extend = function(a) {
  				for (a = a || {}, b = 1; b < arguments.length; b++)
  					if (arguments[b])
  						for (var c in arguments[b]) arguments[b].hasOwnProperty(c) && (a[c] = arguments[b][c]);
  				return a
  			}, c.isMarginCollapseType = function(a) {
  				return ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(a) > -1
  			};
  			var h = 0,
  				i = ["ms", "moz", "webkit", "o"],
  				j = a.requestAnimationFrame,
  				k = a.cancelAnimationFrame;
  			for (b = 0; !j && b < i.length; ++b) j = a[i[b] + "RequestAnimationFrame"], k = a[i[b] + "CancelAnimationFrame"] || a[i[b] + "CancelRequestAnimationFrame"];
  			j || (j = function(b) {
  				var c = (new Date).getTime(),
  					d = Math.max(0, 16 - (c - h)),
  					e = a.setTimeout(function() {
  						b(c + d)
  					}, d);
  				return h = c + d, e
  			}), k || (k = function(b) {
  				a.clearTimeout(b)
  			}), c.rAF = j.bind(a), c.cAF = k.bind(a);
  			var l = c.type = function(a) {
  				return Object.prototype.toString.call(a).replace(/^\[object (.+)\]$/, "$1").toLowerCase()
  			};
  			l.String = function(a) {
  				return "string" === l(a)
  			}, l.Function = function(a) {
  				return "function" === l(a)
  			}, l.Array = function(a) {
  				return Array.isArray(a)
  			}, l.Number = function(a) {
  				return !l.Array(a) && a - parseFloat(a) + 1 >= 0
  			}, l.DomElement = function(a) {
  				return "object" == typeof HTMLElement ? a instanceof HTMLElement : a && "object" == typeof a && null !== a && 1 === a.nodeType && "string" == typeof a.nodeName
  			};
  			var m = c.get = {};
  			return m.elements = function(b) {
  				var c = [];
  				if (l.String(b)) try {
  					b = document.querySelectorAll(b)
  				} catch (d) {
  					return c
  				}
  				if ("nodelist" === l(b) || l.Array(b))
  					for (var e = 0, f = c.length = b.length; f > e; e++) {
  						var g = b[e];
  						c[e] = l.DomElement(g) ? g : m.elements(g)
  					} else(l.DomElement(b) || b === document || b === a) && (c = [b]);
  				return c
  			}, m.scrollTop = function(b) {
  				return b && "number" == typeof b.scrollTop ? b.scrollTop : a.pageYOffset || 0
  			}, m.scrollLeft = function(b) {
  				return b && "number" == typeof b.scrollLeft ? b.scrollLeft : a.pageXOffset || 0
  			}, m.width = function(a, b, c) {
  				return f("width", a, b, c)
  			}, m.height = function(a, b, c) {
  				return f("height", a, b, c)
  			}, m.offset = function(a, b) {
  				var c = {
  					top: 0,
  					left: 0
  				};
  				if (a && a.getBoundingClientRect) {
  					var d = a.getBoundingClientRect();
  					c.top = d.top, c.left = d.left, b || (c.top += m.scrollTop(), c.left += m.scrollLeft())
  				}
  				return c
  			}, c.addClass = function(a, b) {
  				b && (a.classList ? a.classList.add(b) : a.className += " " + b)
  			}, c.removeClass = function(a, b) {
  				b && (a.classList ? a.classList.remove(b) : a.className = a.className.replace(RegExp("(^|\\b)" + b.split(" ").join("|") + "(\\b|$)", "gi"), " "))
  			}, c.css = function(a, b) {
  				if (l.String(b)) return e(a)[g(b)];
  				if (l.Array(b)) {
  					var c = {},
  						d = e(a);
  					return b.forEach(function(a) {
  						c[a] = d[g(a)]
  					}), c
  				}
  				for (var f in b) {
  					var h = b[f];
  					h == parseFloat(h) && (h += "px"), a.style[g(f)] = h
  				}
  			}, c
  		}(window || {});
  		return a
  	}), ! function(a, b) {
  		"function" == typeof define && define.amd ? define(["ScrollMagic", "TweenMax", "TimelineMax"], b) : "object" == typeof exports ? (require("gsap"), b(require("scrollmagic"), TweenMax, TimelineMax)) : b(a.ScrollMagic || a.jQuery && a.jQuery.ScrollMagic, a.TweenMax || a.TweenLite, a.TimelineMax || a.TimelineLite)
  	}(this, function(a, b, c) {
  		"use strict";
  		a.Scene.addOption("tweenChanges", !1, function(a) {
  			return !!a
  		}), a.Scene.extend(function() {
  			var a, d = this;
  			d.on("progress.plugin_gsap", function() {
  				e()
  			}), d.on("destroy.plugin_gsap", function(a) {
  				d.removeTween(a.reset)
  			});
  			var e = function() {
  				if (a) {
  					var b = d.progress(),
  						c = d.state();
  					a.repeat && -1 === a.repeat() ? "DURING" === c && a.paused() ? a.play() : "DURING" === c || a.paused() || a.pause() : b != a.progress() && (0 === d.duration() ? b > 0 ? a.play() : a.reverse() : d.tweenChanges() && a.tweenTo ? a.tweenTo(b * a.duration()) : a.progress(b).pause())
  				}
  			};
  			d.setTween = function(f, g, h) {
  				var i;
  				arguments.length > 1 && (arguments.length < 3 && (h = g, g = 1), f = b.to(f, g, h));
  				try {
  					i = c ? new c({
  						smoothChildTiming: !0
  					}).add(f) : f, i.pause()
  				} catch (j) {
  					return d
  				}
  				return a && d.removeTween(), a = i, f.repeat && -1 === f.repeat() && (a.repeat(-1), a.yoyo(f.yoyo())), e(), d
  			}, d.removeTween = function(b) {
  				return a && (b && a.progress(0).pause(), a.kill(), a = void 0), d
  			}
  		})
  	}), "object" != typeof JSON && (JSON = {}),
  	function() {
  		"use strict";
  
  		function f(a) {
  			return 10 > a ? "0" + a : a
  		}
  
  		function quote(a) {
  			return escapable.lastIndex = 0, escapable.test(a) ? '"' + a.replace(escapable, function(a) {
  				var b = meta[a];
  				return "string" == typeof b ? b : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
  			}) + '"' : '"' + a + '"'
  		}
  
  		function str(a, b) {
  			var c, d, e, f, g, h = gap,
  				i = b[a];
  			switch (i && "object" == typeof i && "function" == typeof i.toJSON && (i = i.toJSON(a)), "function" == typeof rep && (i = rep.call(b, a, i)), typeof i) {
  				case "string":
  					return quote(i);
  				case "number":
  					return isFinite(i) ? String(i) : "null";
  				case "boolean":
  				case "null":
  					return String(i);
  				case "object":
  					if (!i) return "null";
  					if (gap += indent, g = [], "[object Array]" === Object.prototype.toString.apply(i)) {
  						for (f = i.length, c = 0; f > c; c += 1) g[c] = str(c, i) || "null";
  						return e = 0 === g.length ? "[]" : gap ? "[\n" + gap + g.join(",\n" + gap) + "\n" + h + "]" : "[" + g.join(",") + "]", gap = h, e
  					}
  					if (rep && "object" == typeof rep)
  						for (f = rep.length, c = 0; f > c; c += 1) "string" == typeof rep[c] && (d = rep[c], e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
  					else
  						for (d in i) Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && g.push(quote(d) + (gap ? ": " : ":") + e));
  					return e = 0 === g.length ? "{}" : gap ? "{\n" + gap + g.join(",\n" + gap) + "\n" + h + "}" : "{" + g.join(",") + "}", gap = h, e
  			}
  		}
  		"function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function(a) {
  			return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null
  		}, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function(a) {
  			return this.valueOf()
  		});
  		var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
  			escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
  			gap, indent, meta = {
  				"\b": "\\b",
  				"	": "\\t",
  				"\n": "\\n",
  				"\f": "\\f",
  				"\r": "\\r",
  				'"': '\\"',
  				"\\": "\\\\"
  			},
  			rep;
  		"function" != typeof JSON.stringify && (JSON.stringify = function(a, b, c) {
  			var d;
  			if (gap = "", indent = "", "number" == typeof c)
  				for (d = 0; c > d; d += 1) indent += " ";
  			else "string" == typeof c && (indent = c);
  			if (rep = b, !b || "function" == typeof b || "object" == typeof b && "number" == typeof b.length) return str("", {
  				"": a
  			});
  			throw new Error("JSON.stringify")
  		}), "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) {
  			function walk(a, b) {
  				var c, d, e = a[b];
  				if (e && "object" == typeof e)
  					for (c in e) Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), void 0 !== d ? e[c] = d : delete e[c]);
  				return reviver.call(a, b, e)
  			}
  			var j;
  			if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(a) {
  					return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
  				})), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({
  				"": j
  			}, "") : j;
  			throw new SyntaxError("JSON.parse")
  		})
  	}(),
  	function(a, b) {
  		"use strict";
  		var c = a.History = a.History || {},
  			d = a.jQuery;
  		if ("undefined" != typeof c.Adapter) throw new Error("History.js Adapter has already been loaded...");
  		c.Adapter = {
  			bind: function(a, b, c) {
  				d(a).bind(b, c)
  			},
  			trigger: function(a, b, c) {
  				d(a).trigger(b, c)
  			},
  			extractEventData: function(a, c, d) {
  				var e = c && c.originalEvent && c.originalEvent[a] || d && d[a] || b;
  				return e
  			},
  			onDomLoad: function(a) {
  				d(a)
  			}
  		}, "undefined" != typeof c.init && c.init()
  	}(window),
  	function(a, b) {
  		"use strict";
  		var c = a.document,
  			d = a.setTimeout || d,
  			e = a.clearTimeout || e,
  			f = a.setInterval || f,
  			g = a.History = a.History || {};
  		if ("undefined" != typeof g.initHtml4) throw new Error("History.js HTML4 Support has already been loaded...");
  		g.initHtml4 = function() {
  			return "undefined" != typeof g.initHtml4.initialized ? !1 : (g.initHtml4.initialized = !0, g.enabled = !0, g.savedHashes = [], g.isLastHash = function(a) {
  				var b, c = g.getHashByIndex();
  				return b = a === c
  			}, g.isHashEqual = function(a, b) {
  				return a = encodeURIComponent(a).replace(/%25/g, "%"), b = encodeURIComponent(b).replace(/%25/g, "%"), a === b
  			}, g.saveHash = function(a) {
  				return g.isLastHash(a) ? !1 : (g.savedHashes.push(a), !0)
  			}, g.getHashByIndex = function(a) {
  				var b = null;
  				return b = "undefined" == typeof a ? g.savedHashes[g.savedHashes.length - 1] : 0 > a ? g.savedHashes[g.savedHashes.length + a] : g.savedHashes[a]
  			}, g.discardedHashes = {}, g.discardedStates = {}, g.discardState = function(a, b, c) {
  				var d, e = g.getHashByState(a);
  				return d = {
  					discardedState: a,
  					backState: c,
  					forwardState: b
  				}, g.discardedStates[e] = d, !0
  			}, g.discardHash = function(a, b, c) {
  				var d = {
  					discardedHash: a,
  					backState: c,
  					forwardState: b
  				};
  				return g.discardedHashes[a] = d, !0
  			}, g.discardedState = function(a) {
  				var b, c = g.getHashByState(a);
  				return b = g.discardedStates[c] || !1
  			}, g.discardedHash = function(a) {
  				var b = g.discardedHashes[a] || !1;
  				return b
  			}, g.recycleState = function(a) {
  				var b = g.getHashByState(a);
  				return g.discardedState(a) && delete g.discardedStates[b], !0
  			}, g.emulated.hashChange && (g.hashChangeInit = function() {
  				g.checkerFunction = null;
  				var b, d, e, h, i = "",
  					j = Boolean(g.getHash());
  				return g.isInternetExplorer() ? (b = "historyjs-iframe", d = c.createElement("iframe"), d.setAttribute("id", b), d.setAttribute("src", "#"), d.style.display = "none", c.body.appendChild(d), d.contentWindow.document.open(), d.contentWindow.document.close(), e = "", h = !1, g.checkerFunction = function() {
  					if (h) return !1;
  					h = !0;
  					var b = g.getHash(),
  						c = g.getHash(d.contentWindow.document);
  					return b !== i ? (i = b, c !== b && (e = c = b, d.contentWindow.document.open(), d.contentWindow.document.close(), d.contentWindow.document.location.hash = g.escapeHash(b)), g.Adapter.trigger(a, "hashchange")) : c !== e && (e = c, j && "" === c ? g.back() : g.setHash(c, !1)), h = !1, !0
  				}) : g.checkerFunction = function() {
  					var b = g.getHash() || "";
  					return b !== i && (i = b, g.Adapter.trigger(a, "hashchange")), !0
  				}, g.intervalList.push(f(g.checkerFunction, g.options.hashChangeInterval)), !0
  			}, g.Adapter.onDomLoad(g.hashChangeInit)), g.emulated.pushState && (g.onHashChange = function(b) {
  				var c, d = b && b.newURL || g.getLocationHref(),
  					e = g.getHashByUrl(d),
  					f = null,
  					h = null;
  				return g.isLastHash(e) ? (g.busy(!1), !1) : (g.doubleCheckComplete(), g.saveHash(e), e && g.isTraditionalAnchor(e) ? (g.Adapter.trigger(a, "anchorchange"), g.busy(!1), !1) : (f = g.extractState(g.getFullUrl(e || g.getLocationHref()), !0), g.isLastSavedState(f) ? (g.busy(!1), !1) : (h = g.getHashByState(f), c = g.discardedState(f), c ? (g.getHashByIndex(-2) === g.getHashByState(c.forwardState) ? g.back(!1) : g.forward(!1), !1) : (g.pushState(f.data, f.title, encodeURI(f.url), !1), !0))))
  			}, g.Adapter.bind(a, "hashchange", g.onHashChange), g.pushState = function(b, c, d, e) {
  				if (d = encodeURI(d).replace(/%25/g, "%"), g.getHashByUrl(d)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors).");
  				if (e !== !1 && g.busy()) return g.pushQueue({
  					scope: g,
  					callback: g.pushState,
  					args: arguments,
  					queue: e
  				}), !1;
  				g.busy(!0);
  				var f = g.createStateObject(b, c, d),
  					h = g.getHashByState(f),
  					i = g.getState(!1),
  					j = g.getHashByState(i),
  					k = g.getHash(),
  					l = g.expectedStateId == f.id;
  				return g.storeState(f), g.expectedStateId = f.id, g.recycleState(f), g.setTitle(f), h === j ? (g.busy(!1), !1) : (g.saveState(f), l || g.Adapter.trigger(a, "statechange"), !g.isHashEqual(h, k) && !g.isHashEqual(h, g.getShortUrl(g.getLocationHref())) && g.setHash(h, !1), g.busy(!1), !0)
  			}, g.replaceState = function(b, c, d, e) {
  				if (d = encodeURI(d).replace(/%25/g, "%"), g.getHashByUrl(d)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors).");
  				if (e !== !1 && g.busy()) return g.pushQueue({
  					scope: g,
  					callback: g.replaceState,
  					args: arguments,
  					queue: e
  				}), !1;
  				g.busy(!0);
  				var f = g.createStateObject(b, c, d),
  					h = g.getHashByState(f),
  					i = g.getState(!1),
  					j = g.getHashByState(i),
  					k = g.getStateByIndex(-2);
  				return g.discardState(i, f, k), h === j ? (g.storeState(f), g.expectedStateId = f.id, g.recycleState(f), g.setTitle(f), g.saveState(f), g.Adapter.trigger(a, "statechange"), g.busy(!1)) : g.pushState(f.data, f.title, f.url, !1), !0
  			}), g.emulated.pushState && g.getHash() && !g.emulated.hashChange && g.Adapter.onDomLoad(function() {
  				g.Adapter.trigger(a, "hashchange")
  			}), void 0)
  		}, "undefined" != typeof g.init && g.init()
  	}(window),
  	function(a, b) {
  		"use strict";
  		var c = a.console || b,
  			d = a.document,
  			e = a.navigator,
  			f = a.sessionStorage || !1,
  			g = a.setTimeout,
  			h = a.clearTimeout,
  			i = a.setInterval,
  			j = a.clearInterval,
  			k = a.JSON,
  			l = a.alert,
  			m = a.History = a.History || {},
  			n = a.history;
  		try {
  			f.setItem("TEST", "1"), f.removeItem("TEST")
  		} catch (o) {
  			f = !1
  		}
  		if (k.stringify = k.stringify || k.encode, k.parse = k.parse || k.decode, "undefined" != typeof m.init) throw new Error("History.js Core has already been loaded...");
  		m.init = function(a) {
  			return "undefined" == typeof m.Adapter ? !1 : ("undefined" != typeof m.initCore && m.initCore(), "undefined" != typeof m.initHtml4 && m.initHtml4(), !0)
  		}, m.initCore = function(o) {
  			if ("undefined" != typeof m.initCore.initialized) return !1;
  			if (m.initCore.initialized = !0, m.options = m.options || {}, m.options.hashChangeInterval = m.options.hashChangeInterval || 100, m.options.safariPollInterval = m.options.safariPollInterval || 500, m.options.doubleCheckInterval = m.options.doubleCheckInterval || 500, m.options.disableSuid = m.options.disableSuid || !1, m.options.storeInterval = m.options.storeInterval || 1e3, m.options.busyDelay = m.options.busyDelay || 250, m.options.debug = m.options.debug || !1, m.options.initialTitle = m.options.initialTitle || d.title, m.options.html4Mode = m.options.html4Mode || !1, m.options.delayInit = m.options.delayInit || !1, m.intervalList = [], m.clearAllIntervals = function() {
  					var a, b = m.intervalList;
  					if ("undefined" != typeof b && null !== b) {
  						for (a = 0; a < b.length; a++) j(b[a]);
  						m.intervalList = null
  					}
  				}, m.debug = function() {
  					(m.options.debug || !1) && m.log.apply(m, arguments)
  				}, m.log = function() {
  					var a, b, e, f, g, h = "undefined" != typeof c && "undefined" != typeof c.log && "undefined" != typeof c.log.apply,
  						i = d.getElementById("log");
  					for (h ? (f = Array.prototype.slice.call(arguments), a = f.shift(), "undefined" != typeof c.debug ? c.debug.apply(c, [a, f]) : c.log.apply(c, [a, f])) : a = "\n" + arguments[0] + "\n", b = 1, e = arguments.length; e > b; ++b) {
  						if (g = arguments[b], "object" == typeof g && "undefined" != typeof k) try {
  							g = k.stringify(g)
  						} catch (j) {}
  						a += "\n" + g + "\n"
  					}
  					return i ? (i.value += a + "\n-----\n", i.scrollTop = i.scrollHeight - i.clientHeight) : h || l(a), !0
  				}, m.getInternetExplorerMajorVersion = function() {
  					var a = m.getInternetExplorerMajorVersion.cached = "undefined" != typeof m.getInternetExplorerMajorVersion.cached ? m.getInternetExplorerMajorVersion.cached : function() {
  						for (var a = 3, b = d.createElement("div"), c = b.getElementsByTagName("i");
  							(b.innerHTML = "<!--[if gt IE " + ++a + "]><i></i><![endif]-->") && c[0];);
  						return a > 4 ? a : !1
  					}();
  					return a
  				}, m.isInternetExplorer = function() {
  					var a = m.isInternetExplorer.cached = "undefined" != typeof m.isInternetExplorer.cached ? m.isInternetExplorer.cached : Boolean(m.getInternetExplorerMajorVersion());
  					return a
  				}, m.options.html4Mode ? m.emulated = {
  					pushState: !0,
  					hashChange: !0
  				} : m.emulated = {
  					pushState: !Boolean(a.history && a.history.pushState && a.history.replaceState && !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent) && !/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),
  					hashChange: Boolean(!("onhashchange" in a || "onhashchange" in d) || m.isInternetExplorer() && m.getInternetExplorerMajorVersion() < 8)
  				}, m.enabled = !m.emulated.pushState, m.bugs = {
  					setHash: Boolean(!m.emulated.pushState && "Apple Computer, Inc." === e.vendor && /AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),
  					safariPoll: Boolean(!m.emulated.pushState && "Apple Computer, Inc." === e.vendor && /AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),
  					ieDoubleCheck: Boolean(m.isInternetExplorer() && m.getInternetExplorerMajorVersion() < 8),
  					hashEscape: Boolean(m.isInternetExplorer() && m.getInternetExplorerMajorVersion() < 7)
  				}, m.isEmptyObject = function(a) {
  					for (var b in a)
  						if (a.hasOwnProperty(b)) return !1;
  					return !0
  				}, m.cloneObject = function(a) {
  					var b, c;
  					return a ? (b = k.stringify(a), c = k.parse(b)) : c = {}, c
  				}, m.getRootUrl = function() {
  					var a = d.location.protocol + "//" + (d.location.hostname || d.location.host);
  					return d.location.port && (a += ":" + d.location.port), a += "/"
  				}, m.getBaseHref = function() {
  					var a = d.getElementsByTagName("base"),
  						b = null,
  						c = "";
  					return 1 === a.length && (b = a[0], c = b.href.replace(/[^\/]+$/, "")), c = c.replace(/\/+$/, ""), c && (c += "/"), c
  				}, m.getBaseUrl = function() {
  					var a = m.getBaseHref() || m.getBasePageUrl() || m.getRootUrl();
  					return a
  				}, m.getPageUrl = function() {
  					var a, b = m.getState(!1, !1),
  						c = (b || {}).url || m.getLocationHref();
  					return a = c.replace(/\/+$/, "").replace(/[^\/]+$/, function(a, b, c) {
  						return /\./.test(a) ? a : a + "/"
  					})
  				}, m.getBasePageUrl = function() {
  					var a = m.getLocationHref().replace(/[#\?].*/, "").replace(/[^\/]+$/, function(a, b, c) {
  						return /[^\/]$/.test(a) ? "" : a
  					}).replace(/\/+$/, "") + "/";
  					return a
  				}, m.getFullUrl = function(a, b) {
  					var c = a,
  						d = a.substring(0, 1);
  					return b = "undefined" == typeof b ? !0 : b, /[a-z]+\:\/\//.test(a) || (c = "/" === d ? m.getRootUrl() + a.replace(/^\/+/, "") : "#" === d ? m.getPageUrl().replace(/#.*/, "") + a : "?" === d ? m.getPageUrl().replace(/[\?#].*/, "") + a : b ? m.getBaseUrl() + a.replace(/^(\.\/)+/, "") : m.getBasePageUrl() + a.replace(/^(\.\/)+/, "")), c.replace(/\#$/, "")
  				}, m.getShortUrl = function(a) {
  					var b = a,
  						c = m.getBaseUrl(),
  						d = m.getRootUrl();
  					return m.emulated.pushState && (b = b.replace(c, "")), b = b.replace(d, "/"), m.isTraditionalAnchor(b) && (b = "./" + b), b = b.replace(/^(\.\/)+/g, "./").replace(/\#$/, "")
  				}, m.getLocationHref = function(a) {
  					return a = a || d, a.URL === a.location.href ? a.location.href : a.location.href === decodeURIComponent(a.URL) ? a.URL : a.location.hash && decodeURIComponent(a.location.href.replace(/^[^#]+/, "")) === a.location.hash ? a.location.href : -1 == a.URL.indexOf("#") && -1 != a.location.href.indexOf("#") ? a.location.href : a.URL || a.location.href
  				}, m.store = {}, m.idToState = m.idToState || {}, m.stateToId = m.stateToId || {}, m.urlToId = m.urlToId || {}, m.storedStates = m.storedStates || [], m.savedStates = m.savedStates || [], m.normalizeStore = function() {
  					m.store.idToState = m.store.idToState || {}, m.store.urlToId = m.store.urlToId || {}, m.store.stateToId = m.store.stateToId || {}
  				}, m.getState = function(a, b) {
  					"undefined" == typeof a && (a = !0), "undefined" == typeof b && (b = !0);
  					var c = m.getLastSavedState();
  					return !c && b && (c = m.createStateObject()), a && (c = m.cloneObject(c), c.url = c.cleanUrl || c.url), c
  				}, m.getIdByState = function(a) {
  					var b, c = m.extractId(a.url);
  					if (!c)
  						if (b = m.getStateString(a), "undefined" != typeof m.stateToId[b]) c = m.stateToId[b];
  						else if ("undefined" != typeof m.store.stateToId[b]) c = m.store.stateToId[b];
  					else {
  						for (; c = (new Date).getTime() + String(Math.random()).replace(/\D/g, ""), "undefined" != typeof m.idToState[c] || "undefined" != typeof m.store.idToState[c];);
  						m.stateToId[b] = c, m.idToState[c] = a
  					}
  					return c
  				}, m.normalizeState = function(a) {
  					var b, c;
  					return a && "object" == typeof a || (a = {}), "undefined" != typeof a.normalized ? a : (a.data && "object" == typeof a.data || (a.data = {}), b = {}, b.normalized = !0, b.title = a.title || "", b.url = m.getFullUrl(a.url ? a.url : m.getLocationHref()), b.hash = m.getShortUrl(b.url), b.data = m.cloneObject(a.data), b.id = m.getIdByState(b), b.cleanUrl = b.url.replace(/\??\&_suid.*/, ""), b.url = b.cleanUrl, c = !m.isEmptyObject(b.data), (b.title || c) && m.options.disableSuid !== !0 && (b.hash = m.getShortUrl(b.url).replace(/\??\&_suid.*/, ""), /\?/.test(b.hash) || (b.hash += "?"), b.hash += "&_suid=" + b.id), b.hashedUrl = m.getFullUrl(b.hash), (m.emulated.pushState || m.bugs.safariPoll) && m.hasUrlDuplicate(b) && (b.url = b.hashedUrl), b)
  				}, m.createStateObject = function(a, b, c) {
  					var d = {
  						data: a,
  						title: b,
  						url: c
  					};
  					return d = m.normalizeState(d)
  				}, m.getStateById = function(a) {
  					a = String(a);
  					var c = m.idToState[a] || m.store.idToState[a] || b;
  					return c
  				}, m.getStateString = function(a) {
  					var b, c, d;
  					return b = m.normalizeState(a), c = {
  						data: b.data,
  						title: a.title,
  						url: a.url
  					}, d = k.stringify(c)
  				}, m.getStateId = function(a) {
  					var b, c;
  					return b = m.normalizeState(a), c = b.id
  				}, m.getHashByState = function(a) {
  					var b, c;
  					return b = m.normalizeState(a), c = b.hash
  				}, m.extractId = function(a) {
  					var b, c, d, e;
  					return e = -1 != a.indexOf("#") ? a.split("#")[0] : a, c = /(.*)\&_suid=([0-9]+)$/.exec(e), d = c ? c[1] || a : a, b = c ? String(c[2] || "") : "", b || !1
  				}, m.isTraditionalAnchor = function(a) {
  					var b = !/[\/\?\.]/.test(a);
  					return b
  				}, m.extractState = function(a, b) {
  					var c, d, e = null;
  					return b = b || !1, c = m.extractId(a), c && (e = m.getStateById(c)), e || (d = m.getFullUrl(a), c = m.getIdByUrl(d) || !1, c && (e = m.getStateById(c)), !e && b && !m.isTraditionalAnchor(a) && (e = m.createStateObject(null, null, d))), e
  				}, m.getIdByUrl = function(a) {
  					var c = m.urlToId[a] || m.store.urlToId[a] || b;
  					return c
  				}, m.getLastSavedState = function() {
  					return m.savedStates[m.savedStates.length - 1] || b
  				}, m.getLastStoredState = function() {
  					return m.storedStates[m.storedStates.length - 1] || b
  				}, m.hasUrlDuplicate = function(a) {
  					var b, c = !1;
  					return b = m.extractState(a.url), c = b && b.id !== a.id
  				}, m.storeState = function(a) {
  					return m.urlToId[a.url] = a.id, m.storedStates.push(m.cloneObject(a)), a
  				}, m.isLastSavedState = function(a) {
  					var b, c, d, e = !1;
  					return m.savedStates.length && (b = a.id, c = m.getLastSavedState(), d = c.id, e = b === d), e
  				}, m.saveState = function(a) {
  					return m.isLastSavedState(a) ? !1 : (m.savedStates.push(m.cloneObject(a)), !0)
  				}, m.getStateByIndex = function(a) {
  					var b = null;
  					return b = "undefined" == typeof a ? m.savedStates[m.savedStates.length - 1] : 0 > a ? m.savedStates[m.savedStates.length + a] : m.savedStates[a]
  				}, m.getCurrentIndex = function() {
  					var a = null;
  					return a = m.savedStates.length < 1 ? 0 : m.savedStates.length - 1
  				}, m.getHash = function(a) {
  					var b, c = m.getLocationHref(a);
  					return b = m.getHashByUrl(c)
  				}, m.unescapeHash = function(a) {
  					var b = m.normalizeHash(a);
  					return b = decodeURIComponent(b)
  				}, m.normalizeHash = function(a) {
  					var b = a.replace(/[^#]*#/, "").replace(/#.*/, "");
  					return b
  				}, m.setHash = function(a, b) {
  					var c, e;
  					return b !== !1 && m.busy() ? (m.pushQueue({
  						scope: m,
  						callback: m.setHash,
  						args: arguments,
  						queue: b
  					}), !1) : (m.busy(!0), c = m.extractState(a, !0), c && !m.emulated.pushState ? m.pushState(c.data, c.title, c.url, !1) : m.getHash() !== a && (m.bugs.setHash ? (e = m.getPageUrl(), m.pushState(null, null, e + "#" + a, !1)) : d.location.hash = a), m)
  				}, m.escapeHash = function(b) {
  					var c = m.normalizeHash(b);
  					return c = a.encodeURIComponent(c), m.bugs.hashEscape || (c = c.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")), c
  				}, m.getHashByUrl = function(a) {
  					var b = String(a).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2");
  					return b = m.unescapeHash(b)
  				}, m.setTitle = function(a) {
  					var b, c = a.title;
  					c || (b = m.getStateByIndex(0), b && b.url === a.url && (c = b.title || m.options.initialTitle));
  					try {
  						d.getElementsByTagName("title")[0].innerHTML = c.replace("<", "&lt;").replace(">", "&gt;").replace(" & ", " &amp; ")
  					} catch (e) {}
  					return d.title = c, m
  				}, m.queues = [], m.busy = function(a) {
  					if ("undefined" != typeof a ? m.busy.flag = a : "undefined" == typeof m.busy.flag && (m.busy.flag = !1), !m.busy.flag) {
  						h(m.busy.timeout);
  						var b = function() {
  							var a, c, d;
  							if (!m.busy.flag)
  								for (a = m.queues.length - 1; a >= 0; --a) c = m.queues[a], 0 !== c.length && (d = c.shift(), m.fireQueueItem(d), m.busy.timeout = g(b, m.options.busyDelay))
  						};
  						m.busy.timeout = g(b, m.options.busyDelay)
  					}
  					return m.busy.flag
  				}, m.busy.flag = !1, m.fireQueueItem = function(a) {
  					return a.callback.apply(a.scope || m, a.args || [])
  				}, m.pushQueue = function(a) {
  					return m.queues[a.queue || 0] = m.queues[a.queue || 0] || [], m.queues[a.queue || 0].push(a), m
  				}, m.queue = function(a, b) {
  					return "function" == typeof a && (a = {
  						callback: a
  					}), "undefined" != typeof b && (a.queue = b), m.busy() ? m.pushQueue(a) : m.fireQueueItem(a), m
  				}, m.clearQueue = function() {
  					return m.busy.flag = !1, m.queues = [], m
  				}, m.stateChanged = !1, m.doubleChecker = !1, m.doubleCheckComplete = function() {
  					return m.stateChanged = !0, m.doubleCheckClear(), m
  				}, m.doubleCheckClear = function() {
  					return m.doubleChecker && (h(m.doubleChecker), m.doubleChecker = !1), m
  				}, m.doubleCheck = function(a) {
  					return m.stateChanged = !1, m.doubleCheckClear(), m.bugs.ieDoubleCheck && (m.doubleChecker = g(function() {
  						return m.doubleCheckClear(), m.stateChanged || a(), !0
  					}, m.options.doubleCheckInterval)), m
  				}, m.safariStatePoll = function() {
  					var b, c = m.extractState(m.getLocationHref());
  					return m.isLastSavedState(c) ? void 0 : (b = c, b || (b = m.createStateObject()), m.Adapter.trigger(a, "popstate"), m)
  				}, m.back = function(a) {
  					return a !== !1 && m.busy() ? (m.pushQueue({
  						scope: m,
  						callback: m.back,
  						args: arguments,
  						queue: a
  					}), !1) : (m.busy(!0), m.doubleCheck(function() {
  						m.back(!1)
  					}), n.go(-1), !0)
  				}, m.forward = function(a) {
  					return a !== !1 && m.busy() ? (m.pushQueue({
  						scope: m,
  						callback: m.forward,
  						args: arguments,
  						queue: a
  					}), !1) : (m.busy(!0), m.doubleCheck(function() {
  						m.forward(!1)
  					}), n.go(1), !0)
  				}, m.go = function(a, b) {
  					var c;
  					if (a > 0)
  						for (c = 1; a >= c; ++c) m.forward(b);
  					else {
  						if (!(0 > a)) throw new Error("History.go: History.go requires a positive or negative integer passed.");
  						for (c = -1; c >= a; --c) m.back(b)
  					}
  					return m
  				}, m.emulated.pushState) {
  				var p = function() {};
  				m.pushState = m.pushState || p, m.replaceState = m.replaceState || p
  			} else m.onPopState = function(b, c) {
  				var d, e, f = !1,
  					g = !1;
  				return m.doubleCheckComplete(), d = m.getHash(), d ? (e = m.extractState(d || m.getLocationHref(), !0), e ? m.replaceState(e.data, e.title, e.url, !1) : (m.Adapter.trigger(a, "anchorchange"), m.busy(!1)), m.expectedStateId = !1, !1) : (f = m.Adapter.extractEventData("state", b, c) || !1, g = f ? m.getStateById(f) : m.expectedStateId ? m.getStateById(m.expectedStateId) : m.extractState(m.getLocationHref()), g || (g = m.createStateObject(null, null, m.getLocationHref())), m.expectedStateId = !1, m.isLastSavedState(g) ? (m.busy(!1), !1) : (m.storeState(g), m.saveState(g), m.setTitle(g), m.Adapter.trigger(a, "statechange"), m.busy(!1), !0))
  			}, m.Adapter.bind(a, "popstate", m.onPopState), m.pushState = function(b, c, d, e) {
  				if (m.getHashByUrl(d) && m.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
  				if (e !== !1 && m.busy()) return m.pushQueue({
  					scope: m,
  					callback: m.pushState,
  					args: arguments,
  					queue: e
  				}), !1;
  				m.busy(!0);
  				var f = m.createStateObject(b, c, d);
  				return m.isLastSavedState(f) ? m.busy(!1) : (m.storeState(f), m.expectedStateId = f.id, n.pushState(f.id, f.title, f.url), m.Adapter.trigger(a, "popstate")), !0
  			}, m.replaceState = function(b, c, d, e) {
  				if (m.getHashByUrl(d) && m.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");
  				if (e !== !1 && m.busy()) return m.pushQueue({
  					scope: m,
  					callback: m.replaceState,
  					args: arguments,
  					queue: e
  				}), !1;
  				m.busy(!0);
  				var f = m.createStateObject(b, c, d);
  				return m.isLastSavedState(f) ? m.busy(!1) : (m.storeState(f), m.expectedStateId = f.id, n.replaceState(f.id, f.title, f.url), m.Adapter.trigger(a, "popstate")), !0
  			};
  			if (f) {
  				try {
  					m.store = k.parse(f.getItem("History.store")) || {}
  				} catch (q) {
  					m.store = {}
  				}
  				m.normalizeStore()
  			} else m.store = {}, m.normalizeStore();
  			m.Adapter.bind(a, "unload", m.clearAllIntervals), m.saveState(m.storeState(m.extractState(m.getLocationHref(), !0))), f && (m.onUnload = function() {
  				var a, b, c;
  				try {
  					a = k.parse(f.getItem("History.store")) || {}
  				} catch (d) {
  					a = {}
  				}
  				a.idToState = a.idToState || {}, a.urlToId = a.urlToId || {}, a.stateToId = a.stateToId || {};
  				for (b in m.idToState) m.idToState.hasOwnProperty(b) && (a.idToState[b] = m.idToState[b]);
  				for (b in m.urlToId) m.urlToId.hasOwnProperty(b) && (a.urlToId[b] = m.urlToId[b]);
  				for (b in m.stateToId) m.stateToId.hasOwnProperty(b) && (a.stateToId[b] = m.stateToId[b]);
  				m.store = a, m.normalizeStore(), c = k.stringify(a);
  				try {
  					f.setItem("History.store", c)
  				} catch (e) {
  					if (e.code !== DOMException.QUOTA_EXCEEDED_ERR) throw e;
  					f.length && (f.removeItem("History.store"), f.setItem("History.store", c))
  				}
  			}, m.intervalList.push(i(m.onUnload, m.options.storeInterval)), m.Adapter.bind(a, "beforeunload", m.onUnload), m.Adapter.bind(a, "unload", m.onUnload)), m.emulated.pushState || (m.bugs.safariPoll && m.intervalList.push(i(m.safariStatePoll, m.options.safariPollInterval)), "Apple Computer, Inc." !== e.vendor && "Mozilla" !== (e.appCodeName || "") || (m.Adapter.bind(a, "hashchange", function() {
  				m.Adapter.trigger(a, "popstate")
  			}), m.getHash() && m.Adapter.onDomLoad(function() {
  				m.Adapter.trigger(a, "hashchange")
  			})))
  		}, (!m.options || !m.options.delayInit) && m.init()
  	}(window);