text: function _init(){"use strict"; $.AdminLTE.layout = {activate:function(){var e = this; e.fix(), e.fixSidebar(), $(window, ".wrapper").resize(function(){e.fix(), e.fixSidebar()})}, fix:function(){var e = $(".main-header").outerHeight() + $(".main-footer").outerHeight(), t = $(window).height(), n = $(".sidebar").height(); if ($("body").hasClass("fixed"))$(".content-wrapper, .right-side").css("min-height", t - $(".main-footer").outerHeight()); else{var r; t >= n?($(".content-wrapper, .right-side").css("min-height", t - e), r = t - e):($(".content-wrapper, .right-side").css("min-height", n), r = n); var i = $($.AdminLTE.options.controlSidebarOptions.selector); void 0 !== i && i.height() > r && $(".content-wrapper, .right-side").css("min-height", i.height())}}, fixSidebar:function(){if (!$("body").hasClass("fixed"))return void(void 0 !== $.fn.slimScroll && $(".sidebar").slimScroll({destroy:!0}).height("auto")); void 0 === $.fn.slimScroll && window.console && window.console.error("Error: the fixed layout requires the slimscroll plugin!"), $.AdminLTE.options.sidebarSlimScroll && void 0 !== $.fn.slimScroll && ($(".sidebar").slimScroll({destroy:!0}).height("auto"), $(".sidebar").slimscroll({height:$(window).height() - $(".main-header").height() + "px", color:"rgba(0,0,0,0.2)", size:"3px"}))}}, $.AdminLTE.pushMenu = {activate:function(e){var t = $.AdminLTE.options.screenSizes; $(document).on("click", e, function(e){e.preventDefault(), $(window).width() > t.sm - 1?$("body").hasClass("sidebar-collapse")?$("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu"):$("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").hasClass("sidebar-open")?$("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu"):$("body").addClass("sidebar-open").trigger("expanded.pushMenu")}), $(".content-wrapper").click(function(){$(window).width() <= t.sm - 1 && $("body").hasClass("sidebar-open") && $("body").removeClass("sidebar-open")}), ($.AdminLTE.options.sidebarExpandOnHover || $("body").hasClass("fixed") && $("body").hasClass("sidebar-mini")) && this.expandOnHover()}, expandOnHover:function(){var e = this, t = $.AdminLTE.options.screenSizes.sm - 1; $(".main-sidebar").hover(function(){$("body").hasClass("sidebar-mini") && $("body").hasClass("sidebar-collapse") && $(window).width() > t && e.expand()}, function(){$("body").hasClass("sidebar-mini") && $("body").hasClass("sidebar-expanded-on-hover") && $(window).width() > t && e.collapse()})}, expand:function(){$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")}, collapse:function(){$("body").hasClass("sidebar-expanded-on-hover") && $("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")}}, $.AdminLTE.tree = function(e){var t = this, n = $.AdminLTE.options.animationSpeed; $(document).off("click", e + " li a").on("click", e + " li a", function(e){var r = $(this), i = r.next(); if (i.is(".treeview-menu") && i.is(":visible") && !$("body").hasClass("sidebar-collapse"))i.slideUp(n, function(){i.removeClass("menu-open")}), i.parent("li").removeClass("active"); else if (i.is(".treeview-menu") && !i.is(":visible")){var o = r.parents("ul").first(), a = o.find("ul:visible").slideUp(n); a.removeClass("menu-open"); var s = r.parent("li"); i.slideDown(n, function(){i.addClass("menu-open"), o.find("li.active").removeClass("active"), s.addClass("active"), t.layout.fix()})}i.is(".treeview-menu") && e.preventDefault()})}, $.AdminLTE.controlSidebar = {activate:function(){var e = this, t = $.AdminLTE.options.controlSidebarOptions, n = $(t.selector); $(t.toggleBtnSelector).on("click", function(r){r.preventDefault(), n.hasClass("control-sidebar-open") || $("body").hasClass("control-sidebar-open")?e.close(n, t.slide):e.open(n, t.slide)}); var r = $(".control-sidebar-bg"); e._fix(r), $("body").hasClass("fixed")?e._fixForFixed(n):$(".content-wrapper, .right-side").height() < n.height() && e._fixForContent(n)}, open:function(e, t){t?e.addClass("control-sidebar-open"):$("body").addClass("control-sidebar-open")}, close:function(e, t){t?e.removeClass("control-sidebar-open"):$("body").removeClass("control-sidebar-open")}, _fix:function(e){var t = this; if ($("body").hasClass("layout-boxed")){if (e.css("position", "absolute"), e.height($(".wrapper").height()), t.hasBindedResize)return; $(window).resize(function(){t._fix(e)}), t.hasBindedResize = !0} else e.css({position:"fixed", height:"auto"})}, _fixForFixed:function(e){e.css({position:"fixed", "max-height":"100%", overflow:"auto", "padding-bottom":"50px"})}, _fixForContent:function(e){$(".content-wrapper, .right-side").css("min-height", e.height())}}, $.AdminLTE.boxWidget = {selectors:$.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors, icons:$.AdminLTE.options.boxWidgetOptions.boxWidgetIcons, animationSpeed:$.AdminLTE.options.animationSpeed, activate:function(e){var t = this; e || (e = document), $(e).on("click", t.selectors.collapse, function(e){e.preventDefault(), t.collapse($(this))}), $(e).on("click", t.selectors.remove, function(e){e.preventDefault(), t.remove($(this))})}, collapse:function(e){var t = this, n = e.parents(".box").first(), r = n.find("> .box-body, > .box-footer, > form  >.box-body, > form > .box-footer"); n.hasClass("collapsed-box")?(e.children(":first").removeClass(t.icons.open).addClass(t.icons.collapse), r.slideDown(t.animationSpeed, function(){n.removeClass("collapsed-box")})):(e.children(":first").removeClass(t.icons.collapse).addClass(t.icons.open), r.slideUp(t.animationSpeed, function(){n.addClass("collapsed-box")}))}, remove:function(e){e.parents(".box").first().slideUp(this.animationSpeed)}}}if (function(e, t){"object" == typeof module && "object" == typeof module.exports?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)}("undefined" != typeof window?window:this, function(e, t){function n(e){var t = !!e && "length"in e && e.length, n = oe.type(e); return"function" !== n && !oe.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e)}function r(e, t, n){if (oe.isFunction(t))return oe.grep(e, function(e, r){return!!t.call(e, r, e) !== n}); if (t.nodeType)return oe.grep(e, function(e){return e === t !== n}); if ("string" == typeof t){if (ge.test(t))return oe.filter(t, e, n); t = oe.filter(t, e)}return oe.grep(e, function(e){return Z.call(t, e) > - 1 !== n})}function i(e, t){for (; (e = e[t]) && 1 !== e.nodeType; ); return e}function o(e){var t = {}; return oe.each(e.match(we) || [], function(e, n){t[n] = !0}), t}function a(){J.removeEventListener("DOMContentLoaded", a), e.removeEventListener("load", a), oe.ready()}function s(){this.expando = oe.expando + s.uid++}function l(e, t, n){var r; if (void 0 === n && 1 === e.nodeType)if (r = "data-" + t.replace($e, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))){try{n = "true" === n || "false" !== n && ("null" === n?null: + n + "" === n? + n:_e.test(n)?oe.parseJSON(n):n)} catch (e){}De.set(e, t, n)} else n = void 0; return n}function c(e, t, n, r){var i, o = 1, a = 20, s = r?function(){return r.cur()}:function(){return oe.css(e, t, "")}, l = s(), c = n && n[3] || (oe.cssNumber[t]?"":"px"), u = (oe.cssNumber[t] || "px" !== c && + l) && Ee.exec(oe.css(e, t)); if (u && u[3] !== c){c = c || u[3], n = n || [], u = + l || 1; do{o = o || ".5", u /= o, oe.style(e, t, u + c)}while (o !== (o = s() / l) && 1 !== o && --a)}return n && (u = + u || + l || 0, i = n[1]?u + (n[1] + 1) * n[2]: + n[2], r && (r.unit = c, r.start = u, r.end = i)), i}function u(e, t){var n = void 0 !== e.getElementsByTagName?e.getElementsByTagName(t || "*"):void 0 !== e.querySelectorAll?e.querySelectorAll(t || "*"):[]; return void 0 === t || t && oe.nodeName(e, t)?oe.merge([e], n):n}function d(e, t){for (var n = 0, r = e.length; r > n; n++)Ce.set(e[n], "globalEval", !t || Ce.get(t[n], "globalEval"))}function h(e, t, n, r, i){for (var o, a, s, l, c, h, f = t.createDocumentFragment(), p = [], g = 0, v = e.length; v > g; g++)if ((o = e[g]) || 0 === o)if ("object" === oe.type(o))oe.merge(p, o.nodeType?[o]:o); else if (Re.test(o)){for (a = a || f.appendChild(t.createElement("div")), s = (je.exec(o) || ["", ""])[1].toLowerCase(), l = Ne[s] || Ne._default, a.innerHTML = l[1] + oe.htmlPrefilter(o) + l[2], h = l[0]; h--; )a = a.lastChild; oe.merge(p, a.childNodes), a = f.firstChild, a.textContent = ""} else p.push(t.createTextNode(o)); for (f.textContent = "", g = 0; o = p[g++]; )if (r && oe.inArray(o, r) > - 1)i && i.push(o); else if (c = oe.contains(o.ownerDocument, o), a = u(f.appendChild(o), "script"), c && d(a), n)for (h = 0; o = a[h++]; )Oe.test(o.type || "") && n.push(o); return f}function f(){return!0}function p(){return!1}function g(){try{return J.activeElement} catch (e){}}function v(e, t, n, r, i, o){var a, s; if ("object" == typeof t){"string" != typeof n && (r = r || n, n = void 0); for (s in t)v(e, s, n, r, t[s], o); return e}if (null == r && null == i?(i = n, r = n = void 0):null == i && ("string" == typeof n?(i = r, r = void 0):(i = r, r = n, n = void 0)), !1 === i)i = p; else if (!i)return e; return 1 === o && (a = i, i = function(e){return oe().off(e), a.apply(this, arguments)}, i.guid = a.guid || (a.guid = oe.guid++)), e.each(function(){oe.event.add(this, t, i, r, n)})}function m(e, t){return oe.nodeName(e, "table") && oe.nodeName(11 !== t.nodeType?t:t.firstChild, "tr")?e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")):e}function y(e){return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e}function b(e){var t = Ue.exec(e.type); return t?e.type = t[1]:e.removeAttribute("type"), e}function w(e, t){var n, r, i, o, a, s, l, c; if (1 === t.nodeType){if (Ce.hasData(e) && (o = Ce.access(e), a = Ce.set(t, o), c = o.events)){delete a.handle, a.events = {}; for (i in c)for (n = 0, r = c[i].length; r > n; n++)oe.event.add(t, i, c[i][n])}De.hasData(e) && (s = De.access(e), l = oe.extend({}, s), De.set(t, l))}}function x(e, t){var n = t.nodeName.toLowerCase(); "input" === n && Le.test(e.type)?t.checked = e.checked:"input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue)}function S(e, t, n, r){t = Q.apply([], t); var i, o, a, s, l, c, d = 0, f = e.length, p = f - 1, g = t[0], v = oe.isFunction(g); if (v || f > 1 && "string" == typeof g && !re.checkClone && We.test(g))return e.each(function(i){var o = e.eq(i); v && (t[0] = g.call(this, i, o.html())), S(o, t, n, r)}); if (f && (i = h(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)){for (a = oe.map(u(i, "script"), y), s = a.length; f > d; d++)l = i, d !== p && (l = oe.clone(l, !0, !0), s && oe.merge(a, u(l, "script"))), n.call(e[d], l, d); if (s)for (c = a[a.length - 1].ownerDocument, oe.map(a, b), d = 0; s > d; d++)l = a[d], Oe.test(l.type || "") && !Ce.access(l, "globalEval") && oe.contains(c, l) && (l.src?oe._evalUrl && oe._evalUrl(l.src):oe.globalEval(l.textContent.replace(Be, "")))}return e}function T(e, t, n){for (var r, i = t?oe.filter(t, e):e, o = 0; null != (r = i[o]); o++)n || 1 !== r.nodeType || oe.cleanData(u(r)), r.parentNode && (n && oe.contains(r.ownerDocument, r) && d(u(r, "script")), r.parentNode.removeChild(r)); return e}function C(e, t){var n = oe(t.createElement(e)).appendTo(t.body), r = oe.css(n[0], "display"); return n.detach(), r}function D(e){var t = J, n = Ge[e]; return n || (n = C(e, t), "none" !== n && n || (ze = (ze || oe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = ze[0].contentDocument, t.write(), t.close(), n = C(e, t), ze.detach()), Ge[e] = n), n}function _(e, t, n){var r, i, o, a, s = e.style; return n = n || Je(e), a = n?n.getPropertyValue(t) || n[t]:void 0, "" !== a && void 0 !== a || oe.contains(e.ownerDocument, e) || (a = oe.style(e, t)), n && !re.pixelMarginRight() && Xe.test(a) && Ve.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o), void 0 !== a?a + "":a}function $(e, t){return{get:function(){return e()?void delete this.get:(this.get = t).apply(this, arguments)}}}function A(e){if (e in nt)return e; for (var t = e[0].toUpperCase() + e.slice(1), n = tt.length; n--; )if ((e = tt[n] + t)in nt)return e}function E(e, t, n){var r = Ee.exec(t); return r?Math.max(0, r[2] - (n || 0)) + (r[3] || "px"):t}function I(e, t, n, r, i){for (var o = n === (r?"border":"content")?4:"width" === t?1:0, a = 0; 4 > o; o += 2)"margin" === n && (a += oe.css(e, n + Ie[o], !0, i)), r?("content" === n && (a -= oe.css(e, "padding" + Ie[o], !0, i)), "margin" !== n && (a -= oe.css(e, "border" + Ie[o] + "Width", !0, i))):(a += oe.css(e, "padding" + Ie[o], !0, i), "padding" !== n && (a += oe.css(e, "border" + Ie[o] + "Width", !0, i))); return a}function k(t, n, r){var i = !0, o = "width" === n?t.offsetWidth:t.offsetHeight, a = Je(t), s = "border-box" === oe.css(t, "boxSizing", !1, a); if (J.msFullscreenElement && e.top !== e && t.getClientRects().length && (o = Math.round(100 * t.getBoundingClientRect()[n])), 0 >= o || null == o){if (o = _(t, n, a), (0 > o || null == o) && (o = t.style[n]), Xe.test(o))return o; i = s && (re.boxSizingReliable() || o === t.style[n]), o = parseFloat(o) || 0}return o + I(t, n, r || (s?"border":"content"), i, a) + "px"}function L(e, t){for (var n, r, i, o = [], a = 0, s = e.length; s > a; a++)r = e[a], r.style && (o[a] = Ce.get(r, "olddisplay"), n = r.style.display, t?(o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && ke(r) && (o[a] = Ce.access(r, "olddisplay", D(r.nodeName)))):(i = ke(r), "none" === n && i || Ce.set(r, "olddisplay", i?n:oe.css(r, "display")))); for (a = 0; s > a; a++)r = e[a], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t?o[a] || "":"none")); return e}function j(e, t, n, r, i){return new j.prototype.init(e, t, n, r, i)}function O(){return e.setTimeout(function(){rt = void 0}), rt = oe.now()}function N(e, t){var n, r = 0, i = {height:e}; for (t = t?1:0; 4 > r; r += 2 - t)n = Ie[r], i["margin" + n] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i}function R(e, t, n){for (var r, i = (H.tweeners[t] || []).concat(H.tweeners["*"]), o = 0, a = i.length; a > o; o++)if (r = i[o].call(n, t, e))return r}function P(e, t, n){var r, i, o, a, s, l, c, u = this, d = {}, h = e.style, f = e.nodeType && ke(e), p = Ce.get(e, "fxshow"); n.queue || (s = oe._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function(){s.unqueued || l()}), s.unqueued++, u.always(function(){u.always(function(){s.unqueued--, oe.queue(e, "fx").length || s.empty.fire()})})), 1 === e.nodeType && ("height"in t || "width"in t) && (n.overflow = [h.overflow, h.overflowX, h.overflowY], c = oe.css(e, "display"), "inline" === ("none" === c?Ce.get(e, "olddisplay") || D(e.nodeName):c) && "none" === oe.css(e, "float") && (h.display = "inline-block")), n.overflow && (h.overflow = "hidden", u.always(function(){h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]})); for (r in t)if (i = t[r], ot.exec(i)){if (delete t[r], o = o || "toggle" === i, i === (f?"hide":"show")){if ("show" !== i || !p || void 0 === p[r])continue; f = !0}d[r] = p && p[r] || oe.style(e, r)} else c = void 0; if (oe.isEmptyObject(d))"inline" === ("none" === c?D(e.nodeName):c) && (h.display = c); else{p?"hidden"in p && (f = p.hidden):p = Ce.access(e, "fxshow", {}), o && (p.hidden = !f), f?oe(e).show():u.done(function(){oe(e).hide()}), u.done(function(){var t; Ce.remove(e, "fxshow"); for (t in d)oe.style(e, t, d[t])}); for (r in d)a = R(f?p[r]:0, r, u), r in p || (p[r] = a.start, f && (a.end = a.start, a.start = "width" === r || "height" === r?1:0))}}function F(e, t){var n, r, i, o, a; for (n in e)if (r = oe.camelCase(n), i = t[r], o = e[n], oe.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = oe.cssHooks[r]) && "expand"in a){o = a.expand(o), delete e[r]; for (n in o)n in e || (e[n] = o[n], t[n] = i)} else t[r] = i}function H(e, t, n){var r, i, o = 0, a = H.prefilters.length, s = oe.Deferred().always(function(){delete l.elem}), l = function(){if (i)return!1; for (var t = rt || O(), n = Math.max(0, c.startTime + c.duration - t), r = n / c.duration || 0, o = 1 - r, a = 0, l = c.tweens.length; l > a; a++)c.tweens[a].run(o); return s.notifyWith(e, [c, o, n]), 1 > o && l?n:(s.resolveWith(e, [c]), !1)}, c = s.promise({elem:e, props:oe.extend({}, t), opts:oe.extend(!0, {specialEasing:{}, easing:oe.easing._default}, n), originalProperties:t, originalOptions:n, startTime:rt || O(), duration:n.duration, tweens:[], createTween:function(t, n){var r = oe.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing); return c.tweens.push(r), r}, stop:function(t){var n = 0, r = t?c.tweens.length:0; if (i)return this; for (i = !0; r > n; n++)c.tweens[n].run(1); return t?(s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c, t])):s.rejectWith(e, [c, t]), this}}), u = c.props; for (F(u, c.opts.specialEasing); a > o; o++)if (r = H.prefilters[o].call(c, e, u, c.opts))return oe.isFunction(r.stop) && (oe._queueHooks(c.elem, c.opts.queue).stop = oe.proxy(r.stop, r)), r; return oe.map(u, R, c), oe.isFunction(c.opts.start) && c.opts.start.call(e, c), oe.fx.timer(oe.extend(l, {elem:e, anim:c, queue:c.opts.queue})), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function q(e){return e.getAttribute && e.getAttribute("class") || ""}function M(e){return function(t, n){"string" != typeof t && (n = t, t = "*"); var r, i = 0, o = t.toLowerCase().match(we) || []; if (oe.isFunction(n))for (; r = o[i++]; )"+" === r[0]?(r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)):(e[r] = e[r] || []).push(n)}}function W(e, t, n, r){function i(s){var l; return o[s] = !0, oe.each(e[s] || [], function(e, s){var c = s(t, n, r); return"string" != typeof c || a || o[c]?a?!(l = c):void 0:(t.dataTypes.unshift(c), i(c), !1)}), l}var o = {}, a = e === Dt; return i(t.dataTypes[0]) || !o["*"] && i("*")}function U(e, t){var n, r, i = oe.ajaxSettings.flatOptions || {}; for (n in t)void 0 !== t[n] && ((i[n]?e:r || (r = {}))[n] = t[n]); return r && oe.extend(!0, e, r), e}function B(e, t, n){for (var r, i, o, a, s = e.contents, l = e.dataTypes; "*" === l[0]; )l.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r)for (i in s)if (s[i] && s[i].test(r)){l.unshift(i); break}if (l[0]in n)o = l[0]; else{for (i in n){if (!l[0] || e.converters[i + " " + l[0]]){o = i; break}a || (a = i)}o = o || a}return o?(o !== l[0] && l.unshift(o), n[o]):void 0}function z(e, t, n, r){var i, o, a, s, l, c = {}, u = e.dataTypes.slice(); if (u[1])for (a in e.converters)c[a.toLowerCase()] = e.converters[a]; for (o = u.shift(); o; )if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = u.shift())if ("*" === o)o = l; else if ("*" !== l && l !== o){if (!(a = c[l + " " + o] || c["* " + o]))for (i in c)if (s = i.split(" "), s[1] === o && (a = c[l + " " + s[0]] || c["* " + s[0]])){!0 === a?a = c[i]:!0 !== c[i] && (o = s[0], u.unshift(s[1])); break}if (!0 !== a)if (a && e.throws)t = a(t); else try{t = a(t)} catch (e){return{state:"parsererror", error:a?e:"No conversion from " + l + " to " + o}}}return{state:"success", data:t}}function G(e, t, n, r){var i; if (oe.isArray(t))oe.each(t, function(t, i){n || Et.test(e)?r(e, i):G(e + "[" + ("object" == typeof i && null != i?t:"") + "]", i, n, r)}); else if (n || "object" !== oe.type(t))r(e, t); else for (i in t)G(e + "[" + i + "]", t[i], n, r)}function V(e){return oe.isWindow(e)?e:9 === e.nodeType && e.defaultView}var X = [], J = e.document, Y = X.slice, Q = X.concat, K = X.push, Z = X.indexOf, ee = {}, te = ee.toString, ne = ee.hasOwnProperty, re = {}, ie = "2.2.3", oe = function(e, t){return new oe.fn.init(e, t)}, ae = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, se = /^-ms-/, le = /-([\da-z])/gi, ce = function(e, t){return t.toUpperCase()}; oe.fn = oe.prototype = {jquery:ie, constructor:oe, selector:"", length:0, toArray:function(){return Y.call(this)}, get:function(e){return null != e?0 > e?this[e + this.length]:this[e]:Y.call(this)}, pushStack:function(e){var t = oe.merge(this.constructor(), e); return t.prevObject = this, t.context = this.context, t}, each:function(e){return oe.each(this, e)}, map:function(e){return this.pushStack(oe.map(this, function(t, n){return e.call(t, n, t)}))}, slice:function(){return this.pushStack(Y.apply(this, arguments))}, first:function(){return this.eq(0)}, last:function(){return this.eq( - 1)}, eq:function(e){var t = this.length, n = + e + (0 > e?t:0); return this.pushStack(n >= 0 && t > n?[this[n]]:[])}, end:function(){return this.prevObject || this.constructor()}, push:K, sort:X.sort, splice:X.splice}, oe.extend = oe.fn.extend = function(){var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, l = arguments.length, c = !1; for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || oe.isFunction(a) || (a = {}), s === l && (a = this, s--); l > s; s++)if (null != (e = arguments[s]))for (t in e)n = a[t], r = e[t], a !== r && (c && r && (oe.isPlainObject(r) || (i = oe.isArray(r)))?(i?(i = !1, o = n && oe.isArray(n)?n:[]):o = n && oe.isPlainObject(n)?n:{}, a[t] = oe.extend(c, o, r)):void 0 !== r && (a[t] = r)); return a}, oe.extend({expando:"jQuery" + (ie + Math.random()).replace(/\D/g, ""), isReady:!0, error:function(e){throw new Error(e)}, noop:function(){}, isFunction:function(e){return"function" === oe.type(e)}, isArray:Array.isArray, isWindow:function(e){return null != e && e === e.window}, isNumeric:function(e){var t = e && e.toString(); return!oe.isArray(e) && t - parseFloat(t) + 1 >= 0}, isPlainObject:function(e){var t; if ("object" !== oe.type(e) || e.nodeType || oe.isWindow(e))return!1; if (e.constructor && !ne.call(e, "constructor") && !ne.call(e.constructor.prototype || {}, "isPrototypeOf"))return!1; for (t in e); return void 0 === t || ne.call(e, t)}, isEmptyObject:function(e){var t; for (t in e)return!1; return!0}, type:function(e){return null == e?e + "":"object" == typeof e || "function" == typeof e?ee[te.call(e)] || "object":typeof e}, globalEval:function(e){var t, n = eval; (e = oe.trim(e)) && (1 === e.indexOf("use strict")?(t = J.createElement("script"), t.text = e, J.head.appendChild(t).parentNode.removeChild(t)):n(e))}, camelCase:function(e){return e.replace(se, "ms-").replace(le, ce)}, nodeName:function(e, t){return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()}, each:function(e, t){var r, i = 0; if (n(e))for (r = e.length; r > i && !1 !== t.call(e[i], i, e[i]); i++); else for (i in e)if (!1 === t.call(e[i], i, e[i]))break; return e}, trim:function(e){return null == e?"":(e + "").replace(ae, "")}, makeArray:function(e, t){var r = t || []; return null != e && (n(Object(e))?oe.merge(r, "string" == typeof e?[e]:e):K.call(r, e)), r}, inArray:function(e, t, n){return null == t? - 1:Z.call(t, e, n)}, merge:function(e, t){for (var n = + t.length, r = 0, i = e.length; n > r; r++)e[i++] = t[r]; return e.length = i, e}, grep:function(e, t, n){for (var r = [], i = 0, o = e.length, a = !n; o > i; i++)!t(e[i], i) !== a && r.push(e[i]); return r}, map:function(e, t, r){var i, o, a = 0, s = []; if (n(e))for (i = e.length; i > a; a++)null != (o = t(e[a], a, r)) && s.push(o); else for (a in e)null != (o = t(e[a], a, r)) && s.push(o); return Q.apply([], s)}, guid:1, proxy:function(e, t){var n, r, i; return"string" == typeof t && (n = e[t], t = e, e = n), oe.isFunction(e)?(r = Y.call(arguments, 2), i = function(){return e.apply(t || this, r.concat(Y.call(arguments)))}, i.guid = e.guid = e.guid || oe.guid++, i):void 0}, now:Date.now, support:re}), "function" == typeof Symbol && (oe.fn[Symbol.iterator] = X[Symbol.iterator]), oe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t){ee["[object " + t + "]"] = t.toLowerCase()}); var ue = function(e){function t(e, t, n, r){var i, o, a, s, c, d, h, f, p = t && t.ownerDocument, g = t?t.nodeType:9; if (n = n || [], "string" != typeof e || !e || 1 !== g && 9 !== g && 11 !== g)return n; if (!r && ((t?t.ownerDocument || t:F) !== I && E(t), t = t || I, L)){if (11 !== g && (d = ge.exec(e)))if (i = d[1]){if (9 === g){if (!(a = t.getElementById(i)))return n; if (a.id === i)return n.push(a), n} else if (p && (a = p.getElementById(i)) && R(t, a) && a.id === i)return n.push(a), n} else{if (d[2])return Y.apply(n, t.getElementsByTagName(e)), n; if ((i = d[3]) && b.getElementsByClassName && t.getElementsByClassName)return Y.apply(n, t.getElementsByClassName(i)), n}if (b.qsa && !U[e + " "] && (!j || !j.test(e))){if (1 !== g)p = t, f = e; else if ("object" !== t.nodeName.toLowerCase()){for ((s = t.getAttribute("id"))?s = s.replace(me, "\\$&"):t.setAttribute("id", s = P), h = T(e), o = h.length, c = ue.test(s)?"#" + s:"[id='" + s + "']"; o--; )h[o] = c + " " + u(h[o]); f = h.join(","), p = ve.test(e) && l(t.parentNode) || t}if (f)try{return Y.apply(n, p.querySelectorAll(f)), n} catch (e){} finally{s === P && t.removeAttribute("id")}}}return D(e.replace(oe, "$1"), t, n, r)}function n(){function e(n, r){return t.push(n + " ") > w.cacheLength && delete e[t.shift()], e[n + " "] = r}var t = []; return e}function r(e){return e[P] = !0, e}function i(e){var t = I.createElement("div"); try{return!!e(t)} catch (e){return!1} finally{t.parentNode && t.parentNode.removeChild(t), t = null}}function o(e, t){for (var n = e.split("|"), r = n.length; r--; )w.attrHandle[n[r]] = t}function a(e, t){var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || z) - (~e.sourceIndex || z); if (r)return r; if (n)for (; n = n.nextSibling; )if (n === t)return - 1; return e?1: - 1}function s(e){return r(function(t){return t = + t, r(function(n, r){for (var i, o = e([], n.length, t), a = o.length; a--; )n[i = o[a]] && (n[i] = !(r[i] = n[i]))})})}function l(e){return e && void 0 !== e.getElementsByTagName && e}function c(){}function u(e){for (var t = 0, n = e.length, r = ""; n > t; t++)r += e[t].value; return r}function d(e, t, n){var r = t.dir, i = n && "parentNode" === r, o = q++; return t.first?function(t, n, o){for (; t = t[r]; )if (1 === t.nodeType || i)return e(t, n, o)}:function(t, n, a){var s, l, c, u = [H, o]; if (a){for (; t = t[r]; )if ((1 === t.nodeType || i) && e(t, n, a))return!0} else for (; t = t[r]; )if (1 === t.nodeType || i){if (c = t[P] || (t[P] = {}), l = c[t.uniqueID] || (c[t.uniqueID] = {}), (s = l[r]) && s[0] === H && s[1] === o)return u[2] = s[2]; if (l[r] = u, u[2] = e(t, n, a))return!0}}}function h(e){return e.length > 1?function(t, n, r){for (var i = e.length; i--; )if (!e[i](t, n, r))return!1; return!0}:e[0]}function f(e, n, r){for (var i = 0, o = n.length; o > i; i++)t(e, n[i], r); return r}function p(e, t, n, r, i){for (var o, a = [], s = 0, l = e.length, c = null != t; l > s; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), c && t.push(s))); return a}function g(e, t, n, i, o, a){return i && !i[P] && (i = g(i)), o && !o[P] && (o = g(o, a)), r(function(r, a, s, l){var c, u, d, h = [], g = [], v = a.length, m = r || f(t || "*", s.nodeType?[s]:s, []), y = !e || !r && t?m:p(m, h, e, s, l), b = n?o || (r?e:v || i)?[]:a:y; if (n && n(y, b, s, l), i)for (c = p(b, g), i(c, [], s, l), u = c.length; u--; )(d = c[u]) && (b[g[u]] = !(y[g[u]] = d)); if (r){if (o || e){if (o){for (c = [], u = b.length; u--; )(d = b[u]) && c.push(y[u] = d); o(null, b = [], c, l)}for (u = b.length; u--; )(d = b[u]) && (c = o?K(r, d):h[u]) > - 1 && (r[c] = !(a[c] = d))}} else b = p(b === a?b.splice(v, b.length):b), o?o(null, a, b, l):Y.apply(a, b)})}function v(e){for (var t, n, r, i = e.length, o = w.relative[e[0].type], a = o || w.relative[" "], s = o?1:0, l = d(function(e){return e === t}, a, !0), c = d(function(e){return K(t, e) > - 1}, a, !0), f = [function(e, n, r){var i = !o && (r || n !== _) || ((t = n).nodeType?l(e, n, r):c(e, n, r)); return t = null, i}]; i > s; s++)if (n = w.relative[e[s].type])f = [d(h(f), n)]; else{if (n = w.filter[e[s].type].apply(null, e[s].matches), n[P]){for (r = ++s; i > r && !w.relative[e[r].type]; r++); return g(s > 1 && h(f), s > 1 && u(e.slice(0, s - 1).concat({value:" " === e[s - 2].type?"*":""})).replace(oe, "$1"), n, r > s && v(e.slice(s, r)), i > r && v(e = e.slice(r)), i > r && u(e))}f.push(n)}return h(f)}function m(e, n){var i = n.length > 0, o = e.length > 0, a = function(r, a, s, l, c){var u, d, h, f = 0, g = "0", v = r && [], m = [], y = _, b = r || o && w.find.TAG("*", c), x = H += null == y?1:Math.random() || .1, S = b.length; for (c && (_ = a === I || a || c); g !== S && null != (u = b[g]); g++){if (o && u){for (d = 0, a || u.ownerDocument === I || (E(u), s = !L); h = e[d++]; )if (h(u, a || I, s)){l.push(u); break}c && (H = x)}i && ((u = !h && u) && f--, r && v.push(u))}if (f += g, i && g !== f){for (d = 0; h = n[d++]; )h(v, m, a, s); if (r){if (f > 0)for (; g--; )v[g] || m[g] || (m[g] = X.call(l)); m = p(m)}Y.apply(l, m), c && !r && m.length > 0 && f + n.length > 1 && t.uniqueSort(l)}return c && (H = x, _ = y), v}; return i?r(a):a}var y, b, w, x, S, T, C, D, _, $, A, E, I, k, L, j, O, N, R, P = "sizzle" + 1 * new Date, F = e.document, H = 0, q = 0, M = n(), W = n(), U = n(), B = function(e, t){return e === t && (A = !0), 0}, z = 1 << 31, G = {}.hasOwnProperty, V = [], X = V.pop, J = V.push, Y = V.push, Q = V.slice, K = function(e, t){for (var n = 0, r = e.length; r > n; n++)if (e[n] === t)return n; return - 1}, Z = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", ee = "[\\x20\\t\\r\\n\\f]", te = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", ne = "\\[" + ee + "*(" + te + ")(?:" + ee + "*([*^$|!~]?=)" + ee + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + te + "))|)" + ee + "*\\]", re = ":(" + te + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ne + ")*)|.*)\\)|)", ie = new RegExp(ee + "+", "g"), oe = new RegExp("^" + ee + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ee + "+$", "g"), ae = new RegExp("^" + ee + "*," + ee + "*"), se = new RegExp("^" + ee + "*([>+~]|" + ee + ")" + ee + "*"), le = new RegExp("=" + ee + "*([^\\]'\"]*?)" + ee + "*\\]", "g"), ce = new RegExp(re), ue = new RegExp("^" + te + "$"), de = {ID:new RegExp("^#(" + te + ")"), CLASS:new RegExp("^\\.(" + te + ")"), TAG:new RegExp("^(" + te + "|[*])"), ATTR:new RegExp("^" + ne), PSEUDO:new RegExp("^" + re), CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ee + "*(even|odd|(([+-]|)(\\d*)n|)" + ee + "*(?:([+-]|)" + ee + "*(\\d+)|))" + ee + "*\\)|)", "i"), bool:new RegExp("^(?:" + Z + ")$", "i"), needsContext:new RegExp("^" + ee + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ee + "*((?:-\\d)?\\d*)" + ee + "*\\)|)(?=[^-]|$)", "i")}, he = /^(?:input|select|textarea|button)$/i, fe = /^h\d$/i, pe = /^[^{]+\{\s*\[native \w/, ge = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ve = /[+~]/, me = /'|\\/g, ye = new RegExp("\\\\([\\da-f]{1,6}" + ee + "?|(" + ee + ")|.)", "ig"), be = function(e, t, n){var r = "0x" + t - 65536; return r !== r || n?t:0 > r?String.fromCharCode(r + 65536):String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)}, we = function(){E()}; try{Y.apply(V = Q.call(F.childNodes), F.childNodes), V[F.childNodes.length].nodeType} catch (e){Y = {apply:V.length?function(e, t){J.apply(e, Q.call(t))}:function(e, t){for (var n = e.length, r = 0; e[n++] = t[r++]; ); e.length = n - 1}}}b = t.support = {}, S = t.isXML = function(e){var t = e && (e.ownerDocument || e).documentElement; return!!t && "HTML" !== t.nodeName}, E = t.setDocument = function(e){var t, n, r = e?e.ownerDocument || e:F; return r !== I && 9 === r.nodeType && r.documentElement?(I = r, k = I.documentElement, L = !S(I), (n = I.defaultView) && n.top !== n && (n.addEventListener?n.addEventListener("unload", we, !1):n.attachEvent && n.attachEvent("onunload", we)), b.attributes = i(function(e){return e.className = "i", !e.getAttribute("className")}), b.getElementsByTagName = i(function(e){return e.appendChild(I.createComment("")), !e.getElementsByTagName("*").length}), b.getElementsByClassName = pe.test(I.getElementsByClassName), b.getById = i(function(e){return k.appendChild(e).id = P, !I.getElementsByName || !I.getElementsByName(P).length}), b.getById?(w.find.ID = function(e, t){if (void 0 !== t.getElementById && L){var n = t.getElementById(e); return n?[n]:[]}}, w.filter.ID = function(e){var t = e.replace(ye, be); return function(e){return e.getAttribute("id") === t}}):(delete w.find.ID, w.filter.ID = function(e){var t = e.replace(ye, be); return function(e){var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return n && n.value === t}}), w.find.TAG = b.getElementsByTagName?function(e, t){return void 0 !== t.getElementsByTagName?t.getElementsByTagName(e):b.qsa?t.querySelectorAll(e):void 0}:function(e, t){var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e){for (; n = o[i++]; )1 === n.nodeType && r.push(n); return r}return o}, w.find.CLASS = b.getElementsByClassName && function(e, t){return void 0 !== t.getElementsByClassName && L?t.getElementsByClassName(e):void 0}, O = [], j = [], (b.qsa = pe.test(I.querySelectorAll)) && (i(function(e){k.appendChild(e).innerHTML = "<a id='" + P + "'></a><select id='" + P + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && j.push("[*^$]=" + ee + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || j.push("\\[" + ee + "*(?:value|" + Z + ")"), e.querySelectorAll("[id~=" + P + "-]").length || j.push("~="), e.querySelectorAll(":checked").length || j.push(":checked"), e.querySelectorAll("a#" + P + "+*").length || j.push(".#.+[+~]")}), i(function(e){var t = I.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && j.push("name" + ee + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || j.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), j.push(",.*:")})), (b.matchesSelector = pe.test(N = k.matches || k.webkitMatchesSelector || k.mozMatchesSelector || k.oMatchesSelector || k.msMatchesSelector)) && i(function(e){b.disconnectedMatch = N.call(e, "div"), N.call(e, "[s!='']:x"), O.push("!=", re)}), j = j.length && new RegExp(j.join("|")), O = O.length && new RegExp(O.join("|")), t = pe.test(k.compareDocumentPosition), R = t || pe.test(k.contains)?function(e, t){var n = 9 === e.nodeType?e.documentElement:e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains?n.contains(r):e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))}:function(e, t){if (t)for (; t = t.parentNode; )if (t === e)return!0; return!1}, B = t?function(e, t){if (e === t)return A = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (n = (e.ownerDocument || e) === (t.ownerDocument || t)?e.compareDocumentPosition(t):1, 1 & n || !b.sortDetached && t.compareDocumentPosition(e) === n?e === I || e.ownerDocument === F && R(F, e)? - 1:t === I || t.ownerDocument === F && R(F, t)?1:$?K($, e) - K($, t):0:4 & n? - 1:1)}:function(e, t){if (e === t)return A = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, s = [e], l = [t]; if (!i || !o)return e === I? - 1:t === I?1:i? - 1:o?1:$?K($, e) - K($, t):0; if (i === o)return a(e, t); for (n = e; n = n.parentNode; )s.unshift(n); for (n = t; n = n.parentNode; )l.unshift(n); for (; s[r] === l[r]; )r++; return r?a(s[r], l[r]):s[r] === F? - 1:l[r] === F?1:0}, I):I}, t.matches = function(e, n){return t(e, null, null, n)}, t.matchesSelector = function(e, n){if ((e.ownerDocument || e) !== I && E(e), n = n.replace(le, "='$1']"), b.matchesSelector && L && !U[n + " "] && (!O || !O.test(n)) && (!j || !j.test(n)))try{var r = N.call(e, n); if (r || b.disconnectedMatch || e.document && 11 !== e.document.nodeType)return r} catch (e){}return t(n, I, null, [e]).length > 0}, t.contains = function(e, t){return(e.ownerDocument || e) !== I && E(e), R(e, t)}, t.attr = function(e, t){(e.ownerDocument || e) !== I && E(e); var n = w.attrHandle[t.toLowerCase()], r = n && G.call(w.attrHandle, t.toLowerCase())?n(e, t, !L):void 0
          ; return void 0 !== r?r:b.attributes || !L?e.getAttribute(t):(r = e.getAttributeNode(t)) && r.specified?r.value:null}, t.error = function(e){throw new Error("Syntax error, unrecognized expression: " + e)}, t.uniqueSort = function(e){var t, n = [], r = 0, i = 0; if (A = !b.detectDuplicates, $ = !b.sortStable && e.slice(0), e.sort(B), A){for (; t = e[i++]; )t === e[i] && (r = n.push(i)); for (; r--; )e.splice(n[r], 1)}return $ = null, e}, x = t.getText = function(e){var t, n = "", r = 0, i = e.nodeType; if (i){if (1 === i || 9 === i || 11 === i){if ("string" == typeof e.textContent)return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += x(e)} else if (3 === i || 4 === i)return e.nodeValue} else for (; t = e[r++]; )n += x(t); return n}, w = t.selectors = {cacheLength:50, createPseudo:r, match:de, 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(ye, be), e[3] = (e[3] || e[4] || e[5] || "").replace(ye, be), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)}, CHILD:function(e){return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3)?(e[3] || t.error(e[0]), e[4] = + (e[4]?e[5] + (e[6] || 1):2 * ("even" === e[3] || "odd" === e[3])), e[5] = + (e[7] + e[8] || "odd" === e[3])):e[3] && t.error(e[0]), e}, PSEUDO:function(e){var t, n = !e[6] && e[2]; return de.CHILD.test(e[0])?null:(e[3]?e[2] = e[4] || e[5] || "":n && ce.test(n) && (t = T(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(ye, be).toLowerCase(); return"*" === e?function(){return!0}:function(e){return e.nodeName && e.nodeName.toLowerCase() === t}}, CLASS:function(e){var t = M[e + " "]; return t || (t = new RegExp("(^|" + ee + ")" + e + "(" + ee + "|$)")) && M(e, function(e){return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")})}, ATTR:function(e, n, r){return function(i){var o = t.attr(i, e); return null == o?"!=" === n:!n || (o += "", "=" === n?o === r:"!=" === n?o !== r:"^=" === n?r && 0 === o.indexOf(r):"*=" === n?r && o.indexOf(r) > - 1:"$=" === n?r && o.slice( - r.length) === r:"~=" === n?(" " + o.replace(ie, " ") + " ").indexOf(r) > - 1:"|=" === n && (o === r || o.slice(0, r.length + 1) === r + "-"))}}, CHILD:function(e, t, n, r, i){var o = "nth" !== e.slice(0, 3), a = "last" !== e.slice( - 4), s = "of-type" === t; return 1 === r && 0 === i?function(e){return!!e.parentNode}:function(t, n, l){var c, u, d, h, f, p, g = o !== a?"nextSibling":"previousSibling", v = t.parentNode, m = s && t.nodeName.toLowerCase(), y = !l && !s, b = !1; if (v){if (o){for (; g; ){for (h = t; h = h[g]; )if (s?h.nodeName.toLowerCase() === m:1 === h.nodeType)return!1; p = g = "only" === e && !p && "nextSibling"}return!0}if (p = [a?v.firstChild:v.lastChild], a && y){for (h = v, d = h[P] || (h[P] = {}), u = d[h.uniqueID] || (d[h.uniqueID] = {}), c = u[e] || [], f = c[0] === H && c[1], b = f && c[2], h = f && v.childNodes[f]; h = ++f && h && h[g] || (b = f = 0) || p.pop(); )if (1 === h.nodeType && ++b && h === t){u[e] = [H, f, b]; break}} else if (y && (h = t, d = h[P] || (h[P] = {}), u = d[h.uniqueID] || (d[h.uniqueID] = {}), c = u[e] || [], f = c[0] === H && c[1], b = f), !1 === b)for (; (h = ++f && h && h[g] || (b = f = 0) || p.pop()) && ((s?h.nodeName.toLowerCase() !== m:1 !== h.nodeType) || !++b || (y && (d = h[P] || (h[P] = {}), u = d[h.uniqueID] || (d[h.uniqueID] = {}), u[e] = [H, b]), h !== t)); ); return(b -= i) === r || b % r == 0 && b / r >= 0}}}, PSEUDO:function(e, n){var i, o = w.pseudos[e] || w.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e); return o[P]?o(n):o.length > 1?(i = [e, e, "", n], w.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e, t){for (var r, i = o(e, n), a = i.length; a--; )r = K(e, i[a]), e[r] = !(t[r] = i[a])}):function(e){return o(e, 0, i)}):o}}, pseudos:{not:r(function(e){var t = [], n = [], i = C(e.replace(oe, "$1")); return i[P]?r(function(e, t, n, r){for (var o, a = i(e, null, r, []), s = e.length; s--; )(o = a[s]) && (e[s] = !(t[s] = o))}):function(e, r, o){return t[0] = e, i(t, null, o, n), t[0] = null, !n.pop()}}), has:r(function(e){return function(n){return t(e, n).length > 0}}), contains:r(function(e){return e = e.replace(ye, be), function(t){return(t.textContent || t.innerText || x(t)).indexOf(e) > - 1}}), lang:r(function(e){return ue.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(ye, be).toLowerCase(), function(t){var n; do{if (n = L?t.lang:t.getAttribute("xml:lang") || t.getAttribute("lang"))return(n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")}while ((t = t.parentNode) && 1 === t.nodeType); return!1}}), target:function(t){var n = e.location && e.location.hash; return n && n.slice(1) === t.id}, root:function(e){return e === k}, focus:function(e){return e === I.activeElement && (!I.hasFocus || I.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)}, enabled:function(e){return!1 === e.disabled}, disabled:function(e){return!0 === e.disabled}, checked:function(e){var t = e.nodeName.toLowerCase(); return"input" === t && !!e.checked || "option" === t && !!e.selected}, selected:function(e){return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected}, empty:function(e){for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6)return!1; return!0}, parent:function(e){return!w.pseudos.empty(e)}, header:function(e){return fe.test(e.nodeName)}, input:function(e){return he.test(e.nodeName)}, button:function(e){var t = e.nodeName.toLowerCase(); return"input" === t && "button" === e.type || "button" === t}, text:function(e){var t; return"input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())}, first:s(function(){return[0]}), last:s(function(e, t){return[t - 1]}), eq:s(function(e, t, n){return[0 > n?n + t:n]}), even:s(function(e, t){for (var n = 0; t > n; n += 2)e.push(n); return e}), odd:s(function(e, t){for (var n = 1; t > n; n += 2)e.push(n); return e}), lt:s(function(e, t, n){for (var r = 0 > n?n + t:n; --r >= 0; )e.push(r); return e}), gt:s(function(e, t, n){for (var r = 0 > n?n + t:n; ++r < t; )e.push(r); return e})}}, w.pseudos.nth = w.pseudos.eq; for (y in{radio:!0, checkbox:!0, file:!0, password:!0, image:!0})w.pseudos[y] = function(e){return function(t){return"input" === t.nodeName.toLowerCase() && t.type === e}}(y); for (y in{submit:!0, reset:!0})w.pseudos[y] = function(e){return function(t){var n = t.nodeName.toLowerCase(); return("input" === n || "button" === n) && t.type === e}}(y); return c.prototype = w.filters = w.pseudos, w.setFilters = new c, T = t.tokenize = function(e, n){var r, i, o, a, s, l, c, u = W[e + " "]; if (u)return n?0:u.slice(0); for (s = e, l = [], c = w.preFilter; s; ){r && !(i = ae.exec(s)) || (i && (s = s.slice(i[0].length) || s), l.push(o = [])), r = !1, (i = se.exec(s)) && (r = i.shift(), o.push({value:r, type:i[0].replace(oe, " ")}), s = s.slice(r.length)); for (a in w.filter)!(i = de[a].exec(s)) || c[a] && !(i = c[a](i)) || (r = i.shift(), o.push({value:r, type:a, matches:i}), s = s.slice(r.length)); if (!r)break}return n?s.length:s?t.error(e):W(e, l).slice(0)}, C = t.compile = function(e, t){var n, r = [], i = [], o = U[e + " "]; if (!o){for (t || (t = T(e)), n = t.length; n--; )o = v(t[n]), o[P]?r.push(o):i.push(o); o = U(e, m(i, r)), o.selector = e}return o}, D = t.select = function(e, t, n, r){var i, o, a, s, c, d = "function" == typeof e && e, h = !r && T(e = d.selector || e); if (n = n || [], 1 === h.length){if (o = h[0] = h[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && b.getById && 9 === t.nodeType && L && w.relative[o[1].type]){if (!(t = (w.find.ID(a.matches[0].replace(ye, be), t) || [])[0]))return n; d && (t = t.parentNode), e = e.slice(o.shift().value.length)}for (i = de.needsContext.test(e)?0:o.length; i-- && (a = o[i], !w.relative[s = a.type]); )if ((c = w.find[s]) && (r = c(a.matches[0].replace(ye, be), ve.test(o[0].type) && l(t.parentNode) || t))){if (o.splice(i, 1), !(e = r.length && u(o)))return Y.apply(n, r), n; break}}return(d || C(e, h))(r, t, !L, n, !t || ve.test(e) && l(t.parentNode) || t), n}, b.sortStable = P.split("").sort(B).join("") === P, b.detectDuplicates = !!A, E(), b.sortDetached = i(function(e){return 1 & e.compareDocumentPosition(I.createElement("div"))}), i(function(e){return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")}) || o("type|href|height|width", function(e, t, n){return n?void 0:e.getAttribute(t, "type" === t.toLowerCase()?1:2)}), b.attributes && i(function(e){return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")}) || o("value", function(e, t, n){return n || "input" !== e.nodeName.toLowerCase()?void 0:e.defaultValue}), i(function(e){return null == e.getAttribute("disabled")}) || o(Z, function(e, t, n){var r; return n?void 0:!0 === e[t]?t.toLowerCase():(r = e.getAttributeNode(t)) && r.specified?r.value:null}), t}(e); oe.find = ue, oe.expr = ue.selectors, oe.expr[":"] = oe.expr.pseudos, oe.uniqueSort = oe.unique = ue.uniqueSort, oe.text = ue.getText, oe.isXMLDoc = ue.isXML, oe.contains = ue.contains; var de = function(e, t, n){for (var r = [], i = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )if (1 === e.nodeType){if (i && oe(e).is(n))break; r.push(e)}return r}, he = function(e, t){for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e); return n}, fe = oe.expr.match.needsContext, pe = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, ge = /^.[^:#\[\.,]*$/; oe.filter = function(e, t, n){var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType?oe.find.matchesSelector(r, e)?[r]:[]:oe.find.matches(e, oe.grep(t, function(e){return 1 === e.nodeType}))}, oe.fn.extend({find:function(e){var t, n = this.length, r = [], i = this; if ("string" != typeof e)return this.pushStack(oe(e).filter(function(){for (t = 0; n > t; t++)if (oe.contains(i[t], this))return!0})); for (t = 0; n > t; t++)oe.find(e, i[t], r); return r = this.pushStack(n > 1?oe.unique(r):r), r.selector = this.selector?this.selector + " " + e:e, r}, filter:function(e){return this.pushStack(r(this, e || [], !1))}, not:function(e){return this.pushStack(r(this, e || [], !0))}, is:function(e){return!!r(this, "string" == typeof e && fe.test(e)?oe(e):e || [], !1).length}}); var ve, me = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/; (oe.fn.init = function(e, t, n){var r, i; if (!e)return this; if (n = n || ve, "string" == typeof e){if (!(r = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3?[null, e, null]:me.exec(e)) || !r[1] && t)return!t || t.jquery?(t || n).find(e):this.constructor(t).find(e); if (r[1]){if (t = t instanceof oe?t[0]:t, oe.merge(this, oe.parseHTML(r[1], t && t.nodeType?t.ownerDocument || t:J, !0)), pe.test(r[1]) && oe.isPlainObject(t))for (r in t)oe.isFunction(this[r])?this[r](t[r]):this.attr(r, t[r]); return this}return i = J.getElementById(r[2]), i && i.parentNode && (this.length = 1, this[0] = i), this.context = J, this.selector = e, this}return e.nodeType?(this.context = this[0] = e, this.length = 1, this):oe.isFunction(e)?void 0 !== n.ready?n.ready(e):e(oe):(void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), oe.makeArray(e, this))}).prototype = oe.fn, ve = oe(J); var ye = /^(?:parents|prev(?:Until|All))/, be = {children:!0, contents:!0, next:!0, prev:!0}; oe.fn.extend({has:function(e){var t = oe(e, this), n = t.length; return this.filter(function(){for (var e = 0; n > e; e++)if (oe.contains(this, t[e]))return!0})}, closest:function(e, t){for (var n, r = 0, i = this.length, o = [], a = fe.test(e) || "string" != typeof e?oe(e, t || this.context):0; i > r; r++)for (n = this[r]; n && n !== t; n = n.parentNode)if (n.nodeType < 11 && (a?a.index(n) > - 1:1 === n.nodeType && oe.find.matchesSelector(n, e))){o.push(n); break}return this.pushStack(o.length > 1?oe.uniqueSort(o):o)}, index:function(e){return e?"string" == typeof e?Z.call(oe(e), this[0]):Z.call(this, e.jquery?e[0]:e):this[0] && this[0].parentNode?this.first().prevAll().length: - 1}, add:function(e, t){return this.pushStack(oe.uniqueSort(oe.merge(this.get(), oe(e, t))))}, addBack:function(e){return this.add(null == e?this.prevObject:this.prevObject.filter(e))}}), oe.each({parent:function(e){var t = e.parentNode; return t && 11 !== t.nodeType?t:null}, parents:function(e){return de(e, "parentNode")}, parentsUntil:function(e, t, n){return de(e, "parentNode", n)}, next:function(e){return i(e, "nextSibling")}, prev:function(e){return i(e, "previousSibling")}, nextAll:function(e){return de(e, "nextSibling")}, prevAll:function(e){return de(e, "previousSibling")}, nextUntil:function(e, t, n){return de(e, "nextSibling", n)}, prevUntil:function(e, t, n){return de(e, "previousSibling", n)}, siblings:function(e){return he((e.parentNode || {}).firstChild, e)}, children:function(e){return he(e.firstChild)}, contents:function(e){return e.contentDocument || oe.merge([], e.childNodes)}}, function(e, t){oe.fn[e] = function(n, r){var i = oe.map(this, t, n); return"Until" !== e.slice( - 5) && (r = n), r && "string" == typeof r && (i = oe.filter(r, i)), this.length > 1 && (be[e] || oe.uniqueSort(i), ye.test(e) && i.reverse()), this.pushStack(i)}}); var we = /\S+/g; oe.Callbacks = function(e){e = "string" == typeof e?o(e):oe.extend({}, e); var t, n, r, i, a = [], s = [], l = - 1, c = function(){for (i = e.once, r = t = !0; s.length; l = - 1)for (n = s.shift(); ++l < a.length; )!1 === a[l].apply(n[0], n[1]) && e.stopOnFalse && (l = a.length, n = !1); e.memory || (n = !1), t = !1, i && (a = n?[]:"")}, u = {add:function(){return a && (n && !t && (l = a.length - 1, s.push(n)), function t(n){oe.each(n, function(n, r){oe.isFunction(r)?e.unique && u.has(r) || a.push(r):r && r.length && "string" !== oe.type(r) && t(r)})}(arguments), n && !t && c()), this}, remove:function(){return oe.each(arguments, function(e, t){for (var n; (n = oe.inArray(t, a, n)) > - 1; )a.splice(n, 1), l >= n && l--}), this}, has:function(e){return e?oe.inArray(e, a) > - 1:a.length > 0}, empty:function(){return a && (a = []), this}, disable:function(){return i = s = [], a = n = "", this}, disabled:function(){return!a}, lock:function(){return i = s = [], n || (a = n = ""), this}, locked:function(){return!!i}, fireWith:function(e, n){return i || (n = n || [], n = [e, n.slice?n.slice():n], s.push(n), t || c()), this}, fire:function(){return u.fireWith(this, arguments), this}, fired:function(){return!!r}}; return u}, oe.extend({Deferred:function(e){var t = [["resolve", "done", oe.Callbacks("once memory"), "resolved"], ["reject", "fail", oe.Callbacks("once memory"), "rejected"], ["notify", "progress", oe.Callbacks("memory")]], n = "pending", r = {state:function(){return n}, always:function(){return i.done(arguments).fail(arguments), this}, then:function(){var e = arguments; return oe.Deferred(function(n){oe.each(t, function(t, o){var a = oe.isFunction(e[t]) && e[t]; i[o[1]](function(){var e = a && a.apply(this, arguments); e && oe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0] + "With"](this === r?n.promise():this, a?[e]:arguments)})}), e = null}).promise()}, promise:function(e){return null != e?oe.extend(e, r):r}}, i = {}; return r.pipe = r.then, oe.each(t, function(e, o){var a = o[2], s = o[3]; r[o[1]] = a.add, s && a.add(function(){n = s}, t[1 ^ e][2].disable, t[2][2].lock), i[o[0]] = function(){return i[o[0] + "With"](this === i?r:this, arguments), this}, i[o[0] + "With"] = a.fireWith}), r.promise(i), e && e.call(i, i), i}, when:function(e){var t, n, r, i = 0, o = Y.call(arguments), a = o.length, s = 1 !== a || e && oe.isFunction(e.promise)?a:0, l = 1 === s?e:oe.Deferred(), c = function(e, n, r){return function(i){n[e] = this, r[e] = arguments.length > 1?Y.call(arguments):i, r === t?l.notifyWith(n, r):--s || l.resolveWith(n, r)}}; if (a > 1)for (t = new Array(a), n = new Array(a), r = new Array(a); a > i; i++)o[i] && oe.isFunction(o[i].promise)?o[i].promise().progress(c(i, n, t)).done(c(i, r, o)).fail(l.reject):--s; return s || l.resolveWith(r, o), l.promise()}}); var xe; oe.fn.ready = function(e){return oe.ready.promise().done(e), this}, oe.extend({isReady:!1, readyWait:1, holdReady:function(e){e?oe.readyWait++:oe.ready(!0)}, ready:function(e){(!0 === e?--oe.readyWait:oe.isReady) || (oe.isReady = !0, !0 !== e && --oe.readyWait > 0 || (xe.resolveWith(J, [oe]), oe.fn.triggerHandler && (oe(J).triggerHandler("ready"), oe(J).off("ready"))))}}), oe.ready.promise = function(t){return xe || (xe = oe.Deferred(), "complete" === J.readyState || "loading" !== J.readyState && !J.documentElement.doScroll?e.setTimeout(oe.ready):(J.addEventListener("DOMContentLoaded", a), e.addEventListener("load", a))), xe.promise(t)}, oe.ready.promise(); var Se = function(e, t, n, r, i, o, a){var s = 0, l = e.length, c = null == n; if ("object" === oe.type(n)){i = !0; for (s in n)Se(e, t, s, n[s], !0, o, a)} else if (void 0 !== r && (i = !0, oe.isFunction(r) || (a = !0), c && (a?(t.call(e, r), t = null):(c = t, t = function(e, t, n){return c.call(oe(e), n)})), t))for (; l > s; s++)t(e[s], n, a?r:r.call(e[s], s, t(e[s], n))); return i?e:c?t.call(e):l?t(e[0], n):o}, Te = function(e){return 1 === e.nodeType || 9 === e.nodeType || ! + e.nodeType}; s.uid = 1, s.prototype = {register:function(e, t){var n = t || {}; return e.nodeType?e[this.expando] = n:Object.defineProperty(e, this.expando, {value:n, writable:!0, configurable:!0}), e[this.expando]}, cache:function(e){if (!Te(e))return{}; var t = e[this.expando]; return t || (t = {}, Te(e) && (e.nodeType?e[this.expando] = t:Object.defineProperty(e, this.expando, {value:t, configurable:!0}))), t}, set:function(e, t, n){var r, i = this.cache(e); if ("string" == typeof t)i[t] = n; else for (r in t)i[r] = t[r]; return i}, get:function(e, t){return void 0 === t?this.cache(e):e[this.expando] && e[this.expando][t]}, access:function(e, t, n){var r; return void 0 === t || t && "string" == typeof t && void 0 === n?(r = this.get(e, t), void 0 !== r?r:this.get(e, oe.camelCase(t))):(this.set(e, t, n), void 0 !== n?n:t)}, remove:function(e, t){var n, r, i, o = e[this.expando]; if (void 0 !== o){if (void 0 === t)this.register(e); else{oe.isArray(t)?r = t.concat(t.map(oe.camelCase)):(i = oe.camelCase(t), t in o?r = [t, i]:(r = i, r = r in o?[r]:r.match(we) || [])), n = r.length; for (; n--; )delete o[r[n]]}(void 0 === t || oe.isEmptyObject(o)) && (e.nodeType?e[this.expando] = void 0:delete e[this.expando])}}, hasData:function(e){var t = e[this.expando]; return void 0 !== t && !oe.isEmptyObject(t)}}; var Ce = new s, De = new s, _e = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, $e = /[A-Z]/g; oe.extend({hasData:function(e){return De.hasData(e) || Ce.hasData(e)}, data:function(e, t, n){return De.access(e, t, n)}, removeData:function(e, t){De.remove(e, t)}, _data:function(e, t, n){return Ce.access(e, t, n)}, _removeData:function(e, t){Ce.remove(e, t)}}), oe.fn.extend({data:function(e, t){var n, r, i, o = this[0], a = o && o.attributes; if (void 0 === e){if (this.length && (i = De.get(o), 1 === o.nodeType && !Ce.get(o, "hasDataAttrs"))){for (n = a.length; n--; )a[n] && (r = a[n].name, 0 === r.indexOf("data-") && (r = oe.camelCase(r.slice(5)), l(o, r, i[r]))); Ce.set(o, "hasDataAttrs", !0)}return i}return"object" == typeof e?this.each(function(){De.set(this, e)}):Se(this, function(t){var n, r; if (o && void 0 === t){if (void 0 !== (n = De.get(o, e) || De.get(o, e.replace($e, "-$&").toLowerCase())))return n; if (r = oe.camelCase(e), void 0 !== (n = De.get(o, r)))return n; if (void 0 !== (n = l(o, r, void 0)))return n} else r = oe.camelCase(e), this.each(function(){var n = De.get(this, r); De.set(this, r, t), e.indexOf("-") > - 1 && void 0 !== n && De.set(this, e, t)})}, null, t, arguments.length > 1, null, !0)}, removeData:function(e){return this.each(function(){De.remove(this, e)})}}), oe.extend({queue:function(e, t, n){var r; return e?(t = (t || "fx") + "queue", r = Ce.get(e, t), n && (!r || oe.isArray(n)?r = Ce.access(e, t, oe.makeArray(n)):r.push(n)), r || []):void 0}, dequeue:function(e, t){t = t || "fx"; var n = oe.queue(e, t), r = n.length, i = n.shift(), o = oe._queueHooks(e, t), a = function(){oe.dequeue(e, t)}; "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire()}, _queueHooks:function(e, t){var n = t + "queueHooks"; return Ce.get(e, n) || Ce.access(e, n, {empty:oe.Callbacks("once memory").add(function(){Ce.remove(e, [t + "queue", n])})})}}), oe.fn.extend({queue:function(e, t){var n = 2; return"string" != typeof e && (t = e, e = "fx", n--), arguments.length < n?oe.queue(this[0], e):void 0 === t?this:this.each(function(){var n = oe.queue(this, e, t); oe._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && oe.dequeue(this, e)})}, dequeue:function(e){return this.each(function(){oe.dequeue(this, e)})}, clearQueue:function(e){return this.queue(e || "fx", [])}, promise:function(e, t){var n, r = 1, i = oe.Deferred(), o = this, a = this.length, s = function(){--r || i.resolveWith(o, [o])}; for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--; )(n = Ce.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); return s(), i.promise(t)}}); var Ae = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Ee = new RegExp("^(?:([+-])=|)(" + Ae + ")([a-z%]*)$", "i"), Ie = ["Top", "Right", "Bottom", "Left"], ke = function(e, t){return e = t || e, "none" === oe.css(e, "display") || !oe.contains(e.ownerDocument, e)}, Le = /^(?:checkbox|radio)$/i, je = /<([\w:-]+)/, Oe = /^$|\/(?:java|ecma)script/i, Ne = {option:[1, "<select multiple='multiple'>", "</select>"], thead:[1, "<table>", "</table>"], col:[2, "<table><colgroup>", "</colgroup></table>"], tr:[2, "<table><tbody>", "</tbody></table>"], td:[3, "<table><tbody><tr>", "</tr></tbody></table>"], _default:[0, "", ""]}; Ne.optgroup = Ne.option, Ne.tbody = Ne.tfoot = Ne.colgroup = Ne.caption = Ne.thead, Ne.th = Ne.td; var Re = /<|&#?\w+;/; !function(){var e = J.createDocumentFragment(), t = e.appendChild(J.createElement("div")), n = J.createElement("input"); n.setAttribute("type", "radio"), n.setAttribute("checked", "checked"), n.setAttribute("name", "t"), t.appendChild(n), re.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, t.innerHTML = "<textarea>x</textarea>", re.noCloneChecked = !!t.cloneNode(!0).lastChild.defaultValue}(); var Pe = /^key/, Fe = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, He = /^([^.]*)(?:\.(.+)|)/; oe.event = {global:{}, add:function(e, t, n, r, i){var o, a, s, l, c, u, d, h, f, p, g, v = Ce.get(e); if (v)for (n.handler && (o = n, n = o.handler, i = o.selector), n.guid || (n.guid = oe.guid++), (l = v.events) || (l = v.events = {}), (a = v.handle) || (a = v.handle = function(t){return void 0 !== oe && oe.event.triggered !== t.type?oe.event.dispatch.apply(e, arguments):void 0}), t = (t || "").match(we) || [""], c = t.length; c--; )s = He.exec(t[c]) || [], f = g = s[1], p = (s[2] || "").split(".").sort(), f && (d = oe.event.special[f] || {}, f = (i?d.delegateType:d.bindType) || f, d = oe.event.special[f] || {}, u = oe.extend({type:f, origType:g, data:r, handler:n, guid:n.guid, selector:i, needsContext:i && oe.expr.match.needsContext.test(i), namespace:p.join(".")}, o), (h = l[f]) || (h = l[f] = [], h.delegateCount = 0, d.setup && !1 !== d.setup.call(e, r, p, a) || e.addEventListener && e.addEventListener(f, a)), d.add && (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), i?h.splice(h.delegateCount++, 0, u):h.push(u), oe.event.global[f] = !0)}, remove:function(e, t, n, r, i){var o, a, s, l, c, u, d, h, f, p, g, v = Ce.hasData(e) && Ce.get(e); if (v && (l = v.events)){for (t = (t || "").match(we) || [""], c = t.length; c--; )if (s = He.exec(t[c]) || [], f = g = s[1], p = (s[2] || "").split(".").sort(), f){for (d = oe.event.special[f] || {}, f = (r?d.delegateType:d.bindType) || f, h = l[f] || [], s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = h.length; o--; )u = h[o], !i && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || r && r !== u.selector && ("**" !== r || !u.selector) || (h.splice(o, 1), u.selector && h.delegateCount--, d.remove && d.remove.call(e, u)); a && !h.length && (d.teardown && !1 !== d.teardown.call(e, p, v.handle) || oe.removeEvent(e, f, v.handle), delete l[f])} else for (f in l)oe.event.remove(e, f + t[c], n, r, !0); oe.isEmptyObject(l) && Ce.remove(e, "handle events")}}, dispatch:function(e){e = oe.event.fix(e); var t, n, r, i, o, a = [], s = Y.call(arguments), l = (Ce.get(this, "events") || {})[e.type] || [], c = oe.event.special[e.type] || {}; if (s[0] = e, e.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, e)){for (a = oe.event.handlers.call(this, e, l), t = 0; (i = a[t++]) && !e.isPropagationStopped(); )for (e.currentTarget = i.elem, n = 0; (o = i.handlers[n++]) && !e.isImmediatePropagationStopped(); )e.rnamespace && !e.rnamespace.test(o.namespace) || (e.handleObj = o, e.data = o.data, void 0 !== (r = ((oe.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (e.result = r) && (e.preventDefault(), e.stopPropagation())); return c.postDispatch && c.postDispatch.call(this, e), e.result}}, handlers:function(e, t){var n, r, i, o, a = [], s = t.delegateCount, l = e.target; if (s && l.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1))for (; l !== this; l = l.parentNode || this)if (1 === l.nodeType && (!0 !== l.disabled || "click" !== e.type)){for (r = [], n = 0; s > n; n++)o = t[n], i = o.selector + " ", void 0 === r[i] && (r[i] = o.needsContext?oe(i, this).index(l) > - 1:oe.find(i, this, null, [l]).length), r[i] && r.push(o); r.length && a.push({elem:l, handlers:r})}return s < t.length && a.push({elem:this, handlers:t.slice(s)}), a}, props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks:{}, keyHooks:{props:"char charCode key keyCode".split(" "), filter:function(e, t){return null == e.which && (e.which = null != t.charCode?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, o = t.button; return null == e.pageX && null != t.clientX && (n = e.target.ownerDocument || J, 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 || void 0 === o || (e.which = 1 & o?1:2 & o?3:4 & o?2:0), e}}, fix:function(e){if (e[oe.expando])return e; var t, n, r, i = e.type, o = e, a = this.fixHooks[i]; for (a || (this.fixHooks[i] = a = Fe.test(i)?this.mouseHooks:Pe.test(i)?this.keyHooks:{}), r = a.props?this.props.concat(a.props):this.props, e = new oe.Event(o), t = r.length; t--; )n = r[t], e[n] = o[n]; return e.target || (e.target = J), 3 === e.target.nodeType && (e.target = e.target.parentNode), a.filter?a.filter(e, o):e}, special:{load:{noBubble:!0}, focus:{trigger:function(){return this !== g() && this.focus?(this.focus(), !1):void 0}, delegateType:"focusin"}, blur:{trigger:function(){return this === g() && this.blur?(this.blur(), !1):void 0}, delegateType:"focusout"}, click:{trigger:function(){return"checkbox" === this.type && this.click && oe.nodeName(this, "input")?(this.click(), !1):void 0}, _default:function(e){return oe.nodeName(e.target, "a")}}, beforeunload:{postDispatch:function(e){void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)}}}}, oe.removeEvent = function(e, t, n){e.removeEventListener && e.removeEventListener(t, n)}, oe.Event = function(e, t){return this instanceof oe.Event?(e && e.type?(this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue?f:p):this.type = e, t && oe.extend(this, t), this.timeStamp = e && e.timeStamp || oe.now(), void(this[oe.expando] = !0)):new oe.Event(e, t)}, oe.Event.prototype = {constructor:oe.Event, isDefaultPrevented:p, isPropagationStopped:p, isImmediatePropagationStopped:p, preventDefault:function(){var e = this.originalEvent; this.isDefaultPrevented = f, e && e.preventDefault()}, stopPropagation:function(){var e = this.originalEvent; this.isPropagationStopped = f, e && e.stopPropagation()}, stopImmediatePropagation:function(){var e = this.originalEvent; this.isImmediatePropagationStopped = f, e && e.stopImmediatePropagation(), this.stopPropagation()}}, oe.each({mouseenter:"mouseover", mouseleave:"mouseout", pointerenter:"pointerover", pointerleave:"pointerout"}, function(e, t){oe.event.special[e] = {delegateType:t, bindType:t, handle:function(e){var n, r = this, i = e.relatedTarget, o = e.handleObj; return i && (i === r || oe.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n}}}), oe.fn.extend({on:function(e, t, n, r){return v(this, e, t, n, r)}, one:function(e, t, n, r){return v(this, e, t, n, r, 1)}, off:function(e, t, n){var r, i; if (e && e.preventDefault && e.handleObj)return r = e.handleObj, oe(e.delegateTarget).off(r.namespace?r.origType + "." + r.namespace:r.origType, r.selector, r.handler), this; if ("object" == typeof e){for (i in e)this.off(i, t, e[i]); return this}return!1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = p), this.each(function(){oe.event.remove(this, e, n, t)})}}); var qe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, Me = /<script|<style|<link/i, We = /checked\s*(?:[^=]|=\s*.checked.)/i, Ue = /^true\/(.*)/, Be = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; oe.extend({htmlPrefilter:function(e){return e.replace(qe, "<$1></$2>")}, clone:function(e, t, n){var r, i, o, a, s = e.cloneNode(!0), l = oe.contains(e.ownerDocument, e); if (!(re.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || oe.isXMLDoc(e)))for (a = u(s), o = u(e), r = 0, i = o.length; i > r; r++)x(o[r], a[r]); if (t)if (n)for (o = o || u(e), a = a || u(s), r = 0, i = o.length; i > r; r++)w(o[r], a[r]); else w(e, s); return a = u(s, "script"), a.length > 0 && d(a, !l && u(e, "script")), s}, cleanData:function(e){for (var t, n, r, i = oe.event.special, o = 0; void 0 !== (n = e[o]); o++)if (Te(n)){if (t = n[Ce.expando]){if (t.events)for (r in t.events)i[r]?oe.event.remove(n, r):oe.removeEvent(n, r, t.handle); n[Ce.expando] = void 0}n[De.expando] && (n[De.expando] = void 0)}}}), oe.fn.extend({domManip:S, detach:function(e){return T(this, e, !0)}, remove:function(e){return T(this, e)}, text:function(e){return Se(this, function(e){return void 0 === e?oe.text(this):this.empty().each(function(){1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)})}, null, e, arguments.length)}, append:function(){return S(this, arguments, function(e){if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType){m(this, e).appendChild(e)}})}, prepend:function(){return S(this, arguments, function(e){if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType){var t = m(this, e); t.insertBefore(e, t.firstChild)}})}, before:function(){return S(this, arguments, function(e){this.parentNode && this.parentNode.insertBefore(e, this)})}, after:function(){return S(this, arguments, function(e){this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)})}, empty:function(){for (var e, t = 0; null != (e = this[t]); t++)1 === e.nodeType && (oe.cleanData(u(e, !1)), e.textContent = ""); return this}, clone:function(e, t){return e = null != e && e, t = null == t?e:t, this.map(function(){return oe.clone(this, e, t)})}, html:function(e){return Se(this, function(e){var t = this[0] || {}, n = 0, r = this.length; if (void 0 === e && 1 === t.nodeType)return t.innerHTML; if ("string" == typeof e && !Me.test(e) && !Ne[(je.exec(e) || ["", ""])[1].toLowerCase()]){e = oe.htmlPrefilter(e); try{for (; r > n; n++)t = this[n] || {}, 1 === t.nodeType && (oe.cleanData(u(t, !1)), t.innerHTML = e); t = 0} catch (e){}}t && this.empty().append(e)}, null, e, arguments.length)}, replaceWith:function(){var e = []; return S(this, arguments, function(t){var n = this.parentNode; oe.inArray(this, e) < 0 && (oe.cleanData(u(this)), n && n.replaceChild(t, this))}, e)}}), oe.each({appendTo:"append", prependTo:"prepend", insertBefore:"before", insertAfter:"after", replaceAll:"replaceWith"}, function(e, t){oe.fn[e] = function(e){for (var n, r = [], i = oe(e), o = i.length - 1, a = 0; o >= a; a++)n = a === o?this:this.clone(!0), oe(i[a])[t](n), K.apply(r, n.get()); return this.pushStack(r)}}); var ze, Ge = {HTML:"block", BODY:"block"}, Ve = /^margin/, Xe = new RegExp("^(" + Ae + ")(?!px)[a-z%]+$", "i"), Je = function(t){var n = t.ownerDocument.defaultView; return n && n.opener || (n = e), n.getComputedStyle(t)}, Ye = function(e, t, n, r){var i, o, a = {}; for (o in t)a[o] = e.style[o], e.style[o] = t[o]; i = n.apply(e, r || []); for (o in t)e.style[o] = a[o]; return i}, Qe = J.documentElement; !function(){function t(){s.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", s.innerHTML = "", Qe.appendChild(a); var t = e.getComputedStyle(s); n = "1%" !== t.top, o = "2px" === t.marginLeft, r = "4px" === t.width, s.style.marginRight = "50%", i = "4px" === t.marginRight, Qe.removeChild(a)}var n, r, i, o, a = J.createElement("div"), s = J.createElement("div"); s.style && (s.style.backgroundClip = "content-box", s.cloneNode(!0).style.backgroundClip = "", re.clearCloneStyle = "content-box" === s.style.backgroundClip, a.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", a.appendChild(s), oe.extend(re, {pixelPosition:function(){return t(), n}, boxSizingReliable:function(){return null == r && t(), r}, pixelMarginRight:function(){return null == r && t(), i}, reliableMarginLeft:function(){return null == r && t(), o}, reliableMarginRight:function(){var t, n = s.appendChild(J.createElement("div")); return n.style.cssText = s.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", n.style.marginRight = n.style.width = "0", s.style.width = "1px", Qe.appendChild(a), t = !parseFloat(e.getComputedStyle(n).marginRight), Qe.removeChild(a), s.removeChild(n), t}}))}(); var Ke = /^(none|table(?!-c[ea]).+)/, Ze = {position:"absolute", visibility:"hidden", display:"block"}, et = {letterSpacing:"0", fontWeight:"400"}, tt = ["Webkit", "O", "Moz", "ms"], nt = J.createElement("div").style; oe.extend({cssHooks:{opacity:{get:function(e, t){if (t){var n = _(e, "opacity"); return"" === n?"1":n}}}}, cssNumber:{animationIterationCount:!0, columnCount:!0, fillOpacity:!0, flexGrow:!0, flexShrink:!0, fontWeight:!0, lineHeight:!0, opacity:!0, order:!0, orphans:!0, widows:!0, zIndex:!0, zoom:!0}, cssProps:{float:"cssFloat"}, style:function(e, t, n, r){if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style){var i, o, a, s = oe.camelCase(t), l = e.style; return t = oe.cssProps[s] || (oe.cssProps[s] = A(s) || s), a = oe.cssHooks[t] || oe.cssHooks[s], void 0 === n?a && "get"in a && void 0 !== (i = a.get(e, !1, r))?i:l[t]:(o = typeof n, "string" === o && (i = Ee.exec(n)) && i[1] && (n = c(e, t, i), o = "number"), void(null != n && n === n && ("number" === o && (n += i && i[3] || (oe.cssNumber[s]?"":"px")), re.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set"in a && void 0 === (n = a.set(e, n, r)) || (l[t] = n))))}}, css:function(e, t, n, r){var i, o, a, s = oe.camelCase(t); return t = oe.cssProps[s] || (oe.cssProps[s] = A(s) || s), a = oe.cssHooks[t] || oe.cssHooks[s], a && "get"in a && (i = a.get(e, !0, n)), void 0 === i && (i = _(e, t, r)),
          "normal" === i && t in et && (i = et[t]), "" === n || n?(o = parseFloat(i), !0 === n || isFinite(o)?o || 0:i):i}}), oe.each(["height", "width"], function(e, t){oe.cssHooks[t] = {get:function(e, n, r){return n?Ke.test(oe.css(e, "display")) && 0 === e.offsetWidth?Ye(e, Ze, function(){return k(e, t, r)}):k(e, t, r):void 0}, set:function(e, n, r){var i, o = r && Je(e), a = r && I(e, t, r, "border-box" === oe.css(e, "boxSizing", !1, o), o); return a && (i = Ee.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = oe.css(e, t)), E(e, n, a)}}}), oe.cssHooks.marginLeft = $(re.reliableMarginLeft, function(e, t){return t?(parseFloat(_(e, "marginLeft")) || e.getBoundingClientRect().left - Ye(e, {marginLeft:0}, function(){return e.getBoundingClientRect().left})) + "px":void 0}), oe.cssHooks.marginRight = $(re.reliableMarginRight, function(e, t){return t?Ye(e, {display:"inline-block"}, _, [e, "marginRight"]):void 0}), oe.each({margin:"", padding:"", border:"Width"}, function(e, t){oe.cssHooks[e + t] = {expand:function(n){for (var r = 0, i = {}, o = "string" == typeof n?n.split(" "):[n]; 4 > r; r++)i[e + Ie[r] + t] = o[r] || o[r - 2] || o[0]; return i}}, Ve.test(e) || (oe.cssHooks[e + t].set = E)}), oe.fn.extend({css:function(e, t){return Se(this, function(e, t, n){var r, i, o = {}, a = 0; if (oe.isArray(t)){for (r = Je(e), i = t.length; i > a; a++)o[t[a]] = oe.css(e, t[a], !1, r); return o}return void 0 !== n?oe.style(e, t, n):oe.css(e, t)}, e, t, arguments.length > 1)}, show:function(){return L(this, !0)}, hide:function(){return L(this)}, toggle:function(e){return"boolean" == typeof e?e?this.show():this.hide():this.each(function(){ke(this)?oe(this).show():oe(this).hide()})}}), oe.Tween = j, j.prototype = {constructor:j, init:function(e, t, n, r, i, o){this.elem = e, this.prop = n, this.easing = i || oe.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (oe.cssNumber[n]?"":"px")}, cur:function(){var e = j.propHooks[this.prop]; return e && e.get?e.get(this):j.propHooks._default.get(this)}, run:function(e){var t, n = j.propHooks[this.prop]; return this.options.duration?this.pos = t = oe.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration):this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set?n.set(this):j.propHooks._default.set(this), this}}, j.prototype.init.prototype = j.prototype, j.propHooks = {_default:{get:function(e){var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop]?e.elem[e.prop]:(t = oe.css(e.elem, e.prop, ""), t && "auto" !== t?t:0)}, set:function(e){oe.fx.step[e.prop]?oe.fx.step[e.prop](e):1 !== e.elem.nodeType || null == e.elem.style[oe.cssProps[e.prop]] && !oe.cssHooks[e.prop]?e.elem[e.prop] = e.now:oe.style(e.elem, e.prop, e.now + e.unit)}}}, j.propHooks.scrollTop = j.propHooks.scrollLeft = {set:function(e){e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)}}, oe.easing = {linear:function(e){return e}, swing:function(e){return.5 - Math.cos(e * Math.PI) / 2}, _default:"swing"}, oe.fx = j.prototype.init, oe.fx.step = {}; var rt, it, ot = /^(?:toggle|show|hide)$/, at = /queueHooks$/; oe.Animation = oe.extend(H, {tweeners:{"*":[function(e, t){var n = this.createTween(e, t); return c(n.elem, e, Ee.exec(t), n), n}]}, tweener:function(e, t){oe.isFunction(e)?(t = e, e = ["*"]):e = e.match(we); for (var n, r = 0, i = e.length; i > r; r++)n = e[r], H.tweeners[n] = H.tweeners[n] || [], H.tweeners[n].unshift(t)}, prefilters:[P], prefilter:function(e, t){t?H.prefilters.unshift(e):H.prefilters.push(e)}}), oe.speed = function(e, t, n){var r = e && "object" == typeof e?oe.extend({}, e):{complete:n || !n && t || oe.isFunction(e) && e, duration:e, easing:n && t || t && !oe.isFunction(t) && t}; return r.duration = oe.fx.off?0:"number" == typeof r.duration?r.duration:r.duration in oe.fx.speeds?oe.fx.speeds[r.duration]:oe.fx.speeds._default, null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function(){oe.isFunction(r.old) && r.old.call(this), r.queue && oe.dequeue(this, r.queue)}, r}, oe.fn.extend({fadeTo:function(e, t, n, r){return this.filter(ke).css("opacity", 0).show().end().animate({opacity:t}, e, n, r)}, animate:function(e, t, n, r){var i = oe.isEmptyObject(e), o = oe.speed(t, n, r), a = function(){var t = H(this, oe.extend({}, e), o); (i || Ce.get(this, "finish")) && t.stop(!0)}; return a.finish = a, i || !1 === o.queue?this.each(a):this.queue(o.queue, a)}, stop:function(e, t, n){var r = function(e){var t = e.stop; delete e.stop, t(n)}; return"string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function(){var t = !0, i = null != e && e + "queueHooks", o = oe.timers, a = Ce.get(this); if (i)a[i] && a[i].stop && r(a[i]); else for (i in a)a[i] && a[i].stop && at.test(i) && r(a[i]); for (i = o.length; i--; )o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); !t && n || oe.dequeue(this, e)})}, finish:function(e){return!1 !== e && (e = e || "fx"), this.each(function(){var t, n = Ce.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = oe.timers, a = r?r.length:0; for (n.finish = !0, oe.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--; )o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); for (t = 0; a > t; t++)r[t] && r[t].finish && r[t].finish.call(this); delete n.finish})}}), oe.each(["toggle", "show", "hide"], function(e, t){var n = oe.fn[t]; oe.fn[t] = function(e, r, i){return null == e || "boolean" == typeof e?n.apply(this, arguments):this.animate(N(t, !0), e, r, i)}}), oe.each({slideDown:N("show"), slideUp:N("hide"), slideToggle:N("toggle"), fadeIn:{opacity:"show"}, fadeOut:{opacity:"hide"}, fadeToggle:{opacity:"toggle"}}, function(e, t){oe.fn[e] = function(e, n, r){return this.animate(t, e, n, r)}}), oe.timers = [], oe.fx.tick = function(){var e, t = 0, n = oe.timers; for (rt = oe.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || oe.fx.stop(), rt = void 0}, oe.fx.timer = function(e){oe.timers.push(e), e()?oe.fx.start():oe.timers.pop()}, oe.fx.interval = 13, oe.fx.start = function(){it || (it = e.setInterval(oe.fx.tick, oe.fx.interval))}, oe.fx.stop = function(){e.clearInterval(it), it = null}, oe.fx.speeds = {slow:600, fast:200, _default:400}, oe.fn.delay = function(t, n){return t = oe.fx?oe.fx.speeds[t] || t:t, n = n || "fx", this.queue(n, function(n, r){var i = e.setTimeout(n, t); r.stop = function(){e.clearTimeout(i)}})}, function(){var e = J.createElement("input"), t = J.createElement("select"), n = t.appendChild(J.createElement("option")); e.type = "checkbox", re.checkOn = "" !== e.value, re.optSelected = n.selected, t.disabled = !0, re.optDisabled = !n.disabled, e = J.createElement("input"), e.value = "t", e.type = "radio", re.radioValue = "t" === e.value}(); var st, lt = oe.expr.attrHandle; oe.fn.extend({attr:function(e, t){return Se(this, oe.attr, e, t, arguments.length > 1)}, removeAttr:function(e){return this.each(function(){oe.removeAttr(this, e)})}}), oe.extend({attr:function(e, t, n){var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o)return void 0 === e.getAttribute?oe.prop(e, t, n):(1 === o && oe.isXMLDoc(e) || (t = t.toLowerCase(), i = oe.attrHooks[t] || (oe.expr.match.bool.test(t)?st:void 0)), void 0 !== n?null === n?void oe.removeAttr(e, t):i && "set"in i && void 0 !== (r = i.set(e, n, t))?r:(e.setAttribute(t, n + ""), n):i && "get"in i && null !== (r = i.get(e, t))?r:(r = oe.find.attr(e, t), null == r?void 0:r))}, attrHooks:{type:{set:function(e, t){if (!re.radioValue && "radio" === t && oe.nodeName(e, "input")){var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t}}}}, removeAttr:function(e, t){var n, r, i = 0, o = t && t.match(we); if (o && 1 === e.nodeType)for (; n = o[i++]; )r = oe.propFix[n] || n, oe.expr.match.bool.test(n) && (e[r] = !1), e.removeAttribute(n)}}), st = {set:function(e, t, n){return!1 === t?oe.removeAttr(e, n):e.setAttribute(n, n), n}}, oe.each(oe.expr.match.bool.source.match(/\w+/g), function(e, t){var n = lt[t] || oe.find.attr; lt[t] = function(e, t, r){var i, o; return r || (o = lt[t], lt[t] = i, i = null != n(e, t, r)?t.toLowerCase():null, lt[t] = o), i}}); var ct = /^(?:input|select|textarea|button)$/i, ut = /^(?:a|area)$/i; oe.fn.extend({prop:function(e, t){return Se(this, oe.prop, e, t, arguments.length > 1)}, removeProp:function(e){return this.each(function(){delete this[oe.propFix[e] || e]})}}), oe.extend({prop:function(e, t, n){var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o)return 1 === o && oe.isXMLDoc(e) || (t = oe.propFix[t] || t, i = oe.propHooks[t]), void 0 !== n?i && "set"in i && void 0 !== (r = i.set(e, n, t))?r:e[t] = n:i && "get"in i && null !== (r = i.get(e, t))?r:e[t]}, propHooks:{tabIndex:{get:function(e){var t = oe.find.attr(e, "tabindex"); return t?parseInt(t, 10):ct.test(e.nodeName) || ut.test(e.nodeName) && e.href?0: - 1}}}, propFix:{for :"htmlFor", class:"className"}}), re.optSelected || (oe.propHooks.selected = {get:function(e){var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null}, set:function(e){var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)}}), oe.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function(){oe.propFix[this.toLowerCase()] = this}); var dt = /[\t\r\n\f]/g; oe.fn.extend({addClass:function(e){var t, n, r, i, o, a, s, l = 0; if (oe.isFunction(e))return this.each(function(t){oe(this).addClass(e.call(this, t, q(this)))}); if ("string" == typeof e && e)for (t = e.match(we) || []; n = this[l++]; )if (i = q(n), r = 1 === n.nodeType && (" " + i + " ").replace(dt, " ")){for (a = 0; o = t[a++]; )r.indexOf(" " + o + " ") < 0 && (r += o + " "); s = oe.trim(r), i !== s && n.setAttribute("class", s)}return this}, removeClass:function(e){var t, n, r, i, o, a, s, l = 0; if (oe.isFunction(e))return this.each(function(t){oe(this).removeClass(e.call(this, t, q(this)))}); if (!arguments.length)return this.attr("class", ""); if ("string" == typeof e && e)for (t = e.match(we) || []; n = this[l++]; )if (i = q(n), r = 1 === n.nodeType && (" " + i + " ").replace(dt, " ")){for (a = 0; o = t[a++]; )for (; r.indexOf(" " + o + " ") > - 1; )r = r.replace(" " + o + " ", " "); s = oe.trim(r), i !== s && n.setAttribute("class", s)}return this}, toggleClass:function(e, t){var n = typeof e; return"boolean" == typeof t && "string" === n?t?this.addClass(e):this.removeClass(e):oe.isFunction(e)?this.each(function(n){oe(this).toggleClass(e.call(this, n, q(this), t), t)}):this.each(function(){var t, r, i, o; if ("string" === n)for (r = 0, i = oe(this), o = e.match(we) || []; t = o[r++]; )i.hasClass(t)?i.removeClass(t):i.addClass(t); else void 0 !== e && "boolean" !== n || (t = q(this), t && Ce.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e?"":Ce.get(this, "__className__") || ""))})}, hasClass:function(e){var t, n, r = 0; for (t = " " + e + " "; n = this[r++]; )if (1 === n.nodeType && (" " + q(n) + " ").replace(dt, " ").indexOf(t) > - 1)return!0; return!1}}); var ht = /\r/g, ft = /[\x20\t\r\n\f]+/g; oe.fn.extend({val:function(e){var t, n, r, i = this[0]; return arguments.length?(r = oe.isFunction(e), this.each(function(n){var i; 1 === this.nodeType && (i = r?e.call(this, n, oe(this).val()):e, null == i?i = "":"number" == typeof i?i += "":oe.isArray(i) && (i = oe.map(i, function(e){return null == e?"":e + ""})), (t = oe.valHooks[this.type] || oe.valHooks[this.nodeName.toLowerCase()]) && "set"in t && void 0 !== t.set(this, i, "value") || (this.value = i))})):i?(t = oe.valHooks[i.type] || oe.valHooks[i.nodeName.toLowerCase()], t && "get"in t && void 0 !== (n = t.get(i, "value"))?n:(n = i.value, "string" == typeof n?n.replace(ht, ""):null == n?"":n)):void 0}}), oe.extend({valHooks:{option:{get:function(e){var t = oe.find.attr(e, "value"); return null != t?t:oe.trim(oe.text(e)).replace(ft, " ")}}, select:{get:function(e){for (var t, n, r = e.options, i = e.selectedIndex, o = "select-one" === e.type || 0 > i, a = o?null:[], s = o?i + 1:r.length, l = 0 > i?s:o?i:0; s > l; l++)if (n = r[l], (n.selected || l === i) && (re.optDisabled?!n.disabled:null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !oe.nodeName(n.parentNode, "optgroup"))){if (t = oe(n).val(), o)return t; a.push(t)}return a}, set:function(e, t){for (var n, r, i = e.options, o = oe.makeArray(t), a = i.length; a--; )r = i[a], (r.selected = oe.inArray(oe.valHooks.option.get(r), o) > - 1) && (n = !0); return n || (e.selectedIndex = - 1), o}}}}), oe.each(["radio", "checkbox"], function(){oe.valHooks[this] = {set:function(e, t){return oe.isArray(t)?e.checked = oe.inArray(oe(e).val(), t) > - 1:void 0}}, re.checkOn || (oe.valHooks[this].get = function(e){return null === e.getAttribute("value")?"on":e.value})}); var pt = /^(?:focusinfocus|focusoutblur)$/; oe.extend(oe.event, {trigger:function(t, n, r, i){var o, a, s, l, c, u, d, h = [r || J], f = ne.call(t, "type")?t.type:t, p = ne.call(t, "namespace")?t.namespace.split("."):[]; if (a = s = r = r || J, 3 !== r.nodeType && 8 !== r.nodeType && !pt.test(f + oe.event.triggered) && (f.indexOf(".") > - 1 && (p = f.split("."), f = p.shift(), p.sort()), c = f.indexOf(":") < 0 && "on" + f, t = t[oe.expando]?t:new oe.Event(f, "object" == typeof t && t), t.isTrigger = i?2:3, t.namespace = p.join("."), t.rnamespace = t.namespace?new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"):null, t.result = void 0, t.target || (t.target = r), n = null == n?[t]:oe.makeArray(n, [t]), d = oe.event.special[f] || {}, i || !d.trigger || !1 !== d.trigger.apply(r, n))){if (!i && !d.noBubble && !oe.isWindow(r)){for (l = d.delegateType || f, pt.test(l + f) || (a = a.parentNode); a; a = a.parentNode)h.push(a), s = a; s === (r.ownerDocument || J) && h.push(s.defaultView || s.parentWindow || e)}for (o = 0; (a = h[o++]) && !t.isPropagationStopped(); )t.type = o > 1?l:d.bindType || f, u = (Ce.get(a, "events") || {})[t.type] && Ce.get(a, "handle"), u && u.apply(a, n), (u = c && a[c]) && u.apply && Te(a) && (t.result = u.apply(a, n), !1 === t.result && t.preventDefault()); return t.type = f, i || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(h.pop(), n) || !Te(r) || c && oe.isFunction(r[f]) && !oe.isWindow(r) && (s = r[c], s && (r[c] = null), oe.event.triggered = f, r[f](), oe.event.triggered = void 0, s && (r[c] = s)), t.result}}, simulate:function(e, t, n){var r = oe.extend(new oe.Event, n, {type:e, isSimulated:!0}); oe.event.trigger(r, null, t), r.isDefaultPrevented() && n.preventDefault()}}), oe.fn.extend({trigger:function(e, t){return this.each(function(){oe.event.trigger(e, t, this)})}, triggerHandler:function(e, t){var n = this[0]; return n?oe.event.trigger(e, t, n, !0):void 0}}), oe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t){oe.fn[t] = function(e, n){return arguments.length > 0?this.on(t, null, e, n):this.trigger(t)}}), oe.fn.extend({hover:function(e, t){return this.mouseenter(e).mouseleave(t || e)}}), re.focusin = "onfocusin"in e, re.focusin || oe.each({focus:"focusin", blur:"focusout"}, function(e, t){var n = function(e){oe.event.simulate(t, e.target, oe.event.fix(e))}; oe.event.special[t] = {setup:function(){var r = this.ownerDocument || this, i = Ce.access(r, t); i || r.addEventListener(e, n, !0), Ce.access(r, t, (i || 0) + 1)}, teardown:function(){var r = this.ownerDocument || this, i = Ce.access(r, t) - 1; i?Ce.access(r, t, i):(r.removeEventListener(e, n, !0), Ce.remove(r, t))}}}); var gt = e.location, vt = oe.now(), mt = /\?/; oe.parseJSON = function(e){return JSON.parse(e + "")}, oe.parseXML = function(t){var n; if (!t || "string" != typeof t)return null; try{n = (new e.DOMParser).parseFromString(t, "text/xml")} catch (e){n = void 0}return n && !n.getElementsByTagName("parsererror").length || oe.error("Invalid XML: " + t), n}; var yt = /#.*$/, bt = /([?&])_=[^&]*/, wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, xt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, St = /^(?:GET|HEAD)$/, Tt = /^\/\//, Ct = {}, Dt = {}, _t = "*/".concat("*"), $t = J.createElement("a"); $t.href = gt.href, oe.extend({active:0, lastModified:{}, etag:{}, ajaxSettings:{url:gt.href, type:"GET", isLocal:xt.test(gt.protocol), global:!0, processData:!0, async:!0, contentType:"application/x-www-form-urlencoded; charset=UTF-8", accepts:{"*":_t, text:"text/plain", html:"text/html", xml:"application/xml, text/xml", json:"application/json, text/javascript"}, contents:{xml:/\bxml\b/, html:/\bhtml/, json:/\bjson\b/}, responseFields:{xml:"responseXML", text:"responseText", json:"responseJSON"}, converters:{"* text":String, "text html":!0, "text json":oe.parseJSON, "text xml":oe.parseXML}, flatOptions:{url:!0, context:!0}}, ajaxSetup:function(e, t){return t?U(U(e, oe.ajaxSettings), t):U(oe.ajaxSettings, e)}, ajaxPrefilter:M(Ct), ajaxTransport:M(Dt), ajax:function(t, n){function r(t, n, r, s){var c, d, y, b, x, T = n; 2 !== w && (w = 2, l && e.clearTimeout(l), i = void 0, a = s || "", S.readyState = t > 0?4:0, c = t >= 200 && 300 > t || 304 === t, r && (b = B(h, S, r)), b = z(h, b, S, c), c?(h.ifModified && (x = S.getResponseHeader("Last-Modified"), x && (oe.lastModified[o] = x), (x = S.getResponseHeader("etag")) && (oe.etag[o] = x)), 204 === t || "HEAD" === h.type?T = "nocontent":304 === t?T = "notmodified":(T = b.state, d = b.data, y = b.error, c = !y)):(y = T, !t && T || (T = "error", 0 > t && (t = 0))), S.status = t, S.statusText = (n || T) + "", c?g.resolveWith(f, [d, T, S]):g.rejectWith(f, [S, T, y]), S.statusCode(m), m = void 0, u && p.trigger(c?"ajaxSuccess":"ajaxError", [S, h, c?d:y]), v.fireWith(f, [S, T]), u && (p.trigger("ajaxComplete", [S, h]), --oe.active || oe.event.trigger("ajaxStop")))}"object" == typeof t && (n = t, t = void 0), n = n || {}; var i, o, a, s, l, c, u, d, h = oe.ajaxSetup({}, n), f = h.context || h, p = h.context && (f.nodeType || f.jquery)?oe(f):oe.event, g = oe.Deferred(), v = oe.Callbacks("once memory"), m = h.statusCode || {}, y = {}, b = {}, w = 0, x = "canceled", S = {readyState:0, getResponseHeader:function(e){var t; if (2 === w){if (!s)for (s = {}; t = wt.exec(a); )s[t[1].toLowerCase()] = t[2]; t = s[e.toLowerCase()]}return null == t?null:t}, getAllResponseHeaders:function(){return 2 === w?a:null}, setRequestHeader:function(e, t){var n = e.toLowerCase(); return w || (e = b[n] = b[n] || e, y[e] = t), this}, overrideMimeType:function(e){return w || (h.mimeType = e), this}, statusCode:function(e){var t; if (e)if (2 > w)for (t in e)m[t] = [m[t], e[t]]; else S.always(e[S.status]); return this}, abort:function(e){var t = e || x; return i && i.abort(t), r(0, t), this}}; if (g.promise(S).complete = v.add, S.success = S.done, S.error = S.fail, h.url = ((t || h.url || gt.href) + "").replace(yt, "").replace(Tt, gt.protocol + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = oe.trim(h.dataType || "*").toLowerCase().match(we) || [""], null == h.crossDomain){c = J.createElement("a"); try{c.href = h.url, c.href = c.href, h.crossDomain = $t.protocol + "//" + $t.host != c.protocol + "//" + c.host} catch (e){h.crossDomain = !0}}if (h.data && h.processData && "string" != typeof h.data && (h.data = oe.param(h.data, h.traditional)), W(Ct, h, n, S), 2 === w)return S; u = oe.event && h.global, u && 0 == oe.active++ && oe.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !St.test(h.type), o = h.url, h.hasContent || (h.data && (o = h.url += (mt.test(o)?"&":"?") + h.data, delete h.data), !1 === h.cache && (h.url = bt.test(o)?o.replace(bt, "$1_=" + vt++):o + (mt.test(o)?"&":"?") + "_=" + vt++)), h.ifModified && (oe.lastModified[o] && S.setRequestHeader("If-Modified-Since", oe.lastModified[o]), oe.etag[o] && S.setRequestHeader("If-None-Match", oe.etag[o])), (h.data && h.hasContent && !1 !== h.contentType || n.contentType) && S.setRequestHeader("Content-Type", h.contentType), S.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0]?", " + _t + "; q=0.01":""):h.accepts["*"]); for (d in h.headers)S.setRequestHeader(d, h.headers[d]); if (h.beforeSend && (!1 === h.beforeSend.call(f, S, h) || 2 === w))return S.abort(); x = "abort"; for (d in{success:1, error:1, complete:1})S[d](h[d]); if (i = W(Dt, h, n, S)){if (S.readyState = 1, u && p.trigger("ajaxSend", [S, h]), 2 === w)return S; h.async && h.timeout > 0 && (l = e.setTimeout(function(){S.abort("timeout")}, h.timeout)); try{w = 1, i.send(y, r)} catch (e){if (!(2 > w))throw e; r( - 1, e)}} else r( - 1, "No Transport"); return S}, getJSON:function(e, t, n){return oe.get(e, t, n, "json")}, getScript:function(e, t){return oe.get(e, void 0, t, "script")}}), oe.each(["get", "post"], function(e, t){oe[t] = function(e, n, r, i){return oe.isFunction(n) && (i = i || r, r = n, n = void 0), oe.ajax(oe.extend({url:e, type:t, dataType:i, data:n, success:r}, oe.isPlainObject(e) && e))}}), oe._evalUrl = function(e){return oe.ajax({url:e, type:"GET", dataType:"script", async:!1, global:!1, throws:!0})}, oe.fn.extend({wrapAll:function(e){var t; return oe.isFunction(e)?this.each(function(t){oe(this).wrapAll(e.call(this, t))}):(this[0] && (t = oe(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function(){for (var e = this; e.firstElementChild; )e = e.firstElementChild; return e}).append(this)), this)}, wrapInner:function(e){return oe.isFunction(e)?this.each(function(t){oe(this).wrapInner(e.call(this, t))}):this.each(function(){var t = oe(this), n = t.contents(); n.length?n.wrapAll(e):t.append(e)})}, wrap:function(e){var t = oe.isFunction(e); return this.each(function(n){oe(this).wrapAll(t?e.call(this, n):e)})}, unwrap:function(){return this.parent().each(function(){oe.nodeName(this, "body") || oe(this).replaceWith(this.childNodes)}).end()}}), oe.expr.filters.hidden = function(e){return!oe.expr.filters.visible(e)}, oe.expr.filters.visible = function(e){return e.offsetWidth > 0 || e.offsetHeight > 0 || e.getClientRects().length > 0}; var At = /%20/g, Et = /\[\]$/, It = /\r?\n/g, kt = /^(?:submit|button|image|reset|file)$/i, Lt = /^(?:input|select|textarea|keygen)/i; oe.param = function(e, t){var n, r = [], i = function(e, t){t = oe.isFunction(t)?t():null == t?"":t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)}; if (void 0 === t && (t = oe.ajaxSettings && oe.ajaxSettings.traditional), oe.isArray(e) || e.jquery && !oe.isPlainObject(e))oe.each(e, function(){i(this.name, this.value)}); else for (n in e)G(n, e[n], t, i); return r.join("&").replace(At, "+")}, oe.fn.extend({serialize:function(){return oe.param(this.serializeArray())}, serializeArray:function(){return this.map(function(){var e = oe.prop(this, "elements"); return e?oe.makeArray(e):this}).filter(function(){var e = this.type; return this.name && !oe(this).is(":disabled") && Lt.test(this.nodeName) && !kt.test(e) && (this.checked || !Le.test(e))}).map(function(e, t){var n = oe(this).val(); return null == n?null:oe.isArray(n)?oe.map(n, function(e){return{name:t.name, value:e.replace(It, "\r\n")}}):{name:t.name, value:n.replace(It, "\r\n")}}).get()}}), oe.ajaxSettings.xhr = function(){try{return new e.XMLHttpRequest} catch (e){}}; var jt = {0:200, 1223:204}, Ot = oe.ajaxSettings.xhr(); re.cors = !!Ot && "withCredentials"in Ot, re.ajax = Ot = !!Ot, oe.ajaxTransport(function(t){var n, r; return re.cors || Ot && !t.crossDomain?{send:function(i, o){var a, s = t.xhr(); if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)for (a in t.xhrFields)s[a] = t.xhrFields[a]; t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); for (a in i)s.setRequestHeader(a, i[a]); n = function(e){return function(){n && (n = r = s.onload = s.onerror = s.onabort = s.onreadystatechange = null, "abort" === e?s.abort():"error" === e?"number" != typeof s.status?o(0, "error"):o(s.status, s.statusText):o(jt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText?{binary:s.response}:{text:s.responseText}, s.getAllResponseHeaders()))}}, s.onload = n(), r = s.onerror = n("error"), void 0 !== s.onabort?s.onabort = r:s.onreadystatechange = function(){4 === s.readyState && e.setTimeout(function(){n && r()})}, n = n("abort"); try{s.send(t.hasContent && t.data || null)} catch (e){if (n)throw e}}, abort:function(){n && n()}}:void 0}), oe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"}, contents:{script:/\b(?:java|ecma)script\b/}, converters:{"text script":function(e){return oe.globalEval(e), e}}}), oe.ajaxPrefilter("script", function(e){void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")}), oe.ajaxTransport("script", function(e){if (e.crossDomain){var t, n; return{send:function(r, i){t = oe("<script>").prop({charset:e.scriptCharset, src:e.url}).on("load error", n = function(e){t.remove(), n = null, e && i("error" === e.type?404:200, e.type)}), J.head.appendChild(t[0])}, abort:function(){n && n()}}}}); var Nt = [], Rt = /(=)\?(?=&|$)|\?\?/; oe.ajaxSetup({jsonp:"callback", jsonpCallback:function(){var e = Nt.pop() || oe.expando + "_" + vt++; return this[e] = !0, e}}), oe.ajaxPrefilter("json jsonp", function(t, n, r){var i, o, a, s = !1 !== t.jsonp && (Rt.test(t.url)?"url":"string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Rt.test(t.data) && "data"); return s || "jsonp" === t.dataTypes[0]?(i = t.jsonpCallback = oe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback, s?t[s] = t[s].replace(Rt, "$1" + i):!1 !== t.jsonp && (t.url += (mt.test(t.url)?"&":"?") + t.jsonp + "=" + i), t.converters["script json"] = function(){return a || oe.error(i + " was not called"), a[0]}, t.dataTypes[0] = "json", o = e[i], e[i] = function(){a = arguments}, r.always(function(){void 0 === o?oe(e).removeProp(i):e[i] = o, t[i] && (t.jsonpCallback = n.jsonpCallback, Nt.push(i)), a && oe.isFunction(o) && o(a[0]), a = o = void 0}), "script"):void 0}), oe.parseHTML = function(e, t, n){if (!e || "string" != typeof e)return null; "boolean" == typeof t && (n = t, t = !1), t = t || J; var r = pe.exec(e), i = !n && []; return r?[t.createElement(r[1])]:(r = h([e], t, i), i && i.length && oe(i).remove(), oe.merge([], r.childNodes))}; var Pt = oe.fn.load; oe.fn.load = function(e, t, n){if ("string" != typeof e && Pt)return Pt.apply(this, arguments); var r, i, o, a = this, s = e.indexOf(" "); return s > - 1 && (r = oe.trim(e.slice(s)), e = e.slice(0, s)), oe.isFunction(t)?(n = t, t = void 0):t && "object" == typeof t && (i = "POST"), a.length > 0 && oe.ajax({url:e, type:i || "GET", dataType:"html", data:t}).done(function(e){o = arguments, a.html(r?oe("<div>").append(oe.parseHTML(e)).find(r):e)}).always(n && function(e, t){a.each(function(){n.apply(this, o || [e.responseText, t, e])})}), this}, oe.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t){oe.fn[t] = function(e){return this.on(t, e)}}), oe.expr.filters.animated = function(e){return oe.grep(oe.timers, function(t){return e === t.elem}).length}, oe.offset = {setOffset:function(e, t, n){var r, i, o, a, s, l, c, u = oe.css(e, "position"), d = oe(e), h = {}; "static" === u && (e.style.position = "relative"), s = d.offset(), o = oe.css(e, "top"), l = oe.css(e, "left"), c = ("absolute" === u || "fixed" === u) && (o + l).indexOf("auto") > - 1, c?(r = d.position(), a = r.top, i = r.left):(a = parseFloat(o) || 0, i = parseFloat(l) || 0), oe.isFunction(t) && (t = t.call(e, n, oe.extend({}, s))), null != t.top && (h.top = t.top - s.top + a), null != t.left && (h.left = t.left - s.left + i), "using"in t?t.using.call(e, h):d.css(h)}}, oe.fn.extend({offset:function(e){if (arguments.length)return void 0 === e?this:this.each(function(t){oe.offset.setOffset(this, e, t)}); var t, n, r = this[0], i = {top:0, left:0}, o = r && r.ownerDocument; return o?(t = o.documentElement, oe.contains(t, r)?(i = r.getBoundingClientRect(), n = V(o), {top:i.top + n.pageYOffset - t.clientTop, left:i.left + n.pageXOffset - t.clientLeft}):i):void 0}, position:function(){if (this[0]){var e, t, n = this[0], r = {top:0, left:0}; return"fixed" === oe.css(n, "position")?t = n.getBoundingClientRect():(e = this.offsetParent(), t = this.offset(), oe.nodeName(e[0], "html") || (r = e.offset()), r.top += oe.css(e[0], "borderTopWidth", !0), r.left += oe.css(e[0], "borderLeftWidth", !0)), {top:t.top - r.top - oe.css(n, "marginTop", !0), left:t.left - r.left - oe.css(n, "marginLeft", !0)}}}, offsetParent:function(){return this.map(function(){for (var e = this.offsetParent; e && "static" === oe.css(e, "position"); )e = e.offsetParent; return e || Qe})}}), oe.each({scrollLeft:"pageXOffset", scrollTop:"pageYOffset"}, function(e, t){var n = "pageYOffset" === t; oe.fn[e] = function(r){return Se(this, function(e, r, i){var o = V(e); return void 0 === i?o?o[t]:e[r]:void(o?o.scrollTo(n?o.pageXOffset:i, n?i:o.pageYOffset):e[r] = i)}, e, r, arguments.length)}}), oe.each(["top", "left"], function(e, t){oe.cssHooks[t] = $(re.pixelPosition, function(e, n){return n?(n = _(e, t), Xe.test(n)?oe(e).position()[t] + "px":n):void 0})}), oe.each({Height:"height", Width:"width"}, function(e, t){oe.each({padding:"inner" + e, content:t, "":"outer" + e}, function(n, r){oe.fn[r] = function(r, i){var o = arguments.length && (n || "boolean" != typeof r), a = n || (!0 === r || !0 === i?"margin":"border"); return Se(this, function(t, n, r){var i; return oe.isWindow(t)?t.document.documentElement["client" + e]:9 === t.nodeType?(i = t.documentElement, Math.max(t.body["scroll" + e], i["scroll" + e], t.body["offset" + e], i["offset" + e], i["client" + e])):void 0 === r?oe.css(t, n, a):oe.style(t, n, r, a)}, t, o?r:void 0, o, null)}})}), oe.fn.extend({bind:function(e, t, n){return this.on(e, null, t, n)}, unbind:function(e, t){return this.off(e, null, t)}, delegate:function(e, t, n, r){return this.on(t, e, n, r)}, undelegate:function(e, t, n){return 1 === arguments.length?this.off(e, "**"):this.off(t, e || "**", n)}, size:function(){return this.length}}), oe.fn.andSelf = oe.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function(){return oe}); var Ft = e.jQuery, Ht = e.$; return oe.noConflict = function(t){return e.$ === oe && (e.$ = Ht), t && e.jQuery === oe && (e.jQuery = Ft), oe}, t || (e.jQuery = e.$ = oe), oe}), "undefined" == typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery"); if (function(e){"use strict"; var t = e.fn.jquery.split(" ")[0].split("."); if (t[0] < 2 && t[1] < 9 || 1 == t[0] && 9 == t[1] && t[2] < 1 || t[0] > 3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery), function(e){"use strict"; function t(){var e = document.createElement("bootstrap"), t = {WebkitTransition:"webkitTransitionEnd", MozTransition:"transitionend", OTransition:"oTransitionEnd otransitionend", transition:"transitionend"}; for (var n in t)if (void 0 !== e.style[n])return{end:t[n]}; return!1}e.fn.emulateTransitionEnd = function(t){var n = !1, r = this; e(this).one("bsTransitionEnd", function(){n = !0}); var i = function(){n || e(r).trigger(e.support.transition.end)}; return setTimeout(i, t), this}, e(function(){e.support.transition = t(), e.support.transition && (e.event.special.bsTransitionEnd = {bindType:e.support.transition.end, delegateType:e.support.transition.end, handle:function(t){if (e(t.target).is(this))return t.handleObj.handler.apply(this, arguments)}})})}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var n = e(this), i = n.data("bs.alert"); i || n.data("bs.alert", i = new r(this)), "string" == typeof t && i[t].call(n)})}var n = '[data-dismiss="alert"]', r = function(t){e(t).on("click", n, this.close)}; r.VERSION = "3.3.7", r.TRANSITION_DURATION = 150, r.prototype.close = function(t){function n(){a.detach().trigger("closed.bs.alert").remove()}var i = e(this), o = i.attr("data-target"); o || (o = i.attr("href"), o = o && o.replace(/.*(?=#[^\s]*$)/, "")); var a = e("#" === o?[]:o); t && t.preventDefault(), a.length || (a = i.closest(".alert")), a.trigger(t = e.Event("close.bs.alert")), t.isDefaultPrevented() || (a.removeClass("in"), e.support.transition && a.hasClass("fade")?a.one("bsTransitionEnd", n).emulateTransitionEnd(r.TRANSITION_DURATION):n())}; var i = e.fn.alert; e.fn.alert = t, e.fn.alert.Constructor = r, e.fn.alert.noConflict = function(){return e.fn.alert = i, this}, e(document).on("click.bs.alert.data-api", n, r.prototype.close)}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.button"), o = "object" == typeof t && t; i || r.data("bs.button", i = new n(this, o)), "toggle" == t?i.toggle():t && i.setState(t)})}var n = function(t, r){this.$element = e(t), this.options = e.extend({}, n.DEFAULTS, r), this.isLoading = !1}; n.VERSION = "3.3.7", n.DEFAULTS = {loadingText:"loading..."}, n.prototype.setState = function(t){var n = "disabled", r = this.$element, i = r.is("input")?"val":"html", o = r.data(); t += "Text", null == o.resetText && r.data("resetText", r[i]()), setTimeout(e.proxy(function(){r[i](null == o[t]?this.options[t]:o[t]), "loadingText" == t?(this.isLoading = !0, r.addClass(n).attr(n, n).prop(n, !0)):this.isLoading && (this.isLoading = !1, r.removeClass(n).removeAttr(n).prop(n, !1))}, this), 0)}, n.prototype.toggle = function(){var e = !0, t = this.$element.closest('[data-toggle="buttons"]'); if (t.length){var n = this.$element.find("input"); "radio" == n.prop("type")?(n.prop("checked") && (e = !1), t.find(".active").removeClass("active"), this.$element.addClass("active")):"checkbox" == n.prop("type") && (n.prop("checked") !== this.$element.hasClass("active") && (e = !1), this.$element.toggleClass("active")), n.prop("checked", this.$element.hasClass("active")), e && n.trigger("change")} else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active")}; var r = e.fn.button; e.fn.button = t, e.fn.button.Constructor = n, e.fn.button.noConflict = function(){return e.fn.button = r, this}, e(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(n){var r = e(n.target).closest(".btn"); t.call(r, "toggle"), e(n.target).is('input[type="radio"], input[type="checkbox"]') || (n.preventDefault(), r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(t){e(t.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(t.type))})}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.carousel"), o = e.extend({}, n.DEFAULTS, r.data(), "object" == typeof t && t), a = "string" == typeof t?t:o.slide; i || r.data("bs.carousel", i = new n(this, o)), "number" == typeof t?i.to(t):a?i[a]():o.interval && i.pause().cycle()})}var n = function(t, n){this.$element = e(t), this.$indicators = this.$element.find(".carousel-indicators"), this.options = n, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null,
          this.options.keyboard && this.$element.on("keydown.bs.carousel", e.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart"in document.documentElement) && this.$element.on("mouseenter.bs.carousel", e.proxy(this.pause, this)).on("mouseleave.bs.carousel", e.proxy(this.cycle, this))}; n.VERSION = "3.3.7", n.TRANSITION_DURATION = 600, n.DEFAULTS = {interval:5e3, pause:"hover", wrap:!0, keyboard:!0}, n.prototype.keydown = function(e){if (!/input|textarea/i.test(e.target.tagName)){switch (e.which){case 37:this.prev(); break; case 39:this.next(); break; default:return}e.preventDefault()}}, n.prototype.cycle = function(t){return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)), this}, n.prototype.getItemIndex = function(e){return this.$items = e.parent().children(".item"), this.$items.index(e || this.$active)}, n.prototype.getItemForDirection = function(e, t){var n = this.getItemIndex(t); if (("prev" == e && 0 === n || "next" == e && n == this.$items.length - 1) && !this.options.wrap)return t; var r = "prev" == e? - 1:1, i = (n + r) % this.$items.length; return this.$items.eq(i)}, n.prototype.to = function(e){var t = this, n = this.getItemIndex(this.$active = this.$element.find(".item.active")); if (!(e > this.$items.length - 1 || e < 0))return this.sliding?this.$element.one("slid.bs.carousel", function(){t.to(e)}):n == e?this.pause().cycle():this.slide(e > n?"next":"prev", this.$items.eq(e))}, n.prototype.pause = function(t){return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition && (this.$element.trigger(e.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this}, n.prototype.next = function(){if (!this.sliding)return this.slide("next")}, n.prototype.prev = function(){if (!this.sliding)return this.slide("prev")}, n.prototype.slide = function(t, r){var i = this.$element.find(".item.active"), o = r || this.getItemForDirection(t, i), a = this.interval, s = "next" == t?"left":"right", l = this; if (o.hasClass("active"))return this.sliding = !1; var c = o[0], u = e.Event("slide.bs.carousel", {relatedTarget:c, direction:s}); if (this.$element.trigger(u), !u.isDefaultPrevented()){if (this.sliding = !0, a && this.pause(), this.$indicators.length){this.$indicators.find(".active").removeClass("active"); var d = e(this.$indicators.children()[this.getItemIndex(o)]); d && d.addClass("active")}var h = e.Event("slid.bs.carousel", {relatedTarget:c, direction:s}); return e.support.transition && this.$element.hasClass("slide")?(o.addClass(t), o[0].offsetWidth, i.addClass(s), o.addClass(s), i.one("bsTransitionEnd", function(){o.removeClass([t, s].join(" ")).addClass("active"), i.removeClass(["active", s].join(" ")), l.sliding = !1, setTimeout(function(){l.$element.trigger(h)}, 0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(i.removeClass("active"), o.addClass("active"), this.sliding = !1, this.$element.trigger(h)), a && this.cycle(), this}}; var r = e.fn.carousel; e.fn.carousel = t, e.fn.carousel.Constructor = n, e.fn.carousel.noConflict = function(){return e.fn.carousel = r, this}; var i = function(n){var r, i = e(this), o = e(i.attr("data-target") || (r = i.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")); if (o.hasClass("carousel")){var a = e.extend({}, o.data(), i.data()), s = i.attr("data-slide-to"); s && (a.interval = !1), t.call(o, a), s && o.data("bs.carousel").to(s), n.preventDefault()}}; e(document).on("click.bs.carousel.data-api", "[data-slide]", i).on("click.bs.carousel.data-api", "[data-slide-to]", i), e(window).on("load", function(){e('[data-ride="carousel"]').each(function(){var n = e(this); t.call(n, n.data())})})}(jQuery), function(e){"use strict"; function t(t){var n, r = t.attr("data-target") || (n = t.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""); return e(r)}function n(t){return this.each(function(){var n = e(this), i = n.data("bs.collapse"), o = e.extend({}, r.DEFAULTS, n.data(), "object" == typeof t && t); !i && o.toggle && /show|hide/.test(t) && (o.toggle = !1), i || n.data("bs.collapse", i = new r(this, o)), "string" == typeof t && i[t]()})}var r = function(t, n){this.$element = e(t), this.options = e.extend({}, r.DEFAULTS, n), this.$trigger = e('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'), this.transitioning = null, this.options.parent?this.$parent = this.getParent():this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle()}; r.VERSION = "3.3.7", r.TRANSITION_DURATION = 350, r.DEFAULTS = {toggle:!0}, r.prototype.dimension = function(){return this.$element.hasClass("width")?"width":"height"}, r.prototype.show = function(){if (!this.transitioning && !this.$element.hasClass("in")){var t, i = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if (!(i && i.length && (t = i.data("bs.collapse")) && t.transitioning)){var o = e.Event("show.bs.collapse"); if (this.$element.trigger(o), !o.isDefaultPrevented()){i && i.length && (n.call(i, "hide"), t || i.data("bs.collapse", null)); var a = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; var s = function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")}; if (!e.support.transition)return s.call(this); var l = e.camelCase(["scroll", a].join("-")); this.$element.one("bsTransitionEnd", e.proxy(s, this)).emulateTransitionEnd(r.TRANSITION_DURATION)[a](this.$element[0][l])}}}}, r.prototype.hide = function(){if (!this.transitioning && this.$element.hasClass("in")){var t = e.Event("hide.bs.collapse"); if (this.$element.trigger(t), !t.isDefaultPrevented()){var n = this.dimension(); this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; var i = function(){this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")}; if (!e.support.transition)return i.call(this); this.$element[n](0).one("bsTransitionEnd", e.proxy(i, this)).emulateTransitionEnd(r.TRANSITION_DURATION)}}}, r.prototype.toggle = function(){this[this.$element.hasClass("in")?"hide":"show"]()}, r.prototype.getParent = function(){return e(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(e.proxy(function(n, r){var i = e(r); this.addAriaAndCollapsedClass(t(i), i)}, this)).end()}, r.prototype.addAriaAndCollapsedClass = function(e, t){var n = e.hasClass("in"); e.attr("aria-expanded", n), t.toggleClass("collapsed", !n).attr("aria-expanded", n)}; var i = e.fn.collapse; e.fn.collapse = n, e.fn.collapse.Constructor = r, e.fn.collapse.noConflict = function(){return e.fn.collapse = i, this}, e(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(r){var i = e(this); i.attr("data-target") || r.preventDefault(); var o = t(i), a = o.data("bs.collapse"), s = a?"toggle":i.data(); n.call(o, s)})}(jQuery), function(e){"use strict"; function t(t){var n = t.attr("data-target"); n || (n = t.attr("href"), n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, "")); var r = n && e(n); return r && r.length?r:t.parent()}function n(n){n && 3 === n.which || (e(i).remove(), e(o).each(function(){var r = e(this), i = t(r), o = {relatedTarget:this}; i.hasClass("open") && (n && "click" == n.type && /input|textarea/i.test(n.target.tagName) && e.contains(i[0], n.target) || (i.trigger(n = e.Event("hide.bs.dropdown", o)), n.isDefaultPrevented() || (r.attr("aria-expanded", "false"), i.removeClass("open").trigger(e.Event("hidden.bs.dropdown", o)))))}))}function r(t){return this.each(function(){var n = e(this), r = n.data("bs.dropdown"); r || n.data("bs.dropdown", r = new a(this)), "string" == typeof t && r[t].call(n)})}var i = ".dropdown-backdrop", o = '[data-toggle="dropdown"]', a = function(t){e(t).on("click.bs.dropdown", this.toggle)}; a.VERSION = "3.3.7", a.prototype.toggle = function(r){var i = e(this); if (!i.is(".disabled, :disabled")){var o = t(i), a = o.hasClass("open"); if (n(), !a){"ontouchstart"in document.documentElement && !o.closest(".navbar-nav").length && e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click", n); var s = {relatedTarget:this}; if (o.trigger(r = e.Event("show.bs.dropdown", s)), r.isDefaultPrevented())return; i.trigger("focus").attr("aria-expanded", "true"), o.toggleClass("open").trigger(e.Event("shown.bs.dropdown", s))}return!1}}, a.prototype.keydown = function(n){if (/(38|40|27|32)/.test(n.which) && !/input|textarea/i.test(n.target.tagName)){var r = e(this); if (n.preventDefault(), n.stopPropagation(), !r.is(".disabled, :disabled")){var i = t(r), a = i.hasClass("open"); if (!a && 27 != n.which || a && 27 == n.which)return 27 == n.which && i.find(o).trigger("focus"), r.trigger("click"); var s = i.find(".dropdown-menu li:not(.disabled):visible a"); if (s.length){var l = s.index(n.target); 38 == n.which && l > 0 && l--, 40 == n.which && l < s.length - 1 && l++, ~l || (l = 0), s.eq(l).trigger("focus")}}}}; var s = e.fn.dropdown; e.fn.dropdown = r, e.fn.dropdown.Constructor = a, e.fn.dropdown.noConflict = function(){return e.fn.dropdown = s, this}, e(document).on("click.bs.dropdown.data-api", n).on("click.bs.dropdown.data-api", ".dropdown form", function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api", o, a.prototype.toggle).on("keydown.bs.dropdown.data-api", o, a.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", a.prototype.keydown)}(jQuery), function(e){"use strict"; function t(t, r){return this.each(function(){var i = e(this), o = i.data("bs.modal"), a = e.extend({}, n.DEFAULTS, i.data(), "object" == typeof t && t); o || i.data("bs.modal", o = new n(this, a)), "string" == typeof t?o[t](r):a.show && o.show(r)})}var n = function(t, n){this.options = n, this.$body = e(document.body), this.$element = e(t), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, e.proxy(function(){this.$element.trigger("loaded.bs.modal")}, this))}; n.VERSION = "3.3.7", n.TRANSITION_DURATION = 300, n.BACKDROP_TRANSITION_DURATION = 150, n.DEFAULTS = {backdrop:!0, keyboard:!0, show:!0}, n.prototype.toggle = function(e){return this.isShown?this.hide():this.show(e)}, n.prototype.show = function(t){var r = this, i = e.Event("show.bs.modal", {relatedTarget:t}); this.$element.trigger(i), this.isShown || i.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function(){r.$element.one("mouseup.dismiss.bs.modal", function(t){e(t.target).is(r.$element) && (r.ignoreBackdropClick = !0)})}), this.backdrop(function(){var i = e.support.transition && r.$element.hasClass("fade"); r.$element.parent().length || r.$element.appendTo(r.$body), r.$element.show().scrollTop(0), r.adjustDialog(), i && r.$element[0].offsetWidth, r.$element.addClass("in"), r.enforceFocus(); var o = e.Event("shown.bs.modal", {relatedTarget:t}); i?r.$dialog.one("bsTransitionEnd", function(){r.$element.trigger("focus").trigger(o)}).emulateTransitionEnd(n.TRANSITION_DURATION):r.$element.trigger("focus").trigger(o)}))}, n.prototype.hide = function(t){t && t.preventDefault(), t = e.Event("hide.bs.modal"), this.$element.trigger(t), this.isShown && !t.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), e(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), e.support.transition && this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd", e.proxy(this.hideModal, this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())}, n.prototype.enforceFocus = function(){e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy(function(e){document === e.target || this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.trigger("focus")}, this))}, n.prototype.escape = function(){this.isShown && this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal", e.proxy(function(e){27 == e.which && this.hide()}, this)):this.isShown || this.$element.off("keydown.dismiss.bs.modal")}, n.prototype.resize = function(){this.isShown?e(window).on("resize.bs.modal", e.proxy(this.handleUpdate, this)):e(window).off("resize.bs.modal")}, n.prototype.hideModal = function(){var e = this; this.$element.hide(), this.backdrop(function(){e.$body.removeClass("modal-open"), e.resetAdjustments(), e.resetScrollbar(), e.$element.trigger("hidden.bs.modal")})}, n.prototype.removeBackdrop = function(){this.$backdrop && this.$backdrop.remove(), this.$backdrop = null}, n.prototype.backdrop = function(t){var r = this, i = this.$element.hasClass("fade")?"fade":""; if (this.isShown && this.options.backdrop){var o = e.support.transition && i; if (this.$backdrop = e(document.createElement("div")).addClass("modal-backdrop " + i).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", e.proxy(function(e){if (this.ignoreBackdropClick)return void(this.ignoreBackdropClick = !1); e.target === e.currentTarget && ("static" == this.options.backdrop?this.$element[0].focus():this.hide())}, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !t)return; o?this.$backdrop.one("bsTransitionEnd", t).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):t()} else if (!this.isShown && this.$backdrop){this.$backdrop.removeClass("in"); var a = function(){r.removeBackdrop(), t && t()}; e.support.transition && this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd", a).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):a()} else t && t()}, n.prototype.handleUpdate = function(){this.adjustDialog()}, n.prototype.adjustDialog = function(){var e = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({paddingLeft:!this.bodyIsOverflowing && e?this.scrollbarWidth:"", paddingRight:this.bodyIsOverflowing && !e?this.scrollbarWidth:""})}, n.prototype.resetAdjustments = function(){this.$element.css({paddingLeft:"", paddingRight:""})}, n.prototype.checkScrollbar = function(){var e = window.innerWidth; if (!e){var t = document.documentElement.getBoundingClientRect(); e = t.right - Math.abs(t.left)}this.bodyIsOverflowing = document.body.clientWidth < e, this.scrollbarWidth = this.measureScrollbar()}, n.prototype.setScrollbar = function(){var e = parseInt(this.$body.css("padding-right") || 0, 10); this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", e + this.scrollbarWidth)}, n.prototype.resetScrollbar = function(){this.$body.css("padding-right", this.originalBodyPad)}, n.prototype.measureScrollbar = function(){var e = document.createElement("div"); e.className = "modal-scrollbar-measure", this.$body.append(e); var t = e.offsetWidth - e.clientWidth; return this.$body[0].removeChild(e), t}; var r = e.fn.modal; e.fn.modal = t, e.fn.modal.Constructor = n, e.fn.modal.noConflict = function(){return e.fn.modal = r, this}, e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(n){var r = e(this), i = r.attr("href"), o = e(r.attr("data-target") || i && i.replace(/.*(?=#[^\s]+$)/, "")), a = o.data("bs.modal")?"toggle":e.extend({remote:!/#/.test(i) && i}, o.data(), r.data()); r.is("a") && n.preventDefault(), o.one("show.bs.modal", function(e){e.isDefaultPrevented() || o.one("hidden.bs.modal", function(){r.is(":visible") && r.trigger("focus")})}), t.call(o, a, this)})}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.tooltip"), o = "object" == typeof t && t; !i && /destroy|hide/.test(t) || (i || r.data("bs.tooltip", i = new n(this, o)), "string" == typeof t && i[t]())})}var n = function(e, t){this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", e, t)}; n.VERSION = "3.3.7", n.TRANSITION_DURATION = 150, n.DEFAULTS = {animation:!0, placement:"top", selector:!1, template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger:"hover focus", title:"", delay:0, html:!1, container:!1, viewport:{selector:"body", padding:0}}, n.prototype.init = function(t, n, r){if (this.enabled = !0, this.type = t, this.$element = e(n), this.options = this.getOptions(r), this.$viewport = this.options.viewport && e(e.isFunction(this.options.viewport)?this.options.viewport.call(this, this.$element):this.options.viewport.selector || this.options.viewport), this.inState = {click:!1, hover:!1, focus:!1}, this.$element[0]instanceof document.constructor && !this.options.selector)throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); for (var i = this.options.trigger.split(" "), o = i.length; o--; ){var a = i[o]; if ("click" == a)this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this)); else if ("manual" != a){var s = "hover" == a?"mouseenter":"focusin", l = "hover" == a?"mouseleave":"focusout"; this.$element.on(s + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, e.proxy(this.leave, this))}}this.options.selector?this._options = e.extend({}, this.options, {trigger:"manual", selector:""}):this.fixTitle()}, n.prototype.getDefaults = function(){return n.DEFAULTS}, n.prototype.getOptions = function(t){return t = e.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && "number" == typeof t.delay && (t.delay = {show:t.delay, hide:t.delay}), t}, n.prototype.getDelegateOptions = function(){var t = {}, n = this.getDefaults(); return this._options && e.each(this._options, function(e, r){n[e] != r && (t[e] = r)}), t}, n.prototype.enter = function(t){var n = t instanceof this.constructor?t:e(t.currentTarget).data("bs." + this.type); return n || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n)), t instanceof e.Event && (n.inState["focusin" == t.type?"focus":"hover"] = !0), n.tip().hasClass("in") || "in" == n.hoverState?void(n.hoverState = "in"):(clearTimeout(n.timeout), n.hoverState = "in", n.options.delay && n.options.delay.show?void(n.timeout = setTimeout(function(){"in" == n.hoverState && n.show()}, n.options.delay.show)):n.show())}, n.prototype.isInStateTrue = function(){for (var e in this.inState)if (this.inState[e])return!0; return!1}, n.prototype.leave = function(t){var n = t instanceof this.constructor?t:e(t.currentTarget).data("bs." + this.type); if (n || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n)), t instanceof e.Event && (n.inState["focusout" == t.type?"focus":"hover"] = !1), !n.isInStateTrue()){if (clearTimeout(n.timeout), n.hoverState = "out", !n.options.delay || !n.options.delay.hide)return n.hide(); n.timeout = setTimeout(function(){"out" == n.hoverState && n.hide()}, n.options.delay.hide)}}, n.prototype.show = function(){var t = e.Event("show.bs." + this.type); if (this.hasContent() && this.enabled){this.$element.trigger(t); var r = e.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); if (t.isDefaultPrevented() || !r)return; var i = this, o = this.tip(), a = this.getUID(this.type); this.setContent(), o.attr("id", a), this.$element.attr("aria-describedby", a), this.options.animation && o.addClass("fade"); var s = "function" == typeof this.options.placement?this.options.placement.call(this, o[0], this.$element[0]):this.options.placement, l = /\s?auto?\s?/i, c = l.test(s); c && (s = s.replace(l, "") || "top"), o.detach().css({top:0, left:0, display:"block"}).addClass(s).data("bs." + this.type, this), this.options.container?o.appendTo(this.options.container):o.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var u = this.getPosition(), d = o[0].offsetWidth, h = o[0].offsetHeight; if (c){var f = s, p = this.getPosition(this.$viewport); s = "bottom" == s && u.bottom + h > p.bottom?"top":"top" == s && u.top - h < p.top?"bottom":"right" == s && u.right + d > p.width?"left":"left" == s && u.left - d < p.left?"right":s, o.removeClass(f).addClass(s)}var g = this.getCalculatedOffset(s, u, d, h); this.applyPlacement(g, s); var v = function(){var e = i.hoverState; i.$element.trigger("shown.bs." + i.type), i.hoverState = null, "out" == e && i.leave(i)}; e.support.transition && this.$tip.hasClass("fade")?o.one("bsTransitionEnd", v).emulateTransitionEnd(n.TRANSITION_DURATION):v()}}, n.prototype.applyPlacement = function(t, n){var r = this.tip(), i = r[0].offsetWidth, o = r[0].offsetHeight, a = parseInt(r.css("margin-top"), 10), s = parseInt(r.css("margin-left"), 10); isNaN(a) && (a = 0), isNaN(s) && (s = 0), t.top += a, t.left += s, e.offset.setOffset(r[0], e.extend({using:function(e){r.css({top:Math.round(e.top), left:Math.round(e.left)})}}, t), 0), r.addClass("in"); var l = r[0].offsetWidth, c = r[0].offsetHeight; "top" == n && c != o && (t.top = t.top + o - c); var u = this.getViewportAdjustedDelta(n, t, l, c); u.left?t.left += u.left:t.top += u.top; var d = /top|bottom/.test(n), h = d?2 * u.left - i + l:2 * u.top - o + c, f = d?"offsetWidth":"offsetHeight"; r.offset(t), this.replaceArrow(h, r[0][f], d)}, n.prototype.replaceArrow = function(e, t, n){this.arrow().css(n?"left":"top", 50 * (1 - e / t) + "%").css(n?"top":"left", "")}, n.prototype.setContent = function(){var e = this.tip(), t = this.getTitle(); e.find(".tooltip-inner")[this.options.html?"html":"text"](t), e.removeClass("fade in top bottom left right")}, n.prototype.hide = function(t){function r(){"in" != i.hoverState && o.detach(), i.$element && i.$element.removeAttr("aria-describedby").trigger("hidden.bs." + i.type), t && t()}var i = this, o = e(this.$tip), a = e.Event("hide.bs." + this.type); if (this.$element.trigger(a), !a.isDefaultPrevented())return o.removeClass("in"), e.support.transition && o.hasClass("fade")?o.one("bsTransitionEnd", r).emulateTransitionEnd(n.TRANSITION_DURATION):r(), this.hoverState = null, this}, n.prototype.fixTitle = function(){var e = this.$element; (e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", "")}, n.prototype.hasContent = function(){return this.getTitle()}, n.prototype.getPosition = function(t){t = t || this.$element; var n = t[0], r = "BODY" == n.tagName, i = n.getBoundingClientRect(); null == i.width && (i = e.extend({}, i, {width:i.right - i.left, height:i.bottom - i.top})); var o = window.SVGElement && n instanceof window.SVGElement, a = r?{top:0, left:0}:o?null:t.offset(), s = {scroll:r?document.documentElement.scrollTop || document.body.scrollTop:t.scrollTop()}, l = r?{width:e(window).width(), height:e(window).height()}:null; return e.extend({}, i, s, l, a)}, n.prototype.getCalculatedOffset = function(e, t, n, r){return"bottom" == e?{top:t.top + t.height, left:t.left + t.width / 2 - n / 2}:"top" == e?{top:t.top - r, left:t.left + t.width / 2 - n / 2}:"left" == e?{top:t.top + t.height / 2 - r / 2, left:t.left - n}:{top:t.top + t.height / 2 - r / 2, left:t.left + t.width}}, n.prototype.getViewportAdjustedDelta = function(e, t, n, r){var i = {top:0, left:0}; if (!this.$viewport)return i; var o = this.options.viewport && this.options.viewport.padding || 0, a = this.getPosition(this.$viewport); if (/right|left/.test(e)){var s = t.top - o - a.scroll, l = t.top + o - a.scroll + r; s < a.top?i.top = a.top - s:l > a.top + a.height && (i.top = a.top + a.height - l)} else{var c = t.left - o, u = t.left + o + n; c < a.left?i.left = a.left - c:u > a.right && (i.left = a.left + a.width - u)}return i}, n.prototype.getTitle = function(){var e = this.$element, t = this.options; return e.attr("data-original-title") || ("function" == typeof t.title?t.title.call(e[0]):t.title)}, n.prototype.getUID = function(e){do{e += ~~(1e6 * Math.random())}while (document.getElementById(e)); return e}, n.prototype.tip = function(){if (!this.$tip && (this.$tip = e(this.options.template), 1 != this.$tip.length))throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); return this.$tip}, n.prototype.arrow = function(){return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")}, n.prototype.enable = function(){this.enabled = !0}, n.prototype.disable = function(){this.enabled = !1}, n.prototype.toggleEnabled = function(){this.enabled = !this.enabled}, n.prototype.toggle = function(t){var n = this; t && ((n = e(t.currentTarget).data("bs." + this.type)) || (n = new this.constructor(t.currentTarget, this.getDelegateOptions()), e(t.currentTarget).data("bs." + this.type, n))), t?(n.inState.click = !n.inState.click, n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)}, n.prototype.destroy = function(){var e = this; clearTimeout(this.timeout), this.hide(function(){e.$element.off("." + e.type).removeData("bs." + e.type), e.$tip && e.$tip.detach(), e.$tip = null, e.$arrow = null, e.$viewport = null, e.$element = null})}; var r = e.fn.tooltip; e.fn.tooltip = t, e.fn.tooltip.Constructor = n, e.fn.tooltip.noConflict = function(){return e.fn.tooltip = r, this}}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.popover"), o = "object" == typeof t && t; !i && /destroy|hide/.test(t) || (i || r.data("bs.popover", i = new n(this, o)), "string" == typeof t && i[t]())})}var n = function(e, t){this.init("popover", e, t)}; if (!e.fn.tooltip)throw new Error("Popover requires tooltip.js"); n.VERSION = "3.3.7", n.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {placement:"right", trigger:"click", content:"", template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}), n.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype), n.prototype.constructor = n, n.prototype.getDefaults = function(){return n.DEFAULTS}, n.prototype.setContent = function(){var e = this.tip(), t = this.getTitle(), n = this.getContent(); e.find(".popover-title")[this.options.html?"html":"text"](t), e.find(".popover-content").children().detach().end()[this.options.html?"string" == typeof n?"html":"append":"text"](n), e.removeClass("fade top bottom left right in"), e.find(".popover-title").html() || e.find(".popover-title").hide()}, n.prototype.hasContent = function(){return this.getTitle() || this.getContent()}, n.prototype.getContent = function(){var e = this.$element, t = this.options; return e.attr("data-content") || ("function" == typeof t.content?t.content.call(e[0]):t.content)}, n.prototype.arrow = function(){return this.$arrow = this.$arrow || this.tip().find(".arrow")}; var r = e.fn.popover; e.fn.popover = t, e.fn.popover.Constructor = n, e.fn.popover.noConflict = function(){return e.fn.popover = r, this}}(jQuery), function(e){"use strict"; function t(n, r){this.$body = e(document.body), this.$scrollElement = e(e(n).is(document.body)?window:n), this.options = e.extend({}, t.DEFAULTS, r), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", e.proxy(this.process, this)), this.refresh(), this.process()}function n(n){return this.each(function(){var r = e(this), i = r.data("bs.scrollspy"), o = "object" == typeof n && n; i || r.data("bs.scrollspy", i = new t(this, o)), "string" == typeof n && i[n]()})}t.VERSION = "3.3.7", t.DEFAULTS = {offset:10}, t.prototype.getScrollHeight = function(){return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)}, t.prototype.refresh = function(){var t = this, n = "offset", r = 0; this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), e.isWindow(this.$scrollElement[0]) || (n = "position", r = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function(){var t = e(this), i = t.data("target") || t.attr("href"), o = /^#./.test(i) && e(i); return o && o.length && o.is(":visible") && [[o[n]().top + r, i]] || null}).sort(function(e, t){return e[0] - t[0]}).each(function(){t.offsets.push(this[0]), t.targets.push(this[1])})}, t.prototype.process = function(){var e, t = this.$scrollElement.scrollTop() + this.options.offset, n = this.getScrollHeight(), r = this.options.offset + n - this.$scrollElement.height(), i = this.offsets, o = this.targets, a = this.activeTarget; if (this.scrollHeight != n && this.refresh(), t >= r)return a != (e = o[o.length - 1]) && this.activate(e); if (a && t < i[0])return this.activeTarget = null, this.clear(); for (e = i.length; e--; )a != o[e] && t >= i[e] && (void 0 === i[e + 1] || t < i[e + 1]) && this.activate(o[e])}, t.prototype.activate = function(t){this.activeTarget = t, this.clear(); var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]', r = e(n).parents("li").addClass("active"); r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")), r.trigger("activate.bs.scrollspy")}, t.prototype.clear = function(){e(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")}; var r = e.fn.scrollspy; e.fn.scrollspy = n, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.noConflict = function(){return e.fn.scrollspy = r, this}, e(window).on("load.bs.scrollspy.data-api", function(){e('[data-spy="scroll"]').each(function(){var t = e(this); n.call(t, t.data())})})}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.tab"); i || r.data("bs.tab", i = new n(this)), "string" == typeof t && i[t]()})}var n = function(t){this.element = e(t)}; n.VERSION = "3.3.7", n.TRANSITION_DURATION = 150, n.prototype.show = function(){var t = this.element, n = t.closest("ul:not(.dropdown-menu)"), r = t.data("target"); if (r || (r = t.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")){var i = n.find(".active:last a"), o = e.Event("hide.bs.tab", {relatedTarget:t[0]}), a = e.Event("show.bs.tab", {relatedTarget:i[0]}); if (i.trigger(o), t.trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented()){var s = e(r); this.activate(t.closest("li"), n), this.activate(s, s.parent(), function(){i.trigger({type:"hidden.bs.tab", relatedTarget:t[0]}), t.trigger({type:"shown.bs.tab", relatedTarget:i[0]})})}}}, n.prototype.activate = function(t, r, i){function o(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), s?(t[0].offsetWidth, t.addClass("in")):t.removeClass("fade"), t.parent(".dropdown-menu").length && t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), i && i()}var a = r.find("> .active"), s = i && e.support.transition && (a.length && a.hasClass("fade") || !!r.find("> .fade").length); a.length && s?a.one("bsTransitionEnd", o).emulateTransitionEnd(n.TRANSITION_DURATION):o(), a.removeClass("in")}; var r = e.fn.tab; e.fn.tab = t, e.fn.tab.Constructor = n, e.fn.tab.noConflict = function(){return e.fn.tab = r, this}; var i = function(n){n.preventDefault(), t.call(e(this), "show")}; e(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', i).on("click.bs.tab.data-api", '[data-toggle="pill"]', i)}(jQuery), function(e){"use strict"; function t(t){return this.each(function(){var r = e(this), i = r.data("bs.affix"), o = "object" == typeof t && t; i || r.data("bs.affix", i = new n(this, o)), "string" == typeof t && i[t]()})}var n = function(t, r){this.options = e.extend({}, n.DEFAULTS, r), this.$target = e(this.options.target).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)), this.$element = e(t), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition()}; n.VERSION = "3.3.7", n.RESET = "affix affix-top affix-bottom", n.DEFAULTS = {offset:0, target:window}, n.prototype.getState = function(e, t, n, r){var i = this.$target.scrollTop(), o = this.$element.offset(), a = this.$target.height(); if (null != n && "top" == this.affixed)return i < n && "top"; if ("bottom" == this.affixed)return null != n?!(i + this.unpin <= o.top) && "bottom":!(i + a <= e - r) && "bottom"; var s = null == this.affixed, l = s?i:o.top, c = s?a:t; return null != n && i <= n?"top":null != r && l + c >= e - r && "bottom"}, n.prototype.getPinnedOffset = function(){if (this.pinnedOffset)return this.pinnedOffset; this.$element.removeClass(n.RESET).addClass("affix"); var e = this.$target.scrollTop(), t = this.$element.offset(); return this.pinnedOffset = t.top - e}, n.prototype.checkPositionWithEventLoop = function(){setTimeout(e.proxy(this.checkPosition, this), 1)}, n.prototype.checkPosition = function(){if (this.$element.is(":visible")){var t = this.$element.height(), r = this.options.offset, i = r.top, o = r.bottom, a = Math.max(e(document).height(), e(document.body).height()); "object" != typeof r && (o = i = r), "function" == typeof i && (i = r.top(this.$element)), "function" == typeof o && (o = r.bottom(this.$element)); var s = this.getState(a, t, i, o); if (this.affixed != s){null != this.unpin && this.$element.css("top", ""); var l = "affix" + (s?"-" + s:""), c = e.Event(l + ".bs.affix"); if (this.$element.trigger(c), c.isDefaultPrevented())return; this.affixed = s, this.unpin = "bottom" == s?this.getPinnedOffset():null, this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix", "affixed") + ".bs.affix")}
  "bottom" == s && this.$element.offset({top:a - t - o})}}; var r = e.fn.affix; e.fn.affix = t, e.fn.affix.Constructor = n, e.fn.affix.noConflict = function(){return e.fn.affix = r, this}, e(window).on("load", function(){e('[data-spy="affix"]').each(function(){var n = e(this), r = n.data(); r.offset = r.offset || {}, null != r.offsetBottom && (r.offset.bottom = r.offsetBottom), null != r.offsetTop && (r.offset.top = r.offsetTop), t.call(n, r)})})}(jQuery), function(e){"function" == typeof define && define.amd?define(["jquery"], e):"object" == typeof module && module.exports?module.exports = function(t, n){return void 0 === n && (n = "undefined" != typeof window?require("jquery"):require("jquery")(t)), e(n), n}:e(jQuery)}(function(e){var t = function(){if (e && e.fn && e.fn.select2 && e.fn.select2.amd)var t = e.fn.select2.amd; var t; return function(){if (!t || !t.requirejs){t?n = t:t = {}; var e, n, r; !function(t){function i(e, t){return x.call(e, t)}function o(e, t){var n, r, i, o, a, s, l, c, u, d, h, f, p = t && t.split("/"), g = b.map, v = g && g["*"] || {}; if (e){for (e = e.split("/"), a = e.length - 1, b.nodeIdCompat && T.test(e[a]) && (e[a] = e[a].replace(T, "")), "." === e[0].charAt(0) && p && (f = p.slice(0, p.length - 1), e = f.concat(e)), u = 0; u < e.length; u++)if ("." === (h = e[u]))e.splice(u, 1), u -= 1; else if (".." === h){if (0 === u || 1 === u && ".." === e[2] || ".." === e[u - 1])continue; u > 0 && (e.splice(u - 1, 2), u -= 2)}e = e.join("/")}if ((p || v) && g){for (n = e.split("/"), u = n.length; u > 0; u -= 1){if (r = n.slice(0, u).join("/"), p)for (d = p.length; d > 0; d -= 1)if ((i = g[p.slice(0, d).join("/")]) && (i = i[r])){o = i, s = u; break}if (o)break; !l && v && v[r] && (l = v[r], c = u)}!o && l && (o = l, s = c), o && (n.splice(0, s, o), e = n.join("/"))}return e}function a(e, n){return function(){var r = S.call(arguments, 0); return"string" != typeof r[0] && 1 === r.length && r.push(null), p.apply(t, r.concat([e, n]))}}function s(e){return function(t){return o(t, e)}}function l(e){return function(t){m[e] = t}}function c(e){if (i(y, e)){var n = y[e]; delete y[e], w[e] = !0, f.apply(t, n)}if (!i(m, e) && !i(w, e))throw new Error("No " + e); return m[e]}function u(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 d(e){return e?u(e):[]}function h(e){return function(){return b && b.config && b.config[e] || {}}}var f, p, g, v, m = {}, y = {}, b = {}, w = {}, x = Object.prototype.hasOwnProperty, S = [].slice, T = /\.js$/; g = function(e, t){var n, r = u(e), i = r[0], a = t[1]; return e = r[1], i && (i = o(i, a), n = c(i)), i?e = n && n.normalize?n.normalize(e, s(a)):o(e, a):(e = o(e, a), r = u(e), i = r[0], e = r[1], i && (n = c(i))), {f:i?i + "!" + e:e, n:e, pr:i, p:n}}, v = {require:function(e){return a(e)}, exports:function(e){var t = m[e]; return void 0 !== t?t:m[e] = {}}, module:function(e){return{id:e, uri:"", exports:m[e], config:h(e)}}}, f = function(e, n, r, o){var s, u, h, f, p, b, x, S = [], T = typeof r; if (o = o || e, b = d(o), "undefined" === T || "function" === T){for (n = !n.length && r.length?["require", "exports", "module"]:n, p = 0; p < n.length; p += 1)if (f = g(n[p], b), "require" === (u = f.f))S[p] = v.require(e); else if ("exports" === u)S[p] = v.exports(e), x = !0; else if ("module" === u)s = S[p] = v.module(e); else if (i(m, u) || i(y, u) || i(w, u))S[p] = c(u); else{if (!f.p)throw new Error(e + " missing " + u); f.p.load(f.n, a(o, !0), l(u), {}), S[p] = m[u]}h = r?r.apply(m[e], S):void 0, e && (s && s.exports !== t && s.exports !== m[e]?m[e] = s.exports:h === t && x || (m[e] = h))} else e && (m[e] = r)}, e = n = p = function(e, n, r, i, o){if ("string" == typeof e)return v[e]?v[e](n):c(g(e, d(n)).f); if (!e.splice){if (b = e, b.deps && p(b.deps, b.callback), !n)return; n.splice?(e = n, n = r, r = null):e = t}return n = n || function(){}, "function" == typeof r && (r = i, i = o), i?f(t, e, n, r):setTimeout(function(){f(t, e, n, r)}, 4), p}, p.config = function(e){return p(e)}, e._defined = m, r = function(e, t, n){if ("string" != typeof e)throw new Error("See almond README: incorrect module build, no module name"); t.splice || (n = t, t = []), i(m, e) || i(y, e) || (y[e] = [e, t, n])}, r.amd = {jQuery:!0}}(), t.requirejs = e, t.require = n, t.define = r}}(), t.define("almond", function(){}), t.define("jquery", [], function(){var t = e || $; return null == t && console && console.error && console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."), t}), t.define("select2/utils", ["jquery"], function(e){function t(e){var t = e.prototype, n = []; for (var r in t){"function" == typeof t[r] && ("constructor" !== r && n.push(r))}return n}var n = {}; n.Extend = function(e, t){function n(){this.constructor = e}var r = {}.hasOwnProperty; for (var i in t)r.call(t, i) && (e[i] = t[i]); return n.prototype = t.prototype, e.prototype = new n, e.__super__ = t.prototype, e}, n.Decorate = function(e, n){function r(){var t = Array.prototype.unshift, r = n.prototype.constructor.length, i = e.prototype.constructor; r > 0 && (t.call(arguments, e.prototype.constructor), i = n.prototype.constructor), i.apply(this, arguments)}function i(){this.constructor = r}var o = t(n), a = t(e); n.displayName = e.displayName, r.prototype = new i; for (var s = 0; s < a.length; s++){var l = a[s]; r.prototype[l] = e.prototype[l]}for (var c = 0; c < o.length; c++){var u = o[c]; r.prototype[u] = function(e){var t = function(){}; e in r.prototype && (t = r.prototype[e]); var i = n.prototype[e]; return function(){return Array.prototype.unshift.call(arguments, t), i.apply(this, arguments)}}(u)}return r}; var r = function(){this.listeners = {}}; r.prototype.on = function(e, t){this.listeners = this.listeners || {}, e in this.listeners?this.listeners[e].push(t):this.listeners[e] = [t]}, r.prototype.trigger = function(e){var t = Array.prototype.slice, n = t.call(arguments, 1); this.listeners = this.listeners || {}, null == n && (n = []), 0 === n.length && n.push({}), n[0]._type = e, e in this.listeners && this.invoke(this.listeners[e], t.call(arguments, 1)), "*"in this.listeners && this.invoke(this.listeners["*"], arguments)}, r.prototype.invoke = function(e, t){for (var n = 0, r = e.length; n < r; n++)e[n].apply(this, t)}, n.Observable = r, n.generateChars = function(e){for (var t = "", n = 0; n < e; n++){t += Math.floor(36 * Math.random()).toString(36)}return t}, n.bind = function(e, t){return function(){e.apply(t, arguments)}}, n._convertData = function(e){for (var t in e){var n = t.split("-"), r = e; if (1 !== n.length){for (var i = 0; i < n.length; i++){var o = n[i]; o = o.substring(0, 1).toLowerCase() + o.substring(1), o in r || (r[o] = {}), i == n.length - 1 && (r[o] = e[t]), r = r[o]}delete e[t]}}return e}, n.hasScroll = function(t, n){var r = e(n), i = n.style.overflowX, o = n.style.overflowY; return(i !== o || "hidden" !== o && "visible" !== o) && ("scroll" === i || "scroll" === o || (r.innerHeight() < n.scrollHeight || r.innerWidth() < n.scrollWidth))}, n.escapeMarkup = function(e){var t = {"\\":"&#92;", "&":"&amp;", "<":"&lt;", ">":"&gt;", '"':"&quot;", "'":"&#39;", "/":"&#47;"}; return"string" != typeof e?e:String(e).replace(/[&<>"'\/\\]/g, function(e){return t[e]})}, n.appendMany = function(t, n){if ("1.7" === e.fn.jquery.substr(0, 3)){var r = e(); e.map(n, function(e){r = r.add(e)}), n = r}t.append(n)}, n.__cache = {}; var i = 0; return n.GetUniqueElementId = function(e){var t = e.getAttribute("data-select2-id"); return null == t && (e.id?(t = e.id, e.setAttribute("data-select2-id", t)):(e.setAttribute("data-select2-id", ++i), t = i.toString())), t}, n.StoreData = function(e, t, r){var i = n.GetUniqueElementId(e); n.__cache[i] || (n.__cache[i] = {}), n.__cache[i][t] = r}, n.GetData = function(t, r){var i = n.GetUniqueElementId(t); return r?n.__cache[i] && null != n.__cache[i][r]?n.__cache[i][r]:e(t).data(r):n.__cache[i]}, n.RemoveData = function(e){var t = n.GetUniqueElementId(e); null != n.__cache[t] && delete n.__cache[t]}, n}), t.define("select2/results", ["jquery", "./utils"], function(e, t){function n(e, t, r){this.$element = e, this.data = r, this.options = t, n.__super__.constructor.call(this)}return t.Extend(n, t.Observable), n.prototype.render = function(){var t = e('<ul class="select2-results__options" role="tree"></ul>'); return this.options.get("multiple") && t.attr("aria-multiselectable", "true"), this.$results = t, t}, n.prototype.clear = function(){this.$results.empty()}, n.prototype.displayMessage = function(t){var n = this.options.get("escapeMarkup"); this.clear(), this.hideLoading(); var r = e('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'), i = this.options.get("translations").get(t.message); r.append(n(i(t.args))), r[0].className += " select2-results__message", this.$results.append(r)}, n.prototype.hideMessages = function(){this.$results.find(".select2-results__message").remove()}, n.prototype.append = function(e){this.hideLoading(); var t = []; if (null == e.results || 0 === e.results.length)return void(0 === this.$results.children().length && this.trigger("results:message", {message:"noResults"})); e.results = this.sort(e.results); for (var n = 0; n < e.results.length; n++){var r = e.results[n], i = this.option(r); t.push(i)}this.$results.append(t)}, n.prototype.position = function(e, t){t.find(".select2-results").append(e)}, n.prototype.sort = function(e){return this.options.get("sorter")(e)}, n.prototype.highlightFirstItem = function(){var e = this.$results.find(".select2-results__option[aria-selected]"), t = e.filter("[aria-selected=true]"); t.length > 0?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"), this.ensureHighlightVisible()}, n.prototype.setClasses = function(){var n = this; this.data.current(function(r){var i = e.map(r, function(e){return e.id.toString()}); n.$results.find(".select2-results__option[aria-selected]").each(function(){var n = e(this), r = t.GetData(this, "data"), o = "" + r.id; null != r.element && r.element.selected || null == r.element && e.inArray(o, i) > - 1?n.attr("aria-selected", "true"):n.attr("aria-selected", "false")})})}, n.prototype.showLoading = function(e){this.hideLoading(); var t = this.options.get("translations").get("searching"), n = {disabled:!0, loading:!0, text:t(e)}, r = this.option(n); r.className += " loading-results", this.$results.prepend(r)}, n.prototype.hideLoading = function(){this.$results.find(".loading-results").remove()}, n.prototype.option = function(n){var r = document.createElement("li"); r.className = "select2-results__option"; var i = {role:"treeitem", "aria-selected":"false"}; n.disabled && (delete i["aria-selected"], i["aria-disabled"] = "true"), null == n.id && delete i["aria-selected"], null != n._resultId && (r.id = n._resultId), n.title && (r.title = n.title), n.children && (i.role = "group", i["aria-label"] = n.text, delete i["aria-selected"]); for (var o in i){var a = i[o]; r.setAttribute(o, a)}if (n.children){var s = e(r), l = document.createElement("strong"); l.className = "select2-results__group"; e(l); this.template(n, l); for (var c = [], u = 0; u < n.children.length; u++){var d = n.children[u], h = this.option(d); c.push(h)}var f = e("<ul></ul>", {class:"select2-results__options select2-results__options--nested"}); f.append(c), s.append(l), s.append(f)} else this.template(n, r); return t.StoreData(r, "data", n), r}, n.prototype.bind = function(n, r){var i = this, o = n.id + "-results"; this.$results.attr("id", o), n.on("results:all", function(e){i.clear(), i.append(e.data), n.isOpen() && (i.setClasses(), i.highlightFirstItem())}), n.on("results:append", function(e){i.append(e.data), n.isOpen() && i.setClasses()}), n.on("query", function(e){i.hideMessages(), i.showLoading(e)}), n.on("select", function(){n.isOpen() && (i.setClasses(), i.highlightFirstItem())}), n.on("unselect", function(){n.isOpen() && (i.setClasses(), i.highlightFirstItem())}), n.on("open", function(){i.$results.attr("aria-expanded", "true"), i.$results.attr("aria-hidden", "false"), i.setClasses(), i.ensureHighlightVisible()}), n.on("close", function(){i.$results.attr("aria-expanded", "false"), i.$results.attr("aria-hidden", "true"), i.$results.removeAttr("aria-activedescendant")}), n.on("results:toggle", function(){var e = i.getHighlightedResults(); 0 !== e.length && e.trigger("mouseup")}), n.on("results:select", function(){var e = i.getHighlightedResults(); if (0 !== e.length){var n = t.GetData(e[0], "data"); "true" == e.attr("aria-selected")?i.trigger("close", {}):i.trigger("select", {data:n})}}), n.on("results:previous", function(){var e = i.getHighlightedResults(), t = i.$results.find("[aria-selected]"), n = t.index(e); if (!(n <= 0)){var r = n - 1; 0 === e.length && (r = 0); var o = t.eq(r); o.trigger("mouseenter"); var a = i.$results.offset().top, s = o.offset().top, l = i.$results.scrollTop() + (s - a); 0 === r?i.$results.scrollTop(0):s - a < 0 && i.$results.scrollTop(l)}}), n.on("results:next", function(){var e = i.getHighlightedResults(), t = i.$results.find("[aria-selected]"), n = t.index(e), r = n + 1; if (!(r >= t.length)){var o = t.eq(r); o.trigger("mouseenter"); var a = i.$results.offset().top + i.$results.outerHeight(!1), s = o.offset().top + o.outerHeight(!1), l = i.$results.scrollTop() + s - a; 0 === r?i.$results.scrollTop(0):s > a && i.$results.scrollTop(l)}}), n.on("results:focus", function(e){e.element.addClass("select2-results__option--highlighted")}), n.on("results:message", function(e){i.displayMessage(e)}), e.fn.mousewheel && this.$results.on("mousewheel", function(e){var t = i.$results.scrollTop(), n = i.$results.get(0).scrollHeight - t + e.deltaY, r = e.deltaY > 0 && t - e.deltaY <= 0, o = e.deltaY < 0 && n <= i.$results.height(); r?(i.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()):o && (i.$results.scrollTop(i.$results.get(0).scrollHeight - i.$results.height()), e.preventDefault(), e.stopPropagation())}), this.$results.on("mouseup", ".select2-results__option[aria-selected]", function(n){var r = e(this), o = t.GetData(this, "data"); if ("true" === r.attr("aria-selected"))return void(i.options.get("multiple")?i.trigger("unselect", {originalEvent:n, data:o}):i.trigger("close", {})); i.trigger("select", {originalEvent:n, data:o})}), this.$results.on("mouseenter", ".select2-results__option[aria-selected]", function(n){var r = t.GetData(this, "data"); i.getHighlightedResults().removeClass("select2-results__option--highlighted"), i.trigger("results:focus", {data:r, element:e(this)})})}, n.prototype.getHighlightedResults = function(){return this.$results.find(".select2-results__option--highlighted")}, n.prototype.destroy = function(){this.$results.remove()}, n.prototype.ensureHighlightVisible = function(){var e = this.getHighlightedResults(); if (0 !== e.length){var t = this.$results.find("[aria-selected]"), n = t.index(e), r = this.$results.offset().top, i = e.offset().top, o = this.$results.scrollTop() + (i - r), a = i - r; o -= 2 * e.outerHeight(!1), n <= 2?this.$results.scrollTop(0):(a > this.$results.outerHeight() || a < 0) && this.$results.scrollTop(o)}}, n.prototype.template = function(t, n){var r = this.options.get("templateResult"), i = this.options.get("escapeMarkup"), o = r(t, n); null == o?n.style.display = "none":"string" == typeof o?n.innerHTML = i(o):e(n).append(o)}, n}), t.define("select2/keys", [], function(){return{BACKSPACE:8, TAB:9, ENTER:13, SHIFT:16, CTRL:17, ALT:18, ESC:27, SPACE:32, PAGE_UP:33, PAGE_DOWN:34, END:35, HOME:36, LEFT:37, UP:38, RIGHT:39, DOWN:40, DELETE:46}}), t.define("select2/selection/base", ["jquery", "../utils", "../keys"], function(e, t, n){function r(e, t){this.$element = e, this.options = t, r.__super__.constructor.call(this)}return t.Extend(r, t.Observable), r.prototype.render = function(){var n = e('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>'); return this._tabindex = 0, null != t.GetData(this.$element[0], "old-tabindex")?this._tabindex = t.GetData(this.$element[0], "old-tabindex"):null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), n.attr("title", this.$element.attr("title")), n.attr("tabindex", this._tabindex), this.$selection = n, n}, r.prototype.bind = function(e, t){var r = this, i = (e.id, e.id + "-results"); this.container = e, this.$selection.on("focus", function(e){r.trigger("focus", e)}), this.$selection.on("blur", function(e){r._handleBlur(e)}), this.$selection.on("keydown", function(e){r.trigger("keypress", e), e.which === n.SPACE && e.preventDefault()}), e.on("results:focus", function(e){r.$selection.attr("aria-activedescendant", e.data._resultId)}), e.on("selection:update", function(e){r.update(e.data)}), e.on("open", function(){r.$selection.attr("aria-expanded", "true"), r.$selection.attr("aria-owns", i), r._attachCloseHandler(e)}), e.on("close", function(){r.$selection.attr("aria-expanded", "false"), r.$selection.removeAttr("aria-activedescendant"), r.$selection.removeAttr("aria-owns"), r.$selection.focus(), window.setTimeout(function(){r.$selection.focus()}, 0), r._detachCloseHandler(e)}), e.on("enable", function(){r.$selection.attr("tabindex", r._tabindex)}), e.on("disable", function(){r.$selection.attr("tabindex", "-1")})}, r.prototype._handleBlur = function(t){var n = this; window.setTimeout(function(){document.activeElement == n.$selection[0] || e.contains(n.$selection[0], document.activeElement) || n.trigger("blur", t)}, 1)}, r.prototype._attachCloseHandler = function(n){e(document.body).on("mousedown.select2." + n.id, function(n){var r = e(n.target), i = r.closest(".select2"); e(".select2.select2-container--open").each(function(){e(this), this != i[0] && t.GetData(this, "element").select2("close")})})}, r.prototype._detachCloseHandler = function(t){e(document.body).off("mousedown.select2." + t.id)}, r.prototype.position = function(e, t){t.find(".selection").append(e)}, r.prototype.destroy = function(){this._detachCloseHandler(this.container)}, r.prototype.update = function(e){throw new Error("The `update` method must be defined in child classes.")}, r}), t.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function(e, t, n, r){function i(){i.__super__.constructor.apply(this, arguments)}return n.Extend(i, t), i.prototype.render = function(){var e = i.__super__.render.call(this); return e.addClass("select2-selection--single"), e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e}, i.prototype.bind = function(e, t){var n = this; i.__super__.bind.apply(this, arguments); var r = e.id + "-container"; this.$selection.find(".select2-selection__rendered").attr("id", r).attr("role", "textbox").attr("aria-readonly", "true"), this.$selection.attr("aria-labelledby", r), this.$selection.on("mousedown", function(e){1 === e.which && n.trigger("toggle", {originalEvent:e})}), this.$selection.on("focus", function(e){}), this.$selection.on("blur", function(e){}), e.on("focus", function(t){e.isOpen() || n.$selection.focus()})}, i.prototype.clear = function(){var e = this.$selection.find(".select2-selection__rendered"); e.empty(), e.removeAttr("title")}, i.prototype.display = function(e, t){var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t))}, i.prototype.selectionContainer = function(){return e("<span></span>")}, i.prototype.update = function(e){if (0 === e.length)return void this.clear(); var t = e[0], n = this.$selection.find(".select2-selection__rendered"), r = this.display(t, n); n.empty().append(r), n.attr("title", t.title || t.text)}, i}), t.define("select2/selection/multiple", ["jquery", "./base", "../utils"], function(e, t, n){function r(e, t){r.__super__.constructor.apply(this, arguments)}return n.Extend(r, t), r.prototype.render = function(){var e = r.__super__.render.call(this); return e.addClass("select2-selection--multiple"), e.html('<ul class="select2-selection__rendered"></ul>'), e}, r.prototype.bind = function(t, i){var o = this; r.__super__.bind.apply(this, arguments), this.$selection.on("click", function(e){o.trigger("toggle", {originalEvent:e})}), this.$selection.on("click", ".select2-selection__choice__remove", function(t){if (!o.options.get("disabled")){var r = e(this), i = r.parent(), a = n.GetData(i[0], "data"); o.trigger("unselect", {originalEvent:t, data:a})}})}, r.prototype.clear = function(){var e = this.$selection.find(".select2-selection__rendered"); e.empty(), e.removeAttr("title")}, r.prototype.display = function(e, t){var n = this.options.get("templateSelection"); return this.options.get("escapeMarkup")(n(e, t))}, r.prototype.selectionContainer = function(){return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')}, r.prototype.update = function(e){if (this.clear(), 0 !== e.length){for (var t = [], r = 0; r < e.length; r++){var i = e[r], o = this.selectionContainer(), a = this.display(i, o); o.append(a), o.attr("title", i.title || i.text), n.StoreData(o[0], "data", i), t.push(o)}var s = this.$selection.find(".select2-selection__rendered"); n.appendMany(s, t)}}, r}), t.define("select2/selection/placeholder", ["../utils"], function(e){function t(e, t, n){this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n)}return t.prototype.normalizePlaceholder = function(e, t){return"string" == typeof t && (t = {id:"", text:t}), t}, t.prototype.createPlaceholder = function(e, t){var n = this.selectionContainer(); return n.html(this.display(t)), n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), n}, t.prototype.update = function(e, t){var n = 1 == t.length && t[0].id != this.placeholder.id; if (t.length > 1 || n)return e.call(this, t); this.clear(); var r = this.createPlaceholder(this.placeholder); this.$selection.find(".select2-selection__rendered").append(r)}, t}), t.define("select2/selection/allowClear", ["jquery", "../keys", "../utils"], function(e, t, n){function r(){}return r.prototype.bind = function(e, t, n){var r = this; e.call(this, t, n), null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."), this.$selection.on("mousedown", ".select2-selection__clear", function(e){r._handleClear(e)}), t.on("keypress", function(e){r._handleKeyboardClear(e, t)})}, r.prototype._handleClear = function(e, t){if (!this.options.get("disabled")){var r = this.$selection.find(".select2-selection__clear"); if (0 !== r.length){t.stopPropagation(); var i = n.GetData(r[0], "data"), o = this.$element.val(); this.$element.val(this.placeholder.id); var a = {data:i}; if (this.trigger("clear", a), a.prevented)return void this.$element.val(o); for (var s = 0; s < i.length; s++)if (a = {data:i[s]}, this.trigger("unselect", a), a.prevented)return void this.$element.val(o); this.$element.trigger("change"), this.trigger("toggle", {})}}}, r.prototype._handleKeyboardClear = function(e, n, r){r.isOpen() || n.which != t.DELETE && n.which != t.BACKSPACE || this._handleClear(n)}, r.prototype.update = function(t, r){if (t.call(this, r), !(this.$selection.find(".select2-selection__placeholder").length > 0 || 0 === r.length)){var i = e('<span class="select2-selection__clear">&times;</span>'); n.StoreData(i[0], "data", r), this.$selection.find(".select2-selection__rendered").prepend(i)}}, r}), t.define("select2/selection/search", ["jquery", "../utils", "../keys"], function(e, t, n){function r(e, t, n){e.call(this, t, n)}return r.prototype.render = function(t){var n = e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>'); this.$searchContainer = n, this.$search = n.find("input"); var r = t.call(this); return this._transferTabIndex(), r}, r.prototype.bind = function(e, r, i){var o = this; e.call(this, r, i), r.on("open", function(){o.$search.trigger("focus")}), r.on("close", function(){o.$search.val(""), o.$search.removeAttr("aria-activedescendant"), o.$search.trigger("focus")}), r.on("enable", function(){o.$search.prop("disabled", !1), o._transferTabIndex()}), r.on("disable", function(){o.$search.prop("disabled", !0)}), r.on("focus", function(e){o.$search.trigger("focus")}), r.on("results:focus", function(e){o.$search.attr("aria-activedescendant", e.id)}), this.$selection.on("focusin", ".select2-search--inline", function(e){o.trigger("focus", e)}), this.$selection.on("focusout", ".select2-search--inline", function(e){o._handleBlur(e)}), this.$selection.on("keydown", ".select2-search--inline", function(e){if (e.stopPropagation(), o.trigger("keypress", e), o._keyUpPrevented = e.isDefaultPrevented(), e.which === n.BACKSPACE && "" === o.$search.val()){var r = o.$searchContainer.prev(".select2-selection__choice"); if (r.length > 0){var i = t.GetData(r[0], "data"); o.searchRemoveChoice(i), e.preventDefault()}}}); var a = document.documentMode, s = a && a <= 11; this.$selection.on("input.searchcheck", ".select2-search--inline", function(e){if (s)return void o.$selection.off("input.search input.searchcheck"); o.$selection.off("keyup.search")}), this.$selection.on("keyup.search input.search", ".select2-search--inline", function(e){if (s && "input" === e.type)return void o.$selection.off("input.search input.searchcheck"); var t = e.which; t != n.SHIFT && t != n.CTRL && t != n.ALT && t != n.TAB && o.handleSearch(e)})}, r.prototype._transferTabIndex = function(e){this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1")}, r.prototype.createPlaceholder = function(e, t){this.$search.attr("placeholder", t.text)}, r.prototype.update = function(e, t){var n = this.$search[0] == document.activeElement; if (this.$search.attr("placeholder", ""), e.call(this, t), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch(), n){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}}, r.prototype.handleSearch = function(){if (this.resizeSearch(), !this._keyUpPrevented){var e = this.$search.val(); this.trigger("query", {term:e})}this._keyUpPrevented = !1}, r.prototype.searchRemoveChoice = function(e, t){this.trigger("unselect", {data:t}), this.$search.val(t.text), this.handleSearch()}, r.prototype.resizeSearch = function(){this.$search.css("width", "25px"); var e = ""; if ("" !== this.$search.attr("placeholder"))e = this.$selection.find(".select2-selection__rendered").innerWidth(); else{e = .75 * (this.$search.val().length + 1) + "em"}this.$search.css("width", e)}, r}), t.define("select2/selection/eventRelay", ["jquery"], function(e){function t(){}return t.prototype.bind = function(t, n, r){var i = this, o = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"], a = ["opening", "closing", "selecting", "unselecting", "clearing"]; t.call(this, n, r), n.on("*", function(t, n){if ( - 1 !== e.inArray(t, o)){n = n || {}; var r = e.Event("select2:" + t, {params:n}); i.$element.trigger(r), - 1 !== e.inArray(t, a) && (n.prevented = r.isDefaultPrevented())}})}, t}), t.define("select2/translation", ["jquery", "require"], function(e, t){function n(e){this.dict = e || {}}return n.prototype.all = function(){return this.dict}, n.prototype.get = function(e){return this.dict[e]}, n.prototype.extend = function(t){this.dict = e.extend({}, t.all(), this.dict)}, n._cache = {}, n.loadPath = function(e){if (!(e in n._cache)){var r = t(e); n._cache[e] = r}return new n(n._cache[e])}, n}), t.define("select2/diacritics", [], function(){return{"â’¶":"A", "ï¼¡":"A", "Ã€":"A", "Ã":"A", "Ã‚":"A", "áº¦":"A", "áº¤":"A", "áºª":"A", "áº¨":"A", "Ãƒ":"A", "Ä€":"A", "Ä‚":"A", "áº°":"A", "áº®":"A", "áº´":"A", "áº²":"A", "È¦":"A", "Ç ":"A", "Ã„":"A", "Çž":"A", "áº¢":"A", "Ã…":"A", "Çº":"A", "Ç":"A", "È€":"A", "È‚":"A", "áº ":"A", "áº¬":"A", "áº¶":"A", "á¸€":"A", "Ä„":"A", "Èº":"A", "â±¯":"A", "êœ²":"AA", "Ã†":"AE", "Ç¼":"AE", "Ç¢":"AE", "êœ´":"AO", "êœ¶":"AU", "êœ¸":"AV", "êœº":"AV", "êœ¼":"AY", "â’·":"B", "ï¼¢":"B", "á¸‚":"B", "á¸„":"B", "á¸†":"B", "Éƒ":"B", "Æ‚":"B", "Æ":"B", "â’¸":"C", "ï¼£":"C", "Ä†":"C", "Äˆ":"C", "ÄŠ":"C", "ÄŒ":"C", "Ã‡":"C", "á¸ˆ":"C", "Æ‡":"C", "È»":"C", "êœ¾":"C", "â’¹":"D", "ï¼¤":"D", "á¸Š":"D", "ÄŽ":"D", "á¸Œ":"D", "á¸":"D", "á¸’":"D", "á¸Ž":"D", "Ä":"D", "Æ‹":"D", "ÆŠ":"D", "Æ‰":"D", "ê¹":"D", "Ç±":"DZ", "Ç„":"DZ", "Ç²":"Dz", "Ç…":"Dz", "â’º":"E", "ï¼¥":"E", "Ãˆ":"E", "Ã‰":"E", "ÃŠ":"E", "á»€":"E", "áº¾":"E", "á»„":"E", "á»‚":"E", "áº¼":"E", "Ä’":"E", "á¸”":"E", "á¸–":"E", "Ä”":"E", "Ä–":"E", "Ã‹":"E", "áºº":"E", "Äš":"E", "È„":"E", "È†":"E", "áº¸":"E", "á»†":"E", "È¨":"E", "á¸œ":"E", "Ä˜":"E", "á¸˜":"E", "á¸š":"E", "Æ":"E", "ÆŽ":"E", "â’»":"F", "ï¼¦":"F", "á¸ž":"F", "Æ‘":"F", "ê»":"F", "â’¼":"G", "ï¼§":"G", "Ç´":"G", "Äœ":"G", "á¸ ":"G", "Äž":"G", "Ä ":"G", "Ç¦":"G", "Ä¢":"G", "Ç¤":"G", "Æ“":"G", "êž ":"G", "ê½":"G", "ê¾":"G", "â’½":"H", "ï¼¨":"H", "Ä¤":"H", "á¸¢":"H", "á¸¦":"H", "Èž":"H", "á¸¤":"H", "á¸¨":"H", "á¸ª":"H", "Ä¦":"H", "â±§":"H", "â±µ":"H", "êž":"H", "â’¾":"I", "ï¼©":"I", "ÃŒ":"I", "Ã":"I", "ÃŽ":"I", "Ä¨":"I", "Äª":"I", "Ä¬":"I", "Ä°":"I", "Ã":"I", "á¸®":"I", "á»ˆ":"I", "Ç":"I", "Èˆ":"I", "ÈŠ":"I", "á»Š":"I", "Ä®":"I", "á¸¬":"I", "Æ—":"I", "â’¿":"J", "ï¼ª":"J", "Ä´":"J", "Éˆ":"J", "â“€":"K", "ï¼«":"K", "á¸°":"K", "Ç¨":"K", "á¸²":"K", "Ä¶":"K", "á¸´":"K", "Æ˜":"K", "â±©":"K", "ê€":"K", "ê‚":"K", "ê„":"K", "êž¢":"K", "â“":"L", "ï¼¬":"L", "Ä¿":"L", "Ä¹":"L", "Ä½":"L", "á¸¶":"L", "á¸¸":"L", "Ä»":"L", "á¸¼":"L", "á¸º":"L", "Å":"L", "È½":"L", "â±¢":"L", "â± ":"L", "êˆ":"L", "ê†":"L", "êž€":"L", "Ç‡":"LJ", "Çˆ":"Lj", "â“‚":"M", "ï¼­":"M", "á¸¾":"M", "á¹€":"M", "á¹‚":"M", "â±®":"M", "Æœ":"M", "â“ƒ":"N", "ï¼®":"N", "Ç¸":"N", "Åƒ":"N", "Ã‘":"N", "á¹„":"N", "Å‡":"N", "á¹†":"N", "Å…":"N", "á¹Š":"N", "á¹ˆ":"N", "È ":"N", "Æ":"N", "êž":"N", "êž¤":"N", "ÇŠ":"NJ", "Ç‹":"Nj", "â“„":"O", "ï¼¯":"O", "Ã’":"O", "Ã“":"O", "Ã”":"O", "á»’":"O", "á»":"O", "á»–":"O", "á»”":"O", "Ã•":"O", "á¹Œ":"O", "È¬":"O", "á¹Ž":"O", "ÅŒ":"O", "á¹":"O", "á¹’":"O", "ÅŽ":"O", "È®":"O", "È°":"O", "Ã–":"O", "Èª":"O", "á»Ž":"O", "Å":"O", "Ç‘":"O", "ÈŒ":"O", "ÈŽ":"O", "Æ ":"O", "á»œ":"O", "á»š":"O", "á» ":"O", "á»ž":"O", "á»¢":"O", "á»Œ":"O", "á»˜":"O", "Çª":"O", "Ç¬":"O", "Ã˜":"O", "Ç¾":"O", "Æ†":"O", "ÆŸ":"O", "êŠ":"O", "êŒ":"O", "Æ¢":"OI", "êŽ":"OO", "È¢":"OU", "â“…":"P", "ï¼°":"P", "á¹”":"P", "á¹–":"P", "Æ¤":"P", "â±£":"P", "ê":"P", "ê’":"P", "ê”":"P", "â“†":"Q", "ï¼±":"Q", "ê–":"Q", "ê˜":"Q", "ÉŠ":"Q", "â“‡":"R", "ï¼²":"R", "Å”":"R", "á¹˜":"R", "Å˜":"R", "È":"R", "È’":"R", "á¹š":"R", "á¹œ":"R", "Å–":"R", "á¹ž":"R", "ÉŒ":"R", "â±¤":"R", "êš":"R", "êž¦":"R", "êž‚":"R", "â“ˆ":"S", "ï¼³":"S", "áºž":"S", "Åš":"S", "á¹¤":"S", "Åœ":"S", "á¹ ":"S", "Å ":"S", "á¹¦":"S", "á¹¢":"S", "á¹¨":"S", "È˜":"S", "Åž":"S", "â±¾":"S", "êž¨":"S", "êž„":"S", "â“‰":"T", "ï¼´":"T", "á¹ª":"T", "Å¤":"T", "á¹¬":"T", "Èš":"T", "Å¢":"T", "á¹°":"T", "á¹®":"T", "Å¦":"T", "Æ¬":"T", "Æ®":"T", "È¾":"T", "êž†":"T", "êœ¨":"TZ", "â“Š":"U", "ï¼µ":"U", "Ã™":"U", "Ãš":"U", "Ã›":"U", "Å¨":"U", "á¹¸":"U", "Åª":"U", "á¹º":"U", "Å¬":"U", "Ãœ":"U", "Ç›":"U", "Ç—":"U", "Ç•":"U", "Ç™":"U", "á»¦":"U", "Å®":"U", "Å°":"U", "Ç“":"U", "È”":"U", "È–":"U", "Æ¯":"U", "á»ª":"U", "á»¨":"U", "á»®":"U", "á»¬":"U", "á»°":"U", "á»¤":"U", "á¹²":"U", "Å²":"U", "á¹¶":"U", "á¹´":"U", "É„":"U", "â“‹":"V", "ï¼¶":"V", "á¹¼":"V", "á¹¾":"V", "Æ²":"V", "êž":"V", "É…":"V", "ê ":"VY", "â“Œ":"W", "ï¼·":"W", "áº€":"W", "áº‚":"W", "Å´":"W", "áº†":"W", "áº„":"W", "áºˆ":"W", "â±²":"W", "â“":"X", "ï¼¸":"X", "áºŠ":"X", "áºŒ":"X", "â“Ž":"Y", "ï¼¹":"Y", "á»²":"Y", "Ã":"Y", "Å¶":"Y", "á»¸":"Y", "È²":"Y", "áºŽ":"Y", "Å¸":"Y", "á»¶":"Y", "á»´":"Y", "Æ³":"Y", "ÉŽ":"Y", "á»¾":"Y", "â“":"Z", "ï¼º":"Z", "Å¹":"Z", "áº":"Z", "Å»":"Z", "Å½":"Z", "áº’":"Z", "áº”":"Z", "Æµ":"Z", "È¤":"Z", "â±¿":"Z", "â±«":"Z", "ê¢":"Z", "â“":"a", "ï½":"a", "áºš":"a", "Ã ":"a", "Ã¡":"a", "Ã¢":"a", "áº§":"a", "áº¥":"a", "áº«":"a", "áº©":"a", "Ã£":"a", "Ä":"a", "Äƒ":"a", "áº±":"a", "áº¯":"a", "áºµ":"a", "áº³":"a", "È§":"a", "Ç¡":"a", "Ã¤":"a", "ÇŸ":"a", "áº£":"a", "Ã¥":"a", "Ç»":"a", "ÇŽ":"a", "È":"a", "Èƒ":"a", "áº¡":"a", "áº­":"a", "áº·":"a", "á¸":"a", "Ä…":"a", "â±¥":"a", "É":"a", "êœ³":"aa", "Ã¦":"ae", "Ç½":"ae", "Ç£":"ae", "êœµ":"ao", "êœ·":"au", "êœ¹":"av", "êœ»":"av", "êœ½":"ay", "â“‘":"b", "ï½‚":"b", "á¸ƒ":"b", "á¸…":"b", "á¸‡":"b", "Æ€":"b", "Æƒ":"b", "É“":"b", "â“’":"c", "ï½ƒ":"c", "Ä‡":"c", "Ä‰":"c", "Ä‹":"c", "Ä":"c", "Ã§":"c", "á¸‰":"c", "Æˆ":"c", "È¼":"c", "êœ¿":"c", "â†„":"c", "â““":"d", "ï½„":"d", "á¸‹":"d", "Ä":"d", "á¸":"d", "á¸‘":"d", "á¸“":"d", "á¸":"d", "Ä‘":"d", "ÆŒ":"d", "É–":"d", "É—":"d", "êº":"d", "Ç³":"dz", "Ç†":"dz", "â“”":"e", "ï½…":"e", "Ã¨":"e", "Ã©":"e", "Ãª":"e", "á»":"e", "áº¿":"e", "á»…":"e", "á»ƒ":"e", "áº½":"e", "Ä“":"e", "á¸•":"e", "á¸—":"e", "Ä•":"e", "Ä—":"e", "Ã«":"e", "áº»":"e", "Ä›":"e", "È…":"e", "È‡":"e", "áº¹":"e", "á»‡":"e", "È©":"e", "á¸":"e", "Ä™":"e", "á¸™":"e", "á¸›":"e", "É‡":"e", "É›":"e", "Ç":"e", "â“•":"f", "ï½†":"f", "á¸Ÿ":"f", "Æ’":"f", "ê¼":"f", "â“–":"g", "ï½‡":"g", "Çµ":"g", "Ä":"g", "á¸¡":"g", "ÄŸ":"g", "Ä¡":"g", "Ç§":"g", "Ä£":"g", "Ç¥":"g", "É ":"g", "êž¡":"g", "áµ¹":"g", "ê¿":"g", "â“—":"h", "ï½ˆ":"h", "Ä¥":"h", "á¸£":"h", "á¸§":"h", "ÈŸ":"h", "á¸¥":"h", "á¸©":"h", "á¸«":"h", "áº–":"h", "Ä§":"h", "â±¨":"h", "â±¶":"h", "É¥":"h", "Æ•":"hv", "â“˜":"i", "ï½‰":"i", "Ã¬":"i", "Ã­":"i", "Ã®":"i", "Ä©":"i", "Ä«":"i", "Ä­":"i", "Ã¯":"i", "á¸¯":"i", "á»‰":"i", "Ç":"i", "È‰":"i", "È‹":"i", "á»‹":"i", "Ä¯":"i", "á¸­":"i", "É¨":"i", "Ä±":"i", "â“™":"j", "ï½Š":"j", "Äµ":"j", "Ç°":"j", "É‰":"j", "â“š":"k", "ï½‹":"k", "á¸±":"k", "Ç©":"k", "á¸³":"k", "Ä·":"k", "á¸µ":"k", "Æ™":"k", "â±ª":"k", "ê":"k", "êƒ":"k", "ê…":"k", "êž£":"k", "â“›":"l", "ï½Œ":"l", "Å€":"l", "Äº":"l", "Ä¾":"l", "á¸·":"l", "á¸¹":"l", "Ä¼":"l", "á¸½":"l", "á¸»":"l", "Å¿":"l", "Å‚":"l", "Æš":"l", "É«":"l", "â±¡":"l", "ê‰":"l", "êž":"l", "ê‡":"l", "Ç‰":"lj", "â“œ":"m", "ï½":"m", "á¸¿":"m", "á¹":"m", "á¹ƒ":"m", "É±":"m", "É¯":"m", "â“":"n", "ï½Ž":"n", "Ç¹":"n", "Å„":"n", "Ã±":"n", "á¹…":"n", "Åˆ":"n", "á¹‡":"n", "Å†":"n", "á¹‹":"n", "á¹‰":"n", "Æž":"n", "É²":"n", "Å‰":"n", "êž‘":"n", "êž¥":"n", "ÇŒ":"nj", "â“ž":"o", "ï½":"o", "Ã²":"o", "Ã³":"o", "Ã´":"o", "á»“":"o", "á»‘":"o", "á»—":"o", "á»•":"o", "Ãµ":"o", "á¹":"o", "È­":"o", "á¹":"o", "Å":"o", "á¹‘":"o", "á¹“":"o", "Å":"o", "È¯":"o", "È±":"o", "Ã¶":"o", "È«":"o", "á»":"o", "Å‘":"o", "Ç’":"o", "È":"o", "È":"o", "Æ¡":"o", "á»":"o", "á»›":"o", "á»¡":"o", "á»Ÿ":"o", "á»£":"o", "á»":"o", "á»™":"o", "Ç«":"o", "Ç­":"o", "Ã¸":"o", "Ç¿":"o", "É”":"o", "ê‹":"o", "ê":"o", "Éµ":"o", "Æ£":"oi", "È£":"ou", "ê":"oo", "â“Ÿ":"p", "ï½":"p", "á¹•":"p", "á¹—":"p", "Æ¥":"p", "áµ½":"p", "ê‘":"p", "ê“":"p", "ê•":"p", "â“ ":"q", "ï½‘":"q", "É‹":"q", "ê—":"q", "ê™":"q", "â“¡":"r", "ï½’":"r", "Å•":"r", "á¹™":"r", "Å™":"r", "È‘":"r", "È“":"r", "á¹›":"r", "á¹":"r", "Å—":"r", "á¹Ÿ":"r", "É":"r", "É½":"r", "ê›":"r", "êž§":"r", "êžƒ":"r", "â“¢":"s", "ï½“":"s", "ÃŸ":"s", "Å›":"s", "á¹¥":"s", "Å":"s", "á¹¡":"s", "Å¡":"s", "á¹§":"s", "á¹£":"s", "á¹©":"s", "È™":"s", "ÅŸ":"s", "È¿":"s", "êž©":"s", "êž…":"s", "áº›":"s", "â“£":"t", "ï½”":"t", "á¹«":"t", "áº—":"t", "Å¥":"t", "á¹­":"t", "È›":"t", "Å£":"t", "á¹±":"t", "á¹¯":"t", "Å§":"t", "Æ­":"t", "Êˆ":"t", "â±¦":"t", "êž‡":"t", "êœ©":"tz", "â“¤":"u", "ï½•":"u", "Ã¹":"u", "Ãº":"u", "Ã»":"u", "Å©":"u", "á¹¹":"u", "Å«":"u", "á¹»":"u", "Å­":"u", "Ã¼":"u", "Çœ":"u", "Ç˜":"u", "Ç–":"u", "Çš":"u", "á»§":"u", "Å¯":"u", "Å±":"u", "Ç”":"u", "È•":"u", "È—":"u", "Æ°":"u", "á»«":"u", "á»©":"u", "á»¯":"u", "á»­":"u", "á»±":"u", "á»¥":"u", "á¹³":"u", "Å³":"u", "á¹·":"u", "á¹µ":"u", "Ê‰":"u", "â“¥":"v", "ï½–":"v", "á¹½":"v", "á¹¿":"v", "Ê‹":"v", "êŸ":"v", "ÊŒ":"v", "ê¡":"vy", "â“¦":"w", "ï½—":"w", "áº":"w", "áºƒ":"w", "Åµ":"w", "áº‡":"w", "áº…":"w", "áº˜":"w", "áº‰":"w", "â±³":"w", "â“§":"x", "ï½˜":"x", "áº‹":"x", "áº":"x",
          "â“¨":"y", "ï½™":"y", "á»³":"y", "Ã½":"y", "Å·":"y", "á»¹":"y", "È³":"y", "áº":"y", "Ã¿":"y", "á»·":"y", "áº™":"y", "á»µ":"y", "Æ´":"y", "É":"y", "á»¿":"y", "â“©":"z", "ï½š":"z", "Åº":"z", "áº‘":"z", "Å¼":"z", "Å¾":"z", "áº“":"z", "áº•":"z", "Æ¶":"z", "È¥":"z", "É€":"z", "â±¬":"z", "ê£":"z", "Î†":"Î‘", "Îˆ":"Î•", "Î‰":"Î—", "ÎŠ":"Î™", "Îª":"Î™", "ÎŒ":"ÎŸ", "ÎŽ":"Î¥", "Î«":"Î¥", "Î":"Î©", "Î¬":"Î±", "Î­":"Îµ", "Î®":"Î·", "Î¯":"Î¹", "ÏŠ":"Î¹", "Î":"Î¹", "ÏŒ":"Î¿", "Ï":"Ï…", "Ï‹":"Ï…", "Î°":"Ï…", "Ï‰":"Ï‰", "Ï‚":"Ïƒ"}}), t.define("select2/data/base", ["../utils"], function(e){function t(e, n){t.__super__.constructor.call(this)}return e.Extend(t, e.Observable), t.prototype.current = function(e){throw new Error("The `current` method must be defined in child classes.")}, t.prototype.query = function(e, t){throw new Error("The `query` method must be defined in child classes.")}, t.prototype.bind = function(e, t){}, t.prototype.destroy = function(){}, t.prototype.generateResultId = function(t, n){var r = t.id + "-result-"; return r += e.generateChars(4), null != n.id?r += "-" + n.id.toString():r += "-" + e.generateChars(4), r}, t}), t.define("select2/data/select", ["./base", "../utils", "jquery"], function(e, t, n){function r(e, t){this.$element = e, this.options = t, r.__super__.constructor.call(this)}return t.Extend(r, e), r.prototype.current = function(e){var t = [], r = this; this.$element.find(":selected").each(function(){var e = n(this), i = r.item(e); t.push(i)}), e(t)}, r.prototype.select = function(e){var t = this; if (e.selected = !0, n(e.element).is("option"))return e.element.selected = !0, void this.$element.trigger("change"); if (this.$element.prop("multiple"))this.current(function(r){var i = []; e = [e], e.push.apply(e, r); for (var o = 0; o < e.length; o++){var a = e[o].id; - 1 === n.inArray(a, i) && i.push(a)}t.$element.val(i), t.$element.trigger("change")}); else{var r = e.id; this.$element.val(r), this.$element.trigger("change")}}, r.prototype.unselect = function(e){var t = this; if (this.$element.prop("multiple")){if (e.selected = !1, n(e.element).is("option"))return e.element.selected = !1, void this.$element.trigger("change"); this.current(function(r){for (var i = [], o = 0; o < r.length; o++){var a = r[o].id; a !== e.id && - 1 === n.inArray(a, i) && i.push(a)}t.$element.val(i), t.$element.trigger("change")})}}, r.prototype.bind = function(e, t){var n = this; this.container = e, e.on("select", function(e){n.select(e.data)}), e.on("unselect", function(e){n.unselect(e.data)})}, r.prototype.destroy = function(){this.$element.find("*").each(function(){t.RemoveData(this)})}, r.prototype.query = function(e, t){var r = [], i = this; this.$element.children().each(function(){var t = n(this); if (t.is("option") || t.is("optgroup")){var o = i.item(t), a = i.matches(e, o); null !== a && r.push(a)}}), t({results:r})}, r.prototype.addOptions = function(e){t.appendMany(this.$element, e)}, r.prototype.option = function(e){var r; e.children?(r = document.createElement("optgroup"), r.label = e.text):(r = document.createElement("option"), void 0 !== r.textContent?r.textContent = e.text:r.innerText = e.text), void 0 !== e.id && (r.value = e.id), e.disabled && (r.disabled = !0), e.selected && (r.selected = !0), e.title && (r.title = e.title); var i = n(r), o = this._normalizeItem(e); return o.element = r, t.StoreData(r, "data", o), i}, r.prototype.item = function(e){var r = {}; if (null != (r = t.GetData(e[0], "data")))return r; if (e.is("option"))r = {id:e.val(), text:e.text(), disabled:e.prop("disabled"), selected:e.prop("selected"), title:e.prop("title")}; else if (e.is("optgroup")){r = {text:e.prop("label"), children:[], title:e.prop("title")}; for (var i = e.children("option"), o = [], a = 0; a < i.length; a++){var s = n(i[a]), l = this.item(s); o.push(l)}r.children = o}return r = this._normalizeItem(r), r.element = e[0], t.StoreData(e[0], "data", r), r}, r.prototype._normalizeItem = function(e){e !== Object(e) && (e = {id:e, text:e}), e = n.extend({}, {text:""}, e); var t = {selected:!1, disabled:!1}; return null != e.id && (e.id = e.id.toString()), null != e.text && (e.text = e.text.toString()), null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId(this.container, e)), n.extend({}, t, e)}, r.prototype.matches = function(e, t){return this.options.get("matcher")(e, t)}, r}), t.define("select2/data/array", ["./select", "../utils", "jquery"], function(e, t, n){function r(e, t){var n = t.get("data") || []; r.__super__.constructor.call(this, e, t), this.addOptions(this.convertToOptions(n))}return t.Extend(r, e), r.prototype.select = function(e){var t = this.$element.find("option").filter(function(t, n){return n.value == e.id.toString()}); 0 === t.length && (t = this.option(e), this.addOptions(t)), r.__super__.select.call(this, e)}, r.prototype.convertToOptions = function(e){for (var r = this, i = this.$element.find("option"), o = i.map(function(){return r.item(n(this)).id}).get(), a = [], s = 0; s < e.length; s++){var l = this._normalizeItem(e[s]); if (n.inArray(l.id, o) >= 0){var c = i.filter(function(e){return function(){return n(this).val() == e.id}}(l)), u = this.item(c), d = n.extend(!0, {}, l, u), h = this.option(d); c.replaceWith(h)} else{var f = this.option(l); if (l.children){var p = this.convertToOptions(l.children); t.appendMany(f, p)}a.push(f)}}return a}, r}), t.define("select2/data/ajax", ["./array", "../utils", "jquery"], function(e, t, n){function r(e, t){this.ajaxOptions = this._applyDefaults(t.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), r.__super__.constructor.call(this, e, t)}return t.Extend(r, e), r.prototype._applyDefaults = function(e){var t = {data:function(e){return n.extend({}, e, {q:e.term})}, transport:function(e, t, r){var i = n.ajax(e); return i.then(t), i.fail(r), i}}; return n.extend({}, t, e, !0)}, r.prototype.processResults = function(e){return e}, r.prototype.query = function(e, t){function r(){var r = o.transport(o, function(r){var o = i.processResults(r, e); i.options.get("debug") && window.console && console.error && (o && o.results && n.isArray(o.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), t(o)}, function(){"status"in r && (0 === r.status || "0" === r.status) || i.trigger("results:message", {message:"errorLoading"})}); i._request = r}var i = this; null != this._request && (n.isFunction(this._request.abort) && this._request.abort(), this._request = null); var o = n.extend({type:"GET"}, this.ajaxOptions); "function" == typeof o.url && (o.url = o.url.call(this.$element, e)), "function" == typeof o.data && (o.data = o.data.call(this.$element, e)), this.ajaxOptions.delay && null != e.term?(this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(r, this.ajaxOptions.delay)):r()}, r}), t.define("select2/data/tags", ["jquery"], function(e){function t(t, n, r){var i = r.get("tags"), o = r.get("createTag"); void 0 !== o && (this.createTag = o); var a = r.get("insertTag"); if (void 0 !== a && (this.insertTag = a), t.call(this, n, r), e.isArray(i))for (var s = 0; s < i.length; s++){var l = i[s], c = this._normalizeItem(l), u = this.option(c); this.$element.append(u)}}return t.prototype.query = function(e, t, n){function r(e, o){for (var a = e.results, s = 0; s < a.length; s++){var l = a[s], c = null != l.children && !r({results:l.children}, !0); if ((l.text || "").toUpperCase() === (t.term || "").toUpperCase() || c)return!o && (e.data = a, void n(e))}if (o)return!0; var u = i.createTag(t); if (null != u){var d = i.option(u); d.attr("data-select2-tag", !0), i.addOptions([d]), i.insertTag(a, u)}e.results = a, n(e)}var i = this; if (this._removeOldTags(), null == t.term || null != t.page)return void e.call(this, t, n); e.call(this, t, r)}, t.prototype.createTag = function(t, n){var r = e.trim(n.term); return"" === r?null:{id:r, text:r}}, t.prototype.insertTag = function(e, t, n){t.unshift(n)}, t.prototype._removeOldTags = function(t){this._lastTag; this.$element.find("option[data-select2-tag]").each(function(){this.selected || e(this).remove()})}, t}), t.define("select2/data/tokenizer", ["jquery"], function(e){function t(e, t, n){var r = n.get("tokenizer"); void 0 !== r && (this.tokenizer = r), e.call(this, t, n)}return t.prototype.bind = function(e, t, n){e.call(this, t, n), this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field")}, t.prototype.query = function(t, n, r){function i(t){var n = a._normalizeItem(t); if (!a.$element.find("option").filter(function(){return e(this).val() === n.id}).length){var r = a.option(n); r.attr("data-select2-tag", !0), a._removeOldTags(), a.addOptions([r])}o(n)}function o(e){a.trigger("select", {data:e})}var a = this; n.term = n.term || ""; var s = this.tokenizer(n, this.options, i); s.term !== n.term && (this.$search.length && (this.$search.val(s.term), this.$search.focus()), n.term = s.term), t.call(this, n, r)}, t.prototype.tokenizer = function(t, n, r, i){for (var o = r.get("tokenSeparators") || [], a = n.term, s = 0, l = this.createTag || function(e){return{id:e.term, text:e.term}}; s < a.length; ){var c = a[s]; if ( - 1 !== e.inArray(c, o)){var u = a.substr(0, s), d = e.extend({}, n, {term:u}), h = l(d); null != h?(i(h), a = a.substr(s + 1) || "", s = 0):s++} else s++}return{term:a}}, t}), t.define("select2/data/minimumInputLength", [], function(){function e(e, t, n){this.minimumInputLength = n.get("minimumInputLength"), e.call(this, t, n)}return e.prototype.query = function(e, t, n){if (t.term = t.term || "", t.term.length < this.minimumInputLength)return void this.trigger("results:message", {message:"inputTooShort", args:{minimum:this.minimumInputLength, input:t.term, params:t}}); e.call(this, t, n)}, e}), t.define("select2/data/maximumInputLength", [], function(){function e(e, t, n){this.maximumInputLength = n.get("maximumInputLength"), e.call(this, t, n)}return e.prototype.query = function(e, t, n){if (t.term = t.term || "", this.maximumInputLength > 0 && t.term.length > this.maximumInputLength)return void this.trigger("results:message", {message:"inputTooLong", args:{maximum:this.maximumInputLength, input:t.term, params:t}}); e.call(this, t, n)}, e}), t.define("select2/data/maximumSelectionLength", [], function(){function e(e, t, n){this.maximumSelectionLength = n.get("maximumSelectionLength"), e.call(this, t, n)}return e.prototype.query = function(e, t, n){var r = this; this.current(function(i){var o = null != i?i.length:0; if (r.maximumSelectionLength > 0 && o >= r.maximumSelectionLength)return void r.trigger("results:message", {message:"maximumSelected", args:{maximum:r.maximumSelectionLength}}); e.call(r, t, n)})}, e}), t.define("select2/dropdown", ["jquery", "./utils"], function(e, t){function n(e, t){this.$element = e, this.options = t, n.__super__.constructor.call(this)}return t.Extend(n, t.Observable), n.prototype.render = function(){var t = e('<span class="select2-dropdown"><span class="select2-results"></span></span>'); return t.attr("dir", this.options.get("dir")), this.$dropdown = t, t}, n.prototype.bind = function(){}, n.prototype.position = function(e, t){}, n.prototype.destroy = function(){this.$dropdown.remove()}, n}), t.define("select2/dropdown/search", ["jquery", "../utils"], function(e, t){function n(){}return n.prototype.render = function(t){var n = t.call(this), r = e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>'); return this.$searchContainer = r, this.$search = r.find("input"), n.prepend(r), n}, n.prototype.bind = function(t, n, r){var i = this; t.call(this, n, r), this.$search.on("keydown", function(e){i.trigger("keypress", e), i._keyUpPrevented = e.isDefaultPrevented()}), this.$search.on("input", function(t){e(this).off("keyup")}), this.$search.on("keyup input", function(e){i.handleSearch(e)}), n.on("open", function(){i.$search.attr("tabindex", 0), i.$search.focus(), window.setTimeout(function(){i.$search.focus()}, 0)}), n.on("close", function(){i.$search.attr("tabindex", - 1), i.$search.val(""), i.$search.blur()}), n.on("focus", function(){n.isOpen() || i.$search.focus()}), n.on("results:all", function(e){if (null == e.query.term || "" === e.query.term){i.showSearch(e)?i.$searchContainer.removeClass("select2-search--hide"):i.$searchContainer.addClass("select2-search--hide")}})}, n.prototype.handleSearch = function(e){if (!this._keyUpPrevented){var t = this.$search.val(); this.trigger("query", {term:t})}this._keyUpPrevented = !1}, n.prototype.showSearch = function(e, t){return!0}, n}), t.define("select2/dropdown/hidePlaceholder", [], function(){function e(e, t, n, r){this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n, r)}return e.prototype.append = function(e, t){t.results = this.removePlaceholder(t.results), e.call(this, t)}, e.prototype.normalizePlaceholder = function(e, t){return"string" == typeof t && (t = {id:"", text:t}), t}, e.prototype.removePlaceholder = function(e, t){for (var n = t.slice(0), r = t.length - 1; r >= 0; r--){var i = t[r]; this.placeholder.id === i.id && n.splice(r, 1)}return n}, e}), t.define("select2/dropdown/infiniteScroll", ["jquery"], function(e){function t(e, t, n, r){this.lastParams = {}, e.call(this, t, n, r), this.$loadingMore = this.createLoadingMore(), this.loading = !1}return t.prototype.append = function(e, t){this.$loadingMore.remove(), this.loading = !1, e.call(this, t), this.showLoadingMore(t) && this.$results.append(this.$loadingMore)}, t.prototype.bind = function(t, n, r){var i = this; t.call(this, n, r), n.on("query", function(e){i.lastParams = e, i.loading = !0}), n.on("query:append", function(e){i.lastParams = e, i.loading = !0}), this.$results.on("scroll", function(){var t = e.contains(document.documentElement, i.$loadingMore[0]); if (!i.loading && t){i.$results.offset().top + i.$results.outerHeight(!1) + 50 >= i.$loadingMore.offset().top + i.$loadingMore.outerHeight(!1) && i.loadMore()}})}, t.prototype.loadMore = function(){this.loading = !0; var t = e.extend({}, {page:1}, this.lastParams); t.page++, this.trigger("query:append", t)}, t.prototype.showLoadingMore = function(e, t){return t.pagination && t.pagination.more}, t.prototype.createLoadingMore = function(){var t = e('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'), n = this.options.get("translations").get("loadingMore"); return t.html(n(this.lastParams)), t}, t}), t.define("select2/dropdown/attachBody", ["jquery", "../utils"], function(e, t){function n(t, n, r){this.$dropdownParent = r.get("dropdownParent") || e(document.body), t.call(this, n, r)}return n.prototype.bind = function(e, t, n){var r = this, i = !1; e.call(this, t, n), t.on("open", function(){r._showDropdown(), r._attachPositioningHandler(t), i || (i = !0, t.on("results:all", function(){r._positionDropdown(), r._resizeDropdown()}), t.on("results:append", function(){r._positionDropdown(), r._resizeDropdown()}))}), t.on("close", function(){r._hideDropdown(), r._detachPositioningHandler(t)}), this.$dropdownContainer.on("mousedown", function(e){e.stopPropagation()})}, n.prototype.destroy = function(e){e.call(this), this.$dropdownContainer.remove()}, n.prototype.position = function(e, t, n){t.attr("class", n.attr("class")), t.removeClass("select2"), t.addClass("select2-container--open"), t.css({position:"absolute", top: - 999999}), this.$container = n}, n.prototype.render = function(t){var n = e("<span></span>"), r = t.call(this); return n.append(r), this.$dropdownContainer = n, n}, n.prototype._hideDropdown = function(e){this.$dropdownContainer.detach()}, n.prototype._attachPositioningHandler = function(n, r){var i = this, o = "scroll.select2." + r.id, a = "resize.select2." + r.id, s = "orientationchange.select2." + r.id, l = this.$container.parents().filter(t.hasScroll); l.each(function(){t.StoreData(this, "select2-scroll-position", {x:e(this).scrollLeft(), y:e(this).scrollTop()})}), l.on(o, function(n){var r = t.GetData(this, "select2-scroll-position"); e(this).scrollTop(r.y)}), e(window).on(o + " " + a + " " + s, function(e){i._positionDropdown(), i._resizeDropdown()})}, n.prototype._detachPositioningHandler = function(n, r){var i = "scroll.select2." + r.id, o = "resize.select2." + r.id, a = "orientationchange.select2." + r.id; this.$container.parents().filter(t.hasScroll).off(i), e(window).off(i + " " + o + " " + a)}, n.prototype._positionDropdown = function(){var t = e(window), n = this.$dropdown.hasClass("select2-dropdown--above"), r = this.$dropdown.hasClass("select2-dropdown--below"), i = null, o = this.$container.offset(); o.bottom = o.top + this.$container.outerHeight(!1); var a = {height:this.$container.outerHeight(!1)}; a.top = o.top, a.bottom = o.top + a.height; var s = {height:this.$dropdown.outerHeight(!1)}, l = {top:t.scrollTop(), bottom:t.scrollTop() + t.height()}, c = l.top < o.top - s.height, u = l.bottom > o.bottom + s.height, d = {left:o.left, top:a.bottom}, h = this.$dropdownParent; "static" === h.css("position") && (h = h.offsetParent()); var f = h.offset(); d.top -= f.top, d.left -= f.left, n || r || (i = "below"), u || !c || n?!c && u && n && (i = "below"):i = "above", ("above" == i || n && "below" !== i) && (d.top = a.top - f.top - s.height), null != i && (this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--" + i), this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--" + i)), this.$dropdownContainer.css(d)}, n.prototype._resizeDropdown = function(){var e = {width:this.$container.outerWidth(!1) + "px"}; this.options.get("dropdownAutoWidth") && (e.minWidth = e.width, e.position = "relative", e.width = "auto"), this.$dropdown.css(e)}, n.prototype._showDropdown = function(e){this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown()}, n}), t.define("select2/dropdown/minimumResultsForSearch", [], function(){function e(t){for (var n = 0, r = 0; r < t.length; r++){var i = t[r]; i.children?n += e(i.children):n++}return n}function t(e, t, n, r){this.minimumResultsForSearch = n.get("minimumResultsForSearch"), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, r)}return t.prototype.showSearch = function(t, n){return!(e(n.data.results) < this.minimumResultsForSearch) && t.call(this, n)}, t}), t.define("select2/dropdown/selectOnClose", ["../utils"], function(e){function t(){}return t.prototype.bind = function(e, t, n){var r = this; e.call(this, t, n), t.on("close", function(e){r._handleSelectOnClose(e)})}, t.prototype._handleSelectOnClose = function(t, n){if (n && null != n.originalSelect2Event){var r = n.originalSelect2Event; if ("select" === r._type || "unselect" === r._type)return}var i = this.getHighlightedResults(); if (!(i.length < 1)){var o = e.GetData(i[0], "data"); null != o.element && o.element.selected || null == o.element && o.selected || this.trigger("select", {data:o})}}, t}), t.define("select2/dropdown/closeOnSelect", [], function(){function e(){}return e.prototype.bind = function(e, t, n){var r = this; e.call(this, t, n), t.on("select", function(e){r._selectTriggered(e)}), t.on("unselect", function(e){r._selectTriggered(e)})}, e.prototype._selectTriggered = function(e, t){var n = t.originalEvent; n && n.ctrlKey || this.trigger("close", {originalEvent:n, originalSelect2Event:t})}, e}), t.define("select2/i18n/en", [], function(){return{errorLoading:function(){return"The results could not be loaded."}, inputTooLong:function(e){var t = e.input.length - e.maximum, n = "Please delete " + t + " character"; return 1 != t && (n += "s"), n}, inputTooShort:function(e){return"Please enter " + (e.minimum - e.input.length) + " or more characters"}, loadingMore:function(){return"Loading more resultsâ€¦"}, maximumSelected:function(e){var t = "You can only select " + e.maximum + " item"; return 1 != e.maximum && (t += "s"), t}, noResults:function(){return"No results found"}, searching:function(){return"Searchingâ€¦"}}}), t.define("select2/defaults", ["jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en"], function(e, t, n, r, i, o, a, s, l, c, u, d, h, f, p, g, v, m, y, b, w, x, S, T, C, D, _, $, A){function E(){this.reset()}return E.prototype.apply = function(d){if (d = e.extend(!0, {}, this.defaults, d), null == d.dataAdapter){if (null != d.ajax?d.dataAdapter = p:null != d.data?d.dataAdapter = f:d.dataAdapter = h, d.minimumInputLength > 0 && (d.dataAdapter = c.Decorate(d.dataAdapter, m)), d.maximumInputLength > 0 && (d.dataAdapter = c.Decorate(d.dataAdapter, y)), d.maximumSelectionLength > 0 && (d.dataAdapter = c.Decorate(d.dataAdapter, b)), d.tags && (d.dataAdapter = c.Decorate(d.dataAdapter, g)), null == d.tokenSeparators && null == d.tokenizer || (d.dataAdapter = c.Decorate(d.dataAdapter, v)), null != d.query){var A = t(d.amdBase + "compat/query"); d.dataAdapter = c.Decorate(d.dataAdapter, A)}if (null != d.initSelection){var E = t(d.amdBase + "compat/initSelection"); d.dataAdapter = c.Decorate(d.dataAdapter, E)}}if (null == d.resultsAdapter && (d.resultsAdapter = n, null != d.ajax && (d.resultsAdapter = c.Decorate(d.resultsAdapter, T)), null != d.placeholder && (d.resultsAdapter = c.Decorate(d.resultsAdapter, S)), d.selectOnClose && (d.resultsAdapter = c.Decorate(d.resultsAdapter, _))), null == d.dropdownAdapter){if (d.multiple)d.dropdownAdapter = w; else{var I = c.Decorate(w, x); d.dropdownAdapter = I}if (0 !== d.minimumResultsForSearch && (d.dropdownAdapter = c.Decorate(d.dropdownAdapter, D)), d.closeOnSelect && (d.dropdownAdapter = c.Decorate(d.dropdownAdapter, $)), null != d.dropdownCssClass || null != d.dropdownCss || null != d.adaptDropdownCssClass){var k = t(d.amdBase + "compat/dropdownCss"); d.dropdownAdapter = c.Decorate(d.dropdownAdapter, k)}d.dropdownAdapter = c.Decorate(d.dropdownAdapter, C)}if (null == d.selectionAdapter){if (d.multiple?d.selectionAdapter = i:d.selectionAdapter = r, null != d.placeholder && (d.selectionAdapter = c.Decorate(d.selectionAdapter, o)), d.allowClear && (d.selectionAdapter = c.Decorate(d.selectionAdapter, a)), d.multiple && (d.selectionAdapter = c.Decorate(d.selectionAdapter, s)), null != d.containerCssClass || null != d.containerCss || null != d.adaptContainerCssClass){var L = t(d.amdBase + "compat/containerCss"); d.selectionAdapter = c.Decorate(d.selectionAdapter, L)}d.selectionAdapter = c.Decorate(d.selectionAdapter, l)}if ("string" == typeof d.language)if (d.language.indexOf("-") > 0){var j = d.language.split("-"), O = j[0]; d.language = [d.language, O]} else d.language = [d.language]; if (e.isArray(d.language)){var N = new u; d.language.push("en"); for (var R = d.language, P = 0; P < R.length; P++){var F = R[P], H = {}; try{H = u.loadPath(F)} catch (e){try{F = this.defaults.amdLanguageBase + F, H = u.loadPath(F)} catch (e){d.debug && window.console && console.warn && console.warn('Select2: The language file for "' + F + '" could not be automatically loaded. A fallback will be used instead.'); continue}}N.extend(H)}d.translations = N} else{var q = u.loadPath(this.defaults.amdLanguageBase + "en"), M = new u(d.language); M.extend(q), d.translations = M}return d}, E.prototype.reset = function(){function t(e){function t(e){return d[e] || e}return e.replace(/[^\u0000-\u007E]/g, t)}function n(r, i){if ("" === e.trim(r.term))return i; if (i.children && i.children.length > 0){for (var o = e.extend(!0, {}, i), a = i.children.length - 1; a >= 0; a--){null == n(r, i.children[a]) && o.children.splice(a, 1)}return o.children.length > 0?o:n(r, o)}var s = t(i.text).toUpperCase(), l = t(r.term).toUpperCase(); return s.indexOf(l) > - 1?i:null}this.defaults = {amdBase:"./", amdLanguageBase:"./i18n/", closeOnSelect:!0, debug:!1, dropdownAutoWidth:!1, escapeMarkup:c.escapeMarkup, language:A, matcher:n, minimumInputLength:0, maximumInputLength:0, maximumSelectionLength:0, minimumResultsForSearch:0, selectOnClose:!1, sorter:function(e){return e}, templateResult:function(e){return e.text}, templateSelection:function(e){return e.text}, theme:"default", width:"resolve"}}, E.prototype.set = function(t, n){var r = e.camelCase(t), i = {}; i[r] = n; var o = c._convertData(i); e.extend(!0, this.defaults, o)}, new E}), t.define("select2/options", ["require", "jquery", "./defaults", "./utils"], function(e, t, n, r){function i(t, i){if (this.options = t, null != i && this.fromElement(i), this.options = n.apply(this.options), i && i.is("input")){var o = e(this.get("amdBase") + "compat/inputData"); this.options.dataAdapter = r.Decorate(this.options.dataAdapter, o)}}return i.prototype.fromElement = function(e){var n = ["select2"]; null == this.options.multiple && (this.options.multiple = e.prop("multiple")), null == this.options.disabled && (this.options.disabled = e.prop("disabled")), null == this.options.language && (e.prop("lang")?this.options.language = e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang") && (this.options.language = e.closest("[lang]").prop("lang"))), null == this.options.dir && (e.prop("dir")?this.options.dir = e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir = e.closest("[dir]").prop("dir"):this.options.dir = "ltr"), e.prop("disabled", this.options.disabled), e.prop("multiple", this.options.multiple), r.GetData(e[0], "select2Tags") && (this.options.debug && window.console && console.warn && console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'), r.StoreData(e[0], "data", r.GetData(e[0], "select2Tags")), r.StoreData(e[0], "tags", !0)), r.GetData(e[0], "ajaxUrl") && (this.options.debug && window.console && console.warn && console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."), e.attr("ajax--url", r.GetData(e[0], "ajaxUrl")), r.StoreData(e[0], "ajax-Url", r.GetData(e[0], "ajaxUrl"))); var i = {}; i = t.fn.jquery && "1." == t.fn.jquery.substr(0, 2) && e[0].dataset?t.extend(!0, {}, e[0].dataset, r.GetData(e[0])):r.GetData(e[0]); var o = t.extend(!0, {}, i); o = r._convertData(o); for (var a in o)t.inArray(a, n) > - 1 || (t.isPlainObject(this.options[a])?t.extend(this.options[a], o[a]):this.options[a] = o[a]); return this}, i.prototype.get = function(e){return this.options[e]}, i.prototype.set = function(e, t){this.options[e] = t}, i}), t.define("select2/core", ["jquery", "./options", "./utils", "./keys"], function(e, t, n, r){var i = function(e, r){null != n.GetData(e[0], "select2") && n.GetData(e[0], "select2").destroy(), this.$element = e, this.id = this._generateId(e), r = r || {}, this.options = new t(r, e), i.__super__.constructor.call(this); var o = e.attr("tabindex") || 0; n.StoreData(e[0], "old-tabindex", o), e.attr("tabindex", "-1"); var a = this.options.get("dataAdapter"); this.dataAdapter = new a(e, this.options); var s = this.render(); this._placeContainer(s); var l = this.options.get("selectionAdapter"); this.selection = new l(e, this.options), this.$selection = this.selection.render(), this.selection.position(this.$selection, s); var c = this.options.get("dropdownAdapter"); this.dropdown = new c(e, this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(this.$dropdown, s); var u = this.options.get("resultsAdapter"); this.results = new u(e, this.options, this.dataAdapter), this.$results = this.results.render(), this.results.position(this.$results, this.$dropdown); var d = this; this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current(function(e){d.trigger("selection:update", {data:e})}), e.addClass("select2-hidden-accessible"), e.attr("aria-hidden", "true"), this._syncAttributes(), n.StoreData(e[0], "select2", this), e.data("select2", this)}; return n.Extend(i, n.Observable), i.prototype._generateId = function(e){var t = ""; return t = null != e.attr("id")?e.attr("id"):null != e.attr("name")?e.attr("name") + "-" + n.generateChars(2):n.generateChars(4), t = t.replace(/(:|\.|\[|\]|,)/g, ""), t = "select2-" + t}, i.prototype._placeContainer = function(e){e.insertAfter(this.$element); var t = this._resolveWidth(this.$element, this.options.get("width")); null != t && e.css("width", t)}, i.prototype._resolveWidth = function(e, t){var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if ("resolve" == t){var r = this._resolveWidth(e, "style"); return null != r?r:this._resolveWidth(e, "element")}if ("element" == t){var i = e.outerWidth(!1); return i <= 0?"auto":i + "px"}if ("style" == t){var o = e.attr("style"); if ("string" != typeof o)return null; for (var a = o.split(";"), s = 0, l = a.length; s < l; s += 1){var c = a[s].replace(/\s/g, ""), u = c.match(n); if (null !== u && u.length >= 1)return u[1]}return null}return t}, i.prototype._bindAdapters = function(){this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container)}, i.prototype._registerDomEvents = function(){var t = this; this.$element.on("change.select2", function(){t.dataAdapter.current(function(e){t.trigger("selection:update", {data:e})})}), this.$element.on("focus.select2", function(e){t.trigger("focus", e)}), this._syncA = n.bind(this._syncAttributes, this), this._syncS = n.bind(this._syncSubtree, this), this.$element[0].attachEvent && this.$element[0].attachEvent("onpropertychange", this._syncA); var r = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; null != r?(this._observer = new r(function(n){e.each(n, t._syncA), e.each(n, t._syncS)}), this._observer.observe(this.$element[0], {attributes:!0, childList:!0, subtree:!1})):this.$element[0].addEventListener && (this.$element[0].addEventListener("DOMAttrModified", t._syncA, !1), this.$element[0].addEventListener("DOMNodeInserted", t._syncS, !1), this.$element[0].addEventListener("DOMNodeRemoved", t._syncS, !1))}, i.prototype._registerDataEvents = function(){var e = this; this.dataAdapter.on("*", function(t, n){e.trigger(t, n)})}, i.prototype._registerSelectionEvents = function(){var t = this, n = ["toggle", "focus"]; this.selection.on("toggle", function(){t.toggleDropdown()}), this.selection.on("focus", function(e){t.focus(e)}), this.selection.on("*", function(r, i){ - 1 === e.inArray(r, n) && t.trigger(r, i)})}, i.prototype._registerDropdownEvents = function(){var e = this; this.dropdown.on("*", function(t, n){e.trigger(t, n)})}, i.prototype._registerResultsEvents = function(){var e = this; this.results.on("*", function(t, n){e.trigger(t, n)})}, i.prototype._registerEvents = function(){var e = this; this.on("open", function(){e.$container.addClass("select2-container--open")}), this.on("close", function(){e.$container.removeClass("select2-container--open")}), this.on("enable", function(){e.$container.removeClass("select2-container--disabled")}), this.on("disable", function(){e.$container.addClass("select2-container--disabled")}), this.on("blur", function(){e.$container.removeClass("select2-container--focus")}), this.on("query", function(t){e.isOpen() || e.trigger("open", {}), this.dataAdapter.query(t, function(n){e.trigger("results:all", {data:n, query:t})})}), this.on("query:append", function(t){this.dataAdapter.query(t, function(n){e.trigger("results:append", {data:n, query:t})})}), this.on("keypress", function(t){var n = t.which; e.isOpen()?n === r.ESC || n === r.TAB || n === r.UP && t.altKey?(e.close(), t.preventDefault()):n === r.ENTER?(e.trigger("results:select", {}), t.preventDefault()):n === r.SPACE && t.ctrlKey?(e.trigger("results:toggle", {}), t.preventDefault()):n === r.UP?(e.trigger("results:previous", {}), t.preventDefault()):n === r.DOWN && (e.trigger("results:next", {}), t.preventDefault()):(n === r.ENTER || n === r.SPACE || n === r.DOWN && t.altKey) && (e.open(), t.preventDefault())})}, i.prototype._syncAttributes = function(){this.options.set("disabled", this.$element.prop("disabled")), this.options.get("disabled")?(this.isOpen() && this.close(), this.trigger("disable", {})):this.trigger("enable", {})}, i.prototype._syncSubtree = function(e, t){var n = !1, r = this; if (!e || !e.target || "OPTION" === e.target.nodeName || "OPTGROUP" === e.target.nodeName){if (t)if (t.addedNodes && t.addedNodes.length > 0)for (var i = 0; i < t.addedNodes.length; i++){var o = t.addedNodes[i]; o.selected && (n = !0)} else t.removedNodes && t.removedNodes.length > 0 && (n = !0); else n = !0; n && this.dataAdapter.current(function(e){r.trigger("selection:update", {data:e})})}}, i.prototype.trigger = function(e, t){var n = i.__super__.trigger, r = {open:"opening", close:"closing", select:"selecting", unselect:"unselecting", clear:"clearing"}; if (void 0 === t && (t = {}), e in r){var o = r[e], a = {prevented:!1, name:e, args:t}; if (n.call(this, o, a), a.prevented)return void(t.prevented = !0)}n.call(this, e, t)}, i.prototype.toggleDropdown = function(){this.options.get("disabled") || (this.isOpen()?this.close():this.open())}, i.prototype.open = function(){this.isOpen() || this.trigger("query", {})}, i.prototype.close = function(){this.isOpen() && this.trigger("close", {})}, i.prototype.isOpen = function(){return this.$container.hasClass("select2-container--open")}, i.prototype.hasFocus = function(){return this.$container.hasClass("select2-container--focus")}, i.prototype.focus = function(e){this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {}))}, i.prototype.enable = function(e){this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'), null != e && 0 !== e.length || (e = [!0]); var t = !e[0]; this.$element.prop("disabled", t)},
          i.prototype.data = function(){this.options.get("debug") && arguments.length > 0 && window.console && console.warn && console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.'); var e = []; return this.dataAdapter.current(function(t){e = t}), e}, i.prototype.val = function(t){if (this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'), null == t || 0 === t.length)return this.$element.val(); var n = t[0]; e.isArray(n) && (n = e.map(n, function(e){return e.toString()})), this.$element.val(n).trigger("change")}, i.prototype.destroy = function(){this.$container.remove(), this.$element[0].detachEvent && this.$element[0].detachEvent("onpropertychange", this._syncA), null != this._observer?(this._observer.disconnect(), this._observer = null):this.$element[0].removeEventListener && (this.$element[0].removeEventListener("DOMAttrModified", this._syncA, !1), this.$element[0].removeEventListener("DOMNodeInserted", this._syncS, !1), this.$element[0].removeEventListener("DOMNodeRemoved", this._syncS, !1)), this._syncA = null, this._syncS = null, this.$element.off(".select2"), this.$element.attr("tabindex", n.GetData(this.$element[0], "old-tabindex")), this.$element.removeClass("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), n.RemoveData(this.$element[0]), this.$element.removeData("select2"), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null}, i.prototype.render = function(){var t = e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>'); return t.attr("dir", this.options.get("dir")), this.$container = t, this.$container.addClass("select2-container--" + this.options.get("theme")), n.StoreData(t[0], "element", this.$element), t}, i}), t.define("jquery-mousewheel", ["jquery"], function(e){return e}), t.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], function(e, t, n, r, i){if (null == e.fn.select2){var o = ["open", "close", "destroy"]; e.fn.select2 = function(t){if ("object" == typeof (t = t || {}))return this.each(function(){var r = e.extend(!0, {}, t); new n(e(this), r)}), this; if ("string" == typeof t){var r, a = Array.prototype.slice.call(arguments, 1); return this.each(function(){var e = i.GetData(this, "select2"); null == e && window.console && console.error && console.error("The select2('" + t + "') method was called on an element that is not using Select2."), r = e[t].apply(e, a)}), e.inArray(t, o) > - 1?this:r}throw new Error("Invalid arguments for Select2: " + t)}}return null == e.fn.select2.defaults && (e.fn.select2.defaults = r), n}), {define:t.define, require:t.require}}(), n = t.require("jquery.select2"); return e.fn.select2.amd = t, n}), function(e){"use strict"; "function" == typeof define && define.amd?define(["jquery"], function(t){return e(t, window, document)}):"object" == typeof exports?module.exports = function(t, n){return t || (t = window), n || (n = "undefined" != typeof window?require("jquery"):require("jquery")(t)), e(n, t, t.document)}:e(jQuery, window, document)}(function(e, t, n, r){"use strict"; function i(t){var n, r, o = "a aa ai ao as b fn i m o s ", a = {}; e.each(t, function(e, s){(n = e.match(/^([^A-Z]+?)([A-Z])/)) && - 1 !== o.indexOf(n[1] + " ") && (r = e.replace(n[0], n[2].toLowerCase()), a[r] = e, "o" === n[1] && i(t[e]))}), t._hungarianMap = a}function o(t, n, a){t._hungarianMap || i(t); var s; e.each(n, function(i, l){(s = t._hungarianMap[i]) === r || !a && n[s] !== r || ("o" === s.charAt(0)?(n[s] || (n[s] = {}), e.extend(!0, n[s], n[i]), o(t[s], n[s], a)):n[s] = n[i])})}function a(e){var t = Xe.defaults.oLanguage, n = e.sZeroRecords; !e.sEmptyTable && n && "No data available in table" === t.sEmptyTable && je(e, e, "sZeroRecords", "sEmptyTable"), !e.sLoadingRecords && n && "Loading..." === t.sLoadingRecords && je(e, e, "sZeroRecords", "sLoadingRecords"), e.sInfoThousands && (e.sThousands = e.sInfoThousands); var r = e.sDecimal; r && We(r)}function s(e){ft(e, "ordering", "bSort"), ft(e, "orderMulti", "bSortMulti"), ft(e, "orderClasses", "bSortClasses"), ft(e, "orderCellsTop", "bSortCellsTop"), ft(e, "order", "aaSorting"), ft(e, "orderFixed", "aaSortingFixed"), ft(e, "paging", "bPaginate"), ft(e, "pagingType", "sPaginationType"), ft(e, "pageLength", "iDisplayLength"), ft(e, "searching", "bFilter"), "boolean" == typeof e.sScrollX && (e.sScrollX = e.sScrollX?"100%":""), "boolean" == typeof e.scrollX && (e.scrollX = e.scrollX?"100%":""); var t = e.aoSearchCols; if (t)for (var n = 0, r = t.length; n < r; n++)t[n] && o(Xe.models.oSearch, t[n])}function l(t){ft(t, "orderable", "bSortable"), ft(t, "orderData", "aDataSort"), ft(t, "orderSequence", "asSorting"), ft(t, "orderDataType", "sortDataType"); var n = t.aDataSort; n && !e.isArray(n) && (t.aDataSort = [n])}function c(n){if (!Xe.__browser){var r = {}; Xe.__browser = r; var i = e("<div/>").css({position:"fixed", top:0, left: - 1 * e(t).scrollLeft(), height:1, width:1, overflow:"hidden"}).append(e("<div/>").css({position:"absolute", top:1, left:1, width:100, overflow:"scroll"}).append(e("<div/>").css({width:"100%", height:10}))).appendTo("body"), o = i.children(), a = o.children(); r.barWidth = o[0].offsetWidth - o[0].clientWidth, r.bScrollOversize = 100 === a[0].offsetWidth && 100 !== o[0].clientWidth, r.bScrollbarLeft = 1 !== Math.round(a.offset().left), r.bBounding = !!i[0].getBoundingClientRect().width, i.remove()}e.extend(n.oBrowser, Xe.__browser), n.oScroll.iBarWidth = Xe.__browser.barWidth}function u(e, t, n, i, o, a){var s, l = i, c = !1; for (n !== r && (s = n, c = !0); l !== o; )e.hasOwnProperty(l) && (s = c?t(s, e[l], l, e):e[l], c = !0, l += a); return s}function d(t, r){var i = Xe.defaults.column, o = t.aoColumns.length, a = e.extend({}, Xe.models.oColumn, i, {nTh:r || n.createElement("th"), sTitle:i.sTitle?i.sTitle:r?r.innerHTML:"", aDataSort:i.aDataSort?i.aDataSort:[o], mData:i.mData?i.mData:o, idx:o}); t.aoColumns.push(a); var s = t.aoPreSearchCols; s[o] = e.extend({}, Xe.models.oSearch, s[o]), h(t, o, e(r).data())}function h(t, n, i){var a = t.aoColumns[n], s = t.oClasses, c = e(a.nTh); if (!a.sWidthOrig){a.sWidthOrig = c.attr("width") || null; var u = (c.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); u && (a.sWidthOrig = u[1])}i !== r && null !== i && (l(i), o(Xe.defaults.column, i), i.mDataProp === r || i.mData || (i.mData = i.mDataProp), i.sType && (a._sManualType = i.sType), i.className && !i.sClass && (i.sClass = i.className), e.extend(a, i), je(a, i, "sWidth", "sWidthOrig"), i.iDataSort !== r && (a.aDataSort = [i.iDataSort]), je(a, i, "aDataSort")); var d = a.mData, h = $(d), f = a.mRender?$(a.mRender):null, p = function(e){return"string" == typeof e && - 1 !== e.indexOf("@")}; a._bAttrSrc = e.isPlainObject(d) && (p(d.sort) || p(d.type) || p(d.filter)), a._setter = null, a.fnGetData = function(e, t, n){var i = h(e, t, r, n); return f && t?f(i, t, e, n):i}, a.fnSetData = function(e, t, n){return A(d)(e, t, n)}, "number" != typeof d && (t._rowReadObject = !0), t.oFeatures.bSort || (a.bSortable = !1, c.addClass(s.sSortableNone)); var g = - 1 !== e.inArray("asc", a.asSorting), v = - 1 !== e.inArray("desc", a.asSorting); a.bSortable && (g || v)?g && !v?(a.sSortingClass = s.sSortableAsc, a.sSortingClassJUI = s.sSortJUIAscAllowed):!g && v?(a.sSortingClass = s.sSortableDesc, a.sSortingClassJUI = s.sSortJUIDescAllowed):(a.sSortingClass = s.sSortable, a.sSortingClassJUI = s.sSortJUI):(a.sSortingClass = s.sSortableNone, a.sSortingClassJUI = "")}function f(e){if (!1 !== e.oFeatures.bAutoWidth){var t = e.aoColumns; me(e); for (var n = 0, r = t.length; n < r; n++)t[n].nTh.style.width = t[n].sWidth}var i = e.oScroll; "" === i.sY && "" === i.sX || ge(e), Pe(e, null, "column-sizing", [e])}function p(e, t){var n = m(e, "bVisible"); return"number" == typeof n[t]?n[t]:null}function g(t, n){var r = m(t, "bVisible"), i = e.inArray(n, r); return - 1 !== i?i:null}function v(t){var n = 0; return e.each(t.aoColumns, function(t, r){r.bVisible && "none" !== e(r.nTh).css("display") && n++}), n}function m(t, n){var r = []; return e.map(t.aoColumns, function(e, t){e[n] && r.push(t)}), r}function y(e){var t, n, i, o, a, s, l, c, u, d = e.aoColumns, h = e.aoData, f = Xe.ext.type.detect; for (t = 0, n = d.length; t < n; t++)if (l = d[t], u = [], !l.sType && l._sManualType)l.sType = l._sManualType; else if (!l.sType){for (i = 0, o = f.length; i < o; i++){for (a = 0, s = h.length; a < s && (u[a] === r && (u[a] = C(e, a, t, "type")), (c = f[i](u[a], e)) || i === f.length - 1) && "html" !== c; a++); if (c){l.sType = c; break}}l.sType || (l.sType = "string")}}function b(t, n, i, o){var a, s, l, c, u, h, f, p = t.aoColumns; if (n)for (a = n.length - 1; a >= 0; a--){f = n[a]; var g = f.targets !== r?f.targets:f.aTargets; for (e.isArray(g) || (g = [g]), l = 0, c = g.length; l < c; l++)if ("number" == typeof g[l] && g[l] >= 0){for (; p.length <= g[l]; )d(t); o(g[l], f)} else if ("number" == typeof g[l] && g[l] < 0)o(p.length + g[l], f); else if ("string" == typeof g[l])for (u = 0, h = p.length; u < h; u++)("_all" == g[l] || e(p[u].nTh).hasClass(g[l])) && o(u, f)}if (i)for (a = 0, s = i.length; a < s; a++)o(a, i[a])}function w(t, n, i, o){var a = t.aoData.length, s = e.extend(!0, {}, Xe.models.oRow, {src:i?"dom":"data", idx:a}); s._aData = n, t.aoData.push(s); for (var l = t.aoColumns, c = 0, u = l.length; c < u; c++)l[c].sType = null; t.aiDisplayMaster.push(a); var d = t.rowIdFn(n); return d !== r && (t.aIds[d] = s), !i && t.oFeatures.bDeferRender || O(t, a, i, o), a}function x(t, n){var r; return n instanceof e || (n = e(n)), n.map(function(e, n){return r = j(t, n), w(t, r.data, n, r.cells)})}function S(e, t){return t._DT_RowIndex !== r?t._DT_RowIndex:null}function T(t, n, r){return e.inArray(r, t.aoData[n].anCells)}function C(e, t, n, i){var o = e.iDraw, a = e.aoColumns[n], s = e.aoData[t]._aData, l = a.sDefaultContent, c = a.fnGetData(s, i, {settings:e, row:t, col:n}); if (c === r)return e.iDrawError != o && null === l && (Le(e, 0, "Requested unknown parameter " + ("function" == typeof a.mData?"{function}":"'" + a.mData + "'") + " for row " + t + ", column " + n, 4), e.iDrawError = o), l; if (c !== s && null !== c || null === l || i === r){if ("function" == typeof c)return c.call(s)} else c = l; return null === c && "display" == i?"":c}function D(e, t, n, r){var i = e.aoColumns[n], o = e.aoData[t]._aData; i.fnSetData(o, r, {settings:e, row:t, col:n})}function _(t){return e.map(t.match(/(\\.|[^\.])+/g) || [""], function(e){return e.replace(/\\\./g, ".")})}function $(t){if (e.isPlainObject(t)){var n = {}; return e.each(t, function(e, t){t && (n[e] = $(t))}), function(e, t, i, o){var a = n[t] || n._; return a !== r?a(e, t, i, o):e}}if (null === t)return function(e){return e}; if ("function" == typeof t)return function(e, n, r, i){return t(e, n, r, i)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){return e[t]}; var i = function(t, n, o){var a, s, l, c; if ("" !== o)for (var u = _(o), d = 0, h = u.length; d < h; d++){if (a = u[d].match(pt), s = u[d].match(gt), a){if (u[d] = u[d].replace(pt, ""), "" !== u[d] && (t = t[u[d]]), l = [], u.splice(0, d + 1), c = u.join("."), e.isArray(t))for (var f = 0, p = t.length; f < p; f++)l.push(i(t[f], n, c)); var g = a[0].substring(1, a[0].length - 1); t = "" === g?l:l.join(g); break}if (s)u[d] = u[d].replace(gt, ""), t = t[u[d]](); else{if (null === t || t[u[d]] === r)return r; t = t[u[d]]}}return t}; return function(e, n){return i(e, n, t)}}function A(t){if (e.isPlainObject(t))return A(t._); if (null === t)return function(){}; if ("function" == typeof t)return function(e, n, r){t(e, "set", n, r)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){e[t] = n}; var n = function(t, i, o){for (var a, s, l, c, u, d = _(o), h = d[d.length - 1], f = 0, p = d.length - 1; f < p; f++){if (s = d[f].match(pt), l = d[f].match(gt), s){if (d[f] = d[f].replace(pt, ""), t[d[f]] = [], a = d.slice(), a.splice(0, f + 1), u = a.join("."), e.isArray(i))for (var g = 0, v = i.length; g < v; g++)c = {}, n(c, i[g], u), t[d[f]].push(c); else t[d[f]] = i; return}l && (d[f] = d[f].replace(gt, ""), t = t[d[f]](i)), null !== t[d[f]] && t[d[f]] !== r || (t[d[f]] = {}), t = t[d[f]]}h.match(gt)?t = t[h.replace(gt, "")](i):t[h.replace(pt, "")] = i}; return function(e, r){return n(e, r, t)}}function E(e){return st(e.aoData, "_aData")}function I(e){e.aoData.length = 0, e.aiDisplayMaster.length = 0, e.aiDisplay.length = 0, e.aIds = {}}function k(e, t, n){for (var i = - 1, o = 0, a = e.length; o < a; o++)e[o] == t?i = o:e[o] > t && e[o]--; - 1 != i && n === r && e.splice(i, 1)}function L(e, t, n, i){var o, a, s = e.aoData[t], l = function(n, r){for (; n.childNodes.length; )n.removeChild(n.firstChild); n.innerHTML = C(e, t, r, "display")}; if ("dom" !== n && (n && "auto" !== n || "dom" !== s.src)){var c = s.anCells; if (c)if (i !== r)l(c[i], i); else for (o = 0, a = c.length; o < a; o++)l(c[o], o)} else s._aData = j(e, s, i, i === r?r:s._aData).data; s._aSortData = null, s._aFilterData = null; var u = e.aoColumns; if (i !== r)u[i].sType = null; else{for (o = 0, a = u.length; o < a; o++)u[o].sType = null; N(e, s)}}function j(t, n, i, o){var a, s, l, c = [], u = n.firstChild, d = 0, h = t.aoColumns, f = t._rowReadObject; o = o !== r?o:f?{}:[]; var p = function(e, t){if ("string" == typeof e){var n = e.indexOf("@"); if ( - 1 !== n){var r = e.substring(n + 1); A(e)(o, t.getAttribute(r))}}}, g = function(t){if (i === r || i === d)if (s = h[d], l = e.trim(t.innerHTML), s && s._bAttrSrc){var n = A(s.mData._); n(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)} else f?(s._setter || (s._setter = A(s.mData)), s._setter(o, l)):o[d] = l; d++}; if (u)for (; u; )a = u.nodeName.toUpperCase(), "TD" != a && "TH" != a || (g(u), c.push(u)), u = u.nextSibling; else{c = n.anCells; for (var v = 0, m = c.length; v < m; v++)g(c[v])}var y = n.firstChild?n:n.nTr; if (y){var b = y.getAttribute("id"); b && A(t.rowId)(o, b)}return{data:o, cells:c}}function O(t, r, i, o){var a, s, l, c, u, d = t.aoData[r], h = d._aData, f = []; if (null === d.nTr){for (a = i || n.createElement("tr"), d.nTr = a, d.anCells = f, a._DT_RowIndex = r, N(t, d), c = 0, u = t.aoColumns.length; c < u; c++)l = t.aoColumns[c], s = i?o[c]:n.createElement(l.sCellType), s._DT_CellIndex = {row:r, column:c}, f.push(s), i && !l.mRender && l.mData === c || e.isPlainObject(l.mData) && l.mData._ === c + ".display" || (s.innerHTML = C(t, r, c, "display")), l.sClass && (s.className += " " + l.sClass), l.bVisible && !i?a.appendChild(s):!l.bVisible && i && s.parentNode.removeChild(s), l.fnCreatedCell && l.fnCreatedCell.call(t.oInstance, s, C(t, r, c), h, r, c); Pe(t, "aoRowCreatedCallback", null, [a, h, r])}d.nTr.setAttribute("role", "row")}function N(t, n){var r = n.nTr, i = n._aData; if (r){var o = t.rowIdFn(i); if (o && (r.id = o), i.DT_RowClass){var a = i.DT_RowClass.split(" "); n.__rowc = n.__rowc?ht(n.__rowc.concat(a)):a, e(r).removeClass(n.__rowc.join(" ")).addClass(i.DT_RowClass)}i.DT_RowAttr && e(r).attr(i.DT_RowAttr), i.DT_RowData && e(r).data(i.DT_RowData)}}function R(t){var n, r, i, o, a, s = t.nTHead, l = t.nTFoot, c = 0 === e("th, td", s).length, u = t.oClasses, d = t.aoColumns; for (c && (o = e("<tr/>").appendTo(s)), n = 0, r = d.length; n < r; n++)a = d[n], i = e(a.nTh).addClass(a.sClass), c && i.appendTo(o), t.oFeatures.bSort && (i.addClass(a.sSortingClass), !1 !== a.bSortable && (i.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), _e(t, a.nTh, n))), a.sTitle != i[0].innerHTML && i.html(a.sTitle), He(t, "header")(t, i, a, u); if (c && M(t.aoHeader, s), e(s).find(">tr").attr("role", "row"), e(s).find(">tr>th, >tr>td").addClass(u.sHeaderTH), e(l).find(">tr>th, >tr>td").addClass(u.sFooterTH), null !== l){var h = t.aoFooter[0]; for (n = 0, r = h.length; n < r; n++)a = d[n], a.nTf = h[n].cell, a.sClass && e(a.nTf).addClass(a.sClass)}}function P(t, n, i){var o, a, s, l, c, u, d, h, f, p = [], g = [], v = t.aoColumns.length; if (n){for (i === r && (i = !1), o = 0, a = n.length; o < a; o++){for (p[o] = n[o].slice(), p[o].nTr = n[o].nTr, s = v - 1; s >= 0; s--)t.aoColumns[s].bVisible || i || p[o].splice(s, 1); g.push([])}for (o = 0, a = p.length; o < a; o++){if (d = p[o].nTr)for (; u = d.firstChild; )d.removeChild(u); for (s = 0, l = p[o].length; s < l; s++)if (h = 1, f = 1, g[o][s] === r){for (d.appendChild(p[o][s].cell), g[o][s] = 1; p[o + h] !== r && p[o][s].cell == p[o + h][s].cell; )g[o + h][s] = 1, h++; for (; p[o][s + f] !== r && p[o][s].cell == p[o][s + f].cell; ){for (c = 0; c < h; c++)g[o + c][s + f] = 1; f++}e(p[o][s].cell).attr("rowspan", h).attr("colspan", f)}}}}function F(t){var n = Pe(t, "aoPreDrawCallback", "preDraw", [t]); if ( - 1 !== e.inArray(!1, n))return void fe(t, !1); var i = [], o = 0, a = t.asStripeClasses, s = a.length, l = (t.aoOpenRows.length, t.oLanguage), c = t.iInitDisplayStart, u = "ssp" == qe(t), d = t.aiDisplay; t.bDrawing = !0, c !== r && - 1 !== c && (t._iDisplayStart = u?c:c >= t.fnRecordsDisplay()?0:c, t.iInitDisplayStart = - 1); var h = t._iDisplayStart, f = t.fnDisplayEnd(); if (t.bDeferLoading)t.bDeferLoading = !1, t.iDraw++, fe(t, !1); else if (u){if (!t.bDestroying && !B(t))return} else t.iDraw++; if (0 !== d.length)for (var p = u?0:h, g = u?t.aoData.length:f, m = p; m < g; m++){var y = d[m], b = t.aoData[y]; null === b.nTr && O(t, y); var w = b.nTr; if (0 !== s){var x = a[o % s]; b._sRowStripe != x && (e(w).removeClass(b._sRowStripe).addClass(x), b._sRowStripe = x)}Pe(t, "aoRowCallback", null, [w, b._aData, o, m]), i.push(w), o++} else{var S = l.sZeroRecords; 1 == t.iDraw && "ajax" == qe(t)?S = l.sLoadingRecords:l.sEmptyTable && 0 === t.fnRecordsTotal() && (S = l.sEmptyTable), i[0] = e("<tr/>", {class:s?a[0]:""}).append(e("<td />", {valign:"top", colSpan:v(t), class:t.oClasses.sRowEmpty}).html(S))[0]}Pe(t, "aoHeaderCallback", "header", [e(t.nTHead).children("tr")[0], E(t), h, f, d]), Pe(t, "aoFooterCallback", "footer", [e(t.nTFoot).children("tr")[0], E(t), h, f, d]); var T = e(t.nTBody); T.children().detach(), T.append(e(i)), Pe(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1}function H(e, t){var n = e.oFeatures, r = n.bSort, i = n.bFilter; r && Te(e), i?J(e, e.oPreviousSearch):e.aiDisplay = e.aiDisplayMaster.slice(), !0 !== t && (e._iDisplayStart = 0), e._drawHold = t, F(e), e._drawHold = !1}function q(t){var n = t.oClasses, r = e(t.nTable), i = e("<div/>").insertBefore(r), o = t.oFeatures, a = e("<div/>", {id:t.sTableId + "_wrapper", class:n.sWrapper + (t.nTFoot?"":" " + n.sNoFooter)}); t.nHolding = i[0], t.nTableWrapper = a[0], t.nTableReinsertBefore = t.nTable.nextSibling; for (var s, l, c, u, d, h, f = t.sDom.split(""), p = 0; p < f.length; p++){if (s = null, "<" == (l = f[p])){if (c = e("<div/>")[0], "'" == (u = f[p + 1]) || '"' == u){for (d = "", h = 2; f[p + h] != u; )d += f[p + h], h++; if ("H" == d?d = n.sJUIHeader:"F" == d && (d = n.sJUIFooter), - 1 != d.indexOf(".")){var g = d.split("."); c.id = g[0].substr(1, g[0].length - 1), c.className = g[1]} else"#" == d.charAt(0)?c.id = d.substr(1, d.length - 1):c.className = d; p += h}a.append(c), a = e(c)} else if (">" == l)a = a.parent(); else if ("l" == l && o.bPaginate && o.bLengthChange)s = ce(t); else if ("f" == l && o.bFilter)s = X(t); else if ("r" == l && o.bProcessing)s = he(t); else if ("t" == l)s = pe(t); else if ("i" == l && o.bInfo)s = re(t); else if ("p" == l && o.bPaginate)s = ue(t); else if (0 !== Xe.ext.feature.length)for (var v = Xe.ext.feature, m = 0, y = v.length; m < y; m++)if (l == v[m].cFeature){s = v[m].fnInit(t); break}if (s){var b = t.aanFeatures; b[l] || (b[l] = []), b[l].push(s), a.append(s)}}i.replaceWith(a), t.nHolding = null}function M(t, n){var r, i, o, a, s, l, c, u, d, h, f, p = e(n).children("tr"); for (t.splice(0, t.length), o = 0, l = p.length; o < l; o++)t.push([]); for (o = 0, l = p.length; o < l; o++)for (r = p[o], u = 0, i = r.firstChild; i; ){if ("TD" == i.nodeName.toUpperCase() || "TH" == i.nodeName.toUpperCase())for (d = 1 * i.getAttribute("colspan"), h = 1 * i.getAttribute("rowspan"), d = d && 0 !== d && 1 !== d?d:1, h = h && 0 !== h && 1 !== h?h:1, c = function(e, t, n){for (var r = e[t]; r[n]; )n++; return n}(t, o, u), f = 1 === d, s = 0; s < d; s++)for (a = 0; a < h; a++)t[o + a][c + s] = {cell:i, unique:f}, t[o + a].nTr = r; i = i.nextSibling}}function W(e, t, n){var r = []; n || (n = e.aoHeader, t && (n = [], M(n, t))); for (var i = 0, o = n.length; i < o; i++)for (var a = 0, s = n[i].length; a < s; a++)!n[i][a].unique || r[a] && e.bSortCellsTop || (r[a] = n[i][a].cell); return r}function U(t, n, r){if (Pe(t, "aoServerParams", "serverParams", [n]), n && e.isArray(n)){var i = {}, o = /(.*?)\[\]$/; e.each(n, function(e, t){var n = t.name.match(o); if (n){var r = n[0]; i[r] || (i[r] = []), i[r].push(t.value)} else i[t.name] = t.value}), n = i}var a, s = t.ajax, l = t.oInstance, c = function(e){Pe(t, null, "xhr", [t, e, t.jqXHR]), r(e)}; if (e.isPlainObject(s) && s.data){a = s.data; var u = e.isFunction(a)?a(n, t):a; n = e.isFunction(a) && u?u:e.extend(!0, n, u), delete s.data}var d = {data:n, success:function(e){var n = e.error || e.sError; n && Le(t, 0, n), t.json = e, c(e)}, dataType:"json", cache:!1, type:t.sServerMethod, error:function(n, r, i){var o = Pe(t, null, "xhr", [t, null, t.jqXHR]); - 1 === e.inArray(!0, o) && ("parsererror" == r?Le(t, 0, "Invalid JSON response", 1):4 === n.readyState && Le(t, 0, "Ajax error", 7)), fe(t, !1)}}; t.oAjaxData = n, Pe(t, null, "preXhr", [t, n]), t.fnServerData?t.fnServerData.call(l, t.sAjaxSource, e.map(n, function(e, t){return{name:t, value:e}}), c, t):t.sAjaxSource || "string" == typeof s?t.jqXHR = e.ajax(e.extend(d, {url:s || t.sAjaxSource})):e.isFunction(s)?t.jqXHR = s.call(l, n, c, t):(t.jqXHR = e.ajax(e.extend(d, s)), s.data = a)}function B(e){return!e.bAjaxDataGet || (e.iDraw++, fe(e, !0), U(e, z(e), function(t){G(e, t)}), !1)}function z(t){var n, r, i, o, a = t.aoColumns, s = a.length, l = t.oFeatures, c = t.oPreviousSearch, u = t.aoPreSearchCols, d = [], h = Se(t), f = t._iDisplayStart, p = !1 !== l.bPaginate?t._iDisplayLength: - 1, g = function(e, t){d.push({name:e, value:t})}; g("sEcho", t.iDraw), g("iColumns", s), g("sColumns", st(a, "sName").join(",")), g("iDisplayStart", f), g("iDisplayLength", p); var v = {draw:t.iDraw, columns:[], order:[], start:f, length:p, search:{value:c.sSearch, regex:c.bRegex}}; for (n = 0; n < s; n++)i = a[n], o = u[n], r = "function" == typeof i.mData?"function":i.mData, v.columns.push({data:r, name:i.sName, searchable:i.bSearchable, orderable:i.bSortable, search:{value:o.sSearch, regex:o.bRegex}}), g("mDataProp_" + n, r), l.bFilter && (g("sSearch_" + n, o.sSearch), g("bRegex_" + n, o.bRegex), g("bSearchable_" + n, i.bSearchable)), l.bSort && g("bSortable_" + n, i.bSortable); l.bFilter && (g("sSearch", c.sSearch), g("bRegex", c.bRegex)), l.bSort && (e.each(h, function(e, t){v.order.push({column:t.col, dir:t.dir}), g("iSortCol_" + e, t.col), g("sSortDir_" + e, t.dir)}), g("iSortingCols", h.length)); var m = Xe.ext.legacy.ajax; return null === m?t.sAjaxSource?d:v:m?d:v}function G(e, t){var n = function(e, n){return t[e] !== r?t[e]:t[n]}, i = V(e, t), o = n("sEcho", "draw"), a = n("iTotalRecords", "recordsTotal"), s = n("iTotalDisplayRecords", "recordsFiltered"); if (o){if (1 * o < e.iDraw)return; e.iDraw = 1 * o}I(e), e._iRecordsTotal = parseInt(a, 10), e._iRecordsDisplay = parseInt(s, 10); for (var l = 0, c = i.length; l < c; l++)w(e, i[l]); e.aiDisplay = e.aiDisplayMaster.slice(), e.bAjaxDataGet = !1, F(e), e._bInitComplete || se(e, t), e.bAjaxDataGet = !0, fe(e, !1)}function V(t, n){var i = e.isPlainObject(t.ajax) && t.ajax.dataSrc !== r?t.ajax.dataSrc:t.sAjaxDataProp; return"data" === i?n.aaData || n[i]:"" !== i?$(i)(n):n}function X(t){var r = t.oClasses, i = t.sTableId, o = t.oLanguage, a = t.oPreviousSearch, s = t.aanFeatures, l = '<input type="search" class="' + r.sFilterInput + '"/>', c = o.sSearch; c = c.match(/_INPUT_/)?c.replace("_INPUT_", l):c + l; var u = e("<div/>", {id:s.f?null:i + "_filter", class:r.sFilter}).append(e("<label/>").append(c)), d = function(){var e = (s.f, this.value?this.value:""); e != a.sSearch && (J(t, {sSearch:e, bRegex:a.bRegex, bSmart:a.bSmart, bCaseInsensitive:a.bCaseInsensitive}), t._iDisplayStart = 0, F(t))}, h = null !== t.searchDelay?t.searchDelay:"ssp" === qe(t)?400:0, f = e("input", u).val(a.sSearch).attr("placeholder", o.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", h?wt(d, h):d).on("keypress.DT", function(e){if (13 == e.keyCode)return!1}).attr("aria-controls", i); return e(t.nTable).on("search.dt.DT", function(e, r){if (t === r)try{f[0] !== n.activeElement && f.val(a.sSearch)} catch (e){}}), u[0]}function J(e, t, n){var i = e.oPreviousSearch, o = e.aoPreSearchCols, a = function(e){i.sSearch = e.sSearch, i.bRegex = e.bRegex, i.bSmart = e.bSmart, i.bCaseInsensitive = e.bCaseInsensitive}, s = function(e){return e.bEscapeRegex !== r?!e.bEscapeRegex:e.bRegex}; if (y(e), "ssp" != qe(e)){K(e, t.sSearch, n, s(t), t.bSmart, t.bCaseInsensitive), a(t); for (var l = 0; l < o.length; l++)Q(e, o[l].sSearch, l, s(o[l]), o[l].bSmart, o[l].bCaseInsensitive); Y(e)} else a(t); e.bFiltered = !0, Pe(e, null, "search", [e])}function Y(t){for (var n, r, i = Xe.ext.search, o = t.aiDisplay, a = 0, s = i.length; a < s; a++){for (var l = [], c = 0, u = o.length; c < u; c++)r = o[c], n = t.aoData[r], i[a](t, n._aFilterData, r, n._aData, c) && l.push(r); o.length = 0, e.merge(o, l)}}function Q(e, t, n, r, i, o){if ("" !== t){for (var a, s = [], l = e.aiDisplay, c = Z(t, r, i, o), u = 0; u < l.length; u++)a = e.aoData[l[u]]._aFilterData[n], c.test(a) && s.push(l[u]); e.aiDisplay = s}}function K(e, t, n, r, i, o){var a, s, l, c = Z(t, r, i, o), u = e.oPreviousSearch.sSearch, d = e.aiDisplayMaster, h = []; if (0 !== Xe.ext.search.length && (n = !0), s = ee(e), t.length <= 0)e.aiDisplay = d.slice(); else{for ((s || n || u.length > t.length || 0 !== t.indexOf(u) || e.bSorted) && (e.aiDisplay = d.slice()), a = e.aiDisplay, l = 0; l < a.length; l++)c.test(e.aoData[a[l]]._sFilterRow) && h.push(a[l]); e.aiDisplay = h}}function Z(t, n, r, i){if (t = n?t:vt(t), r){t = "^(?=.*?" + e.map(t.match(/"[^"]+"|[^ ]+/g) || [""], function(e){if ('"' === e.charAt(0)){var t = e.match(/^"(.*)"$/); e = t?t[1]:e}return e.replace('"', "")}).join(")(?=.*?") + ").*$"}return new RegExp(t, i?"i":"")}function ee(e){var t, n, r, i, o, a, s, l, c = e.aoColumns, u = Xe.ext.type.search, d = !1; for (n = 0, i = e.aoData.length; n < i; n++)if (l = e.aoData[n], !l._aFilterData){for (a = [], r = 0, o = c.length; r < o; r++)t = c[r], t.bSearchable?(s = C(e, n, r, "filter"), u[t.sType] && (s = u[t.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())):s = "", s.indexOf && - 1 !== s.indexOf("&") && (mt.innerHTML = s, s = yt?mt.textContent:mt.innerText), s.replace && (s = s.replace(/[\r\n]/g, "")), a.push(s); l._aFilterData = a, l._sFilterRow = a.join("  "), d = !0}return d}function te(e){return{search:e.sSearch, smart:e.bSmart, regex:e.bRegex, caseInsensitive:e.bCaseInsensitive}}function ne(e){return{sSearch:e.search, bSmart:e.smart, bRegex:e.regex, bCaseInsensitive:e.caseInsensitive}}function re(t){var n = t.sTableId, r = t.aanFeatures.i, i = e("<div/>", {class:t.oClasses.sInfo, id:r?null:n + "_info"}); return r || (t.aoDrawCallback.push({fn:ie, sName:"information"}), i.attr("role", "status").attr("aria-live", "polite"), e(t.nTable).attr("aria-describedby", n + "_info")), i[0]}function ie(t){var n = t.aanFeatures.i; if (0 !== n.length){var r = t.oLanguage, i = t._iDisplayStart + 1, o = t.fnDisplayEnd(), a = t.fnRecordsTotal(), s = t.fnRecordsDisplay(), l = s?r.sInfo:r.sInfoEmpty; s !== a && (l += " " + r.sInfoFiltered), l += r.sInfoPostFix, l = oe(t, l); var c = r.fnInfoCallback; null !== c && (l = c.call(t.oInstance, t, i, o, a, s, l)), e(n).html(l)}}function oe(e, t){var n = e.fnFormatNumber, r = e._iDisplayStart + 1, i = e._iDisplayLength, o = e.fnRecordsDisplay(), a = - 1 === i; return t.replace(/_START_/g, n.call(e, r)).replace(/_END_/g, n.call(e, e.fnDisplayEnd())).replace(/_MAX_/g, n.call(e, e.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(e, o)).replace(/_PAGE_/g, n.call(e, a?1:Math.ceil(r / i))).replace(/_PAGES_/g, n.call(e, a?1:Math.ceil(o / i)))}function ae(e){var t, n, r, i = e.iInitDisplayStart, o = e.aoColumns, a = e.oFeatures, s = e.bDeferLoading; if (!e.bInitialised)return void setTimeout(function(){ae(e)}, 200); for (q(e), R(e), P(e, e.aoHeader), P(e, e.aoFooter), fe(e, !0), a.bAutoWidth && me(e), t = 0, n = o.length; t < n; t++)r = o[t], r.sWidth && (r.nTh.style.width = xe(r.sWidth)); Pe(e, null, "preInit", [e]), H(e); var l = qe(e); ("ssp" != l || s) && ("ajax" == l?U(e, [], function(n){var r = V(e, n); for (t = 0; t < r.length; t++)w(e, r[t]); e.iInitDisplayStart = i, H(e), fe(e, !1), se(e, n)}, e):(fe(e, !1), se(e)))}function se(e, t){e._bInitComplete = !0, (t || e.oInit.aaData) && f(e), Pe(e, null, "plugin-init", [e, t]), Pe(e, "aoInitComplete", "init", [e, t])}function le(e, t){var n = parseInt(t, 10); e._iDisplayLength = n, Fe(e), Pe(e, null, "length", [e, n])}function ce(t){for (var n = t.oClasses, r = t.sTableId, i = t.aLengthMenu, o = e.isArray(i[0]), a = o?i[0]:i, s = o?i[1]:i, l = e("<select/>", {name:r + "_length", "aria-controls":r, class:n.sLengthSelect}), c = 0, u = a.length; c < u; c++)l[0][c] = new Option(s[c], a[c]); var d = e("<div><label/></div>").addClass(n.sLength); return t.aanFeatures.l || (d[0].id = r + "_length"), d.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), e("select", d).val(t._iDisplayLength).on("change.DT", function(n){le(t, e(this).val()), F(t)}), e(t.nTable).on("length.dt.DT", function(n, r, i){t === r && e("select", d).val(i)}), d[0]}function ue(t){var n = t.sPaginationType, r = Xe.ext.pager[n], i = "function" == typeof r, o = function(e){F(e)}, a = e("<div/>").addClass(t.oClasses.sPaging + n)[0], s = t.aanFeatures; return i || r.fnInit(t, a, o), s.p || (a.id = t.sTableId + "_paginate", t.aoDrawCallback.push({fn:function(e){if (i){var t, n, a = e._iDisplayStart, l = e._iDisplayLength, c = e.fnRecordsDisplay(), u = - 1 === l, d = u?0:Math.ceil(a / l), h = u?1:Math.ceil(c / l), f = r(d, h); for (t = 0, n = s.p.length; t < n; t++)He(e, "pageButton")(e, s.p[t], t, f, d, h)} else r.fnUpdate(e, o)}, sName:"pagination"})), a}function de(e, t, n){var r = e._iDisplayStart, i = e._iDisplayLength, o = e.fnRecordsDisplay(); 0 === o || - 1 === i?r = 0:"number" == typeof t?(r = t * i) > o && (r = 0):"first" == t?r = 0:"previous" == t?(r = i >= 0?r - i:0) < 0 && (r = 0):"next" == t?r + i < o && (r += i):"last" == t?r = Math.floor((o - 1) / i) * i:Le(e, 0, "Unknown paging action: " + t, 5); var a = e._iDisplayStart !== r; return e._iDisplayStart = r, a && (Pe(e, null, "page", [e]), n && F(e)), a}function he(t){return e("<div/>", {id:t.aanFeatures.r?null:t.sTableId + "_processing", class:t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function fe(t, n){t.oFeatures.bProcessing && e(t.aanFeatures.r).css("display", n?"block":"none"), Pe(t, null, "processing", [t, n])}function pe(t){var n = e(t.nTable); n.attr("role", "grid"); var r = t.oScroll; if ("" === r.sX && "" === r.sY)return t.nTable; var i = r.sX, o = r.sY, a = t.oClasses, s = n.children("caption"), l = s.length?s[0]._captionSide:null, c = e(n[0].cloneNode(!1)), u = e(n[0].cloneNode(!1)), d = n.children("tfoot"), h = "<div/>", f = function(e){return e?xe(e):null}; d.length || (d = null); var p = e(h, {class:a.sScrollWrapper}).append(e(h, {class:a.sScrollHead}).css({overflow:"hidden", position:"relative", border:0, width:i?f(i):"100%"}).append(e(h, {class:a.sScrollHeadInner}).css({"box-sizing":"content-box", width:r.sXInner || "100%"}).append(c.removeAttr("id").css("margin-left", 0).append("top" === l?s:null).append(n.children("thead"))))).append(e(h, {class:a.sScrollBody}).css({position:"relative", overflow:"auto", width:f(i)}).append(n)); d && p.append(e(h, {class:a.sScrollFoot}).css({overflow:"hidden", border:0, width:i?f(i):"100%"}).append(e(h, {class:a.sScrollFootInner}).append(u.removeAttr("id").css("margin-left", 0).append("bottom" === l?s:null).append(n.children("tfoot"))))); var g = p.children(), v = g[0], m = g[1], y = d?g[2]:null; return i && e(m).on("scroll.DT", function(e){var t = this.scrollLeft; v.scrollLeft = t, d && (y.scrollLeft = t)}), e(m).css(o && r.bCollapse?"max-height":"height", o), t.nScrollHead = v, t.nScrollBody = m, t.nScrollFoot = y, t.aoDrawCallback.push({fn:ge, sName:"scrolling"}), p[0]}function ge(t){var n, i, o, a, s, l, c, u, d, h = t.oScroll, g = h.sX, v = h.sXInner, m = h.sY, y = h.iBarWidth, b = e(t.nScrollHead), w = b[0].style, x = b.children("div"), S = x[0].style, T = x.children("table"), C = t.nScrollBody, D = e(C), _ = C.style, $ = e(t.nScrollFoot), A = $.children("div"), E = A.children("table"), I = e(t.nTHead), k = e(t.nTable), L = k[0], j = L.style, O = t.nTFoot?e(t.nTFoot):null, N = t.oBrowser, R = N.bScrollOversize, P = st(t.aoColumns, "nTh"), F = [], H = [], q = [], M = [], U = function(e){var t = e.style; t.paddingTop = "0", t.paddingBottom = "0", t.borderTopWidth = "0", t.borderBottomWidth = "0", t.height = 0}, B = C.scrollHeight > C.clientHeight; if (t.scrollBarVis !== B && t.scrollBarVis !== r)return t.scrollBarVis = B, void f(t); t.scrollBarVis = B, k.children("thead, tfoot").remove(), O && (l = O.clone().prependTo(k), i = O.find("tr"), a = l.find("tr")), s = I.clone().prependTo(k), n = I.find("tr"), o = s.find("tr"), s.find("th, td").removeAttr("tabindex"), g || (_.width = "100%", b[0].style.width = "100%"), e.each(W(t, s), function(e, n){c = p(t, e), n.style.width = t.aoColumns[c].sWidth}), O && ve(function(e){e.style.width = ""}, a), d = k.outerWidth(), "" === g?(j.width = "100%", R && (k.find("tbody").height() > C.offsetHeight || "scroll" == D.css("overflow-y")) && (j.width = xe(k.outerWidth() - y)), d = k.outerWidth()):"" !== v && (j.width = xe(v), d = k.outerWidth()), ve(U, o), ve(function(t){q.push(t.innerHTML), F.push(xe(e(t).css("width")))}, o), ve(function(t, n){ - 1 !== e.inArray(t, P) && (t.style.width = F[n])}, n), e(o).height(0), O && (ve(U, a), ve(function(t){M.push(t.innerHTML), H.push(xe(e(t).css("width")))}, a), ve(function(e, t){e.style.width = H[t]}, i), e(a).height(0)), ve(function(e, t){e.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + q[t] + "</div>", e.style.width = F[t]}, o), O && ve(function(e, t){e.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + M[t] + "</div>", e.style.width = H[t]}, a), k.outerWidth() < d?(u = C.scrollHeight > C.offsetHeight || "scroll" == D.css("overflow-y")?d + y:d, R && (C.scrollHeight > C.offsetHeight || "scroll" == D.css("overflow-y")) && (j.width = xe(u - y)), "" !== g && "" === v || Le(t, 1, "Possible column misalignment", 6)):u = "100%", _.width = xe(u), w.width = xe(u), O && (t.nScrollFoot.style.width = xe(u)), m || R && (_.height = xe(L.offsetHeight + y)); var z = k.outerWidth(); T[0].style.width = xe(z), S.width = xe(z); var G = k.height() > C.clientHeight || "scroll" == D.css("overflow-y"), V = "padding" + (N.bScrollbarLeft?"Left":"Right"); S[V] = G?y + "px":"0px", O && (E[0].style.width = xe(z), A[0].style.width = xe(z), A[0].style[V] = G?y + "px":"0px"), k.children("colgroup").insertBefore(k.children("thead")), D.scroll(), !t.bSorted && !t.bFiltered || t._drawHold || (C.scrollTop = 0)}function ve(e, t, n){for (var r, i, o = 0, a = 0, s = t.length; a < s; ){for (r = t[a].firstChild, i = n?n[a].firstChild:null; r; )1 === r.nodeType && (n?e(r, i, o):e(r, o), o++), r = r.nextSibling, i = n?i.nextSibling:null; a++}}function me(n){var r, i, o, a = n.nTable, s = n.aoColumns, l = n.oScroll, c = l.sY, u = l.sX, d = l.sXInner, h = s.length, g = m(n, "bVisible"), y = e("th", n.nTHead), b = a.getAttribute("width"), w = a.parentNode, x = !1, S = n.oBrowser, T = S.bScrollOversize, C = a.style.width
          ; for (C && - 1 !== C.indexOf("%") && (b = C), r = 0; r < g.length; r++)i = s[g[r]], null !== i.sWidth && (i.sWidth = ye(i.sWidthOrig, w), x = !0); if (T || !x && !u && !c && h == v(n) && h == y.length)for (r = 0; r < h; r++){var D = p(n, r); null !== D && (s[D].sWidth = xe(y.eq(r).width()))} else{var _ = e(a).clone().css("visibility", "hidden").removeAttr("id"); _.find("tbody tr").remove(); var $ = e("<tr/>").appendTo(_.find("tbody")); for (_.find("thead, tfoot").remove(), _.append(e(n.nTHead).clone()).append(e(n.nTFoot).clone()), _.find("tfoot th, tfoot td").css("width", ""), y = W(n, _.find("thead")[0]), r = 0; r < g.length; r++)i = s[g[r]], y[r].style.width = null !== i.sWidthOrig && "" !== i.sWidthOrig?xe(i.sWidthOrig):"", i.sWidthOrig && u && e(y[r]).append(e("<div/>").css({width:i.sWidthOrig, margin:0, padding:0, border:0, height:1})); if (n.aoData.length)for (r = 0; r < g.length; r++)o = g[r], i = s[o], e(be(n, o)).clone(!1).append(i.sContentPadding).appendTo($); e("[name]", _).removeAttr("name"); var A = e("<div/>").css(u || c?{position:"absolute", top:0, left:0, height:1, right:0, overflow:"hidden"}:{}).append(_).appendTo(w); u && d?_.width(d):u?(_.css("width", "auto"), _.removeAttr("width"), _.width() < w.clientWidth && b && _.width(w.clientWidth)):c?_.width(w.clientWidth):b && _.width(b); var E = 0; for (r = 0; r < g.length; r++){var I = e(y[r]), k = I.outerWidth() - I.width(), L = S.bBounding?Math.ceil(y[r].getBoundingClientRect().width):I.outerWidth(); E += L, s[g[r]].sWidth = xe(L - k)}a.style.width = xe(E), A.remove()}if (b && (a.style.width = xe(b)), (b || u) && !n._reszEvt){var j = function(){e(t).on("resize.DT-" + n.sInstance, wt(function(){f(n)}))}; T?setTimeout(j, 1e3):j(), n._reszEvt = !0}}function ye(t, r){if (!t)return 0; var i = e("<div/>").css("width", xe(t)).appendTo(r || n.body), o = i[0].offsetWidth; return i.remove(), o}function be(t, n){var r = we(t, n); if (r < 0)return null; var i = t.aoData[r]; return i.nTr?i.anCells[n]:e("<td/>").html(C(t, r, n, "display"))[0]}function we(e, t){for (var n, r = - 1, i = - 1, o = 0, a = e.aoData.length; o < a; o++)n = C(e, o, t, "display") + "", n = n.replace(bt, ""), n = n.replace(/&nbsp;/g, " "), n.length > r && (r = n.length, i = o); return i}function xe(e){return null === e?"0px":"number" == typeof e?e < 0?"0px":e + "px":e.match(/\d$/)?e + "px":e}function Se(t){var n, i, o, a, s, l, c, u = [], d = t.aoColumns, h = t.aaSortingFixed, f = e.isPlainObject(h), p = [], g = function(t){t.length && !e.isArray(t[0])?p.push(t):e.merge(p, t)}; for (e.isArray(h) && g(h), f && h.pre && g(h.pre), g(t.aaSorting), f && h.post && g(h.post), n = 0; n < p.length; n++)for (c = p[n][0], a = d[c].aDataSort, i = 0, o = a.length; i < o; i++)s = a[i], l = d[s].sType || "string", p[n]._idx === r && (p[n]._idx = e.inArray(p[n][1], d[s].asSorting)), u.push({src:c, col:s, dir:p[n][1], index:p[n]._idx, type:l, formatter:Xe.ext.type.order[l + "-pre"]}); return u}function Te(e){var t, n, r, i, o, a = [], s = Xe.ext.type.order, l = e.aoData, c = (e.aoColumns, 0), u = e.aiDisplayMaster; for (y(e), o = Se(e), t = 0, n = o.length; t < n; t++)i = o[t], i.formatter && c++, Ae(e, i.col); if ("ssp" != qe(e) && 0 !== o.length){for (t = 0, r = u.length; t < r; t++)a[u[t]] = t; c === o.length?u.sort(function(e, t){var n, r, i, s, c, u = o.length, d = l[e]._aSortData, h = l[t]._aSortData; for (i = 0; i < u; i++)if (c = o[i], n = d[c.col], r = h[c.col], 0 !== (s = n < r? - 1:n > r?1:0))return"asc" === c.dir?s: - s; return n = a[e], r = a[t], n < r? - 1:n > r?1:0}):u.sort(function(e, t){var n, r, i, c, u, d, h = o.length, f = l[e]._aSortData, p = l[t]._aSortData; for (i = 0; i < h; i++)if (u = o[i], n = f[u.col], r = p[u.col], d = s[u.type + "-" + u.dir] || s["string-" + u.dir], 0 !== (c = d(n, r)))return c; return n = a[e], r = a[t], n < r? - 1:n > r?1:0})}e.bSorted = !0}function Ce(e){for (var t, n, r = e.aoColumns, i = Se(e), o = e.oLanguage.oAria, a = 0, s = r.length; a < s; a++){var l = r[a], c = l.asSorting, u = l.sTitle.replace(/<.*?>/g, ""), d = l.nTh; d.removeAttribute("aria-sort"), l.bSortable?(i.length > 0 && i[0].col == a?(d.setAttribute("aria-sort", "asc" == i[0].dir?"ascending":"descending"), n = c[i[0].index + 1] || c[0]):n = c[0], t = u + ("asc" === n?o.sSortAscending:o.sSortDescending)):t = u, d.setAttribute("aria-label", t)}}function De(t, n, i, o){var a, s = t.aoColumns[n], l = t.aaSorting, c = s.asSorting, u = function(t, n){var i = t._idx; return i === r && (i = e.inArray(t[1], c)), i + 1 < c.length?i + 1:n?null:0}; if ("number" == typeof l[0] && (l = t.aaSorting = [l]), i && t.oFeatures.bSortMulti){var d = e.inArray(n, st(l, "0")); - 1 !== d?(a = u(l[d], !0), null === a && 1 === l.length && (a = 0), null === a?l.splice(d, 1):(l[d][1] = c[a], l[d]._idx = a)):(l.push([n, c[0], 0]), l[l.length - 1]._idx = 0)} else l.length && l[0][0] == n?(a = u(l[0]), l.length = 1, l[0][1] = c[a], l[0]._idx = a):(l.length = 0, l.push([n, c[0]]), l[0]._idx = 0); H(t), "function" == typeof o && o(t)}function _e(e, t, n, r){var i = e.aoColumns[n]; Ne(t, {}, function(t){!1 !== i.bSortable && (e.oFeatures.bProcessing?(fe(e, !0), setTimeout(function(){De(e, n, t.shiftKey, r), "ssp" !== qe(e) && fe(e, !1)}, 0)):De(e, n, t.shiftKey, r))})}function $e(t){var n, r, i, o = t.aLastSort, a = t.oClasses.sSortColumn, s = Se(t), l = t.oFeatures; if (l.bSort && l.bSortClasses){for (n = 0, r = o.length; n < r; n++)i = o[n].src, e(st(t.aoData, "anCells", i)).removeClass(a + (n < 2?n + 1:3)); for (n = 0, r = s.length; n < r; n++)i = s[n].src, e(st(t.aoData, "anCells", i)).addClass(a + (n < 2?n + 1:3))}t.aLastSort = s}function Ae(e, t){var n, r = e.aoColumns[t], i = Xe.ext.order[r.sSortDataType]; i && (n = i.call(e.oInstance, e, t, g(e, t))); for (var o, a, s = Xe.ext.type.order[r.sType + "-pre"], l = 0, c = e.aoData.length; l < c; l++)o = e.aoData[l], o._aSortData || (o._aSortData = []), o._aSortData[t] && !i || (a = i?n[l]:C(e, l, t, "sort"), o._aSortData[t] = s?s(a):a)}function Ee(t){if (t.oFeatures.bStateSave && !t.bDestroying){var n = {time: + new Date, start:t._iDisplayStart, length:t._iDisplayLength, order:e.extend(!0, [], t.aaSorting), search:te(t.oPreviousSearch), columns:e.map(t.aoColumns, function(e, n){return{visible:e.bVisible, search:te(t.aoPreSearchCols[n])}})}; Pe(t, "aoStateSaveParams", "stateSaveParams", [t, n]), t.oSavedState = n, t.fnStateSaveCallback.call(t.oInstance, t, n)}}function Ie(t, n, i){var o, a, s = t.aoColumns, l = function(n){if (!n || !n.time)return void i(); var l = Pe(t, "aoStateLoadParams", "stateLoadParams", [t, c]); if ( - 1 !== e.inArray(!1, l))return void i(); var u = t.iStateDuration; if (u > 0 && n.time < + new Date - 1e3 * u)return void i(); if (n.columns && s.length !== n.columns.length)return void i(); if (t.oLoadedState = e.extend(!0, {}, c), n.start !== r && (t._iDisplayStart = n.start, t.iInitDisplayStart = n.start), n.length !== r && (t._iDisplayLength = n.length), n.order !== r && (t.aaSorting = [], e.each(n.order, function(e, n){t.aaSorting.push(n[0] >= s.length?[0, n[1]]:n)})), n.search !== r && e.extend(t.oPreviousSearch, ne(n.search)), n.columns)for (o = 0, a = n.columns.length; o < a; o++){var d = n.columns[o]; d.visible !== r && (s[o].bVisible = d.visible), d.search !== r && e.extend(t.aoPreSearchCols[o], ne(d.search))}Pe(t, "aoStateLoaded", "stateLoaded", [t, c]), i()}; if (!t.oFeatures.bStateSave)return void i(); var c = t.fnStateLoadCallback.call(t.oInstance, t, l); c !== r && l(c)}function ke(t){var n = Xe.settings, r = e.inArray(t, st(n, "nTable")); return - 1 !== r?n[r]:null}function Le(e, n, r, i){if (r = "DataTables warning: " + (e?"table id=" + e.sTableId + " - ":"") + r, i && (r += ". For more information about this error, please see http://datatables.net/tn/" + i), n)t.console && console.log && console.log(r); else{var o = Xe.ext, a = o.sErrMode || o.errMode; if (e && Pe(e, null, "error", [e, i, r]), "alert" == a)alert(r); else{if ("throw" == a)throw new Error(r); "function" == typeof a && a(e, i, r)}}}function je(t, n, i, o){if (e.isArray(i))return void e.each(i, function(r, i){e.isArray(i)?je(t, n, i[0], i[1]):je(t, n, i)}); o === r && (o = i), n[i] !== r && (t[o] = n[i])}function Oe(t, n, r){var i; for (var o in n)n.hasOwnProperty(o) && (i = n[o], e.isPlainObject(i)?(e.isPlainObject(t[o]) || (t[o] = {}), e.extend(!0, t[o], i)):r && "data" !== o && "aaData" !== o && e.isArray(i)?t[o] = i.slice():t[o] = i); return t}function Ne(t, n, r){e(t).on("click.DT", n, function(e){t.blur(), r(e)}).on("keypress.DT", n, function(e){13 === e.which && (e.preventDefault(), r(e))}).on("selectstart.DT", function(){return!1})}function Re(e, t, n, r){n && e[t].push({fn:n, sName:r})}function Pe(t, n, r, i){var o = []; if (n && (o = e.map(t[n].slice().reverse(), function(e, n){return e.fn.apply(t.oInstance, i)})), null !== r){var a = e.Event(r + ".dt"); e(t.nTable).trigger(a, i), o.push(a.result)}return o}function Fe(e){var t = e._iDisplayStart, n = e.fnDisplayEnd(), r = e._iDisplayLength; t >= n && (t = n - r), t -= t % r, ( - 1 === r || t < 0) && (t = 0), e._iDisplayStart = t}function He(t, n){var r = t.renderer, i = Xe.ext.renderer[n]; return e.isPlainObject(r) && r[n]?i[r[n]] || i._:"string" == typeof r?i[r] || i._:i._}function qe(e){return e.oFeatures.bServerSide?"ssp":e.ajax || e.sAjaxSource?"ajax":"dom"}function Me(e, t){var n = [], r = qt.numbers_length, i = Math.floor(r / 2); return t <= r?n = ct(0, t):e <= i?(n = ct(0, r - 2), n.push("ellipsis"), n.push(t - 1)):e >= t - 1 - i?(n = ct(t - (r - 2), t), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)):(n = ct(e - i + 2, e + i - 1), n.push("ellipsis"), n.push(t - 1), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n}function We(t){e.each({num:function(e){return Mt(e, t)}, "num-fmt":function(e){return Mt(e, t, et)}, "html-num":function(e){return Mt(e, t, Qe)}, "html-num-fmt":function(e){return Mt(e, t, Qe, et)}}, function(e, n){Be.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Be.type.search[e + t] = Be.type.search.html)})}function Ue(e){return function(){var t = [ke(this[Xe.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return Xe.ext.internal[e].apply(this, t)}}var Be, ze, Ge, Ve, Xe = function(t){this.$ = function(e, t){return this.api(!0).$(e, t)}, this._ = function(e, t){return this.api(!0).rows(e, t).data()}, this.api = function(e){return new ze(e?ke(this[Be.iApiIndex]):this)}, this.fnAddData = function(t, n){var i = this.api(!0), o = e.isArray(t) && (e.isArray(t[0]) || e.isPlainObject(t[0]))?i.rows.add(t):i.row.add(t); return(n === r || n) && i.draw(), o.flatten().toArray()}, this.fnAdjustColumnSizing = function(e){var t = this.api(!0).columns.adjust(), n = t.settings()[0], i = n.oScroll; e === r || e?t.draw(!1):"" === i.sX && "" === i.sY || ge(n)}, this.fnClearTable = function(e){var t = this.api(!0).clear(); (e === r || e) && t.draw()}, this.fnClose = function(e){this.api(!0).row(e).child.hide()}, this.fnDeleteRow = function(e, t, n){var i = this.api(!0), o = i.rows(e), a = o.settings()[0], s = a.aoData[o[0][0]]; return o.remove(), t && t.call(this, a, s), (n === r || n) && i.draw(), s}, this.fnDestroy = function(e){this.api(!0).destroy(e)}, this.fnDraw = function(e){this.api(!0).draw(e)}, this.fnFilter = function(e, t, n, i, o, a){var s = this.api(!0); null === t || t === r?s.search(e, n, i, a):s.column(t).search(e, n, i, a), s.draw()}, this.fnGetData = function(e, t){var n = this.api(!0); if (e !== r){var i = e.nodeName?e.nodeName.toLowerCase():""; return t !== r || "td" == i || "th" == i?n.cell(e, t).data():n.row(e).data() || null}return n.data().toArray()}, this.fnGetNodes = function(e){var t = this.api(!0); return e !== r?t.row(e).node():t.rows().nodes().flatten().toArray()}, this.fnGetPosition = function(e){var t = this.api(!0), n = e.nodeName.toUpperCase(); if ("TR" == n)return t.row(e).index(); if ("TD" == n || "TH" == n){var r = t.cell(e).index(); return[r.row, r.columnVisible, r.column]}return null}, this.fnIsOpen = function(e){return this.api(!0).row(e).child.isShown()}, this.fnOpen = function(e, t, n){return this.api(!0).row(e).child(t, n).show().child()[0]}, this.fnPageChange = function(e, t){var n = this.api(!0).page(e); (t === r || t) && n.draw(!1)}, this.fnSetColumnVis = function(e, t, n){var i = this.api(!0).column(e).visible(t); (n === r || n) && i.columns.adjust().draw()}, this.fnSettings = function(){return ke(this[Be.iApiIndex])}, this.fnSort = function(e){this.api(!0).order(e).draw()}, this.fnSortListener = function(e, t, n){this.api(!0).order.listener(e, t, n)}, this.fnUpdate = function(e, t, n, i, o){var a = this.api(!0); return n === r || null === n?a.row(t).data(e):a.cell(t, n).data(e), (o === r || o) && a.columns.adjust(), (i === r || i) && a.draw(), 0}, this.fnVersionCheck = Be.fnVersionCheck; var n = this, i = t === r, u = this.length; i && (t = {}), this.oApi = this.internal = Be.internal; for (var f in Xe.ext.internal)f && (this[f] = Ue(f)); return this.each(function(){var f, p = {}, g = u > 1?Oe(p, t, !0):t, v = 0, m = this.getAttribute("id"), y = !1, S = Xe.defaults, T = e(this); if ("table" != this.nodeName.toLowerCase())return void Le(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); s(S), l(S.column), o(S, S, !0), o(S.column, S.column, !0), o(S, e.extend(g, T.data())); var C = Xe.settings; for (v = 0, f = C.length; v < f; v++){var D = C[v]; if (D.nTable == this || D.nTHead.parentNode == this || D.nTFoot && D.nTFoot.parentNode == this){var _ = g.bRetrieve !== r?g.bRetrieve:S.bRetrieve, A = g.bDestroy !== r?g.bDestroy:S.bDestroy; if (i || _)return D.oInstance; if (A){D.oInstance.fnDestroy(); break}return void Le(D, 0, "Cannot reinitialise DataTable", 3)}if (D.sTableId == this.id){C.splice(v, 1); break}}null !== m && "" !== m || (m = "DataTables_Table_" + Xe.ext._unique++, this.id = m); var E = e.extend(!0, {}, Xe.models.oSettings, {sDestroyWidth:T[0].style.width, sInstance:m, sTableId:m}); E.nTable = this, E.oApi = n.internal, E.oInit = g, C.push(E), E.oInstance = 1 === n.length?n:T.dataTable(), s(g), g.oLanguage && a(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = e.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]), g = Oe(e.extend(!0, {}, S), g), je(E.oFeatures, g, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), je(E, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], ["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]), je(E.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]), je(E.oLanguage, g, "fnInfoCallback"), Re(E, "aoDrawCallback", g.fnDrawCallback, "user"), Re(E, "aoServerParams", g.fnServerParams, "user"), Re(E, "aoStateSaveParams", g.fnStateSaveParams, "user"), Re(E, "aoStateLoadParams", g.fnStateLoadParams, "user"), Re(E, "aoStateLoaded", g.fnStateLoaded, "user"), Re(E, "aoRowCallback", g.fnRowCallback, "user"), Re(E, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Re(E, "aoHeaderCallback", g.fnHeaderCallback, "user"), Re(E, "aoFooterCallback", g.fnFooterCallback, "user"), Re(E, "aoInitComplete", g.fnInitComplete, "user"), Re(E, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), E.rowIdFn = $(g.rowId), c(E); var I = E.oClasses; if (g.bJQueryUI?(e.extend(I, Xe.ext.oJUIClasses, g.oClasses), g.sDom === S.sDom && "lfrtip" === S.sDom && (E.sDom = '<"H"lfr>t<"F"ip>'), E.renderer?e.isPlainObject(E.renderer) && !E.renderer.header && (E.renderer.header = "jqueryui"):E.renderer = "jqueryui"):e.extend(I, Xe.ext.classes, g.oClasses), T.addClass(I.sTable), E.iInitDisplayStart === r && (E.iInitDisplayStart = g.iDisplayStart, E._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading){E.bDeferLoading = !0; var k = e.isArray(g.iDeferLoading); E._iRecordsDisplay = k?g.iDeferLoading[0]:g.iDeferLoading, E._iRecordsTotal = k?g.iDeferLoading[1]:g.iDeferLoading}var L = E.oLanguage; e.extend(!0, L, g.oLanguage), L.sUrl && (e.ajax({dataType:"json", url:L.sUrl, success:function(t){a(t), o(S.oLanguage, t), e.extend(!0, L, t), ae(E)}, error:function(){ae(E)}}), y = !0), null === g.asStripeClasses && (E.asStripeClasses = [I.sStripeOdd, I.sStripeEven]); var j = E.asStripeClasses, O = T.children("tbody").find("tr").eq(0); - 1 !== e.inArray(!0, e.map(j, function(e, t){return O.hasClass(e)})) && (e("tbody tr", this).removeClass(j.join(" ")), E.asDestroyStripes = j.slice()); var N, R = [], P = this.getElementsByTagName("thead"); if (0 !== P.length && (M(E.aoHeader, P[0]), R = W(E)), null === g.aoColumns)for (N = [], v = 0, f = R.length; v < f; v++)N.push(null); else N = g.aoColumns; for (v = 0, f = N.length; v < f; v++)d(E, R?R[v]:null); if (b(E, g.aoColumnDefs, N, function(e, t){h(E, e, t)}), O.length){var F = function(e, t){return null !== e.getAttribute("data-" + t)?t:null}; e(O[0]).children("th, td").each(function(e, t){var n = E.aoColumns[e]; if (n.mData === e){var i = F(t, "sort") || F(t, "order"), o = F(t, "filter") || F(t, "search"); null === i && null === o || (n.mData = {_:e + ".display", sort:null !== i?e + ".@data-" + i:r, type:null !== i?e + ".@data-" + i:r, filter:null !== o?e + ".@data-" + o:r}, h(E, e))}})}var H = E.oFeatures, q = function(){if (g.aaSorting === r){var t = E.aaSorting; for (v = 0, f = t.length; v < f; v++)t[v][1] = E.aoColumns[v].asSorting[0]}$e(E), H.bSort && Re(E, "aoDrawCallback", function(){if (E.bSorted){var t = Se(E), n = {}; e.each(t, function(e, t){n[t.src] = t.dir}), Pe(E, null, "order", [E, t, n]), Ce(E)}}), Re(E, "aoDrawCallback", function(){(E.bSorted || "ssp" === qe(E) || H.bDeferRender) && $e(E)}, "sc"); var n = T.children("caption").each(function(){this._captionSide = e(this).css("caption-side")}), i = T.children("thead"); 0 === i.length && (i = e("<thead/>").appendTo(T)), E.nTHead = i[0]; var o = T.children("tbody"); 0 === o.length && (o = e("<tbody/>").appendTo(T)), E.nTBody = o[0]; var a = T.children("tfoot"); if (0 === a.length && n.length > 0 && ("" !== E.oScroll.sX || "" !== E.oScroll.sY) && (a = e("<tfoot/>").appendTo(T)), 0 === a.length || 0 === a.children().length?T.addClass(I.sNoFooter):a.length > 0 && (E.nTFoot = a[0], M(E.aoFooter, E.nTFoot)), g.aaData)for (v = 0; v < g.aaData.length; v++)w(E, g.aaData[v]); else(E.bDeferLoading || "dom" == qe(E)) && x(E, e(E.nTBody).children("tr")); E.aiDisplay = E.aiDisplayMaster.slice(), E.bInitialised = !0, !1 === y && ae(E)}; g.bStateSave?(H.bStateSave = !0, Re(E, "aoDrawCallback", Ee, "state_save"), Ie(E, g, q)):q()}), n = null, this}, Je = {}, Ye = /[\r\n]/g, Qe = /<.*?>/g, Ke = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/, Ze = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"), et = /[',$Â£â‚¬Â¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, tt = function(e){return!e || !0 === e || "-" === e}, nt = function(e){var t = parseInt(e, 10); return!isNaN(t) && isFinite(e)?t:null}, rt = function(e, t){return Je[t] || (Je[t] = new RegExp(vt(t), "g")), "string" == typeof e && "." !== t?e.replace(/\./g, "").replace(Je[t], "."):e}, it = function(e, t, n){var r = "string" == typeof e; return!!tt(e) || (t && r && (e = rt(e, t)), n && r && (e = e.replace(et, "")), !isNaN(parseFloat(e)) && isFinite(e))}, ot = function(e){return tt(e) || "string" == typeof e}, at = function(e, t, n){return!!tt(e) || (ot(e)?!!it(dt(e), t, n) || null:null)}, st = function(e, t, n){var i = [], o = 0, a = e.length; if (n !== r)for (; o < a; o++)e[o] && e[o][t] && i.push(e[o][t][n]); else for (; o < a; o++)e[o] && i.push(e[o][t]); return i}, lt = function(e, t, n, i){var o = [], a = 0, s = t.length; if (i !== r)for (; a < s; a++)e[t[a]][n] && o.push(e[t[a]][n][i]); else for (; a < s; a++)o.push(e[t[a]][n]); return o}, ct = function(e, t){var n, i = []; t === r?(t = 0, n = e):(n = t, t = e); for (var o = t; o < n; o++)i.push(o); return i}, ut = function(e){for (var t = [], n = 0, r = e.length; n < r; n++)e[n] && t.push(e[n]); return t}, dt = function(e){return e.replace(Qe, "")}, ht = function(e){var t, n, r, i = [], o = e.length, a = 0; e:for (n = 0; n < o; n++){for (t = e[n], r = 0; r < a; r++)if (i[r] === t)continue e; i.push(t), a++}return i}; Xe.util = {throttle:function(e, t){var n, i, o = t !== r?t:200; return function(){var t = this, a = + new Date, s = arguments; n && a < n + o?(clearTimeout(i), i = setTimeout(function(){n = r, e.apply(t, s)}, o)):(n = a, e.apply(t, s))}}, escapeRegex:function(e){return e.replace(Ze, "\\$1")}}; var ft = function(e, t, n){e[t] !== r && (e[n] = e[t])}, pt = /\[.*?\]$/, gt = /\(\)$/, vt = Xe.util.escapeRegex, mt = e("<div>")[0], yt = mt.textContent !== r, bt = /<.*?>/g, wt = Xe.util.throttle, xt = [], St = Array.prototype, Tt = function(t){var n, r, i = Xe.settings, o = e.map(i, function(e, t){return e.nTable}); return t?t.nTable && t.oApi?[t]:t.nodeName && "table" === t.nodeName.toLowerCase()?(n = e.inArray(t, o), - 1 !== n?[i[n]]:null):t && "function" == typeof t.settings?t.settings().toArray():("string" == typeof t?r = e(t):t instanceof e && (r = t), r?r.map(function(t){return n = e.inArray(this, o), - 1 !== n?i[n]:null}).toArray():void 0):[]}; ze = function(t, n){if (!(this instanceof ze))return new ze(t, n); var r = [], i = function(e){var t = Tt(e); t && (r = r.concat(t))}; if (e.isArray(t))for (var o = 0, a = t.length; o < a; o++)i(t[o]); else i(t); this.context = ht(r), n && e.merge(this, n), this.selector = {rows:null, cols:null, opts:null}, ze.extend(this, this, xt)}, Xe.Api = ze, e.extend(ze.prototype, {any:function(){return 0 !== this.count()}, concat:St.concat, context:[], count:function(){return this.flatten().length}, each:function(e){for (var t = 0, n = this.length; t < n; t++)e.call(this, this[t], t, this); return this}, eq:function(e){var t = this.context; return t.length > e?new ze(t[e], this[e]):null}, filter:function(e){var t = []; if (St.filter)t = St.filter.call(this, e, this); else for (var n = 0, r = this.length; n < r; n++)e.call(this, this[n], n, this) && t.push(this[n]); return new ze(this.context, t)}, flatten:function(){var e = []; return new ze(this.context, e.concat.apply(e, this.toArray()))}, join:St.join, indexOf:St.indexOf || function(e, t){for (var n = t || 0, r = this.length; n < r; n++)if (this[n] === e)return n; return - 1}, iterator:function(e, t, n, i){var o, a, s, l, c, u, d, h, f = [], p = this.context, g = this.selector; for ("string" == typeof e && (i = n, n = t, t = e, e = !1), a = 0, s = p.length; a < s; a++){var v = new ze(p[a]); if ("table" === t)(o = n.call(v, p[a], a)) !== r && f.push(o); else if ("columns" === t || "rows" === t)(o = n.call(v, p[a], this[a], a)) !== r && f.push(o); else if ("column" === t || "column-rows" === t || "row" === t || "cell" === t)for (d = this[a], "column-rows" === t && (u = Et(p[a], g.opts)), l = 0, c = d.length; l < c; l++)h = d[l], (o = "cell" === t?n.call(v, p[a], h.row, h.column, a, l):n.call(v, p[a], h, a, l, u)) !== r && f.push(o)}if (f.length || i){var m = new ze(p, e?f.concat.apply([], f):f), y = m.selector; return y.rows = g.rows, y.cols = g.cols, y.opts = g.opts, m}return this}, lastIndexOf:St.lastIndexOf || function(e, t){return this.indexOf.apply(this.toArray.reverse(), arguments)}, length:0, map:function(e){var t = []; if (St.map)t = St.map.call(this, e, this); else for (var n = 0, r = this.length; n < r; n++)t.push(e.call(this, this[n], n)); return new ze(this.context, t)}, pluck:function(e){return this.map(function(t){return t[e]})}, pop:St.pop, push:St.push, reduce:St.reduce || function(e, t){return u(this, e, t, 0, this.length, 1)}, reduceRight:St.reduceRight || function(e, t){return u(this, e, t, this.length - 1, - 1, - 1)}, reverse:St.reverse, selector:null, shift:St.shift, sort:St.sort, splice:St.splice, toArray:function(){return St.slice.call(this)}, to$:function(){return e(this)}, toJQuery:function(){return e(this)}, unique:function(){return new ze(this.context, ht(this))}, unshift:St.unshift}), ze.extend = function(t, n, r){if (r.length && n && (n instanceof ze || n.__dt_wrapper)){var i, o, a; for (i = 0, o = r.length; i < o; i++)a = r[i], n[a.name] = "function" == typeof a.val?function(e, t, n){return function(){var r = t.apply(e, arguments); return ze.extend(r, r, n.methodExt), r}}(t, a.val, a):e.isPlainObject(a.val)?{}:a.val, n[a.name].__dt_wrapper = !0, ze.extend(t, n[a.name], a.propExt)}}, ze.register = Ge = function(t, n){if (e.isArray(t))for (var r = 0, i = t.length; r < i; r++)ze.register(t[r], n); else{var o, a, s, l, c = t.split("."), u = xt; for (o = 0, a = c.length; o < a; o++){l = - 1 !== c[o].indexOf("()"), s = l?c[o].replace("()", ""):c[o]; var d = function(e, t){for (var n = 0, r = e.length; n < r; n++)if (e[n].name === t)return e[n]; return null}(u, s); d || (d = {name:s, val:{}, methodExt:[], propExt:[]}, u.push(d)), o === a - 1?d.val = n:u = l?d.methodExt:d.propExt}}}, ze.registerPlural = Ve = function(t, n, i){ze.register(t, i), ze.register(n, function(){var t = i.apply(this, arguments); return t === this?this:t instanceof ze?t.length?e.isArray(t[0])?new ze(t.context, t[0]):t[0]:r:t})}; var Ct = function(t, n){if ("number" == typeof t)return[n[t]]; var r = e.map(n, function(e, t){return e.nTable}); return e(r).filter(t).map(function(t){var i = e.inArray(this, r); return n[i]}).toArray()}; Ge("tables()", function(e){return e?new ze(Ct(e, this.context)):this}), Ge("table()", function(e){var t = this.tables(e), n = t.context; return n.length?new ze(n[0]):t}), Ve("tables().nodes()", "table().node()", function(){return this.iterator("table", function(e){return e.nTable}, 1)}), Ve("tables().body()", "table().body()", function(){return this.iterator("table", function(e){return e.nTBody}, 1)}), Ve("tables().header()", "table().header()", function(){return this.iterator("table", function(e){return e.nTHead}, 1)}), Ve("tables().footer()", "table().footer()", function(){return this.iterator("table", function(e){return e.nTFoot}, 1)}), Ve("tables().containers()", "table().container()", function(){return this.iterator("table", function(e){return e.nTableWrapper}, 1)}), Ge("draw()", function(e){return this.iterator("table", function(t){"page" === e?F(t):("string" == typeof e && (e = "full-hold" !== e), H(t, !1 === e))})}), Ge("page()", function(e){return e === r?this.page.info().page:this.iterator("table", function(t){de(t, e)})}), Ge("page.info()", function(e){if (0 === this.context.length)return r; var t = this.context[0], n = t._iDisplayStart, i = t.oFeatures.bPaginate?t._iDisplayLength: - 1, o = t.fnRecordsDisplay(), a = - 1 === i; return{page:a?0:Math.floor(n / i), pages:a?1:Math.ceil(o / i), start:n, end:t.fnDisplayEnd(), length:i, recordsTotal:t.fnRecordsTotal(), recordsDisplay:o, serverSide:"ssp" === qe(t)}}), Ge("page.len()", function(e){return e === r?0 !== this.context.length?this.context[0]._iDisplayLength:r:this.iterator("table", function(t){le(t, e)})}); var Dt = function(e, t, n){if (n){var r = new ze(e); r.one("draw", function(){n(r.ajax.json())})}if ("ssp" == qe(e))H(e, t); else{fe(e, !0); var i = e.jqXHR; i && 4 !== i.readyState && i.abort(), U(e, [], function(n){I(e); for (var r = V(e, n), i = 0, o = r.length; i < o; i++)w(e, r[i]); H(e, t), fe(e, !1)})}}; Ge("ajax.json()", function(){var e = this.context; if (e.length > 0)return e[0].json}), Ge("ajax.params()", function(){var e = this.context; if (e.length > 0)return e[0].oAjaxData}), Ge("ajax.reload()", function(e, t){return this.iterator("table", function(n){Dt(n, !1 === t, e)})}), Ge("ajax.url()", function(t){var n = this.context; return t === r?0 === n.length?r:(n = n[0], n.ajax?e.isPlainObject(n.ajax)?n.ajax.url:n.ajax:n.sAjaxSource):this.iterator("table", function(n){e.isPlainObject(n.ajax)?n.ajax.url = t:n.ajax = t})}), Ge("ajax.url().load()", function(e, t){return this.iterator("table", function(n){Dt(n, !1 === t, e)})}); var _t = function(t, n, i, o, a){var s, l, c, u, d, h, f = [], p = typeof n; for (n && "string" !== p && "function" !== p && n.length !== r || (n = [n]), c = 0, u = n.length; c < u; c++)for (l = n[c] && n[c].split && !n[c].match(/[\[\(:]/)?n[c].split(","):[n[c]], d = 0, h = l.length; d < h; d++)(s = i("string" == typeof l[d]?e.trim(l[d]):l[d])) && s.length && (f = f.concat(s)); var g = Be.selector[t]; if (g.length)for (c = 0, u = g.length; c < u; c++)f = g[c](o, a, f); return ht(f)}, $t = function(t){return t || (t = {}), t.filter && t.search === r && (t.search = t.filter), e.extend({search:"none", order:"current", page:"all"}, t)}, At = function(e){for (var t = 0, n = e.length; t < n; t++)if (e[t].length > 0)return e[0] = e[t], e[0].length = 1, e.length = 1, e.context = [e.context[t]], e; return e.length = 0, e}, Et = function(t, n){var r, i, o, a = [], s = t.aiDisplay, l = t.aiDisplayMaster, c = n.search, u = n.order, d = n.page; if ("ssp" == qe(t))return"removed" === c?[]:ct(0, l.length); if ("current" == d)for (r = t._iDisplayStart, i = t.fnDisplayEnd(); r < i; r++)a.push(s[r]); else if ("current" == u || "applied" == u)a = "none" == c?l.slice():"applied" == c?s.slice():e.map(l, function(t, n){return - 1 === e.inArray(t, s)?t:null}); else if ("index" == u || "original" == u)for (r = 0, i = t.aoData.length; r < i; r++)"none" == c?a.push(r):( - 1 === (o = e.inArray(r, s)) && "removed" == c || o >= 0 && "applied" == c) && a.push(r); return a}, It = function(t, n, i){var o; return _t("row", n, function(n){var a = nt(n); if (null !== a && !i)return[a]; if (o || (o = Et(t, i)), null !== a && - 1 !== e.inArray(a, o))return[a]; if (null === n || n === r || "" === n)return o; if ("function" == typeof n)return e.map(o, function(e){var r = t.aoData[e]; return n(e, r._aData, r.nTr)?e:null}); var s = ut(lt(t.aoData, o, "nTr")); if (n.nodeName){if (n._DT_RowIndex !== r)return[n._DT_RowIndex]; if (n._DT_CellIndex)return[n._DT_CellIndex.row]; var l = e(n).closest("*[data-dt-row]"); return l.length?[l.data("dt-row")]:[]}if ("string" == typeof n && "#" === n.charAt(0)){var c = t.aIds[n.replace(/^#/, "")]; if (c !== r)return[c.idx]}return e(s).filter(n).map(function(){return this._DT_RowIndex}).toArray()}, t, i)}; Ge("rows()", function(t, n){t === r?t = "":e.isPlainObject(t) && (n = t, t = ""), n = $t(n); var i = this.iterator("table", function(e){return It(e, t, n)}, 1); return i.selector.rows = t, i.selector.opts = n, i}), Ge("rows().nodes()", function(){return this.iterator("row", function(e, t){return e.aoData[t].nTr || r}, 1)}), Ge("rows().data()", function(){return this.iterator(!0, "rows", function(e, t){return lt(e.aoData, t, "_aData")}, 1)}), Ve("rows().cache()", "row().cache()", function(e){return this.iterator("row", function(t, n){var r = t.aoData[n]; return"search" === e?r._aFilterData:r._aSortData}, 1)}), Ve("rows().invalidate()", "row().invalidate()", function(e){return this.iterator("row", function(t, n){L(t, n, e)})}), Ve("rows().indexes()", "row().index()", function(){return this.iterator("row", function(e, t){return t}, 1)}), Ve("rows().ids()", "row().id()", function(e){for (var t = [], n = this.context, r = 0, i = n.length; r < i; r++)for (var o = 0, a = this[r].length; o < a; o++){var s = n[r].rowIdFn(n[r].aoData[this[r][o]]._aData); t.push((!0 === e?"#":"") + s)}return new ze(n, t)}), Ve("rows().remove()", "row().remove()", function(){var e = this; return this.iterator("row", function(t, n, i){var o, a, s, l, c, u, d = t.aoData, h = d[n]; for (d.splice(n, 1), o = 0, a = d.length; o < a; o++)if (c = d[o], u = c.anCells, null !== c.nTr && (c.nTr._DT_RowIndex = o), null !== u)for (s = 0, l = u.length; s < l; s++)u[s]._DT_CellIndex.row = o; k(t.aiDisplayMaster, n), k(t.aiDisplay, n), k(e[i], n, !1), Fe(t); var f = t.rowIdFn(h._aData); f !== r && delete t.aIds[f]}), this.iterator("table", function(e){for (var t = 0, n = e.aoData.length; t < n; t++)e.aoData[t].idx = t}), this}), Ge("rows.add()", function(t){var n = this.iterator("table", function(e){var n, r, i, o = []; for (r = 0, i = t.length; r < i; r++)n = t[r], n.nodeName && "TR" === n.nodeName.toUpperCase()?o.push(x(e, n)[0]):o.push(w(e, n)); return o}, 1), r = this.rows( - 1); return r.pop(), e.merge(r, n), r}), Ge("row()", function(e, t){return At(this.rows(e, t))}), Ge("row().data()", function(e){var t = this.context; return e === r?t.length && this.length?t[0].aoData[this[0]]._aData:r:(t[0].aoData[this[0]]._aData = e, L(t[0], this[0], "data"), this)}), Ge("row().node()", function(){var e = this.context; return e.length && this.length?e[0].aoData[this[0]].nTr || null:null}), Ge("row.add()", function(t){t instanceof e && t.length && (t = t[0]); var n = this.iterator("table", function(e){return t.nodeName && "TR" === t.nodeName.toUpperCase()?x(e, t)[0]:w(e, t)}); return this.row(n[0])}); var kt = function(t, n, r, i){var o = [], a = function(n, r){if (e.isArray(n) || n instanceof e)for (var i = 0, s = n.length; i < s; i++)a(n[i], r); else if (n.nodeName && "tr" === n.nodeName.toLowerCase())o.push(n); else{var l = e("<tr><td/></tr>").addClass(r); e("td", l).addClass(r).html(n)[0].colSpan = v(t), o.push(l[0])}}; a(r, i), n._details && n._details.detach(), n._details = e(o), n._detailsShow && n._details.insertAfter(n.nTr)}, Lt = function(e, t){var n = e.context; if (n.length){var i = n[0].aoData[t !== r?t:e[0]]; i && i._details && (i._details.remove(), i._detailsShow = r, i._details = r)}}, jt = function(e, t){var n = e.context; if (n.length && e.length){var r = n[0].aoData[e[0]]; r._details && (r._detailsShow = t, t?r._details.insertAfter(r.nTr):r._details.detach(), Ot(n[0]))}}, Ot = function(e){var t = new ze(e), n = e.aoData; t.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"), st(n, "_details").length > 0 && (t.on("draw.dt.DT_details", function(r, i){e === i && t.rows({page:"current"}).eq(0).each(function(e){var t = n[e]; t._detailsShow && t._details.insertAfter(t.nTr)})}), t.on("column-visibility.dt.DT_details", function(t, r, i, o){if (e === r)for (var a, s = v(r), l = 0, c = n.length; l < c; l++)a = n[l], a._details && a._details.children("td[colspan]").attr("colspan", s)}), t.on("destroy.dt.DT_details", function(r, i){if (e === i)for (var o = 0, a = n.length; o < a; o++)n[o]._details && Lt(t, o)}))}; Ge("row().child()", function(e, t){var n = this.context; return e === r?n.length && this.length?n[0].aoData[this[0]]._details:r:(!0 === e?this.child.show():!1 === e?Lt(this):n.length && this.length && kt(n[0], n[0].aoData[this[0]], e, t), this)}), Ge(["row().child.show()", "row().child().show()"], function(e){return jt(this, !0), this}), Ge(["row().child.hide()", "row().child().hide()"], function(){return jt(this, !1), this}), Ge(["row().child.remove()", "row().child().remove()"], function(){return Lt(this), this}), Ge("row().child.isShown()", function(){var e = this.context; return!(!e.length || !this.length) && (e[0].aoData[this[0]]._detailsShow || !1)}); var Nt = /^([^:]+):(name|visIdx|visible)$/, Rt = function(e, t, n, r, i){for (var o = [], a = 0, s = i.length; a < s; a++)o.push(C(e, i[a], t)); return o}, Pt = function(t, n, r){var i = t.aoColumns, o = st(i, "sName"), a = st(i, "nTh"); return _t("column", n, function(n){var s = nt(n); if ("" === n)return ct(i.length); if (null !== s)return[s >= 0?s:i.length + s]; if ("function" == typeof n){var l = Et(t, r); return e.map(i, function(e, r){return n(r, Rt(t, r, 0, 0, l), a[r])?r:null})}var c = "string" == typeof n?n.match(Nt):""; if (c)switch (c[2]){case"visIdx":case"visible":var u = parseInt(c[1], 10); if (u < 0){var d = e.map(i, function(e, t){return e.bVisible?t:null}); return[d[d.length + u]]}return[p(t, u)]; case"name":return e.map(o, function(e, t){return e === c[1]?t:null}); default:return[]}if (n.nodeName && n._DT_CellIndex)return[n._DT_CellIndex.column]; var h = e(a).filter(n).map(function(){return e.inArray(this, a)}).toArray(); if (h.length || !n.nodeName)return h; var f = e(n).closest("*[data-dt-column]"); return f.length?[f.data("dt-column")]:[]}, t, r)}, Ft = function(t, n, i){
  var o, a, s, l, c = t.aoColumns, u = c[n], d = t.aoData; if (i === r)return u.bVisible; if (u.bVisible !== i){if (i){var h = e.inArray(!0, st(c, "bVisible"), n + 1); for (a = 0, s = d.length; a < s; a++)l = d[a].nTr, o = d[a].anCells, l && l.insertBefore(o[n], o[h] || null)} else e(st(t.aoData, "anCells", n)).detach(); u.bVisible = i, P(t, t.aoHeader), P(t, t.aoFooter), Ee(t)}}; Ge("columns()", function(t, n){t === r?t = "":e.isPlainObject(t) && (n = t, t = ""), n = $t(n); var i = this.iterator("table", function(e){return Pt(e, t, n)}, 1); return i.selector.cols = t, i.selector.opts = n, i}), Ve("columns().header()", "column().header()", function(e, t){return this.iterator("column", function(e, t){return e.aoColumns[t].nTh}, 1)}), Ve("columns().footer()", "column().footer()", function(e, t){return this.iterator("column", function(e, t){return e.aoColumns[t].nTf}, 1)}), Ve("columns().data()", "column().data()", function(){return this.iterator("column-rows", Rt, 1)}), Ve("columns().dataSrc()", "column().dataSrc()", function(){return this.iterator("column", function(e, t){return e.aoColumns[t].mData}, 1)}), Ve("columns().cache()", "column().cache()", function(e){return this.iterator("column-rows", function(t, n, r, i, o){return lt(t.aoData, o, "search" === e?"_aFilterData":"_aSortData", n)}, 1)}), Ve("columns().nodes()", "column().nodes()", function(){return this.iterator("column-rows", function(e, t, n, r, i){return lt(e.aoData, i, "anCells", t)}, 1)}), Ve("columns().visible()", "column().visible()", function(e, t){var n = this.iterator("column", function(t, n){if (e === r)return t.aoColumns[n].bVisible; Ft(t, n, e)}); return e !== r && (this.iterator("column", function(n, r){Pe(n, null, "column-visibility", [n, r, e, t])}), (t === r || t) && this.columns.adjust()), n}), Ve("columns().indexes()", "column().index()", function(e){return this.iterator("column", function(t, n){return"visible" === e?g(t, n):n}, 1)}), Ge("columns.adjust()", function(){return this.iterator("table", function(e){f(e)}, 1)}), Ge("column.index()", function(e, t){if (0 !== this.context.length){var n = this.context[0]; if ("fromVisible" === e || "toData" === e)return p(n, t); if ("fromData" === e || "toVisible" === e)return g(n, t)}}), Ge("column()", function(e, t){return At(this.columns(e, t))}); var Ht = function(t, n, i){var o, a, s, l, c, u, d, h = t.aoData, f = Et(t, i), p = ut(lt(h, f, "anCells")), g = e([].concat.apply([], p)), v = t.aoColumns.length; return _t("cell", n, function(n){var i = "function" == typeof n; if (null === n || n === r || i){for (a = [], s = 0, l = f.length; s < l; s++)for (o = f[s], c = 0; c < v; c++)u = {row:o, column:c}, i?(d = h[o], n(u, C(t, o, c), d.anCells?d.anCells[c]:null) && a.push(u)):a.push(u); return a}if (e.isPlainObject(n))return[n]; var p = g.filter(n).map(function(e, t){return{row:t._DT_CellIndex.row, column:t._DT_CellIndex.column}}).toArray(); return p.length || !n.nodeName?p:(d = e(n).closest("*[data-dt-row]"), d.length?[{row:d.data("dt-row"), column:d.data("dt-column")}]:[])}, t, i)}; Ge("cells()", function(t, n, i){if (e.isPlainObject(t) && (t.row === r?(i = t, t = null):(i = n, n = null)), e.isPlainObject(n) && (i = n, n = null), null === n || n === r)return this.iterator("table", function(e){return Ht(e, t, $t(i))}); var o, a, s, l, c, u = this.columns(n, i), d = this.rows(t, i), h = this.iterator("table", function(e, t){for (o = [], a = 0, s = d[t].length; a < s; a++)for (l = 0, c = u[t].length; l < c; l++)o.push({row:d[t][a], column:u[t][l]}); return o}, 1); return e.extend(h.selector, {cols:n, rows:t, opts:i}), h}), Ve("cells().nodes()", "cell().node()", function(){return this.iterator("cell", function(e, t, n){var i = e.aoData[t]; return i && i.anCells?i.anCells[n]:r}, 1)}), Ge("cells().data()", function(){return this.iterator("cell", function(e, t, n){return C(e, t, n)}, 1)}), Ve("cells().cache()", "cell().cache()", function(e){return e = "search" === e?"_aFilterData":"_aSortData", this.iterator("cell", function(t, n, r){return t.aoData[n][e][r]}, 1)}), Ve("cells().render()", "cell().render()", function(e){return this.iterator("cell", function(t, n, r){return C(t, n, r, e)}, 1)}), Ve("cells().indexes()", "cell().index()", function(){return this.iterator("cell", function(e, t, n){return{row:t, column:n, columnVisible:g(e, n)}}, 1)}), Ve("cells().invalidate()", "cell().invalidate()", function(e){return this.iterator("cell", function(t, n, r){L(t, n, e, r)})}), Ge("cell()", function(e, t, n){return At(this.cells(e, t, n))}), Ge("cell().data()", function(e){var t = this.context, n = this[0]; return e === r?t.length && n.length?C(t[0], n[0].row, n[0].column):r:(D(t[0], n[0].row, n[0].column, e), L(t[0], n[0].row, "data", n[0].column), this)}), Ge("order()", function(t, n){var i = this.context; return t === r?0 !== i.length?i[0].aaSorting:r:("number" == typeof t?t = [[t, n]]:t.length && !e.isArray(t[0]) && (t = Array.prototype.slice.call(arguments)), this.iterator("table", function(e){e.aaSorting = t.slice()}))}), Ge("order.listener()", function(e, t, n){return this.iterator("table", function(r){_e(r, e, t, n)})}), Ge("order.fixed()", function(t){if (!t){var n = this.context, i = n.length?n[0].aaSortingFixed:r; return e.isArray(i)?{pre:i}:i}return this.iterator("table", function(n){n.aaSortingFixed = e.extend(!0, {}, t)})}), Ge(["columns().order()", "column().order()"], function(t){var n = this; return this.iterator("table", function(r, i){var o = []; e.each(n[i], function(e, n){o.push([n, t])}), r.aaSorting = o})}), Ge("search()", function(t, n, i, o){var a = this.context; return t === r?0 !== a.length?a[0].oPreviousSearch.sSearch:r:this.iterator("table", function(r){r.oFeatures.bFilter && J(r, e.extend({}, r.oPreviousSearch, {sSearch:t + "", bRegex:null !== n && n, bSmart:null === i || i, bCaseInsensitive:null === o || o}), 1)})}), Ve("columns().search()", "column().search()", function(t, n, i, o){return this.iterator("column", function(a, s){var l = a.aoPreSearchCols; if (t === r)return l[s].sSearch; a.oFeatures.bFilter && (e.extend(l[s], {sSearch:t + "", bRegex:null !== n && n, bSmart:null === i || i, bCaseInsensitive:null === o || o}), J(a, a.oPreviousSearch, 1))})}), Ge("state()", function(){return this.context.length?this.context[0].oSavedState:null}), Ge("state.clear()", function(){return this.iterator("table", function(e){e.fnStateSaveCallback.call(e.oInstance, e, {})})}), Ge("state.loaded()", function(){return this.context.length?this.context[0].oLoadedState:null}), Ge("state.save()", function(){return this.iterator("table", function(e){Ee(e)})}), Xe.versionCheck = Xe.fnVersionCheck = function(e){for (var t, n, r = Xe.version.split("."), i = e.split("."), o = 0, a = i.length; o < a; o++)if (t = parseInt(r[o], 10) || 0, n = parseInt(i[o], 10) || 0, t !== n)return t > n; return!0}, Xe.isDataTable = Xe.fnIsDataTable = function(t){var n = e(t).get(0), r = !1; return t instanceof Xe.Api || (e.each(Xe.settings, function(t, i){var o = i.nScrollHead?e("table", i.nScrollHead)[0]:null, a = i.nScrollFoot?e("table", i.nScrollFoot)[0]:null; i.nTable !== n && o !== n && a !== n || (r = !0)}), r)}, Xe.tables = Xe.fnTables = function(t){var n = !1; e.isPlainObject(t) && (n = t.api, t = t.visible); var r = e.map(Xe.settings, function(n){if (!t || t && e(n.nTable).is(":visible"))return n.nTable}); return n?new ze(r):r}, Xe.camelToHungarian = o, Ge("$()", function(t, n){var r = this.rows(n).nodes(), i = e(r); return e([].concat(i.filter(t).toArray(), i.find(t).toArray()))}), e.each(["on", "one", "off"], function(t, n){Ge(n + "()", function(){var t = Array.prototype.slice.call(arguments); t[0] = e.map(t[0].split(/\s/), function(e){return e.match(/\.dt\b/)?e:e + ".dt"}).join(" "); var r = e(this.tables().nodes()); return r[n].apply(r, t), this})}), Ge("clear()", function(){return this.iterator("table", function(e){I(e)})}), Ge("settings()", function(){return new ze(this.context, this.context)}), Ge("init()", function(){var e = this.context; return e.length?e[0].oInit:null}), Ge("data()", function(){return this.iterator("table", function(e){return st(e.aoData, "_aData")}).flatten()}), Ge("destroy()", function(n){return n = n || !1, this.iterator("table", function(r){var i, o = r.nTableWrapper.parentNode, a = r.oClasses, s = r.nTable, l = r.nTBody, c = r.nTHead, u = r.nTFoot, d = e(s), h = e(l), f = e(r.nTableWrapper), p = e.map(r.aoData, function(e){return e.nTr}); r.bDestroying = !0, Pe(r, "aoDestroyCallback", "destroy", [r]), n || new ze(r).columns().visible(!0), f.off(".DT").find(":not(tbody *)").off(".DT"), e(t).off(".DT-" + r.sInstance), s != c.parentNode && (d.children("thead").detach(), d.append(c)), u && s != u.parentNode && (d.children("tfoot").detach(), d.append(u)), r.aaSorting = [], r.aaSortingFixed = [], $e(r), e(p).removeClass(r.asStripeClasses.join(" ")), e("th, td", c).removeClass(a.sSortable + " " + a.sSortableAsc + " " + a.sSortableDesc + " " + a.sSortableNone), r.bJUI && (e("th span." + a.sSortIcon + ", td span." + a.sSortIcon, c).detach(), e("th, td", c).each(function(){var t = e("div." + a.sSortJUIWrapper, this); e(this).append(t.contents()), t.detach()})), h.children().detach(), h.append(p); var g = n?"remove":"detach"; d[g](), f[g](), !n && o && (o.insertBefore(s, r.nTableReinsertBefore), d.css("width", r.sDestroyWidth).removeClass(a.sTable), (i = r.asDestroyStripes.length) && h.children().each(function(t){e(this).addClass(r.asDestroyStripes[t % i])})); var v = e.inArray(r, Xe.settings); - 1 !== v && Xe.settings.splice(v, 1)})}), e.each(["column", "row", "cell"], function(e, t){Ge(t + "s().every()", function(e){var n = this.selector.opts, i = this; return this.iterator(t, function(o, a, s, l, c){e.call(i[t](a, "cell" === t?s:n, "cell" === t?n:r), a, s, l, c)})})}), Ge("i18n()", function(t, n, i){var o = this.context[0], a = $(t)(o.oLanguage); return a === r && (a = n), i !== r && e.isPlainObject(a) && (a = a[i] !== r?a[i]:a._), a.replace("%d", i)}), Xe.version = "1.10.13", Xe.settings = [], Xe.models = {}, Xe.models.oSearch = {bCaseInsensitive:!0, sSearch:"", bRegex:!1, bSmart:!0}, Xe.models.oRow = {nTr:null, anCells:null, _aData:[], _aSortData:null, _aFilterData:null, _sFilterRow:null, _sRowStripe:"", src:null, idx: - 1}, Xe.models.oColumn = {idx:null, aDataSort:null, asSorting:null, bSearchable:null, bSortable:null, bVisible:null, _sManualType:null, _bAttrSrc:!1, fnCreatedCell:null, fnGetData:null, fnSetData:null, mData:null, mRender:null, nTh:null, nTf:null, sClass:null, sContentPadding:null, sDefaultContent:null, sName:null, sSortDataType:"std", sSortingClass:null, sSortingClassJUI:null, sTitle:null, sType:null, sWidth:null, sWidthOrig:null}, Xe.defaults = {aaData:null, aaSorting:[[0, "asc"]], aaSortingFixed:[], ajax:null, aLengthMenu:[10, 25, 50, 100], aoColumns:null, aoColumnDefs:null, aoSearchCols:[], asStripeClasses:null, bAutoWidth:!0, bDeferRender:!1, bDestroy:!1, bFilter:!0, bInfo:!0, bJQueryUI:!1, bLengthChange:!0, bPaginate:!0, bProcessing:!1, bRetrieve:!1, bScrollCollapse:!1, bServerSide:!1, bSort:!0, bSortMulti:!0, bSortCellsTop:!1, bSortClasses:!0, bStateSave:!1, fnCreatedRow:null, fnDrawCallback:null, fnFooterCallback:null, fnFormatNumber:function(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)}, fnHeaderCallback:null, fnInfoCallback:null, fnInitComplete:null, fnPreDrawCallback:null, fnRowCallback:null, fnServerData:null, fnServerParams:null, fnStateLoadCallback:function(e){try{return JSON.parse(( - 1 === e.iStateDuration?sessionStorage:localStorage).getItem("DataTables_" + e.sInstance + "_" + location.pathname))} catch (e){}}, fnStateLoadParams:null, fnStateLoaded:null, fnStateSaveCallback:function(e, t){try{( - 1 === e.iStateDuration?sessionStorage:localStorage).setItem("DataTables_" + e.sInstance + "_" + location.pathname, JSON.stringify(t))} catch (e){}}, fnStateSaveParams:null, iStateDuration:7200, iDeferLoading:null, iDisplayLength:10, iDisplayStart:0, iTabIndex:0, oClasses:{}, oLanguage:{oAria:{sSortAscending:": activate to sort column ascending", sSortDescending:": activate to sort column descending"}, oPaginate:{sFirst:"First", sLast:"Last", sNext:"Next", sPrevious:"Previous"}, sEmptyTable:"No data available in table", sInfo:"Showing _START_ to _END_ of _TOTAL_ entries", sInfoEmpty:"Showing 0 to 0 of 0 entries", sInfoFiltered:"(filtered from _MAX_ total entries)", sInfoPostFix:"", sDecimal:"", sThousands:",", sLengthMenu:"Show _MENU_ entries", sLoadingRecords:"Loading...", sProcessing:"Processing...", sSearch:"Search:", sSearchPlaceholder:"", sUrl:"", sZeroRecords:"No matching records found"}, oSearch:e.extend({}, Xe.models.oSearch), sAjaxDataProp:"data", sAjaxSource:null, sDom:"lfrtip", searchDelay:null, sPaginationType:"simple_numbers", sScrollX:"", sScrollXInner:"", sScrollY:"", sServerMethod:"GET", renderer:null, rowId:"DT_RowId"}, i(Xe.defaults), Xe.defaults.column = {aDataSort:null, iDataSort: - 1, asSorting:["asc", "desc"], bSearchable:!0, bSortable:!0, bVisible:!0, fnCreatedCell:null, mData:null, mRender:null, sCellType:"td", sClass:"", sContentPadding:"", sDefaultContent:null, sName:"", sSortDataType:"std", sTitle:null, sType:null, sWidth:null}, i(Xe.defaults.column), Xe.models.oSettings = {oFeatures:{bAutoWidth:null, bDeferRender:null, bFilter:null, bInfo:null, bLengthChange:null, bPaginate:null, bProcessing:null, bServerSide:null, bSort:null, bSortMulti:null, bSortClasses:null, bStateSave:null}, oScroll:{bCollapse:null, iBarWidth:0, sX:null, sXInner:null, sY:null}, oLanguage:{fnInfoCallback:null}, oBrowser:{bScrollOversize:!1, bScrollbarLeft:!1, bBounding:!1, barWidth:0}, ajax:null, aanFeatures:[], aoData:[], aiDisplay:[], aiDisplayMaster:[], aIds:{}, aoColumns:[], aoHeader:[], aoFooter:[], oPreviousSearch:{}, aoPreSearchCols:[], aaSorting:null, aaSortingFixed:[], asStripeClasses:null, asDestroyStripes:[], sDestroyWidth:0, aoRowCallback:[], aoHeaderCallback:[], aoFooterCallback:[], aoDrawCallback:[], aoRowCreatedCallback:[], aoPreDrawCallback:[], aoInitComplete:[], aoStateSaveParams:[], aoStateLoadParams:[], aoStateLoaded:[], sTableId:"", nTable:null, nTHead:null, nTFoot:null, nTBody:null, nTableWrapper:null, bDeferLoading:!1, bInitialised:!1, aoOpenRows:[], sDom:null, searchDelay:null, sPaginationType:"two_button", iStateDuration:0, aoStateSave:[], aoStateLoad:[], oSavedState:null, oLoadedState:null, sAjaxSource:null, sAjaxDataProp:null, bAjaxDataGet:!0, jqXHR:null, json:r, oAjaxData:r, fnServerData:null, aoServerParams:[], sServerMethod:null, fnFormatNumber:null, aLengthMenu:null, iDraw:0, bDrawing:!1, iDrawError: - 1, _iDisplayLength:10, _iDisplayStart:0, _iRecordsTotal:0, _iRecordsDisplay:0, bJUI:null, oClasses:{}, bFiltered:!1, bSorted:!1, bSortCellsTop:null, oInit:null, aoDestroyCallback:[], fnRecordsTotal:function(){return"ssp" == qe(this)?1 * this._iRecordsTotal:this.aiDisplayMaster.length}, fnRecordsDisplay:function(){return"ssp" == qe(this)?1 * this._iRecordsDisplay:this.aiDisplay.length}, fnDisplayEnd:function(){var e = this._iDisplayLength, t = this._iDisplayStart, n = t + e, r = this.aiDisplay.length, i = this.oFeatures, o = i.bPaginate; return i.bServerSide?!1 === o || - 1 === e?t + r:Math.min(t + e, this._iRecordsDisplay):!o || n > r || - 1 === e?r:n}, oInstance:null, sInstance:null, iTabIndex:0, nScrollHead:null, nScrollFoot:null, aLastSort:[], oPlugins:{}, rowIdFn:null, rowId:null}, Xe.ext = Be = {buttons:{}, classes:{}, builder:"-source-", errMode:"alert", feature:[], search:[], selector:{cell:[], column:[], row:[]}, internal:{}, legacy:{ajax:null}, pager:{}, renderer:{pageButton:{}, header:{}}, order:{}, type:{detect:[], search:{}, order:{}}, _unique:0, fnVersionCheck:Xe.fnVersionCheck, iApiIndex:0, oJUIClasses:{}, sVersion:Xe.version}, e.extend(Be, {afnFiltering:Be.search, aTypes:Be.type.detect, ofnSearch:Be.type.search, oSort:Be.type.order, afnSortData:Be.order, aoFeatures:Be.feature, oApi:Be.internal, oStdClasses:Be.classes, oPagination:Be.pager}), e.extend(Xe.ext.classes, {sTable:"dataTable", sNoFooter:"no-footer", sPageButton:"paginate_button", sPageButtonActive:"current", sPageButtonDisabled:"disabled", sStripeOdd:"odd", sStripeEven:"even", sRowEmpty:"dataTables_empty", sWrapper:"dataTables_wrapper", sFilter:"dataTables_filter", sInfo:"dataTables_info", sPaging:"dataTables_paginate paging_", sLength:"dataTables_length", sProcessing:"dataTables_processing", sSortAsc:"sorting_asc", sSortDesc:"sorting_desc", sSortable:"sorting", sSortableAsc:"sorting_asc_disabled", sSortableDesc:"sorting_desc_disabled", sSortableNone:"sorting_disabled", sSortColumn:"sorting_", sFilterInput:"", sLengthSelect:"", sScrollWrapper:"dataTables_scroll", sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner", sScrollBody:"dataTables_scrollBody", sScrollFoot:"dataTables_scrollFoot", sScrollFootInner:"dataTables_scrollFootInner", sHeaderTH:"", sFooterTH:"", sSortJUIAsc:"", sSortJUIDesc:"", sSortJUI:"", sSortJUIAscAllowed:"", sSortJUIDescAllowed:"", sSortJUIWrapper:"", sSortIcon:"", sJUIHeader:"", sJUIFooter:""}), function(){var t = ""; t = ""; var n = t + "ui-state-default", r = t + "css_right ui-icon ui-icon-", i = t + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; e.extend(Xe.ext.oJUIClasses, Xe.ext.classes, {sPageButton:"fg-button ui-button " + n, sPageButtonActive:"ui-state-disabled", sPageButtonDisabled:"ui-state-disabled", sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc:n + " sorting_asc", sSortDesc:n + " sorting_desc", sSortable:n + " sorting", sSortableAsc:n + " sorting_asc_disabled", sSortableDesc:n + " sorting_desc_disabled", sSortableNone:n + " sorting_disabled", sSortJUIAsc:r + "triangle-1-n", sSortJUIDesc:r + "triangle-1-s", sSortJUI:r + "carat-2-n-s", sSortJUIAscAllowed:r + "carat-1-n", sSortJUIDescAllowed:r + "carat-1-s", sSortJUIWrapper:"DataTables_sort_wrapper", sSortIcon:"DataTables_sort_icon", sScrollHead:"dataTables_scrollHead " + n, sScrollFoot:"dataTables_scrollFoot " + n, sHeaderTH:n, sFooterTH:n, sJUIHeader:i + " ui-corner-tl ui-corner-tr", sJUIFooter:i + " ui-corner-bl ui-corner-br"})}(); var qt = Xe.ext.pager; e.extend(qt, {simple:function(e, t){return["previous", "next"]}, full:function(e, t){return["first", "previous", "next", "last"]}, numbers:function(e, t){return[Me(e, t)]}, simple_numbers:function(e, t){return["previous", Me(e, t), "next"]}, full_numbers:function(e, t){return["first", "previous", Me(e, t), "next", "last"]}, first_last_numbers:function(e, t){return["first", Me(e, t), "last"]}, _numbers:Me, numbers_length:7}), e.extend(!0, Xe.ext.renderer, {pageButton:{_:function(t, i, o, a, s, l){var c, u, d, h = t.oClasses, f = t.oLanguage.oPaginate, p = t.oLanguage.oAria.paginate || {}, g = 0, v = function(n, r){var i, a, d, m, y = function(e){de(t, e.data.action, !0)}; for (i = 0, a = r.length; i < a; i++)if (m = r[i], e.isArray(m)){var b = e("<" + (m.DT_el || "div") + "/>").appendTo(n); v(b, m)} else{switch (c = null, u = "", m){case"ellipsis":n.append('<span class="ellipsis">&#x2026;</span>'); break; case"first":c = f.sFirst, u = m + (s > 0?"":" " + h.sPageButtonDisabled); break; case"previous":c = f.sPrevious, u = m + (s > 0?"":" " + h.sPageButtonDisabled); break; case"next":c = f.sNext, u = m + (s < l - 1?"":" " + h.sPageButtonDisabled); break; case"last":c = f.sLast, u = m + (s < l - 1?"":" " + h.sPageButtonDisabled); break; default:c = m + 1, u = s === m?h.sPageButtonActive:""}null !== c && (d = e("<a>", {class:h.sPageButton + " " + u, "aria-controls":t.sTableId, "aria-label":p[m], "data-dt-idx":g, tabindex:t.iTabIndex, id:0 === o && "string" == typeof m?t.sTableId + "_" + m:null}).html(c).appendTo(n), Ne(d, {action:m}, y), g++)}}; try{d = e(i).find(n.activeElement).data("dt-idx")} catch (e){}v(e(i).empty(), a), d !== r && e(i).find("[data-dt-idx=" + d + "]").focus()}}}), e.extend(Xe.ext.type.detect, [function(e, t){var n = t.oLanguage.sDecimal; return it(e, n)?"num" + n:null}, function(e, t){if (e && !(e instanceof Date) && !Ke.test(e))return null; var n = Date.parse(e); return null !== n && !isNaN(n) || tt(e)?"date":null}, function(e, t){var n = t.oLanguage.sDecimal; return it(e, n, !0)?"num-fmt" + n:null}, function(e, t){var n = t.oLanguage.sDecimal; return at(e, n)?"html-num" + n:null}, function(e, t){var n = t.oLanguage.sDecimal; return at(e, n, !0)?"html-num-fmt" + n:null}, function(e, t){return tt(e) || "string" == typeof e && - 1 !== e.indexOf("<")?"html":null}]), e.extend(Xe.ext.type.search, {html:function(e){return tt(e)?e:"string" == typeof e?e.replace(Ye, " ").replace(Qe, ""):""}, string:function(e){return tt(e)?e:"string" == typeof e?e.replace(Ye, " "):e}}); var Mt = function(e, t, n, r){return 0 === e || e && "-" !== e?(t && (e = rt(e, t)), e.replace && (n && (e = e.replace(n, "")), r && (e = e.replace(r, ""))), 1 * e): - 1 / 0}; e.extend(Be.type.order, {"date-pre":function(e){return Date.parse(e) || - 1 / 0}, "html-pre":function(e){return tt(e)?"":e.replace?e.replace(/<.*?>/g, "").toLowerCase():e + ""}, "string-pre":function(e){return tt(e)?"":"string" == typeof e?e.toLowerCase():e.toString?e.toString():""}, "string-asc":function(e, t){return e < t? - 1:e > t?1:0}, "string-desc":function(e, t){return e < t?1:e > t? - 1:0}}), We(""), e.extend(!0, Xe.ext.renderer, {header:{_:function(t, n, r, i){e(t.nTable).on("order.dt.DT", function(e, o, a, s){if (t === o){var l = r.idx; n.removeClass(r.sSortingClass + " " + i.sSortAsc + " " + i.sSortDesc).addClass("asc" == s[l]?i.sSortAsc:"desc" == s[l]?i.sSortDesc:r.sSortingClass)}})}, jqueryui:function(t, n, r, i){e("<div/>").addClass(i.sSortJUIWrapper).append(n.contents()).append(e("<span/>").addClass(i.sSortIcon + " " + r.sSortingClassJUI)).appendTo(n), e(t.nTable).on("order.dt.DT", function(e, o, a, s){if (t === o){var l = r.idx; n.removeClass(i.sSortAsc + " " + i.sSortDesc).addClass("asc" == s[l]?i.sSortAsc:"desc" == s[l]?i.sSortDesc:r.sSortingClass), n.find("span." + i.sSortIcon).removeClass(i.sSortJUIAsc + " " + i.sSortJUIDesc + " " + i.sSortJUI + " " + i.sSortJUIAscAllowed + " " + i.sSortJUIDescAllowed).addClass("asc" == s[l]?i.sSortJUIAsc:"desc" == s[l]?i.sSortJUIDesc:r.sSortingClassJUI)}})}}}); var Wt = function(e){return"string" == typeof e?e.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;"):e}; return Xe.render = {number:function(e, t, n, r, i){return{display:function(o){if ("number" != typeof o && "string" != typeof o)return o; var a = o < 0?"-":"", s = parseFloat(o); if (isNaN(s))return Wt(o); s = s.toFixed(n), o = Math.abs(s); var l = parseInt(o, 10), c = n?t + (o - l).toFixed(n).substring(2):""; return a + (r || "") + l.toString().replace(/\B(?=(\d{3})+(?!\d))/g, e) + c + (i || "")}}}, text:function(){return{display:Wt}}}, e.extend(Xe.ext.internal, {_fnExternApiFunc:Ue, _fnBuildAjax:U, _fnAjaxUpdate:B, _fnAjaxParameters:z, _fnAjaxUpdateDraw:G, _fnAjaxDataSrc:V, _fnAddColumn:d, _fnColumnOptions:h, _fnAdjustColumnSizing:f, _fnVisibleToColumnIndex:p, _fnColumnIndexToVisible:g, _fnVisbleColumns:v, _fnGetColumns:m, _fnColumnTypes:y, _fnApplyColumnDefs:b, _fnHungarianMap:i, _fnCamelToHungarian:o, _fnLanguageCompat:a, _fnBrowserDetect:c, _fnAddData:w, _fnAddTr:x, _fnNodeToDataIndex:S, _fnNodeToColumnIndex:T, _fnGetCellData:C, _fnSetCellData:D, _fnSplitObjNotation:_, _fnGetObjectDataFn:$, _fnSetObjectDataFn:A, _fnGetDataMaster:E, _fnClearTable:I, _fnDeleteIndex:k, _fnInvalidate:L, _fnGetRowElements:j, _fnCreateTr:O, _fnBuildHead:R, _fnDrawHead:P, _fnDraw:F, _fnReDraw:H, _fnAddOptionsHtml:q, _fnDetectHeader:M, _fnGetUniqueThs:W, _fnFeatureHtmlFilter:X, _fnFilterComplete:J, _fnFilterCustom:Y, _fnFilterColumn:Q, _fnFilter:K, _fnFilterCreateSearch:Z, _fnEscapeRegex:vt, _fnFilterData:ee, _fnFeatureHtmlInfo:re, _fnUpdateInfo:ie, _fnInfoMacros:oe, _fnInitialise:ae, _fnInitComplete:se, _fnLengthChange:le, _fnFeatureHtmlLength:ce, _fnFeatureHtmlPaginate:ue, _fnPageChange:de, _fnFeatureHtmlProcessing:he, _fnProcessingDisplay:fe, _fnFeatureHtmlTable:pe, _fnScrollDraw:ge, _fnApplyToChildren:ve, _fnCalculateColumnWidths:me, _fnThrottle:wt, _fnConvertToWidth:ye, _fnGetWidestNode:be, _fnGetMaxLenString:we, _fnStringToCss:xe, _fnSortFlatten:Se, _fnSort:Te, _fnSortAria:Ce, _fnSortListener:De, _fnSortAttachListener:_e, _fnSortingClasses:$e, _fnSortData:Ae, _fnSaveState:Ee, _fnLoadState:Ie, _fnSettingsFromNode:ke, _fnLog:Le, _fnMap:je, _fnBindAction:Ne, _fnCallbackReg:Re, _fnCallbackFire:Pe, _fnLengthOverflow:Fe, _fnRenderer:He, _fnDataSource:qe, _fnRowAttributes:N, _fnCalculateEnd:function(){}}), e.fn.dataTable = Xe, Xe.$ = e, e.fn.dataTableSettings = Xe.settings, e.fn.dataTableExt = Xe.ext, e.fn.DataTable = function(t){return e(this).dataTable(t).api()}, e.each(Xe, function(t, n){e.fn.DataTable[t] = n}), e.fn.dataTable}), "undefined" == typeof jQuery)throw new Error("AdminLTE requires jQuery"); $.AdminLTE = {}, $.AdminLTE.options = {navbarMenuSlimscroll:!0, navbarMenuSlimscrollWidth:"3px", navbarMenuHeight:"200px", animationSpeed:500, sidebarToggleSelector:"[data-toggle='offcanvas']", sidebarPushMenu:!0, sidebarSlimScroll:!0, sidebarExpandOnHover:!1, enableBoxRefresh:!0, enableBSToppltip:!0, BSTooltipSelector:"[data-toggle='tooltip']", enableFastclick:!1, enableControlSidebar:!0, controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']", selector:".control-sidebar", slide:!0}, enableBoxWidget:!0, boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus", open:"fa-plus", remove:"fa-times"}, boxWidgetSelectors:{remove:'[data-widget="remove"]', collapse:'[data-widget="collapse"]'}}, directChat:{enable:!0, contactToggleSelector:'[data-widget="chat-pane-toggle"]'}, colors:{lightBlue:"#3c8dbc", red:"#f56954", green:"#00a65a", aqua:"#00c0ef", yellow:"#f39c12", blue:"#0073b7", navy:"#001F3F", teal:"#39CCCC", olive:"#3D9970", lime:"#01FF70", orange:"#FF851B", fuchsia:"#F012BE", purple:"#8E24AA", maroon:"#D81B60", black:"#222222", gray:"#d2d6de"}, screenSizes:{xs:480, sm:768, md:992, lg:1200}}, $(function(){"use strict"; $("body").removeClass("hold-transition"), "undefined" != typeof AdminLTEOptions && $.extend(!0, $.AdminLTE.options, AdminLTEOptions); var e = $.AdminLTE.options; _init(), $.AdminLTE.layout.activate(), $.AdminLTE.tree(".sidebar"), e.enableControlSidebar && $.AdminLTE.controlSidebar.activate(), e.navbarMenuSlimscroll && void 0 !== $.fn.slimscroll && $(".navbar .menu").slimscroll({height:e.navbarMenuHeight, alwaysVisible:!1, size:e.navbarMenuSlimscrollWidth}).css("width", "100%"), e.sidebarPushMenu && $.AdminLTE.pushMenu.activate(e.sidebarToggleSelector), e.enableBSToppltip && $("body").tooltip({selector:e.BSTooltipSelector}), e.enableBoxWidget && $.AdminLTE.boxWidget.activate(), e.enableFastclick && "undefined" != typeof FastClick && FastClick.attach(document.body), e.directChat.enable && $(document).on("click", e.directChat.contactToggleSelector, function(){$(this).parents(".direct-chat").first().toggleClass("direct-chat-contacts-open")}), $('.btn-group[data-toggle="btn-toggle"]').each(function(){var e = $(this); $(this).find(".btn").on("click", function(t){e.find(".btn.active").removeClass("active"), $(this).addClass("active"), t.preventDefault()})})}), function(e){"use strict"; e.fn.boxRefresh = function(t){function n(e){e.append(o), i.onLoadStart.call(e)}function r(e){e.find(o).remove(), i.onLoadDone.call(e)}var i = e.extend({trigger:".refresh-btn", source:"", onLoadStart:function(e){return e}, onLoadDone:function(e){return e}}, t), o = e('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>'); return this.each(function(){if ("" === i.source)return void(window.console && window.console.log("Please specify a source first - boxRefresh()")); var t = e(this); t.find(i.trigger).first().on("click", function(e){e.preventDefault(), n(t), t.find(".box-body").load(i.source, function(){r(t)})})})}}(jQuery), function(e){"use strict"; e.fn.activateBox = function(){e.AdminLTE.boxWidget.activate(this)}, e.fn.toggleBox = function(){var t = e(e.AdminLTE.boxWidget.selectors.collapse, this); e.AdminLTE.boxWidget.collapse(t)}, e.fn.removeBox = function(){var t = e(e.AdminLTE.boxWidget.selectors.remove, this); e.AdminLTE.boxWidget.remove(t)}}(jQuery), function(e){"use strict"; e.fn.todolist = function(t){var n = e.extend({onCheck:function(e){return e}, onUncheck:function(e){return e}}, t); return this.each(function(){void 0 !== e.fn.iCheck?(e("input", this).on("ifChecked", function(){var t = e(this).parents("li").first(); t.toggleClass("done"), n.onCheck.call(t)}), e("input", this).on("ifUnchecked", function(){var t = e(this).parents("li").first(); t.toggleClass("done"), n.onUncheck.call(t)})):e("input", this).on("change", function(){var t = e(this).parents("li").first(); t.toggleClass("done"), e("input", t).is(":checked")?n.onCheck.call(t):n.onUncheck.call(t)})})}}(jQuery);
          function convertToCSV(JSONData, ReportTitle, ShowLabel) {
  
          //If JSONData is not an object then JSON.parse will parse the JSON string in an Object
          var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
                  var CSV = '';
                  //This condition will generate the Label/Header
                  var row = "";
                  //This loop will extract the label from 1st index of on array
                  for (var index in arrData[0]) {
          //Now convert each value to string and comma-seprated
          row += index + ',';
          }
  
          row = row.slice(0, - 1);
                  //append Label row with line break
                  CSV += row + '\r\n';
                  //1st loop is to extract each row
                  for (var i = 0; i < arrData.length; i++) {
          var row = "";
                  //2nd loop will extract each column and convert it in string comma-seprated
                  for (var index in arrData[i]) {
          row += '"' + arrData[i][index] + '",';
          }
  
          row.slice(0, row.length - 1);
                  //add a line break after each row
                  CSV += row + '\r\n';
          }
  
          if (CSV == '') {
          alert("Invalid data");
                  return;
          }
  
          return CSV;
          }
  
  function exportCSVFile(items, fileTitle) {
  
  var csv = this.convertToCSV(items);
          var exportedFilenmae = fileTitle + '.csv' || 'export.csv';
          var blob = new Blob([csv], {type: 'text/csv;charset=utf-8;'});
          if (navigator.msSaveBlob) { // IE 10+
  navigator.msSaveBlob(blob, exportedFilenmae);
  } else {
  var link = document.createElement("a");
          if (link.download !== undefined) { // feature detection
  // Browsers that support HTML5 download attribute
  var url = URL.createObjectURL(blob);
          link.setAttribute("href", url);
          link.setAttribute("download", exportedFilenmae);
          link.style.visibility = 'hidden';
          document.body.appendChild(link);
          link.click();
          document.body.removeChild(link);
  }
  }
  }
  
  (function($){
      $(document).on('ajaxError', function(event, xhr) {
        if (xhr.status === 401 || xhr.status === 403) {
         alert('You do not have permission to do this');
        }
      });
  })(jQuery);