/** * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http: */ /*! * jQuery JavaScript Library v2.1.3 * http: * * Includes Sizzle.js * http: * * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http: * * Date: 2014-12-18T15:11Z */ /*! * Sizzle CSS Selector Engine v2.2.0-pre * http: * * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http: * * Date: 2014-12-16 */ /*! * jquery.NatureFace.js JavaScript Library * http: * * Copyright 2003~2015, jquerynatureFace.com * * version : v2.15.16 * * 此程式主要用途為產生互動式web應用程式之操作介面。 * 並搭配一些簡單的操作,就可完成一個應用程式互動介面。 * 此程式「使用創用CC 姓名標示─非商業性─禁止改作 3.0 台灣 授權條款」 * 如做為商業用途,請利用Paypal進行付費授權,另外任何使用請保留此註記。 * */ /* Stomp Over WebSocket http: Copyright (C) 2010-2013 [Jeff Mesnil](http: Copyright (C) 2012 [FuseSource, Inc.](http: */ /*! * jQuery Cycle Plugin (with Transition Definitions) * Examples and documentation at: http: * Copyright (c) 2007-2010 M. Alsup * Version: 2.9999.8 (26-OCT-2012) * Dual licensed under the MIT and GPL licenses. * http: * Requires: jQuery v1.3.2 or later */ /*! * jQuery Cycle Plugin Transition Definitions * This script is a plugin for the jQuery Cycle Plugin * Examples and documentation at: http: * Copyright (c) 2007-2010 M. Alsup * Version: 2.73 * Dual licensed under the MIT and GPL licenses: * http: * http: */ /*! jQuery UI - v1.11.2 - 2014-10-16 * http: * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ /*! * jQuery UI Core 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Widget 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Mouse 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Position 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Accordion 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Menu 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Autocomplete 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Button 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Datepicker 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Draggable 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Resizable 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Dialog 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Droppable 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery Color Animations v2.1.2 * https: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * Date: Wed Jan 16 08:47:09 2013 -0600 */ /*! * jQuery UI Effects Blind 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Bounce 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Clip 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Drop 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Explode 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Fade 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Fold 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Highlight 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Size 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Scale 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Puff 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Pulsate 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Shake 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Slide 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Effects Transfer 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Progressbar 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Selectable 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Selectmenu 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Slider 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Sortable 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Spinner 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Tabs 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! * jQuery UI Tooltip 1.11.2 * http: * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http: * * http: */ /*! asn1-1.0.2.js (c) 2013 Kenji Urushima | kjur.github.com/jsrsasign/license */ /* * asn1.js - ASN.1 DER encoder classes * * Copyright (c) 2013 Kenji Urushima (kenji.urushima@gmail.com) * * This software is licensed under the terms of the MIT License. * http: * * The above copyright and license notice shall be * included in all copies or substantial portions of the Software. */ /** * @fileOverview * @name asn1-1.0.js * @author Kenji Urushima kenji.urushima@gmail.com * @version 1.0.2 (2013-May-30) * @since 2.1 * @license 0 && (e.splice(h - 1, 2), h -= 2) } } e = e.join("/") } else e.indexOf("./") === 0 && (e = e.substring(2)); if ((v || g) && m) { n = e.split("/"); for (h = n.length; h > 0; h -= 1) { r = n.slice(0, h).join("/"); if (v) for (p = v.length; p > 0; p -= 1) { i = m[v.slice(0, p).join("/")]; if (i) { i = i[r]; if (i) { s = i, a = h; break } } } if (s) break; !f && g && g[r] && (f = g[r], l = h) }!s && f && (s = f, a = l), s && (n.splice(0, a, s), e = n.join("/")) } return e } function d(t, r) { return function() { var i = l.call(arguments, 0); return typeof i[0] != "string" && i.length === 1 && i.push(null), n.apply(e, i.concat([t, r])) } } function v(e) { return function(t) { return p(t, e) } } function m(e) { return function(t) { s[e] = t } } function g(n) { if (h(o, n)) { var r = o[n]; delete o[n], a[n] = !0, t.apply(e, r) } if (!h(s, n) && !h(a, n)) throw new Error("No " + n); return s[n] } function y(e) { var t, n = e ? e.indexOf("!") : -1; return n > -1 && (t = e.substring(0, n), e = e.substring(n + 1, e.length)), [t, e] } function b(e) { return function() { return u && u.config && u.config[e] || {} } } var t, n, r, i, s = {}, o = {}, u = {}, a = {}, f = Object.prototype.hasOwnProperty, l = [].slice, c = /\.js$/; r = function(e, t) { var n, r = y(e), i = r[0]; return e = r[1], i && (i = p(i, t), n = g(i)), i ? n && n.normalize ? e = n.normalize(e, v(t)) : e = p(e, t) : (e = p(e, t), r = y(e), i = r[0], e = r[1], i && (n = g(i))), { f: i ? i + "!" + e : e, n: e, pr: i, p: n } }, i = { require: function(e) { return d(e) }, exports: function(e) { var t = s[e]; return typeof t != "undefined" ? t : s[e] = {} }, module: function(e) { return { id: e, uri: "", exports: s[e], config: b(e) } } }, t = function(t, n, u, f) { var l, c, p, v, y, b = [], w = typeof u, E; f = f || t; if (w === "undefined" || w === "function") { n = !n.length && u.length ? ["require", "exports", "module"] : n; for (y = 0; y < n.length; y += 1) { v = r(n[y], f), c = v.f; if (c === "require") b[y] = i.require(t); else if (c === "exports") b[y] = i.exports(t), E = !0; else if (c === "module") l = b[y] = i.module(t); else if (h(s, c) || h(o, c) || h(a, c)) b[y] = g(c); else { if (!v.p) throw new Error(t + " missing " + c); v.p.load(v.n, d(f, !0), m(c), {}), b[y] = s[c] } } p = u ? u.apply(s[t], b) : undefined; if (t) if (l && l.exports !== e && l.exports !== s[t]) s[t] = l.exports; else if (p !== e || !E) s[t] = p } else t && (s[t] = u) }, requirejs = require = n = function(s, o, a, f, l) { if (typeof s == "string") return i[s] ? i[s](o) : g(r(s, o).f); if (!s.splice) { u = s, u.deps && n(u.deps, u.callback); if (!o) return; o.splice ? (s = o, o = a, a = null) : s = e } return o = o || function() {}, typeof a == "function" && (a = f, f = l), f ? t(e, s, o, a) : setTimeout(function() { t(e, s, o, a) }, 4), n }, n.config = function(e) { return n(e) }, requirejs._defined = s, define = function(e, t, n) { if (typeof e != "string") throw new Error("See almond README: incorrect module build, no module name"); t.splice || (n = t, t = []), !h(s, e) && !h(o, e) && (o[e] = [e, t, n]) }, define.amd = { jQuery: !0 } })(), define("almond", function() {}), function(e, t) { typeof module == "object" && typeof module.exports == "object" ? module.exports = e.document ? t(e, !0) : function(e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }(typeof window != "undefined" ? window : this, function(window, noGlobal) { function isArraylike(e) { var t = e.length, n = jQuery.type(e); return n === "function" || jQuery.isWindow(e) ? !1 : e.nodeType === 1 && t ? !0 : n === "array" || t === 0 || typeof t == "number" && t > 0 && t - 1 in e } function winnow(e, t, n) { if (jQuery.isFunction(t)) return jQuery.grep(e, function(e, r) { return !!t.call(e, r, e) !== n }); if (t.nodeType) return jQuery.grep(e, function(e) { return e === t !== n }); if (typeof t == "string") { if (risSimple.test(t)) return jQuery.filter(t, e, n); t = jQuery.filter(t, e) } return jQuery.grep(e, function(e) { return indexOf.call(t, e) >= 0 !== n }) } function sibling(e, t) { while ((e = e[t]) && e.nodeType !== 1); return e } function createOptions(e) { var t = optionsCache[e] = {}; return jQuery.each(e.match(rnotwhite) || [], function(e, n) { t[n] = !0 }), t } function completed() { document.removeEventListener("DOMContentLoaded", completed, !1), window.removeEventListener("load", completed, !1), jQuery.ready() } function Data() { Object.defineProperty(this.cache = {}, 0, { get: function() { return {} } }), this.expando = jQuery.expando + Data.uid++ } function dataAttr(e, t, n) { var r; if (n === undefined && e.nodeType === 1) { r = "data-" + t.replace(rmultiDash, "-$1").toLowerCase(), n = e.getAttribute(r); if (typeof n == "string") { try { n = n === "true" ? !0 : n === "false" ? !1 : n === "null" ? null : +n + "" === n ? +n : rbrace.test(n) ? jQuery.parseJSON(n) : n } catch (i) {} data_user.set(e, t, n) } else n = undefined } return n } function returnTrue() { return !0 } function returnFalse() { return !1 } function safeActiveElement() { try { return document.activeElement } catch (e) {} } function manipulationTarget(e, t) { return jQuery.nodeName(e, "table") && jQuery.nodeName(t.nodeType !== 11 ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e } function disableScript(e) { return e.type = (e.getAttribute("type") !== null) + "/" + e.type, e } function restoreScript(e) { var t = rscriptTypeMasked.exec(e.type); return t ? e.type = t[1] : e.removeAttribute("type"), e } function setGlobalEval(e, t) { var n = 0, r = e.length; for (; n < r; n++) data_priv.set(e[n], "globalEval", !t || data_priv.get(t[n], "globalEval")) } function cloneCopyEvent(e, t) { var n, r, i, s, o, u, a, f; if (t.nodeType !== 1) return; if (data_priv.hasData(e)) { s = data_priv.access(e), o = data_priv.set(t, s), f = s.events; if (f) { delete o.handle, o.events = {}; for (i in f) for (n = 0, r = f[i].length; n < r; n++) jQuery.event.add(t, i, f[i][n]) } } data_user.hasData(e) && (u = data_user.access(e), a = jQuery.extend({}, u), data_user.set(t, a)) } function getAll(e, t) { var n = e.getElementsByTagName ? e.getElementsByTagName(t || "*") : e.querySelectorAll ? e.querySelectorAll(t || "*") : []; return t === undefined || t && jQuery.nodeName(e, t) ? jQuery.merge([e], n) : n } function fixInput(e, t) { var n = t.nodeName.toLowerCase(); if (n === "input" && rcheckableType.test(e.type)) t.checked = e.checked; else if (n === "input" || n === "textarea") t.defaultValue = e.defaultValue } function actualDisplay(e, t) { var n, r = jQuery(t.createElement(e)).appendTo(t.body), i = window.getDefaultComputedStyle && (n = window.getDefaultComputedStyle(r[0])) ? n.display : jQuery.css(r[0], "display"); return r.detach(), i } function defaultDisplay(e) { var t = document, n = elemdisplay[e]; if (!n) { n = actualDisplay(e, t); if (n === "none" || !n) iframe = (iframe || jQuery("")).appendTo(t.documentElement), t = iframe[0].contentDocument, t.write(), t.close(), n = actualDisplay(e, t), iframe.detach(); elemdisplay[e] = n } return n } function curCSS(e, t, n) { var r, i, s, o, u = e.style; return n = n || getStyles(e), n && (o = n.getPropertyValue(t) || n[t]), n && (o === "" && !jQuery.contains(e.ownerDocument, e) && (o = jQuery.style(e, t)), rnumnonpx.test(o) && rmargin.test(t) && (r = u.width, i = u.minWidth, s = u.maxWidth, u.minWidth = u.maxWidth = u.width = o, o = n.width, u.width = r, u.minWidth = i, u.maxWidth = s)), o !== undefined ? o + "" : o } function addGetHookIf(e, t) { return { get: function() { if (e()) { delete this.get; return } return (this.get = t).apply(this, arguments) } } } function vendorPropName(e, t) { if (t in e) return t; var n = t[0].toUpperCase() + t.slice(1), r = t, i = cssPrefixes.length; while (i--) { t = cssPrefixes[i] + n; if (t in e) return t } return r } function setPositiveNumber(e, t, n) { var r = rnumsplit.exec(t); return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t } function augmentWidthOrHeight(e, t, n, r, i) { var s = n === (r ? "border" : "content") ? 4 : t === "width" ? 1 : 0, o = 0; for (; s < 4; s += 2) n === "margin" && (o += jQuery.css(e, n + cssExpand[s], !0, i)), r ? (n === "content" && (o -= jQuery.css(e, "padding" + cssExpand[s], !0, i)), n !== "margin" && (o -= jQuery.css(e, "border" + cssExpand[s] + "Width", !0, i))) : (o += jQuery.css(e, "padding" + cssExpand[s], !0, i), n !== "padding" && (o += jQuery.css(e, "border" + cssExpand[s] + "Width", !0, i))); return o } function getWidthOrHeight(e, t, n) { var r = !0, i = t === "width" ? e.offsetWidth : e.offsetHeight, s = getStyles(e), o = jQuery.css(e, "boxSizing", !1, s) === "border-box"; if (i <= 0 || i == null) { i = curCSS(e, t, s); if (i < 0 || i == null) i = e.style[t]; if (rnumnonpx.test(i)) return i; r = o && (support.boxSizingReliable() || i === e.style[t]), i = parseFloat(i) || 0 } return i + augmentWidthOrHeight(e, t, n || (o ? "border" : "content"), r, s) + "px" } function showHide(e, t) { var n, r, i, s = [], o = 0, u = e.length; for (; o < u; o++) { r = e[o]; if (!r.style) continue; s[o] = data_priv.get(r, "olddisplay"), n = r.style.display, t ? (!s[o] && n === "none" && (r.style.display = ""), r.style.display === "" && isHidden(r) && (s[o] = data_priv.access(r, "olddisplay", defaultDisplay(r.nodeName)))) : (i = isHidden(r), (n !== "none" || !i) && data_priv.set(r, "olddisplay", i ? n : jQuery.css(r, "display"))) } for (o = 0; o < u; o++) { r = e[o]; if (!r.style) continue; if (!t || r.style.display === "none" || r.style.display === "") r.style.display = t ? s[o] || "" : "none" } return e } function Tween(e, t, n, r, i) { return new Tween.prototype.init(e, t, n, r, i) } function createFxNow() { return setTimeout(function() { fxNow = undefined }), fxNow = jQuery.now() } function genFx(e, t) { var n, r = 0, i = { height: e }; t = t ? 1 : 0; for (; r < 4; r += 2 - t) n = cssExpand[r], i["margin" + n] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function createTween(e, t, n) { var r, i = (tweeners[t] || []).concat(tweeners["*"]), s = 0, o = i.length; for (; s < o; s++) if (r = i[s].call(n, t, e)) return r } function defaultPrefilter(e, t, n) { var r, i, s, o, u, a, f, l, c = this, h = {}, p = e.style, d = e.nodeType && isHidden(e), v = data_priv.get(e, "fxshow"); n.queue || (u = jQuery._queueHooks(e, "fx"), u.unqueued == null && (u.unqueued = 0, a = u.empty.fire, u.empty.fire = function() { u.unqueued || a() }), u.unqueued++, c.always(function() { c.always(function() { u.unqueued--, jQuery.queue(e, "fx").length || u.empty.fire() }) })), e.nodeType === 1 && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], f = jQuery.css(e, "display"), l = f === "none" ? data_priv.get(e, "olddisplay") || defaultDisplay(e.nodeName) : f, l === "inline" && jQuery.css(e, "float") === "none" && (p.display = "inline-block")), n.overflow && (p.overflow = "hidden", c.always(function() { p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2] })); for (r in t) { i = t[r]; if (rfxtypes.exec(i)) { delete t[r], s = s || i === "toggle"; if (i === (d ? "hide" : "show")) { if (i !== "show" || !v || v[r] === undefined) continue; d = !0 } h[r] = v && v[r] || jQuery.style(e, r) } else f = undefined } if (!jQuery.isEmptyObject(h)) { v ? "hidden" in v && (d = v.hidden) : v = data_priv.access(e, "fxshow", {}), s && (v.hidden = !d), d ? jQuery(e).show() : c.done(function() { jQuery(e).hide() }), c.done(function() { var t; data_priv.remove(e, "fxshow"); for (t in h) jQuery.style(e, t, h[t]) }); for (r in h) o = createTween(d ? v[r] : 0, r, c), r in v || (v[r] = o.start, d && (o.end = o.start, o.start = r === "width" || r === "height" ? 1 : 0)) } else(f === "none" ? defaultDisplay(e.nodeName) : f) === "inline" && (p.display = f) } function propFilter(e, t) { var n, r, i, s, o; for (n in e) { r = jQuery.camelCase(n), i = t[r], s = e[n], jQuery.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), o = jQuery.cssHooks[r]; if (o && "expand" in o) { s = o.expand(s), delete e[r]; for (n in s) n in e || (e[n] = s[n], t[n] = i) } else t[r] = i } } function Animation(e, t, n) { var r, i, s = 0, o = animationPrefilters.length, u = jQuery.Deferred().always(function() { delete a.elem }), a = function() { if (i) return !1; var t = fxNow || createFxNow(), n = Math.max(0, f.startTime + f.duration - t), r = n / f.duration || 0, s = 1 - r, o = 0, a = f.tweens.length; for (; o < a; o++) f.tweens[o].run(s); return u.notifyWith(e, [f, s, n]), s < 1 && a ? n : (u.resolveWith(e, [f]), !1) }, f = u.promise({ elem: e, props: jQuery.extend({}, t), opts: jQuery.extend(!0, { specialEasing: {} }, n), originalProperties: t, originalOptions: n, startTime: fxNow || createFxNow(), duration: n.duration, tweens: [], createTween: function(t, n) { var r = jQuery.Tween(e, f.opts, t, n, f.opts.specialEasing[t] || f.opts.easing); return f.tweens.push(r), r }, stop: function(t) { var n = 0, r = t ? f.tweens.length : 0; if (i) return this; i = !0; for (; n < r; n++) f.tweens[n].run(1); return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this } }), l = f.props; propFilter(l, f.opts.specialEasing); for (; s < o; s++) { r = animationPrefilters[s].call(f, e, l, f.opts); if (r) return r } return jQuery.map(l, createTween, f), jQuery.isFunction(f.opts.start) && f.opts.start.call(e, f), jQuery.fx.timer(jQuery.extend(a, { elem: e, anim: f, queue: f.opts.queue })), f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always) } function addToPrefiltersOrTransports(e) { return function(t, n) { typeof t != "string" && (n = t, t = "*"); var r, i = 0, s = t.toLowerCase().match(rnotwhite) || []; if (jQuery.isFunction(n)) while (r = s[i++]) r[0] === "+" ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n) } } function inspectPrefiltersOrTransports(e, t, n, r) { function o(u) { var a; return i[u] = !0, jQuery.each(e[u] || [], function(e, u) { var f = u(t, n, r); if (typeof f == "string" && !s && !i[f]) return t.dataTypes.unshift(f), o(f), !1; if (s) return !(a = f) }), a } var i = {}, s = e === transports; return o(t.dataTypes[0]) || !i["*"] && o("*") } function ajaxExtend(e, t) { var n, r, i = jQuery.ajaxSettings.flatOptions || {}; for (n in t) t[n] !== undefined && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && jQuery.extend(!0, e, r), e } function ajaxHandleResponses(e, t, n) { var r, i, s, o, u = e.contents, a = e.dataTypes; while (a[0] === "*") a.shift(), r === undefined && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in u) if (u[i] && u[i].test(r)) { a.unshift(i); break } if (a[0] in n) s = a[0]; else { for (i in n) { if (!a[0] || e.converters[i + " " + a[0]]) { s = i; break } o || (o = i) } s = s || o } if (s) return s !== a[0] && a.unshift(s), n[s] } function ajaxConvert(e, t, n, r) { var i, s, o, u, a, f = {}, l = e.dataTypes.slice(); if (l[1]) for (o in e.converters) f[o.toLowerCase()] = e.converters[o]; s = l.shift(); while (s) { e.responseFields[s] && (n[e.responseFields[s]] = t), !a && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), a = s, s = l.shift(); if (s) if (s === "*") s = a; else if (a !== "*" && a !== s) { o = f[a + " " + s] || f["* " + s]; if (!o) for (i in f) { u = i.split(" "); if (u[1] === s) { o = f[a + " " + u[0]] || f["* " + u[0]]; if (o) { o === !0 ? o = f[i] : f[i] !== !0 && (s = u[0], l.unshift(u[1])); break } } } if (o !== !0) if (o && e["throws"]) t = o(t); else try { t = o(t) } catch (c) { return { state: "parsererror", error: o ? c : "No conversion from " + a + " to " + s } } } } return { state: "success", data: t } } function buildParams(e, t, n, r) { var i; if (jQuery.isArray(t)) jQuery.each(t, function(t, i) { n || rbracket.test(e) ? r(e, i) : buildParams(e + "[" + (typeof i == "object" ? t : "") + "]", i, n, r) }); else if (!n && jQuery.type(t) === "object") for (i in t) buildParams(e + "[" + i + "]", t[i], n, r); else r(e, t) } function getWindow(e) { return jQuery.isWindow(e) ? e : e.nodeType === 9 && e.defaultView } var arr = [], slice = arr.slice, concat = arr.concat, push = arr.push, indexOf = arr.indexOf, class2type = {}, toString = class2type.toString, hasOwn = class2type.hasOwnProperty, support = {}, document = window.document, version = "2.1.3", jQuery = function(e, t) { return new jQuery.fn.init(e, t) }, rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, rmsPrefix = /^-ms-/, rdashAlpha = /-([\da-z])/gi, fcamelCase = function(e, t) { return t.toUpperCase() }; jQuery.fn = jQuery.prototype = { jquery: version, constructor: jQuery, selector: "", length: 0, toArray: function() { return slice.call(this) }, get: function(e) { return e != null ? e < 0 ? this[e + this.length] : this[e] : slice.call(this) }, pushStack: function(e) { var t = jQuery.merge(this.constructor(), e); return t.prevObject = this, t.context = this.context, t }, each: function(e, t) { return jQuery.each(this, e, t) }, map: function(e) { return this.pushStack(jQuery.map(this, function(t, n) { return e.call(t, n, t) })) }, slice: function() { return this.pushStack(slice.apply(this, arguments)) }, first: function() { return this.eq(0) }, last: function() { return this.eq(-1) }, eq: function(e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(n >= 0 && n < t ? [this[n]] : []) }, end: function() { return this.prevObject || this.constructor(null) }, push: push, sort: arr.sort, splice: arr.splice }, jQuery.extend = jQuery.fn.extend = function() { var e, t, n, r, i, s, o = arguments[0] || {}, u = 1, a = arguments.length, f = !1; typeof o == "boolean" && (f = o, o = arguments[u] || {}, u++), typeof o != "object" && !jQuery.isFunction(o) && (o = {}), u === a && (o = this, u--); for (; u < a; u++) if ((e = arguments[u]) != null) for (t in e) { n = o[t], r = e[t]; if (o === r) continue; f && r && (jQuery.isPlainObject(r) || (i = jQuery.isArray(r))) ? (i ? (i = !1, s = n && jQuery.isArray(n) ? n : []) : s = n && jQuery.isPlainObject(n) ? n : {}, o[t] = jQuery.extend(f, s, r)) : r !== undefined && (o[t] = r) } return o }, jQuery.extend({ expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), isReady: !0, error: function(e) { throw new Error(e) }, noop: function() {}, isFunction: function(e) { return jQuery.type(e) === "function" }, isArray: Array.isArray, isWindow: function(e) { return e != null && e === e.window }, isNumeric: function(e) { return !jQuery.isArray(e) && e - parseFloat(e) + 1 >= 0 }, isPlainObject: function(e) { return jQuery.type(e) !== "object" || e.nodeType || jQuery.isWindow(e) ? !1 : e.constructor && !hasOwn.call(e.constructor.prototype, "isPrototypeOf") ? !1 : !0 }, isEmptyObject: function(e) { var t; for (t in e) return !1; return !0 }, type: function(e) { return e == null ? e + "" : typeof e == "object" || typeof e == "function" ? class2type[toString.call(e)] || "object" : typeof e }, globalEval: function(code) { var script, indirect = eval; code = jQuery.trim(code), code && (code.indexOf("use strict") === 1 ? (script = document.createElement("script"), script.text = code, document.head.appendChild(script).parentNode.removeChild(script)) : indirect(code)) }, camelCase: function(e) { return e.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase) }, nodeName: function(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() }, each: function(e, t, n) { var r, i = 0, s = e.length, o = isArraylike(e); if (n) if (o) for (; i < s; i++) { r = t.apply(e[i], n); if (r === !1) break } else for (i in e) { r = t.apply(e[i], n); if (r === !1) break } else if (o) for (; i < s; i++) { r = t.call(e[i], i, e[i]); if (r === !1) break } else for (i in e) { r = t.call(e[i], i, e[i]); if (r === !1) break } return e }, trim: function(e) { return e == null ? "" : (e + "").replace(rtrim, "") }, makeArray: function(e, t) { var n = t || []; return e != null && (isArraylike(Object(e)) ? jQuery.merge(n, typeof e == "string" ? [e] : e) : push.call(n, e)), n }, inArray: function(e, t, n) { return t == null ? -1 : indexOf.call(t, e, n) }, merge: function(e, t) { var n = +t.length, r = 0, i = e.length; for (; r < n; r++) e[i++] = t[r]; return e.length = i, e }, grep: function(e, t, n) { var r, i = [], s = 0, o = e.length, u = !n; for (; s < o; s++) r = !t(e[s], s), r !== u && i.push(e[s]); return i }, map: function(e, t, n) { var r, i = 0, s = e.length, o = isArraylike(e), u = []; if (o) for (; i < s; i++) r = t(e[i], i, n), r != null && u.push(r); else for (i in e) r = t(e[i], i, n), r != null && u.push(r); return concat.apply([], u) }, guid: 1, proxy: function(e, t) { var n, r, i; return typeof t == "string" && (n = e[t], t = e, e = n), jQuery.isFunction(e) ? (r = slice.call(arguments, 2), i = function() { return e.apply(t || this, r.concat(slice.call(arguments))) }, i.guid = e.guid = e.guid || jQuery.guid++, i) : undefined }, now: Date.now, support: support }), jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) { class2type["[object " + t + "]"] = t.toLowerCase() }); var Sizzle = function(e) { function ot(e, t, r, i) { var s, u, f, l, c, d, g, y, S, x; (t ? t.ownerDocument || t : E) !== p && h(t), t = t || p, r = r || [], l = t.nodeType; if (typeof e != "string" || !e || l !== 1 && l !== 9 && l !== 11) return r; if (!i && v) { if (l !== 11 && (s = Z.exec(e))) if (f = s[1]) { if (l === 9) { u = t.getElementById(f); if (!u || !u.parentNode) return r; if (u.id === f) return r.push(u), r } else if (t.ownerDocument && (u = t.ownerDocument.getElementById(f)) && b(t, u) && u.id === f) return r.push(u), r } else { if (s[2]) return D.apply(r, t.getElementsByTagName(e)), r; if ((f = s[3]) && n.getElementsByClassName) return D.apply(r, t.getElementsByClassName(f)), r } if (n.qsa && (!m || !m.test(e))) { y = g = w, S = t, x = l !== 1 && e; if (l === 1 && t.nodeName.toLowerCase() !== "object") { d = o(e), (g = t.getAttribute("id")) ? y = g.replace(tt, "\\$&") : t.setAttribute("id", y), y = "[id='" + y + "'] ", c = d.length; while (c--) d[c] = y + gt(d[c]); S = et.test(e) && vt(t.parentNode) || t, x = d.join(",") } if (x) try { return D.apply(r, S.querySelectorAll(x)), r } catch (T) {} finally { g || t.removeAttribute("id") } } } return a(e.replace(z, "$1"), t, r, i) } function ut() { function t(n, i) { return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i } var e = []; return t } function at(e) { return e[w] = !0, e } function ft(e) { var t = p.createElement("div"); try { return !!e(t) } catch (n) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function lt(e, t) { var n = e.split("|"), i = e.length; while (i--) r.attrHandle[n[i]] = t } function ct(e, t) { var n = t && e, r = n && e.nodeType === 1 && t.nodeType === 1 && (~t.sourceIndex || L) - (~e.sourceIndex || L); if (r) return r; if (n) while (n = n.nextSibling) if (n === t) return -1; return e ? 1 : -1 } function ht(e) { return function(t) { var n = t.nodeName.toLowerCase(); return n === "input" && t.type === e } } function pt(e) { return function(t) { var n = t.nodeName.toLowerCase(); return (n === "input" || n === "button") && t.type === e } } function dt(e) { return at(function(t) { return t = +t, at(function(n, r) { var i, s = e([], n.length, t), o = s.length; while (o--) n[i = s[o]] && (n[i] = !(r[i] = n[i])) }) }) } function vt(e) { return e && typeof e.getElementsByTagName != "undefined" && e } function mt() {} function gt(e) { var t = 0, n = e.length, r = ""; for (; t < n; t++) r += e[t].value; return r } function yt(e, t, n) { var r = t.dir, i = n && r === "parentNode", s = x++; return t.first ? function(t, n, s) { while (t = t[r]) if (t.nodeType === 1 || i) return e(t, n, s) } : function(t, n, o) { var u, a, f = [S, s]; if (o) { while (t = t[r]) if (t.nodeType === 1 || i) if (e(t, n, o)) return !0 } else while (t = t[r]) if (t.nodeType === 1 || i) { a = t[w] || (t[w] = {}); if ((u = a[r]) && u[0] === S && u[1] === s) return f[2] = u[2]; a[r] = f; if (f[2] = e(t, n, o)) return !0 } } } function bt(e) { return e.length > 1 ? function(t, n, r) { var i = e.length; while (i--) if (!e[i](t, n, r)) return !1; return !0 } : e[0] } function wt(e, t, n) { var r = 0, i = t.length; for (; r < i; r++) ot(e, t[r], n); return n } function Et(e, t, n, r, i) { var s, o = [], u = 0, a = e.length, f = t != null; for (; u < a; u++) if (s = e[u]) if (!n || n(s, r, i)) o.push(s), f && t.push(u); return o } function St(e, t, n, r, i, s) { return r && !r[w] && (r = St(r)), i && !i[w] && (i = St(i, s)), at(function(s, o, u, a) { var f, l, c, h = [], p = [], d = o.length, v = s || wt(t || "*", u.nodeType ? [u] : u, []), m = e && (s || !t) ? Et(v, h, e, u, a) : v, g = n ? i || (s ? e : d || r) ? [] : o : m; n && n(m, g, u, a); if (r) { f = Et(g, p), r(f, [], u, a), l = f.length; while (l--) if (c = f[l]) g[p[l]] = !(m[p[l]] = c) } if (s) { if (i || e) { if (i) { f = [], l = g.length; while (l--)(c = g[l]) && f.push(m[l] = c); i(null, g = [], f, a) } l = g.length; while (l--)(c = g[l]) && (f = i ? H(s, c) : h[l]) > -1 && (s[f] = !(o[f] = c)) } } else g = Et(g === o ? g.splice(d, g.length) : g), i ? i(null, o, g, a) : D.apply(o, g) }) } function xt(e) { var t, n, i, s = e.length, o = r.relative[e[0].type], u = o || r.relative[" "], a = o ? 1 : 0, l = yt(function(e) { return e === t }, u, !0), c = yt(function(e) { return H(t, e) > -1 }, u, !0), h = [function(e, n, r) { var i = !o && (r || n !== f) || ((t = n).nodeType ? l(e, n, r) : c(e, n, r)); return t = null, i }]; for (; a < s; a++) if (n = r.relative[e[a].type]) h = [yt(bt(h), n)]; else { n = r.filter[e[a].type].apply(null, e[a].matches); if (n[w]) { i = ++a; for (; i < s; i++) if (r.relative[e[i].type]) break; return St(a > 1 && bt(h), a > 1 && gt(e.slice(0, a - 1).concat({ value: e[a - 2].type === " " ? "*" : "" })).replace(z, "$1"), n, a < i && xt(e.slice(a, i)), i < s && xt(e = e.slice(i)), i < s && gt(e)) } h.push(n) } return bt(h) } function Tt(e, t) { var n = t.length > 0, i = e.length > 0, s = function(s, o, u, a, l) { var c, h, d, v = 0, m = "0", g = s && [], y = [], b = f, w = s || i && r.find.TAG("*", l), E = S += b == null ? 1 : Math.random() || .1, x = w.length; l && (f = o !== p && o); for (; m !== x && (c = w[m]) != null; m++) { if (i && c) { h = 0; while (d = e[h++]) if (d(c, o, u)) { a.push(c); break } l && (S = E) } n && ((c = !d && c) && v--, s && g.push(c)) } v += m; if (n && m !== v) { h = 0; while (d = t[h++]) d(g, y, o, u); if (s) { if (v > 0) while (m--) !g[m] && !y[m] && (y[m] = M.call(a)); y = Et(y) } D.apply(a, y), l && !s && y.length > 0 && v + t.length > 1 && ot.uniqueSort(a) } return l && (S = E, f = b), g }; return n ? at(s) : s } var t, n, r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w = "sizzle" + 1 * new Date, E = e.document, S = 0, x = 0, T = ut(), N = ut(), C = ut(), k = function(e, t) { return e === t && (c = !0), 0 }, L = 1 << 31, A = {}.hasOwnProperty, O = [], M = O.pop, _ = O.push, D = O.push, P = O.slice, H = function(e, t) { var n = 0, r = e.length; for (; n < r; n++) if (e[n] === t) return n; return -1 }, B = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", j = "[\\x20\\t\\r\\n\\f]", F = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", I = F.replace("w", "w#"), q = "\\[" + j + "*(" + F + ")(?:" + j + "*([*^$|!~]?=)" + j + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + j + "*\\]", R = ":(" + F + ")(?:\\((" + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + "((?:\\\\.|[^\\\\()[\\]]|" + q + ")*)|" + ".*" + ")\\)|)", U = new RegExp(j + "+", "g"), z = new RegExp("^" + j + "+|((?:^|[^\\\\])(?:\\\\.)*)" + j + "+$", "g"), W = new RegExp("^" + j + "*," + j + "*"), X = new RegExp("^" + j + "*([>+~]|" + j + ")" + j + "*"), V = new RegExp("=" + j + "*([^\\]'\"]*?)" + j + "*\\]", "g"), $ = new RegExp(R), J = new RegExp("^" + I + "$"), K = { ID: new RegExp("^#(" + F + ")"), CLASS: new RegExp("^\\.(" + F + ")"), TAG: new RegExp("^(" + F.replace("w", "w*") + ")"), ATTR: new RegExp("^" + q), PSEUDO: new RegExp("^" + R), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + j + "*(even|odd|(([+-]|)(\\d*)n|)" + j + "*(?:([+-]|)" + j + "*(\\d+)|))" + j + "*\\)|)", "i"), bool: new RegExp("^(?:" + B + ")$", "i"), needsContext: new RegExp("^" + j + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + j + "*((?:-\\d)?\\d*)" + j + "*\\)|)(?=[^-]|$)", "i") }, Q = /^(?:input|select|textarea|button)$/i, G = /^h\d$/i, Y = /^[^{]+\{\s*\[native \w/, Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, et = /[+~]/, tt = /'|\\/g, nt = new RegExp("\\\\([\\da-f]{1,6}" + j + "?|(" + j + ")|.)", "ig"), rt = function(e, t, n) { var r = "0x" + t - 65536; return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, r & 1023 | 56320) }, it = function() { h() }; try { D.apply(O = P.call(E.childNodes), E.childNodes), O[E.childNodes.length].nodeType } catch (st) { D = { apply: O.length ? function(e, t) { _.apply(e, P.call(t)) } : function(e, t) { var n = e.length, r = 0; while (e[n++] = t[r++]); e.length = n - 1 } } } n = ot.support = {}, s = ot.isXML = function(e) { var t = e && (e.ownerDocument || e).documentElement; return t ? t.nodeName !== "HTML" : !1 }, h = ot.setDocument = function(e) { var t, i, o = e ? e.ownerDocument || e : E; if (o === p || o.nodeType !== 9 || !o.documentElement) return p; p = o, d = o.documentElement, i = o.defaultView, i && i !== i.top && (i.addEventListener ? i.addEventListener("unload", it, !1) : i.attachEvent && i.attachEvent("onunload", it)), v = !s(o), n.attributes = ft(function(e) { return e.className = "i", !e.getAttribute("className") }), n.getElementsByTagName = ft(function(e) { return e.appendChild(o.createComment("")), !e.getElementsByTagName("*").length }), n.getElementsByClassName = Y.test(o.getElementsByClassName), n.getById = ft(function(e) { return d.appendChild(e).id = w, !o.getElementsByName || !o.getElementsByName(w).length }), n.getById ? (r.find.ID = function(e, t) { if (typeof t.getElementById != "undefined" && v) { var n = t.getElementById(e); return n && n.parentNode ? [n] : [] } }, r.filter.ID = function(e) { var t = e.replace(nt, rt); return function(e) { return e.getAttribute("id") === t } }) : (delete r.find.ID, r.filter.ID = function(e) { var t = e.replace(nt, rt); return function(e) { var n = typeof e.getAttributeNode != "undefined" && e.getAttributeNode("id"); return n && n.value === t } }), r.find.TAG = n.getElementsByTagName ? function(e, t) { if (typeof t.getElementsByTagName != "undefined") return t.getElementsByTagName(e); if (n.qsa) return t.querySelectorAll(e) } : function(e, t) { var n, r = [], i = 0, s = t.getElementsByTagName(e); if (e === "*") { while (n = s[i++]) n.nodeType === 1 && r.push(n); return r } return s }, r.find.CLASS = n.getElementsByClassName && function(e, t) { if (v) return t.getElementsByClassName(e) }, g = [], m = []; if (n.qsa = Y.test(o.querySelectorAll)) ft(function(e) { d.appendChild(e).innerHTML = "" + "", e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + j + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[" + j + "*(?:value|" + B + ")"), e.querySelectorAll("[id~=" + w + "-]").length || m.push("~="), e.querySelectorAll(":checked").length || m.push(":checked"), e.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]") }), ft(function(e) { var t = o.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name" + j + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:") }); return (n.matchesSelector = Y.test(y = d.matches || d.webkitMatchesSelector || d.mozMatchesSelector || d.oMatchesSelector || d.msMatchesSelector)) && ft(function(e) { n.disconnectedMatch = y.call(e, "div"), y.call(e, "[s!='']:x"), g.push("!=", R) }), m = m.length && new RegExp(m.join("|")), g = g.length && new RegExp(g.join("|")), t = Y.test(d.compareDocumentPosition), b = t || Y.test(d.contains) ? function(e, t) { var n = e.nodeType === 9 ? e.documentElement : e, r = t && t.parentNode; return e === r || !!r && r.nodeType === 1 && !!(n.contains ? n.contains(r) : e.compareDocumentPosition && e.compareDocumentPosition(r) & 16) } : function(e, t) { if (t) while (t = t.parentNode) if (t === e) return !0; return !1 }, k = t ? function(e, t) { if (e === t) return c = !0, 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return r ? r : (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, r & 1 || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === o || e.ownerDocument === E && b(E, e) ? -1 : t === o || t.ownerDocument === E && b(E, t) ? 1 : l ? H(l, e) - H(l, t) : 0 : r & 4 ? -1 : 1) } : function(e, t) { if (e === t) return c = !0, 0; var n, r = 0, i = e.parentNode, s = t.parentNode, u = [e], a = [t]; if (!i || !s) return e === o ? -1 : t === o ? 1 : i ? -1 : s ? 1 : l ? H(l, e) - H(l, t) : 0; if (i === s) return ct(e, t); n = e; while (n = n.parentNode) u.unshift(n); n = t; while (n = n.parentNode) a.unshift(n); while (u[r] === a[r]) r++; return r ? ct(u[r], a[r]) : u[r] === E ? -1 : a[r] === E ? 1 : 0 }, o }, ot.matches = function(e, t) { return ot(e, null, null, t) }, ot.matchesSelector = function(e, t) { (e.ownerDocument || e) !== p && h(e), t = t.replace(V, "='$1']"); if (n.matchesSelector && v && (!g || !g.test(t)) && (!m || !m.test(t))) try { var r = y.call(e, t); if (r || n.disconnectedMatch || e.document && e.document.nodeType !== 11) return r } catch (i) {} return ot(t, p, null, [e]).length > 0 }, ot.contains = function(e, t) { return (e.ownerDocument || e) !== p && h(e), b(e, t) }, ot.attr = function(e, t) { (e.ownerDocument || e) !== p && h(e); var i = r.attrHandle[t.toLowerCase()], s = i && A.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !v) : undefined; return s !== undefined ? s : n.attributes || !v ? e.getAttribute(t) : (s = e.getAttributeNode(t)) && s.specified ? s.value : null }, ot.error = function(e) { throw new Error("Syntax error, unrecognized expression: " + e) }, ot.uniqueSort = function(e) { var t, r = [], i = 0, s = 0; c = !n.detectDuplicates, l = !n.sortStable && e.slice(0), e.sort(k); if (c) { while (t = e[s++]) t === e[s] && (i = r.push(s)); while (i--) e.splice(r[i], 1) } return l = null, e }, i = ot.getText = function(e) { var t, n = "", r = 0, s = e.nodeType; if (!s) while (t = e[r++]) n += i(t); else if (s === 1 || s === 9 || s === 11) { if (typeof e.textContent == "string") return e.textContent; for (e = e.firstChild; e; e = e.nextSibling) n += i(e) } else if (s === 3 || s === 4) return e.nodeValue; return n }, r = ot.selectors = { cacheLength: 50, createPseudo: at, match: K, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(e) { return e[1] = e[1].replace(nt, rt), e[3] = (e[3] || e[4] || e[5] || "").replace(nt, rt), e[2] === "~=" && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function(e) { return e[1] = e[1].toLowerCase(), e[1].slice(0, 3) === "nth" ? (e[3] || ot.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * (e[3] === "even" || e[3] === "odd")), e[5] = +(e[7] + e[8] || e[3] === "odd")) : e[3] && ot.error(e[0]), e }, PSEUDO: function(e) { var t, n = !e[6] && e[2]; return K.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && $.test(n) && (t = o(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function(e) { var t = e.replace(nt, rt).toLowerCase(); return e === "*" ? function() { return !0 } : function(e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function(e) { var t = T[e + " "]; return t || (t = new RegExp("(^|" + j + ")" + e + "(" + j + "|$)")) && T(e, function(e) { return t.test(typeof e.className == "string" && e.className || typeof e.getAttribute != "undefined" && e.getAttribute("class") || "") }) }, ATTR: function(e, t, n) { return function(r) { var i = ot.attr(r, e); return i == null ? t === "!=" : t ? (i += "", t === "=" ? i === n : t === "!=" ? i !== n : t === "^=" ? n && i.indexOf(n) === 0 : t === "*=" ? n && i.indexOf(n) > -1 : t === "$=" ? n && i.slice(-n.length) === n : t === "~=" ? (" " + i.replace(U, " ") + " ").indexOf(n) > -1 : t === "|=" ? i === n || i.slice(0, n.length + 1) === n + "-" : !1) : !0 } }, CHILD: function(e, t, n, r, i) { var s = e.slice(0, 3) !== "nth", o = e.slice(-4) !== "last", u = t === "of-type"; return r === 1 && i === 0 ? function(e) { return !!e.parentNode } : function(t, n, a) { var f, l, c, h, p, d, v = s !== o ? "nextSibling" : "previousSibling", m = t.parentNode, g = u && t.nodeName.toLowerCase(), y = !a && !u; if (m) { if (s) { while (v) { c = t; while (c = c[v]) if (u ? c.nodeName.toLowerCase() === g : c.nodeType === 1) return !1; d = v = e === "only" && !d && "nextSibling" } return !0 } d = [o ? m.firstChild : m.lastChild]; if (o && y) { l = m[w] || (m[w] = {}), f = l[e] || [], p = f[0] === S && f[1], h = f[0] === S && f[2], c = p && m.childNodes[p]; while (c = ++p && c && c[v] || (h = p = 0) || d.pop()) if (c.nodeType === 1 && ++h && c === t) { l[e] = [S, p, h]; break } } else if (y && (f = (t[w] || (t[w] = {}))[e]) && f[0] === S) h = f[1]; else while (c = ++p && c && c[v] || (h = p = 0) || d.pop()) if ((u ? c.nodeName.toLowerCase() === g : c.nodeType === 1) && ++h) { y && ((c[w] || (c[w] = {}))[e] = [S, h]); if (c === t) break } return h -= i, h === r || h % r === 0 && h / r >= 0 } } }, PSEUDO: function(e, t) { var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ot.error("unsupported pseudo: " + e); return i[w] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? at(function(e, n) { var r, s = i(e, t), o = s.length; while (o--) r = H(e, s[o]), e[r] = !(n[r] = s[o]) }) : function(e) { return i(e, 0, n) }) : i } }, pseudos: { not: at(function(e) { var t = [], n = [], r = u(e.replace(z, "$1")); return r[w] ? at(function(e, t, n, i) { var s, o = r(e, null, i, []), u = e.length; while (u--) if (s = o[u]) e[u] = !(t[u] = s) }) : function(e, i, s) { return t[0] = e, r(t, null, s, n), t[0] = null, !n.pop() } }), has: at(function(e) { return function(t) { return ot(e, t).length > 0 } }), contains: at(function(e) { return e = e.replace(nt, rt), function(t) { return (t.textContent || t.innerText || i(t)).indexOf(e) > -1 } }), lang: at(function(e) { return J.test(e || "") || ot.error("unsupported lang: " + e), e = e.replace(nt, rt).toLowerCase(), function(t) { var n; do if (n = v ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || n.indexOf(e + "-") === 0; while ((t = t.parentNode) && t.nodeType === 1); return !1 } }), target: function(t) { var n = e.location && e.location.hash; return n && n.slice(1) === t.id }, root: function(e) { return e === d }, focus: function(e) { return e === p.activeElement && (!p.hasFocus || p.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: function(e) { return e.disabled === !1 }, disabled: function(e) { return e.disabled === !0 }, checked: function(e) { var t = e.nodeName.toLowerCase(); return t === "input" && !!e.checked || t === "option" && !!e.selected }, selected: function(e) { return e.parentNode && e.parentNode.selectedIndex, e.selected === !0 }, empty: function(e) { for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; return !0 }, parent: function(e) { return !r.pseudos.empty(e) }, header: function(e) { return G.test(e.nodeName) }, input: function(e) { return Q.test(e.nodeName) }, button: function(e) { var t = e.nodeName.toLowerCase(); return t === "input" && e.type === "button" || t === "button" }, text: function(e) { var t; return e.nodeName.toLowerCase() === "input" && e.type === "text" && ((t = e.getAttribute("type")) == null || t.toLowerCase() === "text") }, first: dt(function() { return [0] }), last: dt(function(e, t) { return [t - 1] }), eq: dt(function(e, t, n) { return [n < 0 ? n + t : n] }), even: dt(function(e, t) { var n = 0; for (; n < t; n += 2) e.push(n); return e }), odd: dt(function(e, t) { var n = 1; for (; n < t; n += 2) e.push(n); return e }), lt: dt(function(e, t, n) { var r = n < 0 ? n + t : n; for (; --r >= 0;) e.push(r); return e }), gt: dt(function(e, t, n) { var r = n < 0 ? n + t : n; for (; ++r < t;) e.push(r); return e }) } }, r.pseudos.nth = r.pseudos.eq; for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = ht(t); for (t in { submit: !0, reset: !0 }) r.pseudos[t] = pt(t); return mt.prototype = r.filters = r.pseudos, r.setFilters = new mt, o = ot.tokenize = function(e, t) { var n, i, s, o, u, a, f, l = N[e + " "]; if (l) return t ? 0 : l.slice(0); u = e, a = [], f = r.preFilter; while (u) { if (!n || (i = W.exec(u))) i && (u = u.slice(i[0].length) || u), a.push(s = []); n = !1; if (i = X.exec(u)) n = i.shift(), s.push({ value: n, type: i[0].replace(z, " ") }), u = u.slice(n.length); for (o in r.filter)(i = K[o].exec(u)) && (!f[o] || (i = f[o](i))) && (n = i.shift(), s.push({ value: n, type: o, matches: i }), u = u.slice(n.length)); if (!n) break } return t ? u.length : u ? ot.error(e) : N(e, a).slice(0) }, u = ot.compile = function(e, t) { var n, r = [], i = [], s = C[e + " "]; if (!s) { t || (t = o(e)), n = t.length; while (n--) s = xt(t[n]), s[w] ? r.push(s) : i.push(s); s = C(e, Tt(i, r)), s.selector = e } return s }, a = ot.select = function(e, t, i, s) { var a, f, l, c, h, p = typeof e == "function" && e, d = !s && o(e = p.selector || e); i = i || []; if (d.length === 1) { f = d[0] = d[0].slice(0); if (f.length > 2 && (l = f[0]).type === "ID" && n.getById && t.nodeType === 9 && v && r.relative[f[1].type]) { t = (r.find.ID(l.matches[0].replace(nt, rt), t) || [])[0]; if (!t) return i; p && (t = t.parentNode), e = e.slice(f.shift().value.length) } a = K.needsContext.test(e) ? 0 : f.length; while (a--) { l = f[a]; if (r.relative[c = l.type]) break; if (h = r.find[c]) if (s = h(l.matches[0].replace(nt, rt), et.test(f[0].type) && vt(t.parentNode) || t)) { f.splice(a, 1), e = s.length && gt(f); if (!e) return D.apply(i, s), i; break } } } return (p || u(e, d))(s, t, !v, i, et.test(e) && vt(t.parentNode) || t), i }, n.sortStable = w.split("").sort(k).join("") === w, n.detectDuplicates = !!c, h(), n.sortDetached = ft(function(e) { return e.compareDocumentPosition(p.createElement("div")) & 1 }), ft(function(e) { return e.innerHTML = "", e.firstChild.getAttribute("href") === "#" }) || lt("type|href|height|width", function(e, t, n) { if (!n) return e.getAttribute(t, t.toLowerCase() === "type" ? 1 : 2) }), (!n.attributes || !ft(function(e) { return e.innerHTML = "", e.firstChild.setAttribute("value", ""), e.firstChild.getAttribute("value") === "" })) && lt("value", function(e, t, n) { if (!n && e.nodeName.toLowerCase() === "input") return e.defaultValue }), ft(function(e) { return e.getAttribute("disabled") == null }) || lt(B, function(e, t, n) { var r; if (!n) return e[t] === !0 ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }), ot }(window); jQuery.find = Sizzle, jQuery.expr = Sizzle.selectors, jQuery.expr[":"] = jQuery.expr.pseudos, jQuery.unique = Sizzle.uniqueSort, jQuery.text = Sizzle.getText, jQuery.isXMLDoc = Sizzle.isXML, jQuery.contains = Sizzle.contains; var rneedsContext = jQuery.expr.match.needsContext, rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, risSimple = /^.[^:#\[\.,]*$/; jQuery.filter = function(e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), t.length === 1 && r.nodeType === 1 ? jQuery.find.matchesSelector(r, e) ? [r] : [] : jQuery.find.matches(e, jQuery.grep(t, function(e) { return e.nodeType === 1 })) }, jQuery.fn.extend({ find: function(e) { var t, n = this.length, r = [], i = this; if (typeof e != "string") return this.pushStack(jQuery(e).filter(function() { for (t = 0; t < n; t++) if (jQuery.contains(i[t], this)) return !0 })); for (t = 0; t < n; t++) jQuery.find(e, i[t], r); return r = this.pushStack(n > 1 ? jQuery.unique(r) : r), r.selector = this.selector ? this.selector + " " + e : e, r }, filter: function(e) { return this.pushStack(winnow(this, e || [], !1)) }, not: function(e) { return this.pushStack(winnow(this, e || [], !0)) }, is: function(e) { return !!winnow(this, typeof e == "string" && rneedsContext.test(e) ? jQuery(e) : e || [], !1).length } }); var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, init = jQuery.fn.init = function(e, t) { var n, r; if (!e) return this; if (typeof e == "string") { e[0] === "<" && e[e.length - 1] === ">" && e.length >= 3 ? n = [null, e, null] : n = rquickExpr.exec(e); if (n && (n[1] || !t)) { if (n[1]) { t = t instanceof jQuery ? t[0] : t, jQuery.merge(this, jQuery.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : document, !0)); if (rsingleTag.test(n[1]) && jQuery.isPlainObject(t)) for (n in t) jQuery.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]); return this } return r = document.getElementById(n[2]), r && r.parentNode && (this.length = 1, this[0] = r), this.context = document, this.selector = e, this } return !t || t.jquery ? (t || rootjQuery).find(e) : this.constructor(t).find(e) } return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : jQuery.isFunction(e) ? typeof rootjQuery.ready != "undefined" ? rootjQuery.ready(e) : e(jQuery) : (e.selector !== undefined && (this.selector = e.selector, this.context = e.context), jQuery.makeArray(e, this)) }; init.prototype = jQuery.fn, rootjQuery = jQuery(document); var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { children: !0, contents: !0, next: !0, prev: !0 }; jQuery.extend({ dir: function(e, t, n) { var r = [], i = n !== undefined; while ((e = e[t]) && e.nodeType !== 9) if (e.nodeType === 1) { if (i && jQuery(e).is(n)) break; r.push(e) } return r }, sibling: function(e, t) { var n = []; for (; e; e = e.nextSibling) e.nodeType === 1 && e !== t && n.push(e); return n } }), jQuery.fn.extend({ has: function(e) { var t = jQuery(e, this), n = t.length; return this.filter(function() { var e = 0; for (; e < n; e++) if (jQuery.contains(this, t[e])) return !0 }) }, closest: function(e, t) { var n, r = 0, i = this.length, s = [], o = rneedsContext.test(e) || typeof e != "string" ? jQuery(e, t || this.context) : 0; for (; r < i; r++) for (n = this[r]; n && n !== t; n = n.parentNode) if (n.nodeType < 11 && (o ? o.index(n) > -1 : n.nodeType === 1 && jQuery.find.matchesSelector(n, e))) { s.push(n); break } return this.pushStack(s.length > 1 ? jQuery.unique(s) : s) }, index: function(e) { return e ? typeof e == "string" ? indexOf.call(jQuery(e), this[0]) : indexOf.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function(e, t) { return this.pushStack(jQuery.unique(jQuery.merge(this.get(), jQuery(e, t)))) }, addBack: function(e) { return this.add(e == null ? this.prevObject : this.prevObject.filter(e)) } }), jQuery.each({ parent: function(e) { var t = e.parentNode; return t && t.nodeType !== 11 ? t : null }, parents: function(e) { return jQuery.dir(e, "parentNode") }, parentsUntil: function(e, t, n) { return jQuery.dir(e, "parentNode", n) }, next: function(e) { return sibling(e, "nextSibling") }, prev: function(e) { return sibling(e, "previousSibling") }, nextAll: function(e) { return jQuery.dir(e, "nextSibling") }, prevAll: function(e) { return jQuery.dir(e, "previousSibling") }, nextUntil: function(e, t, n) { return jQuery.dir(e, "nextSibling", n) }, prevUntil: function(e, t, n) { return jQuery.dir(e, "previousSibling", n) }, siblings: function(e) { return jQuery.sibling((e.parentNode || {}).firstChild, e) }, children: function(e) { return jQuery.sibling(e.firstChild) }, contents: function(e) { return e.contentDocument || jQuery.merge([], e.childNodes) } }, function(e, t) { jQuery.fn[e] = function(n, r) { var i = jQuery.map(this, t, n); return e.slice(-5) !== "Until" && (r = n), r && typeof r == "string" && (i = jQuery.filter(r, i)), this.length > 1 && (guaranteedUnique[e] || jQuery.unique(i), rparentsprev.test(e) && i.reverse()), this.pushStack(i) } }); var rnotwhite = /\S+/g, optionsCache = {}; jQuery.Callbacks = function(e) { e = typeof e == "string" ? optionsCache[e] || createOptions(e) : jQuery.extend({}, e); var t, n, r, i, s, o, u = [], a = !e.once && [], f = function(c) { t = e.memory && c, n = !0, o = i || 0, i = 0, s = u.length, r = !0; for (; u && o < s; o++) if (u[o].apply(c[0], c[1]) === !1 && e.stopOnFalse) { t = !1; break } r = !1, u && (a ? a.length && f(a.shift()) : t ? u = [] : l.disable()) }, l = { add: function() { if (u) { var n = u.length; (function o(t) { jQuery.each(t, function(t, n) { var r = jQuery.type(n); r === "function" ? (!e.unique || !l.has(n)) && u.push(n) : n && n.length && r !== "string" && o(n) }) })(arguments), r ? s = u.length : t && (i = n, f(t)) } return this }, remove: function() { return u && jQuery.each(arguments, function(e, t) { var n; while ((n = jQuery.inArray(t, u, n)) > -1) u.splice(n, 1), r && (n <= s && s--, n <= o && o--) }), this }, has: function(e) { return e ? jQuery.inArray(e, u) > -1 : !!u && !!u.length }, empty: function() { return u = [], s = 0, this }, disable: function() { return u = a = t = undefined, this }, disabled: function() { return !u }, lock: function() { return a = undefined, t || l.disable(), this }, locked: function() { return !a }, fireWith: function(e, t) { return u && (!n || a) && (t = t || [], t = [e, t.slice ? t.slice() : t], r ? a.push(t) : f(t)), this }, fire: function() { return l.fireWith(this, arguments), this }, fired: function() { return !!n } }; return l }, jQuery.extend({ Deferred: function(e) { var t = [ ["resolve", "done", jQuery.Callbacks("once memory"), "resolved"], ["reject", "fail", jQuery.Callbacks("once memory"), "rejected"], ["notify", "progress", jQuery.Callbacks("memory")] ], n = "pending", r = { state: function() { return n }, always: function() { return i.done(arguments).fail(arguments), this }, then: function() { var e = arguments; return jQuery.Deferred(function(n) { jQuery.each(t, function(t, s) { var o = jQuery.isFunction(e[t]) && e[t]; i[s[1]](function() { var e = o && o.apply(this, arguments); e && jQuery.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s[0] + "With"](this === r ? n.promise() : this, o ? [e] : arguments) }) }), e = null }).promise() }, promise: function(e) { return e != null ? jQuery.extend(e, r) : r } }, i = {}; return r.pipe = r.then, jQuery.each(t, function(e, s) { var o = s[2], u = s[3]; r[s[1]] = o.add, u && o.add(function() { n = u }, t[e ^ 1][2].disable, t[2][2].lock), i[s[0]] = function() { return i[s[0] + "With"](this === i ? r : this, arguments), this }, i[s[0] + "With"] = o.fireWith }), r.promise(i), e && e.call(i, i), i }, when: function(e) { var t = 0, n = slice.call(arguments), r = n.length, i = r !== 1 || e && jQuery.isFunction(e.promise) ? r : 0, s = i === 1 ? e : jQuery.Deferred(), o = function(e, t, n) { return function(r) { t[e] = this, n[e] = arguments.length > 1 ? slice.call(arguments) : r, n === u ? s.notifyWith(t, n) : --i || s.resolveWith(t, n) } }, u, a, f; if (r > 1) { u = new Array(r), a = new Array(r), f = new Array(r); for (; t < r; t++) n[t] && jQuery.isFunction(n[t].promise) ? n[t].promise().done(o(t, f, n)).fail(s.reject).progress(o(t, a, u)) : --i } return i || s.resolveWith(f, n), s.promise() } }); var readyList; jQuery.fn.ready = function(e) { return jQuery.ready.promise().done(e), this }, jQuery.extend({ isReady: !1, readyWait: 1, holdReady: function(e) { e ? jQuery.readyWait++ : jQuery.ready(!0) }, ready: function(e) { if (e === !0 ? --jQuery.readyWait : jQuery.isReady) return; jQuery.isReady = !0; if (e !== !0 && --jQuery.readyWait > 0) return; readyList.resolveWith(document, [jQuery]), jQuery.fn.triggerHandler && (jQuery(document).triggerHandler("ready"), jQuery(document).off("ready")) } }), jQuery.ready.promise = function(e) { return readyList || (readyList = jQuery.Deferred(), document.readyState === "complete" ? setTimeout(jQuery.ready) : (document.addEventListener("DOMContentLoaded", completed, !1), window.addEventListener("load", completed, !1))), readyList.promise(e) }, jQuery.ready.promise(); var access = jQuery.access = function(e, t, n, r, i, s, o) { var u = 0, a = e.length, f = n == null; if (jQuery.type(n) === "object") { i = !0; for (u in n) jQuery.access(e, t, u, n[u], !0, s, o) } else if (r !== undefined) { i = !0, jQuery.isFunction(r) || (o = !0), f && (o ? (t.call(e, r), t = null) : (f = t, t = function(e, t, n) { return f.call(jQuery(e), n) })); if (t) for (; u < a; u++) t(e[u], n, o ? r : r.call(e[u], u, t(e[u], n))) } return i ? e : f ? t.call(e) : a ? t(e[0], n) : s }; jQuery.acceptData = function(e) { return e.nodeType === 1 || e.nodeType === 9 || !+e.nodeType }, Data.uid = 1, Data.accepts = jQuery.acceptData, Data.prototype = { key: function(e) { if (!Data.accepts(e)) return 0; var t = {}, n = e[this.expando]; if (!n) { n = Data.uid++; try { t[this.expando] = { value: n }, Object.defineProperties(e, t) } catch (r) { t[this.expando] = n, jQuery.extend(e, t) } } return this.cache[n] || (this.cache[n] = {}), n }, set: function(e, t, n) { var r, i = this.key(e), s = this.cache[i]; if (typeof t == "string") s[t] = n; else if (jQuery.isEmptyObject(s)) jQuery.extend(this.cache[i], t); else for (r in t) s[r] = t[r]; return s }, get: function(e, t) { var n = this.cache[this.key(e)]; return t === undefined ? n : n[t] }, access: function(e, t, n) { var r; return t === undefined || t && typeof t == "string" && n === undefined ? (r = this.get(e, t), r !== undefined ? r : this.get(e, jQuery.camelCase(t))) : (this.set(e, t, n), n !== undefined ? n : t) }, remove: function(e, t) { var n, r, i, s = this.key(e), o = this.cache[s]; if (t === undefined) this.cache[s] = {}; else { jQuery.isArray(t) ? r = t.concat(t.map(jQuery.camelCase)) : (i = jQuery.camelCase(t), t in o ? r = [t, i] : (r = i, r = r in o ? [r] : r.match(rnotwhite) || [])), n = r.length; while (n--) delete o[r[n]] } }, hasData: function(e) { return !jQuery.isEmptyObject(this.cache[e[this.expando]] || {}) }, discard: function(e) { e[this.expando] && delete this.cache[e[this.expando]] } }; var data_priv = new Data, data_user = new Data, rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /([A-Z])/g; jQuery.extend({ hasData: function(e) { return data_user.hasData(e) || data_priv.hasData(e) }, data: function(e, t, n) { return data_user.access(e, t, n) }, removeData: function(e, t) { data_user.remove(e, t) }, _data: function(e, t, n) { return data_priv.access(e, t, n) }, _removeData: function(e, t) { data_priv.remove(e, t) } }), jQuery.fn.extend({ data: function(e, t) { var n, r, i, s = this[0], o = s && s.attributes; if (e === undefined) { if (this.length) { i = data_user.get(s); if (s.nodeType === 1 && !data_priv.get(s, "hasDataAttrs")) { n = o.length; while (n--) o[n] && (r = o[n].name, r.indexOf("data-") === 0 && (r = jQuery.camelCase(r.slice(5)), dataAttr(s, r, i[r]))); data_priv.set(s, "hasDataAttrs", !0) } } return i } return typeof e == "object" ? this.each(function() { data_user.set(this, e) }) : access(this, function(t) { var n, r = jQuery.camelCase(e); if (s && t === undefined) { n = data_user.get(s, e); if (n !== undefined) return n; n = data_user.get(s, r); if (n !== undefined) return n; n = dataAttr(s, r, undefined); if (n !== undefined) return n; return } this.each(function() { var n = data_user.get(this, r); data_user.set(this, r, t), e.indexOf("-") !== -1 && n !== undefined && data_user.set(this, e, t) }) }, null, t, arguments.length > 1, null, !0) }, removeData: function(e) { return this.each(function() { data_user.remove(this, e) }) } }), jQuery.extend({ queue: function(e, t, n) { var r; if (e) return t = (t || "fx") + "queue", r = data_priv.get(e, t), n && (!r || jQuery.isArray(n) ? r = data_priv.access(e, t, jQuery.makeArray(n)) : r.push(n)), r || [] }, dequeue: function(e, t) { t = t || "fx"; var n = jQuery.queue(e, t), r = n.length, i = n.shift(), s = jQuery._queueHooks(e, t), o = function() { jQuery.dequeue(e, t) }; i === "inprogress" && (i = n.shift(), r--), i && (t === "fx" && n.unshift("inprogress"), delete s.stop, i.call(e, o, s)), !r && s && s.empty.fire() }, _queueHooks: function(e, t) { var n = t + "queueHooks"; return data_priv.get(e, n) || data_priv.access(e, n, { empty: jQuery.Callbacks("once memory").add(function() { data_priv.remove(e, [t + "queue", n]) }) }) } }), jQuery.fn.extend({ queue: function(e, t) { var n = 2; return typeof e != "string" && (t = e, e = "fx", n--), arguments.length < n ? jQuery.queue(this[0], e) : t === undefined ? this : this.each(function() { var n = jQuery.queue(this, e, t); jQuery._queueHooks(this, e), e === "fx" && n[0] !== "inprogress" && jQuery.dequeue(this, e) }) }, dequeue: function(e) { return this.each(function() { jQuery.dequeue(this, e) }) }, clearQueue: function(e) { return this.queue(e || "fx", []) }, promise: function(e, t) { var n, r = 1, i = jQuery.Deferred(), s = this, o = this.length, u = function() { --r || i.resolveWith(s, [s]) }; typeof e != "string" && (t = e, e = undefined), e = e || "fx"; while (o--) n = data_priv.get(s[o], e + "queueHooks"), n && n.empty && (r++, n.empty.add(u)); return u(), i.promise(t) } }); var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, cssExpand = ["Top", "Right", "Bottom", "Left"], isHidden = function(e, t) { return e = t || e, jQuery.css(e, "display") === "none" || !jQuery.contains(e.ownerDocument, e) }, rcheckableType = /^(?:checkbox|radio)$/i; (function() { var e = document.createDocumentFragment(), t = e.appendChild(document.createElement("div")), n = document.createElement("input"); n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), t.appendChild(n), support.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "", support.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue })(); var strundefined = typeof undefined; support.focusinBubbles = "onfocusin" in window; var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; jQuery.event = { global: {}, add: function(e, t, n, r, i) { var s, o, u, a, f, l, c, h, p, d, v, m = data_priv.get(e); if (!m) return; n.handler && (s = n, n = s.handler, i = s.selector), n.guid || (n.guid = jQuery.guid++), (a = m.events) || (a = m.events = {}), (o = m.handle) || (o = m.handle = function(t) { return typeof jQuery !== strundefined && jQuery.event.triggered !== t.type ? jQuery.event.dispatch.apply(e, arguments) : undefined }), t = (t || "").match(rnotwhite) || [""], f = t.length; while (f--) { u = rtypenamespace.exec(t[f]) || [], p = v = u[1], d = (u[2] || "").split(".").sort(); if (!p) continue; c = jQuery.event.special[p] || {}, p = (i ? c.delegateType : c.bindType) || p, c = jQuery.event.special[p] || {}, l = jQuery.extend({ type: p, origType: v, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && jQuery.expr.match.needsContext.test(i), namespace: d.join(".") }, s), (h = a[p]) || (h = a[p] = [], h.delegateCount = 0, (!c.setup || c.setup.call(e, r, d, o) === !1) && e.addEventListener && e.addEventListener(p, o, !1)), c.add && (c.add.call(e, l), l.handler.guid || (l.handler.guid = n.guid)), i ? h.splice(h.delegateCount++, 0, l) : h.push(l), jQuery.event.global[p] = !0 } }, remove: function(e, t, n, r, i) { var s, o, u, a, f, l, c, h, p, d, v, m = data_priv.hasData(e) && data_priv.get(e); if (!m || !(a = m.events)) return; t = (t || "").match(rnotwhite) || [""], f = t.length; while (f--) { u = rtypenamespace.exec(t[f]) || [], p = v = u[1], d = (u[2] || "").split(".").sort(); if (!p) { for (p in a) jQuery.event.remove(e, p + t[f], n, r, !0); continue } c = jQuery.event.special[p] || {}, p = (r ? c.delegateType : c.bindType) || p, h = a[p] || [], u = u[2] && new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)"), o = s = h.length; while (s--) l = h[s], (i || v === l.origType) && (!n || n.guid === l.guid) && (!u || u.test(l.namespace)) && (!r || r === l.selector || r === "**" && l.selector) && (h.splice(s, 1), l.selector && h.delegateCount--, c.remove && c.remove.call(e, l)); o && !h.length && ((!c.teardown || c.teardown.call(e, d, m.handle) === !1) && jQuery.removeEvent(e, p, m.handle), delete a[p]) } jQuery.isEmptyObject(a) && (delete m.handle, data_priv.remove(e, "events")) }, trigger: function(e, t, n, r) { var i, s, o, u, a, f, l, c = [n || document], h = hasOwn.call(e, "type") ? e.type : e, p = hasOwn.call(e, "namespace") ? e.namespace.split(".") : []; s = o = n = n || document; if (n.nodeType === 3 || n.nodeType === 8) return; if (rfocusMorph.test(h + jQuery.event.triggered)) return; h.indexOf(".") >= 0 && (p = h.split("."), h = p.shift(), p.sort()), a = h.indexOf(":") < 0 && "on" + h, e = e[jQuery.expando] ? e : new jQuery.Event(h, typeof e == "object" && e), e.isTrigger = r ? 2 : 3, e.namespace = p.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = undefined, e.target || (e.target = n), t = t == null ? [e] : jQuery.makeArray(t, [e]), l = jQuery.event.special[h] || {}; if (!r && l.trigger && l.trigger.apply(n, t) === !1) return; if (!r && !l.noBubble && !jQuery.isWindow(n)) { u = l.delegateType || h, rfocusMorph.test(u + h) || (s = s.parentNode); for (; s; s = s.parentNode) c.push(s), o = s; o === (n.ownerDocument || document) && c.push(o.defaultView || o.parentWindow || window) } i = 0; while ((s = c[i++]) && !e.isPropagationStopped()) e.type = i > 1 ? u : l.bindType || h, f = (data_priv.get(s, "events") || {})[e.type] && data_priv.get(s, "handle"), f && f.apply(s, t), f = a && s[a], f && f.apply && jQuery.acceptData(s) && (e.result = f.apply(s, t), e.result === !1 && e.preventDefault()); return e.type = h, !r && !e.isDefaultPrevented() && (!l._default || l._default.apply(c.pop(), t) === !1) && jQuery.acceptData(n) && a && jQuery.isFunction(n[h]) && !jQuery.isWindow(n) && (o = n[a], o && (n[a] = null), jQuery.event.triggered = h, n[h](), jQuery.event.triggered = undefined, o && (n[a] = o)), e.result }, dispatch: function(e) { e = jQuery.event.fix(e); var t, n, r, i, s, o = [], u = slice.call(arguments), a = (data_priv.get(this, "events") || {})[e.type] || [], f = jQuery.event.special[e.type] || {}; u[0] = e, e.delegateTarget = this; if (f.preDispatch && f.preDispatch.call(this, e) === !1) return; o = jQuery.event.handlers.call(this, e, a), t = 0; while ((i = o[t++]) && !e.isPropagationStopped()) { e.currentTarget = i.elem, n = 0; while ((s = i.handlers[n++]) && !e.isImmediatePropagationStopped()) if (!e.namespace_re || e.namespace_re.test(s.namespace)) e.handleObj = s, e.data = s.data, r = ((jQuery.event.special[s.origType] || {}).handle || s.handler).apply(i.elem, u), r !== undefined && (e.result = r) === !1 && (e.preventDefault(), e.stopPropagation()) } return f.postDispatch && f.postDispatch.call(this, e), e.result }, handlers: function(e, t) { var n, r, i, s, o = [], u = t.delegateCount, a = e.target; if (u && a.nodeType && (!e.button || e.type !== "click")) for (; a !== this; a = a.parentNode || this) if (a.disabled !== !0 || e.type !== "click") { r = []; for (n = 0; n < u; n++) s = t[n], i = s.selector + " ", r[i] === undefined && (r[i] = s.needsContext ? jQuery(i, this).index(a) >= 0 : jQuery.find(i, this, null, [a]).length), r[i] && r.push(s); r.length && o.push({ elem: a, handlers: r }) } return u < t.length && o.push({ elem: this, handlers: t.slice(u) }), o }, props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: { props: "char charCode key keyCode".split(" "), filter: function(e, t) { return e.which == null && (e.which = t.charCode != null ? t.charCode : t.keyCode), e } }, mouseHooks: { props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function(e, t) { var n, r, i, s = t.button; return e.pageX == null && t.clientX != null && (n = e.target.ownerDocument || document, r = n.documentElement, i = n.body, e.pageX = t.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)), !e.which && s !== undefined && (e.which = s & 1 ? 1 : s & 2 ? 3 : s & 4 ? 2 : 0), e } }, fix: function(e) { if (e[jQuery.expando]) return e; var t, n, r, i = e.type, s = e, o = this.fixHooks[i]; o || (this.fixHooks[i] = o = rmouseEvent.test(i) ? this.mouseHooks : rkeyEvent.test(i) ? this.keyHooks : {}), r = o.props ? this.props.concat(o.props) : this.props, e = new jQuery.Event(s), t = r.length; while (t--) n = r[t], e[n] = s[n]; return e.target || (e.target = document), e.target.nodeType === 3 && (e.target = e.target.parentNode), o.filter ? o.filter(e, s) : e }, special: { load: { noBubble: !0 }, focus: { trigger: function() { if (this !== safeActiveElement() && this.focus) return this.focus(), !1 }, delegateType: "focusin" }, blur: { trigger: function() { if (this === safeActiveElement() && this.blur) return this.blur(), !1 }, delegateType: "focusout" }, click: { trigger: function() { if (this.type === "checkbox" && this.click && jQuery.nodeName(this, "input")) return this.click(), !1 }, _default: function(e) { return jQuery.nodeName(e.target, "a") } }, beforeunload: { postDispatch: function(e) { e.result !== undefined && e.originalEvent && (e.originalEvent.returnValue = e.result) } } }, simulate: function(e, t, n, r) { var i = jQuery.extend(new jQuery.Event, n, { type: e, isSimulated: !0, originalEvent: {} }); r ? jQuery.event.trigger(i, null, t) : jQuery.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault() } }, jQuery.removeEvent = function(e, t, n) { e.removeEventListener && e.removeEventListener(t, n, !1) }, jQuery.Event = function(e, t) { if (!(this instanceof jQuery.Event)) return new jQuery.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === undefined && e.returnValue === !1 ? returnTrue : returnFalse) : this.type = e, t && jQuery.extend(this, t), this.timeStamp = e && e.timeStamp || jQuery.now(), this[jQuery.expando] = !0 }, jQuery.Event.prototype = { isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = returnTrue, e && e.preventDefault && e.preventDefault() }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = returnTrue, e && e.stopPropagation && e.stopPropagation() }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = returnTrue, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation() } }, jQuery.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function(e, t) { jQuery.event.special[e] = { delegateType: t, bindType: t, handle: function(e) { var n, r = this, i = e.relatedTarget, s = e.handleObj; if (!i || i !== r && !jQuery.contains(r, i)) e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t; return n } } }), support.focusinBubbles || jQuery.each({ focus: "focusin", blur: "focusout" }, function(e, t) { var n = function(e) { jQuery.event.simulate(t, e.target, jQuery.event.fix(e), !0) }; jQuery.event.special[t] = { setup: function() { var r = this.ownerDocument || this, i = data_priv.access(r, t); i || r.addEventListener(e, n, !0), data_priv.access(r, t, (i || 0) + 1) }, teardown: function() { var r = this.ownerDocument || this, i = data_priv.access(r, t) - 1; i ? data_priv.access(r, t, i) : (r.removeEventListener(e, n, !0), data_priv.remove(r, t)) } } }), jQuery.fn.extend({ on: function(e, t, n, r, i) { var s, o; if (typeof e == "object") { typeof t != "string" && (n = n || t, t = undefined); for (o in e) this.on(o, t, n, e[o], i); return this } n == null && r == null ? (r = t, n = t = undefined) : r == null && (typeof t == "string" ? (r = n, n = undefined) : (r = n, n = t, t = undefined)); if (r === !1) r = returnFalse; else if (!r) return this; return i === 1 && (s = r, r = function(e) { return jQuery().off(e), s.apply(this, arguments) }, r.guid = s.guid || (s.guid = jQuery.guid++)), this.each(function() { jQuery.event.add(this, e, r, n, t) }) }, one: function(e, t, n, r) { return this.on(e, t, n, r, 1) }, off: function(e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, jQuery(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if (typeof e == "object") { for (i in e) this.off(i, t, e[i]); return this } if (t === !1 || typeof t == "function") n = t, t = undefined; return n === !1 && (n = returnFalse), this.each(function() { jQuery.event.remove(this, e, n, t) }) }, trigger: function(e, t) { return this.each(function() { jQuery.event.trigger(e, t, this) }) }, triggerHandler: function(e, t) { var n = this[0]; if (n) return jQuery.event.trigger(e, t, n, !0) } }); var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, rtagName = /<([\w:]+)/, rhtml = /<|?\w+;/, rnoInnerhtml = /<(?:script|style|link)/i, rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rscriptType = /^$|\/(?:java|ecma)script/i, rscriptTypeMasked = /^true\/(.*)/, rcleanScript = /^\s*\s*$/g, wrapMap = { option: [1, ""], thead: [1, "