"use strict"; !function(a, b, c) { function d(a) { return function() { var b, c = arguments[0]; for (b = "[" + (a ? a + ":" : "") + c + "] http://errors.angularjs.org/1.4.14/" + (a ? a + "/" : "") + c, c = 1; c < arguments.length; c++) { b = b + (1 == c ? "?" : "&") + "p" + (c - 1) + "="; var d, e = encodeURIComponent; d = arguments[c], d = "function" == typeof d ? d.toString().replace(/ \{[\s\S]*$/, "") : "undefined" == typeof d ? "undefined" : "string" != typeof d ? JSON.stringify(d) : d, b += e(d); } return Error(b); }; } function e(a) { if (null == a || B(a)) return !1; if (ed(a) || w(a) || Qc && a instanceof Qc) return !0; var b = "length" in Object(a) && a.length; return x(b) && (0 <= b && (b - 1 in a || a instanceof Array) || "function" == typeof a.item); } function f(a, b, c) { var d, g; if (a) if (z(a)) for (d in a) "prototype" == d || "length" == d || "name" == d || a.hasOwnProperty && !a.hasOwnProperty(d) || b.call(c, a[d], d, a); else if (ed(a) || e(a)) { var h = "object" != typeof a; for (d = 0, g = a.length; d < g; d++) (h || d in a) && b.call(c, a[d], d, a); } else if (a.forEach && a.forEach !== f) a.forEach(b, c, a); else if (v(a)) for (d in a) b.call(c, a[d], d, a); else if ("function" == typeof a.hasOwnProperty) for (d in a) a.hasOwnProperty(d) && b.call(c, a[d], d, a); else for (d in a) Vc.call(a, d) && b.call(c, a[d], d, a); return a; } function g(a, b, c) { for (var d = Object.keys(a).sort(), e = 0; e < d.length; e++) b.call(c, a[d[e]], d[e]); return d; } function h(a) { return function(b, c) { a(c, b); }; } function i() { return ++cd; } function j(a, b, c) { for (var d = a.$$hashKey, e = 0, f = b.length; e < f; ++e) { var g = b[e]; if (u(g) || z(g)) for (var h = Object.keys(g), i = 0, k = h.length; i < k; i++) { var l = h[i], m = g[l]; c && u(m) ? y(m) ? a[l] = new Date(m.valueOf()) : A(m) ? a[l] = new RegExp(m) : m.nodeName ? a[l] = m.cloneNode(!0) : F(m) ? a[l] = m.clone() : (u(a[l]) || (a[l] = ed(m) ? [] : {}), j(a[l], [ m ], !0)) : a[l] = m; } } return d ? a.$$hashKey = d : delete a.$$hashKey, a; } function k(a) { return j(a, Xc.call(arguments, 1), !1); } function l(a) { return j(a, Xc.call(arguments, 1), !0); } function m(a) { return parseInt(a, 10); } function n(a, b) { return k(Object.create(a), b); } function o() {} function p(a) { return a; } function q(a) { return function() { return a; }; } function r(a) { return z(a.toString) && a.toString !== $c; } function s(a) { return "undefined" == typeof a; } function t(a) { return "undefined" != typeof a; } function u(a) { return null !== a && "object" == typeof a; } function v(a) { return null !== a && "object" == typeof a && !_c(a); } function w(a) { return "string" == typeof a; } function x(a) { return "number" == typeof a; } function y(a) { return "[object Date]" === $c.call(a); } function z(a) { return "function" == typeof a; } function A(a) { return "[object RegExp]" === $c.call(a); } function B(a) { return a && a.window === a; } function C(a) { return a && a.$evalAsync && a.$watch; } function D(a) { return "boolean" == typeof a; } function E(a) { return a && x(a.length) && fd.test($c.call(a)); } function F(a) { return !(!a || !(a.nodeName || a.prop && a.attr && a.find)); } function G(a) { var b = {}; a = a.split(","); var c; for (c = 0; c < a.length; c++) b[a[c]] = !0; return b; } function H(a) { return Uc(a.nodeName || a[0] && a[0].nodeName); } function I(a, b) { var c = a.indexOf(b); return 0 <= c && a.splice(c, 1), c; } function J(a, b) { function c(a, b) { var c, e = b.$$hashKey; if (ed(a)) { c = 0; for (var f = a.length; c < f; c++) b.push(d(a[c])); } else if (v(a)) for (c in a) b[c] = d(a[c]); else if (a && "function" == typeof a.hasOwnProperty) for (c in a) a.hasOwnProperty(c) && (b[c] = d(a[c])); else for (c in a) Vc.call(a, c) && (b[c] = d(a[c])); return e ? b.$$hashKey = e : delete b.$$hashKey, b; } function d(a) { if (!u(a)) return a; var b = e.indexOf(a); if (-1 !== b) return g[b]; if (B(a) || C(a)) throw ad("cpws"); var d, b = !1; return ed(a) ? (d = [], b = !0) : E(a) ? d = new a.constructor(a) : y(a) ? d = new Date(a.getTime()) : A(a) ? (d = new RegExp(a.source, a.toString().match(/[^\/]*$/)[0]), d.lastIndex = a.lastIndex) : "[object Blob]" === $c.call(a) ? d = new a.constructor([ a ], { type: a.type }) : z(a.cloneNode) ? d = a.cloneNode(!0) : (d = Object.create(_c(a)), b = !0), e.push(a), g.push(d), b ? c(a, d) : d; } var e = [], g = []; if (b) { if (E(b)) throw ad("cpta"); if (a === b) throw ad("cpi"); return ed(b) ? b.length = 0 : f(b, function(a, c) { "$$hashKey" !== c && delete b[c]; }), e.push(a), g.push(b), c(a, b); } return d(a); } function K(a, b) { if (ed(a)) { b = b || []; for (var c = 0, d = a.length; c < d; c++) b[c] = a[c]; } else if (u(a)) for (c in b = b || {}, a) "$" === c.charAt(0) && "$" === c.charAt(1) || (b[c] = a[c]); return b || a; } function L(a, b) { if (a === b) return !0; if (null === a || null === b) return !1; if (a !== a && b !== b) return !0; var c, d = typeof a; if (d == typeof b && "object" == d) { if (!ed(a)) { if (y(a)) return !!y(b) && L(a.getTime(), b.getTime()); if (A(a)) return !!A(b) && a.toString() == b.toString(); if (C(a) || C(b) || B(a) || B(b) || ed(b) || y(b) || A(b)) return !1; d = ja(); for (c in a) if ("$" !== c.charAt(0) && !z(a[c])) { if (!L(a[c], b[c])) return !1; d[c] = !0; } for (c in b) if (!(c in d) && "$" !== c.charAt(0) && t(b[c]) && !z(b[c])) return !1; return !0; } if (!ed(b)) return !1; if ((d = a.length) == b.length) { for (c = 0; c < d; c++) if (!L(a[c], b[c])) return !1; return !0; } } return !1; } function M(a, b, c) { return a.concat(Xc.call(b, c)); } function N(a, b) { var c = 2 < arguments.length ? Xc.call(arguments, 2) : []; return !z(b) || b instanceof RegExp ? b : c.length ? function() { return arguments.length ? b.apply(a, M(c, arguments, 0)) : b.apply(a, c); } : function() { return arguments.length ? b.apply(a, arguments) : b.call(a); }; } function O(a, d) { var e = d; return "string" == typeof a && "$" === a.charAt(0) && "$" === a.charAt(1) ? e = c : B(d) ? e = "$WINDOW" : d && b === d ? e = "$DOCUMENT" : C(d) && (e = "$SCOPE"), e; } function P(a, b) { return s(a) ? c : (x(b) || (b = b ? 2 : null), JSON.stringify(a, O, b)); } function Q(a) { return w(a) ? JSON.parse(a) : a; } function R(a, b) { a = a.replace(kd, ""); var c = Date.parse("Jan 01, 1970 00:00:00 " + a) / 6e4; return isNaN(c) ? b : c; } function S(a, b, c) { c = c ? -1 : 1; var d = a.getTimezoneOffset(); return b = R(b, d), c *= b - d, a = new Date(a.getTime()), a.setMinutes(a.getMinutes() + c), a; } function T(a) { a = Qc(a).clone(); try { a.empty(); } catch (b) {} var c = Qc("
").append(a).html(); try { return a[0].nodeType === od ? Uc(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) { return "<" + Uc(b); }); } catch (d) { return Uc(c); } } function U(a) { try { return decodeURIComponent(a); } catch (b) {} } function V(a) { var b = {}; return f((a || "").split("&"), function(a) { var c, d, e; a && (d = a = a.replace(/\+/g, "%20"), c = a.indexOf("="), -1 !== c && (d = a.substring(0, c), e = a.substring(c + 1)), d = U(d), t(d) && (e = !t(e) || U(e), Vc.call(b, d) ? ed(b[d]) ? b[d].push(e) : b[d] = [ b[d], e ] : b[d] = e)); }), b; } function W(a) { var b = []; return f(a, function(a, c) { ed(a) ? f(a, function(a) { b.push(Y(c, !0) + (!0 === a ? "" : "=" + Y(a, !0))); }) : b.push(Y(c, !0) + (!0 === a ? "" : "=" + Y(a, !0))); }), b.length ? b.join("&") : ""; } function X(a) { return Y(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+"); } function Y(a, b) { return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, b ? "%20" : "+"); } function Z(a, b) { var c, d, e = ld.length; for (d = 0; d < e; ++d) if (c = ld[d] + b, w(c = a.getAttribute(c))) return c; return null; } function $(a, b) { var c, d, e = {}; f(ld, function(b) { b += "app", !c && a.hasAttribute && a.hasAttribute(b) && (c = a, d = a.getAttribute(b)); }), f(ld, function(b) { b += "app"; var e; !c && (e = a.querySelector("[" + b.replace(":", "\\:") + "]")) && (c = e, d = e.getAttribute(b)); }), c && (e.strictDi = null !== Z(c, "strict-di"), b(c, d ? [ d ] : [], e)); } function _(c, d, e) { u(e) || (e = {}), e = k({ strictDi: !1 }, e); var g = function() { if (c = Qc(c), c.injector()) { var a = c[0] === b ? "document" : T(c); throw ad("btstrpd", a.replace(//, ">")); } return d = d || [], d.unshift([ "$provide", function(a) { a.value("$rootElement", c); } ]), e.debugInfoEnabled && d.push([ "$compileProvider", function(a) { a.debugInfoEnabled(!0); } ]), d.unshift("ng"), a = Oa(d, e.strictDi), a.invoke([ "$rootScope", "$rootElement", "$compile", "$injector", function(a, b, c, d) { a.$apply(function() { b.data("$injector", d), c(b)(a); }); } ]), a; }, h = /^NG_ENABLE_DEBUG_INFO!/, i = /^NG_DEFER_BOOTSTRAP!/; return a && h.test(a.name) && (e.debugInfoEnabled = !0, a.name = a.name.replace(h, "")), a && !i.test(a.name) ? g() : (a.name = a.name.replace(i, ""), bd.resumeBootstrap = function(a) { return f(a, function(a) { d.push(a); }), g(); }, void (z(bd.resumeDeferredBootstrap) && bd.resumeDeferredBootstrap())); } function aa() { a.name = "NG_ENABLE_DEBUG_INFO!" + a.name, a.location.reload(); } function ba(a) { if (a = bd.element(a).injector(), !a) throw ad("test"); return a.get("$$testability"); } function ca(a, b) { return b = b || "_", a.replace(md, function(a, c) { return (c ? b : "") + a.toLowerCase(); }); } function da() { var b; if (!nd) { var d = jd(); (Rc = s(d) ? a.jQuery : d ? a[d] : c) && Rc.fn.on ? (Qc = Rc, k(Rc.fn, { scope: Cd.scope, isolateScope: Cd.isolateScope, controller: Cd.controller, injector: Cd.injector, inheritedData: Cd.inheritedData }), b = Rc.cleanData, Rc.cleanData = function(a) { var c; if (dd) dd = !1; else for (var d, e = 0; null != (d = a[e]); e++) (c = Rc._data(d, "events")) && c.$destroy && Rc(d).triggerHandler("$destroy"); b(a); }) : Qc = qa, bd.element = Qc, nd = !0; } } function ea(a, b, c) { if (!a) throw ad("areq", b || "?", c || "required"); return a; } function fa(a, b, c) { return c && ed(a) && (a = a[a.length - 1]), ea(z(a), b, "not a function, got " + (a && "object" == typeof a ? a.constructor.name || "Object" : typeof a)), a; } function ga(a, b) { if ("hasOwnProperty" === a) throw ad("badname", b); } function ha(a, b, c) { if (!b) return a; b = b.split("."); for (var d, e = a, f = b.length, g = 0; g < f; g++) d = b[g], a && (a = (e = a)[d]); return !c && z(a) ? N(e, a) : a; } function ia(a) { for (var b, c = a[0], d = a[a.length - 1], e = 1; c !== d && (c = c.nextSibling); e++) (b || a[e] !== c) && (b || (b = Qc(Xc.call(a, 0, e))), b.push(c)); return b || a; } function ja() { return Object.create(null); } function ka(a) { function b(a, b, c) { return a[b] || (a[b] = c()); } var c = d("$injector"), e = d("ng"); return a = b(a, "angular", Object), a.$$minErr = a.$$minErr || d, b(a, "module", function() { var a = {}; return function(d, f, g) { if ("hasOwnProperty" === d) throw e("badname", "module"); return f && a.hasOwnProperty(d) && (a[d] = null), b(a, d, function() { function a(a, b, c, d) { return d || (d = e), function() { return d[c || "push"]([ a, b, arguments ]), k; }; } function b(a, b) { return function(c, f) { return f && z(f) && (f.$$moduleName = d), e.push([ a, b, arguments ]), k; }; } if (!f) throw c("nomod", d); var e = [], h = [], i = [], j = a("$injector", "invoke", "push", h), k = { _invokeQueue: e, _configBlocks: h, _runBlocks: i, requires: f, name: d, provider: b("$provide", "provider"), factory: b("$provide", "factory"), service: b("$provide", "service"), value: a("$provide", "value"), constant: a("$provide", "constant", "unshift"), decorator: b("$provide", "decorator"), animation: b("$animateProvider", "register"), filter: b("$filterProvider", "register"), controller: b("$controllerProvider", "register"), directive: b("$compileProvider", "directive"), config: j, run: function(a) { return i.push(a), this; } }; return g && j(g), k; }); }; }); } function la(b) { k(b, { bootstrap: _, copy: J, extend: k, merge: l, equals: L, element: Qc, forEach: f, injector: Oa, noop: o, bind: N, toJson: P, fromJson: Q, identity: p, isUndefined: s, isDefined: t, isString: w, isFunction: z, isObject: u, isNumber: x, isElement: F, isArray: ed, version: pd, isDate: y, lowercase: Uc, uppercase: Wc, callbacks: { counter: 0 }, getTestability: ba, $$minErr: d, $$csp: id, reloadWithDebugInfo: aa }), (Sc = ka(a))("ng", [ "ngLocale" ], [ "$provide", function(a) { a.provider({ $$sanitizeUri: Yb }), a.provider("$compile", Xa).directive({ a: Ee, input: Ve, textarea: Ve, form: Ie, script: Kf, select: Nf, style: Pf, option: Of, ngBind: Ye, ngBindHtml: $e, ngBindTemplate: Ze, ngClass: af, ngClassEven: cf, ngClassOdd: bf, ngCloak: df, ngController: ef, ngForm: Je, ngHide: Ef, ngIf: hf, ngInclude: jf, ngInit: lf, ngNonBindable: xf, ngPluralize: Bf, ngRepeat: Cf, ngShow: Df, ngStyle: Ff, ngSwitch: Gf, ngSwitchWhen: Hf, ngSwitchDefault: If, ngOptions: Af, ngTransclude: Jf, ngModel: uf, ngList: mf, ngChange: _e, pattern: Rf, ngPattern: Rf, required: Qf, ngRequired: Qf, minlength: Tf, ngMinlength: Tf, maxlength: Sf, ngMaxlength: Sf, ngValue: Xe, ngModelOptions: wf }).directive({ ngInclude: kf }).directive(Fe).directive(ff), a.provider({ $anchorScroll: Pa, $animate: Pd, $animateCss: Sd, $$animateJs: Nd, $$animateQueue: Od, $$AnimateRunner: Rd, $$animateAsyncRun: Qd, $browser: Ua, $cacheFactory: Va, $controller: _a, $document: ab, $exceptionHandler: bb, $filter: kc, $$forceReflow: Xd, $interpolate: nb, $interval: ob, $http: jb, $httpParamSerializer: db, $httpParamSerializerJQLike: eb, $httpBackend: lb, $xhrFactory: kb, $location: Ab, $log: Bb, $parse: Sb, $rootScope: Xb, $q: Tb, $$q: Ub, $sce: ac, $sceDelegate: _b, $sniffer: bc, $templateCache: Wa, $templateRequest: cc, $$testability: dc, $timeout: ec, $window: hc, $$rAF: Wb, $$jqLite: Ka, $$HashMap: Gd, $$cookieReader: jc }); } ]); } function ma(a) { return a.replace(sd, function(a, b, c, d) { return d ? c.toUpperCase() : c; }).replace(td, "Moz$1"); } function na(a) { return a = a.nodeType, 1 === a || !a || 9 === a; } function oa(a, b) { var c, d, e = b.createDocumentFragment(), g = []; if (xd.test(a)) { for (c = c || e.appendChild(b.createElement("div")), d = (yd.exec(a) || [ "", "" ])[1].toLowerCase(), d = Ad[d] || Ad._default, c.innerHTML = d[1] + a.replace(zd, "<$1>") + d[2], d = d[0]; d--; ) c = c.lastChild; g = M(g, c.childNodes), c = e.firstChild, c.textContent = ""; } else g.push(b.createTextNode(a)); return e.textContent = "", e.innerHTML = "", f(g, function(a) { e.appendChild(a); }), e; } function pa(a, b) { var c = a.parentNode; c && c.replaceChild(b, a), b.appendChild(a); } function qa(a) { if (a instanceof qa) return a; var c; if (w(a) && (a = gd(a), c = !0), !(this instanceof qa)) { if (c && "<" != a.charAt(0)) throw vd("nosel"); return new qa(a); } if (c) { c = b; var d; a = (d = wd.exec(a)) ? [ c.createElement(d[1]) ] : (d = oa(a, c)) ? d.childNodes : []; } Aa(this, a); } function ra(a) { return a.cloneNode(!0); } function sa(a, b) { if (b || ua(a), a.querySelectorAll) for (var c = a.querySelectorAll("*"), d = 0, e = c.length; d < e; d++) ua(c[d]); } function ta(a, b, c, d) { if (t(d)) throw vd("offargs"); var e = (d = va(a)) && d.events, g = d && d.handle; if (g) if (b) { var h = function(b) { var d = e[b]; t(c) && I(d || [], c), t(c) && d && 0 < d.length || (a.removeEventListener(b, g, !1), delete e[b]); }; f(b.split(" "), function(a) { h(a), ud[a] && h(ud[a]); }); } else for (b in e) "$destroy" !== b && a.removeEventListener(b, g, !1), delete e[b]; } function ua(a, b) { var d = a.ng339, e = d && qd[d]; e && (b ? delete e.data[b] : (e.handle && (e.events.$destroy && e.handle({}, "$destroy"), ta(a)), delete qd[d], a.ng339 = c)); } function va(a, b) { var d = a.ng339, d = d && qd[d]; return b && !d && (a.ng339 = d = ++rd, d = qd[d] = { events: {}, data: {}, handle: c }), d; } function wa(a, b, c) { if (na(a)) { var d = t(c), e = !d && b && !u(b), f = !b; if (a = (a = va(a, !e)) && a.data, d) a[b] = c; else { if (f) return a; if (e) return a && a[b]; k(a, b); } } } function xa(a, b) { return !!a.getAttribute && -1 < (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + b + " "); } function ya(a, b) { b && a.setAttribute && f(b.split(" "), function(b) { a.setAttribute("class", gd((" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + gd(b) + " ", " "))); }); } function za(a, b) { if (b && a.setAttribute) { var c = (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " "); f(b.split(" "), function(a) { a = gd(a), -1 === c.indexOf(" " + a + " ") && (c += a + " "); }), a.setAttribute("class", gd(c)); } } function Aa(a, b) { if (b) if (b.nodeType) a[a.length++] = b; else { var c = b.length; if ("number" == typeof c && b.window !== b) { if (c) for (var d = 0; d < c; d++) a[a.length++] = b[d]; } else a[a.length++] = b; } } function Ba(a, b) { return Ca(a, "$" + (b || "ngController") + "Controller"); } function Ca(a, b, c) { for (9 == a.nodeType && (a = a.documentElement), b = ed(b) ? b : [ b ]; a; ) { for (var d = 0, e = b.length; d < e; d++) if (t(c = Qc.data(a, b[d]))) return c; a = a.parentNode || 11 === a.nodeType && a.host; } } function Da(a) { for (sa(a, !0); a.firstChild; ) a.removeChild(a.firstChild); } function Ea(a, b) { b || sa(a); var c = a.parentNode; c && c.removeChild(a); } function Fa(b, c) { c = c || a, "complete" === c.document.readyState ? c.setTimeout(b) : Qc(c).on("load", b); } function Ga(a, b) { var c = Dd[b.toLowerCase()]; return c && Ed[H(a)] && c; } function Ha(a, b) { var c = function(c, d) { c.isDefaultPrevented = function() { return c.defaultPrevented; }; var e = b[d || c.type], f = e ? e.length : 0; if (f) { if (s(c.immediatePropagationStopped)) { var g = c.stopImmediatePropagation; c.stopImmediatePropagation = function() { c.immediatePropagationStopped = !0, c.stopPropagation && c.stopPropagation(), g && g.call(c); }; } c.isImmediatePropagationStopped = function() { return !0 === c.immediatePropagationStopped; }; var h = e.specialHandlerWrapper || Ia; 1 < f && (e = K(e)); for (var i = 0; i < f; i++) c.isImmediatePropagationStopped() || h(a, c, e[i]); } }; return c.elem = a, c; } function Ia(a, b, c) { c.call(a, b); } function Ja(a, b, c) { var d = b.relatedTarget; d && (d === a || Bd.call(a, d)) || c.call(a, b); } function Ka() { this.$get = function() { return k(qa, { hasClass: function(a, b) { return a.attr && (a = a[0]), xa(a, b); }, addClass: function(a, b) { return a.attr && (a = a[0]), za(a, b); }, removeClass: function(a, b) { return a.attr && (a = a[0]), ya(a, b); } }); }; } function La(a, b) { var c = a && a.$$hashKey; return c ? ("function" == typeof c && (c = a.$$hashKey()), c) : (c = typeof a, c = "function" == c || "object" == c && null !== a ? a.$$hashKey = c + ":" + (b || i)() : c + ":" + a); } function Ma(a, b) { if (b) { var c = 0; this.nextUid = function() { return ++c; }; } f(a, this.put, this); } function Na(a) { return (a = a.toString().replace(Kd, "").match(Hd)) ? "function(" + (a[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn"; } function Oa(a, b) { function d(a) { return function(b, c) { return u(b) ? void f(b, h(a)) : a(b, c); }; } function e(a, b) { if (ga(a, "service"), (z(b) || ed(b)) && (b = p.instantiate(b)), !b.$get) throw Ld("pget", a); return o[a + "Provider"] = b; } function g(a, b) { return function() { var c = t.invoke(b, this); if (s(c)) throw Ld("undef", a); return c; }; } function i(a, b, c) { return e(a, { $get: !1 !== c ? g(a, b) : b }); } function j(a) { ea(s(a) || ed(a), "modulesToLoad", "not an array"); var b, c = []; return f(a, function(a) { function d(a) { var b, c; for (b = 0, c = a.length; b < c; b++) { var d = a[b], e = p.get(d[0]); e[d[1]].apply(e, d[2]); } } if (!n.get(a)) { n.put(a, !0); try { w(a) ? (b = Sc(a), c = c.concat(j(b.requires)).concat(b._runBlocks), d(b._invokeQueue), d(b._configBlocks)) : z(a) ? c.push(p.invoke(a)) : ed(a) ? c.push(p.invoke(a)) : fa(a, "module"); } catch (e) { throw ed(a) && (a = a[a.length - 1]), e.message && e.stack && -1 == e.stack.indexOf(e.message) && (e = e.message + "\n" + e.stack), Ld("modulerr", a, e.stack || e.message || e); } } }), c; } function k(a, c) { function d(b, d) { if (a.hasOwnProperty(b)) { if (a[b] === l) throw Ld("cdep", b + " <- " + m.join(" <- ")); return a[b]; } try { return m.unshift(b), a[b] = l, a[b] = c(b, d); } catch (e) { throw a[b] === l && delete a[b], e; } finally { m.shift(); } } function e(a, c, e, f) { "string" == typeof e && (f = e, e = null); var g, h, i, j = [], k = Oa.$$annotate(a, b, f); for (h = 0, g = k.length; h < g; h++) { if (i = k[h], "string" != typeof i) throw Ld("itkn", i); j.push(e && e.hasOwnProperty(i) ? e[i] : d(i, f)); } return ed(a) && (a = a[g]), a.apply(c, j); } return { invoke: e, instantiate: function(a, b, c) { var d = Object.create((ed(a) ? a[a.length - 1] : a).prototype || null); return a = e(a, d, b, c), u(a) || z(a) ? a : d; }, get: d, annotate: Oa.$$annotate, has: function(b) { return o.hasOwnProperty(b + "Provider") || a.hasOwnProperty(b); } }; } b = !0 === b; var l = {}, m = [], n = new Ma([], (!0)), o = { $provide: { provider: d(e), factory: d(i), service: d(function(a, b) { return i(a, [ "$injector", function(a) { return a.instantiate(b); } ]); }), value: d(function(a, b) { return i(a, q(b), !1); }), constant: d(function(a, b) { ga(a, "constant"), o[a] = b, r[a] = b; }), decorator: function(a, b) { var c = p.get(a + "Provider"), d = c.$get; c.$get = function() { var a = t.invoke(d, c); return t.invoke(b, null, { $delegate: a }); }; } } }, p = o.$injector = k(o, function(a, b) { throw bd.isString(b) && m.push(b), Ld("unpr", m.join(" <- ")); }), r = {}, t = r.$injector = k(r, function(a, b) { var d = p.get(a + "Provider", b); return t.invoke(d.$get, d, c, a); }); return f(j(a), function(a) { a && t.invoke(a); }), t; } function Pa() { var a = !0; this.disableAutoScrolling = function() { a = !1; }, this.$get = [ "$window", "$location", "$rootScope", function(b, c, d) { function e(a) { var b = null; return Array.prototype.some.call(a, function(a) { if ("a" === H(a)) return b = a, !0; }), b; } function f(a) { if (a) { a.scrollIntoView(); var c; c = g.yOffset, z(c) ? c = c() : F(c) ? (c = c[0], c = "fixed" !== b.getComputedStyle(c).position ? 0 : c.getBoundingClientRect().bottom) : x(c) || (c = 0), c && (a = a.getBoundingClientRect().top, b.scrollBy(0, a - c)); } else b.scrollTo(0, 0); } function g(a) { a = w(a) ? a : c.hash(); var b; a ? (b = h.getElementById(a)) ? f(b) : (b = e(h.getElementsByName(a))) ? f(b) : "top" === a && f(null) : f(null); } var h = b.document; return a && d.$watch(function() { return c.hash(); }, function(a, b) { a === b && "" === a || Fa(function() { d.$evalAsync(g); }); }), g; } ]; } function Qa(a, b) { return a || b ? a ? b ? (ed(a) && (a = a.join(" ")), ed(b) && (b = b.join(" ")), a + " " + b) : a : b : ""; } function Ra(a) { w(a) && (a = a.split(" ")); var b = ja(); return f(a, function(a) { a.length && (b[a] = !0); }), b; } function Sa(a) { return u(a) ? a : {}; } function Ta(a, b, c, d) { function e(a) { try { a.apply(null, Xc.call(arguments, 1)); } finally { if (q--, 0 === q) for (;r.length; ) try { r.pop()(); } catch (b) { c.error(b); } } } function g() { x = null, h(), i(); } function h() { a: { try { t = l.state; break a; } catch (a) {} t = void 0; } t = s(t) ? null : t, L(t, A) && (t = A), A = t; } function i() { v === j.url() && u === t || (v = j.url(), u = t, f(y, function(a) { a(j.url(), t); })); } var j = this, k = a.location, l = a.history, m = a.setTimeout, n = a.clearTimeout, p = {}; j.isMock = !1; var q = 0, r = []; j.$$completeOutstandingRequest = e, j.$$incOutstandingRequestCount = function() { q++; }, j.notifyWhenNoOutstandingRequests = function(a) { 0 === q ? a() : r.push(a); }; var t, u, v = k.href, w = b.find("base"), x = null; h(), u = t, j.url = function(b, c, e) { if (s(e) && (e = null), k !== a.location && (k = a.location), l !== a.history && (l = a.history), b) { var f = u === e; if (v === b && (!d.history || f)) return j; var g = v && tb(v) === tb(b); return v = b, u = e, !d.history || g && f ? (g && !x || (x = b), c ? k.replace(b) : g ? (c = k, e = b.indexOf("#"), e = -1 === e ? "" : b.substr(e), c.hash = e) : k.href = b, k.href !== b && (x = b)) : (l[c ? "replaceState" : "pushState"](e, "", b), h(), u = t), j; } return x || k.href.replace(/%27/g, "'"); }, j.state = function() { return t; }; var y = [], z = !1, A = null; j.onUrlChange = function(b) { return z || (d.history && Qc(a).on("popstate", g), Qc(a).on("hashchange", g), z = !0), y.push(b), b; }, j.$$applicationDestroyed = function() { Qc(a).off("hashchange popstate", g); }, j.$$checkUrlChange = i, j.baseHref = function() { var a = w.attr("href"); return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : ""; }, j.defer = function(a, b) { var c; return q++, c = m(function() { delete p[c], e(a); }, b || 0), p[c] = !0, c; }, j.defer.cancel = function(a) { return !!p[a] && (delete p[a], n(a), e(o), !0); }; } function Ua() { this.$get = [ "$window", "$log", "$sniffer", "$document", function(a, b, c, d) { return new Ta(a, d, b, c); } ]; } function Va() { this.$get = function() { function a(a, c) { function e(a) { a != m && (n ? n == a && (n = a.n) : n = a, f(a.n, a.p), f(a, m), m = a, m.n = null); } function f(a, b) { a != b && (a && (a.p = b), b && (b.n = a)); } if (a in b) throw d("$cacheFactory")("iid", a); var g = 0, h = k({}, c, { id: a }), i = ja(), j = c && c.capacity || Number.MAX_VALUE, l = ja(), m = null, n = null; return b[a] = { put: function(a, b) { if (!s(b)) { if (j < Number.MAX_VALUE) { var c = l[a] || (l[a] = { key: a }); e(c); } return a in i || g++, i[a] = b, g > j && this.remove(n.key), b; } }, get: function(a) { if (j < Number.MAX_VALUE) { var b = l[a]; if (!b) return; e(b); } return i[a]; }, remove: function(a) { if (j < Number.MAX_VALUE) { var b = l[a]; if (!b) return; b == m && (m = b.p), b == n && (n = b.n), f(b.n, b.p), delete l[a]; } a in i && (delete i[a], g--); }, removeAll: function() { i = ja(), g = 0, l = ja(), m = n = null; }, destroy: function() { l = h = i = null, delete b[a]; }, info: function() { return k({}, h, { size: g }); } }; } var b = {}; return a.info = function() { var a = {}; return f(b, function(b, c) { a[c] = b.info(); }), a; }, a.get = function(a) { return b[a]; }, a; }; } function Wa() { this.$get = [ "$cacheFactory", function(a) { return a("templates"); } ]; } function Xa(a, d) { function e(a, b, c) { var d = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/, e = ja(); return f(a, function(a, f) { if (a in x) e[f] = x[a]; else { var g = a.match(d); if (!g) throw Td("iscp", b, f, a, c ? "controller bindings definition" : "isolate scope definition"); e[f] = { mode: g[1][0], collection: "*" === g[2], optional: "?" === g[3], attrName: g[4] || f }, g[4] && (x[a] = e[f]); } }), e; } function g(a) { var b = a.charAt(0); if (!b || b !== Uc(b)) throw Td("baddir", a); if (a !== a.trim()) throw Td("baddir", a); } var i = {}, j = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/, l = /(([\w\-]+)(?:\:([^;]+))?;?)/, m = G("ngSrc,ngSrcset,src,srcset"), r = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/, v = /^(on[a-z]+|formaction)$/, x = ja(); this.directive = function A(b, c) { return ga(b, "directive"), w(b) ? (g(b), ea(c, "directiveFactory"), i.hasOwnProperty(b) || (i[b] = [], a.factory(b + "Directive", [ "$injector", "$exceptionHandler", function(a, c) { var d = []; return f(i[b], function(e, f) { try { var g = a.invoke(e); z(g) ? g = { compile: q(g) } : !g.compile && g.link && (g.compile = q(g.link)), g.priority = g.priority || 0, g.index = f, g.name = g.name || b, g.require = g.require || g.controller && g.name, g.restrict = g.restrict || "EA", g.$$moduleName = e.$$moduleName, d.push(g); } catch (h) { c(h); } }), d; } ])), i[b].push(c)) : f(b, h(A)), this; }, this.aHrefSanitizationWhitelist = function(a) { return t(a) ? (d.aHrefSanitizationWhitelist(a), this) : d.aHrefSanitizationWhitelist(); }, this.imgSrcSanitizationWhitelist = function(a) { return t(a) ? (d.imgSrcSanitizationWhitelist(a), this) : d.imgSrcSanitizationWhitelist(); }; var y = !0; this.debugInfoEnabled = function(a) { return t(a) ? (y = a, this) : y; }, this.$get = [ "$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function(a, d, g, h, q, x, A, B, E, F) { function G(a, b) { try { a.addClass(b); } catch (c) {} } function J(a, c, d, e, f) { a instanceof Qc || (a = Qc(a)); for (var g = /\S+/, h = 0, i = a.length; h < i; h++) { var j = a[h]; j.nodeType === od && j.nodeValue.match(g) && pa(j, a[h] = b.createElement("span")); } var k = K(a, c, a, d, e, f); J.$$addScopeClass(a); var l = null; return function(b, c, d) { ea(b, "scope"), f && f.needsNewScope && (b = b.$parent.$new()), d = d || {}; var e = d.parentBoundTranscludeFn, g = d.transcludeControllers; if (d = d.futureParentElement, e && e.$$boundTransclude && (e = e.$$boundTransclude), l || (l = (d = d && d[0]) && "foreignobject" !== H(d) && d.toString().match(/SVG/) ? "svg" : "html"), d = "html" !== l ? Qc($(l, Qc("
").append(a).html())) : c ? Cd.clone.call(a) : a, g) for (var h in g) d.data("$" + h + "Controller", g[h].instance); return J.$$addScopeInfo(d, b), c && c(d, b), k && k(b, d, d, e), d; }; } function K(a, b, d, e, f, g) { function h(a, d, e, f) { var g, h, i, j, k, l, o; if (m) for (o = Array(d.length), j = 0; j < n.length; j += 3) g = n[j], o[g] = d[g]; else o = d; for (j = 0, k = n.length; j < k; ) h = o[n[j++]], d = n[j++], g = n[j++], d ? (d.scope ? (i = a.$new(), J.$$addScopeInfo(Qc(h), i)) : i = a, l = d.transcludeOnThisElement ? M(a, d.transclude, f) : !d.templateOnThisElement && f ? f : !f && b ? M(a, b) : null, d(g, i, h, e, l)) : g && g(a, h.childNodes, c, f); } for (var i, j, k, l, m, n = [], o = 0; o < a.length; o++) i = new ha(), j = N(a[o], [], i, 0 === o ? e : c, f), (g = j.length ? Q(j, a[o], i, b, d, null, [], [], g) : null) && g.scope && J.$$addScopeClass(i.$$element), i = g && g.terminal || !(k = a[o].childNodes) || !k.length ? null : K(k, g ? (g.transcludeOnThisElement || !g.templateOnThisElement) && g.transclude : b), (g || i) && (n.push(o, g, i), l = !0, m = m || g), g = null; return l ? h : null; } function M(a, b, c) { return function(d, e, f, g, h) { return d || (d = a.$new(!1, h), d.$$transcluded = !0), b(d, e, { parentBoundTranscludeFn: c, transcludeControllers: f, futureParentElement: g }); }; } function N(a, b, c, d, e) { var f, g = c.$attr; switch (a.nodeType) { case 1: f = H(a), S(b, Ya(f), "E", d, e); for (var h, i, k, m, n = a.attributes, o = 0, p = n && n.length; o < p; o++) { var q = !1, r = !1; h = n[o], i = h.name, k = gd(h.value), h = Ya(i), (m = ma.test(h)) && (i = i.replace(Ud, "").substr(8).replace(/_(.)/g, function(a, b) { return b.toUpperCase(); })), (h = h.match(na)) && U(h[1]) && (q = i, r = i.substr(0, i.length - 5) + "end", i = i.substr(0, i.length - 6)), h = Ya(i.toLowerCase()), g[h] = i, !m && c.hasOwnProperty(h) || (c[h] = k, Ga(a, h) && (c[h] = !0)), aa(a, b, k, h, m), S(b, h, "A", d, e, q, r); } if ("input" === f && "hidden" === a.getAttribute("type") && a.setAttribute("autocomplete", "off"), a = a.className, u(a) && (a = a.animVal), w(a) && "" !== a) for (;f = l.exec(a); ) h = Ya(f[2]), S(b, h, "C", d, e) && (c[h] = gd(f[3])), a = a.substr(f.index + f[0].length); break; case od: if (11 === Pc) for (;a.parentNode && a.nextSibling && a.nextSibling.nodeType === od; ) a.nodeValue += a.nextSibling.nodeValue, a.parentNode.removeChild(a.nextSibling); Z(b, a.nodeValue); break; case 8: try { (f = j.exec(a.nodeValue)) && (h = Ya(f[1]), S(b, h, "M", d, e) && (c[h] = gd(f[2]))); } catch (s) {} } return b.sort(X), b; } function O(a, b, c) { var d = [], e = 0; if (b && a.hasAttribute && a.hasAttribute(b)) { do { if (!a) throw Td("uterdir", b, c); 1 == a.nodeType && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--), d.push(a), a = a.nextSibling; } while (0 < e); } else d.push(a); return Qc(d); } function P(a, b, c) { return function(d, e, f, g, h) { return e = O(e[0], b, c), a(d, e, f, g, h); }; } function Q(a, d, e, f, h, i, j, k, l) { function m(a, b, c, d) { a && (c && (a = P(a, c, d)), a.require = q.require, a.directiveName = s, (D === q || q.$$isolateScope) && (a = da(a, { isolateScope: !0 })), j.push(a)), b && (c && (b = P(b, c, d)), b.require = q.require, b.directiveName = s, (D === q || q.$$isolateScope) && (b = da(b, { isolateScope: !0 })), k.push(b)); } function n(a, b, c, d) { var e; if (w(b)) { var f = b.match(r); b = b.substring(f[0].length); var g = f[1] || f[3], f = "?" === f[2]; if ("^^" === g ? c = c.parent() : e = (e = d && d[b]) && e.instance, e || (d = "$" + b + "Controller", e = g ? c.inheritedData(d) : c.data(d)), !e && !f) throw Td("ctreq", b, a); } else if (ed(b)) for (e = [], g = 0, f = b.length; g < f; g++) e[g] = n(a, b[g], c, d); return e || null; } function o(a, b, c, d, e, f) { var g, h = ja(); for (g in d) { var i = d[g], j = { $scope: i === D || i.$$isolateScope ? e : f, $element: a, $attrs: b, $transclude: c }, k = i.controller; "@" == k && (k = b[i.name]), j = x(k, j, !0, i.controllerAs), h[i.name] = j, a.data("$" + i.name + "Controller", j.instance); } return h; } function p(a, b, f, g, h) { function i(a, b, d) { var e; return C(a) || (d = b, b = a, a = c), I && (e = q), d || (d = I ? s.parent() : s), h(a, b, e, d, y); } var l, m, p, q, r, s, t; d === f ? (g = e, s = e.$$element) : (s = Qc(f), g = new ha(s, e)), p = b, D ? m = b.$new(!0) : A && (p = b.$parent), h && (r = i, r.$$boundTransclude = h), B && (q = o(s, g, r, B, m, b)), D && (J.$$addScopeInfo(s, m, !0, !(E && (E === D || E === D.$$originalDirective))), J.$$addScopeClass(s, !0), m.$$isolateBindings = D.$$isolateBindings, (t = ga(b, g, m, m.$$isolateBindings, D)) && m.$on("$destroy", t)); for (var u in q) { t = B[u]; var v = q[u], w = t.$$bindings.bindToController; v.identifier && w && (l = ga(p, g, v.instance, w, t)); var x = v(); x !== v.instance && (v.instance = x, s.data("$" + t.name + "Controller", x), l && l(), l = ga(p, g, v.instance, w, t)); } for (M = 0, Q = j.length; M < Q; M++) l = j[M], fa(l, l.isolateScope ? m : b, s, g, l.require && n(l.directiveName, l.require, s, q), r); var y = b; for (D && (D.template || null === D.templateUrl) && (y = m), a && a(y, f.childNodes, c, h), M = k.length - 1; 0 <= M; M--) l = k[M], fa(l, l.isolateScope ? m : b, s, g, l.require && n(l.directiveName, l.require, s, q), r); } l = l || {}; for (var q, s, t, v, y = -Number.MAX_VALUE, A = l.newScopeDirective, B = l.controllerDirectives, D = l.newIsolateScopeDirective, E = l.templateDirective, F = l.nonTlbTranscludeDirective, G = !1, H = !1, I = l.hasElementTranscludeDirective, K = e.$$element = Qc(d), L = f, M = 0, Q = a.length; M < Q; M++) { q = a[M]; var S = q.$$start, U = q.$$end; if (S && (K = O(d, S, U)), t = c, y > q.priority) break; if ((t = q.scope) && (q.templateUrl || (u(t) ? (Y("new/isolated scope", D || A, q, K), D = q) : Y("new/isolated scope", D, q, K)), A = A || q), s = q.name, !q.templateUrl && q.controller && (t = q.controller, B = B || ja(), Y("'" + s + "' controller", B[s], q, K), B[s] = q), (t = q.transclude) && (G = !0, q.$$tlb || (Y("transclusion", F, q, K), F = q), "element" == t ? (I = !0, y = q.priority, t = K, K = e.$$element = Qc(b.createComment(" " + s + ": " + e[s] + " ")), d = K[0], ba(h, Xc.call(t, 0), d), L = J(t, f, y, i && i.name, { nonTlbTranscludeDirective: F })) : (t = Qc(ra(d)).contents(), K.empty(), L = J(t, f, c, c, { needsNewScope: q.$$isolateScope || q.$$newScope }))), q.template) if (H = !0, Y("template", E, q, K), E = q, t = z(q.template) ? q.template(K, e) : q.template, t = la(t), q.replace) { if (i = q, t = xd.test(t) ? $a($(q.templateNamespace, gd(t))) : [], d = t[0], 1 != t.length || 1 !== d.nodeType) throw Td("tplrt", s, ""); ba(h, K, d), t = { $attr: {} }; var X = N(d, [], t), Z = a.splice(M + 1, a.length - (M + 1)); (D || A) && R(X, D, A), a = a.concat(X).concat(Z), V(e, t), Q = a.length; } else K.html(t); if (q.templateUrl) H = !0, Y("template", E, q, K), E = q, q.replace && (i = q), p = W(a.splice(M, a.length - M), K, e, h, G && L, j, k, { controllerDirectives: B, newScopeDirective: A !== q && A, newIsolateScopeDirective: D, templateDirective: E, nonTlbTranscludeDirective: F }), Q = a.length; else if (q.compile) try { v = q.compile(K, e, L), z(v) ? m(null, v, S, U) : v && m(v.pre, v.post, S, U); } catch (_) { g(_, T(K)); } q.terminal && (p.terminal = !0, y = Math.max(y, q.priority)); } return p.scope = A && !0 === A.scope, p.transcludeOnThisElement = G, p.templateOnThisElement = H, p.transclude = L, l.hasElementTranscludeDirective = I, p; } function R(a, b, c) { for (var d = 0, e = a.length; d < e; d++) a[d] = n(a[d], { $$isolateScope: b, $$newScope: c }); } function S(b, c, d, f, h, j, k) { if (c === h) return null; if (h = null, i.hasOwnProperty(c)) { var l; c = a.get(c + "Directive"); for (var m = 0, o = c.length; m < o; m++) try { if (l = c[m], (s(f) || f > l.priority) && -1 != l.restrict.indexOf(d)) { if (j && (l = n(l, { $$start: j, $$end: k })), !l.$$bindings) { var p = l, q = l, r = l.name, t = { isolateScope: null, bindToController: null }; if (u(q.scope) && (!0 === q.bindToController ? (t.bindToController = e(q.scope, r, !0), t.isolateScope = {}) : t.isolateScope = e(q.scope, r, !1)), u(q.bindToController) && (t.bindToController = e(q.bindToController, r, !0)), u(t.bindToController)) { var v = q.controller, x = q.controllerAs; if (!v) throw Td("noctrl", r); var y; a: { var q = v, z = x; if (z && w(z)) y = z; else { if (w(q)) { var A = Wd.exec(q); if (A) { y = A[3]; break a; } } y = void 0; } } if (!y) throw Td("noident", r); } var B = p.$$bindings = t; u(B.isolateScope) && (l.$$isolateBindings = B.isolateScope); } b.push(l), h = l; } } catch (C) { g(C); } } return h; } function U(b) { if (i.hasOwnProperty(b)) for (var c = a.get(b + "Directive"), d = 0, e = c.length; d < e; d++) if (b = c[d], b.multiElement) return !0; return !1; } function V(a, b) { var c = b.$attr, d = a.$attr, e = a.$$element; f(a, function(d, e) { "$" != e.charAt(0) && (b[e] && b[e] !== d && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e])); }), f(b, function(b, f) { "class" == f ? (G(e, b), a["class"] = (a["class"] ? a["class"] + " " : "") + b) : "style" == f ? (e.attr("style", e.attr("style") + ";" + b), a.style = (a.style ? a.style + ";" : "") + b) : "$" == f.charAt(0) || a.hasOwnProperty(f) || (a[f] = b, d[f] = c[f]); }); } function W(a, b, c, d, e, g, i, j) { var k, l, m = [], o = b[0], p = a.shift(), q = n(p, { templateUrl: null, transclude: null, replace: null, $$originalDirective: p }), r = z(p.templateUrl) ? p.templateUrl(b, c) : p.templateUrl, s = p.templateNamespace; return b.empty(), h(r).then(function(h) { var n, t; if (h = la(h), p.replace) { if (h = xd.test(h) ? $a($(s, gd(h))) : [], n = h[0], 1 != h.length || 1 !== n.nodeType) throw Td("tplrt", p.name, r); h = { $attr: {} }, ba(d, b, n); var v = N(n, [], h); u(p.scope) && R(v, !0), a = v.concat(a), V(c, h); } else n = o, b.html(h); for (a.unshift(q), k = Q(a, n, c, e, b, p, g, i, j), f(d, function(a, c) { a == n && (d[c] = b[0]); }), l = K(b[0].childNodes, e); m.length; ) { h = m.shift(), t = m.shift(); var w = m.shift(), x = m.shift(), v = b[0]; if (!h.$$destroyed) { if (t !== o) { var y = t.className; j.hasElementTranscludeDirective && p.replace || (v = ra(n)), ba(w, Qc(t), v), G(Qc(v), y); } t = k.transcludeOnThisElement ? M(h, k.transclude, x) : x, k(l, h, v, d, t); } } m = null; }), function(a, b, c, d, e) { a = e, b.$$destroyed || (m ? m.push(b, c, d, a) : (k.transcludeOnThisElement && (a = M(b, k.transclude, e)), k(l, b, c, d, a))); }; } function X(a, b) { var c = b.priority - a.priority; return 0 !== c ? c : a.name !== b.name ? a.name < b.name ? -1 : 1 : a.index - b.index; } function Y(a, b, c, d) { function e(a) { return a ? " (module: " + a + ")" : ""; } if (b) throw Td("multidir", b.name, e(b.$$moduleName), c.name, e(c.$$moduleName), a, T(d)); } function Z(a, b) { var c = d(b, !0); c && a.push({ priority: 0, compile: function(a) { a = a.parent(); var b = !!a.length; return b && J.$$addBindingClass(a), function(a, d) { var e = d.parent(); b || J.$$addBindingClass(e), J.$$addBindingInfo(e, c.expressions), a.$watch(c, function(a) { d[0].nodeValue = a; }); }; } }); } function $(a, c) { switch (a = Uc(a || "html")) { case "svg": case "math": var d = b.createElement("div"); return d.innerHTML = "<" + a + ">" + c + "", d.childNodes[0].childNodes; default: return c; } } function _(a, b) { if ("srcdoc" == b) return B.HTML; var c = H(a); return "xlinkHref" == b || "form" == c && "action" == b || "img" != c && ("src" == b || "ngSrc" == b) ? B.RESOURCE_URL : void 0; } function aa(a, b, c, e, f) { var g = _(a, e); f = m[e] || f; var h = d(c, !0, g, f); if (h) { if ("multiple" === e && "select" === H(a)) throw Td("selmulti", T(a)); b.push({ priority: 100, compile: function() { return { pre: function(a, b, i) { if (b = i.$$observers || (i.$$observers = ja()), v.test(e)) throw Td("nodomevents"); var j = i[e]; j !== c && (h = j && d(j, !0, g, f), c = j), h && (i[e] = h(a), (b[e] || (b[e] = [])).$$inter = !0, (i.$$observers && i.$$observers[e].$$scope || a).$watch(h, function(a, b) { "class" === e && a != b ? i.$updateClass(a, b) : i.$set(e, a); })); } }; } }); } } function ba(a, c, d) { var e, f, g = c[0], h = c.length, i = g.parentNode; if (a) for (e = 0, f = a.length; e < f; e++) if (a[e] == g) { a[e++] = d, f = e + h - 1; for (var j = a.length; e < j; e++, f++) f < j ? a[e] = a[f] : delete a[e]; a.length -= h - 1, a.context === g && (a.context = d); break; } for (i && i.replaceChild(d, g), a = b.createDocumentFragment(), a.appendChild(g), Qc.hasData(g) && (Qc.data(d, Qc.data(g)), Rc ? (dd = !0, Rc.cleanData([ g ])) : delete Qc.cache[g[Qc.expando]]), g = 1, h = c.length; g < h; g++) i = c[g], Qc(i).remove(), a.appendChild(i), delete c[g]; c[0] = d, c.length = 1; } function da(a, b) { return k(function() { return a.apply(null, arguments); }, a, b); } function fa(a, b, c, d, e, f) { try { a(b, c, d, e, f); } catch (h) { g(h, T(c)); } } function ga(a, b, c, e, g) { var h = []; return f(e, function(e, f) { var i, j, k, l, m = e.attrName, n = e.optional; switch (e.mode) { case "@": n || Vc.call(b, m) || (c[f] = b[m] = void 0), b.$observe(m, function(a) { w(a) && (c[f] = a); }), b.$$observers[m].$$scope = a, i = b[m], w(i) ? c[f] = d(i)(a) : D(i) && (c[f] = i); break; case "=": if (!Vc.call(b, m)) { if (n) break; b[m] = void 0; } if (n && !b[m]) break; j = q(b[m]), l = j.literal ? L : function(a, b) { return a === b || a !== a && b !== b; }, k = j.assign || function() { throw i = c[f] = j(a), Td("nonassign", b[m], m, g.name); }, i = c[f] = j(a), n = function(b) { return l(b, c[f]) || (l(b, i) ? k(a, b = c[f]) : c[f] = b), i = b; }, n.$stateful = !0, n = e.collection ? a.$watchCollection(b[m], n) : a.$watch(q(b[m], n), null, j.literal), h.push(n); break; case "&": if (j = b.hasOwnProperty(m) ? q(b[m]) : o, j === o && n) break; c[f] = function(b) { return j(a, b); }; } }), h.length && function() { for (var a = 0, b = h.length; a < b; ++a) h[a](); }; } var ha = function(a, b) { if (b) { var c, d, e, f = Object.keys(b); for (c = 0, d = f.length; c < d; c++) e = f[c], this[e] = b[e]; } else this.$attr = {}; this.$$element = a; }; ha.prototype = { $normalize: Ya, $addClass: function(a) { a && 0 < a.length && E.addClass(this.$$element, a); }, $removeClass: function(a) { a && 0 < a.length && E.removeClass(this.$$element, a); }, $updateClass: function(a, b) { var c = Za(a, b); c && c.length && E.addClass(this.$$element, c), (c = Za(b, a)) && c.length && E.removeClass(this.$$element, c); }, $set: function(a, b, c, d) { var e = Ga(this.$$element[0], a), h = Fd[a], i = a; if (e ? (this.$$element.prop(a, b), d = e) : h && (this[h] = b, i = h), this[a] = b, d ? this.$attr[a] = d : (d = this.$attr[a]) || (this.$attr[a] = d = ca(a, "-")), e = H(this.$$element), "a" === e && "href" === a || "img" === e && "src" === a) this[a] = b = F(b, "src" === a); else if ("img" === e && "srcset" === a && t(b)) { for (var e = "", h = gd(b), j = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, j = /\s/.test(h) ? j : /(,)/, h = h.split(j), j = Math.floor(h.length / 2), k = 0; k < j; k++) var l = 2 * k, e = e + F(gd(h[l]), !0), e = e + (" " + gd(h[l + 1])); h = gd(h[2 * k]).split(/\s/), e += F(gd(h[0]), !0), 2 === h.length && (e += " " + gd(h[1])), this[a] = b = e; } !1 !== c && (null === b || s(b) ? this.$$element.removeAttr(d) : this.$$element.attr(d, b)), (a = this.$$observers) && f(a[i], function(a) { try { a(b); } catch (c) { g(c); } }); }, $observe: function(a, b) { var c = this, d = c.$$observers || (c.$$observers = ja()), e = d[a] || (d[a] = []); return e.push(b), A.$evalAsync(function() { e.$$inter || !c.hasOwnProperty(a) || s(c[a]) || b(c[a]); }), function() { I(e, b); }; } }; var ia = d.startSymbol(), ka = d.endSymbol(), la = "{{" == ia && "}}" == ka ? p : function(a) { return a.replace(/\{\{/g, ia).replace(/}}/g, ka); }, ma = /^ngAttr[A-Z]/, na = /^(.+)Start$/; return J.$$addBindingInfo = y ? function(a, b) { var c = a.data("$binding") || []; ed(b) ? c = c.concat(b) : c.push(b), a.data("$binding", c); } : o, J.$$addBindingClass = y ? function(a) { G(a, "ng-binding"); } : o, J.$$addScopeInfo = y ? function(a, b, c, d) { a.data(c ? d ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope", b); } : o, J.$$addScopeClass = y ? function(a, b) { G(a, b ? "ng-isolate-scope" : "ng-scope"); } : o, J; } ]; } function Ya(a) { return ma(a.replace(Ud, "")); } function Za(a, b) { var c = "", d = a.split(/\s+/), e = b.split(/\s+/), f = 0; a: for (;f < d.length; f++) { for (var g = d[f], h = 0; h < e.length; h++) if (g == e[h]) continue a; c += (0 < c.length ? " " : "") + g; } return c; } function $a(a) { a = Qc(a); var b = a.length; if (1 >= b) return a; for (;b--; ) 8 === a[b].nodeType && Yc.call(a, b, 1); return a; } function _a() { var a = {}, b = !1; this.register = function(b, c) { ga(b, "controller"), u(b) ? k(a, b) : a[b] = c; }, this.allowGlobals = function() { b = !0; }, this.$get = [ "$injector", "$window", function(e, f) { function g(a, b, c, e) { if (!a || !u(a.$scope)) throw d("$controller")("noscp", e, b); a.$scope[b] = c; } return function(d, h, i, j) { var l, m, n; if (i = !0 === i, j && w(j) && (n = j), w(d)) { if (j = d.match(Wd), !j) throw Vd("ctrlfmt", d); m = j[1], n = n || j[3], d = a.hasOwnProperty(m) ? a[m] : ha(h.$scope, m, !0) || (b ? ha(f, m, !0) : c), fa(d, m, !0); } return i ? (i = (ed(d) ? d[d.length - 1] : d).prototype, l = Object.create(i || null), n && g(h, n, l, m || d.name), k(function() { var a = e.invoke(d, l, h, m); return a !== l && (u(a) || z(a)) && (l = a, n && g(h, n, l, m || d.name)), l; }, { instance: l, identifier: n })) : (l = e.instantiate(d, h, m), n && g(h, n, l, m || d.name), l); }; } ]; } function ab() { this.$get = [ "$window", function(a) { return Qc(a.document); } ]; } function bb() { this.$get = [ "$log", function(a) { return function(b, c) { a.error.apply(a, arguments); }; } ]; } function cb(a) { return u(a) ? y(a) ? a.toISOString() : P(a) : a; } function db() { this.$get = function() { return function(a) { if (!a) return ""; var b = []; return g(a, function(a, c) { null === a || s(a) || (ed(a) ? f(a, function(a, d) { b.push(Y(c) + "=" + Y(cb(a))); }) : b.push(Y(c) + "=" + Y(cb(a)))); }), b.join("&"); }; }; } function eb() { this.$get = function() { return function(a) { function b(a, d, e) { null === a || s(a) || (ed(a) ? f(a, function(a, c) { b(a, d + "[" + (u(a) ? c : "") + "]"); }) : u(a) && !y(a) ? g(a, function(a, c) { b(a, d + (e ? "" : "[") + c + (e ? "" : "]")); }) : c.push(Y(d) + "=" + Y(cb(a)))); } if (!a) return ""; var c = []; return b(a, "", !0), c.join("&"); }; }; } function fb(a, b) { if (w(a)) { var c = a.replace(ae, "").trim(); if (c) { var d = b("Content-Type"); (d = d && 0 === d.indexOf(Yd)) || (d = (d = c.match($d)) && _d[d[0]].test(c)), d && (a = Q(c)); } } return a; } function gb(a) { var b, c = ja(); return w(a) ? f(a.split("\n"), function(a) { b = a.indexOf(":"); var d = Uc(gd(a.substr(0, b))); a = gd(a.substr(b + 1)), d && (c[d] = c[d] ? c[d] + ", " + a : a); }) : u(a) && f(a, function(a, b) { var d = Uc(b), e = gd(a); d && (c[d] = c[d] ? c[d] + ", " + e : e); }), c; } function hb(a) { var b; return function(c) { return b || (b = gb(a)), c ? (c = b[Uc(c)], void 0 === c && (c = null), c) : b; }; } function ib(a, b, c, d) { return z(d) ? d(a, b, c) : (f(d, function(d) { a = d(a, b, c); }), a); } function jb() { var a = this.defaults = { transformResponse: [ fb ], transformRequest: [ function(a) { return u(a) && "[object File]" !== $c.call(a) && "[object Blob]" !== $c.call(a) && "[object FormData]" !== $c.call(a) ? P(a) : a; } ], headers: { common: { Accept: "application/json, text/plain, */*" }, post: K(Zd), put: K(Zd), patch: K(Zd) }, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", paramSerializer: "$httpParamSerializer" }, b = !1; this.useApplyAsync = function(a) { return t(a) ? (b = !!a, this) : b; }; var e = !0; this.useLegacyPromiseExtensions = function(a) { return t(a) ? (e = !!a, this) : e; }; var g = this.interceptors = []; this.$get = [ "$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function(h, i, j, l, m, n) { function o(b) { function g(a) { var b = k({}, a); return b.data = ib(a.data, a.headers, a.status, i.transformResponse), a = a.status, 200 <= a && 300 > a ? b : m.reject(b); } function h(a, b) { var c, d = {}; return f(a, function(a, e) { z(a) ? (c = a(b), null != c && (d[e] = c)) : d[e] = a; }), d; } if (!bd.isObject(b)) throw d("$http")("badreq", b); if (!w(b.url)) throw d("$http")("badreq", b.url); var i = k({ method: "get", transformRequest: a.transformRequest, transformResponse: a.transformResponse, paramSerializer: a.paramSerializer }, b); i.headers = function(b) { var c, d, e, f = a.headers, g = k({}, b.headers), f = k({}, f.common, f[Uc(b.method)]); a: for (c in f) { d = Uc(c); for (e in g) if (Uc(e) === d) continue a; g[c] = f[c]; } return h(g, K(b)); }(b), i.method = Wc(i.method), i.paramSerializer = w(i.paramSerializer) ? n.get(i.paramSerializer) : i.paramSerializer; var j = [ function(b) { var d = b.headers, e = ib(b.data, hb(d), c, b.transformRequest); return s(e) && f(d, function(a, b) { "content-type" === Uc(b) && delete d[b]; }), s(b.withCredentials) && !s(a.withCredentials) && (b.withCredentials = a.withCredentials), p(b, e).then(g, g); }, c ], l = m.when(i); for (f(v, function(a) { (a.request || a.requestError) && j.unshift(a.request, a.requestError), (a.response || a.responseError) && j.push(a.response, a.responseError); }); j.length; ) { b = j.shift(); var o = j.shift(), l = l.then(b, o); } return e ? (l.success = function(a) { return fa(a, "fn"), l.then(function(b) { a(b.data, b.status, b.headers, i); }), l; }, l.error = function(a) { return fa(a, "fn"), l.then(null, function(b) { a(b.data, b.status, b.headers, i); }), l; }) : (l.success = ce("success"), l.error = ce("error")), l; } function p(d, e) { function f(a, c, d, e) { function f() { g(c, a, d, e); } n && (200 <= a && 300 > a ? n.put(y, [ a, c, gb(d), e ]) : n.remove(y)), b ? l.$applyAsync(f) : (f(), l.$$phase || l.$apply()); } function g(a, b, c, e) { b = -1 <= b ? b : 0, (200 <= b && 300 > b ? v.resolve : v.reject)({ data: a, status: b, headers: hb(c), config: d, statusText: e }); } function j(a) { g(a.data, a.status, K(a.headers()), a.statusText); } function k() { var a = o.pendingRequests.indexOf(d); -1 !== a && o.pendingRequests.splice(a, 1); } var n, p, v = m.defer(), w = v.promise, x = d.headers, y = q(d.url, d.paramSerializer(d.params)); return o.pendingRequests.push(d), w.then(k, k), !d.cache && !a.cache || !1 === d.cache || "GET" !== d.method && "JSONP" !== d.method || (n = u(d.cache) ? d.cache : u(a.cache) ? a.cache : r), n && (p = n.get(y), t(p) ? p && z(p.then) ? p.then(j, j) : ed(p) ? g(p[1], p[0], K(p[2]), p[3]) : g(p, 200, {}, "OK") : n.put(y, w)), s(p) && ((p = gc(d.url) ? i()[d.xsrfCookieName || a.xsrfCookieName] : c) && (x[d.xsrfHeaderName || a.xsrfHeaderName] = p), h(d.method, y, e, f, x, d.timeout, d.withCredentials, d.responseType)), w; } function q(a, b) { return 0 < b.length && (a += (-1 == a.indexOf("?") ? "?" : "&") + b), a; } var r = j("$http"); a.paramSerializer = w(a.paramSerializer) ? n.get(a.paramSerializer) : a.paramSerializer; var v = []; return f(g, function(a) { v.unshift(w(a) ? n.get(a) : n.invoke(a)); }), o.pendingRequests = [], function(a) { f(arguments, function(a) { o[a] = function(b, c) { return o(k({}, c || {}, { method: a, url: b })); }; }); }("get", "delete", "head", "jsonp"), function(a) { f(arguments, function(a) { o[a] = function(b, c, d) { return o(k({}, d || {}, { method: a, url: b, data: c })); }; }); }("post", "put", "patch"), o.defaults = a, o; } ]; } function kb() { this.$get = function() { return function() { return new a.XMLHttpRequest(); }; }; } function lb() { this.$get = [ "$browser", "$window", "$document", "$xhrFactory", function(a, b, c, d) { return mb(a, d, a.defer, b.angular.callbacks, c[0]); } ]; } function mb(a, b, c, d, e) { function g(a, b, c) { var f = e.createElement("script"), g = null; return f.type = "text/javascript", f.src = a, f.async = !0, g = function(a) { f.removeEventListener("load", g, !1), f.removeEventListener("error", g, !1), e.body.removeChild(f), f = null; var h = -1, i = "unknown"; a && ("load" !== a.type || d[b].called || (a = { type: "error" }), i = a.type, h = "error" === a.type ? 404 : 200), c && c(h, i); }, f.addEventListener("load", g, !1), f.addEventListener("error", g, !1), e.body.appendChild(f), g; } return function(e, h, i, j, k, l, m, n) { function p() { u && u(), v && v.abort(); } function q(b, d, e, f, g) { t(x) && c.cancel(x), u = v = null, b(d, e, f, g), a.$$completeOutstandingRequest(o); } if (a.$$incOutstandingRequestCount(), h = h || a.url(), "jsonp" == Uc(e)) { var r = "_" + (d.counter++).toString(36); d[r] = function(a) { d[r].data = a, d[r].called = !0; }; var u = g(h.replace("JSON_CALLBACK", "angular.callbacks." + r), r, function(a, b) { q(j, a, d[r].data, "", b), d[r] = o; }); } else { var v = b(e, h); if (v.open(e, h, !0), f(k, function(a, b) { t(a) && v.setRequestHeader(b, a); }), v.onload = function() { var a = v.statusText || "", b = "response" in v ? v.response : v.responseText, c = 1223 === v.status ? 204 : v.status; 0 === c && (c = b ? 200 : "file" == fc(h).protocol ? 404 : 0), q(j, c, b, v.getAllResponseHeaders(), a); }, e = function() { q(j, -1, null, null, ""); }, v.onerror = e, v.onabort = e, m && (v.withCredentials = !0), n) try { v.responseType = n; } catch (w) { if ("json" !== n) throw w; } v.send(s(i) ? null : i); } if (0 < l) var x = c(p, l); else l && z(l.then) && l.then(p); }; } function nb() { var a = "{{", b = "}}"; this.startSymbol = function(b) { return b ? (a = b, this) : a; }, this.endSymbol = function(a) { return a ? (b = a, this) : b; }, this.$get = [ "$parse", "$exceptionHandler", "$sce", function(c, d, e) { function f(a) { return "\\\\\\" + a; } function g(c) { return c.replace(l, a).replace(m, b); } function h(f, h, l, m) { function n(a) { try { var b = a; a = l ? e.getTrusted(l, b) : e.valueOf(b); var c; if (m && !t(a)) c = a; else if (null == a) c = ""; else { switch (typeof a) { case "string": break; case "number": a = "" + a; break; default: a = P(a); } c = a; } return c; } catch (g) { d(de.interr(f, g)); } } m = !!m; for (var o, p, q = 0, r = [], u = [], v = f.length, w = [], x = []; q < v; ) { if (-1 == (o = f.indexOf(a, q)) || -1 == (p = f.indexOf(b, o + i))) { q !== v && w.push(g(f.substring(q))); break; } q !== o && w.push(g(f.substring(q, o))), q = f.substring(o + i, p), r.push(q), u.push(c(q, n)), q = p + j, x.push(w.length), w.push(""); } if (l && 1 < w.length && de.throwNoconcat(f), !h || r.length) { var y = function(a) { for (var b = 0, c = r.length; b < c; b++) { if (m && s(a[b])) return; w[x[b]] = a[b]; } return w.join(""); }; return k(function(a) { var b = 0, c = r.length, e = Array(c); try { for (;b < c; b++) e[b] = u[b](a); return y(e); } catch (g) { d(de.interr(f, g)); } }, { exp: f, expressions: r, $$watchDelegate: function(a, b) { var c; return a.$watchGroup(u, function(d, e) { var f = y(d); z(b) && b.call(this, f, d !== e ? c : f, a), c = f; }); } }); } } var i = a.length, j = b.length, l = new RegExp(a.replace(/./g, f), "g"), m = new RegExp(b.replace(/./g, f), "g"); return h.startSymbol = function() { return a; }, h.endSymbol = function() { return b; }, h; } ]; } function ob() { this.$get = [ "$rootScope", "$window", "$q", "$$q", function(a, b, c, d) { function e(e, g, h, i) { var j = 4 < arguments.length, k = j ? Xc.call(arguments, 4) : [], l = b.setInterval, m = b.clearInterval, n = 0, o = t(i) && !i, p = (o ? d : c).defer(), q = p.promise; return h = t(h) ? h : 0, q.then(null, null, j ? function() { e.apply(null, k); } : e), q.$$intervalId = l(function() { p.notify(n++), 0 < h && n >= h && (p.resolve(n), m(q.$$intervalId), delete f[q.$$intervalId]), o || a.$apply(); }, g), f[q.$$intervalId] = p, q; } var f = {}; return e.cancel = function(a) { return !!(a && a.$$intervalId in f) && (f[a.$$intervalId].reject("canceled"), b.clearInterval(a.$$intervalId), delete f[a.$$intervalId], !0); }, e; } ]; } function pb(a) { a = a.split("/"); for (var b = a.length; b--; ) a[b] = X(a[b]); return a.join("/"); } function qb(a, b) { var c = fc(a); b.$$protocol = c.protocol, b.$$host = c.hostname, b.$$port = m(c.port) || fe[c.protocol] || null; } function rb(a, b) { var c = "/" !== a.charAt(0); c && (a = "/" + a); var d = fc(a); b.$$path = decodeURIComponent(c && "/" === d.pathname.charAt(0) ? d.pathname.substring(1) : d.pathname), b.$$search = V(d.search), b.$$hash = decodeURIComponent(d.hash), b.$$path && "/" != b.$$path.charAt(0) && (b.$$path = "/" + b.$$path); } function sb(a, b) { if (0 === b.indexOf(a)) return b.substr(a.length); } function tb(a) { var b = a.indexOf("#"); return -1 == b ? a : a.substr(0, b); } function ub(a) { return a.replace(/(#.+)|#$/, "$1"); } function vb(a, b, c) { this.$$html5 = !0, c = c || "", qb(a, this), this.$$parse = function(a) { var c = sb(b, a); if (!w(c)) throw ge("ipthprfx", a, b); rb(c, this), this.$$path || (this.$$path = "/"), this.$$compose(); }, this.$$compose = function() { var a = W(this.$$search), c = this.$$hash ? "#" + X(this.$$hash) : ""; this.$$url = pb(this.$$path) + (a ? "?" + a : "") + c, this.$$absUrl = b + this.$$url.substr(1); }, this.$$parseLinkUrl = function(d, e) { if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; var f, g; return t(f = sb(a, d)) ? (g = f, g = t(f = sb(c, f)) ? b + (sb("/", f) || f) : a + g) : t(f = sb(b, d)) ? g = b + f : b == d + "/" && (g = b), g && this.$$parse(g), !!g; }; } function wb(a, b, c) { qb(a, this), this.$$parse = function(d) { var e, f = sb(a, d) || sb(b, d); s(f) || "#" !== f.charAt(0) ? this.$$html5 ? e = f : (e = "", s(f) && (a = d, this.replace())) : (e = sb(c, f), s(e) && (e = f)), rb(e, this), d = this.$$path; var f = a, g = /^\/[A-Z]:(\/.*)/; 0 === e.indexOf(f) && (e = e.replace(f, "")), g.exec(e) || (d = (e = g.exec(d)) ? e[1] : d), this.$$path = d, this.$$compose(); }, this.$$compose = function() { var b = W(this.$$search), d = this.$$hash ? "#" + X(this.$$hash) : ""; this.$$url = pb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + (this.$$url ? c + this.$$url : ""); }, this.$$parseLinkUrl = function(b, c) { return tb(a) == tb(b) && (this.$$parse(b), !0); }; } function xb(a, b, c) { this.$$html5 = !0, wb.apply(this, arguments), this.$$parseLinkUrl = function(d, e) { if (e && "#" === e[0]) return this.hash(e.slice(1)), !0; var f, g; return a == tb(d) ? f = d : (g = sb(b, d)) ? f = a + c + g : b === d + "/" && (f = b), f && this.$$parse(f), !!f; }, this.$$compose = function() { var b = W(this.$$search), d = this.$$hash ? "#" + X(this.$$hash) : ""; this.$$url = pb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + c + this.$$url; }; } function yb(a) { return function() { return this[a]; }; } function zb(a, b) { return function(c) { return s(c) ? this[a] : (this[a] = b(c), this.$$compose(), this); }; } function Ab() { var a = "", b = { enabled: !1, requireBase: !0, rewriteLinks: !0 }; this.hashPrefix = function(b) { return t(b) ? (a = b, this) : a; }, this.html5Mode = function(a) { return D(a) ? (b.enabled = a, this) : u(a) ? (D(a.enabled) && (b.enabled = a.enabled), D(a.requireBase) && (b.requireBase = a.requireBase), D(a.rewriteLinks) && (b.rewriteLinks = a.rewriteLinks), this) : b; }, this.$get = [ "$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function(c, d, e, f, g) { function h(a, b, c) { var e = j.url(), f = j.$$state; try { d.url(a, b, c), j.$$state = d.state(); } catch (g) { throw j.url(e), j.$$state = f, g; } } function i(a, b) { c.$broadcast("$locationChangeSuccess", j.absUrl(), a, j.$$state, b); } var j, k; k = d.baseHref(); var l, m = d.url(); if (b.enabled) { if (!k && b.requireBase) throw ge("nobase"); l = m.substring(0, m.indexOf("/", m.indexOf("//") + 2)) + (k || "/"), k = e.history ? vb : xb; } else l = tb(m), k = wb; var n = l.substr(0, tb(l).lastIndexOf("/") + 1); j = new k(l, n, "#" + a), j.$$parseLinkUrl(m, m), j.$$state = d.state(); var o = /^\s*(javascript|mailto):/i; f.on("click", function(a) { if (b.rewriteLinks && !a.ctrlKey && !a.metaKey && !a.shiftKey && 2 != a.which && 2 != a.button) { for (var e = Qc(a.target); "a" !== H(e[0]); ) if (e[0] === f[0] || !(e = e.parent())[0]) return; var h = e.prop("href"), i = e.attr("href") || e.attr("xlink:href"); u(h) && "[object SVGAnimatedString]" === h.toString() && (h = fc(h.animVal).href), o.test(h) || !h || e.attr("target") || a.isDefaultPrevented() || !j.$$parseLinkUrl(h, i) || (a.preventDefault(), j.absUrl() != d.url() && (c.$apply(), g.angular["ff-684208-preventDefault"] = !0)); } }), ub(j.absUrl()) != ub(m) && d.url(j.absUrl(), !0); var p = !0; return d.onUrlChange(function(a, b) { s(sb(n, a)) ? g.location.href = a : (c.$evalAsync(function() { var d, e = j.absUrl(), f = j.$$state; a = ub(a), j.$$parse(a), j.$$state = b, d = c.$broadcast("$locationChangeStart", a, e, b, f).defaultPrevented, j.absUrl() === a && (d ? (j.$$parse(e), j.$$state = f, h(e, !1, f)) : (p = !1, i(e, f))); }), c.$$phase || c.$digest()); }), c.$watch(function() { var a = ub(d.url()), b = ub(j.absUrl()), f = d.state(), g = j.$$replace, k = a !== b || j.$$html5 && e.history && f !== j.$$state; (p || k) && (p = !1, c.$evalAsync(function() { var b = j.absUrl(), d = c.$broadcast("$locationChangeStart", b, a, j.$$state, f).defaultPrevented; j.absUrl() === b && (d ? (j.$$parse(a), j.$$state = f) : (k && h(b, g, f === j.$$state ? null : j.$$state), i(a, f))); })), j.$$replace = !1; }), j; } ]; } function Bb() { var a = !0, b = this; this.debugEnabled = function(b) { return t(b) ? (a = b, this) : a; }, this.$get = [ "$window", function(c) { function d(a) { return a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)), a; } function e(a) { var b = c.console || {}, e = b[a] || b.log || o; a = !1; try { a = !!e.apply; } catch (g) {} return a ? function() { var a = []; return f(arguments, function(b) { a.push(d(b)); }), e.apply(b, a); } : function(a, b) { e(a, null == b ? "" : b); }; } return { log: e("log"), info: e("info"), warn: e("warn"), error: e("error"), debug: function() { var c = e("debug"); return function() { a && c.apply(b, arguments); }; }() }; } ]; } function Cb(a, b) { if ("__defineGetter__" === a || "__defineSetter__" === a || "__lookupGetter__" === a || "__lookupSetter__" === a || "__proto__" === a) throw ie("isecfld", b); return a; } function Db(a, b) { if (a += "", !w(a)) throw ie("iseccst", b); return a; } function Eb(a, b) { if (a) { if (a.constructor === a) throw ie("isecfn", b); if (a.window === a) throw ie("isecwindow", b); if (a.children && (a.nodeName || a.prop && a.attr && a.find)) throw ie("isecdom", b); if (a === Object) throw ie("isecobj", b); } return a; } function Fb(a, b) { if (a) { if (a.constructor === a) throw ie("isecfn", b); if (a === je || a === ke || a === le) throw ie("isecff", b); } } function Gb(a, b) { if (a && (a === (0).constructor || a === (!1).constructor || a === "".constructor || a === {}.constructor || a === [].constructor || a === Function.constructor)) throw ie("isecaf", b); } function Hb(a, b) { return "undefined" != typeof a ? a : b; } function Ib(a, b) { return "undefined" == typeof a ? b : "undefined" == typeof b ? a : a + b; } function Jb(a, b) { var c, d; switch (a.type) { case pe.Program: c = !0, f(a.body, function(a) { Jb(a.expression, b), c = c && a.expression.constant; }), a.constant = c; break; case pe.Literal: a.constant = !0, a.toWatch = []; break; case pe.UnaryExpression: Jb(a.argument, b), a.constant = a.argument.constant, a.toWatch = a.argument.toWatch; break; case pe.BinaryExpression: Jb(a.left, b), Jb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.left.toWatch.concat(a.right.toWatch); break; case pe.LogicalExpression: Jb(a.left, b), Jb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.constant ? [] : [ a ]; break; case pe.ConditionalExpression: Jb(a.test, b), Jb(a.alternate, b), Jb(a.consequent, b), a.constant = a.test.constant && a.alternate.constant && a.consequent.constant, a.toWatch = a.constant ? [] : [ a ]; break; case pe.Identifier: a.constant = !1, a.toWatch = [ a ]; break; case pe.MemberExpression: Jb(a.object, b), a.computed && Jb(a.property, b), a.constant = a.object.constant && (!a.computed || a.property.constant), a.toWatch = [ a ]; break; case pe.CallExpression: c = !!a.filter && !b(a.callee.name).$stateful, d = [], f(a.arguments, function(a) { Jb(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch); }), a.constant = c, a.toWatch = a.filter && !b(a.callee.name).$stateful ? d : [ a ]; break; case pe.AssignmentExpression: Jb(a.left, b), Jb(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = [ a ]; break; case pe.ArrayExpression: c = !0, d = [], f(a.elements, function(a) { Jb(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch); }), a.constant = c, a.toWatch = d; break; case pe.ObjectExpression: c = !0, d = [], f(a.properties, function(a) { Jb(a.value, b), c = c && a.value.constant, a.value.constant || d.push.apply(d, a.value.toWatch); }), a.constant = c, a.toWatch = d; break; case pe.ThisExpression: a.constant = !1, a.toWatch = []; } } function Kb(a) { if (1 == a.length) { a = a[0].expression; var b = a.toWatch; return 1 !== b.length ? b : b[0] !== a ? b : c; } } function Lb(a) { return a.type === pe.Identifier || a.type === pe.MemberExpression; } function Mb(a) { if (1 === a.body.length && Lb(a.body[0].expression)) return { type: pe.AssignmentExpression, left: a.body[0].expression, right: { type: pe.NGValueParameter }, operator: "=" }; } function Nb(a) { return 0 === a.body.length || 1 === a.body.length && (a.body[0].expression.type === pe.Literal || a.body[0].expression.type === pe.ArrayExpression || a.body[0].expression.type === pe.ObjectExpression); } function Ob(a, b) { this.astBuilder = a, this.$filter = b; } function Pb(a, b) { this.astBuilder = a, this.$filter = b; } function Qb(a) { return "constructor" == a; } function Rb(a) { return z(a.valueOf) ? a.valueOf() : re.call(a); } function Sb() { var a = ja(), b = ja(); this.$get = [ "$filter", function(d) { function e(c, e, f) { var h, n, s; switch (f = f || r, typeof c) { case "string": s = c = c.trim(); var t = f ? b : a; if (h = t[s], !h) { ":" === c.charAt(0) && ":" === c.charAt(1) && (n = !0, c = c.substring(2)), h = f ? q : p; var u = new oe(h); h = new qe(u, d, h).parse(c), h.constant ? h.$$watchDelegate = l : n ? h.$$watchDelegate = h.literal ? k : j : h.inputs && (h.$$watchDelegate = i), f && (h = g(h)), t[s] = h; } return m(h, e); case "function": return m(c, e); default: return m(o, e); } } function g(a) { function b(b, c, d, e) { var f = r; r = !0; try { return a(b, c, d, e); } finally { r = f; } } if (!a) return a; b.$$watchDelegate = a.$$watchDelegate, b.assign = g(a.assign), b.constant = a.constant, b.literal = a.literal; for (var c = 0; a.inputs && c < a.inputs.length; ++c) a.inputs[c] = g(a.inputs[c]); return b.inputs = a.inputs, b; } function h(a, b) { return null == a || null == b ? a === b : ("object" != typeof a || (a = Rb(a), "object" != typeof a)) && (a === b || a !== a && b !== b); } function i(a, b, d, e, f) { var g, i = e.inputs; if (1 === i.length) { var j = h, i = i[0]; return a.$watch(function(a) { var b = i(a); return h(b, j) || (g = e(a, c, c, [ b ]), j = b && Rb(b)), g; }, b, d, f); } for (var k = [], l = [], m = 0, n = i.length; m < n; m++) k[m] = h, l[m] = null; return a.$watch(function(a) { for (var b = !1, d = 0, f = i.length; d < f; d++) { var j = i[d](a); (b || (b = !h(j, k[d]))) && (l[d] = j, k[d] = j && Rb(j)); } return b && (g = e(a, c, c, l)), g; }, b, d, f); } function j(a, b, c, d) { var e, f; return e = a.$watch(function(a) { return d(a); }, function(a, c, d) { f = a, z(b) && b.apply(this, arguments), t(a) && d.$$postDigest(function() { t(f) && e(); }); }, c); } function k(a, b, c, d) { function e(a) { var b = !0; return f(a, function(a) { t(a) || (b = !1); }), b; } var g, h; return g = a.$watch(function(a) { return d(a); }, function(a, c, d) { h = a, z(b) && b.call(this, a, c, d), e(a) && d.$$postDigest(function() { e(h) && g(); }); }, c); } function l(a, b, c, d) { var e; return e = a.$watch(function(a) { return d(a); }, function(a, c, d) { z(b) && b.apply(this, arguments), e(); }, c); } function m(a, b) { if (!b) return a; var c = a.$$watchDelegate, d = !1, c = c !== k && c !== j ? function(c, e, f, g) { return f = d && g ? g[0] : a(c, e, f, g), b(f, c, e); } : function(c, d, e, f) { return e = a(c, d, e, f), c = b(e, c, d), t(e) ? c : e; }; return a.$$watchDelegate && a.$$watchDelegate !== i ? c.$$watchDelegate = a.$$watchDelegate : b.$stateful || (c.$$watchDelegate = i, d = !a.inputs, c.inputs = a.inputs ? a.inputs : [ a ]), c; } var n = id().noUnsafeEval, p = { csp: n, expensiveChecks: !1 }, q = { csp: n, expensiveChecks: !0 }, r = !1; return e.$$runningExpensiveChecks = function() { return r; }, e; } ]; } function Tb() { this.$get = [ "$rootScope", "$exceptionHandler", function(a, b) { return Vb(function(b) { a.$evalAsync(b); }, b); } ]; } function Ub() { this.$get = [ "$browser", "$exceptionHandler", function(a, b) { return Vb(function(b) { a.defer(b); }, b); } ]; } function Vb(a, b) { function e(a, b, c) { function d(b) { return function(c) { e || (e = !0, b.call(a, c)); }; } var e = !1; return [ d(b), d(c) ]; } function g() { this.$$state = { status: 0 }; } function h(a, b) { return function(c) { b.call(a, c); }; } function i(d) { !d.processScheduled && d.pending && (d.processScheduled = !0, a(function() { var a, e, f; f = d.pending, d.processScheduled = !1, d.pending = c; for (var g = 0, h = f.length; g < h; ++g) { e = f[g][0], a = f[g][d.status]; try { z(a) ? e.resolve(a(d.value)) : 1 === d.status ? e.resolve(d.value) : e.reject(d.value); } catch (i) { e.reject(i), b(i); } } })); } function j() { this.promise = new g(), this.resolve = h(this, this.resolve), this.reject = h(this, this.reject), this.notify = h(this, this.notify); } var l = d("$q", TypeError); k(g.prototype, { then: function(a, b, c) { if (s(a) && s(b) && s(c)) return this; var d = new j(); return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([ d, a, b, c ]), 0 < this.$$state.status && i(this.$$state), d.promise; }, "catch": function(a) { return this.then(null, a); }, "finally": function(a, b) { return this.then(function(b) { return n(b, !0, a); }, function(b) { return n(b, !1, a); }, b); } }), k(j.prototype, { resolve: function(a) { this.promise.$$state.status || (a === this.promise ? this.$$reject(l("qcycle", a)) : this.$$resolve(a)); }, $$resolve: function(a) { var c, d; d = e(this, this.$$resolve, this.$$reject); try { (u(a) || z(a)) && (c = a && a.then), z(c) ? (this.promise.$$state.status = -1, c.call(a, d[0], d[1], this.notify)) : (this.promise.$$state.value = a, this.promise.$$state.status = 1, i(this.promise.$$state)); } catch (f) { d[1](f), b(f); } }, reject: function(a) { this.promise.$$state.status || this.$$reject(a); }, $$reject: function(a) { this.promise.$$state.value = a, this.promise.$$state.status = 2, i(this.promise.$$state); }, notify: function(c) { var d = this.promise.$$state.pending; 0 >= this.promise.$$state.status && d && d.length && a(function() { for (var a, e, f = 0, g = d.length; f < g; f++) { e = d[f][0], a = d[f][3]; try { e.notify(z(a) ? a(c) : c); } catch (h) { b(h); } } }); } }); var m = function(a, b) { var c = new j(); return b ? c.resolve(a) : c.reject(a), c.promise; }, n = function(a, b, c) { var d = null; try { z(c) && (d = c()); } catch (e) { return m(e, !1); } return d && z(d.then) ? d.then(function() { return m(a, b); }, function(a) { return m(a, !1); }) : m(a, b); }, o = function(a, b, c, d) { var e = new j(); return e.resolve(a), e.promise.then(b, c, d); }, p = function q(a) { if (!z(a)) throw l("norslvr", a); if (!(this instanceof q)) return new q(a); var b = new j(); return a(function(a) { b.resolve(a); }, function(a) { b.reject(a); }), b.promise; }; return p.defer = function() { return new j(); }, p.reject = function(a) { var b = new j(); return b.reject(a), b.promise; }, p.when = o, p.resolve = o, p.all = function(a) { var b = new j(), c = 0, d = ed(a) ? [] : {}; return f(a, function(a, e) { c++, o(a).then(function(a) { d.hasOwnProperty(e) || (d[e] = a, --c || b.resolve(d)); }, function(a) { d.hasOwnProperty(e) || b.reject(a); }); }), 0 === c && b.resolve(d), b.promise; }, p; } function Wb() { this.$get = [ "$window", "$timeout", function(a, b) { var c = a.requestAnimationFrame || a.webkitRequestAnimationFrame, d = a.cancelAnimationFrame || a.webkitCancelAnimationFrame || a.webkitCancelRequestAnimationFrame, e = !!c, f = e ? function(a) { var b = c(a); return function() { d(b); }; } : function(a) { var c = b(a, 16.66, !1); return function() { b.cancel(c); }; }; return f.supported = e, f; } ]; } function Xb() { function a(a) { function b() { this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = ++cd, this.$$ChildScope = null; } return b.prototype = a, b; } var b = 10, c = d("$rootScope"), g = null, h = null; this.digestTtl = function(a) { return arguments.length && (b = a), b; }, this.$get = [ "$injector", "$exceptionHandler", "$parse", "$browser", function(d, i, j, k) { function l(a) { a.currentScope.$$destroyed = !0; } function m(a) { 9 === Pc && (a.$$childHead && m(a.$$childHead), a.$$nextSibling && m(a.$$nextSibling)), a.$parent = a.$$nextSibling = a.$$prevSibling = a.$$childHead = a.$$childTail = a.$root = a.$$watchers = null; } function n() { this.$id = ++cd, this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null, this.$root = this, this.$$destroyed = !1, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$$isolateBindings = null; } function p(a) { if (x.$$phase) throw c("inprog", x.$$phase); x.$$phase = a; } function q(a, b) { do a.$$watchersCount += b; while (a = a.$parent); } function r(a, b, c) { do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent); } function t() {} function v() { for (;B.length; ) try { B.shift()(); } catch (a) { i(a); } h = null; } function w() { null === h && (h = k.defer(function() { x.$apply(v); })); } n.prototype = { constructor: n, $new: function(b, c) { var d; return c = c || this, b ? (d = new n(), d.$root = this.$root) : (this.$$ChildScope || (this.$$ChildScope = a(this)), d = new this.$$ChildScope()), d.$parent = c, d.$$prevSibling = c.$$childTail, c.$$childHead ? (c.$$childTail.$$nextSibling = d, c.$$childTail = d) : c.$$childHead = c.$$childTail = d, (b || c != this) && d.$on("$destroy", l), d; }, $watch: function(a, b, c, d) { var e = j(a); if (e.$$watchDelegate) return e.$$watchDelegate(this, b, c, e, a); var f = this, h = f.$$watchers, i = { fn: b, last: t, get: e, exp: d || a, eq: !!c }; return g = null, z(b) || (i.fn = o), h || (h = f.$$watchers = []), h.unshift(i), q(this, 1), function() { 0 <= I(h, i) && q(f, -1), g = null; }; }, $watchGroup: function(a, b) { function c() { i = !1, j ? (j = !1, b(e, e, h)) : b(e, d, h); } var d = Array(a.length), e = Array(a.length), g = [], h = this, i = !1, j = !0; if (!a.length) { var k = !0; return h.$evalAsync(function() { k && b(e, e, h); }), function() { k = !1; }; } return 1 === a.length ? this.$watch(a[0], function(a, c, f) { e[0] = a, d[0] = c, b(e, a === c ? e : d, f); }) : (f(a, function(a, b) { var f = h.$watch(a, function(a, f) { e[b] = a, d[b] = f, i || (i = !0, h.$evalAsync(c)); }); g.push(f); }), function() { for (;g.length; ) g.shift()(); }); }, $watchCollection: function(a, b) { function c(a) { d = a; var b, c, g, h; if (!s(d)) { if (u(d)) if (e(d)) for (f !== m && (f = m, p = f.length = 0, k++), a = d.length, p !== a && (k++, f.length = p = a), b = 0; b < a; b++) h = f[b], g = d[b], c = h !== h && g !== g, c || h === g || (k++, f[b] = g); else { f !== n && (f = n = {}, p = 0, k++), a = 0; for (b in d) Vc.call(d, b) && (a++, g = d[b], h = f[b], b in f ? (c = h !== h && g !== g, c || h === g || (k++, f[b] = g)) : (p++, f[b] = g, k++)); if (p > a) for (b in k++, f) Vc.call(d, b) || (p--, delete f[b]); } else f !== d && (f = d, k++); return k; } } c.$stateful = !0; var d, f, g, h = this, i = 1 < b.length, k = 0, l = j(a, c), m = [], n = {}, o = !0, p = 0; return this.$watch(l, function() { if (o ? (o = !1, b(d, d, h)) : b(d, g, h), i) if (u(d)) if (e(d)) { g = Array(d.length); for (var a = 0; a < d.length; a++) g[a] = d[a]; } else for (a in g = {}, d) Vc.call(d, a) && (g[a] = d[a]); else g = d; }); }, $digest: function() { var a, d, e, f, j, l, m, n, o, q, r, s = b, u = []; p("$digest"), k.$$checkUrlChange(), this === x && null !== h && (k.defer.cancel(h), v()), g = null; do { for (n = !1, o = this; y.length; ) { try { r = y.shift(), r.scope.$eval(r.expression, r.locals); } catch (w) { i(w); } g = null; } a: do { if (l = o.$$watchers) for (m = l.length; m--; ) try { if (a = l[m]) if (j = a.get, (d = j(o)) === (e = a.last) || (a.eq ? L(d, e) : "number" == typeof d && "number" == typeof e && isNaN(d) && isNaN(e))) { if (a === g) { n = !1; break a; } } else n = !0, g = a, a.last = a.eq ? J(d, null) : d, f = a.fn, f(d, e === t ? d : e, o), 5 > s && (q = 4 - s, u[q] || (u[q] = []), u[q].push({ msg: z(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp, newVal: d, oldVal: e })); } catch (B) { i(B); } if (!(l = o.$$watchersCount && o.$$childHead || o !== this && o.$$nextSibling)) for (;o !== this && !(l = o.$$nextSibling); ) o = o.$parent; } while (o = l); if ((n || y.length) && !s--) throw x.$$phase = null, c("infdig", b, u); } while (n || y.length); for (x.$$phase = null; A.length; ) try { A.shift()(); } catch (C) { i(C); } }, $destroy: function() { if (!this.$$destroyed) { var a = this.$parent; this.$broadcast("$destroy"), this.$$destroyed = !0, this === x && k.$$applicationDestroyed(), q(this, -this.$$watchersCount); for (var b in this.$$listenerCount) r(this, this.$$listenerCount[b], b); a && a.$$childHead == this && (a.$$childHead = this.$$nextSibling), a && a.$$childTail == this && (a.$$childTail = this.$$prevSibling), this.$$prevSibling && (this.$$prevSibling.$$nextSibling = this.$$nextSibling), this.$$nextSibling && (this.$$nextSibling.$$prevSibling = this.$$prevSibling), this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = o, this.$on = this.$watch = this.$watchGroup = function() { return o; }, this.$$listeners = {}, this.$$nextSibling = null, m(this); } }, $eval: function(a, b) { return j(a)(this, b); }, $evalAsync: function(a, b) { x.$$phase || y.length || k.defer(function() { y.length && x.$digest(); }), y.push({ scope: this, expression: j(a), locals: b }); }, $$postDigest: function(a) { A.push(a); }, $apply: function(a) { try { p("$apply"); try { return this.$eval(a); } finally { x.$$phase = null; } } catch (b) { i(b); } finally { try { x.$digest(); } catch (c) { throw i(c), c; } } }, $applyAsync: function(a) { function b() { c.$eval(a); } var c = this; a && B.push(b), a = j(a), w(); }, $on: function(a, b) { var c = this.$$listeners[a]; c || (this.$$listeners[a] = c = []), c.push(b); var d = this; do d.$$listenerCount[a] || (d.$$listenerCount[a] = 0), d.$$listenerCount[a]++; while (d = d.$parent); var e = this; return function() { var d = c.indexOf(b); -1 !== d && (c[d] = null, r(e, 1, a)); }; }, $emit: function(a, b) { var c, d, e, f = [], g = this, h = !1, j = { name: a, targetScope: g, stopPropagation: function() { h = !0; }, preventDefault: function() { j.defaultPrevented = !0; }, defaultPrevented: !1 }, k = M([ j ], arguments, 1); do { for (c = g.$$listeners[a] || f, j.currentScope = g, d = 0, e = c.length; d < e; d++) if (c[d]) try { c[d].apply(null, k); } catch (l) { i(l); } else c.splice(d, 1), d--, e--; if (h) return j.currentScope = null, j; g = g.$parent; } while (g); return j.currentScope = null, j; }, $broadcast: function(a, b) { var c = this, d = this, e = { name: a, targetScope: this, preventDefault: function() { e.defaultPrevented = !0; }, defaultPrevented: !1 }; if (!this.$$listenerCount[a]) return e; for (var f, g, h = M([ e ], arguments, 1); c = d; ) { for (e.currentScope = c, d = c.$$listeners[a] || [], f = 0, g = d.length; f < g; f++) if (d[f]) try { d[f].apply(null, h); } catch (j) { i(j); } else d.splice(f, 1), f--, g--; if (!(d = c.$$listenerCount[a] && c.$$childHead || c !== this && c.$$nextSibling)) for (;c !== this && !(d = c.$$nextSibling); ) c = c.$parent; } return e.currentScope = null, e; } }; var x = new n(), y = x.$$asyncQueue = [], A = x.$$postDigestQueue = [], B = x.$$applyAsyncQueue = []; return x; } ]; } function Yb() { var a = /^\s*(https?|ftp|mailto|tel|file):/, b = /^\s*((https?|ftp|file|blob):|data:image\/)/; this.aHrefSanitizationWhitelist = function(b) { return t(b) ? (a = b, this) : a; }, this.imgSrcSanitizationWhitelist = function(a) { return t(a) ? (b = a, this) : b; }, this.$get = function() { return function(c, d) { var e, f = d ? b : a; return e = fc(c).href, "" === e || e.match(f) ? c : "unsafe:" + e; }; }; } function Zb(a) { if ("self" === a) return a; if (w(a)) { if (-1 < a.indexOf("***")) throw se("iwcard", a); return a = hd(a).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + a + "$"); } if (A(a)) return new RegExp("^" + a.source + "$"); throw se("imatcher"); } function $b(a) { var b = []; return t(a) && f(a, function(a) { b.push(Zb(a)); }), b; } function _b() { this.SCE_CONTEXTS = te; var a = [ "self" ], b = []; this.resourceUrlWhitelist = function(b) { return arguments.length && (a = $b(b)), a; }, this.resourceUrlBlacklist = function(a) { return arguments.length && (b = $b(a)), b; }, this.$get = [ "$injector", function(c) { function d(a, b) { return "self" === a ? gc(b) : !!a.exec(b.href); } function e(a) { var b = function(a) { this.$$unwrapTrustedValue = function() { return a; }; }; return a && (b.prototype = new a()), b.prototype.valueOf = function() { return this.$$unwrapTrustedValue(); }, b.prototype.toString = function() { return this.$$unwrapTrustedValue().toString(); }, b; } var f = function(a) { throw se("unsafe"); }; c.has("$sanitize") && (f = c.get("$sanitize")); var g = e(), h = {}; return h[te.HTML] = e(g), h[te.CSS] = e(g), h[te.URL] = e(g), h[te.JS] = e(g), h[te.RESOURCE_URL] = e(h[te.URL]), { trustAs: function(a, b) { var c = h.hasOwnProperty(a) ? h[a] : null; if (!c) throw se("icontext", a, b); if (null === b || s(b) || "" === b) return b; if ("string" != typeof b) throw se("itype", a); return new c(b); }, getTrusted: function(c, e) { if (null === e || s(e) || "" === e) return e; var g = h.hasOwnProperty(c) ? h[c] : null; if (g && e instanceof g) return e.$$unwrapTrustedValue(); if (c === te.RESOURCE_URL) { var i, j, g = fc(e.toString()), k = !1; for (i = 0, j = a.length; i < j; i++) if (d(a[i], g)) { k = !0; break; } if (k) for (i = 0, j = b.length; i < j; i++) if (d(b[i], g)) { k = !1; break; } if (k) return e; throw se("insecurl", e.toString()); } if (c === te.HTML) return f(e); throw se("unsafe"); }, valueOf: function(a) { return a instanceof g ? a.$$unwrapTrustedValue() : a; } }; } ]; } function ac() { var a = !0; this.enabled = function(b) { return arguments.length && (a = !!b), a; }, this.$get = [ "$parse", "$sceDelegate", function(b, c) { if (a && 8 > Pc) throw se("iequirks"); var d = K(te); d.isEnabled = function() { return a; }, d.trustAs = c.trustAs, d.getTrusted = c.getTrusted, d.valueOf = c.valueOf, a || (d.trustAs = d.getTrusted = function(a, b) { return b; }, d.valueOf = p), d.parseAs = function(a, c) { var e = b(c); return e.literal && e.constant ? e : b(c, function(b) { return d.getTrusted(a, b); }); }; var e = d.parseAs, g = d.getTrusted, h = d.trustAs; return f(te, function(a, b) { var c = Uc(b); d[ma("parse_as_" + c)] = function(b) { return e(a, b); }, d[ma("get_trusted_" + c)] = function(b) { return g(a, b); }, d[ma("trust_as_" + c)] = function(b) { return h(a, b); }; }), d; } ]; } function bc() { this.$get = [ "$window", "$document", function(a, b) { var c, d = {}, e = m((/android (\d+)/.exec(Uc((a.navigator || {}).userAgent)) || [])[1]), f = /Boxee/i.test((a.navigator || {}).userAgent), g = b[0] || {}, h = /^(Moz|webkit|ms)(?=[A-Z])/, i = g.body && g.body.style, j = !1, k = !1; if (i) { for (var l in i) if (j = h.exec(l)) { c = j[0], c = c.substr(0, 1).toUpperCase() + c.substr(1); break; } c || (c = "WebkitOpacity" in i && "webkit"), j = !!("transition" in i || c + "Transition" in i), k = !!("animation" in i || c + "Animation" in i), !e || j && k || (j = w(i.webkitTransition), k = w(i.webkitAnimation)); } return { history: !(!a.history || !a.history.pushState || 4 > e || f), hasEvent: function(a) { if ("input" === a && 11 >= Pc) return !1; if (s(d[a])) { var b = g.createElement("div"); d[a] = "on" + a in b; } return d[a]; }, csp: id(), vendorPrefix: c, transitions: j, animations: k, android: e }; } ]; } function cc() { this.$get = [ "$templateCache", "$http", "$q", "$sce", function(a, b, c, d) { function e(f, g) { e.totalPendingRequests++, w(f) && !s(a.get(f)) || (f = d.getTrustedResourceUrl(f)); var h = b.defaults && b.defaults.transformResponse; return ed(h) ? h = h.filter(function(a) { return a !== fb; }) : h === fb && (h = null), b.get(f, { cache: a, transformResponse: h })["finally"](function() { e.totalPendingRequests--; }).then(function(b) { return a.put(f, b.data), b.data; }, function(a) { if (!g) throw Td("tpload", f, a.status, a.statusText); return c.reject(a); }); } return e.totalPendingRequests = 0, e; } ]; } function dc() { this.$get = [ "$rootScope", "$browser", "$location", function(a, b, c) { return { findBindings: function(a, b, c) { a = a.getElementsByClassName("ng-binding"); var d = []; return f(a, function(a) { var e = bd.element(a).data("$binding"); e && f(e, function(e) { c ? new RegExp("(^|\\s)" + hd(b) + "(\\s|\\||$)").test(e) && d.push(a) : -1 != e.indexOf(b) && d.push(a); }); }), d; }, findModels: function(a, b, c) { for (var d = [ "ng-", "data-ng-", "ng\\:" ], e = 0; e < d.length; ++e) { var f = a.querySelectorAll("[" + d[e] + "model" + (c ? "=" : "*=") + '"' + b + '"]'); if (f.length) return f; } }, getLocation: function() { return c.url(); }, setLocation: function(b) { b !== c.url() && (c.url(b), a.$digest()); }, whenStable: function(a) { b.notifyWhenNoOutstandingRequests(a); } }; } ]; } function ec() { this.$get = [ "$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function(a, b, c, d, e) { function f(f, h, i) { z(f) || (i = h, h = f, f = o); var j, k = Xc.call(arguments, 3), l = t(i) && !i, m = (l ? d : c).defer(), n = m.promise; return j = b.defer(function() { try { m.resolve(f.apply(null, k)); } catch (b) { m.reject(b), e(b); } finally { delete g[n.$$timeoutId]; } l || a.$apply(); }, h), n.$$timeoutId = j, g[j] = m, n; } var g = {}; return f.cancel = function(a) { return !!(a && a.$$timeoutId in g) && (g[a.$$timeoutId].reject("canceled"), delete g[a.$$timeoutId], b.defer.cancel(a.$$timeoutId)); }, f; } ]; } function fc(a) { return Pc && (ue.setAttribute("href", a), a = ue.href), ue.setAttribute("href", a), { href: ue.href, protocol: ue.protocol ? ue.protocol.replace(/:$/, "") : "", host: ue.host, search: ue.search ? ue.search.replace(/^\?/, "") : "", hash: ue.hash ? ue.hash.replace(/^#/, "") : "", hostname: ue.hostname, port: ue.port, pathname: "/" === ue.pathname.charAt(0) ? ue.pathname : "/" + ue.pathname }; } function gc(a) { return a = w(a) ? fc(a) : a, a.protocol === ve.protocol && a.host === ve.host; } function hc() { this.$get = q(a); } function ic(a) { function b(a) { try { return decodeURIComponent(a); } catch (b) { return a; } } var c = a[0] || {}, d = {}, e = ""; return function() { var a, f, g, h, i; if (a = c.cookie || "", a !== e) for (e = a, a = e.split("; "), d = {}, g = 0; g < a.length; g++) f = a[g], h = f.indexOf("="), 0 < h && (i = b(f.substring(0, h)), s(d[i]) && (d[i] = b(f.substring(h + 1)))); return d; }; } function jc() { this.$get = ic; } function kc(a) { function b(c, d) { if (u(c)) { var e = {}; return f(c, function(a, c) { e[c] = b(c, a); }), e; } return a.factory(c + "Filter", d); } this.register = b, this.$get = [ "$injector", function(a) { return function(b) { return a.get(b + "Filter"); }; } ], b("currency", pc), b("date", Ac), b("filter", lc), b("json", Bc), b("limitTo", Cc), b("lowercase", Ce), b("number", qc), b("orderBy", Dc), b("uppercase", De); } function lc() { return function(a, b, c) { if (!e(a)) { if (null == a) return a; throw d("filter")("notarray", a); } var f; switch (oc(b)) { case "function": break; case "boolean": case "null": case "number": case "string": f = !0; case "object": b = mc(b, c, f); break; default: return a; } return Array.prototype.filter.call(a, b); }; } function mc(a, b, c) { var d = u(a) && "$" in a; return !0 === b ? b = L : z(b) || (b = function(a, b) { return !s(a) && (null === a || null === b ? a === b : !(u(b) || u(a) && !r(a)) && (a = Uc("" + a), b = Uc("" + b), -1 !== a.indexOf(b))); }), function(e) { return d && !u(e) ? nc(e, a.$, b, !1) : nc(e, a, b, c); }; } function nc(a, b, c, d, e) { var f = oc(a), g = oc(b); if ("string" === g && "!" === b.charAt(0)) return !nc(a, b.substring(1), c, d); if (ed(a)) return a.some(function(a) { return nc(a, b, c, d); }); switch (f) { case "object": var h; if (d) { for (h in a) if ("$" !== h.charAt(0) && nc(a[h], b, c, !0)) return !0; return !e && nc(a, b, c, !1); } if ("object" === g) { for (h in b) if (e = b[h], !z(e) && !s(e) && (f = "$" === h, !nc(f ? a : a[h], e, c, f, f))) return !1; return !0; } return c(a, b); case "function": return !1; default: return c(a, b); } } function oc(a) { return null === a ? "null" : typeof a; } function pc(a) { var b = a.NUMBER_FORMATS; return function(a, c, d) { return s(c) && (c = b.CURRENCY_SYM), s(d) && (d = b.PATTERNS[1].maxFrac), null == a ? a : tc(a, b.PATTERNS[1], b.GROUP_SEP, b.DECIMAL_SEP, d).replace(/\u00A4/g, c); }; } function qc(a) { var b = a.NUMBER_FORMATS; return function(a, c) { return null == a ? a : tc(a, b.PATTERNS[0], b.GROUP_SEP, b.DECIMAL_SEP, c); }; } function rc(a) { var b, c, d, e, f, g = 0; for (-1 < (c = a.indexOf(xe)) && (a = a.replace(xe, "")), 0 < (d = a.search(/e/i)) ? (0 > c && (c = d), c += +a.slice(d + 1), a = a.substring(0, d)) : 0 > c && (c = a.length), d = 0; a.charAt(d) == ye; d++) ; if (d == (f = a.length)) b = [ 0 ], c = 1; else { for (f--; a.charAt(f) == ye; ) f--; for (c -= d, b = [], e = 0; d <= f; d++, e++) b[e] = +a.charAt(d); } return c > we && (b = b.splice(0, we - 1), g = c - 1, c = 1), { d: b, e: g, i: c }; } function sc(a, b, c, d) { var e = a.d, f = e.length - a.i; if (b = s(b) ? Math.min(Math.max(c, f), d) : +b, c = b + a.i, d = e[c], 0 < c) e.splice(c); else { a.i = 1, e.length = c = b + 1; for (var g = 0; g < c; g++) e[g] = 0; } for (5 <= d && e[c - 1]++; f < b; f++) e.push(0); (b = e.reduceRight(function(a, b, c, d) { return b += a, d[c] = b % 10, Math.floor(b / 10); }, 0)) && (e.unshift(b), a.i++); } function tc(a, b, c, d, e) { if (!w(a) && !x(a) || isNaN(a)) return ""; var f = !isFinite(a), g = !1, h = Math.abs(a) + "", i = ""; if (f) i = "∞"; else { for (g = rc(h), sc(g, e, b.minFrac, b.maxFrac), i = g.d, h = g.i, e = g.e, f = [], g = i.reduce(function(a, b) { return a && !b; }, !0); 0 > h; ) i.unshift(0), h++; for (0 < h ? f = i.splice(h, i.length) : (f = i, i = [ 0 ]), h = [], i.length >= b.lgSize && h.unshift(i.splice(-b.lgSize, i.length).join("")); i.length > b.gSize; ) h.unshift(i.splice(-b.gSize, i.length).join("")); i.length && h.unshift(i.join("")), i = h.join(c), f.length && (i += d + f.join("")), e && (i += "e+" + e); } return 0 > a && !g ? b.negPre + i + b.negSuf : b.posPre + i + b.posSuf; } function uc(a, b, c) { var d = ""; for (0 > a && (d = "-", a = -a), a = "" + a; a.length < b; ) a = ye + a; return c && (a = a.substr(a.length - b)), d + a; } function vc(a, b, c, d) { return c = c || 0, function(e) { return e = e["get" + a](), (0 < c || e > -c) && (e += c), 0 === e && -12 == c && (e = 12), uc(e, b, d); }; } function wc(a, b) { return function(c, d) { var e = c["get" + a](), f = Wc(b ? "SHORT" + a : a); return d[f][e]; }; } function xc(a) { var b = new Date(a, 0, 1).getDay(); return new Date(a, 0, (4 >= b ? 5 : 12) - b); } function yc(a) { return function(b) { var c = xc(b.getFullYear()); return b = +new Date(b.getFullYear(), b.getMonth(), b.getDate() + (4 - b.getDay())) - +c, b = 1 + Math.round(b / 6048e5), uc(b, a); }; } function zc(a, b) { return 0 >= a.getFullYear() ? b.ERAS[0] : b.ERAS[1]; } function Ac(a) { function b(a) { var b; if (b = a.match(c)) { a = new Date(0); var d = 0, e = 0, f = b[8] ? a.setUTCFullYear : a.setFullYear, g = b[8] ? a.setUTCHours : a.setHours; b[9] && (d = m(b[9] + b[10]), e = m(b[9] + b[11])), f.call(a, m(b[1]), m(b[2]) - 1, m(b[3])), d = m(b[4] || 0) - d, e = m(b[5] || 0) - e, f = m(b[6] || 0), b = Math.round(1e3 * parseFloat("0." + (b[7] || 0))), g.call(a, d, e, f, b); } return a; } var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; return function(c, d, e) { var g, h, i = "", j = []; if (d = d || "mediumDate", d = a.DATETIME_FORMATS[d] || d, w(c) && (c = Be.test(c) ? m(c) : b(c)), x(c) && (c = new Date(c)), !y(c) || !isFinite(c.getTime())) return c; for (;d; ) (h = Ae.exec(d)) ? (j = M(j, h, 1), d = j.pop()) : (j.push(d), d = null); var k = c.getTimezoneOffset(); return e && (k = R(e, k), c = S(c, e, !0)), f(j, function(b) { g = ze[b], i += g ? g(c, a.DATETIME_FORMATS, k) : "''" === b ? "'" : b.replace(/(^'|'$)/g, "").replace(/''/g, "'"); }), i; }; } function Bc() { return function(a, b) { return s(b) && (b = 2), P(a, b); }; } function Cc() { return function(a, b, c) { return b = 1 / 0 === Math.abs(Number(b)) ? Number(b) : m(b), isNaN(b) ? a : (x(a) && (a = a.toString()), ed(a) || w(a) ? (c = !c || isNaN(c) ? 0 : m(c), c = 0 > c ? Math.max(0, a.length + c) : c, 0 <= b ? a.slice(c, c + b) : 0 === c ? a.slice(b, a.length) : a.slice(Math.max(0, c + b), c)) : a); }; } function Dc(a) { function b(b, c) { return c = c ? -1 : 1, b.map(function(b) { var d = 1, e = p; if (z(b)) e = b; else if (w(b) && ("+" != b.charAt(0) && "-" != b.charAt(0) || (d = "-" == b.charAt(0) ? -1 : 1, b = b.substring(1)), "" !== b && (e = a(b), e.constant))) var f = e(), e = function(a) { return a[f]; }; return { get: e, descending: d * c }; }); } function c(a) { switch (typeof a) { case "number": case "boolean": case "string": return !0; default: return !1; } } return function(a, d, f) { if (!e(a)) return a; ed(d) || (d = [ d ]), 0 === d.length && (d = [ "+" ]); var g = b(d, f); return g.push({ get: function() { return {}; }, descending: f ? -1 : 1 }), a = Array.prototype.map.call(a, function(a, b) { return { value: a, predicateValues: g.map(function(d) { var e = d.get(a); return d = typeof e, null === e ? (d = "string", e = "null") : "string" === d ? e = e.toLowerCase() : "object" === d && ("function" == typeof e.valueOf && (e = e.valueOf(), c(e)) || r(e) && (e = e.toString(), c(e)) || (e = b)), { value: e, type: d }; }) }; }), a.sort(function(a, b) { for (var c = 0, d = 0, e = g.length; d < e; ++d) { var c = a.predicateValues[d], f = b.predicateValues[d], h = 0; if (c.type === f.type ? c.value !== f.value && (h = c.value < f.value ? -1 : 1) : h = c.type < f.type ? -1 : 1, c = h * g[d].descending) break; } return c; }), a = a.map(function(a) { return a.value; }); }; } function Ec(a) { return z(a) && (a = { link: a }), a.restrict = a.restrict || "AC", q(a); } function Fc(a, b, d, e, g) { var h = this, i = []; h.$error = {}, h.$$success = {}, h.$pending = c, h.$name = g(b.name || b.ngForm || "")(d), h.$dirty = !1, h.$pristine = !0, h.$valid = !0, h.$invalid = !1, h.$submitted = !1, h.$$parentForm = Ge, h.$rollbackViewValue = function() { f(i, function(a) { a.$rollbackViewValue(); }); }, h.$commitViewValue = function() { f(i, function(a) { a.$commitViewValue(); }); }, h.$addControl = function(a) { ga(a.$name, "input"), i.push(a), a.$name && (h[a.$name] = a), a.$$parentForm = h; }, h.$$renameControl = function(a, b) { var c = a.$name; h[c] === a && delete h[c], h[b] = a, a.$name = b; }, h.$removeControl = function(a) { a.$name && h[a.$name] === a && delete h[a.$name], f(h.$pending, function(b, c) { h.$setValidity(c, null, a); }), f(h.$error, function(b, c) { h.$setValidity(c, null, a); }), f(h.$$success, function(b, c) { h.$setValidity(c, null, a); }), I(i, a), a.$$parentForm = Ge; }, Nc({ ctrl: this, $element: a, set: function(a, b, c) { var d = a[b]; d ? -1 === d.indexOf(c) && d.push(c) : a[b] = [ c ]; }, unset: function(a, b, c) { var d = a[b]; d && (I(d, c), 0 === d.length && delete a[b]); }, $animate: e }), h.$setDirty = function() { e.removeClass(a, pf), e.addClass(a, qf), h.$dirty = !0, h.$pristine = !1, h.$$parentForm.$setDirty(); }, h.$setPristine = function() { e.setClass(a, pf, qf + " ng-submitted"), h.$dirty = !1, h.$pristine = !0, h.$submitted = !1, f(i, function(a) { a.$setPristine(); }); }, h.$setUntouched = function() { f(i, function(a) { a.$setUntouched(); }); }, h.$setSubmitted = function() { e.addClass(a, "ng-submitted"), h.$submitted = !0, h.$$parentForm.$setSubmitted(); }; } function Gc(a) { a.$formatters.push(function(b) { return a.$isEmpty(b) ? b : b.toString(); }); } function Hc(a, b, c, d, e, f) { var g = Uc(b[0].type); if (!e.android) { var h = !1; b.on("compositionstart", function(a) { h = !0; }), b.on("compositionend", function() { h = !1, j(); }); } var i, j = function(a) { if (i && (f.defer.cancel(i), i = null), !h) { var e = b.val(); a = a && a.type, "password" === g || c.ngTrim && "false" === c.ngTrim || (e = gd(e)), (d.$viewValue !== e || "" === e && d.$$hasNativeValidators) && d.$setViewValue(e, a); } }; if (e.hasEvent("input")) b.on("input", j); else { var k = function(a, b, c) { i || (i = f.defer(function() { i = null, b && b.value === c || j(a); })); }; b.on("keydown", function(a) { var b = a.keyCode; 91 === b || 15 < b && 19 > b || 37 <= b && 40 >= b || k(a, this, this.value); }), e.hasEvent("paste") && b.on("paste cut", k); } b.on("change", j), Te[g] && d.$$hasNativeValidators && g === c.type && b.on("keydown wheel mousedown", function(a) { if (!i) { var b = this.validity, c = b.badInput, d = b.typeMismatch; i = f.defer(function() { i = null, b.badInput === c && b.typeMismatch === d || j(a); }); } }), d.$render = function() { var a = d.$isEmpty(d.$viewValue) ? "" : d.$viewValue; b.val() !== a && b.val(a); }; } function Ic(a, b) { return function(c, d) { var e, g; if (y(c)) return c; if (w(c)) { if ('"' == c.charAt(0) && '"' == c.charAt(c.length - 1) && (c = c.substring(1, c.length - 1)), Ke.test(c)) return new Date(c); if (a.lastIndex = 0, e = a.exec(c)) return e.shift(), g = d ? { yyyy: d.getFullYear(), MM: d.getMonth() + 1, dd: d.getDate(), HH: d.getHours(), mm: d.getMinutes(), ss: d.getSeconds(), sss: d.getMilliseconds() / 1e3 } : { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 }, f(e, function(a, c) { c < b.length && (g[b[c]] = +a); }), new Date(g.yyyy, g.MM - 1, g.dd, g.HH, g.mm, g.ss || 0, 1e3 * g.sss || 0); } return NaN; }; } function Jc(a, b, d, e) { return function(f, g, h, i, j, k, l) { function m(a) { return a && !(a.getTime && a.getTime() !== a.getTime()); } function n(a) { return t(a) && !y(a) ? d(a) || c : a; } Kc(f, g, h, i), Hc(f, g, h, i, j, k); var o, p = i && i.$options && i.$options.timezone; if (i.$$parserName = a, i.$parsers.push(function(a) { return i.$isEmpty(a) ? null : b.test(a) ? (a = d(a, o), p && (a = S(a, p)), a) : c; }), i.$formatters.push(function(a) { if (a && !y(a)) throw sf("datefmt", a); return m(a) ? ((o = a) && p && (o = S(o, p, !0)), l("date")(a, e, p)) : (o = null, ""); }), t(h.min) || h.ngMin) { var q; i.$validators.min = function(a) { return !m(a) || s(q) || d(a) >= q; }, h.$observe("min", function(a) { q = n(a), i.$validate(); }); } if (t(h.max) || h.ngMax) { var r; i.$validators.max = function(a) { return !m(a) || s(r) || d(a) <= r; }, h.$observe("max", function(a) { r = n(a), i.$validate(); }); } }; } function Kc(a, b, d, e) { (e.$$hasNativeValidators = u(b[0].validity)) && e.$parsers.push(function(a) { var d = b.prop("validity") || {}; return d.badInput && !d.typeMismatch ? c : a; }); } function Lc(a, b, c, d, e) { if (t(d)) { if (a = a(d), !a.constant) throw sf("constexpr", c, d); return a(b); } return e; } function Mc(a, b) { return a = "ngClass" + a, [ "$animate", function(c) { function d(a, b) { var c = [], d = 0; a: for (;d < a.length; d++) { for (var e = a[d], f = 0; f < b.length; f++) if (e == b[f]) continue a; c.push(e); } return c; } function e(a) { var b = []; return ed(a) ? (f(a, function(a) { b = b.concat(e(a)); }), b) : w(a) ? a.split(" ") : u(a) ? (f(a, function(a, c) { a && (b = b.concat(c.split(" "))); }), b) : a; } return { restrict: "AC", link: function(g, h, i) { function j(a) { a = k(a, 1), i.$addClass(a); } function k(a, b) { var c = h.data("$classCounts") || ja(), d = []; return f(a, function(a) { (0 < b || c[a]) && (c[a] = (c[a] || 0) + b, c[a] === +(0 < b) && d.push(a)); }), h.data("$classCounts", c), d.join(" "); } function l(a, b) { var e = d(b, a), f = d(a, b), e = k(e, 1), f = k(f, -1); e && e.length && c.addClass(h, e), f && f.length && c.removeClass(h, f); } function m(a) { if (!0 === b || g.$index % 2 === b) { var c = e(a || []); if (n) { if (!L(a, n)) { var d = e(n); l(d, c); } } else j(c); } n = ed(a) ? a.map(function(a) { return K(a); }) : K(a); } var n; g.$watch(i[a], m, !0), i.$observe("class", function(b) { m(g.$eval(i[a])); }), "ngClass" !== a && g.$watch("$index", function(c, d) { var f = 1 & c; if (f !== (1 & d)) { var h = e(g.$eval(i[a])); f === b ? j(h) : (f = k(h, -1), i.$removeClass(f)); } }); } }; } ]; } function Nc(a) { function b(a, b) { b && !g[a] ? (j.addClass(f, a), g[a] = !0) : !b && g[a] && (j.removeClass(f, a), g[a] = !1); } function d(a, c) { a = a ? "-" + ca(a, "-") : "", b(nf + a, !0 === c), b(of + a, !1 === c); } var e = a.ctrl, f = a.$element, g = {}, h = a.set, i = a.unset, j = a.$animate; g[of] = !(g[nf] = f.hasClass(nf)), e.$setValidity = function(a, f, g) { s(f) ? (e.$pending || (e.$pending = {}), h(e.$pending, a, g)) : (e.$pending && i(e.$pending, a, g), Oc(e.$pending) && (e.$pending = c)), D(f) ? f ? (i(e.$error, a, g), h(e.$$success, a, g)) : (h(e.$error, a, g), i(e.$$success, a, g)) : (i(e.$error, a, g), i(e.$$success, a, g)), e.$pending ? (b(rf, !0), e.$valid = e.$invalid = c, d("", null)) : (b(rf, !1), e.$valid = Oc(e.$error), e.$invalid = !e.$valid, d("", e.$valid)), f = e.$pending && e.$pending[a] ? c : !e.$error[a] && (!!e.$$success[a] || null), d(a, f), e.$$parentForm.$setValidity(a, f, e); }; } function Oc(a) { if (a) for (var b in a) if (a.hasOwnProperty(b)) return !1; return !0; } var Pc, Qc, Rc, Sc, Tc = /^\/(.+)\/([a-z]*)$/, Uc = function(a) { return w(a) ? a.toLowerCase() : a; }, Vc = Object.prototype.hasOwnProperty, Wc = function(a) { return w(a) ? a.toUpperCase() : a; }, Xc = [].slice, Yc = [].splice, Zc = [].push, $c = Object.prototype.toString, _c = Object.getPrototypeOf, ad = d("ng"), bd = a.angular || (a.angular = {}), cd = 0; Pc = b.documentMode, o.$inject = [], p.$inject = []; var dd, ed = Array.isArray, fd = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/, gd = function(a) { return w(a) ? a.trim() : a; }, hd = function(a) { return a.replace(/([-()\[\]{}+?*.$\^|,:#(?:<\/\1>|)$/, xd = /<|&#?\w+;/, yd = /<([\w:-]+)/, zd = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, Ad = { option: [ 1, '" ], thead: [ 1, "", "
" ], col: [ 2, "", "
" ], tr: [ 2, "", "
" ], td: [ 3, "", "
" ], _default: [ 0, "", "" ] }; Ad.optgroup = Ad.option, Ad.tbody = Ad.tfoot = Ad.colgroup = Ad.caption = Ad.thead, Ad.th = Ad.td; var Bd = Node.prototype.contains || function(a) { return !!(16 & this.compareDocumentPosition(a)); }, Cd = qa.prototype = { ready: function(c) { function d() { e || (e = !0, c()); } var e = !1; "complete" === b.readyState ? setTimeout(d) : (this.on("DOMContentLoaded", d), qa(a).on("load", d)); }, toString: function() { var a = []; return f(this, function(b) { a.push("" + b); }), "[" + a.join(", ") + "]"; }, eq: function(a) { return Qc(0 <= a ? this[a] : this[this.length + a]); }, length: 0, push: Zc, sort: [].sort, splice: [].splice }, Dd = {}; f("multiple selected checked disabled readOnly required open".split(" "), function(a) { Dd[Uc(a)] = a; }); var Ed = {}; f("input select option textarea button form details".split(" "), function(a) { Ed[a] = !0; }); var Fd = { ngMinlength: "minlength", ngMaxlength: "maxlength", ngMin: "min", ngMax: "max", ngPattern: "pattern" }; f({ data: wa, removeData: ua, hasData: function(a) { for (var b in qd[a.ng339]) return !0; return !1; } }, function(a, b) { qa[b] = a; }), f({ data: wa, inheritedData: Ca, scope: function(a) { return Qc.data(a, "$scope") || Ca(a.parentNode || a, [ "$isolateScope", "$scope" ]); }, isolateScope: function(a) { return Qc.data(a, "$isolateScope") || Qc.data(a, "$isolateScopeNoTemplate"); }, controller: Ba, injector: function(a) { return Ca(a, "$injector"); }, removeAttr: function(a, b) { a.removeAttribute(b); }, hasClass: xa, css: function(a, b, c) { return b = ma(b), t(c) ? void (a.style[b] = c) : a.style[b]; }, attr: function(a, b, d) { var e = a.nodeType; if (e !== od && 2 !== e && 8 !== e) if (e = Uc(b), Dd[e]) { if (!t(d)) return a[b] || (a.attributes.getNamedItem(b) || o).specified ? e : c; d ? (a[b] = !0, a.setAttribute(b, e)) : (a[b] = !1, a.removeAttribute(e)); } else if (t(d)) a.setAttribute(b, d); else if (a.getAttribute) return a = a.getAttribute(b, 2), null === a ? c : a; }, prop: function(a, b, c) { return t(c) ? void (a[b] = c) : a[b]; }, text: function() { function a(a, b) { if (s(b)) { var c = a.nodeType; return 1 === c || c === od ? a.textContent : ""; } a.textContent = b; } return a.$dv = "", a; }(), val: function(a, b) { if (s(b)) { if (a.multiple && "select" === H(a)) { var c = []; return f(a.options, function(a) { a.selected && c.push(a.value || a.text); }), 0 === c.length ? null : c; } return a.value; } a.value = b; }, html: function(a, b) { return s(b) ? a.innerHTML : (sa(a, !0), void (a.innerHTML = b)); }, empty: Da }, function(a, b) { qa.prototype[b] = function(b, c) { var d, e, f = this.length; if (a !== Da && s(2 == a.length && a !== xa && a !== Ba ? b : c)) { if (u(b)) { for (d = 0; d < f; d++) if (a === wa) a(this[d], b); else for (e in b) a(this[d], e, b[e]); return this; } for (d = a.$dv, f = s(d) ? Math.min(f, 1) : f, e = 0; e < f; e++) { var g = a(this[e], b, c); d = d ? d + g : g; } return d; } for (d = 0; d < f; d++) a(this[d], b, c); return this; }; }), f({ removeData: ua, on: function(a, b, d, e) { if (t(e)) throw vd("onargs"); if (na(a)) { e = va(a, !0); var f = e.events, g = e.handle; g || (g = e.handle = Ha(a, f)), e = 0 <= b.indexOf(" ") ? b.split(" ") : [ b ]; for (var h = e.length, i = function(b, c, e) { var h = f[b]; h || (h = f[b] = [], h.specialHandlerWrapper = c, "$destroy" === b || e || a.addEventListener(b, g, !1)), h.push(d); }; h--; ) b = e[h], ud[b] ? (i(ud[b], Ja), i(b, c, !0)) : i(b); } }, off: ta, one: function(a, b, c) { a = Qc(a), a.on(b, function d() { a.off(b, c), a.off(b, d); }), a.on(b, c); }, replaceWith: function(a, b) { var c, d = a.parentNode; sa(a), f(new qa(b), function(b) { c ? d.insertBefore(b, c.nextSibling) : d.replaceChild(b, a), c = b; }); }, children: function(a) { var b = []; return f(a.childNodes, function(a) { 1 === a.nodeType && b.push(a); }), b; }, contents: function(a) { return a.contentDocument || a.childNodes || []; }, append: function(a, b) { var c = a.nodeType; if (1 === c || 11 === c) { b = new qa(b); for (var c = 0, d = b.length; c < d; c++) a.appendChild(b[c]); } }, prepend: function(a, b) { if (1 === a.nodeType) { var c = a.firstChild; f(new qa(b), function(b) { a.insertBefore(b, c); }); } }, wrap: function(a, b) { pa(a, Qc(b).eq(0).clone()[0]); }, remove: Ea, detach: function(a) { Ea(a, !0); }, after: function(a, b) { var c = a, d = a.parentNode; b = new qa(b); for (var e = 0, f = b.length; e < f; e++) { var g = b[e]; d.insertBefore(g, c.nextSibling), c = g; } }, addClass: za, removeClass: ya, toggleClass: function(a, b, c) { b && f(b.split(" "), function(b) { var d = c; s(d) && (d = !xa(a, b)), (d ? za : ya)(a, b); }); }, parent: function(a) { return (a = a.parentNode) && 11 !== a.nodeType ? a : null; }, next: function(a) { return a.nextElementSibling; }, find: function(a, b) { return a.getElementsByTagName ? a.getElementsByTagName(b) : []; }, clone: ra, triggerHandler: function(a, b, c) { var d, e, g = b.type || b, h = va(a); (h = (h = h && h.events) && h[g]) && (d = { preventDefault: function() { this.defaultPrevented = !0; }, isDefaultPrevented: function() { return !0 === this.defaultPrevented; }, stopImmediatePropagation: function() { this.immediatePropagationStopped = !0; }, isImmediatePropagationStopped: function() { return !0 === this.immediatePropagationStopped; }, stopPropagation: o, type: g, target: a }, b.type && (d = k(d, b)), b = K(h), e = c ? [ d ].concat(c) : [ d ], f(b, function(b) { d.isImmediatePropagationStopped() || b.apply(a, e); })); } }, function(a, b) { qa.prototype[b] = function(b, c, d) { for (var e, f = 0, g = this.length; f < g; f++) s(e) ? (e = a(this[f], b, c, d), t(e) && (e = Qc(e))) : Aa(e, a(this[f], b, c, d)); return t(e) ? e : this; }, qa.prototype.bind = qa.prototype.on, qa.prototype.unbind = qa.prototype.off; }), Ma.prototype = { put: function(a, b) { this[La(a, this.nextUid)] = b; }, get: function(a) { return this[La(a, this.nextUid)]; }, remove: function(a) { var b = this[a = La(a, this.nextUid)]; return delete this[a], b; } }; var Gd = [ function() { this.$get = [ function() { return Ma; } ]; } ], Hd = /^[^\(]*\(\s*([^\)]*)\)/m, Id = /,/, Jd = /^\s*(_?)(\S+?)\1\s*$/, Kd = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm, Ld = d("$injector"); Oa.$$annotate = function(a, b, c) { var d; if ("function" == typeof a) { if (!(d = a.$inject)) { if (d = [], a.length) { if (b) throw w(c) && c || (c = a.name || Na(a)), Ld("strictdi", c); b = a.toString().replace(Kd, ""), b = b.match(Hd), f(b[1].split(Id), function(a) { a.replace(Jd, function(a, b, c) { d.push(c); }); }); } a.$inject = d; } } else ed(a) ? (b = a.length - 1, fa(a[b], "fn"), d = a.slice(0, b)) : fa(a, "fn", !0); return d; }; var Md = d("$animate"), Nd = function() { this.$get = function() {}; }, Od = function() { var a = new Ma(), b = []; this.$get = [ "$$AnimateRunner", "$rootScope", function(c, d) { function e(a, b, c) { var d = !1; return b && (b = w(b) ? b.split(" ") : ed(b) ? b : [], f(b, function(b) { b && (d = !0, a[b] = c); })), d; } function g() { f(b, function(b) { var c = a.get(b); if (c) { var d = Ra(b.attr("class")), e = "", g = ""; f(c, function(a, b) { a !== !!d[b] && (a ? e += (e.length ? " " : "") + b : g += (g.length ? " " : "") + b); }), f(b, function(a) { e && za(a, e), g && ya(a, g); }), a.remove(b); } }), b.length = 0; } return { enabled: o, on: o, off: o, pin: o, push: function(f, h, i, j) { return j && j(), i = i || {}, i.from && f.css(i.from), i.to && f.css(i.to), (i.addClass || i.removeClass) && (h = i.addClass, j = i.removeClass, i = a.get(f) || {}, h = e(i, h, !0), j = e(i, j, !1), (h || j) && (a.put(f, i), b.push(f), 1 === b.length && d.$$postDigest(g))), f = new c(), f.complete(), f; } }; } ]; }, Pd = [ "$provide", function(a) { var b = this; this.$$registeredAnimations = Object.create(null), this.register = function(c, d) { if (c && "." !== c.charAt(0)) throw Md("notcsel", c); var e = c + "-animation"; b.$$registeredAnimations[c.substr(1)] = e, a.factory(e, d); }, this.classNameFilter = function(a) { if (1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null) && /(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString())) throw Md("nongcls", "ng-animate"); return this.$$classNameFilter; }, this.$get = [ "$$animateQueue", function(a) { function b(a, b, c) { if (c) { var d; a: { for (d = 0; d < c.length; d++) { var e = c[d]; if (1 === e.nodeType) { d = e; break a; } } d = void 0; } !d || d.parentNode || d.previousElementSibling || (c = null); } c ? c.after(a) : b.prepend(a); } return { on: a.on, off: a.off, pin: a.pin, enabled: a.enabled, cancel: function(a) { a.end && a.end(); }, enter: function(c, d, e, f) { return d = d && Qc(d), e = e && Qc(e), d = d || e.parent(), b(c, d, e), a.push(c, "enter", Sa(f)); }, move: function(c, d, e, f) { return d = d && Qc(d), e = e && Qc(e), d = d || e.parent(), b(c, d, e), a.push(c, "move", Sa(f)); }, leave: function(b, c) { return a.push(b, "leave", Sa(c), function() { b.remove(); }); }, addClass: function(b, c, d) { return d = Sa(d), d.addClass = Qa(d.addclass, c), a.push(b, "addClass", d); }, removeClass: function(b, c, d) { return d = Sa(d), d.removeClass = Qa(d.removeClass, c), a.push(b, "removeClass", d); }, setClass: function(b, c, d, e) { return e = Sa(e), e.addClass = Qa(e.addClass, c), e.removeClass = Qa(e.removeClass, d), a.push(b, "setClass", e); }, animate: function(b, c, d, e, f) { return f = Sa(f), f.from = f.from ? k(f.from, c) : c, f.to = f.to ? k(f.to, d) : d, f.tempClasses = Qa(f.tempClasses, e || "ng-inline-animate"), a.push(b, "animate", f); } }; } ]; } ], Qd = function() { this.$get = [ "$$rAF", function(a) { function b(b) { c.push(b), 1 < c.length || a(function() { for (var a = 0; a < c.length; a++) c[a](); c = []; }); } var c = []; return function() { var a = !1; return b(function() { a = !0; }), function(c) { a ? c() : b(c); }; }; } ]; }, Rd = function() { this.$get = [ "$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function(a, b, c, d, e) { function g(a) { this.setHost(a); var b = c(); this._doneCallbacks = [], this._tick = function(a) { var c = d[0]; c && c.hidden ? e(a, 0, !1) : b(a); }, this._state = 0; } return g.chain = function(a, b) { function c() { d === a.length ? b(!0) : a[d](function(a) { !1 === a ? b(!1) : (d++, c()); }); } var d = 0; c(); }, g.all = function(a, b) { function c(c) { e = e && c, ++d === a.length && b(e); } var d = 0, e = !0; f(a, function(a) { a.done(c); }); }, g.prototype = { setHost: function(a) { this.host = a || {}; }, done: function(a) { 2 === this._state ? a() : this._doneCallbacks.push(a); }, progress: o, getPromise: function() { if (!this.promise) { var b = this; this.promise = a(function(a, c) { b.done(function(b) { !1 === b ? c() : a(); }); }); } return this.promise; }, then: function(a, b) { return this.getPromise().then(a, b); }, "catch": function(a) { return this.getPromise()["catch"](a); }, "finally": function(a) { return this.getPromise()["finally"](a); }, pause: function() { this.host.pause && this.host.pause(); }, resume: function() { this.host.resume && this.host.resume(); }, end: function() { this.host.end && this.host.end(), this._resolve(!0); }, cancel: function() { this.host.cancel && this.host.cancel(), this._resolve(!1); }, complete: function(a) { var b = this; 0 === b._state && (b._state = 1, b._tick(function() { b._resolve(a); })); }, _resolve: function(a) { 2 !== this._state && (f(this._doneCallbacks, function(b) { b(a); }), this._doneCallbacks.length = 0, this._state = 2); } }, g; } ]; }, Sd = function() { this.$get = [ "$$rAF", "$q", "$$AnimateRunner", function(a, b, c) { return function(b, d) { function e() { return a(function() { f.addClass && (b.addClass(f.addClass), f.addClass = null), f.removeClass && (b.removeClass(f.removeClass), f.removeClass = null), f.to && (b.css(f.to), f.to = null), g || h.complete(), g = !0; }), h; } var f = d || {}; f.$$prepared || (f = J(f)), f.cleanupStyles && (f.from = f.to = null), f.from && (b.css(f.from), f.from = null); var g, h = new c(); return { start: e, end: e }; }; } ]; }, Td = d("$compile"); Xa.$inject = [ "$provide", "$$sanitizeUriProvider" ]; var Ud = /^((?:x|data)[\:\-_])/i, Vd = d("$controller"), Wd = /^(\S+)(\s+as\s+([\w$]+))?$/, Xd = function() { this.$get = [ "$document", function(a) { return function(b) { return b ? !b.nodeType && b instanceof Qc && (b = b[0]) : b = a[0].body, b.offsetWidth + 1; }; } ]; }, Yd = "application/json", Zd = { "Content-Type": Yd + ";charset=utf-8" }, $d = /^\[|^\{(?!\{)/, _d = { "[": /]$/, "{": /}$/ }, ae = /^\)\]\}',?\n/, be = d("$http"), ce = function(a) { return function() { throw be("legacy", a); }; }, de = bd.$interpolateMinErr = d("$interpolate"); de.throwNoconcat = function(a) { throw de("noconcat", a); }, de.interr = function(a, b) { return de("interr", a, b.toString()); }; var ee = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/, fe = { http: 80, https: 443, ftp: 21 }, ge = d("$location"), he = { $$html5: !1, $$replace: !1, absUrl: yb("$$absUrl"), url: function(a) { if (s(a)) return this.$$url; var b = ee.exec(a); return (b[1] || "" === a) && this.path(decodeURIComponent(b[1])), (b[2] || b[1] || "" === a) && this.search(b[3] || ""), this.hash(b[5] || ""), this; }, protocol: yb("$$protocol"), host: yb("$$host"), port: yb("$$port"), path: zb("$$path", function(a) { return a = null !== a ? a.toString() : "", "/" == a.charAt(0) ? a : "/" + a; }), search: function(a, b) { switch (arguments.length) { case 0: return this.$$search; case 1: if (w(a) || x(a)) a = a.toString(), this.$$search = V(a); else { if (!u(a)) throw ge("isrcharg"); a = J(a, {}), f(a, function(b, c) { null == b && delete a[c]; }), this.$$search = a; } break; default: s(b) || null === b ? delete this.$$search[a] : this.$$search[a] = b; } return this.$$compose(), this; }, hash: zb("$$hash", function(a) { return null !== a ? a.toString() : ""; }), replace: function() { return this.$$replace = !0, this; } }; f([ xb, wb, vb ], function(a) { a.prototype = Object.create(he), a.prototype.state = function(b) { if (!arguments.length) return this.$$state; if (a !== vb || !this.$$html5) throw ge("nostate"); return this.$$state = s(b) ? null : b, this; }; }); var ie = d("$parse"), je = Function.prototype.call, ke = Function.prototype.apply, le = Function.prototype.bind, me = ja(); f("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function(a) { me[a] = !0; }); var ne = { n: "\n", f: "\f", r: "\r", t: "\t", v: "\x0B", "'": "'", '"': '"' }, oe = function(a) { this.options = a; }; oe.prototype = { constructor: oe, lex: function(a) { for (this.text = a, this.index = 0, this.tokens = []; this.index < this.text.length; ) if (a = this.text.charAt(this.index), '"' === a || "'" === a) this.readString(a); else if (this.isNumber(a) || "." === a && this.isNumber(this.peek())) this.readNumber(); else if (this.isIdent(a)) this.readIdent(); else if (this.is(a, "(){}[].,;:?")) this.tokens.push({ index: this.index, text: a }), this.index++; else if (this.isWhitespace(a)) this.index++; else { var b = a + this.peek(), c = b + this.peek(2), d = me[b], e = me[c]; me[a] || d || e ? (a = e ? c : d ? b : a, this.tokens.push({ index: this.index, text: a, operator: !0 }), this.index += a.length) : this.throwError("Unexpected next character ", this.index, this.index + 1); } return this.tokens; }, is: function(a, b) { return -1 !== b.indexOf(a); }, peek: function(a) { return a = a || 1, this.index + a < this.text.length && this.text.charAt(this.index + a); }, isNumber: function(a) { return "0" <= a && "9" >= a && "string" == typeof a; }, isWhitespace: function(a) { return " " === a || "\r" === a || "\t" === a || "\n" === a || "\x0B" === a || " " === a; }, isIdent: function(a) { return "a" <= a && "z" >= a || "A" <= a && "Z" >= a || "_" === a || "$" === a; }, isExpOperator: function(a) { return "-" === a || "+" === a || this.isNumber(a); }, throwError: function(a, b, c) { throw c = c || this.index, b = t(b) ? "s " + b + "-" + this.index + " [" + this.text.substring(b, c) + "]" : " " + c, ie("lexerr", a, b, this.text); }, readNumber: function() { for (var a = "", b = this.index; this.index < this.text.length; ) { var c = Uc(this.text.charAt(this.index)); if ("." == c || this.isNumber(c)) a += c; else { var d = this.peek(); if ("e" == c && this.isExpOperator(d)) a += c; else if (this.isExpOperator(c) && d && this.isNumber(d) && "e" == a.charAt(a.length - 1)) a += c; else { if (!this.isExpOperator(c) || d && this.isNumber(d) || "e" != a.charAt(a.length - 1)) break; this.throwError("Invalid exponent"); } } this.index++; } this.tokens.push({ index: b, text: a, constant: !0, value: Number(a) }); }, readIdent: function() { for (var a = this.index; this.index < this.text.length; ) { var b = this.text.charAt(this.index); if (!this.isIdent(b) && !this.isNumber(b)) break; this.index++; } this.tokens.push({ index: a, text: this.text.slice(a, this.index), identifier: !0 }); }, readString: function(a) { var b = this.index; this.index++; for (var c = "", d = a, e = !1; this.index < this.text.length; ) { var f = this.text.charAt(this.index), d = d + f; if (e) "u" === f ? (e = this.text.substring(this.index + 1, this.index + 5), e.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + e + "]"), this.index += 4, c += String.fromCharCode(parseInt(e, 16))) : c += ne[f] || f, e = !1; else if ("\\" === f) e = !0; else { if (f === a) return this.index++, void this.tokens.push({ index: b, text: d, constant: !0, value: c }); c += f; } this.index++; } this.throwError("Unterminated quote", b); } }; var pe = function(a, b) { this.lexer = a, this.options = b; }; pe.Program = "Program", pe.ExpressionStatement = "ExpressionStatement", pe.AssignmentExpression = "AssignmentExpression", pe.ConditionalExpression = "ConditionalExpression", pe.LogicalExpression = "LogicalExpression", pe.BinaryExpression = "BinaryExpression", pe.UnaryExpression = "UnaryExpression", pe.CallExpression = "CallExpression", pe.MemberExpression = "MemberExpression", pe.Identifier = "Identifier", pe.Literal = "Literal", pe.ArrayExpression = "ArrayExpression", pe.Property = "Property", pe.ObjectExpression = "ObjectExpression", pe.ThisExpression = "ThisExpression", pe.NGValueParameter = "NGValueParameter", pe.prototype = { ast: function(a) { return this.text = a, this.tokens = this.lexer.lex(a), a = this.program(), 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), a; }, program: function() { for (var a = []; ;) if (0 < this.tokens.length && !this.peek("}", ")", ";", "]") && a.push(this.expressionStatement()), !this.expect(";")) return { type: pe.Program, body: a }; }, expressionStatement: function() { return { type: pe.ExpressionStatement, expression: this.filterChain() }; }, filterChain: function() { for (var a = this.expression(); this.expect("|"); ) a = this.filter(a); return a; }, expression: function() { return this.assignment(); }, assignment: function() { var a = this.ternary(); return this.expect("=") && (a = { type: pe.AssignmentExpression, left: a, right: this.assignment(), operator: "=" }), a; }, ternary: function() { var a, b, c = this.logicalOR(); return this.expect("?") && (a = this.expression(), this.consume(":")) ? (b = this.expression(), { type: pe.ConditionalExpression, test: c, alternate: a, consequent: b }) : c; }, logicalOR: function() { for (var a = this.logicalAND(); this.expect("||"); ) a = { type: pe.LogicalExpression, operator: "||", left: a, right: this.logicalAND() }; return a; }, logicalAND: function() { for (var a = this.equality(); this.expect("&&"); ) a = { type: pe.LogicalExpression, operator: "&&", left: a, right: this.equality() }; return a; }, equality: function() { for (var a, b = this.relational(); a = this.expect("==", "!=", "===", "!=="); ) b = { type: pe.BinaryExpression, operator: a.text, left: b, right: this.relational() }; return b; }, relational: function() { for (var a, b = this.additive(); a = this.expect("<", ">", "<=", ">="); ) b = { type: pe.BinaryExpression, operator: a.text, left: b, right: this.additive() }; return b; }, additive: function() { for (var a, b = this.multiplicative(); a = this.expect("+", "-"); ) b = { type: pe.BinaryExpression, operator: a.text, left: b, right: this.multiplicative() }; return b; }, multiplicative: function() { for (var a, b = this.unary(); a = this.expect("*", "/", "%"); ) b = { type: pe.BinaryExpression, operator: a.text, left: b, right: this.unary() }; return b; }, unary: function() { var a; return (a = this.expect("+", "-", "!")) ? { type: pe.UnaryExpression, operator: a.text, prefix: !0, argument: this.unary() } : this.primary(); }, primary: function() { var a; this.expect("(") ? (a = this.filterChain(), this.consume(")")) : this.expect("[") ? a = this.arrayDeclaration() : this.expect("{") ? a = this.object() : this.constants.hasOwnProperty(this.peek().text) ? a = J(this.constants[this.consume().text]) : this.peek().identifier ? a = this.identifier() : this.peek().constant ? a = this.constant() : this.throwError("not a primary expression", this.peek()); for (var b; b = this.expect("(", "[", "."); ) "(" === b.text ? (a = { type: pe.CallExpression, callee: a, arguments: this.parseArguments() }, this.consume(")")) : "[" === b.text ? (a = { type: pe.MemberExpression, object: a, property: this.expression(), computed: !0 }, this.consume("]")) : "." === b.text ? a = { type: pe.MemberExpression, object: a, property: this.identifier(), computed: !1 } : this.throwError("IMPOSSIBLE"); return a; }, filter: function(a) { a = [ a ]; for (var b = { type: pe.CallExpression, callee: this.identifier(), arguments: a, filter: !0 }; this.expect(":"); ) a.push(this.expression()); return b; }, parseArguments: function() { var a = []; if (")" !== this.peekToken().text) do a.push(this.expression()); while (this.expect(",")); return a; }, identifier: function() { var a = this.consume(); return a.identifier || this.throwError("is not a valid identifier", a), { type: pe.Identifier, name: a.text }; }, constant: function() { return { type: pe.Literal, value: this.consume().value }; }, arrayDeclaration: function() { var a = []; if ("]" !== this.peekToken().text) do { if (this.peek("]")) break; a.push(this.expression()); } while (this.expect(",")); return this.consume("]"), { type: pe.ArrayExpression, elements: a }; }, object: function() { var a, b = []; if ("}" !== this.peekToken().text) do { if (this.peek("}")) break; a = { type: pe.Property, kind: "init" }, this.peek().constant ? a.key = this.constant() : this.peek().identifier ? a.key = this.identifier() : this.throwError("invalid key", this.peek()), this.consume(":"), a.value = this.expression(), b.push(a); } while (this.expect(",")); return this.consume("}"), { type: pe.ObjectExpression, properties: b }; }, throwError: function(a, b) { throw ie("syntax", b.text, a, b.index + 1, this.text, this.text.substring(b.index)); }, consume: function(a) { if (0 === this.tokens.length) throw ie("ueoe", this.text); var b = this.expect(a); return b || this.throwError("is unexpected, expecting [" + a + "]", this.peek()), b; }, peekToken: function() { if (0 === this.tokens.length) throw ie("ueoe", this.text); return this.tokens[0]; }, peek: function(a, b, c, d) { return this.peekAhead(0, a, b, c, d); }, peekAhead: function(a, b, c, d, e) { if (this.tokens.length > a) { a = this.tokens[a]; var f = a.text; if (f === b || f === c || f === d || f === e || !(b || c || d || e)) return a; } return !1; }, expect: function(a, b, c, d) { return !!(a = this.peek(a, b, c, d)) && (this.tokens.shift(), a); }, constants: { "true": { type: pe.Literal, value: !0 }, "false": { type: pe.Literal, value: !1 }, "null": { type: pe.Literal, value: null }, undefined: { type: pe.Literal, value: c }, "this": { type: pe.ThisExpression } } }, Ob.prototype = { compile: function(a, b) { var d = this, e = this.astBuilder.ast(a); this.state = { nextId: 0, filters: {}, expensiveChecks: b, fn: { vars: [], body: [], own: {} }, assign: { vars: [], body: [], own: {} }, inputs: [] }, Jb(e, d.$filter); var g, h = ""; return this.stage = "assign", (g = Mb(e)) && (this.state.computing = "assign", h = this.nextId(), this.recurse(g, h), this.return_(h), h = "fn.assign=" + this.generateFunction("assign", "s,v,l")), g = Kb(e.body), d.stage = "inputs", f(g, function(a, b) { var c = "fn" + b; d.state[c] = { vars: [], body: [], own: {} }, d.state.computing = c; var e = d.nextId(); d.recurse(a, e), d.return_(e), d.state.inputs.push(c), a.watchId = b; }), this.state.computing = "fn", this.stage = "main", this.recurse(e), h = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + h + this.watchFns() + "return fn;", h = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", h)(this.$filter, Cb, Eb, Fb, Db, Gb, Hb, Ib, a), this.state = this.stage = c, h.literal = Nb(e), h.constant = e.constant, h; }, USE: "use", STRICT: "strict", watchFns: function() { var a = [], b = this.state.inputs, c = this; return f(b, function(b) { a.push("var " + b + "=" + c.generateFunction(b, "s")); }), b.length && a.push("fn.inputs=[" + b.join(",") + "];"), a.join(""); }, generateFunction: function(a, b) { return "function(" + b + "){" + this.varsPrefix(a) + this.body(a) + "};"; }, filterPrefix: function() { var a = [], b = this; return f(this.state.filters, function(c, d) { a.push(c + "=$filter(" + b.escape(d) + ")"); }), a.length ? "var " + a.join(",") + ";" : ""; }, varsPrefix: function(a) { return this.state[a].vars.length ? "var " + this.state[a].vars.join(",") + ";" : ""; }, body: function(a) { return this.state[a].body.join(""); }, recurse: function(a, b, d, e, g, h) { var i, j, k, l, m = this; if (e = e || o, !h && t(a.watchId)) b = b || this.nextId(), this.if_("i", this.lazyAssign(b, this.computedMember("i", a.watchId)), this.lazyRecurse(a, b, d, e, g, !0)); else switch (a.type) { case pe.Program: f(a.body, function(b, d) { m.recurse(b.expression, c, c, function(a) { j = a; }), d !== a.body.length - 1 ? m.current().body.push(j, ";") : m.return_(j); }); break; case pe.Literal: l = this.escape(a.value), this.assign(b, l), e(l); break; case pe.UnaryExpression: this.recurse(a.argument, c, c, function(a) { j = a; }), l = a.operator + "(" + this.ifDefined(j, 0) + ")", this.assign(b, l), e(l); break; case pe.BinaryExpression: this.recurse(a.left, c, c, function(a) { i = a; }), this.recurse(a.right, c, c, function(a) { j = a; }), l = "+" === a.operator ? this.plus(i, j) : "-" === a.operator ? this.ifDefined(i, 0) + a.operator + this.ifDefined(j, 0) : "(" + i + ")" + a.operator + "(" + j + ")", this.assign(b, l), e(l); break; case pe.LogicalExpression: b = b || this.nextId(), m.recurse(a.left, b), m.if_("&&" === a.operator ? b : m.not(b), m.lazyRecurse(a.right, b)), e(b); break; case pe.ConditionalExpression: b = b || this.nextId(), m.recurse(a.test, b), m.if_(b, m.lazyRecurse(a.alternate, b), m.lazyRecurse(a.consequent, b)), e(b); break; case pe.Identifier: b = b || this.nextId(), d && (d.context = "inputs" === m.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), d.computed = !1, d.name = a.name), Cb(a.name), m.if_("inputs" === m.stage || m.not(m.getHasOwnProperty("l", a.name)), function() { m.if_("inputs" === m.stage || "s", function() { g && 1 !== g && m.if_(m.not(m.nonComputedMember("s", a.name)), m.lazyAssign(m.nonComputedMember("s", a.name), "{}")), m.assign(b, m.nonComputedMember("s", a.name)); }); }, b && m.lazyAssign(b, m.nonComputedMember("l", a.name))), (m.state.expensiveChecks || Qb(a.name)) && m.addEnsureSafeObject(b), e(b); break; case pe.MemberExpression: i = d && (d.context = this.nextId()) || this.nextId(), b = b || this.nextId(), m.recurse(a.object, i, c, function() { m.if_(m.notNull(i), function() { g && 1 !== g && m.addEnsureSafeAssignContext(i), a.computed ? (j = m.nextId(), m.recurse(a.property, j), m.getStringValue(j), m.addEnsureSafeMemberName(j), g && 1 !== g && m.if_(m.not(m.computedMember(i, j)), m.lazyAssign(m.computedMember(i, j), "{}")), l = m.ensureSafeObject(m.computedMember(i, j)), m.assign(b, l), d && (d.computed = !0, d.name = j)) : (Cb(a.property.name), g && 1 !== g && m.if_(m.not(m.nonComputedMember(i, a.property.name)), m.lazyAssign(m.nonComputedMember(i, a.property.name), "{}")), l = m.nonComputedMember(i, a.property.name), (m.state.expensiveChecks || Qb(a.property.name)) && (l = m.ensureSafeObject(l)), m.assign(b, l), d && (d.computed = !1, d.name = a.property.name)); }, function() { m.assign(b, "undefined"); }), e(b); }, !!g); break; case pe.CallExpression: b = b || this.nextId(), a.filter ? (j = m.filter(a.callee.name), k = [], f(a.arguments, function(a) { var b = m.nextId(); m.recurse(a, b), k.push(b); }), l = j + "(" + k.join(",") + ")", m.assign(b, l), e(b)) : (j = m.nextId(), i = {}, k = [], m.recurse(a.callee, j, i, function() { m.if_(m.notNull(j), function() { m.addEnsureSafeFunction(j), f(a.arguments, function(a) { m.recurse(a, m.nextId(), c, function(a) { k.push(m.ensureSafeObject(a)); }); }), i.name ? (m.state.expensiveChecks || m.addEnsureSafeObject(i.context), l = m.member(i.context, i.name, i.computed) + "(" + k.join(",") + ")") : l = j + "(" + k.join(",") + ")", l = m.ensureSafeObject(l), m.assign(b, l); }, function() { m.assign(b, "undefined"); }), e(b); })); break; case pe.AssignmentExpression: if (j = this.nextId(), i = {}, !Lb(a.left)) throw ie("lval"); this.recurse(a.left, c, i, function() { m.if_(m.notNull(i.context), function() { m.recurse(a.right, j), m.addEnsureSafeObject(m.member(i.context, i.name, i.computed)), m.addEnsureSafeAssignContext(i.context), l = m.member(i.context, i.name, i.computed) + a.operator + j, m.assign(b, l), e(b || l); }); }, 1); break; case pe.ArrayExpression: k = [], f(a.elements, function(a) { m.recurse(a, m.nextId(), c, function(a) { k.push(a); }); }), l = "[" + k.join(",") + "]", this.assign(b, l), e(l); break; case pe.ObjectExpression: k = [], f(a.properties, function(a) { m.recurse(a.value, m.nextId(), c, function(b) { k.push(m.escape(a.key.type === pe.Identifier ? a.key.name : "" + a.key.value) + ":" + b); }); }), l = "{" + k.join(",") + "}", this.assign(b, l), e(l); break; case pe.ThisExpression: this.assign(b, "s"), e("s"); break; case pe.NGValueParameter: this.assign(b, "v"), e("v"); } }, getHasOwnProperty: function(a, b) { var c = a + "." + b, d = this.current().own; return d.hasOwnProperty(c) || (d[c] = this.nextId(!1, a + "&&(" + this.escape(b) + " in " + a + ")")), d[c]; }, assign: function(a, b) { if (a) return this.current().body.push(a, "=", b, ";"), a; }, filter: function(a) { return this.state.filters.hasOwnProperty(a) || (this.state.filters[a] = this.nextId(!0)), this.state.filters[a]; }, ifDefined: function(a, b) { return "ifDefined(" + a + "," + this.escape(b) + ")"; }, plus: function(a, b) { return "plus(" + a + "," + b + ")"; }, return_: function(a) { this.current().body.push("return ", a, ";"); }, if_: function(a, b, c) { if (!0 === a) b(); else { var d = this.current().body; d.push("if(", a, "){"), b(), d.push("}"), c && (d.push("else{"), c(), d.push("}")); } }, not: function(a) { return "!(" + a + ")"; }, notNull: function(a) { return a + "!=null"; }, nonComputedMember: function(a, b) { return a + "." + b; }, computedMember: function(a, b) { return a + "[" + b + "]"; }, member: function(a, b, c) { return c ? this.computedMember(a, b) : this.nonComputedMember(a, b); }, addEnsureSafeObject: function(a) { this.current().body.push(this.ensureSafeObject(a), ";"); }, addEnsureSafeMemberName: function(a) { this.current().body.push(this.ensureSafeMemberName(a), ";"); }, addEnsureSafeFunction: function(a) { this.current().body.push(this.ensureSafeFunction(a), ";"); }, addEnsureSafeAssignContext: function(a) { this.current().body.push(this.ensureSafeAssignContext(a), ";"); }, ensureSafeObject: function(a) { return "ensureSafeObject(" + a + ",text)"; }, ensureSafeMemberName: function(a) { return "ensureSafeMemberName(" + a + ",text)"; }, ensureSafeFunction: function(a) { return "ensureSafeFunction(" + a + ",text)"; }, getStringValue: function(a) { this.assign(a, "getStringValue(" + a + ",text)"); }, ensureSafeAssignContext: function(a) { return "ensureSafeAssignContext(" + a + ",text)"; }, lazyRecurse: function(a, b, c, d, e, f) { var g = this; return function() { g.recurse(a, b, c, d, e, f); }; }, lazyAssign: function(a, b) { var c = this; return function() { c.assign(a, b); }; }, stringEscapeRegex: /[^ a-zA-Z0-9]/g, stringEscapeFn: function(a) { return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4); }, escape: function(a) { if (w(a)) return "'" + a.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; if (x(a)) return a.toString(); if (!0 === a) return "true"; if (!1 === a) return "false"; if (null === a) return "null"; if ("undefined" == typeof a) return "undefined"; throw ie("esc"); }, nextId: function(a, b) { var c = "v" + this.state.nextId++; return a || this.current().vars.push(c + (b ? "=" + b : "")), c; }, current: function() { return this.state[this.state.computing]; } }, Pb.prototype = { compile: function(a, b) { var c = this, d = this.astBuilder.ast(a); this.expression = a, this.expensiveChecks = b, Jb(d, c.$filter); var e, g; (e = Mb(d)) && (g = this.recurse(e)), e = Kb(d.body); var h; e && (h = [], f(e, function(a, b) { var d = c.recurse(a); a.input = d, h.push(d), a.watchId = b; })); var i = []; return f(d.body, function(a) { i.push(c.recurse(a.expression)); }), e = 0 === d.body.length ? function() {} : 1 === d.body.length ? i[0] : function(a, b) { var c; return f(i, function(d) { c = d(a, b); }), c; }, g && (e.assign = function(a, b, c) { return g(a, c, b); }), h && (e.inputs = h), e.literal = Nb(d), e.constant = d.constant, e; }, recurse: function(a, b, d) { var e, g, h, i = this; if (a.input) return this.inputs(a.input, a.watchId); switch (a.type) { case pe.Literal: return this.value(a.value, b); case pe.UnaryExpression: return g = this.recurse(a.argument), this["unary" + a.operator](g, b); case pe.BinaryExpression: return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b); case pe.LogicalExpression: return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b); case pe.ConditionalExpression: return this["ternary?:"](this.recurse(a.test), this.recurse(a.alternate), this.recurse(a.consequent), b); case pe.Identifier: return Cb(a.name, i.expression), i.identifier(a.name, i.expensiveChecks || Qb(a.name), b, d, i.expression); case pe.MemberExpression: return e = this.recurse(a.object, !1, !!d), a.computed || (Cb(a.property.name, i.expression), g = a.property.name), a.computed && (g = this.recurse(a.property)), a.computed ? this.computedMember(e, g, b, d, i.expression) : this.nonComputedMember(e, g, i.expensiveChecks, b, d, i.expression); case pe.CallExpression: return h = [], f(a.arguments, function(a) { h.push(i.recurse(a)); }), a.filter && (g = this.$filter(a.callee.name)), a.filter || (g = this.recurse(a.callee, !0)), a.filter ? function(a, d, e, f) { for (var i = [], j = 0; j < h.length; ++j) i.push(h[j](a, d, e, f)); return a = g.apply(c, i, f), b ? { context: c, name: c, value: a } : a; } : function(a, c, d, e) { var f, j = g(a, c, d, e); if (null != j.value) { Eb(j.context, i.expression), Fb(j.value, i.expression), f = []; for (var k = 0; k < h.length; ++k) f.push(Eb(h[k](a, c, d, e), i.expression)); f = Eb(j.value.apply(j.context, f), i.expression); } return b ? { value: f } : f; }; case pe.AssignmentExpression: return e = this.recurse(a.left, !0, 1), g = this.recurse(a.right), function(a, c, d, f) { var h = e(a, c, d, f); return a = g(a, c, d, f), Eb(h.value, i.expression), Gb(h.context), h.context[h.name] = a, b ? { value: a } : a; }; case pe.ArrayExpression: return h = [], f(a.elements, function(a) { h.push(i.recurse(a)); }), function(a, c, d, e) { for (var f = [], g = 0; g < h.length; ++g) f.push(h[g](a, c, d, e)); return b ? { value: f } : f; }; case pe.ObjectExpression: return h = [], f(a.properties, function(a) { h.push({ key: a.key.type === pe.Identifier ? a.key.name : "" + a.key.value, value: i.recurse(a.value) }); }), function(a, c, d, e) { for (var f = {}, g = 0; g < h.length; ++g) f[h[g].key] = h[g].value(a, c, d, e); return b ? { value: f } : f; }; case pe.ThisExpression: return function(a) { return b ? { value: a } : a; }; case pe.NGValueParameter: return function(a, c, d, e) { return b ? { value: d } : d; }; } }, "unary+": function(a, b) { return function(c, d, e, f) { return c = a(c, d, e, f), c = t(c) ? +c : 0, b ? { value: c } : c; }; }, "unary-": function(a, b) { return function(c, d, e, f) { return c = a(c, d, e, f), c = t(c) ? -c : 0, b ? { value: c } : c; }; }, "unary!": function(a, b) { return function(c, d, e, f) { return c = !a(c, d, e, f), b ? { value: c } : c; }; }, "binary+": function(a, b, c) { return function(d, e, f, g) { var h = a(d, e, f, g); return d = b(d, e, f, g), h = Ib(h, d), c ? { value: h } : h; }; }, "binary-": function(a, b, c) { return function(d, e, f, g) { var h = a(d, e, f, g); return d = b(d, e, f, g), h = (t(h) ? h : 0) - (t(d) ? d : 0), c ? { value: h } : h; }; }, "binary*": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) * b(d, e, f, g), c ? { value: d } : d; }; }, "binary/": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) / b(d, e, f, g), c ? { value: d } : d; }; }, "binary%": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) % b(d, e, f, g), c ? { value: d } : d; }; }, "binary===": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) === b(d, e, f, g), c ? { value: d } : d; }; }, "binary!==": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) !== b(d, e, f, g), c ? { value: d } : d; }; }, "binary==": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) == b(d, e, f, g), c ? { value: d } : d; }; }, "binary!=": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) != b(d, e, f, g), c ? { value: d } : d; }; }, "binary<": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) < b(d, e, f, g), c ? { value: d } : d; }; }, "binary>": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) > b(d, e, f, g), c ? { value: d } : d; }; }, "binary<=": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) <= b(d, e, f, g), c ? { value: d } : d; }; }, "binary>=": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) >= b(d, e, f, g), c ? { value: d } : d; }; }, "binary&&": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) && b(d, e, f, g), c ? { value: d } : d; }; }, "binary||": function(a, b, c) { return function(d, e, f, g) { return d = a(d, e, f, g) || b(d, e, f, g), c ? { value: d } : d; }; }, "ternary?:": function(a, b, c, d) { return function(e, f, g, h) { return e = a(e, f, g, h) ? b(e, f, g, h) : c(e, f, g, h), d ? { value: e } : e; }; }, value: function(a, b) { return function() { return b ? { context: c, name: c, value: a } : a; }; }, identifier: function(a, b, d, e, f) { return function(g, h, i, j) { return g = h && a in h ? h : g, e && 1 !== e && g && !g[a] && (g[a] = {}), h = g ? g[a] : c, b && Eb(h, f), d ? { context: g, name: a, value: h } : h; }; }, computedMember: function(a, b, c, d, e) { return function(f, g, h, i) { var j, k, l = a(f, g, h, i); return null != l && (j = b(f, g, h, i), j = Db(j), Cb(j, e), d && 1 !== d && (Gb(l), l && !l[j] && (l[j] = {})), k = l[j], Eb(k, e)), c ? { context: l, name: j, value: k } : k; }; }, nonComputedMember: function(a, b, d, e, f, g) { return function(h, i, j, k) { return h = a(h, i, j, k), f && 1 !== f && (Gb(h), h && !h[b] && (h[b] = {})), i = null != h ? h[b] : c, (d || Qb(b)) && Eb(i, g), e ? { context: h, name: b, value: i } : i; }; }, inputs: function(a, b) { return function(c, d, e, f) { return f ? f[b] : a(c, d, e); }; } }; var qe = function(a, b, c) { this.lexer = a, this.$filter = b, this.options = c, this.ast = new pe(this.lexer), this.astCompiler = c.csp ? new Pb(this.ast, b) : new Ob(this.ast, b); }; qe.prototype = { constructor: qe, parse: function(a) { return this.astCompiler.compile(a, this.options.expensiveChecks); } }; var re = Object.prototype.valueOf, se = d("$sce"), te = { HTML: "html", CSS: "css", URL: "url", RESOURCE_URL: "resourceUrl", JS: "js" }, Td = d("$compile"), ue = b.createElement("a"), ve = fc(a.location.href); ic.$inject = [ "$document" ], kc.$inject = [ "$provide" ]; var we = 22, xe = ".", ye = "0"; pc.$inject = [ "$locale" ], qc.$inject = [ "$locale" ]; var ze = { yyyy: vc("FullYear", 4), yy: vc("FullYear", 2, 0, !0), y: vc("FullYear", 1), MMMM: wc("Month"), MMM: wc("Month", !0), MM: vc("Month", 2, 1), M: vc("Month", 1, 1), dd: vc("Date", 2), d: vc("Date", 1), HH: vc("Hours", 2), H: vc("Hours", 1), hh: vc("Hours", 2, -12), h: vc("Hours", 1, -12), mm: vc("Minutes", 2), m: vc("Minutes", 1), ss: vc("Seconds", 2), s: vc("Seconds", 1), sss: vc("Milliseconds", 3), EEEE: wc("Day"), EEE: wc("Day", !0), a: function(a, b) { return 12 > a.getHours() ? b.AMPMS[0] : b.AMPMS[1]; }, Z: function(a, b, c) { return a = -1 * c, a = (0 <= a ? "+" : "") + (uc(Math[0 < a ? "floor" : "ceil"](a / 60), 2) + uc(Math.abs(a % 60), 2)); }, ww: yc(2), w: yc(1), G: zc, GG: zc, GGG: zc, GGGG: function(a, b) { return 0 >= a.getFullYear() ? b.ERANAMES[0] : b.ERANAMES[1]; } }, Ae = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, Be = /^\-?\d+$/; Ac.$inject = [ "$locale" ]; var Ce = q(Uc), De = q(Wc); Dc.$inject = [ "$parse" ]; var Ee = q({ restrict: "E", compile: function(a, b) { if (!b.href && !b.xlinkHref) return function(a, b) { if ("a" === b[0].nodeName.toLowerCase()) { var c = "[object SVGAnimatedString]" === $c.call(b.prop("href")) ? "xlink:href" : "href"; b.on("click", function(a) { b.attr(c) || a.preventDefault(); }); } }; } }), Fe = {}; f(Dd, function(a, b) { function c(a, c, e) { a.$watch(e[d], function(a) { e.$set(b, !!a); }); } if ("multiple" != a) { var d = Ya("ng-" + b), e = c; "checked" === a && (e = function(a, b, e) { e.ngModel !== e[d] && c(a, b, e); }), Fe[d] = function() { return { restrict: "A", priority: 100, link: e }; }; } }), f(Fd, function(a, b) { Fe[b] = function() { return { priority: 100, link: function(a, c, d) { return "ngPattern" === b && "/" == d.ngPattern.charAt(0) && (c = d.ngPattern.match(Tc)) ? void d.$set("ngPattern", new RegExp(c[1], c[2])) : void a.$watch(d[b], function(a) { d.$set(b, a); }); } }; }; }), f([ "src", "srcset", "href" ], function(a) { var b = Ya("ng-" + a); Fe[b] = function() { return { priority: 99, link: function(c, d, e) { var f = a, g = a; "href" === a && "[object SVGAnimatedString]" === $c.call(d.prop("href")) && (g = "xlinkHref", e.$attr[g] = "xlink:href", f = null), e.$observe(b, function(b) { b ? (e.$set(g, b), Pc && f && d.prop(f, e[g])) : "href" === a && e.$set(g, null); }); } }; }; }); var Ge = { $addControl: o, $$renameControl: function(a, b) { a.$name = b; }, $removeControl: o, $setValidity: o, $setDirty: o, $setPristine: o, $setSubmitted: o }; Fc.$inject = [ "$element", "$attrs", "$scope", "$animate", "$interpolate" ]; var He = function(a) { return [ "$timeout", "$parse", function(b, d) { function e(a) { return "" === a ? d('this[""]').assign : d(a).assign || o; } return { name: "form", restrict: a ? "EAC" : "E", require: [ "form", "^^?form" ], controller: Fc, compile: function(d, f) { d.addClass(pf).addClass(nf); var g = f.name ? "name" : !(!a || !f.ngForm) && "ngForm"; return { pre: function(a, d, f, h) { var i = h[0]; if (!("action" in f)) { var j = function(b) { a.$apply(function() { i.$commitViewValue(), i.$setSubmitted(); }), b.preventDefault(); }; d[0].addEventListener("submit", j, !1), d.on("$destroy", function() { b(function() { d[0].removeEventListener("submit", j, !1); }, 0, !1); }); } (h[1] || i.$$parentForm).$addControl(i); var l = g ? e(i.$name) : o; g && (l(a, i), f.$observe(g, function(b) { i.$name !== b && (l(a, c), i.$$parentForm.$$renameControl(i, b), (l = e(i.$name))(a, i)); })), d.on("$destroy", function() { i.$$parentForm.$removeControl(i), l(a, c), k(i, Ge); }); } }; } }; } ]; }, Ie = He(), Je = He(!0), Ke = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, Le = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i, Me = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i, Ne = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/, Oe = /^(\d{4})-(\d{2})-(\d{2})$/, Pe = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, Qe = /^(\d{4})-W(\d\d)$/, Re = /^(\d{4})-(\d\d)$/, Se = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/, Te = ja(); f([ "date", "datetime-local", "month", "time", "week" ], function(a) { Te[a] = !0; }); var Ue = { text: function(a, b, c, d, e, f) { Hc(a, b, c, d, e, f), Gc(d); }, date: Jc("date", Oe, Ic(Oe, [ "yyyy", "MM", "dd" ]), "yyyy-MM-dd"), "datetime-local": Jc("datetimelocal", Pe, Ic(Pe, "yyyy MM dd HH mm ss sss".split(" ")), "yyyy-MM-ddTHH:mm:ss.sss"), time: Jc("time", Se, Ic(Se, [ "HH", "mm", "ss", "sss" ]), "HH:mm:ss.sss"), week: Jc("week", Qe, function(a, b) { if (y(a)) return a; if (w(a)) { Qe.lastIndex = 0; var c = Qe.exec(a); if (c) { var d = +c[1], e = +c[2], f = c = 0, g = 0, h = 0, i = xc(d), e = 7 * (e - 1); return b && (c = b.getHours(), f = b.getMinutes(), g = b.getSeconds(), h = b.getMilliseconds()), new Date(d, 0, i.getDate() + e, c, f, g, h); } } return NaN; }, "yyyy-Www"), month: Jc("month", Re, Ic(Re, [ "yyyy", "MM" ]), "yyyy-MM"), number: function(a, b, d, e, f, g) { if (Kc(a, b, d, e), Hc(a, b, d, e, f, g), e.$$parserName = "number", e.$parsers.push(function(a) { return e.$isEmpty(a) ? null : Ne.test(a) ? parseFloat(a) : c; }), e.$formatters.push(function(a) { if (!e.$isEmpty(a)) { if (!x(a)) throw sf("numfmt", a); a = a.toString(); } return a; }), t(d.min) || d.ngMin) { var h; e.$validators.min = function(a) { return e.$isEmpty(a) || s(h) || a >= h; }, d.$observe("min", function(a) { t(a) && !x(a) && (a = parseFloat(a, 10)), h = x(a) && !isNaN(a) ? a : c, e.$validate(); }); } if (t(d.max) || d.ngMax) { var i; e.$validators.max = function(a) { return e.$isEmpty(a) || s(i) || a <= i; }, d.$observe("max", function(a) { t(a) && !x(a) && (a = parseFloat(a, 10)), i = x(a) && !isNaN(a) ? a : c, e.$validate(); }); } }, url: function(a, b, c, d, e, f) { Hc(a, b, c, d, e, f), Gc(d), d.$$parserName = "url", d.$validators.url = function(a, b) { var c = a || b; return d.$isEmpty(c) || Le.test(c); }; }, email: function(a, b, c, d, e, f) { Hc(a, b, c, d, e, f), Gc(d), d.$$parserName = "email", d.$validators.email = function(a, b) { var c = a || b; return d.$isEmpty(c) || Me.test(c); }; }, radio: function(a, b, c, d) { s(c.name) && b.attr("name", ++cd), b.on("click", function(a) { b[0].checked && d.$setViewValue(c.value, a && a.type); }), d.$render = function() { b[0].checked = c.value == d.$viewValue; }, c.$observe("value", d.$render); }, checkbox: function(a, b, c, d, e, f, g, h) { var i = Lc(h, a, "ngTrueValue", c.ngTrueValue, !0), j = Lc(h, a, "ngFalseValue", c.ngFalseValue, !1); b.on("click", function(a) { d.$setViewValue(b[0].checked, a && a.type); }), d.$render = function() { b[0].checked = d.$viewValue; }, d.$isEmpty = function(a) { return !1 === a; }, d.$formatters.push(function(a) { return L(a, i); }), d.$parsers.push(function(a) { return a ? i : j; }); }, hidden: o, button: o, submit: o, reset: o, file: o }, Ve = [ "$browser", "$sniffer", "$filter", "$parse", function(a, b, c, d) { return { restrict: "E", require: [ "?ngModel" ], link: { pre: function(e, f, g, h) { h[0] && (Ue[Uc(g.type)] || Ue.text)(e, f, g, h[0], b, a, c, d); } } }; } ], We = /^(true|false|\d+)$/, Xe = function() { return { restrict: "A", priority: 100, compile: function(a, b) { return We.test(b.ngValue) ? function(a, b, c) { c.$set("value", a.$eval(c.ngValue)); } : function(a, b, c) { a.$watch(c.ngValue, function(a) { c.$set("value", a); }); }; } }; }, Ye = [ "$compile", function(a) { return { restrict: "AC", compile: function(b) { return a.$$addBindingClass(b), function(b, c, d) { a.$$addBindingInfo(c, d.ngBind), c = c[0], b.$watch(d.ngBind, function(a) { c.textContent = s(a) ? "" : a; }); }; } }; } ], Ze = [ "$interpolate", "$compile", function(a, b) { return { compile: function(c) { return b.$$addBindingClass(c), function(c, d, e) { c = a(d.attr(e.$attr.ngBindTemplate)), b.$$addBindingInfo(d, c.expressions), d = d[0], e.$observe("ngBindTemplate", function(a) { d.textContent = s(a) ? "" : a; }); }; } }; } ], $e = [ "$sce", "$parse", "$compile", function(a, b, c) { return { restrict: "A", compile: function(d, e) { var f = b(e.ngBindHtml), g = b(e.ngBindHtml, function(b) { return a.valueOf(b); }); return c.$$addBindingClass(d), function(b, d, e) { c.$$addBindingInfo(d, e.ngBindHtml), b.$watch(g, function() { var c = f(b); d.html(a.getTrustedHtml(c) || ""); }); }; } }; } ], _e = q({ restrict: "A", require: "ngModel", link: function(a, b, c, d) { d.$viewChangeListeners.push(function() { a.$eval(c.ngChange); }); } }), af = Mc("", !0), bf = Mc("Odd", 0), cf = Mc("Even", 1), df = Ec({ compile: function(a, b) { b.$set("ngCloak", c), a.removeClass("ng-cloak"); } }), ef = [ function() { return { restrict: "A", scope: !0, controller: "@", priority: 500 }; } ], ff = {}, gf = { blur: !0, focus: !0 }; f("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) { var b = Ya("ng-" + a); ff[b] = [ "$parse", "$rootScope", function(c, d) { return { restrict: "A", compile: function(e, f) { var g = c(f[b], null, !0); return function(b, c) { c.on(a, function(c) { var e = function() { g(b, { $event: c }); }; gf[a] && d.$$phase ? b.$evalAsync(e) : b.$apply(e); }); }; } }; } ]; }); var hf = [ "$animate", function(a) { return { multiElement: !0, transclude: "element", priority: 600, terminal: !0, restrict: "A", $$tlb: !0, link: function(c, d, e, f, g) { var h, i, j; c.$watch(e.ngIf, function(c) { c ? i || g(function(c, f) { i = f, c[c.length++] = b.createComment(" end ngIf: " + e.ngIf + " "), h = { clone: c }, a.enter(c, d.parent(), d); }) : (j && (j.remove(), j = null), i && (i.$destroy(), i = null), h && (j = ia(h.clone), a.leave(j).then(function() { j = null; }), h = null)); }); } }; } ], jf = [ "$templateRequest", "$anchorScroll", "$animate", function(a, b, c) { return { restrict: "ECA", priority: 400, terminal: !0, transclude: "element", controller: bd.noop, compile: function(d, e) { var f = e.ngInclude || e.src, g = e.onload || "", h = e.autoscroll; return function(d, e, i, j, k) { var l, m, n, o = 0, p = function() { m && (m.remove(), m = null), l && (l.$destroy(), l = null), n && (c.leave(n).then(function() { m = null; }), m = n, n = null); }; d.$watch(f, function(f) { var i = function() { !t(h) || h && !d.$eval(h) || b(); }, m = ++o; f ? (a(f, !0).then(function(a) { if (!d.$$destroyed && m === o) { var b = d.$new(); j.template = a, a = k(b, function(a) { p(), c.enter(a, null, e).then(i); }), l = b, n = a, l.$emit("$includeContentLoaded", f), d.$eval(g); } }, function() { d.$$destroyed || m !== o || (p(), d.$emit("$includeContentError", f)); }), d.$emit("$includeContentRequested", f)) : (p(), j.template = null); }); }; } }; } ], kf = [ "$compile", function(a) { return { restrict: "ECA", priority: -400, require: "ngInclude", link: function(c, d, e, f) { /SVG/.test(d[0].toString()) ? (d.empty(), a(oa(f.template, b).childNodes)(c, function(a) { d.append(a); }, { futureParentElement: d })) : (d.html(f.template), a(d.contents())(c)); } }; } ], lf = Ec({ priority: 450, compile: function() { return { pre: function(a, b, c) { a.$eval(c.ngInit); } }; } }), mf = function() { return { restrict: "A", priority: 100, require: "ngModel", link: function(a, b, d, e) { var g = b.attr(d.$attr.ngList) || ", ", h = "false" !== d.ngTrim, i = h ? gd(g) : g; e.$parsers.push(function(a) { if (!s(a)) { var b = []; return a && f(a.split(i), function(a) { a && b.push(h ? gd(a) : a); }), b; } }), e.$formatters.push(function(a) { return ed(a) ? a.join(g) : c; }), e.$isEmpty = function(a) { return !a || !a.length; }; } }; }, nf = "ng-valid", of = "ng-invalid", pf = "ng-pristine", qf = "ng-dirty", rf = "ng-pending", sf = d("ngModel"), tf = [ "$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function(a, b, d, e, g, h, i, j, k, l) { this.$modelValue = this.$viewValue = Number.NaN, this.$$rawModelValue = c, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = c, this.$name = l(d.name || "", !1)(a), this.$$parentForm = Ge; var m, n = g(d.ngModel), p = n.assign, q = n, r = p, u = null, v = this; this.$$setOptions = function(a) { if ((v.$options = a) && a.getterSetter) { var b = g(d.ngModel + "()"), c = g(d.ngModel + "($$$p)"); q = function(a) { var c = n(a); return z(c) && (c = b(a)), c; }, r = function(a, b) { z(n(a)) ? c(a, { $$$p: v.$modelValue }) : p(a, v.$modelValue); }; } else if (!n.assign) throw sf("nonassign", d.ngModel, T(e)); }, this.$render = o, this.$isEmpty = function(a) { return s(a) || "" === a || null === a || a !== a; }; var w = 0; Nc({ ctrl: this, $element: e, set: function(a, b) { a[b] = !0; }, unset: function(a, b) { delete a[b]; }, $animate: h }), this.$setPristine = function() { v.$dirty = !1, v.$pristine = !0, h.removeClass(e, qf), h.addClass(e, pf); }, this.$setDirty = function() { v.$dirty = !0, v.$pristine = !1, h.removeClass(e, pf), h.addClass(e, qf), v.$$parentForm.$setDirty(); }, this.$setUntouched = function() { v.$touched = !1, v.$untouched = !0, h.setClass(e, "ng-untouched", "ng-touched"); }, this.$setTouched = function() { v.$touched = !0, v.$untouched = !1, h.setClass(e, "ng-touched", "ng-untouched"); }, this.$rollbackViewValue = function() { i.cancel(u), v.$viewValue = v.$$lastCommittedViewValue, v.$render(); }, this.$validate = function() { if (!x(v.$modelValue) || !isNaN(v.$modelValue)) { var a = v.$$rawModelValue, b = v.$valid, d = v.$modelValue, e = v.$options && v.$options.allowInvalid; v.$$runValidators(a, v.$$lastCommittedViewValue, function(f) { e || b === f || (v.$modelValue = f ? a : c, v.$modelValue !== d && v.$$writeModelToScope()); }); } }, this.$$runValidators = function(a, b, d) { function e() { var c = !0; return f(v.$validators, function(d, e) { var f = d(a, b); c = c && f, h(e, f); }), !!c || (f(v.$asyncValidators, function(a, b) { h(b, null); }), !1); } function g() { var d = [], e = !0; f(v.$asyncValidators, function(f, g) { var i = f(a, b); if (!i || !z(i.then)) throw sf("nopromise", i); h(g, c), d.push(i.then(function() { h(g, !0); }, function(a) { e = !1, h(g, !1); })); }), d.length ? k.all(d).then(function() { i(e); }, o) : i(!0); } function h(a, b) { j === w && v.$setValidity(a, b); } function i(a) { j === w && d(a); } w++; var j = w; (function() { var a = v.$$parserName || "parse"; return s(m) ? (h(a, null), !0) : (m || (f(v.$validators, function(a, b) { h(b, null); }), f(v.$asyncValidators, function(a, b) { h(b, null); })), h(a, m), m); })() && e() ? g() : i(!1); }, this.$commitViewValue = function() { var a = v.$viewValue; i.cancel(u), (v.$$lastCommittedViewValue !== a || "" === a && v.$$hasNativeValidators) && (v.$$lastCommittedViewValue = a, v.$pristine && this.$setDirty(), this.$$parseAndValidate()); }, this.$$parseAndValidate = function() { var b = v.$$lastCommittedViewValue; if (m = !s(b) || c) for (var d = 0; d < v.$parsers.length; d++) if (b = v.$parsers[d](b), s(b)) { m = !1; break; } x(v.$modelValue) && isNaN(v.$modelValue) && (v.$modelValue = q(a)); var e = v.$modelValue, f = v.$options && v.$options.allowInvalid; v.$$rawModelValue = b, f && (v.$modelValue = b, v.$modelValue !== e && v.$$writeModelToScope()), v.$$runValidators(b, v.$$lastCommittedViewValue, function(a) { f || (v.$modelValue = a ? b : c, v.$modelValue !== e && v.$$writeModelToScope()); }); }, this.$$writeModelToScope = function() { r(a, v.$modelValue), f(v.$viewChangeListeners, function(a) { try { a(); } catch (c) { b(c); } }); }, this.$setViewValue = function(a, b) { v.$viewValue = a, v.$options && !v.$options.updateOnDefault || v.$$debounceViewValueCommit(b); }, this.$$debounceViewValueCommit = function(b) { var c = 0, d = v.$options; d && t(d.debounce) && (d = d.debounce, x(d) ? c = d : x(d[b]) ? c = d[b] : x(d["default"]) && (c = d["default"])), i.cancel(u), c ? u = i(function() { v.$commitViewValue(); }, c) : j.$$phase ? v.$commitViewValue() : a.$apply(function() { v.$commitViewValue(); }); }, a.$watch(function() { var b = q(a); if (b !== v.$modelValue && (v.$modelValue === v.$modelValue || b === b)) { v.$modelValue = v.$$rawModelValue = b, m = c; for (var d = v.$formatters, e = d.length, f = b; e--; ) f = d[e](f); v.$viewValue !== f && (v.$viewValue = v.$$lastCommittedViewValue = f, v.$render(), v.$$runValidators(b, f, o)); } return b; }); } ], uf = [ "$rootScope", function(a) { return { restrict: "A", require: [ "ngModel", "^?form", "^?ngModelOptions" ], controller: tf, priority: 1, compile: function(b) { return b.addClass(pf).addClass("ng-untouched").addClass(nf), { pre: function(a, b, c, d) { var e = d[0]; b = d[1] || e.$$parentForm, e.$$setOptions(d[2] && d[2].$options), b.$addControl(e), c.$observe("name", function(a) { e.$name !== a && e.$$parentForm.$$renameControl(e, a); }), a.$on("$destroy", function() { e.$$parentForm.$removeControl(e); }); }, post: function(b, c, d, e) { var f = e[0]; f.$options && f.$options.updateOn && c.on(f.$options.updateOn, function(a) { f.$$debounceViewValueCommit(a && a.type); }), c.on("blur", function(c) { f.$touched || (a.$$phase ? b.$evalAsync(f.$setTouched) : b.$apply(f.$setTouched)); }); } }; } }; } ], vf = /(\s+|^)default(\s+|$)/, wf = function() { return { restrict: "A", controller: [ "$scope", "$attrs", function(a, b) { var c = this; this.$options = J(a.$eval(b.ngModelOptions)), t(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = gd(this.$options.updateOn.replace(vf, function() { return c.$options.updateOnDefault = !0, " "; }))) : this.$options.updateOnDefault = !0; } ] }; }, xf = Ec({ terminal: !0, priority: 1e3 }), yf = d("ngOptions"), zf = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, Af = [ "$compile", "$parse", function(a, c) { function d(a, b, d) { function f(a, b, c, d, e) { this.selectValue = a, this.viewValue = b, this.label = c, this.group = d, this.disabled = e; } function g(a) { var b; if (!j && e(a)) b = a; else { b = []; for (var c in a) a.hasOwnProperty(c) && "$" !== c.charAt(0) && b.push(c); } return b; } var h = a.match(zf); if (!h) throw yf("iexp", a, T(b)); var i = h[5] || h[7], j = h[6]; a = / as /.test(h[0]) && h[1]; var k = h[9]; b = c(h[2] ? h[1] : i); var l = a && c(a) || b, m = k && c(k), n = k ? function(a, b) { return m(d, b); } : function(a) { return La(a); }, o = function(a, b) { return n(a, u(a, b)); }, p = c(h[2] || h[1]), q = c(h[3] || ""), r = c(h[4] || ""), s = c(h[8]), t = {}, u = j ? function(a, b) { return t[j] = b, t[i] = a, t; } : function(a) { return t[i] = a, t; }; return { trackBy: k, getTrackByValue: o, getWatchables: c(s, function(a) { var b = []; a = a || []; for (var c = g(a), e = c.length, f = 0; f < e; f++) { var i = a === c ? f : c[f], j = u(a[i], i), i = n(a[i], j); b.push(i), (h[2] || h[1]) && (i = p(d, j), b.push(i)), h[4] && (j = r(d, j), b.push(j)); } return b; }), getOptions: function() { for (var a = [], b = {}, c = s(d) || [], e = g(c), h = e.length, i = 0; i < h; i++) { var j = c === e ? i : e[i], m = u(c[j], j), t = l(d, m), j = n(t, m), v = p(d, m), w = q(d, m), m = r(d, m), t = new f(j, t, v, w, m); a.push(t), b[j] = t; } return { items: a, selectValueMap: b, getOptionFromViewValue: function(a) { return b[o(a)]; }, getViewValueFromOption: function(a) { return k ? bd.copy(a.viewValue) : a.viewValue; } }; } }; } var g = b.createElement("option"), h = b.createElement("optgroup"); return { restrict: "A", terminal: !0, require: [ "select", "?ngModel" ], link: { pre: function(a, b, c, d) { d[0].registerOption = o; }, post: function(b, c, e, i) { function j(a, b) { a.element = b, b.disabled = a.disabled, a.label !== b.label && (b.label = a.label, b.textContent = a.label), a.value !== b.value && (b.value = a.selectValue); } function k(a, b, c, d) { return b && Uc(b.nodeName) === c ? c = b : (c = d.cloneNode(!1), b ? a.insertBefore(c, b) : a.appendChild(c)), c; } function l(a) { for (var b; a; ) b = a.nextSibling, Ea(a), a = b; } function m(a) { var b = p && p[0], c = v && v[0]; if (b || c) for (;a && (a === b || a === c || 8 === a.nodeType || "option" === H(a) && "" === a.value); ) a = a.nextSibling; return a; } function n() { var a = w && q.readValue(); w = x.getOptions(); var b = {}, d = c[0].firstChild; if (u && c.prepend(p), d = m(d), w.items.forEach(function(a) { var e, f; a.group ? (e = b[a.group], e || (e = k(c[0], d, "optgroup", h), d = e.nextSibling, e.label = a.group, e = b[a.group] = { groupElement: e, currentOptionElement: e.firstChild }), f = k(e.groupElement, e.currentOptionElement, "option", g), j(a, f), e.currentOptionElement = f.nextSibling) : (f = k(c[0], d, "option", g), j(a, f), d = f.nextSibling); }), Object.keys(b).forEach(function(a) { l(b[a].currentOptionElement); }), l(d), o.$render(), !o.$isEmpty(a)) { var e = q.readValue(); (x.trackBy || r ? L(a, e) : a === e) || (o.$setViewValue(e), o.$render()); } } var o = i[1]; if (o) { var p, q = i[0], r = e.multiple; i = 0; for (var s = c.children(), t = s.length; i < t; i++) if ("" === s[i].value) { p = s.eq(i); break; } var u = !!p, v = Qc(g.cloneNode(!1)); v.val("?"); var w, x = d(e.ngOptions, c, b); r ? (o.$isEmpty = function(a) { return !a || 0 === a.length; }, q.writeValue = function(a) { w.items.forEach(function(a) { a.element.selected = !1; }), a && a.forEach(function(a) { (a = w.getOptionFromViewValue(a)) && !a.disabled && (a.element.selected = !0); }); }, q.readValue = function() { var a = c.val() || [], b = []; return f(a, function(a) { (a = w.selectValueMap[a]) && !a.disabled && b.push(w.getViewValueFromOption(a)); }), b; }, x.trackBy && b.$watchCollection(function() { if (ed(o.$viewValue)) return o.$viewValue.map(function(a) { return x.getTrackByValue(a); }); }, function() { o.$render(); })) : (q.writeValue = function(a) { var b = w.getOptionFromViewValue(a); b && !b.disabled ? (c[0].value !== b.selectValue && (v.remove(), u || p.remove(), c[0].value = b.selectValue, b.element.selected = !0), b.element.setAttribute("selected", "selected")) : null === a || u ? (v.remove(), u || c.prepend(p), c.val(""), p.prop("selected", !0), p.attr("selected", !0)) : (u || p.remove(), c.prepend(v), c.val("?"), v.prop("selected", !0), v.attr("selected", !0)); }, q.readValue = function() { var a = w.selectValueMap[c.val()]; return a && !a.disabled ? (u || p.remove(), v.remove(), w.getViewValueFromOption(a)) : null; }, x.trackBy && b.$watch(function() { return x.getTrackByValue(o.$viewValue); }, function() { o.$render(); })), u ? (p.remove(), a(p)(b), p.removeClass("ng-scope")) : p = Qc(g.cloneNode(!1)), n(), b.$watchCollection(x.getWatchables, n); } } } }; } ], Bf = [ "$locale", "$interpolate", "$log", function(a, b, c) { var d = /{}/g, e = /^when(Minus)?(.+)$/; return { link: function(g, h, i) { function j(a) { h.text(a || ""); } var k, l = i.count, m = i.$attr.when && h.attr(i.$attr.when), n = i.offset || 0, p = g.$eval(m) || {}, q = {}, r = b.startSymbol(), t = b.endSymbol(), u = r + l + "-" + n + t, v = bd.noop; f(i, function(a, b) { var c = e.exec(b); c && (c = (c[1] ? "-" : "") + Uc(c[2]), p[c] = h.attr(i.$attr[b])); }), f(p, function(a, c) { q[c] = b(a.replace(d, u)); }), g.$watch(l, function(b) { var d = parseFloat(b), e = isNaN(d); e || d in p || (d = a.pluralCat(d - n)), d === k || e && x(k) && isNaN(k) || (v(), e = q[d], s(e) ? (null != b && c.debug("ngPluralize: no rule defined for '" + d + "' in " + m), v = o, j()) : v = g.$watch(e, j), k = d); }); } }; } ], Cf = [ "$parse", "$animate", function(a, g) { var h = d("ngRepeat"), i = function(a, b, c, d, e, f, g) { a[c] = d, e && (a[e] = f), a.$index = b, a.$first = 0 === b, a.$last = b === g - 1, a.$middle = !(a.$first || a.$last), a.$odd = !(a.$even = 0 === (1 & b)); }; return { restrict: "A", multiElement: !0, transclude: "element", priority: 1e3, terminal: !0, $$tlb: !0, compile: function(d, j) { var k = j.ngRepeat, l = b.createComment(" end ngRepeat: " + k + " "), m = k.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); if (!m) throw h("iexp", k); var n = m[1], o = m[2], p = m[3], q = m[4], m = n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/); if (!m) throw h("iidexp", n); var r = m[3] || m[1], s = m[2]; if (p && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(p) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(p))) throw h("badident", p); var t, u, v, w, x = { $id: La }; return q ? t = a(q) : (v = function(a, b) { return La(b); }, w = function(a) { return a; }), function(a, b, d, j, m) { t && (u = function(b, c, d) { return s && (x[s] = b), x[r] = c, x.$index = d, t(a, x); }); var n = ja(); a.$watchCollection(o, function(d) { var j, o, q, t, x, y, z, A, B, C, D = b[0], E = ja(); if (p && (a[p] = d), e(d)) A = d, o = u || v; else for (C in o = u || w, A = [], d) Vc.call(d, C) && "$" !== C.charAt(0) && A.push(C); for (t = A.length, C = Array(t), j = 0; j < t; j++) if (x = d === A ? j : A[j], y = d[x], z = o(x, y, j), n[z]) B = n[z], delete n[z], E[z] = B, C[j] = B; else { if (E[z]) throw f(C, function(a) { a && a.scope && (n[a.id] = a); }), h("dupes", k, z, y); C[j] = { id: z, scope: c, clone: c }, E[z] = !0; } for (q in n) { if (B = n[q], z = ia(B.clone), g.leave(z), z[0].parentNode) for (j = 0, o = z.length; j < o; j++) z[j].$$NG_REMOVED = !0; B.scope.$destroy(); } for (j = 0; j < t; j++) if (x = d === A ? j : A[j], y = d[x], B = C[j], B.scope) { q = D; do q = q.nextSibling; while (q && q.$$NG_REMOVED); B.clone[0] != q && g.move(ia(B.clone), null, D), D = B.clone[B.clone.length - 1], i(B.scope, j, r, y, s, x, t); } else m(function(a, b) { B.scope = b; var c = l.cloneNode(!1); a[a.length++] = c, g.enter(a, null, D), D = c, B.clone = a, E[B.id] = B, i(B.scope, j, r, y, s, x, t); }); n = E; }); }; } }; } ], Df = [ "$animate", function(a) { return { restrict: "A", multiElement: !0, link: function(b, c, d) { b.$watch(d.ngShow, function(b) { a[b ? "removeClass" : "addClass"](c, "ng-hide", { tempClasses: "ng-hide-animate" }); }); } }; } ], Ef = [ "$animate", function(a) { return { restrict: "A", multiElement: !0, link: function(b, c, d) { b.$watch(d.ngHide, function(b) { a[b ? "addClass" : "removeClass"](c, "ng-hide", { tempClasses: "ng-hide-animate" }); }); } }; } ], Ff = Ec(function(a, b, c) { a.$watch(c.ngStyle, function(a, c) { c && a !== c && f(c, function(a, c) { b.css(c, ""); }), a && b.css(a); }, !0); }), Gf = [ "$animate", function(a) { return { require: "ngSwitch", controller: [ "$scope", function() { this.cases = {}; } ], link: function(c, d, e, g) { var h = [], i = [], j = [], k = [], l = function(a, b) { return function() { a.splice(b, 1); }; }; c.$watch(e.ngSwitch || e.on, function(c) { var d, e; for (d = 0, e = j.length; d < e; ++d) a.cancel(j[d]); for (d = j.length = 0, e = k.length; d < e; ++d) { var m = ia(i[d].clone); k[d].$destroy(), (j[d] = a.leave(m)).then(l(j, d)); } i.length = 0, k.length = 0, (h = g.cases["!" + c] || g.cases["?"]) && f(h, function(c) { c.transclude(function(d, e) { k.push(e); var f = c.element; d[d.length++] = b.createComment(" end ngSwitchWhen: "), i.push({ clone: d }), a.enter(d, f.parent(), f); }); }); }); } }; } ], Hf = Ec({ transclude: "element", priority: 1200, require: "^ngSwitch", multiElement: !0, link: function(a, b, c, d, e) { d.cases["!" + c.ngSwitchWhen] = d.cases["!" + c.ngSwitchWhen] || [], d.cases["!" + c.ngSwitchWhen].push({ transclude: e, element: b }); } }), If = Ec({ transclude: "element", priority: 1200, require: "^ngSwitch", multiElement: !0, link: function(a, b, c, d, e) { d.cases["?"] = d.cases["?"] || [], d.cases["?"].push({ transclude: e, element: b }); } }), Jf = Ec({ restrict: "EAC", link: function(a, b, c, e, f) { if (!f) throw d("ngTransclude")("orphan", T(b)); f(function(a) { b.empty(), b.append(a); }); } }), Kf = [ "$templateCache", function(a) { return { restrict: "E", terminal: !0, compile: function(b, c) { "text/ng-template" == c.type && a.put(c.id, b[0].text); } }; } ], Lf = { $setViewValue: o, $render: o }, Mf = [ "$element", "$scope", "$attrs", function(a, d, e) { var f = this, g = new Ma(); f.ngModelCtrl = Lf, f.unknownOption = Qc(b.createElement("option")), f.renderUnknownOption = function(b) { b = "? " + La(b) + " ?", f.unknownOption.val(b), a.prepend(f.unknownOption), a.val(b); }, d.$on("$destroy", function() { f.renderUnknownOption = o; }), f.removeUnknownOption = function() { f.unknownOption.parent() && f.unknownOption.remove(); }, f.readValue = function() { return f.removeUnknownOption(), a.val(); }, f.writeValue = function(b) { f.hasOption(b) ? (f.removeUnknownOption(), a.val(b), "" === b && f.emptyOption.prop("selected", !0)) : null == b && f.emptyOption ? (f.removeUnknownOption(), a.val("")) : f.renderUnknownOption(b); }, f.addOption = function(a, b) { if (8 !== b[0].nodeType) { ga(a, '"option value"'), "" === a && (f.emptyOption = b); var c = g.get(a) || 0; g.put(a, c + 1), f.ngModelCtrl.$render(), b[0].hasAttribute("selected") && (b[0].selected = !0); } }, f.removeOption = function(a) { var b = g.get(a); b && (1 === b ? (g.remove(a), "" === a && (f.emptyOption = c)) : g.put(a, b - 1)); }, f.hasOption = function(a) { return !!g.get(a); }, f.registerOption = function(a, b, c, d, e) { if (d) { var g; c.$observe("value", function(a) { t(g) && f.removeOption(g), g = a, f.addOption(a, b); }); } else e ? a.$watch(e, function(a, d) { c.$set("value", a), d !== a && f.removeOption(d), f.addOption(a, b); }) : f.addOption(c.value, b); b.on("$destroy", function() { f.removeOption(c.value), f.ngModelCtrl.$render(); }); }; } ], Nf = function() { return { restrict: "E", require: [ "select", "?ngModel" ], controller: Mf, priority: 1, link: { pre: function(a, b, c, d) { var e = d[1]; if (e) { var g = d[0]; if (g.ngModelCtrl = e, b.on("change", function() { a.$apply(function() { e.$setViewValue(g.readValue()); }); }), c.multiple) { g.readValue = function() { var a = []; return f(b.find("option"), function(b) { b.selected && a.push(b.value); }), a; }, g.writeValue = function(a) { var c = new Ma(a); f(b.find("option"), function(a) { a.selected = t(c.get(a.value)); }); }; var h, i = NaN; a.$watch(function() { i !== e.$viewValue || L(h, e.$viewValue) || (h = K(e.$viewValue), e.$render()), i = e.$viewValue; }), e.$isEmpty = function(a) { return !a || 0 === a.length; }; } } }, post: function(a, b, c, d) { var e = d[1]; if (e) { var f = d[0]; e.$render = function() { f.writeValue(e.$viewValue); }; } } } }; }, Of = [ "$interpolate", function(a) { return { restrict: "E", priority: 100, compile: function(b, c) { if (t(c.value)) var d = a(c.value, !0); else { var e = a(b.text(), !0); e || c.$set("value", b.text()); } return function(a, b, c) { var f = b.parent(); (f = f.data("$selectController") || f.parent().data("$selectController")) && f.registerOption(a, b, c, d, e); }; } }; } ], Pf = q({ restrict: "E", terminal: !1 }), Qf = function() { return { restrict: "A", require: "?ngModel", link: function(a, b, c, d) { d && (c.required = !0, d.$validators.required = function(a, b) { return !c.required || !d.$isEmpty(b); }, c.$observe("required", function() { d.$validate(); })); } }; }, Rf = function() { return { restrict: "A", require: "?ngModel", link: function(a, b, e, f) { if (f) { var g, h = e.ngPattern || e.pattern; e.$observe("pattern", function(a) { if (w(a) && 0 < a.length && (a = new RegExp("^" + a + "$")), a && !a.test) throw d("ngPattern")("noregexp", h, a, T(b)); g = a || c, f.$validate(); }), f.$validators.pattern = function(a, b) { return f.$isEmpty(b) || s(g) || g.test(b); }; } } }; }, Sf = function() { return { restrict: "A", require: "?ngModel", link: function(a, b, c, d) { if (d) { var e = -1; c.$observe("maxlength", function(a) { a = m(a), e = isNaN(a) ? -1 : a, d.$validate(); }), d.$validators.maxlength = function(a, b) { return 0 > e || d.$isEmpty(b) || b.length <= e; }; } } }; }, Tf = function() { return { restrict: "A", require: "?ngModel", link: function(a, b, c, d) { if (d) { var e = 0; c.$observe("minlength", function(a) { e = m(a) || 0, d.$validate(); }), d.$validators.minlength = function(a, b) { return d.$isEmpty(b) || b.length >= e; }; } } }; }; a.angular.bootstrap ? a.console && console.log("WARNING: Tried to load angular more than once.") : (da(), la(bd), bd.module("ngLocale", [], [ "$provide", function(a) { function b(a) { a += ""; var b = a.indexOf("."); return -1 == b ? 0 : a.length - b - 1; } a.value("$locale", { DATETIME_FORMATS: { AMPMS: [ "AM", "PM" ], DAY: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), ERANAMES: [ "Before Christ", "Anno Domini" ], ERAS: [ "BC", "AD" ], FIRSTDAYOFWEEK: 6, MONTH: "January February March April May June July August September October November December".split(" "), SHORTDAY: "Sun Mon Tue Wed Thu Fri Sat".split(" "), SHORTMONTH: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "), STANDALONEMONTH: "January February March April May June July August September October November December".split(" "), WEEKENDRANGE: [ 5, 6 ], fullDate: "EEEE, MMMM d, y", longDate: "MMMM d, y", medium: "MMM d, y h:mm:ss a", mediumDate: "MMM d, y", mediumTime: "h:mm:ss a", "short": "M/d/yy h:mm a", shortDate: "M/d/yy", shortTime: "h:mm a" }, NUMBER_FORMATS: { CURRENCY_SYM: "$", DECIMAL_SEP: ".", GROUP_SEP: ",", PATTERNS: [ { gSize: 3, lgSize: 3, maxFrac: 3, minFrac: 0, minInt: 1, negPre: "-", negSuf: "", posPre: "", posSuf: "" }, { gSize: 3, lgSize: 3, maxFrac: 2, minFrac: 2, minInt: 1, negPre: "-¤", negSuf: "", posPre: "¤", posSuf: "" } ] }, id: "en-us", localeID: "en_US", pluralCat: function(a, d) { var e = 0 | a, f = d; return c === f && (f = Math.min(b(a), 3)), Math.pow(10, f), 1 == e && 0 == f ? "one" : "other"; } }); } ]), Qc(b).ready(function() { $(b, _); })); }(window, document), !window.angular.$$csp().noInlineStyle && window.angular.element(document.head).prepend(''); var duScrollDefaultEasing = function(a) { return .5 > a ? Math.pow(2 * a, 2) / 2 : 1 - Math.pow(2 * (1 - a), 2) / 2; }, duScroll = angular.module("duScroll", [ "duScroll.scrollspy", "duScroll.smoothScroll", "duScroll.scrollContainer", "duScroll.spyContext", "duScroll.scrollHelpers" ]).value("duScrollDuration", 350).value("duScrollSpyWait", 100).value("duScrollGreedy", !1).value("duScrollOffset", 0).value("duScrollEasing", duScrollDefaultEasing).value("duScrollCancelOnEvents", "scroll mousedown mousewheel touchmove keydown").value("duScrollBottomSpy", !1).value("duScrollActiveClass", "active"); "undefined" != typeof module && module && module.exports && (module.exports = duScroll), angular.module("duScroll.scrollHelpers", [ "duScroll.requestAnimation" ]).run([ "$window", "$q", "cancelAnimation", "requestAnimation", "duScrollEasing", "duScrollDuration", "duScrollOffset", "duScrollCancelOnEvents", function(a, b, c, d, e, f, g, h) { var i = {}, j = function(a) { return "undefined" != typeof HTMLDocument && a instanceof HTMLDocument || a.nodeType && a.nodeType === a.DOCUMENT_NODE; }, k = function(a) { return "undefined" != typeof HTMLElement && a instanceof HTMLElement || a.nodeType && a.nodeType === a.ELEMENT_NODE; }, l = function(a) { return k(a) || j(a) ? a : a[0]; }; i.duScrollTo = function(b, c, d, e) { var f; if (angular.isElement(b) ? f = this.duScrollToElement : angular.isDefined(d) && (f = this.duScrollToAnimated), f) return f.apply(this, arguments); var g = l(this); return j(g) ? a.scrollTo(b, c) : (g.scrollLeft = b, void (g.scrollTop = c)); }; var m, n; i.duScrollToAnimated = function(a, f, g, i) { g && !i && (i = e); var j = this.duScrollLeft(), k = this.duScrollTop(), l = Math.round(a - j), o = Math.round(f - k), p = null, q = 0, r = this, s = function(a) { (!a || q && a.which > 0) && (h && r.unbind(h, s), c(m), n.reject(), m = null); }; if (m && s(), n = b.defer(), 0 === g || !l && !o) return 0 === g && r.duScrollTo(a, f), n.resolve(), n.promise; var t = function(a) { null === p && (p = a), q = a - p; var b = q >= g ? 1 : i(q / g); r.scrollTo(j + Math.ceil(l * b), k + Math.ceil(o * b)), 1 > b ? m = d(t) : (h && r.unbind(h, s), m = null, n.resolve()); }; return r.duScrollTo(j, k), h && r.bind(h, s), m = d(t), n.promise; }, i.duScrollToElement = function(a, b, c, d) { var e = l(this); (!angular.isNumber(b) || isNaN(b)) && (b = g); var f = this.duScrollTop() + l(a).getBoundingClientRect().top - b; return k(e) && (f -= e.getBoundingClientRect().top), this.duScrollTo(0, f, c, d); }, i.duScrollLeft = function(b, c, d) { if (angular.isNumber(b)) return this.duScrollTo(b, this.duScrollTop(), c, d); var e = l(this); return j(e) ? a.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft : e.scrollLeft; }, i.duScrollTop = function(b, c, d) { if (angular.isNumber(b)) return this.duScrollTo(this.duScrollLeft(), b, c, d); var e = l(this); return j(e) ? a.scrollY || document.documentElement.scrollTop || document.body.scrollTop : e.scrollTop; }, i.duScrollToElementAnimated = function(a, b, c, d) { return this.duScrollToElement(a, b, c || f, d); }, i.duScrollTopAnimated = function(a, b, c) { return this.duScrollTop(a, b || f, c); }, i.duScrollLeftAnimated = function(a, b, c) { return this.duScrollLeft(a, b || f, c); }, angular.forEach(i, function(a, b) { angular.element.prototype[b] = a; var c = b.replace(/^duScroll/, "scroll"); angular.isUndefined(angular.element.prototype[c]) && (angular.element.prototype[c] = a); }); } ]), angular.module("duScroll.polyfill", []).factory("polyfill", [ "$window", function(a) { var b = [ "webkit", "moz", "o", "ms" ]; return function(c, d) { if (a[c]) return a[c]; for (var e, f = c.substr(0, 1).toUpperCase() + c.substr(1), g = 0; g < b.length; g++) if (e = b[g] + f, a[e]) return a[e]; return d; }; } ]), angular.module("duScroll.requestAnimation", [ "duScroll.polyfill" ]).factory("requestAnimation", [ "polyfill", "$timeout", function(a, b) { var c = 0, d = function(a, d) { var e = new Date().getTime(), f = Math.max(0, 16 - (e - c)), g = b(function() { a(e + f); }, f); return c = e + f, g; }; return a("requestAnimationFrame", d); } ]).factory("cancelAnimation", [ "polyfill", "$timeout", function(a, b) { var c = function(a) { b.cancel(a); }; return a("cancelAnimationFrame", c); } ]), angular.module("duScroll.spyAPI", [ "duScroll.scrollContainerAPI" ]).factory("spyAPI", [ "$rootScope", "$timeout", "$window", "$document", "scrollContainerAPI", "duScrollGreedy", "duScrollSpyWait", "duScrollBottomSpy", "duScrollActiveClass", function(a, b, c, d, e, f, g, h, i) { var j = function(e) { var j = !1, k = !1, l = function() { k = !1; var b, g = e.container, j = g[0], l = 0; if ("undefined" != typeof HTMLElement && j instanceof HTMLElement || j.nodeType && j.nodeType === j.ELEMENT_NODE) l = j.getBoundingClientRect().top, b = Math.round(j.scrollTop + j.clientHeight) >= j.scrollHeight; else { var m = d[0].body.scrollHeight || d[0].documentElement.scrollHeight; b = Math.round(c.pageYOffset + c.innerHeight) >= m; } var n, o, p, q, r, s, t = h && b ? "bottom" : "top"; for (q = e.spies, o = e.currentlyActive, p = void 0, n = 0; n < q.length; n++) r = q[n], s = r.getTargetPosition(), s && (h && b || s.top + r.offset - l < 20 && (f || -1 * s.top + l) < s.height) && (!p || p[t] < s[t]) && (p = { spy: r }, p[t] = s[t]); p && (p = p.spy), o === p || f && !p || (o && (o.$element.removeClass(i), a.$broadcast("duScrollspy:becameInactive", o.$element, angular.element(o.getTargetElement()))), p && (p.$element.addClass(i), a.$broadcast("duScrollspy:becameActive", p.$element, angular.element(p.getTargetElement()))), e.currentlyActive = p); }; return g ? function() { j ? k = !0 : (l(), j = b(function() { j = !1, k && l(); }, g, !1)); } : l; }, k = {}, l = function(a) { var b = a.$id, c = { spies: [] }; return c.handler = j(c), k[b] = c, a.$on("$destroy", function() { m(a); }), b; }, m = function(a) { var b = a.$id, c = k[b], d = c.container; d && d.off("scroll", c.handler), delete k[b]; }, n = l(a), o = function(a) { return k[a.$id] ? k[a.$id] : a.$parent ? o(a.$parent) : k[n]; }, p = function(a) { var b, c, d = a.$scope; if (d) return o(d); for (c in k) if (b = k[c], -1 !== b.spies.indexOf(a)) return b; }, q = function(a) { for (;a.parentNode; ) if (a = a.parentNode, a === document) return !0; return !1; }, r = function(a) { var b = p(a); b && (b.spies.push(a), b.container && q(b.container) || (b.container && b.container.off("scroll", b.handler), b.container = e.getContainer(a.$scope), b.container.on("scroll", b.handler).triggerHandler("scroll"))); }, s = function(b) { var c = p(b); b === c.currentlyActive && (a.$broadcast("duScrollspy:becameInactive", c.currentlyActive.$element), c.currentlyActive = null); var d = c.spies.indexOf(b); -1 !== d && c.spies.splice(d, 1), b.$element = null; }; return { addSpy: r, removeSpy: s, createContext: l, destroyContext: m, getContextForScope: o }; } ]), angular.module("duScroll.scrollContainerAPI", []).factory("scrollContainerAPI", [ "$document", function(a) { var b = {}, c = function(a, c) { var d = a.$id; return b[d] = c, d; }, d = function(a) { return b[a.$id] ? a.$id : a.$parent ? d(a.$parent) : void 0; }, e = function(c) { var e = d(c); return e ? b[e] : a; }, f = function(a) { var c = d(a); c && delete b[c]; }; return { getContainerId: d, getContainer: e, setContainer: c, removeContainer: f }; } ]), angular.module("duScroll.smoothScroll", [ "duScroll.scrollHelpers", "duScroll.scrollContainerAPI" ]).directive("duSmoothScroll", [ "duScrollDuration", "duScrollOffset", "scrollContainerAPI", function(a, b, c) { return { link: function(d, e, f) { e.on("click", function(e) { if (f.href && -1 !== f.href.indexOf("#") || "" !== f.duSmoothScroll) { var g = f.href ? f.href.replace(/.*(?=#[^\s]+$)/, "").substring(1) : f.duSmoothScroll, h = document.getElementById(g) || document.getElementsByName(g)[0]; if (h && h.getBoundingClientRect) { e.stopPropagation && e.stopPropagation(), e.preventDefault && e.preventDefault(); var i = f.offset ? parseInt(f.offset, 10) : b, j = f.duration ? parseInt(f.duration, 10) : a, k = c.getContainer(d); k.duScrollToElement(angular.element(h), isNaN(i) ? 0 : i, isNaN(j) ? 0 : j); } } }); } }; } ]), angular.module("duScroll.spyContext", [ "duScroll.spyAPI" ]).directive("duSpyContext", [ "spyAPI", function(a) { return { restrict: "A", scope: !0, compile: function(b, c, d) { return { pre: function(b, c, d, e) { a.createContext(b); } }; } }; } ]), angular.module("duScroll.scrollContainer", [ "duScroll.scrollContainerAPI" ]).directive("duScrollContainer", [ "scrollContainerAPI", function(a) { return { restrict: "A", scope: !0, compile: function(b, c, d) { return { pre: function(b, c, d, e) { d.$observe("duScrollContainer", function(d) { angular.isString(d) && (d = document.getElementById(d)), d = angular.isElement(d) ? angular.element(d) : c, a.setContainer(b, d), b.$on("$destroy", function() { a.removeContainer(b); }); }); } }; } }; } ]), angular.module("duScroll.scrollspy", [ "duScroll.spyAPI" ]).directive("duScrollspy", [ "spyAPI", "duScrollOffset", "$timeout", "$rootScope", function(a, b, c, d) { var e = function(a, b, c, d) { angular.isElement(a) ? this.target = a : angular.isString(a) && (this.targetId = a), this.$scope = b, this.$element = c, this.offset = d; }; return e.prototype.getTargetElement = function() { return !this.target && this.targetId && (this.target = document.getElementById(this.targetId) || document.getElementsByName(this.targetId)[0]), this.target; }, e.prototype.getTargetPosition = function() { var a = this.getTargetElement(); return a ? a.getBoundingClientRect() : void 0; }, e.prototype.flushTargetCache = function() { this.targetId && (this.target = void 0); }, { link: function(f, g, h) { var i, j = h.ngHref || h.href; if (j && -1 !== j.indexOf("#") ? i = j.replace(/.*(?=#[^\s]+$)/, "").substring(1) : h.duScrollspy ? i = h.duScrollspy : h.duSmoothScroll && (i = h.duSmoothScroll), i) { var k = c(function() { var c = new e(i, f, g, (-(h.offset ? parseInt(h.offset, 10) : b))); a.addSpy(c), f.$on("$locationChangeSuccess", c.flushTargetCache.bind(c)); var j = d.$on("$stateChangeSuccess", c.flushTargetCache.bind(c)); f.$on("$destroy", function() { a.removeSpy(c), j(); }); }, 0, !1); f.$on("$destroy", function() { c.cancel(k); }); } } }; } ]), !function() { var a = { TAB: 9, ENTER: 13, ESC: 27, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, SHIFT: 16, CTRL: 17, ALT: 18, PAGE_UP: 33, PAGE_DOWN: 34, HOME: 36, END: 35, BACKSPACE: 8, DELETE: 46, COMMAND: 91, MAP: { 91: "COMMAND", 8: "BACKSPACE", 9: "TAB", 13: "ENTER", 16: "SHIFT", 17: "CTRL", 18: "ALT", 19: "PAUSEBREAK", 20: "CAPSLOCK", 27: "ESC", 32: "SPACE", 33: "PAGE_UP", 34: "PAGE_DOWN", 35: "END", 36: "HOME", 37: "LEFT", 38: "UP", 39: "RIGHT", 40: "DOWN", 43: "+", 44: "PRINTSCREEN", 45: "INSERT", 46: "DELETE", 48: "0", 49: "1", 50: "2", 51: "3", 52: "4", 53: "5", 54: "6", 55: "7", 56: "8", 57: "9", 59: ";", 61: "=", 65: "A", 66: "B", 67: "C", 68: "D", 69: "E", 70: "F", 71: "G", 72: "H", 73: "I", 74: "J", 75: "K", 76: "L", 77: "M", 78: "N", 79: "O", 80: "P", 81: "Q", 82: "R", 83: "S", 84: "T", 85: "U", 86: "V", 87: "W", 88: "X", 89: "Y", 90: "Z", 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7", 104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111: "/", 112: "F1", 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 144: "NUMLOCK", 145: "SCROLLLOCK", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, isControl: function(b) { var c = b.which; switch (c) { case a.COMMAND: case a.SHIFT: case a.CTRL: case a.ALT: return !0; } return !!(b.metaKey || b.ctrlKey || b.altKey); }, isFunctionKey: function(a) { return a = a.which ? a.which : a, a >= 112 && 123 >= a; }, isVerticalMovement: function(b) { return ~[ a.UP, a.DOWN ].indexOf(b); }, isHorizontalMovement: function(b) { return ~[ a.LEFT, a.RIGHT, a.BACKSPACE, a.DELETE ].indexOf(b); }, toSeparator: function(b) { var c = { ENTER: "\n", TAB: "\t", SPACE: " " }[b]; return c ? c : a[b] ? void 0 : b; } }; void 0 === angular.element.prototype.querySelectorAll && (angular.element.prototype.querySelectorAll = function(a) { return angular.element(this[0].querySelectorAll(a)); }), void 0 === angular.element.prototype.closest && (angular.element.prototype.closest = function(a) { for (var b = this[0], c = b.matches || b.webkitMatchesSelector || b.mozMatchesSelector || b.msMatchesSelector; b; ) { if (c.bind(b)(a)) return b; b = b.parentElement; } return !1; }); var b = 0, c = angular.module("ui.select", []).constant("uiSelectConfig", { theme: "bootstrap", searchEnabled: !0, sortable: !1, placeholder: "", refreshDelay: 1e3, closeOnSelect: !0, skipFocusser: !1, dropdownPosition: "auto", removeSelected: !0, generateId: function() { return b++; }, appendToBody: !1 }).service("uiSelectMinErr", function() { var a = angular.$$minErr("ui.select"); return function() { var b = a.apply(this, arguments), c = b.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"), ""); return new Error(c); }; }).directive("uisTranscludeAppend", function() { return { link: function(a, b, c, d, e) { e(a, function(a) { b.append(a); }); } }; }).filter("highlight", function() { function a(a) { return ("" + a).replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); } return function(b, c) { return c && b ? ("" + b).replace(new RegExp(a(c), "gi"), '$&') : b; }; }).factory("uisOffset", [ "$document", "$window", function(a, b) { return function(c) { var d = c[0].getBoundingClientRect(); return { width: d.width || c.prop("offsetWidth"), height: d.height || c.prop("offsetHeight"), top: d.top + (b.pageYOffset || a[0].documentElement.scrollTop), left: d.left + (b.pageXOffset || a[0].documentElement.scrollLeft) }; }; } ]); c.directive("uiSelectChoices", [ "uiSelectConfig", "uisRepeatParser", "uiSelectMinErr", "$compile", "$window", function(a, b, c, d, e) { return { restrict: "EA", require: "^uiSelect", replace: !0, transclude: !0, templateUrl: function(b) { b.addClass("ui-select-choices"); var c = b.parent().attr("theme") || a.theme; return c + "/choices.tpl.html"; }, compile: function(d, f) { if (!f.repeat) throw c("repeat", "Expected 'repeat' expression."); var g = f.groupBy, h = f.groupFilter; if (g) { var i = d.querySelectorAll(".ui-select-choices-group"); if (1 !== i.length) throw c("rows", "Expected 1 .ui-select-choices-group but got '{0}'.", i.length); i.attr("ng-repeat", b.getGroupNgRepeatExpression()); } var j = b.parse(f.repeat), k = d.querySelectorAll(".ui-select-choices-row"); if (1 !== k.length) throw c("rows", "Expected 1 .ui-select-choices-row but got '{0}'.", k.length); k.attr("ng-repeat", j.repeatExpression(g)).attr("ng-if", "$select.open"); var l = d.querySelectorAll(".ui-select-choices-row-inner"); if (1 !== l.length) throw c("rows", "Expected 1 .ui-select-choices-row-inner but got '{0}'.", l.length); l.attr("uis-transclude-append", ""); var m = e.document.addEventListener ? k : l; return m.attr("ng-click", "$select.select(" + j.itemName + ",$select.skipFocusser,$event)"), function(b, c, d, e) { e.parseRepeatAttr(d.repeat, g, h), e.disableChoiceExpression = d.uiDisableChoice, e.onHighlightCallback = d.onHighlight, e.dropdownPosition = d.position ? d.position.toLowerCase() : a.dropdownPosition, b.$on("$destroy", function() { k.remove(); }), b.$watch("$select.search", function(a) { a && !e.open && e.multiple && e.activate(!1, !0), e.activeIndex = e.tagging.isActivated ? -1 : 0, !d.minimumInputLength || e.search.length >= d.minimumInputLength ? e.refresh(d.refresh) : e.items = []; }), d.$observe("refreshDelay", function() { var c = b.$eval(d.refreshDelay); e.refreshDelay = void 0 !== c ? c : a.refreshDelay; }); }; } }; } ]), c.controller("uiSelectCtrl", [ "$scope", "$element", "$timeout", "$filter", "$$uisDebounce", "uisRepeatParser", "uiSelectMinErr", "uiSelectConfig", "$parse", "$injector", "$window", function(b, c, d, e, f, g, h, i, j, k, l) { function m(a, b, c) { if (a.findIndex) return a.findIndex(b, c); for (var d, e = Object(a), f = e.length >>> 0, g = 0; f > g; g++) if (d = e[g], b.call(c, d, g, e)) return g; return -1; } function n() { (s.resetSearchInput || void 0 === s.resetSearchInput && i.resetSearchInput) && (s.search = t, s.selected && s.items.length && !s.multiple && (s.activeIndex = m(s.items, function(a) { return angular.equals(this, a); }, s.selected))); } function o() { (s.setSearchToAnswer || void 0 === s.setSearchToAnswer && i.setSearchToAnswer) && (console.log("searchBy: " + s.searchBy), s.searchBy && (console.log("_setSearchToAnswer"), s.resetSearchInput = !1, s.search = s.selected[s.searchBy])); } function p(a, b) { var c, d, e = []; for (c = 0; c < b.length; c++) for (d = 0; d < a.length; d++) a[d].name == [ b[c] ] && e.push(a[d]); return e; } function q(b) { var c = !0; switch (b) { case a.DOWN: !s.open && s.multiple ? s.activate(!1, !0) : s.activeIndex < s.items.length - 1 && s.activeIndex++; break; case a.UP: !s.open && s.multiple ? s.activate(!1, !0) : (s.activeIndex > 0 || 0 === s.search.length && s.tagging.isActivated && s.activeIndex > -1) && s.activeIndex--; break; case a.TAB: s.multiple && !s.open || s.select(s.items[s.activeIndex], !0); break; case a.ENTER: s.open && (s.tagging.isActivated || s.activeIndex >= 0) ? s.select(s.items[s.activeIndex], s.skipFocusser) : s.activate(!1, !0); break; case a.ESC: s.close(); break; default: c = !1; } return c; } function r() { var a = c.querySelectorAll(".ui-select-choices-content"), b = a.querySelectorAll(".ui-select-choices-row"); if (b.length < 1) throw h("choices", "Expected multiple .ui-select-choices-row but got '{0}'.", b.length); if (!(s.activeIndex < 0)) { var d = b[s.activeIndex], e = d.offsetTop + d.clientHeight - a[0].scrollTop, f = a[0].offsetHeight; e > f ? a[0].scrollTop += e - f : e < d.clientHeight && (s.isGrouped && 0 === s.activeIndex ? a[0].scrollTop = 0 : a[0].scrollTop -= d.clientHeight - e); } } var s = this, t = ""; if (s.placeholder = i.placeholder, s.searchEnabled = i.searchEnabled, s.sortable = i.sortable, s.refreshDelay = i.refreshDelay, s.paste = i.paste, s.removeSelected = i.removeSelected, s.closeOnSelect = !0, s.skipFocusser = !1, s.search = t, s.activeIndex = 0, s.items = [], s.open = !1, s.focus = !1, s.disabled = !1, s.selected = void 0, s.dropdownPosition = "auto", s.focusser = void 0, s.resetSearchInput = !0, s.setSearchToAnswer = !1, s.searchBy = void 0, s.multiple = void 0, s.disableChoiceExpression = void 0, s.tagging = { isActivated: !1, fct: void 0 }, s.taggingTokens = { isActivated: !1, tokens: void 0 }, s.lockChoiceExpression = void 0, s.clickTriggeredSelect = !1, s.$filter = e, s.$element = c, s.$animate = function() { try { return k.get("$animate"); } catch (a) { return null; } }(), s.searchInput = c.querySelectorAll("input.ui-select-search"), 1 !== s.searchInput.length) throw h("searchInput", "Expected 1 input.ui-select-search but got '{0}'.", s.searchInput.length); s.isEmpty = function() { return angular.isUndefined(s.selected) || null === s.selected || "" === s.selected || s.multiple && 0 === s.selected.length; }, s.activate = function(a, e) { if (!s.disabled && !s.open) { e || n(), b.$broadcast("uis:activate"), s.open = !0, s.activeIndex = s.activeIndex >= s.items.length ? 0 : s.activeIndex, -1 === s.activeIndex && s.taggingLabel !== !1 && (s.activeIndex = 0); var f = c.querySelectorAll(".ui-select-choices-content"), g = c.querySelectorAll(".ui-select-search"); if (s.$animate && s.$animate.on && s.$animate.enabled(f[0])) { var h = function(b, c) { "start" === c && 0 === s.items.length ? (s.$animate.off("removeClass", g[0], h), d(function() { s.focusSearchInput(a); })) : "close" === c && (s.$animate.off("enter", f[0], h), d(function() { s.focusSearchInput(a); })); }; s.items.length > 0 ? s.$animate.on("enter", f[0], h) : s.$animate.on("removeClass", g[0], h); } else d(function() { s.focusSearchInput(a), !s.tagging.isActivated && s.items.length > 1 && r(); }); } }, s.focusSearchInput = function(a) { s.search = a || s.search, s.searchInput[0].focus(); }, s.findGroupByName = function(a) { return s.groups && s.groups.filter(function(b) { return b.name === a; })[0]; }, s.parseRepeatAttr = function(a, c, d) { function e(a) { var e = b.$eval(c); if (s.groups = [], angular.forEach(a, function(a) { var b = angular.isFunction(e) ? e(a) : a[e], c = s.findGroupByName(b); c ? c.items.push(a) : s.groups.push({ name: b, items: [ a ] }); }), d) { var f = b.$eval(d); angular.isFunction(f) ? s.groups = f(s.groups) : angular.isArray(f) && (s.groups = p(s.groups, f)); } s.items = [], s.groups.forEach(function(a) { s.items = s.items.concat(a.items); }); } function f(a) { s.items = a; } s.setItemsFn = c ? e : f, s.parserResult = g.parse(a), s.isGrouped = !!c, s.itemProperty = s.parserResult.itemName; var i = s.parserResult.source, k = function() { var a = i(b); b.$uisSource = Object.keys(a).map(function(b) { var c = {}; return c[s.parserResult.keyName] = b, c.value = a[b], c; }); }; s.parserResult.keyName && (k(), s.parserResult.source = j("$uisSource" + s.parserResult.filters), b.$watch(i, function(a, b) { a !== b && k(); }, !0)), s.refreshItems = function(a) { a = a || s.parserResult.source(b); var c = s.selected; if (s.isEmpty() || angular.isArray(c) && !c.length || !s.removeSelected) s.setItemsFn(a); else if (void 0 !== a) { var d = a.filter(function(a) { return angular.isArray(c) ? c.every(function(b) { return !angular.equals(a, b); }) : !angular.equals(a, c); }); s.setItemsFn(d); } "auto" !== s.dropdownPosition && "up" !== s.dropdownPosition || b.calculateDropdownPos(), b.$broadcast("uis:refresh"); }, b.$watchCollection(s.parserResult.source, function(a) { if (void 0 === a || null === a) s.items = []; else { if (!angular.isArray(a)) throw h("items", "Expected an array but got '{0}'.", a); s.refreshItems(a), angular.isDefined(s.ngModel.$modelValue) && (s.ngModel.$modelValue = null); } }); }; var u; s.refresh = function(a) { void 0 !== a && (u && d.cancel(u), u = d(function() { b.$eval(a); }, s.refreshDelay)); }, s.isActive = function(a) { if (!s.open) return !1; var b = s.items.indexOf(a[s.itemProperty]), c = b == s.activeIndex; return !(!c || 0 > b) && (c && !angular.isUndefined(s.onHighlightCallback) && a.$eval(s.onHighlightCallback), c); }; var v = function(a) { return s.selected && angular.isArray(s.selected) && s.selected.filter(function(b) { return angular.equals(b, a); }).length > 0; }; s.isDisabled = function(a) { if (s.open) { var b, c = s.items.indexOf(a[s.itemProperty]), d = !1; return c >= 0 && (!angular.isUndefined(s.disableChoiceExpression) || s.multiple) && (b = s.items[c], d = !!a.$eval(s.disableChoiceExpression) || v(b), b._uiSelectChoiceDisabled = d), d; } }, s.select = function(a, c, e) { if (void 0 === a || !a._uiSelectChoiceDisabled) { if (!s.items && !s.search && !s.tagging.isActivated) return; if (!a || !a._uiSelectChoiceDisabled) { if (s.tagging.isActivated) { if (s.taggingLabel === !1) if (s.activeIndex < 0) { if (a = void 0 !== s.tagging.fct ? s.tagging.fct(s.search) : s.search, !a || angular.equals(s.items[0], a)) return; } else a = s.items[s.activeIndex]; else if (0 === s.activeIndex) { if (void 0 === a) return; if (void 0 !== s.tagging.fct && "string" == typeof a) { if (a = s.tagging.fct(a), !a) return; } else "string" == typeof a && (a = a.replace(s.taggingLabel, "").trim()); } if (v(a)) return void s.close(c); } b.$broadcast("uis:select", a); var f = {}; f[s.parserResult.itemName] = a, d(function() { s.onSelectCallback(b, { $item: a, $model: s.parserResult.modelMapper(b, f) }); }), s.closeOnSelect && s.close(c), e && "click" === e.type && (s.clickTriggeredSelect = !0); } } }, s.close = function(a) { s.open && (s.ngModel && s.ngModel.$setTouched && s.ngModel.$setTouched(), n(), o(), s.open = !1, b.$broadcast("uis:close", a)); }, s.setFocus = function() { s.focus || s.focusInput[0].focus(); }, s.clear = function(a) { s.select(void 0), a.stopPropagation(), d(function() { s.focusser[0].focus(); }, 0, !1); }, s.toggle = function(a) { s.open ? (s.close(), a.preventDefault(), a.stopPropagation()) : s.activate(); }, s.isLocked = function(a, b) { var c, d = s.selected[b]; return d && !angular.isUndefined(s.lockChoiceExpression) && (c = !!a.$eval(s.lockChoiceExpression), d._uiSelectChoiceLocked = c), c; }; var w = null, x = !1; s.sizeSearchInput = function() { var a = s.searchInput[0], c = s.searchInput.parent().parent()[0], e = function() { return c.clientWidth * !!a.offsetParent; }, f = function(b) { if (0 === b) return !1; var c = b - a.offsetLeft - 10; return 50 > c && (c = b), s.searchInput.css("width", c + "px"), !0; }; s.searchInput.css("width", "10px"), d(function() { null !== w || f(e()) || (w = b.$watch(function() { x || (x = !0, b.$$postDigest(function() { x = !1, f(e()) && (w(), w = null); })); }, angular.noop)); }); }, s.searchInput.on("keydown", function(c) { var e = c.which; ~[ a.ENTER, a.ESC ].indexOf(e) && (c.preventDefault(), c.stopPropagation()), b.$apply(function() { var b = !1; if ((s.items.length > 0 || s.tagging.isActivated) && (q(e), s.taggingTokens.isActivated)) { for (var f = 0; f < s.taggingTokens.tokens.length; f++) s.taggingTokens.tokens[f] === a.MAP[c.keyCode] && s.search.length > 0 && (b = !0); b && d(function() { s.searchInput.triggerHandler("tagged"); var b = s.search.replace(a.MAP[c.keyCode], "").trim(); s.tagging.fct && (b = s.tagging.fct(b)), b && s.select(b, !0); }); } }), a.isVerticalMovement(e) && s.items.length > 0 && r(), e !== a.ENTER && e !== a.ESC || (c.preventDefault(), c.stopPropagation()); }), s.searchInput.on("paste", function(b) { var c; if (c = window.clipboardData && window.clipboardData.getData ? window.clipboardData.getData("Text") : (b.originalEvent || b).clipboardData.getData("text/plain"), c = s.search + c, c && c.length > 0) if (s.taggingTokens.isActivated) { for (var d = [], e = 0; e < s.taggingTokens.tokens.length; e++) { var f = a.toSeparator(s.taggingTokens.tokens[e]) || s.taggingTokens.tokens[e]; if (c.indexOf(f) > -1) { d = c.split(f); break; } } if (0 === d.length && (d = [ c ]), d.length > 0) { var g = s.search; angular.forEach(d, function(a) { var b = s.tagging.fct ? s.tagging.fct(a) : a; b && s.select(b, !0); }), s.search = g || t, b.preventDefault(), b.stopPropagation(); } } else s.paste && (s.paste(c), s.search = t, b.preventDefault(), b.stopPropagation()); }), s.searchInput.on("tagged", function() { d(function() { n(); }); }); var y = f(function() { s.sizeSearchInput(); }, 50); angular.element(l).bind("resize", y), b.$on("$destroy", function() { s.searchInput.off("keyup keydown tagged blur paste"), angular.element(l).off("resize", y); }); } ]), c.directive("uiSelect", [ "$document", "uiSelectConfig", "uiSelectMinErr", "uisOffset", "$compile", "$parse", "$timeout", function(a, b, c, d, e, f, g) { return { restrict: "EA", templateUrl: function(a, c) { var d = c.theme || b.theme; return d + (angular.isDefined(c.multiple) ? "/select-multiple.tpl.html" : "/select.tpl.html"); }, replace: !0, transclude: !0, require: [ "uiSelect", "^ngModel" ], scope: !0, controller: "uiSelectCtrl", controllerAs: "$select", compile: function(e, h) { var i = /{(.*)}\s*{(.*)}/.exec(h.ngClass); if (i) { var j = "{" + i[1] + ", " + i[2] + "}"; h.ngClass = j, e.attr("ng-class", j); } return angular.isDefined(h.multiple) ? e.append("").removeAttr("multiple") : e.append(""), h.inputId && (e.querySelectorAll("input.ui-select-search")[0].id = h.inputId), function(e, h, i, j, k) { function l(a) { if (o.open) { var b = !1; if (b = window.jQuery ? window.jQuery.contains(h[0], a.target) : h[0].contains(a.target), !b && !o.clickTriggeredSelect) { var c; if (o.skipFocusser) c = !0; else { var d = [ "input", "button", "textarea", "select" ], f = angular.element(a.target).controller("uiSelect"); c = f && f !== o, c || (c = ~d.indexOf(a.target.tagName.toLowerCase())); } o.close(c), e.$digest(); } o.clickTriggeredSelect = !1; } } function m() { var b = d(h); r = angular.element('
'), r[0].style.width = b.width + "px", r[0].style.height = b.height + "px", h.after(r), s = h[0].style.width, a.find("body").append(h), h[0].style.position = "absolute", h[0].style.left = b.left + "px", h[0].style.top = b.top + "px", h[0].style.width = b.width + "px"; } function n() { null !== r && (r.replaceWith(h), r = null, h[0].style.position = "", h[0].style.left = "", h[0].style.top = "", h[0].style.width = s, o.setFocus()); } var o = j[0], p = j[1]; o.generatedId = b.generateId(), o.baseTitle = i.title || "Select box", o.focusserTitle = o.baseTitle + " focus", o.focusserId = "focusser-" + o.generatedId, o.closeOnSelect = function() { return angular.isDefined(i.closeOnSelect) ? f(i.closeOnSelect)() : b.closeOnSelect; }(), e.$watch("skipFocusser", function() { var a = e.$eval(i.skipFocusser); o.skipFocusser = void 0 !== a ? a : b.skipFocusser; }), o.onSelectCallback = f(i.onSelect), o.onRemoveCallback = f(i.onRemove), o.ngModel = p, o.choiceGrouped = function(a) { return o.isGrouped && a && a.name; }, i.tabindex && i.$observe("tabindex", function(a) { o.focusInput.attr("tabindex", a), h.removeAttr("tabindex"); }), e.$watch("searchEnabled", function() { var a = e.$eval(i.searchEnabled); o.searchEnabled = void 0 !== a ? a : b.searchEnabled; }), e.$watch("sortable", function() { var a = e.$eval(i.sortable); o.sortable = void 0 !== a ? a : b.sortable; }), i.$observe("limit", function() { o.limit = angular.isDefined(i.limit) ? parseInt(i.limit, 10) : void 0; }), e.$watch("removeSelected", function() { var a = e.$eval(i.removeSelected); o.removeSelected = void 0 !== a ? a : b.removeSelected; }), i.$observe("disabled", function() { o.disabled = void 0 !== i.disabled && i.disabled; }), i.$observe("resetSearchInput", function() { var a = e.$eval(i.resetSearchInput); o.resetSearchInput = void 0 === a || a; }), i.$observe("setSearchToAnswer", function() { var a = e.$eval(i.setSearchToAnswer); o.setSearchToAnswer = void 0 === a || a; }), i.$observe("searchBy", function() { o.searchBy = i.searchBy; }), i.$observe("paste", function() { o.paste = e.$eval(i.paste); }), i.$observe("tagging", function() { if (void 0 !== i.tagging) { var a = e.$eval(i.tagging); o.tagging = { isActivated: !0, fct: a !== !0 ? a : void 0 }; } else o.tagging = { isActivated: !1, fct: void 0 }; }), i.$observe("taggingLabel", function() { void 0 !== i.tagging && ("false" === i.taggingLabel ? o.taggingLabel = !1 : o.taggingLabel = void 0 !== i.taggingLabel ? i.taggingLabel : "(new)"); }), i.$observe("taggingTokens", function() { if (void 0 !== i.tagging) { var a = void 0 !== i.taggingTokens ? i.taggingTokens.split("|") : [ ",", "ENTER" ]; o.taggingTokens = { isActivated: !0, tokens: a }; } }), angular.isDefined(i.autofocus) && g(function() { o.setFocus(); }), angular.isDefined(i.focusOn) && e.$on(i.focusOn, function() { g(function() { o.setFocus(); }); }), a.on("click", l), e.$on("$destroy", function() { a.off("click", l); }), k(e, function(a) { var b = angular.element("
").append(a), d = b.querySelectorAll(".ui-select-match"); if (d.removeAttr("ui-select-match"), d.removeAttr("data-ui-select-match"), 1 !== d.length) throw c("transcluded", "Expected 1 .ui-select-match but got '{0}'.", d.length); h.querySelectorAll(".ui-select-match").replaceWith(d); var e = b.querySelectorAll(".ui-select-choices"); if (e.removeAttr("ui-select-choices"), e.removeAttr("data-ui-select-choices"), 1 !== e.length) throw c("transcluded", "Expected 1 .ui-select-choices but got '{0}'.", e.length); h.querySelectorAll(".ui-select-choices").replaceWith(e); var f = b.querySelectorAll(".ui-select-no-choice"); f.removeAttr("ui-select-no-choice"), f.removeAttr("data-ui-select-no-choice"), 1 == f.length && h.querySelectorAll(".ui-select-no-choice").replaceWith(f); }); var q = e.$eval(i.appendToBody); (void 0 !== q ? q : b.appendToBody) && (e.$watch("$select.open", function(a) { a ? m() : n(); }), e.$on("$destroy", function() { n(); })); var r = null, s = "", t = null, u = "direction-up"; e.$watch("$select.open", function() { "auto" !== o.dropdownPosition && "up" !== o.dropdownPosition || e.calculateDropdownPos(); }); var v = function(a, b) { a = a || d(h), b = b || d(t), t[0].style.position = "absolute", t[0].style.top = -1 * b.height + "px", h.addClass(u); }, w = function(a, b) { h.removeClass(u), a = a || d(h), b = b || d(t), t[0].style.position = "", t[0].style.top = ""; }, x = function() { g(function() { if ("up" === o.dropdownPosition) v(); else { h.removeClass(u); var b = d(h), c = d(t), e = a[0].documentElement.scrollTop || a[0].body.scrollTop; b.top + b.height + c.height > e + a[0].documentElement.clientHeight ? v(b, c) : w(b, c); } t[0].style.opacity = 1; }); }; e.calculateDropdownPos = function() { if (o.open) { if (t = angular.element(h).querySelectorAll(".ui-select-dropdown"), 0 === t.length) return; if (t[0].style.opacity = 0, !d(t).height && o.$animate && o.$animate.on && o.$animate.enabled(t)) { var a = !0; o.$animate.on("enter", t, function(b, c) { "close" === c && a && (x(), a = !1); }); } else x(); } else { if (null === t || 0 === t.length) return; t[0].style.opacity = 0, t[0].style.position = "", t[0].style.top = "", h.removeClass(u); } }; }; } }; } ]), c.directive("uiSelectMatch", [ "uiSelectConfig", function(a) { function b(a, b) { return a[0].hasAttribute(b) ? a.attr(b) : a[0].hasAttribute("data-" + b) ? a.attr("data-" + b) : a[0].hasAttribute("x-" + b) ? a.attr("x-" + b) : void 0; } return { restrict: "EA", require: "^uiSelect", replace: !0, transclude: !0, templateUrl: function(c) { c.addClass("ui-select-match"); var d = c.parent(), e = b(d, "theme") || a.theme, f = angular.isDefined(b(d, "multiple")); return e + (f ? "/match-multiple.tpl.html" : "/match.tpl.html"); }, link: function(b, c, d, e) { function f(a) { e.allowClear = !!angular.isDefined(a) && ("" === a || "true" === a.toLowerCase()); } e.lockChoiceExpression = d.uiLockChoice, d.$observe("placeholder", function(b) { e.placeholder = void 0 !== b ? b : a.placeholder; }), d.$observe("allowClear", f), f(d.allowClear), e.multiple && e.sizeSearchInput(); } }; } ]), c.directive("uiSelectMultiple", [ "uiSelectMinErr", "$timeout", function(b, c) { return { restrict: "EA", require: [ "^uiSelect", "^ngModel" ], controller: [ "$scope", "$timeout", function(a, b) { var c, d = this, e = a.$select; angular.isUndefined(e.selected) && (e.selected = []), a.$evalAsync(function() { c = a.ngModel; }), d.activeMatchIndex = -1, d.updateModel = function() { c.$setViewValue(Date.now()), d.refreshComponent(); }, d.refreshComponent = function() { e.refreshItems(), e.sizeSearchInput(); }, d.removeChoice = function(c) { var f = e.selected[c]; if (!f._uiSelectChoiceLocked) { var g = {}; g[e.parserResult.itemName] = f, e.selected.splice(c, 1), d.activeMatchIndex = -1, e.sizeSearchInput(), b(function() { e.onRemoveCallback(a, { $item: f, $model: e.parserResult.modelMapper(a, g) }); }), d.updateModel(); } }, d.getPlaceholder = function() { return e.selected && e.selected.length ? void 0 : e.placeholder; }; } ], controllerAs: "$selectMultiple", link: function(d, e, f, g) { function h(a) { return angular.isNumber(a.selectionStart) ? a.selectionStart : a.value.length; } function i(b) { function c() { switch (b) { case a.LEFT: return ~n.activeMatchIndex ? k : g; case a.RIGHT: return ~n.activeMatchIndex && i !== g ? j : (l.activate(), !1); case a.BACKSPACE: return ~n.activeMatchIndex ? (n.removeChoice(i), k) : g; case a.DELETE: return !!~n.activeMatchIndex && (n.removeChoice(n.activeMatchIndex), i); } } var d = h(l.searchInput[0]), e = l.selected.length, f = 0, g = e - 1, i = n.activeMatchIndex, j = n.activeMatchIndex + 1, k = n.activeMatchIndex - 1, m = i; return !(d > 0 || l.search.length && b == a.RIGHT) && (l.close(), m = c(), l.selected.length && m !== !1 ? n.activeMatchIndex = Math.min(g, Math.max(f, m)) : n.activeMatchIndex = -1, !0); } function j(a) { if (void 0 === a || void 0 === l.search) return !1; var b = a.filter(function(a) { return void 0 !== l.search.toUpperCase() && void 0 !== a && a.toUpperCase() === l.search.toUpperCase(); }).length > 0; return b; } function k(a, b) { var c = -1; if (angular.isArray(a)) for (var d = angular.copy(a), e = 0; e < d.length; e++) if (void 0 === l.tagging.fct) d[e] + " " + l.taggingLabel === b && (c = e); else { var f = d[e]; angular.isObject(f) && (f.isTag = !0), angular.equals(f, b) && (c = e); } return c; } var l = g[0], m = d.ngModel = g[1], n = d.$selectMultiple; l.multiple = !0, l.focusInput = l.searchInput, m.$isEmpty = function(a) { return !a || 0 === a.length; }, m.$parsers.unshift(function() { for (var a, b = {}, c = [], e = l.selected.length - 1; e >= 0; e--) b = {}, b[l.parserResult.itemName] = l.selected[e], a = l.parserResult.modelMapper(d, b), c.unshift(a); return c; }), m.$formatters.unshift(function(a) { var b, c = l.parserResult && l.parserResult.source(d, { $select: { search: "" } }), e = {}; if (!c) return a; var f = [], g = function(a, c) { if (a && a.length) { for (var g = a.length - 1; g >= 0; g--) { if (e[l.parserResult.itemName] = a[g], b = l.parserResult.modelMapper(d, e), l.parserResult.trackByExp) { var h = /(\w*)\./.exec(l.parserResult.trackByExp), i = /\.([^\s]+)/.exec(l.parserResult.trackByExp); if (h && h.length > 0 && h[1] == l.parserResult.itemName && i && i.length > 0 && b[i[1]] == c[i[1]]) return f.unshift(a[g]), !0; } if (angular.equals(b, c)) return f.unshift(a[g]), !0; } return !1; } }; if (!a) return f; for (var h = a.length - 1; h >= 0; h--) g(l.selected, a[h]) || g(c, a[h]) || f.unshift(a[h]); return f; }), d.$watchCollection(function() { return m.$modelValue; }, function(a, b) { b != a && (angular.isDefined(m.$modelValue) && (m.$modelValue = null), n.refreshComponent()); }), m.$render = function() { if (!angular.isArray(m.$viewValue)) { if (!angular.isUndefined(m.$viewValue) && null !== m.$viewValue) throw b("multiarr", "Expected model value to be array but got '{0}'", m.$viewValue); l.selected = []; } l.selected = m.$viewValue, n.refreshComponent(), d.$evalAsync(); }, d.$on("uis:select", function(a, b) { l.selected.length >= l.limit || (l.selected.push(b), n.updateModel()); }), d.$on("uis:activate", function() { n.activeMatchIndex = -1; }), d.$watch("$select.disabled", function(a, b) { b && !a && l.sizeSearchInput(); }), l.searchInput.on("keydown", function(b) { var c = b.which; d.$apply(function() { var d = !1; a.isHorizontalMovement(c) && (d = i(c)), d && c != a.TAB && (b.preventDefault(), b.stopPropagation()); }); }), l.searchInput.on("keyup", function(b) { if (a.isVerticalMovement(b.which) || d.$evalAsync(function() { l.activeIndex = l.taggingLabel === !1 ? -1 : 0; }), l.tagging.isActivated && l.search.length > 0) { if (b.which === a.TAB || a.isControl(b) || a.isFunctionKey(b) || b.which === a.ESC || a.isVerticalMovement(b.which)) return; if (l.activeIndex = l.taggingLabel === !1 ? -1 : 0, l.taggingLabel === !1) return; var c, e, f, g, h = angular.copy(l.items), i = angular.copy(l.items), m = !1, n = -1; if (void 0 !== l.tagging.fct) { if (f = l.$filter("filter")(h, { isTag: !0 }), f.length > 0 && (g = f[0]), h.length > 0 && g && (m = !0, h = h.slice(1, h.length), i = i.slice(1, i.length)), c = l.tagging.fct(l.search), i.some(function(a) { return angular.equals(a, c); }) || l.selected.some(function(a) { return angular.equals(a, c); })) return void d.$evalAsync(function() { l.activeIndex = 0, l.items = h; }); c && (c.isTag = !0); } else { if (f = l.$filter("filter")(h, function(a) { return a.match(l.taggingLabel); }), f.length > 0 && (g = f[0]), e = h[0], void 0 !== e && h.length > 0 && g && (m = !0, h = h.slice(1, h.length), i = i.slice(1, i.length)), c = l.search + " " + l.taggingLabel, k(l.selected, l.search) > -1) return; if (j(i.concat(l.selected))) return void (m && (h = i, d.$evalAsync(function() { l.activeIndex = 0, l.items = h; }))); if (j(i)) return void (m && (l.items = i.slice(1, i.length))); } m && (n = k(l.selected, c)), n > -1 ? h = h.slice(n + 1, h.length - 1) : (h = [], c && h.push(c), h = h.concat(i)), d.$evalAsync(function() { if (l.activeIndex = 0, l.items = h, l.isGrouped) { var a = c ? h.slice(1) : h; l.setItemsFn(a), c && (l.items.unshift(c), l.groups.unshift({ name: "", items: [ c ], tagging: !0 })); } }); } }), l.searchInput.on("blur", function() { c(function() { n.activeMatchIndex = -1; }); }); } }; } ]), c.directive("uiSelectNoChoice", [ "uiSelectConfig", function(a) { return { restrict: "EA", require: "^uiSelect", replace: !0, transclude: !0, templateUrl: function(b) { b.addClass("ui-select-no-choice"); var c = b.parent().attr("theme") || a.theme; return c + "/no-choice.tpl.html"; } }; } ]), c.directive("uiSelectSingle", [ "$timeout", "$compile", function(b, c) { return { restrict: "EA", require: [ "^uiSelect", "^ngModel" ], link: function(d, e, f, g) { var h = g[0], i = g[1]; i.$parsers.unshift(function(a) { var b, c = {}; return c[h.parserResult.itemName] = a, b = h.parserResult.modelMapper(d, c); }), i.$formatters.unshift(function(a) { var b, c = h.parserResult && h.parserResult.source(d, { $select: { search: "" } }), e = {}; if (c) { var f = function(c) { return e[h.parserResult.itemName] = c, b = h.parserResult.modelMapper(d, e), b === a; }; if (h.selected && f(h.selected)) return h.selected; for (var g = c.length - 1; g >= 0; g--) if (f(c[g])) return c[g]; } return a; }), d.$watch("$select.selected", function(a) { i.$viewValue !== a && i.$setViewValue(a); }), i.$render = function() { h.selected = i.$viewValue; }, d.$on("uis:select", function(a, b) { h.selected = b; }), d.$on("uis:close", function(a, c) { b(function() { h.focusser.prop("disabled", !1), c || h.focusser[0].focus(); }, 0, !1); }), d.$on("uis:activate", function() { j.prop("disabled", !0); }); var j = angular.element(""); c(j)(d), h.focusser = j, h.focusInput = j, e.parent().append(j), j.bind("focus", function() { d.$evalAsync(function() { h.focus = !0; }); }), j.bind("blur", function() { d.$evalAsync(function() { h.focus = !1; }); }), j.bind("keydown", function(b) { return b.which === a.BACKSPACE ? (b.preventDefault(), b.stopPropagation(), h.select(void 0), void d.$apply()) : void (b.which === a.TAB || a.isControl(b) || a.isFunctionKey(b) || b.which === a.ESC || (b.which != a.DOWN && b.which != a.UP && b.which != a.ENTER && b.which != a.SPACE || (b.preventDefault(), b.stopPropagation(), h.activate()), d.$digest())); }), j.bind("keyup input", function(b) { b.which === a.TAB || a.isControl(b) || a.isFunctionKey(b) || b.which === a.ESC || b.which == a.ENTER || b.which === a.BACKSPACE || (h.activate(j.val()), j.val(""), d.$digest()); }); } }; } ]), c.directive("uiSelectSort", [ "$timeout", "uiSelectConfig", "uiSelectMinErr", function(a, b, c) { return { require: [ "^^uiSelect", "^ngModel" ], link: function(b, d, e, f) { if (null === b[e.uiSelectSort]) throw c("sort", "Expected a list to sort"); var g = f[0], h = f[1], i = angular.extend({ axis: "horizontal" }, b.$eval(e.uiSelectSortOptions)), j = i.axis, k = "dragging", l = "dropping", m = "dropping-before", n = "dropping-after"; b.$watch(function() { return g.sortable; }, function(a) { a ? d.attr("draggable", !0) : d.removeAttr("draggable"); }), d.on("dragstart", function(a) { d.addClass(k), (a.dataTransfer || a.originalEvent.dataTransfer).setData("text", b.$index.toString()); }), d.on("dragend", function() { q(k); }); var o, p = function(a, b) { this.splice(b, 0, this.splice(a, 1)[0]); }, q = function(a) { angular.forEach(g.$element.querySelectorAll("." + a), function(b) { angular.element(b).removeClass(a); }); }, r = function(a) { a.preventDefault(); var b = "vertical" === j ? a.offsetY || a.layerY || (a.originalEvent ? a.originalEvent.offsetY : 0) : a.offsetX || a.layerX || (a.originalEvent ? a.originalEvent.offsetX : 0); b < this["vertical" === j ? "offsetHeight" : "offsetWidth"] / 2 ? (q(n), d.addClass(m)) : (q(m), d.addClass(n)); }, s = function(b) { b.preventDefault(); var c = parseInt((b.dataTransfer || b.originalEvent.dataTransfer).getData("text"), 10); a.cancel(o), o = a(function() { t(c); }, 20); }, t = function(a) { var c = b.$eval(e.uiSelectSort), f = c[a], g = null; g = d.hasClass(m) ? a < b.$index ? b.$index - 1 : b.$index : a < b.$index ? b.$index : b.$index + 1, p.apply(c, [ a, g ]), h.$setViewValue(Date.now()), b.$apply(function() { b.$emit("uiSelectSort:change", { array: c, item: f, from: a, to: g }); }), q(l), q(m), q(n), d.off("drop", s); }; d.on("dragenter", function() { d.hasClass(k) || (d.addClass(l), d.on("dragover", r), d.on("drop", s)); }), d.on("dragleave", function(a) { a.target == d && (q(l), q(m), q(n), d.off("dragover", r), d.off("drop", s)); }); } }; } ]), c.factory("$$uisDebounce", [ "$timeout", function(a) { return function(b, c) { var d; return function() { var e = this, f = Array.prototype.slice.call(arguments); d && a.cancel(d), d = a(function() { b.apply(e, f); }, c); }; }; } ]), c.service("uisRepeatParser", [ "uiSelectMinErr", "$parse", function(a, b) { var c = this; c.parse = function(c) { var d; if (d = c.match(/^\s*(?:([\s\S]+?)\s+as\s+)?(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(\s*[\s\S]+?)?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/), !d) throw a("iexp", "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", c); var e = d[5], f = ""; if (d[3]) { e = d[5].replace(/(^\()|(\)$)/g, ""); var g = d[5].match(/^\s*(?:[\s\S]+?)(?:[^\|]|\|\|)+([\s\S]*)\s*$/); g && g[1].trim() && (f = g[1], e = e.replace(f, "")); } return { itemName: d[4] || d[2], keyName: d[3], source: b(e), filters: f, trackByExp: d[6], modelMapper: b(d[1] || d[4] || d[2]), repeatExpression: function(a) { var b = this.itemName + " in " + (a ? "$group.items" : "$select.items"); return this.trackByExp && (b += " track by " + this.trackByExp), b; } }; }, c.getGroupNgRepeatExpression = function() { return "$group in $select.groups"; }; } ]); }(), angular.module("ui.select").run([ "$templateCache", function(a) { a.put("bootstrap/choices.tpl.html", ''), a.put("bootstrap/match-multiple.tpl.html", ' × '), a.put("bootstrap/match.tpl.html", '
{{$select.placeholder}}
'), a.put("bootstrap/no-choice.tpl.html", ''), a.put("bootstrap/select-multiple.tpl.html", ''), a.put("bootstrap/select.tpl.html", ''), a.put("select2/choices.tpl.html", '
'), a.put("select2/match-multiple.tpl.html", '
  • '), a.put("select2/match.tpl.html", '{{$select.placeholder}} '), a.put("select2/select-multiple.tpl.html", '
    '), a.put("select2/select.tpl.html", '
    '), a.put("selectize/choices.tpl.html", '
    '), a.put("selectize/match.tpl.html", '
    '), a.put("selectize/select.tpl.html", '
    '); } ]), !function(a) { function b(b, c) { return { restrict: "A", scope: { isBusy: "=vBusy", busyLabel: "@vBusyLabel", busyText: "@vBusyText" }, compile: function(b, d) { var e = a.element(b.find("span")); return e[0] || (b.html("" + b.html() + ""), e = a.element(b.find("span"))), function(a, b) { var f = e.html(), g = a.busyLabel || c.busyLabel, h = a.busyText; a.$watch("isBusy", function(a) { a ? (b.addClass(c.states.busy), e.html(g)) : (b.removeClass(c.states.busy), e.html(h || f)); }), d.$observe("vBusyLabel", function(a) { g = a; }), d.$observe("vBusyText", function(a) { h = a; }); }; } }; } function c(b, c) { return { restrict: "A", link: function(d, e) { function f(c, d) { var f, g, h = e[0].getBoundingClientRect(), i = e[0].querySelector("v-ripple"); a.element(i).remove(), i = b[0].createElement("v-ripple"), i.style.height = i.style.width = Math.max(h.width, h.height) + "px", e.append(i), g = c - h.left - i.offsetWidth / 2 - l[0].scrollLeft, f = d - h.top - i.offsetHeight / 2 - l[0].scrollTop, i.style.left = g + "px", i.style.top = f + "px"; } function g(a) { f(a.pageX, a.pageY), e.addClass(c.states.pressed), l.bind(k, h); } function h() { e.removeClass(c.states.pressed), l.unbind(k, h); } var i = !("undefined" == typeof b[0].documentElement.ontouchstart), j = i ? "touchstart" : "mousedown", k = i ? "touchend" : "mouseup", l = a.element(b[0].body); e.bind(j, g); } }; } a.module("vButton.config", []).constant("buttonConfig", { busyLabel: "Loading", states: { busy: "is-busy", pressed: "is-pressed" } }), a.module("vButton.directives", []), a.module("vButton", [ "vButton.config", "vButton.directives" ]), a.module("vButton.directives").directive("vBusy", b), b.$inject = [ "$document", "buttonConfig" ], a.module("vButton.directives").directive("vPressable", c), c.$inject = [ "$document", "buttonConfig" ]; }(angular), function(a, b, c) { function d(a, c) { c = c || {}, b.forEach(c, function(a, b) { delete c[b]; }); for (var d in a) !a.hasOwnProperty(d) || "$" === d.charAt(0) && "$" === d.charAt(1) || (c[d] = a[d]); return c; } var e = b.$$minErr("$resource"), f = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/; b.module("ngResource", [ "ng" ]).provider("$resource", function() { var a = /^https?:\/\/[^\/]*/, g = this; this.defaults = { stripTrailingSlashes: !0, actions: { get: { method: "GET" }, save: { method: "POST" }, query: { method: "GET", isArray: !0 }, remove: { method: "DELETE" }, "delete": { method: "DELETE" } } }, this.$get = [ "$http", "$log", "$q", function(h, i, j) { function k(a, b) { this.template = a, this.defaults = o({}, g.defaults, b), this.urlParams = {}; } function l(a, r, s, t) { function u(a, d) { var g = {}; return d = o({}, r, d), n(d, function(d, h) { q(d) && (d = d()); var i; if (d && d.charAt && "@" == d.charAt(0)) { i = a; var j = d.substr(1); if (null == j || "" === j || "hasOwnProperty" === j || !f.test("." + j)) throw e("badmember", j); for (var j = j.split("."), k = 0, l = j.length; k < l && b.isDefined(i); k++) { var m = j[k]; i = null !== i ? i[m] : c; } } else i = d; g[h] = i; }), g; } function v(a) { return a.resource; } function w(a) { d(a || {}, this); } var x = new k(a, t); return s = o({}, g.defaults.actions, s), w.prototype.toJSON = function() { var a = o({}, this); return delete a.$promise, delete a.$resolved, a; }, n(s, function(a, f) { var g = /^(POST|PUT|PATCH)$/i.test(a.method); w[f] = function(k, l, r, s) { var t, y, z, A = {}; switch (arguments.length) { case 4: z = s, y = r; case 3: case 2: if (!q(l)) { A = k, t = l, y = r; break; } if (q(k)) { y = k, z = l; break; } y = l, z = r; case 1: q(k) ? y = k : g ? t = k : A = k; break; case 0: break; default: throw e("badargs", arguments.length); } var B = this instanceof w, C = B ? t : a.isArray ? [] : new w(t), D = {}, E = a.interceptor && a.interceptor.response || v, F = a.interceptor && a.interceptor.responseError || c; return n(a, function(a, c) { switch (c) { default: D[c] = p(a); break; case "params": case "isArray": case "interceptor": break; case "timeout": a && !b.isNumber(a) && i.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests.\n If you need support for cancellable $resource actions, you should upgrade to version 1.5 or higher."); } }), g && (D.data = t), x.setUrlParams(D, o({}, u(t, a.params || {}), A), a.url), A = h(D).then(function(c) { var g = c.data, h = C.$promise; if (g) { if (b.isArray(g) !== !!a.isArray) throw e("badcfg", f, a.isArray ? "array" : "object", b.isArray(g) ? "array" : "object", D.method, D.url); a.isArray ? (C.length = 0, n(g, function(a) { "object" == typeof a ? C.push(new w(a)) : C.push(a); })) : (d(g, C), C.$promise = h); } return C.$resolved = !0, c.resource = C, c; }, function(a) { return C.$resolved = !0, (z || m)(a), j.reject(a); }), A = A.then(function(a) { var b = E(a); return (y || m)(b, a.headers), b; }, F), B ? A : (C.$promise = A, C.$resolved = !1, C); }, w.prototype["$" + f] = function(a, b, c) { return q(a) && (c = b, b = a, a = {}), a = w[f].call(this, a, this, b, c), a.$promise || a; }; }), w.bind = function(b) { return l(a, o({}, r, b), s); }, w; } var m = b.noop, n = b.forEach, o = b.extend, p = b.copy, q = b.isFunction; return k.prototype = { setUrlParams: function(c, d, f) { var g, h, i = this, j = f || i.template, k = "", l = i.urlParams = {}; n(j.split(/\W/), function(a) { if ("hasOwnProperty" === a) throw e("badname"); !/^\d+$/.test(a) && a && new RegExp("(^|[^\\\\]):" + a + "(\\W|$)").test(j) && (l[a] = !0); }), j = j.replace(/\\:/g, ":"), j = j.replace(a, function(a) { return k = a, ""; }), d = d || {}, n(i.urlParams, function(a, c) { g = d.hasOwnProperty(c) ? d[c] : i.defaults[c], b.isDefined(g) && null !== g ? (h = encodeURIComponent(g).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "%20").replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+"), j = j.replace(new RegExp(":" + c + "(\\W|$)", "g"), function(a, b) { return h + b; })) : j = j.replace(new RegExp("(/?):" + c + "(\\W|$)", "g"), function(a, b, c) { return "/" == c.charAt(0) ? c : b + c; }); }), i.defaults.stripTrailingSlashes && (j = j.replace(/\/+$/, "") || "/"), j = j.replace(/\/\.(?=\w+($|\?))/, "."), c.url = k + j.replace(/\/\\\./, "/."), n(d, function(a, b) { i.urlParams[b] || (c.params = c.params || {}, c.params[b] = a); }); } }, l; } ]; }); }(window, window.angular), "undefined" != typeof module && "undefined" != typeof exports && module.exports === exports && (module.exports = "ui.router"), function(a, b, c) { function d(a, b) { return R(new (R(function() {}, { prototype: a }))(), b); } function e(a) { return Q(arguments, function(b) { b !== a && Q(b, function(b, c) { a.hasOwnProperty(c) || (a[c] = b); }); }), a; } function f(a, b) { var c = []; for (var d in a.path) { if (a.path[d] !== b.path[d]) break; c.push(a.path[d]); } return c; } function g(a) { if (Object.keys) return Object.keys(a); var b = []; return Q(a, function(a, c) { b.push(c); }), b; } function h(a, b) { if (Array.prototype.indexOf) return a.indexOf(b, Number(arguments[2]) || 0); var c = a.length >>> 0, d = Number(arguments[2]) || 0; for (d = 0 > d ? Math.ceil(d) : Math.floor(d), 0 > d && (d += c); c > d; d++) if (d in a && a[d] === b) return d; return -1; } function i(a, b, c, d) { var e, i = f(c, d), j = {}, k = []; for (var l in i) if (i[l] && i[l].params && (e = g(i[l].params), e.length)) for (var m in e) h(k, e[m]) >= 0 || (k.push(e[m]), j[e[m]] = a[e[m]]); return R({}, j, b); } function j(a, b, c) { if (!c) { c = []; for (var d in a) c.push(d); } for (var e = 0; e < c.length; e++) { var f = c[e]; if (a[f] != b[f]) return !1; } return !0; } function k(a, b) { var c = {}; return Q(a, function(a) { c[a] = b[a]; }), c; } function l(a) { var b = {}, c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1)); return Q(c, function(c) { c in a && (b[c] = a[c]); }), b; } function m(a) { var b = {}, c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1)); for (var d in a) -1 == h(c, d) && (b[d] = a[d]); return b; } function n(a, b) { var c = P(a), d = c ? [] : {}; return Q(a, function(a, e) { b(a, e) && (d[c ? d.length : e] = a); }), d; } function o(a, b) { var c = P(a) ? [] : {}; return Q(a, function(a, d) { c[d] = b(a, d); }), c; } function p(a, b) { var d = 1, f = 2, i = {}, j = [], k = i, l = R(a.when(i), { $$promises: i, $$values: i }); this.study = function(i) { function n(a, c) { if (s[c] !== f) { if (r.push(c), s[c] === d) throw r.splice(0, h(r, c)), new Error("Cyclic dependency: " + r.join(" -> ")); if (s[c] = d, N(a)) q.push(c, [ function() { return b.get(a); } ], j); else { var e = b.annotate(a); Q(e, function(a) { a !== c && i.hasOwnProperty(a) && n(i[a], a); }), q.push(c, a, e); } r.pop(), s[c] = f; } } function o(a) { return O(a) && a.then && a.$$promises; } if (!O(i)) throw new Error("'invocables' must be an object"); var p = g(i || {}), q = [], r = [], s = {}; return Q(i, n), i = r = s = null, function(d, f, g) { function h() { --u || (v || e(t, f.$$values), r.$$values = t, r.$$promises = r.$$promises || !0, delete r.$$inheritedValues, n.resolve(t)); } function i(a) { r.$$failure = a, n.reject(a); } function j(c, e, f) { function j(a) { l.reject(a), i(a); } function k() { if (!L(r.$$failure)) try { l.resolve(b.invoke(e, g, t)), l.promise.then(function(a) { t[c] = a, h(); }, j); } catch (a) { j(a); } } var l = a.defer(), m = 0; Q(f, function(a) { s.hasOwnProperty(a) && !d.hasOwnProperty(a) && (m++, s[a].then(function(b) { t[a] = b, --m || k(); }, j)); }), m || k(), s[c] = l.promise; } if (o(d) && g === c && (g = f, f = d, d = null), d) { if (!O(d)) throw new Error("'locals' must be an object"); } else d = k; if (f) { if (!o(f)) throw new Error("'parent' must be a promise returned by $resolve.resolve()"); } else f = l; var n = a.defer(), r = n.promise, s = r.$$promises = {}, t = R({}, d), u = 1 + q.length / 3, v = !1; if (L(f.$$failure)) return i(f.$$failure), r; f.$$inheritedValues && e(t, m(f.$$inheritedValues, p)), R(s, f.$$promises), f.$$values ? (v = e(t, m(f.$$values, p)), r.$$inheritedValues = m(f.$$values, p), h()) : (f.$$inheritedValues && (r.$$inheritedValues = m(f.$$inheritedValues, p)), f.then(h, i)); for (var w = 0, x = q.length; x > w; w += 3) d.hasOwnProperty(q[w]) ? h() : j(q[w], q[w + 1], q[w + 2]); return r; }; }, this.resolve = function(a, b, c, d) { return this.study(a)(b, c, d); }; } function q(a, b, c) { this.fromConfig = function(a, b, c) { return L(a.template) ? this.fromString(a.template, b) : L(a.templateUrl) ? this.fromUrl(a.templateUrl, b) : L(a.templateProvider) ? this.fromProvider(a.templateProvider, b, c) : null; }, this.fromString = function(a, b) { return M(a) ? a(b) : a; }, this.fromUrl = function(c, d) { return M(c) && (c = c(d)), null == c ? null : a.get(c, { cache: b, headers: { Accept: "text/html" } }).then(function(a) { return a.data; }); }, this.fromProvider = function(a, b, d) { return c.invoke(a, null, d || { params: b }); }; } function r(a, b, e) { function f(b, c, d, e) { if (q.push(b), o[b]) return o[b]; if (!/^\w+([-.]+\w+)*(?:\[\])?$/.test(b)) throw new Error("Invalid parameter name '" + b + "' in pattern '" + a + "'"); if (p[b]) throw new Error("Duplicate parameter name '" + b + "' in pattern '" + a + "'"); return p[b] = new U.Param(b, c, d, e), p[b]; } function g(a, b, c, d) { var e = [ "", "" ], f = a.replace(/[\\\[\]\^$*+?.()|{}]/g, "\\$&"); if (!b) return f; switch (c) { case !1: e = [ "(", ")" + (d ? "?" : "") ]; break; case !0: f = f.replace(/\/$/, ""), e = [ "(?:/(", ")|/)?" ]; break; default: e = [ "(" + c + "|", ")?" ]; } return f + e[0] + b + e[1]; } function h(e, f) { var g, h, i, j, k; return g = e[2] || e[3], k = b.params[g], i = a.substring(m, e.index), h = f ? e[4] : e[4] || ("*" == e[1] ? ".*" : null), h && (j = U.type(h) || d(U.type("string"), { pattern: new RegExp(h, b.caseInsensitive ? "i" : c) })), { id: g, regexp: h, segment: i, type: j, cfg: k }; } b = R({ params: {} }, O(b) ? b : {}); var i, j = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, k = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g, l = "^", m = 0, n = this.segments = [], o = e ? e.params : {}, p = this.params = e ? e.params.$$new() : new U.ParamSet(), q = []; this.source = a; for (var r, s, t; (i = j.exec(a)) && (r = h(i, !1), !(r.segment.indexOf("?") >= 0)); ) s = f(r.id, r.type, r.cfg, "path"), l += g(r.segment, s.type.pattern.source, s.squash, s.isOptional), n.push(r.segment), m = j.lastIndex; t = a.substring(m); var u = t.indexOf("?"); if (u >= 0) { var v = this.sourceSearch = t.substring(u); if (t = t.substring(0, u), this.sourcePath = a.substring(0, m + u), v.length > 0) for (m = 0; i = k.exec(v); ) r = h(i, !0), s = f(r.id, r.type, r.cfg, "search"), m = j.lastIndex; } else this.sourcePath = a, this.sourceSearch = ""; l += g(t) + (b.strict === !1 ? "/?" : "") + "$", n.push(t), this.regexp = new RegExp(l, b.caseInsensitive ? "i" : c), this.prefix = n[0], this.$$paramNames = q; } function s(a) { R(this, a); } function t() { function a(a) { return null != a ? a.toString().replace(/~/g, "~~").replace(/\//g, "~2F") : a; } function e(a) { return null != a ? a.toString().replace(/~2F/g, "/").replace(/~~/g, "~") : a; } function f() { return { strict: p, caseInsensitive: m }; } function i(a) { return M(a) || P(a) && M(a[a.length - 1]); } function j() { for (;w.length; ) { var a = w.shift(); if (a.pattern) throw new Error("You cannot override a type's .pattern at runtime."); b.extend(u[a.name], l.invoke(a.def)); } } function k(a) { R(this, a || {}); } U = this; var l, m = !1, p = !0, q = !1, u = {}, v = !0, w = [], x = { string: { encode: a, decode: e, is: function(a) { return null == a || !L(a) || "string" == typeof a; }, pattern: /[^\/]*/ }, "int": { encode: a, decode: function(a) { return parseInt(a, 10); }, is: function(a) { return L(a) && this.decode(a.toString()) === a; }, pattern: /\d+/ }, bool: { encode: function(a) { return a ? 1 : 0; }, decode: function(a) { return 0 !== parseInt(a, 10); }, is: function(a) { return a === !0 || a === !1; }, pattern: /0|1/ }, date: { encode: function(a) { return this.is(a) ? [ a.getFullYear(), ("0" + (a.getMonth() + 1)).slice(-2), ("0" + a.getDate()).slice(-2) ].join("-") : c; }, decode: function(a) { if (this.is(a)) return a; var b = this.capture.exec(a); return b ? new Date(b[1], b[2] - 1, b[3]) : c; }, is: function(a) { return a instanceof Date && !isNaN(a.valueOf()); }, equals: function(a, b) { return this.is(a) && this.is(b) && a.toISOString() === b.toISOString(); }, pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/, capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/ }, json: { encode: b.toJson, decode: b.fromJson, is: b.isObject, equals: b.equals, pattern: /[^\/]*/ }, any: { encode: b.identity, decode: b.identity, equals: b.equals, pattern: /.*/ } }; t.$$getDefaultValue = function(a) { if (!i(a.value)) return a.value; if (!l) throw new Error("Injectable functions cannot be called at configuration time"); return l.invoke(a.value); }, this.caseInsensitive = function(a) { return L(a) && (m = a), m; }, this.strictMode = function(a) { return L(a) && (p = a), p; }, this.defaultSquashPolicy = function(a) { if (!L(a)) return q; if (a !== !0 && a !== !1 && !N(a)) throw new Error("Invalid squash policy: " + a + ". Valid policies: false, true, arbitrary-string"); return q = a, a; }, this.compile = function(a, b) { return new r(a, R(f(), b)); }, this.isMatcher = function(a) { if (!O(a)) return !1; var b = !0; return Q(r.prototype, function(c, d) { M(c) && (b = b && L(a[d]) && M(a[d])); }), b; }, this.type = function(a, b, c) { if (!L(b)) return u[a]; if (u.hasOwnProperty(a)) throw new Error("A type named '" + a + "' has already been defined."); return u[a] = new s(R({ name: a }, b)), c && (w.push({ name: a, def: c }), v || j()), this; }, Q(x, function(a, b) { u[b] = new s(R({ name: b }, a)); }), u = d(u, {}), this.$get = [ "$injector", function(a) { return l = a, v = !1, j(), Q(x, function(a, b) { u[b] || (u[b] = new s(a)); }), this; } ], this.Param = function(a, d, e, f) { function j(a) { var b = O(a) ? g(a) : [], c = -1 === h(b, "value") && -1 === h(b, "type") && -1 === h(b, "squash") && -1 === h(b, "array"); return c && (a = { value: a }), a.$$fn = i(a.value) ? a.value : function() { return a.value; }, a; } function k(c, d, e) { if (c.type && d) throw new Error("Param '" + a + "' has two type configurations."); return d ? d : c.type ? b.isString(c.type) ? u[c.type] : c.type instanceof s ? c.type : new s(c.type) : "config" === e ? u.any : u.string; } function m() { var b = { array: "search" === f && "auto" }, c = a.match(/\[\]$/) ? { array: !0 } : {}; return R(b, c, e).array; } function p(a, b) { var c = a.squash; if (!b || c === !1) return !1; if (!L(c) || null == c) return q; if (c === !0 || N(c)) return c; throw new Error("Invalid squash policy: '" + c + "'. Valid policies: false, true, or arbitrary string"); } function r(a, b, d, e) { var f, g, i = [ { from: "", to: d || b ? c : "" }, { from: null, to: d || b ? c : "" } ]; return f = P(a.replace) ? a.replace : [], N(e) && f.push({ from: e, to: c }), g = o(f, function(a) { return a.from; }), n(i, function(a) { return -1 === h(g, a.from); }).concat(f); } function t() { if (!l) throw new Error("Injectable functions cannot be called at configuration time"); var a = l.invoke(e.$$fn); if (null !== a && a !== c && !x.type.is(a)) throw new Error("Default value (" + a + ") for parameter '" + x.id + "' is not an instance of Type (" + x.type.name + ")"); return a; } function v(a) { function b(a) { return function(b) { return b.from === a; }; } function c(a) { var c = o(n(x.replace, b(a)), function(a) { return a.to; }); return c.length ? c[0] : a; } return a = c(a), L(a) ? x.type.$normalize(a) : t(); } function w() { return "{Param:" + a + " " + d + " squash: '" + A + "' optional: " + z + "}"; } var x = this; e = j(e), d = k(e, d, f); var y = m(); d = y ? d.$asArray(y, "search" === f) : d, "string" !== d.name || y || "path" !== f || e.value !== c || (e.value = ""); var z = e.value !== c, A = p(e, z), B = r(e, y, z, A); R(this, { id: a, type: d, location: f, array: y, squash: A, replace: B, isOptional: z, value: v, dynamic: c, config: e, toString: w }); }, k.prototype = { $$new: function() { return d(this, R(new k(), { $$parent: this })); }, $$keys: function() { for (var a = [], b = [], c = this, d = g(k.prototype); c; ) b.push(c), c = c.$$parent; return b.reverse(), Q(b, function(b) { Q(g(b), function(b) { -1 === h(a, b) && -1 === h(d, b) && a.push(b); }); }), a; }, $$values: function(a) { var b = {}, c = this; return Q(c.$$keys(), function(d) { b[d] = c[d].value(a && a[d]); }), b; }, $$equals: function(a, b) { var c = !0, d = this; return Q(d.$$keys(), function(e) { var f = a && a[e], g = b && b[e]; d[e].type.equals(f, g) || (c = !1); }), c; }, $$validates: function(a) { var d, e, f, g, h, i = this.$$keys(); for (d = 0; d < i.length && (e = this[i[d]], f = a[i[d]], f !== c && null !== f || !e.isOptional); d++) { if (g = e.type.$normalize(f), !e.type.is(g)) return !1; if (h = e.type.encode(g), b.isString(h) && !e.type.pattern.exec(h)) return !1; } return !0; }, $$parent: c }, this.ParamSet = k; } function u(a, d) { function e(a) { var b = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source); return null != b ? b[1].replace(/\\(.)/g, "$1") : ""; } function f(a, b) { return a.replace(/\$(\$|\d{1,2})/, function(a, c) { return b["$" === c ? 0 : Number(c)]; }); } function g(a, b, c) { if (!c) return !1; var d = a.invoke(b, b, { $match: c }); return !L(d) || d; } function h(d, e, f, g, h) { function m(a, b, c) { return "/" === q ? a : b ? q.slice(0, -1) + a : c ? q.slice(1) + a : a; } function n(a) { function b(a) { var b = a(f, d); return !!b && (N(b) && d.replace().url(b), !0); } if (!a || !a.defaultPrevented) { p && d.url() === p, p = c; var e, g = j.length; for (e = 0; g > e; e++) if (b(j[e])) return; k && b(k); } } function o() { return i = i || e.$on("$locationChangeSuccess", n); } var p, q = g.baseHref(), r = d.url(); return l || o(), { sync: function() { n(); }, listen: function() { return o(); }, update: function(a) { return a ? void (r = d.url()) : void (d.url() !== r && (d.url(r), d.replace())); }, push: function(a, b, e) { var f = a.format(b || {}); null !== f && b && b["#"] && (f += "#" + b["#"]), d.url(f), p = e && e.$$avoidResync ? d.url() : c, e && e.replace && d.replace(); }, href: function(c, e, f) { if (!c.validates(e)) return null; var g = a.html5Mode(); b.isObject(g) && (g = g.enabled), g = g && h.history; var i = c.format(e); if (f = f || {}, g || null === i || (i = "#" + a.hashPrefix() + i), null !== i && e && e["#"] && (i += "#" + e["#"]), i = m(i, g, f.absolute), !f.absolute || !i) return i; var j = !g && i ? "/" : "", k = d.port(); return k = 80 === k || 443 === k ? "" : ":" + k, [ d.protocol(), "://", d.host(), k, j, i ].join(""); } }; } var i, j = [], k = null, l = !1; this.rule = function(a) { if (!M(a)) throw new Error("'rule' must be a function"); return j.push(a), this; }, this.otherwise = function(a) { if (N(a)) { var b = a; a = function() { return b; }; } else if (!M(a)) throw new Error("'rule' must be a function"); return k = a, this; }, this.when = function(a, b) { var c, h = N(b); if (N(a) && (a = d.compile(a)), !h && !M(b) && !P(b)) throw new Error("invalid 'handler' in when()"); var i = { matcher: function(a, b) { return h && (c = d.compile(b), b = [ "$match", function(a) { return c.format(a); } ]), R(function(c, d) { return g(c, b, a.exec(d.path(), d.search())); }, { prefix: N(a.prefix) ? a.prefix : "" }); }, regex: function(a, b) { if (a.global || a.sticky) throw new Error("when() RegExp must not be global or sticky"); return h && (c = b, b = [ "$match", function(a) { return f(c, a); } ]), R(function(c, d) { return g(c, b, a.exec(d.path())); }, { prefix: e(a) }); } }, j = { matcher: d.isMatcher(a), regex: a instanceof RegExp }; for (var k in j) if (j[k]) return this.rule(i[k](a, b)); throw new Error("invalid 'what' in when()"); }, this.deferIntercept = function(a) { a === c && (a = !0), l = a; }, this.$get = h, h.$inject = [ "$location", "$rootScope", "$injector", "$browser", "$sniffer" ]; } function v(a, e) { function f(a) { return 0 === a.indexOf(".") || 0 === a.indexOf("^"); } function m(a, b) { if (!a) return c; var d = N(a), e = d ? a : a.name, g = f(e); if (g) { if (!b) throw new Error("No reference point given for path '" + e + "'"); b = m(b); for (var h = e.split("."), i = 0, j = h.length, k = b; j > i; i++) if ("" !== h[i] || 0 !== i) { if ("^" !== h[i]) break; if (!k.parent) throw new Error("Path '" + e + "' not valid for state '" + b.name + "'"); k = k.parent; } else k = b; h = h.slice(i).join("."), e = k.name + (k.name && h ? "." : "") + h; } var l = z[e]; return !l || !d && (d || l !== a && l.self !== a) ? c : l; } function n(a, b) { A[a] || (A[a] = []), A[a].push(b); } function p(a) { for (var b = A[a] || []; b.length; ) q(b.shift()); } function q(b) { b = d(b, { self: b, resolve: b.resolve || {}, toString: function() { return this.name; } }); var c = b.name; if (!N(c) || c.indexOf("@") >= 0) throw new Error("State must have a valid name"); if (z.hasOwnProperty(c)) throw new Error("State '" + c + "' is already defined"); var e = -1 !== c.indexOf(".") ? c.substring(0, c.lastIndexOf(".")) : N(b.parent) ? b.parent : O(b.parent) && N(b.parent.name) ? b.parent.name : ""; if (e && !z[e]) return n(e, b.self); for (var f in C) M(C[f]) && (b[f] = C[f](b, C.$delegates[f])); return z[c] = b, !b[B] && b.url && a.when(b.url, [ "$match", "$stateParams", function(a, c) { y.$current.navigable == b && j(a, c) || y.transitionTo(b, a, { inherit: !0, location: !1 }); } ]), p(c), b; } function r(a) { return a.indexOf("*") > -1; } function s(a) { for (var b = a.split("."), c = y.$current.name.split("."), d = 0, e = b.length; e > d; d++) "*" === b[d] && (c[d] = "*"); return "**" === b[0] && (c = c.slice(h(c, b[1])), c.unshift("**")), "**" === b[b.length - 1] && (c.splice(h(c, b[b.length - 2]) + 1, Number.MAX_VALUE), c.push("**")), b.length == c.length && c.join("") === b.join(""); } function t(a, b) { return N(a) && !L(b) ? C[a] : M(b) && N(a) ? (C[a] && !C.$delegates[a] && (C.$delegates[a] = C[a]), C[a] = b, this) : this; } function u(a, b) { return O(a) ? b = a : b.name = a, q(b), this; } function v(a, e, f, h, l, n, p, q, t) { function u(b, c, d, f) { var g = a.$broadcast("$stateNotFound", b, c, d); if (g.defaultPrevented) return p.update(), D; if (!g.retry) return null; if (f.$retry) return p.update(), E; var h = y.transition = e.when(g.retry); return h.then(function() { return h !== y.transition ? A : (b.options.$retry = !0, y.transitionTo(b.to, b.toParams, b.options)); }, function() { return D; }), p.update(), h; } function v(a, c, d, g, i, j) { function m() { var c = []; return Q(a.views, function(d, e) { var g = d.resolve && d.resolve !== a.resolve ? d.resolve : {}; g.$template = [ function() { return f.load(e, { view: d, locals: i.globals, params: n, notify: j.notify }) || ""; } ], c.push(l.resolve(g, i.globals, i.resolve, a).then(function(c) { if (M(d.controllerProvider) || P(d.controllerProvider)) { var f = b.extend({}, g, i.globals); c.$$controller = h.invoke(d.controllerProvider, null, f); } else c.$$controller = d.controller; c.$$state = a, c.$$controllerAs = d.controllerAs, i[e] = c; })); }), e.all(c).then(function() { return i.globals; }); } var n = d ? c : k(a.params.$$keys(), c), o = { $stateParams: n }; i.resolve = l.resolve(a.resolve, o, i.resolve, a); var p = [ i.resolve.then(function(a) { i.globals = a; }) ]; return g && p.push(g), e.all(p).then(m).then(function(a) { return i; }); } var A = e.reject(new Error("transition superseded")), C = e.reject(new Error("transition prevented")), D = e.reject(new Error("transition aborted")), E = e.reject(new Error("transition failed")); return x.locals = { resolve: null, globals: { $stateParams: {} } }, y = { params: {}, current: x.self, $current: x, transition: null }, y.reload = function(a) { return y.transitionTo(y.current, n, { reload: a || !0, inherit: !1, notify: !0 }); }, y.go = function(a, b, c) { return y.transitionTo(a, b, R({ inherit: !0, relative: y.$current }, c)); }, y.transitionTo = function(b, c, f) { c = c || {}, f = R({ location: !0, inherit: !1, relative: null, notify: !0, reload: !1, $retry: !1 }, f || {}); var g, j = y.$current, l = y.params, o = j.path, q = m(b, f.relative), r = c["#"]; if (!L(q)) { var s = { to: b, toParams: c, options: f }, t = u(s, j.self, l, f); if (t) return t; if (b = s.to, c = s.toParams, f = s.options, q = m(b, f.relative), !L(q)) { if (!f.relative) throw new Error("No such state '" + b + "'"); throw new Error("Could not resolve '" + b + "' from state '" + f.relative + "'"); } } if (q[B]) throw new Error("Cannot transition to abstract state '" + b + "'"); if (f.inherit && (c = i(n, c || {}, y.$current, q)), !q.params.$$validates(c)) return E; c = q.params.$$values(c), b = q; var z = b.path, D = 0, F = z[D], G = x.locals, H = []; if (f.reload) { if (N(f.reload) || O(f.reload)) { if (O(f.reload) && !f.reload.name) throw new Error("Invalid reload state object"); var I = f.reload === !0 ? o[0] : m(f.reload); if (f.reload && !I) throw new Error("No such reload state '" + (N(f.reload) ? f.reload : f.reload.name) + "'"); for (;F && F === o[D] && F !== I; ) G = H[D] = F.locals, D++, F = z[D]; } } else for (;F && F === o[D] && F.ownParams.$$equals(c, l); ) G = H[D] = F.locals, D++, F = z[D]; if (w(b, c, j, l, G, f)) return r && (c["#"] = r), y.params = c, S(y.params, n), S(k(b.params.$$keys(), n), b.locals.globals.$stateParams), f.location && b.navigable && b.navigable.url && (p.push(b.navigable.url, c, { $$avoidResync: !0, replace: "replace" === f.location }), p.update(!0)), y.transition = null, e.when(y.current); if (c = k(b.params.$$keys(), c || {}), r && (c["#"] = r), f.notify && a.$broadcast("$stateChangeStart", b.self, c, j.self, l, f).defaultPrevented) return a.$broadcast("$stateChangeCancel", b.self, c, j.self, l), null == y.transition && p.update(), C; for (var J = e.when(G), K = D; K < z.length; K++, F = z[K]) G = H[K] = d(G), J = v(F, c, F === b, J, G, f); var M = y.transition = J.then(function() { var d, e, g; if (y.transition !== M) return A; for (d = o.length - 1; d >= D; d--) g = o[d], g.self.onExit && h.invoke(g.self.onExit, g.self, g.locals.globals), g.locals = null; for (d = D; d < z.length; d++) e = z[d], e.locals = H[d], e.self.onEnter && h.invoke(e.self.onEnter, e.self, e.locals.globals); return y.transition !== M ? A : (y.$current = b, y.current = b.self, y.params = c, S(y.params, n), y.transition = null, f.location && b.navigable && p.push(b.navigable.url, b.navigable.locals.globals.$stateParams, { $$avoidResync: !0, replace: "replace" === f.location }), f.notify && a.$broadcast("$stateChangeSuccess", b.self, c, j.self, l), p.update(!0), y.current); }, function(d) { return y.transition !== M ? A : (y.transition = null, g = a.$broadcast("$stateChangeError", b.self, c, j.self, l, d), g.defaultPrevented || p.update(), e.reject(d)); }); return M; }, y.is = function(a, b, d) { d = R({ relative: y.$current }, d || {}); var e = m(a, d.relative); return L(e) ? y.$current === e && (!b || j(e.params.$$values(b), n)) : c; }, y.includes = function(a, b, d) { if (d = R({ relative: y.$current }, d || {}), N(a) && r(a)) { if (!s(a)) return !1; a = y.$current.name; } var e = m(a, d.relative); return L(e) ? !!L(y.$current.includes[e.name]) && (!b || j(e.params.$$values(b), n, g(b))) : c; }, y.href = function(a, b, d) { d = R({ lossy: !0, inherit: !0, absolute: !1, relative: y.$current }, d || {}); var e = m(a, d.relative); if (!L(e)) return null; d.inherit && (b = i(n, b || {}, y.$current, e)); var f = e && d.lossy ? e.navigable : e; return f && f.url !== c && null !== f.url ? p.href(f.url, k(e.params.$$keys().concat("#"), b || {}), { absolute: d.absolute }) : null; }, y.get = function(a, b) { if (0 === arguments.length) return o(g(z), function(a) { return z[a].self; }); var c = m(a, b || y.$current); return c && c.self ? c.self : null; }, y; } function w(a, b, c, d, e, f) { function g(a, b, c) { function d(b) { return "search" != a.params[b].location; } var e = a.params.$$keys().filter(d), f = l.apply({}, [ a.params ].concat(e)), g = new U.ParamSet(f); return g.$$equals(b, c); } return !(f.reload || a !== c || !(e === c.locals || a.self.reloadOnSearch === !1 && g(c, d, b))) || void 0; } var x, y, z = {}, A = {}, B = "abstract", C = { parent: function(a) { if (L(a.parent) && a.parent) return m(a.parent); var b = /^(.+)\.[^.]+$/.exec(a.name); return b ? m(b[1]) : x; }, data: function(a) { return a.parent && a.parent.data && (a.data = a.self.data = d(a.parent.data, a.data)), a.data; }, url: function(a) { var b = a.url, c = { params: a.params || {} }; if (N(b)) return "^" == b.charAt(0) ? e.compile(b.substring(1), c) : (a.parent.navigable || x).url.concat(b, c); if (!b || e.isMatcher(b)) return b; throw new Error("Invalid url '" + b + "' in state '" + a + "'"); }, navigable: function(a) { return a.url ? a : a.parent ? a.parent.navigable : null; }, ownParams: function(a) { var b = a.url && a.url.params || new U.ParamSet(); return Q(a.params || {}, function(a, c) { b[c] || (b[c] = new U.Param(c, null, a, "config")); }), b; }, params: function(a) { var b = l(a.ownParams, a.ownParams.$$keys()); return a.parent && a.parent.params ? R(a.parent.params.$$new(), b) : new U.ParamSet(); }, views: function(a) { var b = {}; return Q(L(a.views) ? a.views : { "": a }, function(c, d) { d.indexOf("@") < 0 && (d += "@" + a.parent.name), b[d] = c; }), b; }, path: function(a) { return a.parent ? a.parent.path.concat(a) : []; }, includes: function(a) { var b = a.parent ? R({}, a.parent.includes) : {}; return b[a.name] = !0, b; }, $delegates: {} }; x = q({ name: "", url: "^", views: null, "abstract": !0 }), x.navigable = null, this.decorator = t, this.state = u, this.$get = v, v.$inject = [ "$rootScope", "$q", "$view", "$injector", "$resolve", "$stateParams", "$urlRouter", "$location", "$urlMatcherFactory" ]; } function w() { function a(a, b) { return { load: function(a, c) { var d, e = { template: null, controller: null, view: null, locals: null, notify: !0, async: !0, params: {} }; return c = R(e, c), c.view && (d = b.fromConfig(c.view, c.params, c.locals)), d; } }; } this.$get = a, a.$inject = [ "$rootScope", "$templateFactory" ]; } function x() { var a = !1; this.useAnchorScroll = function() { a = !0; }, this.$get = [ "$anchorScroll", "$timeout", function(b, c) { return a ? b : function(a) { return c(function() { a[0].scrollIntoView(); }, 0, !1); }; } ]; } function y(a, c, d, e) { function f() { return c.has ? function(a) { return c.has(a) ? c.get(a) : null; } : function(a) { try { return c.get(a); } catch (b) { return null; } }; } function g(a, c) { function d(a) { return 1 === V && W >= 4 ? !!j.enabled(a) : 1 === V && W >= 2 ? !!j.enabled() : !!i; } var e = { enter: function(a, b, c) { b.after(a), c(); }, leave: function(a, b) { a.remove(), b(); } }; if (a.noanimation) return e; if (j) return { enter: function(a, c, f) { d(a) ? b.version.minor > 2 ? j.enter(a, null, c).then(f) : j.enter(a, null, c, f) : e.enter(a, c, f); }, leave: function(a, c) { d(a) ? b.version.minor > 2 ? j.leave(a).then(c) : j.leave(a, c) : e.leave(a, c); } }; if (i) { var f = i && i(c, a); return { enter: function(a, b, c) { f.enter(a, null, b), c(); }, leave: function(a, b) { f.leave(a), b(); } }; } return e; } var h = f(), i = h("$animator"), j = h("$animate"), k = { restrict: "ECA", terminal: !0, priority: 400, transclude: "element", compile: function(c, f, h) { return function(c, f, i) { function j() { function a() { b && b.remove(), c && c.$destroy(); } var b = l, c = n; c && (c._willBeDestroyed = !0), m ? (r.leave(m, function() { a(), l = null; }), l = m) : (a(), l = null), m = null, n = null; } function k(g) { var k, l = A(c, i, f, e), s = l && a.$current && a.$current.locals[l]; if ((g || s !== o) && !c._willBeDestroyed) { k = c.$new(), o = a.$current.locals[l], k.$emit("$viewContentLoading", l); var t = h(k, function(a) { r.enter(a, f, function() { n && n.$emit("$viewContentAnimationEnded"), (b.isDefined(q) && !q || c.$eval(q)) && d(a); }), j(); }); m = t, n = k, n.$emit("$viewContentLoaded", l), n.$eval(p); } } var l, m, n, o, p = i.onload || "", q = i.autoscroll, r = g(i, c); c.$on("$stateChangeSuccess", function() { k(!1); }), k(!0); }; } }; return k; } function z(a, b, c, d) { return { restrict: "ECA", priority: -400, compile: function(e) { var f = e.html(); return function(e, g, h) { var i = c.$current, j = A(e, h, g, d), k = i && i.locals[j]; if (k) { g.data("$uiView", { name: j, state: k.$$state }), g.html(k.$template ? k.$template : f); var l = a(g.contents()); if (k.$$controller) { k.$scope = e, k.$element = g; var m = b(k.$$controller, k); k.$$controllerAs && (e[k.$$controllerAs] = m), g.data("$ngControllerController", m), g.children().data("$ngControllerController", m); } l(e); } }; } }; } function A(a, b, c, d) { var e = d(b.uiView || b.name || "")(a), f = c.inheritedData("$uiView"); return e.indexOf("@") >= 0 ? e : e + "@" + (f ? f.state.name : ""); } function B(a, b) { var c, d = a.match(/^\s*({[^}]*})\s*$/); if (d && (a = b + "(" + d[1] + ")"), c = a.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/), !c || 4 !== c.length) throw new Error("Invalid state ref '" + a + "'"); return { state: c[1], paramExpr: c[3] || null }; } function C(a) { var b = a.parent().inheritedData("$uiView"); return b && b.state && b.state.name ? b.state : void 0; } function D(a) { var b = "[object SVGAnimatedString]" === Object.prototype.toString.call(a.prop("href")), c = "FORM" === a[0].nodeName; return { attr: c ? "action" : b ? "xlink:href" : "href", isAnchor: "A" === a.prop("tagName").toUpperCase(), clickable: !c }; } function E(a, b, c, d, e) { return function(f) { var g = f.which || f.button, h = e(); if (!(g > 1 || f.ctrlKey || f.metaKey || f.shiftKey || a.attr("target"))) { var i = c(function() { b.go(h.state, h.params, h.options); }); f.preventDefault(); var j = d.isAnchor && !h.href ? 1 : 0; f.preventDefault = function() { j-- <= 0 && c.cancel(i); }; } }; } function F(a, b) { return { relative: C(a) || b.$current, inherit: !0 }; } function G(a, c) { return { restrict: "A", require: [ "?^uiSrefActive", "?^uiSrefActiveEq" ], link: function(d, e, f, g) { var h = B(f.uiSref, a.current.name), i = { state: h.state, href: null, params: null }, j = D(e), k = g[1] || g[0]; i.options = R(F(e, a), f.uiSrefOpts ? d.$eval(f.uiSrefOpts) : {}); var l = function(c) { c && (i.params = b.copy(c)), i.href = a.href(h.state, i.params, i.options), k && k.$$addStateInfo(h.state, i.params), null !== i.href && f.$set(j.attr, i.href); }; h.paramExpr && (d.$watch(h.paramExpr, function(a) { a !== i.params && l(a); }, !0), i.params = b.copy(d.$eval(h.paramExpr))), l(), j.clickable && e.bind("click", E(e, a, c, j, function() { return i; })); } }; } function H(a, b) { return { restrict: "A", require: [ "?^uiSrefActive", "?^uiSrefActiveEq" ], link: function(c, d, e, f) { function g(b) { l.state = b[0], l.params = b[1], l.options = b[2], l.href = a.href(l.state, l.params, l.options), i && i.$$addStateInfo(l.state, l.params), l.href && e.$set(h.attr, l.href); } var h = D(d), i = f[1] || f[0], j = [ e.uiState, e.uiStateParams || null, e.uiStateOpts || null ], k = "[" + j.map(function(a) { return a || "null"; }).join(", ") + "]", l = { state: null, params: null, options: null, href: null }; c.$watch(k, g, !0), g(c.$eval(k)), h.clickable && d.bind("click", E(d, a, b, h, function() { return l; })); } }; } function I(a, b, c) { return { restrict: "A", controller: [ "$scope", "$element", "$attrs", "$timeout", function(b, d, e, f) { function g(b, c, e) { var f = a.get(b, C(d)), g = h(b, c); p.push({ state: f || { name: b }, params: c, hash: g }), q[g] = e; } function h(a, c) { if (!N(a)) throw new Error("state should be a string"); return O(c) ? a + T(c) : (c = b.$eval(c), O(c) ? a + T(c) : a); } function i() { for (var a = 0; a < p.length; a++) l(p[a].state, p[a].params) ? j(d, q[p[a].hash]) : k(d, q[p[a].hash]), m(p[a].state, p[a].params) ? j(d, n) : k(d, n); } function j(a, b) { f(function() { a.addClass(b); }); } function k(a, b) { a.removeClass(b); } function l(b, c) { return a.includes(b.name, c); } function m(b, c) { return a.is(b.name, c); } var n, o, p = [], q = {}; n = c(e.uiSrefActiveEq || "", !1)(b); try { o = b.$eval(e.uiSrefActive); } catch (r) {} o = o || c(e.uiSrefActive || "", !1)(b), O(o) && Q(o, function(c, d) { if (N(c)) { var e = B(c, a.current.name); g(e.state, b.$eval(e.paramExpr), d); } }), this.$$addStateInfo = function(a, b) { O(o) && p.length > 0 || (g(a, b, o), i()); }, b.$on("$stateChangeSuccess", i), i(); } ] }; } function J(a) { var b = function(b, c) { return a.is(b, c); }; return b.$stateful = !0, b; } function K(a) { var b = function(b, c, d) { return a.includes(b, c, d); }; return b.$stateful = !0, b; } var L = b.isDefined, M = b.isFunction, N = b.isString, O = b.isObject, P = b.isArray, Q = b.forEach, R = b.extend, S = b.copy, T = b.toJson; b.module("ui.router.util", [ "ng" ]), b.module("ui.router.router", [ "ui.router.util" ]), b.module("ui.router.state", [ "ui.router.router", "ui.router.util" ]), b.module("ui.router", [ "ui.router.state" ]), b.module("ui.router.compat", [ "ui.router" ]), p.$inject = [ "$q", "$injector" ], b.module("ui.router.util").service("$resolve", p), q.$inject = [ "$http", "$templateCache", "$injector" ], b.module("ui.router.util").service("$templateFactory", q); var U; r.prototype.concat = function(a, b) { var c = { caseInsensitive: U.caseInsensitive(), strict: U.strictMode(), squash: U.defaultSquashPolicy() }; return new r(this.sourcePath + a + this.sourceSearch, R(c, b), this); }, r.prototype.toString = function() { return this.source; }, r.prototype.exec = function(a, b) { function c(a) { function b(a) { return a.split("").reverse().join(""); } function c(a) { return a.replace(/\\-/g, "-"); } var d = b(a).split(/-(?!\\)/), e = o(d, b); return o(e, c).reverse(); } var d = this.regexp.exec(a); if (!d) return null; b = b || {}; var e, f, g, h = this.parameters(), i = h.length, j = this.segments.length - 1, k = {}; if (j !== d.length - 1) throw new Error("Unbalanced capture group in route '" + this.source + "'"); var l, m; for (e = 0; j > e; e++) { for (g = h[e], l = this.params[g], m = d[e + 1], f = 0; f < l.replace.length; f++) l.replace[f].from === m && (m = l.replace[f].to); m && l.array === !0 && (m = c(m)), L(m) && (m = l.type.decode(m)), k[g] = l.value(m); } for (;i > e; e++) { for (g = h[e], k[g] = this.params[g].value(b[g]), l = this.params[g], m = b[g], f = 0; f < l.replace.length; f++) l.replace[f].from === m && (m = l.replace[f].to); L(m) && (m = l.type.decode(m)), k[g] = l.value(m); } return k; }, r.prototype.parameters = function(a) { return L(a) ? this.params[a] || null : this.$$paramNames; }, r.prototype.validates = function(a) { return this.params.$$validates(a); }, r.prototype.format = function(a) { function b(a) { return encodeURIComponent(a).replace(/-/g, function(a) { return "%5C%" + a.charCodeAt(0).toString(16).toUpperCase(); }); } a = a || {}; var c = this.segments, d = this.parameters(), e = this.params; if (!this.validates(a)) return null; var f, g = !1, h = c.length - 1, i = d.length, j = c[0]; for (f = 0; i > f; f++) { var k = h > f, l = d[f], m = e[l], n = m.value(a[l]), p = m.isOptional && m.type.equals(m.value(), n), q = !!p && m.squash, r = m.type.encode(n); if (k) { var s = c[f + 1], t = f + 1 === h; if (q === !1) null != r && (j += P(r) ? o(r, b).join("-") : encodeURIComponent(r)), j += s; else if (q === !0) { var u = j.match(/\/$/) ? /\/?(.*)/ : /(.*)/; j += s.match(u)[1]; } else N(q) && (j += q + s); t && m.squash === !0 && "/" === j.slice(-1) && (j = j.slice(0, -1)); } else { if (null == r || p && q !== !1) continue; if (P(r) || (r = [ r ]), 0 === r.length) continue; r = o(r, encodeURIComponent).join("&" + l + "="), j += (g ? "&" : "?") + (l + "=" + r), g = !0; } } return j; }, s.prototype.is = function(a, b) { return !0; }, s.prototype.encode = function(a, b) { return a; }, s.prototype.decode = function(a, b) { return a; }, s.prototype.equals = function(a, b) { return a == b; }, s.prototype.$subPattern = function() { var a = this.pattern.toString(); return a.substr(1, a.length - 2); }, s.prototype.pattern = /.*/, s.prototype.toString = function() { return "{Type:" + this.name + "}"; }, s.prototype.$normalize = function(a) { return this.is(a) ? a : this.decode(a); }, s.prototype.$asArray = function(a, b) { function d(a, b) { function d(a, b) { return function() { return a[b].apply(a, arguments); }; } function e(a) { return P(a) ? a : L(a) ? [ a ] : []; } function f(a) { switch (a.length) { case 0: return c; case 1: return "auto" === b ? a[0] : a; default: return a; } } function g(a) { return !a; } function h(a, b) { return function(c) { if (P(c) && 0 === c.length) return c; c = e(c); var d = o(c, a); return b === !0 ? 0 === n(d, g).length : f(d); }; } function i(a) { return function(b, c) { var d = e(b), f = e(c); if (d.length !== f.length) return !1; for (var g = 0; g < d.length; g++) if (!a(d[g], f[g])) return !1; return !0; }; } this.encode = h(d(a, "encode")), this.decode = h(d(a, "decode")), this.is = h(d(a, "is"), !0), this.equals = i(d(a, "equals")), this.pattern = a.pattern, this.$normalize = h(d(a, "$normalize")), this.name = a.name, this.$arrayMode = b; } if (!a) return this; if ("auto" === a && !b) throw new Error("'auto' array mode is for query parameters only"); return new d(this, a); }, b.module("ui.router.util").provider("$urlMatcherFactory", t), b.module("ui.router.util").run([ "$urlMatcherFactory", function(a) {} ]), u.$inject = [ "$locationProvider", "$urlMatcherFactoryProvider" ], b.module("ui.router.router").provider("$urlRouter", u), v.$inject = [ "$urlRouterProvider", "$urlMatcherFactoryProvider" ], b.module("ui.router.state").factory("$stateParams", function() { return {}; }).provider("$state", v), w.$inject = [], b.module("ui.router.state").provider("$view", w), b.module("ui.router.state").provider("$uiViewScroll", x); var V = b.version.major, W = b.version.minor; y.$inject = [ "$state", "$injector", "$uiViewScroll", "$interpolate" ], z.$inject = [ "$compile", "$controller", "$state", "$interpolate" ], b.module("ui.router.state").directive("uiView", y), b.module("ui.router.state").directive("uiView", z), G.$inject = [ "$state", "$timeout" ], H.$inject = [ "$state", "$timeout" ], I.$inject = [ "$state", "$stateParams", "$interpolate" ], b.module("ui.router.state").directive("uiSref", G).directive("uiSrefActive", I).directive("uiSrefActiveEq", I).directive("uiState", H), J.$inject = [ "$state" ], K.$inject = [ "$state" ], b.module("ui.router.state").filter("isState", J).filter("includedByState", K); }(window, window.angular), angular.module("ui.bootstrap", [ "ui.bootstrap.tpls", "ui.bootstrap.collapse", "ui.bootstrap.accordion", "ui.bootstrap.alert", "ui.bootstrap.buttons", "ui.bootstrap.carousel", "ui.bootstrap.dateparser", "ui.bootstrap.position", "ui.bootstrap.datepicker", "ui.bootstrap.dropdown", "ui.bootstrap.stackedMap", "ui.bootstrap.modal", "ui.bootstrap.pagination", "ui.bootstrap.tooltip", "ui.bootstrap.popover", "ui.bootstrap.progressbar", "ui.bootstrap.rating", "ui.bootstrap.tabs", "ui.bootstrap.timepicker", "ui.bootstrap.typeahead" ]), angular.module("ui.bootstrap.tpls", [ "template/accordion/accordion-group.html", "template/accordion/accordion.html", "template/alert/alert.html", "template/carousel/carousel.html", "template/carousel/slide.html", "template/datepicker/datepicker.html", "template/datepicker/day.html", "template/datepicker/month.html", "template/datepicker/popup.html", "template/datepicker/year.html", "template/modal/backdrop.html", "template/modal/window.html", "template/pagination/pager.html", "template/pagination/pagination.html", "template/tooltip/tooltip-html-popup.html", "template/tooltip/tooltip-popup.html", "template/tooltip/tooltip-template-popup.html", "template/popover/popover-html.html", "template/popover/popover-template.html", "template/popover/popover.html", "template/progressbar/bar.html", "template/progressbar/progress.html", "template/progressbar/progressbar.html", "template/rating/rating.html", "template/tabs/tab.html", "template/tabs/tabset.html", "template/timepicker/timepicker.html", "template/typeahead/typeahead-match.html", "template/typeahead/typeahead-popup.html" ]), angular.module("ui.bootstrap.collapse", []).directive("uibCollapse", [ "$animate", "$injector", function(a, b) { var c = b.has("$animateCss") ? b.get("$animateCss") : null; return { link: function(b, d, e) { function f() { d.removeClass("collapse").addClass("collapsing").attr("aria-expanded", !0).attr("aria-hidden", !1), c ? c(d, { addClass: "in", easing: "ease", to: { height: d[0].scrollHeight + "px" } }).start()["finally"](g) : a.addClass(d, "in", { to: { height: d[0].scrollHeight + "px" } }).then(g); } function g() { d.removeClass("collapsing").addClass("collapse").css({ height: "auto" }); } function h() { return d.hasClass("collapse") || d.hasClass("in") ? (d.css({ height: d[0].scrollHeight + "px" }).removeClass("collapse").addClass("collapsing").attr("aria-expanded", !1).attr("aria-hidden", !0), void (c ? c(d, { removeClass: "in", to: { height: "0" } }).start()["finally"](i) : a.removeClass(d, "in", { to: { height: "0" } }).then(i))) : i(); } function i() { d.css({ height: "0" }), d.removeClass("collapsing").addClass("collapse"); } b.$watch(e.uibCollapse, function(a) { a ? h() : f(); }); } }; } ]), angular.module("ui.bootstrap.collapse").value("$collapseSuppressWarning", !1).directive("collapse", [ "$animate", "$injector", "$log", "$collapseSuppressWarning", function(a, b, c, d) { var e = b.has("$animateCss") ? b.get("$animateCss") : null; return { link: function(b, f, g) { function h() { f.removeClass("collapse").addClass("collapsing").attr("aria-expanded", !0).attr("aria-hidden", !1), e ? e(f, { easing: "ease", to: { height: f[0].scrollHeight + "px" } }).start().done(i) : a.animate(f, {}, { height: f[0].scrollHeight + "px" }).then(i); } function i() { f.removeClass("collapsing").addClass("collapse in").css({ height: "auto" }); } function j() { return f.hasClass("collapse") || f.hasClass("in") ? (f.css({ height: f[0].scrollHeight + "px" }).removeClass("collapse in").addClass("collapsing").attr("aria-expanded", !1).attr("aria-hidden", !0), void (e ? e(f, { to: { height: "0" } }).start().done(k) : a.animate(f, {}, { height: "0" }).then(k))) : k(); } function k() { f.css({ height: "0" }), f.removeClass("collapsing").addClass("collapse"); } d || c.warn("collapse is now deprecated. Use uib-collapse instead."), b.$watch(g.collapse, function(a) { a ? j() : h(); }); } }; } ]), angular.module("ui.bootstrap.accordion", [ "ui.bootstrap.collapse" ]).constant("uibAccordionConfig", { closeOthers: !0 }).controller("UibAccordionController", [ "$scope", "$attrs", "uibAccordionConfig", function(a, b, c) { this.groups = [], this.closeOthers = function(d) { var e = angular.isDefined(b.closeOthers) ? a.$eval(b.closeOthers) : c.closeOthers; e && angular.forEach(this.groups, function(a) { a !== d && (a.isOpen = !1); }); }, this.addGroup = function(a) { var b = this; this.groups.push(a), a.$on("$destroy", function(c) { b.removeGroup(a); }); }, this.removeGroup = function(a) { var b = this.groups.indexOf(a); b !== -1 && this.groups.splice(b, 1); }; } ]).directive("uibAccordion", function() { return { controller: "UibAccordionController", controllerAs: "accordion", transclude: !0, templateUrl: function(a, b) { return b.templateUrl || "template/accordion/accordion.html"; } }; }).directive("uibAccordionGroup", function() { return { require: "^uibAccordion", transclude: !0, replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/accordion/accordion-group.html"; }, scope: { heading: "@", isOpen: "=?", isDisabled: "=?" }, controller: function() { this.setHeading = function(a) { this.heading = a; }; }, link: function(a, b, c, d) { d.addGroup(a), a.openClass = c.openClass || "panel-open", a.panelClass = c.panelClass, a.$watch("isOpen", function(c) { b.toggleClass(a.openClass, !!c), c && d.closeOthers(a); }), a.toggleOpen = function(b) { a.isDisabled || b && 32 !== b.which || (a.isOpen = !a.isOpen); }; } }; }).directive("uibAccordionHeading", function() { return { transclude: !0, template: "", replace: !0, require: "^uibAccordionGroup", link: function(a, b, c, d, e) { d.setHeading(e(a, angular.noop)); } }; }).directive("uibAccordionTransclude", function() { return { require: [ "?^uibAccordionGroup", "?^accordionGroup" ], link: function(a, b, c, d) { d = d[0] ? d[0] : d[1], a.$watch(function() { return d[c.uibAccordionTransclude]; }, function(a) { a && (b.find("span").html(""), b.find("span").append(a)); }); } }; }), angular.module("ui.bootstrap.accordion").value("$accordionSuppressWarning", !1).controller("AccordionController", [ "$scope", "$attrs", "$controller", "$log", "$accordionSuppressWarning", function(a, b, c, d, e) { e || d.warn("AccordionController is now deprecated. Use UibAccordionController instead."), angular.extend(this, c("UibAccordionController", { $scope: a, $attrs: b })); } ]).directive("accordion", [ "$log", "$accordionSuppressWarning", function(a, b) { return { restrict: "EA", controller: "AccordionController", controllerAs: "accordion", transclude: !0, replace: !1, templateUrl: function(a, b) { return b.templateUrl || "template/accordion/accordion.html"; }, link: function() { b || a.warn("accordion is now deprecated. Use uib-accordion instead."); } }; } ]).directive("accordionGroup", [ "$log", "$accordionSuppressWarning", function(a, b) { return { require: "^accordion", restrict: "EA", transclude: !0, replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/accordion/accordion-group.html"; }, scope: { heading: "@", isOpen: "=?", isDisabled: "=?" }, controller: function() { this.setHeading = function(a) { this.heading = a; }; }, link: function(c, d, e, f) { b || a.warn("accordion-group is now deprecated. Use uib-accordion-group instead."), f.addGroup(c), c.openClass = e.openClass || "panel-open", c.panelClass = e.panelClass, c.$watch("isOpen", function(a) { d.toggleClass(c.openClass, !!a), a && f.closeOthers(c); }), c.toggleOpen = function(a) { c.isDisabled || a && 32 !== a.which || (c.isOpen = !c.isOpen); }; } }; } ]).directive("accordionHeading", [ "$log", "$accordionSuppressWarning", function(a, b) { return { restrict: "EA", transclude: !0, template: "", replace: !0, require: "^accordionGroup", link: function(c, d, e, f, g) { b || a.warn("accordion-heading is now deprecated. Use uib-accordion-heading instead."), f.setHeading(g(c, angular.noop)); } }; } ]).directive("accordionTransclude", [ "$log", "$accordionSuppressWarning", function(a, b) { return { require: "^accordionGroup", link: function(c, d, e, f) { b || a.warn("accordion-transclude is now deprecated. Use uib-accordion-transclude instead."), c.$watch(function() { return f[e.accordionTransclude]; }, function(a) { a && (d.find("span").html(""), d.find("span").append(a)); }); } }; } ]), angular.module("ui.bootstrap.alert", []).controller("UibAlertController", [ "$scope", "$attrs", "$interpolate", "$timeout", function(a, b, c, d) { a.closeable = !!b.close; var e = angular.isDefined(b.dismissOnTimeout) ? c(b.dismissOnTimeout)(a.$parent) : null; e && d(function() { a.close(); }, parseInt(e, 10)); } ]).directive("uibAlert", function() { return { controller: "UibAlertController", controllerAs: "alert", templateUrl: function(a, b) { return b.templateUrl || "template/alert/alert.html"; }, transclude: !0, replace: !0, scope: { type: "@", close: "&" } }; }), angular.module("ui.bootstrap.alert").value("$alertSuppressWarning", !1).controller("AlertController", [ "$scope", "$attrs", "$controller", "$log", "$alertSuppressWarning", function(a, b, c, d, e) { e || d.warn("AlertController is now deprecated. Use UibAlertController instead."), angular.extend(this, c("UibAlertController", { $scope: a, $attrs: b })); } ]).directive("alert", [ "$log", "$alertSuppressWarning", function(a, b) { return { controller: "AlertController", controllerAs: "alert", templateUrl: function(a, b) { return b.templateUrl || "template/alert/alert.html"; }, transclude: !0, replace: !0, scope: { type: "@", close: "&" }, link: function() { b || a.warn("alert is now deprecated. Use uib-alert instead."); } }; } ]), angular.module("ui.bootstrap.buttons", []).constant("uibButtonConfig", { activeClass: "active", toggleEvent: "click" }).controller("UibButtonsController", [ "uibButtonConfig", function(a) { this.activeClass = a.activeClass || "active", this.toggleEvent = a.toggleEvent || "click"; } ]).directive("uibBtnRadio", function() { return { require: [ "uibBtnRadio", "ngModel" ], controller: "UibButtonsController", controllerAs: "buttons", link: function(a, b, c, d) { var e = d[0], f = d[1]; b.find("input").css({ display: "none" }), f.$render = function() { b.toggleClass(e.activeClass, angular.equals(f.$modelValue, a.$eval(c.uibBtnRadio))); }, b.on(e.toggleEvent, function() { if (!c.disabled) { var d = b.hasClass(e.activeClass); d && !angular.isDefined(c.uncheckable) || a.$apply(function() { f.$setViewValue(d ? null : a.$eval(c.uibBtnRadio)), f.$render(); }); } }); } }; }).directive("uibBtnCheckbox", function() { return { require: [ "uibBtnCheckbox", "ngModel" ], controller: "UibButtonsController", controllerAs: "button", link: function(a, b, c, d) { function e() { return g(c.btnCheckboxTrue, !0); } function f() { return g(c.btnCheckboxFalse, !1); } function g(b, c) { return angular.isDefined(b) ? a.$eval(b) : c; } var h = d[0], i = d[1]; b.find("input").css({ display: "none" }), i.$render = function() { b.toggleClass(h.activeClass, angular.equals(i.$modelValue, e())); }, b.on(h.toggleEvent, function() { c.disabled || a.$apply(function() { i.$setViewValue(b.hasClass(h.activeClass) ? f() : e()), i.$render(); }); }); } }; }), angular.module("ui.bootstrap.buttons").value("$buttonsSuppressWarning", !1).controller("ButtonsController", [ "$controller", "$log", "$buttonsSuppressWarning", function(a, b, c) { c || b.warn("ButtonsController is now deprecated. Use UibButtonsController instead."), angular.extend(this, a("UibButtonsController")); } ]).directive("btnRadio", [ "$log", "$buttonsSuppressWarning", function(a, b) { return { require: [ "btnRadio", "ngModel" ], controller: "ButtonsController", controllerAs: "buttons", link: function(c, d, e, f) { b || a.warn("btn-radio is now deprecated. Use uib-btn-radio instead."); var g = f[0], h = f[1]; d.find("input").css({ display: "none" }), h.$render = function() { d.toggleClass(g.activeClass, angular.equals(h.$modelValue, c.$eval(e.btnRadio))); }, d.bind(g.toggleEvent, function() { if (!e.disabled) { var a = d.hasClass(g.activeClass); a && !angular.isDefined(e.uncheckable) || c.$apply(function() { h.$setViewValue(a ? null : c.$eval(e.btnRadio)), h.$render(); }); } }); } }; } ]).directive("btnCheckbox", [ "$document", "$log", "$buttonsSuppressWarning", function(a, b, c) { return { require: [ "btnCheckbox", "ngModel" ], controller: "ButtonsController", controllerAs: "button", link: function(d, e, f, g) { function h() { return j(f.btnCheckboxTrue, !0); } function i() { return j(f.btnCheckboxFalse, !1); } function j(a, b) { var c = d.$eval(a); return angular.isDefined(c) ? c : b; } c || b.warn("btn-checkbox is now deprecated. Use uib-btn-checkbox instead."); var k = g[0], l = g[1]; e.find("input").css({ display: "none" }), l.$render = function() { e.toggleClass(k.activeClass, angular.equals(l.$modelValue, h())); }, e.bind(k.toggleEvent, function() { f.disabled || d.$apply(function() { l.$setViewValue(e.hasClass(k.activeClass) ? i() : h()), l.$render(); }); }), e.on("keypress", function(b) { f.disabled || 32 !== b.which || a[0].activeElement !== e[0] || d.$apply(function() { l.$setViewValue(e.hasClass(k.activeClass) ? i() : h()), l.$render(); }); }); } }; } ]), angular.module("ui.bootstrap.carousel", []).controller("UibCarouselController", [ "$scope", "$element", "$interval", "$animate", function(a, b, c, d) { function e(b, c, e) { s || (angular.extend(b, { direction: e, active: !0 }), angular.extend(m.currentSlide || {}, { direction: e, active: !1 }), d.enabled() && !a.noTransition && !a.$currentTransition && b.$element && m.slides.length > 1 && (b.$element.data(q, b.direction), m.currentSlide && m.currentSlide.$element && m.currentSlide.$element.data(q, b.direction), a.$currentTransition = !0, o ? d.on("addClass", b.$element, function(b, c) { "close" === c && (a.$currentTransition = null, d.off("addClass", b)); }) : b.$element.one("$animate:close", function() { a.$currentTransition = null; })), m.currentSlide = b, r = c, g()); } function f(a) { if (angular.isUndefined(n[a].index)) return n[a]; var b; n.length; for (b = 0; b < n.length; ++b) if (n[b].index == a) return n[b]; } function g() { h(); var b = +a.interval; !isNaN(b) && b > 0 && (k = c(i, b)); } function h() { k && (c.cancel(k), k = null); } function i() { var b = +a.interval; l && !isNaN(b) && b > 0 && n.length ? a.next() : a.pause(); } function j(b) { b.length || (a.$currentTransition = null); } var k, l, m = this, n = m.slides = a.slides = [], o = angular.version.minor >= 4, p = "uib-noTransition", q = "uib-slideDirection", r = -1; m.currentSlide = null; var s = !1; m.select = a.select = function(b, c) { var d = a.indexOfSlide(b); void 0 === c && (c = d > m.getCurrentIndex() ? "next" : "prev"), b && b !== m.currentSlide && !a.$currentTransition && e(b, d, c); }, a.$on("$destroy", function() { s = !0; }), m.getCurrentIndex = function() { return m.currentSlide && angular.isDefined(m.currentSlide.index) ? +m.currentSlide.index : r; }, a.indexOfSlide = function(a) { return angular.isDefined(a.index) ? +a.index : n.indexOf(a); }, a.next = function() { var b = (m.getCurrentIndex() + 1) % n.length; return 0 === b && a.noWrap() ? void a.pause() : m.select(f(b), "next"); }, a.prev = function() { var b = m.getCurrentIndex() - 1 < 0 ? n.length - 1 : m.getCurrentIndex() - 1; return a.noWrap() && b === n.length - 1 ? void a.pause() : m.select(f(b), "prev"); }, a.isActive = function(a) { return m.currentSlide === a; }, a.$watch("interval", g), a.$watchCollection("slides", j), a.$on("$destroy", h), a.play = function() { l || (l = !0, g()); }, a.pause = function() { a.noPause || (l = !1, h()); }, m.addSlide = function(b, c) { b.$element = c, n.push(b), 1 === n.length || b.active ? (m.select(n[n.length - 1]), 1 === n.length && a.play()) : b.active = !1; }, m.removeSlide = function(a) { angular.isDefined(a.index) && n.sort(function(a, b) { return +a.index > +b.index; }); var b = n.indexOf(a); n.splice(b, 1), n.length > 0 && a.active ? b >= n.length ? m.select(n[b - 1]) : m.select(n[b]) : r > b && r--, 0 === n.length && (m.currentSlide = null); }, a.$watch("noTransition", function(a) { b.data(p, a); }); } ]).directive("uibCarousel", [ function() { return { transclude: !0, replace: !0, controller: "UibCarouselController", controllerAs: "carousel", require: "carousel", templateUrl: function(a, b) { return b.templateUrl || "template/carousel/carousel.html"; }, scope: { interval: "=", noTransition: "=", noPause: "=", noWrap: "&" } }; } ]).directive("uibSlide", function() { return { require: "^uibCarousel", restrict: "EA", transclude: !0, replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/carousel/slide.html"; }, scope: { active: "=?", actual: "=?", index: "=?" }, link: function(a, b, c, d) { d.addSlide(a, b), a.$on("$destroy", function() { d.removeSlide(a); }), a.$watch("active", function(b) { b && d.select(a); }); } }; }).animation(".item", [ "$injector", "$animate", function(a, b) { function c(a, b, c) { a.removeClass(b), c && c(); } var d = "uib-noTransition", e = "uib-slideDirection", f = null; return a.has("$animateCss") && (f = a.get("$animateCss")), { beforeAddClass: function(a, g, h) { if ("active" == g && a.parent() && a.parent().parent() && !a.parent().parent().data(d)) { var i = !1, j = a.data(e), k = "next" == j ? "left" : "right", l = c.bind(this, a, k + " " + j, h); return a.addClass(j), f ? f(a, { addClass: k }).start().done(l) : b.addClass(a, k).then(function() { i || l(), h(); }), function() { i = !0; }; } h(); }, beforeRemoveClass: function(a, g, h) { if ("active" === g && a.parent() && a.parent().parent() && !a.parent().parent().data(d)) { var i = !1, j = a.data(e), k = "next" == j ? "left" : "right", l = c.bind(this, a, k, h); return f ? f(a, { addClass: k }).start().done(l) : b.addClass(a, k).then(function() { i || l(), h(); }), function() { i = !0; }; } h(); } }; } ]), angular.module("ui.bootstrap.carousel").value("$carouselSuppressWarning", !1).controller("CarouselController", [ "$scope", "$element", "$controller", "$log", "$carouselSuppressWarning", function(a, b, c, d, e) { e || d.warn("CarouselController is now deprecated. Use UibCarouselController instead."), angular.extend(this, c("UibCarouselController", { $scope: a, $element: b })); } ]).directive("carousel", [ "$log", "$carouselSuppressWarning", function(a, b) { return { transclude: !0, replace: !0, controller: "CarouselController", controllerAs: "carousel", require: "carousel", templateUrl: function(a, b) { return b.templateUrl || "template/carousel/carousel.html"; }, scope: { interval: "=", noTransition: "=", noPause: "=", noWrap: "&" }, link: function() { b || a.warn("carousel is now deprecated. Use uib-carousel instead."); } }; } ]).directive("slide", [ "$log", "$carouselSuppressWarning", function(a, b) { return { require: "^carousel", transclude: !0, replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/carousel/slide.html"; }, scope: { active: "=?", actual: "=?", index: "=?" }, link: function(c, d, e, f) { b || a.warn("slide is now deprecated. Use uib-slide instead."), f.addSlide(c, d), c.$on("$destroy", function() { f.removeSlide(c); }), c.$watch("active", function(a) { a && f.select(c); }); } }; } ]), angular.module("ui.bootstrap.dateparser", []).service("uibDateParser", [ "$log", "$locale", "orderByFilter", function(a, b, c) { function d(a) { var b = [], d = a.split(""); return angular.forEach(g, function(c, e) { var f = a.indexOf(e); if (f > -1) { a = a.split(""), d[f] = "(" + c.regex + ")", a[f] = "$"; for (var g = f + 1, h = f + e.length; g < h; g++) d[g] = "", a[g] = "$"; a = a.join(""), b.push({ index: f, apply: c.apply }); } }), { regex: new RegExp("^" + d.join("") + "$"), map: c(b, "index") }; } function e(a, b, c) { return !(c < 1) && (1 === b && c > 28 ? 29 === c && (a % 4 === 0 && a % 100 !== 0 || a % 400 === 0) : 3 !== b && 5 !== b && 8 !== b && 10 !== b || c < 31); } var f, g, h = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; this.init = function() { f = b.id, this.parsers = {}, g = { yyyy: { regex: "\\d{4}", apply: function(a) { this.year = +a; } }, yy: { regex: "\\d{2}", apply: function(a) { this.year = +a + 2e3; } }, y: { regex: "\\d{1,4}", apply: function(a) { this.year = +a; } }, MMMM: { regex: b.DATETIME_FORMATS.MONTH.join("|"), apply: function(a) { this.month = b.DATETIME_FORMATS.MONTH.indexOf(a); } }, MMM: { regex: b.DATETIME_FORMATS.SHORTMONTH.join("|"), apply: function(a) { this.month = b.DATETIME_FORMATS.SHORTMONTH.indexOf(a); } }, MM: { regex: "0[1-9]|1[0-2]", apply: function(a) { this.month = a - 1; } }, M: { regex: "[1-9]|1[0-2]", apply: function(a) { this.month = a - 1; } }, dd: { regex: "[0-2][0-9]{1}|3[0-1]{1}", apply: function(a) { this.date = +a; } }, d: { regex: "[1-2]?[0-9]{1}|3[0-1]{1}", apply: function(a) { this.date = +a; } }, EEEE: { regex: b.DATETIME_FORMATS.DAY.join("|") }, EEE: { regex: b.DATETIME_FORMATS.SHORTDAY.join("|") }, HH: { regex: "(?:0|1)[0-9]|2[0-3]", apply: function(a) { this.hours = +a; } }, hh: { regex: "0[0-9]|1[0-2]", apply: function(a) { this.hours = +a; } }, H: { regex: "1?[0-9]|2[0-3]", apply: function(a) { this.hours = +a; } }, h: { regex: "[0-9]|1[0-2]", apply: function(a) { this.hours = +a; } }, mm: { regex: "[0-5][0-9]", apply: function(a) { this.minutes = +a; } }, m: { regex: "[0-9]|[1-5][0-9]", apply: function(a) { this.minutes = +a; } }, sss: { regex: "[0-9][0-9][0-9]", apply: function(a) { this.milliseconds = +a; } }, ss: { regex: "[0-5][0-9]", apply: function(a) { this.seconds = +a; } }, s: { regex: "[0-9]|[1-5][0-9]", apply: function(a) { this.seconds = +a; } }, a: { regex: b.DATETIME_FORMATS.AMPMS.join("|"), apply: function(a) { 12 === this.hours && (this.hours = 0), "PM" === a && (this.hours += 12); } } }; }, this.init(), this.parse = function(c, g, i) { if (!angular.isString(c) || !g) return c; g = b.DATETIME_FORMATS[g] || g, g = g.replace(h, "\\$&"), b.id !== f && this.init(), this.parsers[g] || (this.parsers[g] = d(g)); var j = this.parsers[g], k = j.regex, l = j.map, m = c.match(k); if (m && m.length) { var n, o; angular.isDate(i) && !isNaN(i.getTime()) ? n = { year: i.getFullYear(), month: i.getMonth(), date: i.getDate(), hours: i.getHours(), minutes: i.getMinutes(), seconds: i.getSeconds(), milliseconds: i.getMilliseconds() } : (i && a.warn("dateparser:", "baseDate is not a valid date"), n = { year: 1900, month: 0, date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }); for (var p = 1, q = m.length; p < q; p++) { var r = l[p - 1]; r.apply && r.apply.call(n, m[p]); } return e(n.year, n.month, n.date) && (angular.isDate(i) && !isNaN(i.getTime()) ? (o = new Date(i), o.setFullYear(n.year, n.month, n.date, n.hours, n.minutes, n.seconds, n.milliseconds || 0)) : o = new Date(n.year, n.month, n.date, n.hours, n.minutes, n.seconds, n.milliseconds || 0)), o; } }; } ]), angular.module("ui.bootstrap.dateparser").value("$dateParserSuppressWarning", !1).service("dateParser", [ "$log", "$dateParserSuppressWarning", "uibDateParser", function(a, b, c) { b || a.warn("dateParser is now deprecated. Use uibDateParser instead."), angular.extend(this, c); } ]), angular.module("ui.bootstrap.position", []).factory("$uibPosition", [ "$document", "$window", function(a, b) { function c(a, c) { return a.currentStyle ? a.currentStyle[c] : b.getComputedStyle ? b.getComputedStyle(a)[c] : a.style[c]; } function d(a) { return "static" === (c(a, "position") || "static"); } var e = function(b) { for (var c = a[0], e = b.offsetParent || c; e && e !== c && d(e); ) e = e.offsetParent; return e || c; }; return { position: function(b) { var c = this.offset(b), d = { top: 0, left: 0 }, f = e(b[0]); f != a[0] && (d = this.offset(angular.element(f)), d.top += f.clientTop - f.scrollTop, d.left += f.clientLeft - f.scrollLeft); var g = b[0].getBoundingClientRect(); return { width: g.width || b.prop("offsetWidth"), height: g.height || b.prop("offsetHeight"), top: c.top - d.top, left: c.left - d.left }; }, offset: function(c) { var d = c[0].getBoundingClientRect(); return { width: d.width || c.prop("offsetWidth"), height: d.height || c.prop("offsetHeight"), top: d.top + (b.pageYOffset || a[0].documentElement.scrollTop), left: d.left + (b.pageXOffset || a[0].documentElement.scrollLeft) }; }, positionElements: function(a, b, c, d) { var e, f, g, h, i = c.split("-"), j = i[0], k = i[1] || "center"; e = d ? this.offset(a) : this.position(a), f = b.prop("offsetWidth"), g = b.prop("offsetHeight"); var l = { center: function() { return e.left + e.width / 2 - f / 2; }, left: function() { return e.left; }, right: function() { return e.left + e.width; } }, m = { center: function() { return e.top + e.height / 2 - g / 2; }, top: function() { return e.top; }, bottom: function() { return e.top + e.height; } }; switch (j) { case "right": h = { top: m[k](), left: l[j]() }; break; case "left": h = { top: m[k](), left: e.left - f }; break; case "bottom": h = { top: m[j](), left: l[k]() }; break; default: h = { top: e.top - g, left: l[k]() }; } return h; } }; } ]), angular.module("ui.bootstrap.position").value("$positionSuppressWarning", !1).service("$position", [ "$log", "$positionSuppressWarning", "$uibPosition", function(a, b, c) { b || a.warn("$position is now deprecated. Use $uibPosition instead."), angular.extend(this, c); } ]), angular.module("ui.bootstrap.datepicker", [ "ui.bootstrap.dateparser", "ui.bootstrap.position" ]).value("$datepickerSuppressError", !1).constant("uibDatepickerConfig", { formatDay: "dd", formatMonth: "MMMM", formatYear: "yyyy", formatDayHeader: "EEE", formatDayTitle: "MMMM yyyy", formatMonthTitle: "yyyy", datepickerMode: "day", minMode: "day", maxMode: "year", showWeeks: !0, startingDay: 0, yearRange: 20, minDate: null, maxDate: null, shortcutPropagation: !1 }).controller("UibDatepickerController", [ "$scope", "$attrs", "$parse", "$interpolate", "$log", "dateFilter", "uibDatepickerConfig", "$datepickerSuppressError", function(a, b, c, d, e, f, g, h) { var i = this, j = { $setViewValue: angular.noop }; this.modes = [ "day", "month", "year" ], angular.forEach([ "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "showWeeks", "startingDay", "yearRange", "shortcutPropagation" ], function(c, e) { i[c] = angular.isDefined(b[c]) ? e < 6 ? d(b[c])(a.$parent) : a.$parent.$eval(b[c]) : g[c]; }), angular.forEach([ "minDate", "maxDate" ], function(d) { b[d] ? a.$parent.$watch(c(b[d]), function(a) { i[d] = a ? new Date(a) : null, i.refreshView(); }) : i[d] = g[d] ? new Date(g[d]) : null; }), angular.forEach([ "minMode", "maxMode" ], function(d) { b[d] ? a.$parent.$watch(c(b[d]), function(c) { i[d] = angular.isDefined(c) ? c : b[d], a[d] = i[d], ("minMode" == d && i.modes.indexOf(a.datepickerMode) < i.modes.indexOf(i[d]) || "maxMode" == d && i.modes.indexOf(a.datepickerMode) > i.modes.indexOf(i[d])) && (a.datepickerMode = i[d]); }) : (i[d] = g[d] || null, a[d] = i[d]); }), a.datepickerMode = a.datepickerMode || g.datepickerMode, a.uniqueId = "datepicker-" + a.$id + "-" + Math.floor(1e4 * Math.random()), angular.isDefined(b.initDate) ? (this.activeDate = a.$parent.$eval(b.initDate) || new Date(), a.$parent.$watch(b.initDate, function(a) { a && (j.$isEmpty(j.$modelValue) || j.$invalid) && (i.activeDate = a, i.refreshView()); })) : this.activeDate = new Date(), a.isActive = function(b) { return 0 === i.compare(b.date, i.activeDate) && (a.activeDateId = b.uid, !0); }, this.init = function(a) { j = a, j.$render = function() { i.render(); }; }, this.render = function() { if (j.$viewValue) { var a = new Date(j.$viewValue), b = !isNaN(a); b ? this.activeDate = a : h || e.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'); } this.refreshView(); }, this.refreshView = function() { if (this.element) { this._refreshView(); var a = j.$viewValue ? new Date(j.$viewValue) : null; j.$setValidity("dateDisabled", !a || this.element && !this.isDisabled(a)); } }, this.createDateObject = function(a, b) { var c = j.$viewValue ? new Date(j.$viewValue) : null; return { date: a, label: f(a, b), selected: c && 0 === this.compare(a, c), disabled: this.isDisabled(a), current: 0 === this.compare(a, new Date()), customClass: this.customClass(a) }; }, this.isDisabled = function(c) { return this.minDate && this.compare(c, this.minDate) < 0 || this.maxDate && this.compare(c, this.maxDate) > 0 || b.dateDisabled && a.dateDisabled({ date: c, mode: a.datepickerMode }); }, this.customClass = function(b) { return a.customClass({ date: b, mode: a.datepickerMode }); }, this.split = function(a, b) { for (var c = []; a.length > 0; ) c.push(a.splice(0, b)); return c; }, a.select = function(b) { if (a.datepickerMode === i.minMode) { var c = j.$viewValue ? new Date(j.$viewValue) : new Date(0, 0, 0, 0, 0, 0, 0); c.setFullYear(b.getFullYear(), b.getMonth(), b.getDate()), j.$setViewValue(c), j.$render(); } else i.activeDate = b, a.datepickerMode = i.modes[i.modes.indexOf(a.datepickerMode) - 1]; }, a.move = function(a) { var b = i.activeDate.getFullYear() + a * (i.step.years || 0), c = i.activeDate.getMonth() + a * (i.step.months || 0); i.activeDate.setFullYear(b, c, 1), i.refreshView(); }, a.toggleMode = function(b) { b = b || 1, a.datepickerMode === i.maxMode && 1 === b || a.datepickerMode === i.minMode && b === -1 || (a.datepickerMode = i.modes[i.modes.indexOf(a.datepickerMode) + b]); }, a.keys = { 13: "enter", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down" }; var k = function() { i.element[0].focus(); }; a.$on("uib:datepicker.focus", k), a.keydown = function(b) { var c = a.keys[b.which]; if (c && !b.shiftKey && !b.altKey) if (b.preventDefault(), i.shortcutPropagation || b.stopPropagation(), "enter" === c || "space" === c) { if (i.isDisabled(i.activeDate)) return; a.select(i.activeDate); } else !b.ctrlKey || "up" !== c && "down" !== c ? (i.handleKeyDown(c, b), i.refreshView()) : a.toggleMode("up" === c ? 1 : -1); }; } ]).controller("UibDaypickerController", [ "$scope", "$element", "dateFilter", function(a, b, c) { function d(a, b) { return 1 !== b || a % 4 !== 0 || a % 100 === 0 && a % 400 !== 0 ? f[b] : 29; } function e(a) { var b = new Date(a); b.setDate(b.getDate() + 4 - (b.getDay() || 7)); var c = b.getTime(); return b.setMonth(0), b.setDate(1), Math.floor(Math.round((c - b) / 864e5) / 7) + 1; } var f = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; this.step = { months: 1 }, this.element = b, this.init = function(b) { angular.extend(b, this), a.showWeeks = b.showWeeks, b.refreshView(); }, this.getDates = function(a, b) { for (var c, d = new Array(b), e = new Date(a), f = 0; f < b; ) c = new Date(e), d[f++] = c, e.setDate(e.getDate() + 1); return d; }, this._refreshView = function() { var b = this.activeDate.getFullYear(), d = this.activeDate.getMonth(), f = new Date(this.activeDate); f.setFullYear(b, d, 1); var g = this.startingDay - f.getDay(), h = g > 0 ? 7 - g : -g, i = new Date(f); h > 0 && i.setDate(-h + 1); for (var j = this.getDates(i, 42), k = 0; k < 42; k++) j[k] = angular.extend(this.createDateObject(j[k], this.formatDay), { secondary: j[k].getMonth() !== d, uid: a.uniqueId + "-" + k }); a.labels = new Array(7); for (var l = 0; l < 7; l++) a.labels[l] = { abbr: c(j[l].date, this.formatDayHeader), full: c(j[l].date, "EEEE") }; if (a.title = c(this.activeDate, this.formatDayTitle), a.rows = this.split(j, 7), a.showWeeks) { a.weekNumbers = []; for (var m = (11 - this.startingDay) % 7, n = a.rows.length, o = 0; o < n; o++) a.weekNumbers.push(e(a.rows[o][m].date)); } }, this.compare = function(a, b) { return new Date(a.getFullYear(), a.getMonth(), a.getDate()) - new Date(b.getFullYear(), b.getMonth(), b.getDate()); }, this.handleKeyDown = function(a, b) { var c = this.activeDate.getDate(); if ("left" === a) c -= 1; else if ("up" === a) c -= 7; else if ("right" === a) c += 1; else if ("down" === a) c += 7; else if ("pageup" === a || "pagedown" === a) { var e = this.activeDate.getMonth() + ("pageup" === a ? -1 : 1); this.activeDate.setMonth(e, 1), c = Math.min(d(this.activeDate.getFullYear(), this.activeDate.getMonth()), c); } else "home" === a ? c = 1 : "end" === a && (c = d(this.activeDate.getFullYear(), this.activeDate.getMonth())); this.activeDate.setDate(c); }; } ]).controller("UibMonthpickerController", [ "$scope", "$element", "dateFilter", function(a, b, c) { this.step = { years: 1 }, this.element = b, this.init = function(a) { angular.extend(a, this), a.refreshView(); }, this._refreshView = function() { for (var b, d = new Array(12), e = this.activeDate.getFullYear(), f = 0; f < 12; f++) b = new Date(this.activeDate), b.setFullYear(e, f, 1), d[f] = angular.extend(this.createDateObject(b, this.formatMonth), { uid: a.uniqueId + "-" + f }); a.title = c(this.activeDate, this.formatMonthTitle), a.rows = this.split(d, 3); }, this.compare = function(a, b) { return new Date(a.getFullYear(), a.getMonth()) - new Date(b.getFullYear(), b.getMonth()); }, this.handleKeyDown = function(a, b) { var c = this.activeDate.getMonth(); if ("left" === a) c -= 1; else if ("up" === a) c -= 3; else if ("right" === a) c += 1; else if ("down" === a) c += 3; else if ("pageup" === a || "pagedown" === a) { var d = this.activeDate.getFullYear() + ("pageup" === a ? -1 : 1); this.activeDate.setFullYear(d); } else "home" === a ? c = 0 : "end" === a && (c = 11); this.activeDate.setMonth(c); }; } ]).controller("UibYearpickerController", [ "$scope", "$element", "dateFilter", function(a, b, c) { function d(a) { return parseInt((a - 1) / e, 10) * e + 1; } var e; this.element = b, this.yearpickerInit = function() { e = this.yearRange, this.step = { years: e }; }, this._refreshView = function() { for (var b, c = new Array(e), f = 0, g = d(this.activeDate.getFullYear()); f < e; f++) b = new Date(this.activeDate), b.setFullYear(g + f, 0, 1), c[f] = angular.extend(this.createDateObject(b, this.formatYear), { uid: a.uniqueId + "-" + f }); a.title = [ c[0].label, c[e - 1].label ].join(" - "), a.rows = this.split(c, 5); }, this.compare = function(a, b) { return a.getFullYear() - b.getFullYear(); }, this.handleKeyDown = function(a, b) { var c = this.activeDate.getFullYear(); "left" === a ? c -= 1 : "up" === a ? c -= 5 : "right" === a ? c += 1 : "down" === a ? c += 5 : "pageup" === a || "pagedown" === a ? c += ("pageup" === a ? -1 : 1) * this.step.years : "home" === a ? c = d(this.activeDate.getFullYear()) : "end" === a && (c = d(this.activeDate.getFullYear()) + e - 1), this.activeDate.setFullYear(c); }; } ]).directive("uibDatepicker", function() { return { replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/datepicker.html"; }, scope: { datepickerMode: "=?", dateDisabled: "&", customClass: "&", shortcutPropagation: "&?" }, require: [ "uibDatepicker", "^ngModel" ], controller: "UibDatepickerController", controllerAs: "datepicker", link: function(a, b, c, d) { var e = d[0], f = d[1]; e.init(f); } }; }).directive("uibDaypicker", function() { return { replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/day.html"; }, require: [ "^?uibDatepicker", "uibDaypicker", "^?datepicker" ], controller: "UibDaypickerController", link: function(a, b, c, d) { var e = d[0] || d[2], f = d[1]; f.init(e); } }; }).directive("uibMonthpicker", function() { return { replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/month.html"; }, require: [ "^?uibDatepicker", "uibMonthpicker", "^?datepicker" ], controller: "UibMonthpickerController", link: function(a, b, c, d) { var e = d[0] || d[2], f = d[1]; f.init(e); } }; }).directive("uibYearpicker", function() { return { replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/year.html"; }, require: [ "^?uibDatepicker", "uibYearpicker", "^?datepicker" ], controller: "UibYearpickerController", link: function(a, b, c, d) { var e = d[0] || d[2]; angular.extend(e, d[1]), e.yearpickerInit(), e.refreshView(); } }; }).constant("uibDatepickerPopupConfig", { datepickerPopup: "yyyy-MM-dd", datepickerPopupTemplateUrl: "template/datepicker/popup.html", datepickerTemplateUrl: "template/datepicker/datepicker.html", html5Types: { date: "yyyy-MM-dd", "datetime-local": "yyyy-MM-ddTHH:mm:ss.sss", month: "yyyy-MM" }, currentText: "Today", clearText: "Clear", closeText: "Done", closeOnDateSelection: !0, appendToBody: !1, showButtonBar: !0, onOpenFocus: !0 }).controller("UibDatepickerPopupController", [ "$scope", "$element", "$attrs", "$compile", "$parse", "$document", "$rootScope", "$uibPosition", "dateFilter", "uibDateParser", "uibDatepickerPopupConfig", "$timeout", function(a, b, c, d, e, f, g, h, i, j, k, l) { function m(a) { return a.replace(/([A-Z])/g, function(a) { return "-" + a.toLowerCase(); }); } function n(b) { angular.isNumber(b) && (b = new Date(b)); { if (!b) return null; if (angular.isDate(b) && !isNaN(b)) return b; if (angular.isString(b)) { var c = j.parse(b, r, a.date); return isNaN(c) ? void 0 : c; } } } function o(a, b) { var d = a || b; if (!c.ngRequired && !d) return !0; if (angular.isNumber(d) && (d = new Date(d)), d) { if (angular.isDate(d) && !isNaN(d)) return !0; if (angular.isString(d)) { var e = j.parse(d, r); return !isNaN(e); } return !1; } return !0; } function p(c) { var d = A[0], e = b[0].contains(c.target), f = void 0 !== d.contains && d.contains(c.target); !a.isOpen || e || f || a.$apply(function() { a.isOpen = !1; }); } function q(c) { 27 === c.which && a.isOpen ? (c.preventDefault(), c.stopPropagation(), a.$apply(function() { a.isOpen = !1; }), b[0].focus()) : 40 !== c.which || a.isOpen || (c.preventDefault(), c.stopPropagation(), a.$apply(function() { a.isOpen = !0; })); } var r, s, t, u, v, w, x, y, z, A, B = {}, C = !1; a.watchData = {}, this.init = function(h) { if (z = h, s = angular.isDefined(c.closeOnDateSelection) ? a.$parent.$eval(c.closeOnDateSelection) : k.closeOnDateSelection, t = angular.isDefined(c.datepickerAppendToBody) ? a.$parent.$eval(c.datepickerAppendToBody) : k.appendToBody, u = angular.isDefined(c.onOpenFocus) ? a.$parent.$eval(c.onOpenFocus) : k.onOpenFocus, v = angular.isDefined(c.datepickerPopupTemplateUrl) ? c.datepickerPopupTemplateUrl : k.datepickerPopupTemplateUrl, w = angular.isDefined(c.datepickerTemplateUrl) ? c.datepickerTemplateUrl : k.datepickerTemplateUrl, a.showButtonBar = angular.isDefined(c.showButtonBar) ? a.$parent.$eval(c.showButtonBar) : k.showButtonBar, k.html5Types[c.type] ? (r = k.html5Types[c.type], C = !0) : (r = c.datepickerPopup || c.uibDatepickerPopup || k.datepickerPopup, c.$observe("uibDatepickerPopup", function(a, b) { var c = a || k.datepickerPopup; if (c !== r && (r = c, z.$modelValue = null, !r)) throw new Error("uibDatepickerPopup must have a date format specified."); })), !r) throw new Error("uibDatepickerPopup must have a date format specified."); if (C && c.datepickerPopup) throw new Error("HTML5 date input types do not support custom formats."); if (x = angular.element("
    "), x.attr({ "ng-model": "date", "ng-change": "dateSelection(date)", "template-url": v }), y = angular.element(x.children()[0]), y.attr("template-url", w), C && "month" === c.type && (y.attr("datepicker-mode", '"month"'), y.attr("min-mode", "month")), c.datepickerOptions) { var l = a.$parent.$eval(c.datepickerOptions); l && l.initDate && (a.initDate = l.initDate, y.attr("init-date", "initDate"), delete l.initDate), angular.forEach(l, function(a, b) { y.attr(m(b), a); }); } angular.forEach([ "minMode", "maxMode", "minDate", "maxDate", "datepickerMode", "initDate", "shortcutPropagation" ], function(b) { if (c[b]) { var d = e(c[b]); if (a.$parent.$watch(d, function(c) { a.watchData[b] = c, "minDate" !== b && "maxDate" !== b || (B[b] = new Date(c)); }), y.attr(m(b), "watchData." + b), "datepickerMode" === b) { var f = d.assign; a.$watch("watchData." + b, function(b, c) { angular.isFunction(f) && b !== c && f(a.$parent, b); }); } } }), c.dateDisabled && y.attr("date-disabled", "dateDisabled({ date: date, mode: mode })"), c.showWeeks && y.attr("show-weeks", c.showWeeks), c.customClass && y.attr("custom-class", "customClass({ date: date, mode: mode })"), C ? z.$formatters.push(function(b) { return a.date = b, b; }) : (z.$$parserName = "date", z.$validators.date = o, z.$parsers.unshift(n), z.$formatters.push(function(b) { return a.date = b, z.$isEmpty(b) ? b : i(b, r); })), z.$viewChangeListeners.push(function() { a.date = j.parse(z.$viewValue, r, a.date); }), b.bind("keydown", q), A = d(x)(a), x.remove(), t ? f.find("body").append(A) : b.after(A), a.$on("$destroy", function() { a.isOpen === !0 && (g.$$phase || a.$apply(function() { a.isOpen = !1; })), A.remove(), b.unbind("keydown", q), f.unbind("click", p); }); }, a.getText = function(b) { return a[b + "Text"] || k[b + "Text"]; }, a.isDisabled = function(b) { return "today" === b && (b = new Date()), a.watchData.minDate && a.compare(b, B.minDate) < 0 || a.watchData.maxDate && a.compare(b, B.maxDate) > 0; }, a.compare = function(a, b) { return new Date(a.getFullYear(), a.getMonth(), a.getDate()) - new Date(b.getFullYear(), b.getMonth(), b.getDate()); }, a.dateSelection = function(c) { angular.isDefined(c) && (a.date = c); var d = a.date ? i(a.date, r) : null; b.val(d), z.$setViewValue(d), s && (a.isOpen = !1, b[0].focus()); }, a.keydown = function(c) { 27 === c.which && (a.isOpen = !1, b[0].focus()); }, a.select = function(b) { if ("today" === b) { var c = new Date(); angular.isDate(a.date) ? (b = new Date(a.date), b.setFullYear(c.getFullYear(), c.getMonth(), c.getDate())) : b = new Date(c.setHours(0, 0, 0, 0)); } a.dateSelection(b); }, a.close = function() { a.isOpen = !1, b[0].focus(); }, a.$watch("isOpen", function(c) { c ? (a.position = t ? h.offset(b) : h.position(b), a.position.top = a.position.top + b.prop("offsetHeight"), l(function() { u && a.$broadcast("uib:datepicker.focus"), f.bind("click", p); }, 0, !1)) : f.unbind("click", p); }); } ]).directive("uibDatepickerPopup", function() { return { require: [ "ngModel", "uibDatepickerPopup" ], controller: "UibDatepickerPopupController", scope: { isOpen: "=?", currentText: "@", clearText: "@", closeText: "@", dateDisabled: "&", customClass: "&" }, link: function(a, b, c, d) { var e = d[0], f = d[1]; f.init(e); } }; }).directive("uibDatepickerPopupWrap", function() { return { replace: !0, transclude: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/popup.html"; } }; }), angular.module("ui.bootstrap.datepicker").value("$datepickerSuppressWarning", !1).controller("DatepickerController", [ "$scope", "$attrs", "$parse", "$interpolate", "$log", "dateFilter", "uibDatepickerConfig", "$datepickerSuppressError", "$datepickerSuppressWarning", function(a, b, c, d, e, f, g, h, i) { i || e.warn("DatepickerController is now deprecated. Use UibDatepickerController instead."); var j = this, k = { $setViewValue: angular.noop }; this.modes = [ "day", "month", "year" ], angular.forEach([ "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "showWeeks", "startingDay", "yearRange", "shortcutPropagation" ], function(c, e) { j[c] = angular.isDefined(b[c]) ? e < 6 ? d(b[c])(a.$parent) : a.$parent.$eval(b[c]) : g[c]; }), angular.forEach([ "minDate", "maxDate" ], function(d) { b[d] ? a.$parent.$watch(c(b[d]), function(a) { j[d] = a ? new Date(a) : null, j.refreshView(); }) : j[d] = g[d] ? new Date(g[d]) : null; }), angular.forEach([ "minMode", "maxMode" ], function(d) { b[d] ? a.$parent.$watch(c(b[d]), function(c) { j[d] = angular.isDefined(c) ? c : b[d], a[d] = j[d], ("minMode" == d && j.modes.indexOf(a.datepickerMode) < j.modes.indexOf(j[d]) || "maxMode" == d && j.modes.indexOf(a.datepickerMode) > j.modes.indexOf(j[d])) && (a.datepickerMode = j[d]); }) : (j[d] = g[d] || null, a[d] = j[d]); }), a.datepickerMode = a.datepickerMode || g.datepickerMode, a.uniqueId = "datepicker-" + a.$id + "-" + Math.floor(1e4 * Math.random()), angular.isDefined(b.initDate) ? (this.activeDate = a.$parent.$eval(b.initDate) || new Date(), a.$parent.$watch(b.initDate, function(a) { a && (k.$isEmpty(k.$modelValue) || k.$invalid) && (j.activeDate = a, j.refreshView()); })) : this.activeDate = new Date(), a.isActive = function(b) { return 0 === j.compare(b.date, j.activeDate) && (a.activeDateId = b.uid, !0); }, this.init = function(a) { k = a, k.$render = function() { j.render(); }; }, this.render = function() { if (k.$viewValue) { var a = new Date(k.$viewValue), b = !isNaN(a); b ? this.activeDate = a : h || e.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.'); } this.refreshView(); }, this.refreshView = function() { if (this.element) { this._refreshView(); var a = k.$viewValue ? new Date(k.$viewValue) : null; k.$setValidity("dateDisabled", !a || this.element && !this.isDisabled(a)); } }, this.createDateObject = function(a, b) { var c = k.$viewValue ? new Date(k.$viewValue) : null; return { date: a, label: f(a, b), selected: c && 0 === this.compare(a, c), disabled: this.isDisabled(a), current: 0 === this.compare(a, new Date()), customClass: this.customClass(a) }; }, this.isDisabled = function(c) { return this.minDate && this.compare(c, this.minDate) < 0 || this.maxDate && this.compare(c, this.maxDate) > 0 || b.dateDisabled && a.dateDisabled({ date: c, mode: a.datepickerMode }); }, this.customClass = function(b) { return a.customClass({ date: b, mode: a.datepickerMode }); }, this.split = function(a, b) { for (var c = []; a.length > 0; ) c.push(a.splice(0, b)); return c; }, this.fixTimeZone = function(a) { var b = a.getHours(); a.setHours(23 === b ? b + 2 : 0); }, a.select = function(b) { if (a.datepickerMode === j.minMode) { var c = k.$viewValue ? new Date(k.$viewValue) : new Date(0, 0, 0, 0, 0, 0, 0); c.setFullYear(b.getFullYear(), b.getMonth(), b.getDate()), k.$setViewValue(c), k.$render(); } else j.activeDate = b, a.datepickerMode = j.modes[j.modes.indexOf(a.datepickerMode) - 1]; }, a.move = function(a) { var b = j.activeDate.getFullYear() + a * (j.step.years || 0), c = j.activeDate.getMonth() + a * (j.step.months || 0); j.activeDate.setFullYear(b, c, 1), j.refreshView(); }, a.toggleMode = function(b) { b = b || 1, a.datepickerMode === j.maxMode && 1 === b || a.datepickerMode === j.minMode && b === -1 || (a.datepickerMode = j.modes[j.modes.indexOf(a.datepickerMode) + b]); }, a.keys = { 13: "enter", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down" }; var l = function() { j.element[0].focus(); }; a.$on("uib:datepicker.focus", l), a.keydown = function(b) { var c = a.keys[b.which]; if (c && !b.shiftKey && !b.altKey) if (b.preventDefault(), j.shortcutPropagation || b.stopPropagation(), "enter" === c || "space" === c) { if (j.isDisabled(j.activeDate)) return; a.select(j.activeDate); } else !b.ctrlKey || "up" !== c && "down" !== c ? (j.handleKeyDown(c, b), j.refreshView()) : a.toggleMode("up" === c ? 1 : -1); }; } ]).directive("datepicker", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { replace: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/datepicker.html"; }, scope: { datepickerMode: "=?", dateDisabled: "&", customClass: "&", shortcutPropagation: "&?" }, require: [ "datepicker", "^ngModel" ], controller: "DatepickerController", controllerAs: "datepicker", link: function(c, d, e, f) { b || a.warn("datepicker is now deprecated. Use uib-datepicker instead."); var g = f[0], h = f[1]; g.init(h); } }; } ]).directive("daypicker", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { replace: !0, templateUrl: "template/datepicker/day.html", require: [ "^datepicker", "daypicker" ], controller: "UibDaypickerController", link: function(c, d, e, f) { b || a.warn("daypicker is now deprecated. Use uib-daypicker instead."); var g = f[0], h = f[1]; h.init(g); } }; } ]).directive("monthpicker", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { replace: !0, templateUrl: "template/datepicker/month.html", require: [ "^datepicker", "monthpicker" ], controller: "UibMonthpickerController", link: function(c, d, e, f) { b || a.warn("monthpicker is now deprecated. Use uib-monthpicker instead."); var g = f[0], h = f[1]; h.init(g); } }; } ]).directive("yearpicker", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { replace: !0, templateUrl: "template/datepicker/year.html", require: [ "^datepicker", "yearpicker" ], controller: "UibYearpickerController", link: function(c, d, e, f) { b || a.warn("yearpicker is now deprecated. Use uib-yearpicker instead."); var g = f[0]; angular.extend(g, f[1]), g.yearpickerInit(), g.refreshView(); } }; } ]).directive("datepickerPopup", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { require: [ "ngModel", "datepickerPopup" ], controller: "UibDatepickerPopupController", scope: { isOpen: "=?", currentText: "@", clearText: "@", closeText: "@", dateDisabled: "&", customClass: "&" }, link: function(c, d, e, f) { b || a.warn("datepicker-popup is now deprecated. Use uib-datepicker-popup instead."); var g = f[0], h = f[1]; h.init(g); } }; } ]).directive("datepickerPopupWrap", [ "$log", "$datepickerSuppressWarning", function(a, b) { return { replace: !0, transclude: !0, templateUrl: function(a, b) { return b.templateUrl || "template/datepicker/popup.html"; }, link: function() { b || a.warn("datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead."); } }; } ]), angular.module("ui.bootstrap.dropdown", [ "ui.bootstrap.position" ]).constant("uibDropdownConfig", { openClass: "open" }).service("uibDropdownService", [ "$document", "$rootScope", function(a, b) { var c = null; this.open = function(b) { c || (a.bind("click", d), a.bind("keydown", e)), c && c !== b && (c.isOpen = !1), c = b; }, this.close = function(b) { c === b && (c = null, a.unbind("click", d), a.unbind("keydown", e)); }; var d = function(a) { if (c && (!a || "disabled" !== c.getAutoClose())) { var d = c.getToggleElement(); if (!(a && d && d[0].contains(a.target))) { var e = c.getDropdownElement(); a && "outsideClick" === c.getAutoClose() && e && e[0].contains(a.target) || (c.isOpen = !1, b.$$phase || c.$apply()); } } }, e = function(a) { 27 === a.which ? (c.focusToggleElement(), d()) : c.isKeynavEnabled() && /(38|40)/.test(a.which) && c.isOpen && (a.preventDefault(), a.stopPropagation(), c.focusDropdownEntry(a.which)); }; } ]).controller("UibDropdownController", [ "$scope", "$element", "$attrs", "$parse", "uibDropdownConfig", "uibDropdownService", "$animate", "$uibPosition", "$document", "$compile", "$templateRequest", function(a, b, c, d, e, f, g, h, i, j, k) { var l, m, n = this, o = a.$new(), p = e.openClass, q = angular.noop, r = c.onToggle ? d(c.onToggle) : angular.noop, s = !1, t = !1; b.addClass("dropdown"), this.init = function() { c.isOpen && (m = d(c.isOpen), q = m.assign, a.$watch(m, function(a) { o.isOpen = !!a; })), s = angular.isDefined(c.dropdownAppendToBody), t = angular.isDefined(c.uibKeyboardNav), s && n.dropdownMenu && (i.find("body").append(n.dropdownMenu), b.on("$destroy", function() { n.dropdownMenu.remove(); })); }, this.toggle = function(a) { return o.isOpen = arguments.length ? !!a : !o.isOpen; }, this.isOpen = function() { return o.isOpen; }, o.getToggleElement = function() { return n.toggleElement; }, o.getAutoClose = function() { return c.autoClose || "always"; }, o.getElement = function() { return b; }, o.isKeynavEnabled = function() { return t; }, o.focusDropdownEntry = function(a) { var c = n.dropdownMenu ? angular.element(n.dropdownMenu).find("a") : angular.element(b).find("ul").eq(0).find("a"); switch (a) { case 40: angular.isNumber(n.selectedOption) ? n.selectedOption = n.selectedOption === c.length - 1 ? n.selectedOption : n.selectedOption + 1 : n.selectedOption = 0; break; case 38: angular.isNumber(n.selectedOption) ? n.selectedOption = 0 === n.selectedOption ? 0 : n.selectedOption - 1 : n.selectedOption = c.length - 1; } c[n.selectedOption].focus(); }, o.getDropdownElement = function() { return n.dropdownMenu; }, o.focusToggleElement = function() { n.toggleElement && n.toggleElement[0].focus(); }, o.$watch("isOpen", function(c, d) { if (s && n.dropdownMenu) { var e = h.positionElements(b, n.dropdownMenu, "bottom-left", !0), i = { top: e.top + "px", display: c ? "block" : "none" }, m = n.dropdownMenu.hasClass("dropdown-menu-right"); m ? (i.left = "auto", i.right = window.innerWidth - (e.left + b.prop("offsetWidth")) + "px") : (i.left = e.left + "px", i.right = "auto"), n.dropdownMenu.css(i); } if (g[c ? "addClass" : "removeClass"](b, p).then(function() { angular.isDefined(c) && c !== d && r(a, { open: !!c }); }), c) n.dropdownMenuTemplateUrl && k(n.dropdownMenuTemplateUrl).then(function(a) { l = o.$new(), j(a.trim())(l, function(a) { var b = a; n.dropdownMenu.replaceWith(b), n.dropdownMenu = b; }); }), o.focusToggleElement(), f.open(o); else { if (n.dropdownMenuTemplateUrl) { l && l.$destroy(); var t = angular.element(''); n.dropdownMenu.replaceWith(t), n.dropdownMenu = t; } f.close(o), n.selectedOption = null; } angular.isFunction(q) && q(a, c); }), a.$on("$locationChangeSuccess", function() { "disabled" !== o.getAutoClose() && (o.isOpen = !1); }); var u = a.$on("$destroy", function() { o.$destroy(); }); o.$on("$destroy", u); } ]).directive("uibDropdown", function() { return { controller: "UibDropdownController", link: function(a, b, c, d) { d.init(); } }; }).directive("uibDropdownMenu", function() { return { restrict: "AC", require: "?^uibDropdown", link: function(a, b, c, d) { if (d && !angular.isDefined(c.dropdownNested)) { b.addClass("dropdown-menu"); var e = c.templateUrl; e && (d.dropdownMenuTemplateUrl = e), d.dropdownMenu || (d.dropdownMenu = b); } } }; }).directive("uibKeyboardNav", function() { return { restrict: "A", require: "?^uibDropdown", link: function(a, b, c, d) { b.bind("keydown", function(a) { if ([ 38, 40 ].indexOf(a.which) !== -1) { a.preventDefault(), a.stopPropagation(); var b = d.dropdownMenu.find("a"); switch (a.which) { case 40: angular.isNumber(d.selectedOption) ? d.selectedOption = d.selectedOption === b.length - 1 ? d.selectedOption : d.selectedOption + 1 : d.selectedOption = 0; break; case 38: angular.isNumber(d.selectedOption) ? d.selectedOption = 0 === d.selectedOption ? 0 : d.selectedOption - 1 : d.selectedOption = b.length - 1; } b[d.selectedOption].focus(); } }); } }; }).directive("uibDropdownToggle", function() { return { require: "?^uibDropdown", link: function(a, b, c, d) { if (d) { b.addClass("dropdown-toggle"), d.toggleElement = b; var e = function(e) { e.preventDefault(), b.hasClass("disabled") || c.disabled || a.$apply(function() { d.toggle(); }); }; b.bind("click", e), b.attr({ "aria-haspopup": !0, "aria-expanded": !1 }), a.$watch(d.isOpen, function(a) { b.attr("aria-expanded", !!a); }), a.$on("$destroy", function() { b.unbind("click", e); }); } } }; }), angular.module("ui.bootstrap.dropdown").value("$dropdownSuppressWarning", !1).service("dropdownService", [ "$log", "$dropdownSuppressWarning", "uibDropdownService", function(a, b, c) { b || a.warn("dropdownService is now deprecated. Use uibDropdownService instead."), angular.extend(this, c); } ]).controller("DropdownController", [ "$scope", "$element", "$attrs", "$parse", "uibDropdownConfig", "uibDropdownService", "$animate", "$uibPosition", "$document", "$compile", "$templateRequest", "$log", "$dropdownSuppressWarning", function(a, b, c, d, e, f, g, h, i, j, k, l, m) { m || l.warn("DropdownController is now deprecated. Use UibDropdownController instead."); var n, o, p = this, q = a.$new(), r = e.openClass, s = angular.noop, t = c.onToggle ? d(c.onToggle) : angular.noop, u = !1, v = !1; b.addClass("dropdown"), this.init = function() { c.isOpen && (o = d(c.isOpen), s = o.assign, a.$watch(o, function(a) { q.isOpen = !!a; })), u = angular.isDefined(c.dropdownAppendToBody), v = angular.isDefined(c.uibKeyboardNav), u && p.dropdownMenu && (i.find("body").append(p.dropdownMenu), b.on("$destroy", function() { p.dropdownMenu.remove(); })); }, this.toggle = function(a) { return q.isOpen = arguments.length ? !!a : !q.isOpen; }, this.isOpen = function() { return q.isOpen; }, q.getToggleElement = function() { return p.toggleElement; }, q.getAutoClose = function() { return c.autoClose || "always"; }, q.getElement = function() { return b; }, q.isKeynavEnabled = function() { return v; }, q.focusDropdownEntry = function(a) { var c = p.dropdownMenu ? angular.element(p.dropdownMenu).find("a") : angular.element(b).find("ul").eq(0).find("a"); switch (a) { case 40: angular.isNumber(p.selectedOption) ? p.selectedOption = p.selectedOption === c.length - 1 ? p.selectedOption : p.selectedOption + 1 : p.selectedOption = 0; break; case 38: angular.isNumber(p.selectedOption) ? p.selectedOption = 0 === p.selectedOption ? 0 : p.selectedOption - 1 : p.selectedOption = c.length - 1; } c[p.selectedOption].focus(); }, q.getDropdownElement = function() { return p.dropdownMenu; }, q.focusToggleElement = function() { p.toggleElement && p.toggleElement[0].focus(); }, q.$watch("isOpen", function(c, d) { if (u && p.dropdownMenu) { var e = h.positionElements(b, p.dropdownMenu, "bottom-left", !0), i = { top: e.top + "px", display: c ? "block" : "none" }, l = p.dropdownMenu.hasClass("dropdown-menu-right"); l ? (i.left = "auto", i.right = window.innerWidth - (e.left + b.prop("offsetWidth")) + "px") : (i.left = e.left + "px", i.right = "auto"), p.dropdownMenu.css(i); } if (g[c ? "addClass" : "removeClass"](b, r).then(function() { angular.isDefined(c) && c !== d && t(a, { open: !!c }); }), c) p.dropdownMenuTemplateUrl && k(p.dropdownMenuTemplateUrl).then(function(a) { n = q.$new(), j(a.trim())(n, function(a) { var b = a; p.dropdownMenu.replaceWith(b), p.dropdownMenu = b; }); }), q.focusToggleElement(), f.open(q); else { if (p.dropdownMenuTemplateUrl) { n && n.$destroy(); var m = angular.element(''); p.dropdownMenu.replaceWith(m), p.dropdownMenu = m; } f.close(q), p.selectedOption = null; } angular.isFunction(s) && s(a, c); }), a.$on("$locationChangeSuccess", function() { "disabled" !== q.getAutoClose() && (q.isOpen = !1); }); var w = a.$on("$destroy", function() { q.$destroy(); }); q.$on("$destroy", w); } ]).directive("dropdown", [ "$log", "$dropdownSuppressWarning", function(a, b) { return { controller: "DropdownController", link: function(c, d, e, f) { b || a.warn("dropdown is now deprecated. Use uib-dropdown instead."), f.init(); } }; } ]).directive("dropdownMenu", [ "$log", "$dropdownSuppressWarning", function(a, b) { return { restrict: "AC", require: "?^dropdown", link: function(c, d, e, f) { if (f && !angular.isDefined(e.dropdownNested)) { b || a.warn("dropdown-menu is now deprecated. Use uib-dropdown-menu instead."), d.addClass("dropdown-menu"); var g = e.templateUrl; g && (f.dropdownMenuTemplateUrl = g), f.dropdownMenu || (f.dropdownMenu = d); } } }; } ]).directive("keyboardNav", [ "$log", "$dropdownSuppressWarning", function(a, b) { return { restrict: "A", require: "?^dropdown", link: function(c, d, e, f) { b || a.warn("keyboard-nav is now deprecated. Use uib-keyboard-nav instead."), d.bind("keydown", function(a) { if ([ 38, 40 ].indexOf(a.which) !== -1) { a.preventDefault(), a.stopPropagation(); var b = f.dropdownMenu.find("a"); switch (a.which) { case 40: angular.isNumber(f.selectedOption) ? f.selectedOption = f.selectedOption === b.length - 1 ? f.selectedOption : f.selectedOption + 1 : f.selectedOption = 0; break; case 38: angular.isNumber(f.selectedOption) ? f.selectedOption = 0 === f.selectedOption ? 0 : f.selectedOption - 1 : f.selectedOption = b.length - 1; } b[f.selectedOption].focus(); } }); } }; } ]).directive("dropdownToggle", [ "$log", "$dropdownSuppressWarning", function(a, b) { return { require: "?^dropdown", link: function(c, d, e, f) { if (b || a.warn("dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead."), f) { d.addClass("dropdown-toggle"), f.toggleElement = d; var g = function(a) { a.preventDefault(), d.hasClass("disabled") || e.disabled || c.$apply(function() { f.toggle(); }); }; d.bind("click", g), d.attr({ "aria-haspopup": !0, "aria-expanded": !1 }), c.$watch(f.isOpen, function(a) { d.attr("aria-expanded", !!a); }), c.$on("$destroy", function() { d.unbind("click", g); }); } } }; } ]), angular.module("ui.bootstrap.stackedMap", []).factory("$$stackedMap", function() { return { createNew: function() { var a = []; return { add: function(b, c) { a.push({ key: b, value: c }); }, get: function(b) { for (var c = 0; c < a.length; c++) if (b == a[c].key) return a[c]; }, keys: function() { for (var b = [], c = 0; c < a.length; c++) b.push(a[c].key); return b; }, top: function() { return a[a.length - 1]; }, remove: function(b) { for (var c = -1, d = 0; d < a.length; d++) if (b == a[d].key) { c = d; break; } return a.splice(c, 1)[0]; }, removeTop: function() { return a.splice(a.length - 1, 1)[0]; }, length: function() { return a.length; } }; } }; }), angular.module("ui.bootstrap.modal", [ "ui.bootstrap.stackedMap" ]).factory("$$multiMap", function() { return { createNew: function() { var a = {}; return { entries: function() { return Object.keys(a).map(function(b) { return { key: b, value: a[b] }; }); }, get: function(b) { return a[b]; }, hasKey: function(b) { return !!a[b]; }, keys: function() { return Object.keys(a); }, put: function(b, c) { a[b] || (a[b] = []), a[b].push(c); }, remove: function(b, c) { var d = a[b]; if (d) { var e = d.indexOf(c); e !== -1 && d.splice(e, 1), d.length || delete a[b]; } } }; } }; }).directive("uibModalBackdrop", [ "$animate", "$injector", "$uibModalStack", function(a, b, c) { function d(b, d, f) { d.addClass("modal-backdrop"), f.modalInClass && (e ? e(d, { addClass: f.modalInClass }).start() : a.addClass(d, f.modalInClass), b.$on(c.NOW_CLOSING_EVENT, function(b, c) { var g = c(); e ? e(d, { removeClass: f.modalInClass }).start().then(g) : a.removeClass(d, f.modalInClass).then(g); })); } var e = null; return b.has("$animateCss") && (e = b.get("$animateCss")), { replace: !0, templateUrl: "template/modal/backdrop.html", compile: function(a, b) { return a.addClass(b.backdropClass), d; } }; } ]).directive("uibModalWindow", [ "$uibModalStack", "$q", "$animate", "$injector", function(a, b, c, d) { var e = null; return d.has("$animateCss") && (e = d.get("$animateCss")), { scope: { index: "@" }, replace: !0, transclude: !0, templateUrl: function(a, b) { return b.templateUrl || "template/modal/window.html"; }, link: function(d, f, g) { f.addClass(g.windowClass || ""), f.addClass(g.windowTopClass || ""), d.size = g.size, d.close = function(b) { var c = a.getTop(); c && c.value.backdrop && "static" !== c.value.backdrop && b.target === b.currentTarget && (b.preventDefault(), b.stopPropagation(), a.dismiss(c.key, "backdrop click")); }, f.on("click", d.close), d.$isRendered = !0; var h = b.defer(); g.$observe("modalRender", function(a) { "true" == a && h.resolve(); }), h.promise.then(function() { var h = null; g.modalInClass && (h = e ? e(f, { addClass: g.modalInClass }).start() : c.addClass(f, g.modalInClass), d.$on(a.NOW_CLOSING_EVENT, function(a, b) { var d = b(); e ? e(f, { removeClass: g.modalInClass }).start().then(d) : c.removeClass(f, g.modalInClass).then(d); })), b.when(h).then(function() { var a = f[0].querySelector("[autofocus]"); a ? a.focus() : f[0].focus(); }); var i = a.getTop(); i && a.modalRendered(i.key); }); } }; } ]).directive("uibModalAnimationClass", function() { return { compile: function(a, b) { b.modalAnimation && a.addClass(b.uibModalAnimationClass); } }; }).directive("uibModalTransclude", function() { return { link: function(a, b, c, d, e) { e(a.$parent, function(a) { b.empty(), b.append(a); }); } }; }).factory("$uibModalStack", [ "$animate", "$timeout", "$document", "$compile", "$rootScope", "$q", "$injector", "$$multiMap", "$$stackedMap", function(a, b, c, d, e, f, g, h, i) { function j() { for (var a = -1, b = u.keys(), c = 0; c < b.length; c++) u.get(b[c]).value.backdrop && (a = c); return a; } function k(a, b) { var d = c.find("body").eq(0), e = u.get(a).value; u.remove(a), n(e.modalDomEl, e.modalScope, function() { var b = e.openedClass || t; v.remove(b, a), d.toggleClass(b, v.hasKey(b)), l(!0); }), m(), b && b.focus ? b.focus() : d.focus(); } function l(a) { var b; u.length() > 0 && (b = u.top().value, b.modalDomEl.toggleClass(b.windowTopClass || "", a)); } function m() { if (q && j() == -1) { var a = r; n(q, r, function() { a = null; }), q = void 0, r = void 0; } } function n(b, c, d) { function e() { e.done || (e.done = !0, p ? p(b, { event: "leave" }).start().then(function() { b.remove(); }) : a.leave(b), c.$destroy(), d && d()); } var g, h = null, i = function() { return g || (g = f.defer(), h = g.promise), function() { g.resolve(); }; }; return c.$broadcast(w.NOW_CLOSING_EVENT, i), f.when(h).then(e); } function o(a, b, c) { return !a.value.modalScope.$broadcast("modal.closing", b, c).defaultPrevented; } var p = null; g.has("$animateCss") && (p = g.get("$animateCss")); var q, r, s, t = "modal-open", u = i.createNew(), v = h.createNew(), w = { NOW_CLOSING_EVENT: "modal.stack.now-closing" }, x = 0, y = "a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]"; return e.$watch(j, function(a) { r && (r.index = a); }), c.bind("keydown", function(a) { if (a.isDefaultPrevented()) return a; var b = u.top(); if (b && b.value.keyboard) switch (a.which) { case 27: a.preventDefault(), e.$apply(function() { w.dismiss(b.key, "escape key press"); }); break; case 9: w.loadFocusElementList(b); var c = !1; a.shiftKey ? w.isFocusInFirstItem(a) && (c = w.focusLastFocusableElement()) : w.isFocusInLastItem(a) && (c = w.focusFirstFocusableElement()), c && (a.preventDefault(), a.stopPropagation()); } }), w.open = function(a, b) { var f = c[0].activeElement, g = b.openedClass || t; l(!1), u.add(a, { deferred: b.deferred, renderDeferred: b.renderDeferred, modalScope: b.scope, backdrop: b.backdrop, keyboard: b.keyboard, openedClass: b.openedClass, windowTopClass: b.windowTopClass }), v.put(g, a); var h = c.find("body").eq(0), i = j(); if (i >= 0 && !q) { r = e.$new(!0), r.index = i; var k = angular.element('
    '); k.attr("backdrop-class", b.backdropClass), b.animation && k.attr("modal-animation", "true"), q = d(k)(r), h.append(q); } var m = angular.element('
    '); m.attr({ "template-url": b.windowTemplateUrl, "window-class": b.windowClass, "window-top-class": b.windowTopClass, size: b.size, index: u.length() - 1, animate: "animate" }).html(b.content), b.animation && m.attr("modal-animation", "true"); var n = d(m)(b.scope); u.top().value.modalDomEl = n, u.top().value.modalOpener = f, h.append(n), h.addClass(g), w.clearFocusListCache(); }, w.close = function(a, b) { var c = u.get(a); return c && o(c, b, !0) ? (c.value.modalScope.$$uibDestructionScheduled = !0, c.value.deferred.resolve(b), k(a, c.value.modalOpener), !0) : !c; }, w.dismiss = function(a, b) { var c = u.get(a); return c && o(c, b, !1) ? (c.value.modalScope.$$uibDestructionScheduled = !0, c.value.deferred.reject(b), k(a, c.value.modalOpener), !0) : !c; }, w.dismissAll = function(a) { for (var b = this.getTop(); b && this.dismiss(b.key, a); ) b = this.getTop(); }, w.getTop = function() { return u.top(); }, w.modalRendered = function(a) { var b = u.get(a); b && b.value.renderDeferred.resolve(); }, w.focusFirstFocusableElement = function() { return s.length > 0 && (s[0].focus(), !0); }, w.focusLastFocusableElement = function() { return s.length > 0 && (s[s.length - 1].focus(), !0); }, w.isFocusInFirstItem = function(a) { return s.length > 0 && (a.target || a.srcElement) == s[0]; }, w.isFocusInLastItem = function(a) { return s.length > 0 && (a.target || a.srcElement) == s[s.length - 1]; }, w.clearFocusListCache = function() { s = [], x = 0; }, w.loadFocusElementList = function(a) { if ((void 0 === s || !s.length) && a) { var b = a.value.modalDomEl; b && b.length && (s = b[0].querySelectorAll(y)); } }, w; } ]).provider("$uibModal", function() { var a = { options: { animation: !0, backdrop: !0, keyboard: !0 }, $get: [ "$injector", "$rootScope", "$q", "$templateRequest", "$controller", "$uibModalStack", "$modalSuppressWarning", "$log", function(b, c, d, e, f, g, h, i) { function j(a) { return a.template ? d.when(a.template) : e(angular.isFunction(a.templateUrl) ? a.templateUrl() : a.templateUrl); } function k(a) { var c = []; return angular.forEach(a, function(a) { angular.isFunction(a) || angular.isArray(a) ? c.push(d.when(b.invoke(a))) : angular.isString(a) ? c.push(d.when(b.get(a))) : c.push(d.when(a)); }), c; } var l = {}, m = null; return l.getPromiseChain = function() { return m; }, l.open = function(b) { function e() { return r; } var l = d.defer(), n = d.defer(), o = d.defer(), p = { result: l.promise, opened: n.promise, rendered: o.promise, close: function(a) { return g.close(p, a); }, dismiss: function(a) { return g.dismiss(p, a); } }; if (b = angular.extend({}, a.options, b), b.resolve = b.resolve || {}, !b.template && !b.templateUrl) throw new Error("One of template or templateUrl options is required."); var q, r = d.all([ j(b) ].concat(k(b.resolve))); return q = m = d.all([ m ]).then(e, e).then(function(a) { var d = (b.scope || c).$new(); d.$close = p.close, d.$dismiss = p.dismiss, d.$on("$destroy", function() { d.$$uibDestructionScheduled || d.$dismiss("$uibUnscheduledDestruction"); }); var e, j = {}, k = 1; b.controller && (j.$scope = d, j.$uibModalInstance = p, Object.defineProperty(j, "$modalInstance", { get: function() { return h || i.warn("$modalInstance is now deprecated. Use $uibModalInstance instead."), p; } }), angular.forEach(b.resolve, function(b, c) { j[c] = a[k++]; }), e = f(b.controller, j), b.controllerAs && (b.bindToController && angular.extend(e, d), d[b.controllerAs] = e)), g.open(p, { scope: d, deferred: l, renderDeferred: o, content: a[0], animation: b.animation, backdrop: b.backdrop, keyboard: b.keyboard, backdropClass: b.backdropClass, windowTopClass: b.windowTopClass, windowClass: b.windowClass, windowTemplateUrl: b.windowTemplateUrl, size: b.size, openedClass: b.openedClass }), n.resolve(!0); }, function(a) { n.reject(a), l.reject(a); })["finally"](function() { m === q && (m = null); }), p; }, l; } ] }; return a; }), angular.module("ui.bootstrap.modal").value("$modalSuppressWarning", !1).directive("modalBackdrop", [ "$animate", "$injector", "$modalStack", "$log", "$modalSuppressWarning", function(a, b, c, d, e) { function f(b, f, h) { e || d.warn("modal-backdrop is now deprecated. Use uib-modal-backdrop instead."), f.addClass("modal-backdrop"), h.modalInClass && (g ? g(f, { addClass: h.modalInClass }).start() : a.addClass(f, h.modalInClass), b.$on(c.NOW_CLOSING_EVENT, function(b, c) { var d = c(); g ? g(f, { removeClass: h.modalInClass }).start().then(d) : a.removeClass(f, h.modalInClass).then(d); })); } var g = null; return b.has("$animateCss") && (g = b.get("$animateCss")), { replace: !0, templateUrl: "template/modal/backdrop.html", compile: function(a, b) { return a.addClass(b.backdropClass), f; } }; } ]).directive("modalWindow", [ "$modalStack", "$q", "$animate", "$injector", "$log", "$modalSuppressWarning", function(a, b, c, d, e, f) { var g = null; return d.has("$animateCss") && (g = d.get("$animateCss")), { scope: { index: "@" }, replace: !0, transclude: !0, templateUrl: function(a, b) { return b.templateUrl || "template/modal/window.html"; }, link: function(d, h, i) { f || e.warn("modal-window is now deprecated. Use uib-modal-window instead."), h.addClass(i.windowClass || ""), h.addClass(i.windowTopClass || ""), d.size = i.size, d.close = function(b) { var c = a.getTop(); c && c.value.backdrop && "static" !== c.value.backdrop && b.target === b.currentTarget && (b.preventDefault(), b.stopPropagation(), a.dismiss(c.key, "backdrop click")); }, h.on("click", d.close), d.$isRendered = !0; var j = b.defer(); i.$observe("modalRender", function(a) { "true" == a && j.resolve(); }), j.promise.then(function() { var e = null; i.modalInClass && (e = g ? g(h, { addClass: i.modalInClass }).start() : c.addClass(h, i.modalInClass), d.$on(a.NOW_CLOSING_EVENT, function(a, b) { var d = b(); g ? g(h, { removeClass: i.modalInClass }).start().then(d) : c.removeClass(h, i.modalInClass).then(d); })), b.when(e).then(function() { var a = h[0].querySelector("[autofocus]"); a ? a.focus() : h[0].focus(); }); var f = a.getTop(); f && a.modalRendered(f.key); }); } }; } ]).directive("modalAnimationClass", [ "$log", "$modalSuppressWarning", function(a, b) { return { compile: function(c, d) { b || a.warn("modal-animation-class is now deprecated. Use uib-modal-animation-class instead."), d.modalAnimation && c.addClass(d.modalAnimationClass); } }; } ]).directive("modalTransclude", [ "$log", "$modalSuppressWarning", function(a, b) { return { link: function(c, d, e, f, g) { b || a.warn("modal-transclude is now deprecated. Use uib-modal-transclude instead."), g(c.$parent, function(a) { d.empty(), d.append(a); }); } }; } ]).service("$modalStack", [ "$animate", "$timeout", "$document", "$compile", "$rootScope", "$q", "$injector", "$$multiMap", "$$stackedMap", "$uibModalStack", "$log", "$modalSuppressWarning", function(a, b, c, d, e, f, g, h, i, j, k, l) { l || k.warn("$modalStack is now deprecated. Use $uibModalStack instead."), angular.extend(this, j); } ]).provider("$modal", [ "$uibModalProvider", function(a) { angular.extend(this, a), this.$get = [ "$injector", "$log", "$modalSuppressWarning", function(b, c, d) { return d || c.warn("$modal is now deprecated. Use $uibModal instead."), b.invoke(a.$get); } ]; } ]), angular.module("ui.bootstrap.pagination", []).controller("UibPaginationController", [ "$scope", "$attrs", "$parse", function(a, b, c) { var d = this, e = { $setViewValue: angular.noop }, f = b.numPages ? c(b.numPages).assign : angular.noop; this.init = function(g, h) { e = g, this.config = h, e.$render = function() { d.render(); }, b.itemsPerPage ? a.$parent.$watch(c(b.itemsPerPage), function(b) { d.itemsPerPage = parseInt(b, 10), a.totalPages = d.calculateTotalPages(); }) : this.itemsPerPage = h.itemsPerPage, a.$watch("totalItems", function() { a.totalPages = d.calculateTotalPages(); }), a.$watch("totalPages", function(b) { f(a.$parent, b), a.page > b ? a.selectPage(b) : e.$render(); }); }, this.calculateTotalPages = function() { var b = this.itemsPerPage < 1 ? 1 : Math.ceil(a.totalItems / this.itemsPerPage); return Math.max(b || 0, 1); }, this.render = function() { a.page = parseInt(e.$viewValue, 10) || 1; }, a.selectPage = function(b, c) { c && c.preventDefault(); var d = !a.ngDisabled || !c; d && a.page !== b && b > 0 && b <= a.totalPages && (c && c.target && c.target.blur(), e.$setViewValue(b), e.$render()); }, a.getText = function(b) { return a[b + "Text"] || d.config[b + "Text"]; }, a.noPrevious = function() { return 1 === a.page; }, a.noNext = function() { return a.page === a.totalPages; }; } ]).constant("uibPaginationConfig", { itemsPerPage: 10, boundaryLinks: !1, directionLinks: !0, firstText: "First", previousText: "Previous", nextText: "Next", lastText: "Last", rotate: !0 }).directive("uibPagination", [ "$parse", "uibPaginationConfig", function(a, b) { return { restrict: "EA", scope: { totalItems: "=", firstText: "@", previousText: "@", nextText: "@", lastText: "@", ngDisabled: "=" }, require: [ "uibPagination", "?ngModel" ], controller: "UibPaginationController", controllerAs: "pagination", templateUrl: function(a, b) { return b.templateUrl || "template/pagination/pagination.html"; }, replace: !0, link: function(c, d, e, f) { function g(a, b, c) { return { number: a, text: b, active: c }; } function h(a, b) { var c = [], d = 1, e = b, f = angular.isDefined(k) && k < b; f && (l ? (d = Math.max(a - Math.floor(k / 2), 1), e = d + k - 1, e > b && (e = b, d = e - k + 1)) : (d = (Math.ceil(a / k) - 1) * k + 1, e = Math.min(d + k - 1, b))); for (var h = d; h <= e; h++) { var i = g(h, h, h === a); c.push(i); } if (f && !l) { if (d > 1) { var j = g(d - 1, "...", !1); c.unshift(j); } if (e < b) { var m = g(e + 1, "...", !1); c.push(m); } } return c; } var i = f[0], j = f[1]; if (j) { var k = angular.isDefined(e.maxSize) ? c.$parent.$eval(e.maxSize) : b.maxSize, l = angular.isDefined(e.rotate) ? c.$parent.$eval(e.rotate) : b.rotate; c.boundaryLinks = angular.isDefined(e.boundaryLinks) ? c.$parent.$eval(e.boundaryLinks) : b.boundaryLinks, c.directionLinks = angular.isDefined(e.directionLinks) ? c.$parent.$eval(e.directionLinks) : b.directionLinks, i.init(j, b), e.maxSize && c.$parent.$watch(a(e.maxSize), function(a) { k = parseInt(a, 10), i.render(); }); var m = i.render; i.render = function() { m(), c.page > 0 && c.page <= c.totalPages && (c.pages = h(c.page, c.totalPages)); }; } } }; } ]).constant("uibPagerConfig", { itemsPerPage: 10, previousText: "« Previous", nextText: "Next »", align: !0 }).directive("uibPager", [ "uibPagerConfig", function(a) { return { restrict: "EA", scope: { totalItems: "=", previousText: "@", nextText: "@", ngDisabled: "=" }, require: [ "uibPager", "?ngModel" ], controller: "UibPaginationController", controllerAs: "pagination", templateUrl: function(a, b) { return b.templateUrl || "template/pagination/pager.html"; }, replace: !0, link: function(b, c, d, e) { var f = e[0], g = e[1]; g && (b.align = angular.isDefined(d.align) ? b.$parent.$eval(d.align) : a.align, f.init(g, a)); } }; } ]), angular.module("ui.bootstrap.pagination").value("$paginationSuppressWarning", !1).controller("PaginationController", [ "$scope", "$attrs", "$parse", "$log", "$paginationSuppressWarning", function(a, b, c, d, e) { e || d.warn("PaginationController is now deprecated. Use UibPaginationController instead."); var f = this, g = { $setViewValue: angular.noop }, h = b.numPages ? c(b.numPages).assign : angular.noop; this.init = function(d, e) { g = d, this.config = e, g.$render = function() { f.render(); }, b.itemsPerPage ? a.$parent.$watch(c(b.itemsPerPage), function(b) { f.itemsPerPage = parseInt(b, 10), a.totalPages = f.calculateTotalPages(); }) : this.itemsPerPage = e.itemsPerPage, a.$watch("totalItems", function() { a.totalPages = f.calculateTotalPages(); }), a.$watch("totalPages", function(b) { h(a.$parent, b), a.page > b ? a.selectPage(b) : g.$render(); }); }, this.calculateTotalPages = function() { var b = this.itemsPerPage < 1 ? 1 : Math.ceil(a.totalItems / this.itemsPerPage); return Math.max(b || 0, 1); }, this.render = function() { a.page = parseInt(g.$viewValue, 10) || 1; }, a.selectPage = function(b, c) { c && c.preventDefault(); var d = !a.ngDisabled || !c; d && a.page !== b && b > 0 && b <= a.totalPages && (c && c.target && c.target.blur(), g.$setViewValue(b), g.$render()); }, a.getText = function(b) { return a[b + "Text"] || f.config[b + "Text"]; }, a.noPrevious = function() { return 1 === a.page; }, a.noNext = function() { return a.page === a.totalPages; }; } ]).directive("pagination", [ "$parse", "uibPaginationConfig", "$log", "$paginationSuppressWarning", function(a, b, c, d) { return { restrict: "EA", scope: { totalItems: "=", firstText: "@", previousText: "@", nextText: "@", lastText: "@", ngDisabled: "=" }, require: [ "pagination", "?ngModel" ], controller: "PaginationController", controllerAs: "pagination", templateUrl: function(a, b) { return b.templateUrl || "template/pagination/pagination.html"; }, replace: !0, link: function(e, f, g, h) { function i(a, b, c) { return { number: a, text: b, active: c }; } function j(a, b) { var c = [], d = 1, e = b, f = angular.isDefined(m) && m < b; f && (n ? (d = Math.max(a - Math.floor(m / 2), 1), e = d + m - 1, e > b && (e = b, d = e - m + 1)) : (d = (Math.ceil(a / m) - 1) * m + 1, e = Math.min(d + m - 1, b))); for (var g = d; g <= e; g++) { var h = i(g, g, g === a); c.push(h); } if (f && !n) { if (d > 1) { var j = i(d - 1, "...", !1); c.unshift(j); } if (e < b) { var k = i(e + 1, "...", !1); c.push(k); } } return c; } d || c.warn("pagination is now deprecated. Use uib-pagination instead."); var k = h[0], l = h[1]; if (l) { var m = angular.isDefined(g.maxSize) ? e.$parent.$eval(g.maxSize) : b.maxSize, n = angular.isDefined(g.rotate) ? e.$parent.$eval(g.rotate) : b.rotate; e.boundaryLinks = angular.isDefined(g.boundaryLinks) ? e.$parent.$eval(g.boundaryLinks) : b.boundaryLinks, e.directionLinks = angular.isDefined(g.directionLinks) ? e.$parent.$eval(g.directionLinks) : b.directionLinks, k.init(l, b), g.maxSize && e.$parent.$watch(a(g.maxSize), function(a) { m = parseInt(a, 10), k.render(); }); var o = k.render; k.render = function() { o(), e.page > 0 && e.page <= e.totalPages && (e.pages = j(e.page, e.totalPages)); }; } } }; } ]).directive("pager", [ "uibPagerConfig", "$log", "$paginationSuppressWarning", function(a, b, c) { return { restrict: "EA", scope: { totalItems: "=", previousText: "@", nextText: "@", ngDisabled: "=" }, require: [ "pager", "?ngModel" ], controller: "PaginationController", controllerAs: "pagination", templateUrl: function(a, b) { return b.templateUrl || "template/pagination/pager.html"; }, replace: !0, link: function(d, e, f, g) { c || b.warn("pager is now deprecated. Use uib-pager instead."); var h = g[0], i = g[1]; i && (d.align = angular.isDefined(f.align) ? d.$parent.$eval(f.align) : a.align, h.init(i, a)); } }; } ]), angular.module("ui.bootstrap.tooltip", [ "ui.bootstrap.position", "ui.bootstrap.stackedMap" ]).provider("$uibTooltip", function() { function a(a) { var b = /[A-Z]/g, c = "-"; return a.replace(b, function(a, b) { return (b ? c : "") + a.toLowerCase(); }); } var b = { placement: "top", animation: !0, popupDelay: 0, popupCloseDelay: 0, useContentExp: !1 }, c = { mouseenter: "mouseleave", click: "click", focus: "blur", none: "" }, d = {}; this.options = function(a) { angular.extend(d, a); }, this.setTriggers = function(a) { angular.extend(c, a); }, this.$get = [ "$window", "$compile", "$timeout", "$document", "$uibPosition", "$interpolate", "$rootScope", "$parse", "$$stackedMap", function(e, f, g, h, i, j, k, l, m) { var n = m.createNew(); return h.on("keypress", function(a) { if (27 === a.which) { var b = n.top(); b && (b.value.close(), n.removeTop(), b = null); } }), function(e, k, m, o) { function p(a) { var b = (a || o.trigger || m).split(" "), d = b.map(function(a) { return c[a] || a; }); return { show: b, hide: d }; } o = angular.extend({}, b, d, o); var q = a(e), r = j.startSymbol(), s = j.endSymbol(), t = "
    '; return { compile: function(a, b) { var c = f(t); return function(a, b, d, f) { function j() { L.isOpen ? q() : m(); } function m() { K && !a.$eval(d[k + "Enable"]) || (u(), x(), L.popupDelay ? F || (F = g(r, L.popupDelay, !1)) : r()); } function q() { s(), L.popupCloseDelay ? G || (G = g(t, L.popupCloseDelay, !1)) : t(); } function r() { return s(), u(), L.content ? (v(), void L.$evalAsync(function() { L.isOpen = !0, y(!0), Q(); })) : angular.noop; } function s() { F && (g.cancel(F), F = null), H && (g.cancel(H), H = null); } function t() { s(), u(), L && L.$evalAsync(function() { L.isOpen = !1, y(!1), L.animation ? E || (E = g(w, 150, !1)) : w(); }); } function u() { G && (g.cancel(G), G = null), E && (g.cancel(E), E = null); } function v() { C || (D = L.$new(), C = c(D, function(a) { I ? h.find("body").append(a) : b.after(a); }), z()); } function w() { A(), E = null, C && (C.remove(), C = null), D && (D.$destroy(), D = null); } function x() { L.title = d[k + "Title"], O ? L.content = O(a) : L.content = d[e], L.popupClass = d[k + "Class"], L.placement = angular.isDefined(d[k + "Placement"]) ? d[k + "Placement"] : o.placement; var b = parseInt(d[k + "PopupDelay"], 10), c = parseInt(d[k + "PopupCloseDelay"], 10); L.popupDelay = isNaN(b) ? o.popupDelay : b, L.popupCloseDelay = isNaN(c) ? o.popupCloseDelay : c; } function y(b) { N && angular.isFunction(N.assign) && N.assign(a, b); } function z() { P.length = 0, O ? (P.push(a.$watch(O, function(a) { L.content = a, !a && L.isOpen && t(); })), P.push(D.$watch(function() { M || (M = !0, D.$$postDigest(function() { M = !1, L && L.isOpen && Q(); })); }))) : P.push(d.$observe(e, function(a) { L.content = a, !a && L.isOpen ? t() : Q(); })), P.push(d.$observe(k + "Title", function(a) { L.title = a, L.isOpen && Q(); })), P.push(d.$observe(k + "Placement", function(a) { L.placement = a ? a : o.placement, L.isOpen && Q(); })); } function A() { P.length && (angular.forEach(P, function(a) { a(); }), P.length = 0); } function B() { var a = d[k + "Trigger"]; R(), J = p(a), "none" !== J.show && J.show.forEach(function(a, c) { a === J.hide[c] ? b[0].addEventListener(a, j) : a && (b[0].addEventListener(a, m), J.hide[c].split(" ").forEach(function(a) { b[0].addEventListener(a, q); })), b.on("keypress", function(a) { 27 === a.which && q(); }); }); } var C, D, E, F, G, H, I = !!angular.isDefined(o.appendToBody) && o.appendToBody, J = p(void 0), K = angular.isDefined(d[k + "Enable"]), L = a.$new(!0), M = !1, N = !!angular.isDefined(d[k + "IsOpen"]) && l(d[k + "IsOpen"]), O = !!o.useContentExp && l(d[e]), P = [], Q = function() { C && C.html() && (H || (H = g(function() { C.css({ top: 0, left: 0 }); var a = i.positionElements(b, C, L.placement, I); a.top += "px", a.left += "px", a.visibility = "visible", C.css(a), H = null; }, 0, !1))); }; L.origScope = a, L.isOpen = !1, n.add(L, { close: t }), L.contentExp = function() { return L.content; }, d.$observe("disabled", function(a) { a && s(), a && L.isOpen && t(); }), N && a.$watch(N, function(a) { L && !a === L.isOpen && j(); }); var R = function() { J.show.forEach(function(a) { b.unbind(a, m); }), J.hide.forEach(function(a) { a.split(" ").forEach(function(a) { b[0].removeEventListener(a, q); }); }); }; B(); var S = a.$eval(d[k + "Animation"]); L.animation = angular.isDefined(S) ? !!S : o.animation; var T = a.$eval(d[k + "AppendToBody"]); I = angular.isDefined(T) ? T : I, I && a.$on("$locationChangeSuccess", function() { L.isOpen && t(); }), a.$on("$destroy", function() { s(), u(), R(), w(), n.remove(L), L = null; }); }; } }; }; } ]; }).directive("uibTooltipTemplateTransclude", [ "$animate", "$sce", "$compile", "$templateRequest", function(a, b, c, d) { return { link: function(e, f, g) { var h, i, j, k = e.$eval(g.tooltipTemplateTranscludeScope), l = 0, m = function() { i && (i.remove(), i = null), h && (h.$destroy(), h = null), j && (a.leave(j).then(function() { i = null; }), i = j, j = null); }; e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude), function(b) { var g = ++l; b ? (d(b, !0).then(function(d) { if (g === l) { var e = k.$new(), i = d, n = c(i)(e, function(b) { m(), a.enter(b, f); }); h = e, j = n, h.$emit("$includeContentLoaded", b); } }, function() { g === l && (m(), e.$emit("$includeContentError", b)); }), e.$emit("$includeContentRequested", b)) : m(); }), e.$on("$destroy", m); } }; } ]).directive("uibTooltipClasses", function() { return { restrict: "A", link: function(a, b, c) { a.placement && b.addClass(a.placement), a.popupClass && b.addClass(a.popupClass), a.animation() && b.addClass(c.tooltipAnimationClass); } }; }).directive("uibTooltipPopup", function() { return { replace: !0, scope: { content: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/tooltip/tooltip-popup.html", link: function(a, b) { b.addClass("tooltip"); } }; }).directive("uibTooltip", [ "$uibTooltip", function(a) { return a("uibTooltip", "tooltip", "mouseenter"); } ]).directive("uibTooltipTemplatePopup", function() { return { replace: !0, scope: { contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&", originScope: "&" }, templateUrl: "template/tooltip/tooltip-template-popup.html", link: function(a, b) { b.addClass("tooltip"); } }; }).directive("uibTooltipTemplate", [ "$uibTooltip", function(a) { return a("uibTooltipTemplate", "tooltip", "mouseenter", { useContentExp: !0 }); } ]).directive("uibTooltipHtmlPopup", function() { return { replace: !0, scope: { contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/tooltip/tooltip-html-popup.html", link: function(a, b) { b.addClass("tooltip"); } }; }).directive("uibTooltipHtml", [ "$uibTooltip", function(a) { return a("uibTooltipHtml", "tooltip", "mouseenter", { useContentExp: !0 }); } ]), angular.module("ui.bootstrap.tooltip").value("$tooltipSuppressWarning", !1).provider("$tooltip", [ "$uibTooltipProvider", function(a) { angular.extend(this, a), this.$get = [ "$log", "$tooltipSuppressWarning", "$injector", function(b, c, d) { return c || b.warn("$tooltip is now deprecated. Use $uibTooltip instead."), d.invoke(a.$get); } ]; } ]).directive("tooltipTemplateTransclude", [ "$animate", "$sce", "$compile", "$templateRequest", "$log", "$tooltipSuppressWarning", function(a, b, c, d, e, f) { return { link: function(g, h, i) { f || e.warn("tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead."); var j, k, l, m = g.$eval(i.tooltipTemplateTranscludeScope), n = 0, o = function() { k && (k.remove(), k = null), j && (j.$destroy(), j = null), l && (a.leave(l).then(function() { k = null; }), k = l, l = null); }; g.$watch(b.parseAsResourceUrl(i.tooltipTemplateTransclude), function(b) { var e = ++n; b ? (d(b, !0).then(function(d) { if (e === n) { var f = m.$new(), g = d, i = c(g)(f, function(b) { o(), a.enter(b, h); }); j = f, l = i, j.$emit("$includeContentLoaded", b); } }, function() { e === n && (o(), g.$emit("$includeContentError", b)); }), g.$emit("$includeContentRequested", b)) : o(); }), g.$on("$destroy", o); } }; } ]).directive("tooltipClasses", [ "$log", "$tooltipSuppressWarning", function(a, b) { return { restrict: "A", link: function(c, d, e) { b || a.warn("tooltip-classes is now deprecated. Use uib-tooltip-classes instead."), c.placement && d.addClass(c.placement), c.popupClass && d.addClass(c.popupClass), c.animation() && d.addClass(e.tooltipAnimationClass); } }; } ]).directive("tooltipPopup", [ "$log", "$tooltipSuppressWarning", function(a, b) { return { replace: !0, scope: { content: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/tooltip/tooltip-popup.html", link: function(c, d) { b || a.warn("tooltip-popup is now deprecated. Use uib-tooltip-popup instead."), d.addClass("tooltip"); } }; } ]).directive("tooltip", [ "$tooltip", function(a) { return a("tooltip", "tooltip", "mouseenter"); } ]).directive("tooltipTemplatePopup", [ "$log", "$tooltipSuppressWarning", function(a, b) { return { replace: !0, scope: { contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&", originScope: "&" }, templateUrl: "template/tooltip/tooltip-template-popup.html", link: function(c, d) { b || a.warn("tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead."), d.addClass("tooltip"); } }; } ]).directive("tooltipTemplate", [ "$tooltip", function(a) { return a("tooltipTemplate", "tooltip", "mouseenter", { useContentExp: !0 }); } ]).directive("tooltipHtmlPopup", [ "$log", "$tooltipSuppressWarning", function(a, b) { return { replace: !0, scope: { contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/tooltip/tooltip-html-popup.html", link: function(c, d) { b || a.warn("tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead."), d.addClass("tooltip"); } }; } ]).directive("tooltipHtml", [ "$tooltip", function(a) { return a("tooltipHtml", "tooltip", "mouseenter", { useContentExp: !0 }); } ]), angular.module("ui.bootstrap.popover", [ "ui.bootstrap.tooltip" ]).directive("uibPopoverTemplatePopup", function() { return { replace: !0, scope: { title: "@", contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&", originScope: "&" }, templateUrl: "template/popover/popover-template.html", link: function(a, b) { b.addClass("popover"); } }; }).directive("uibPopoverTemplate", [ "$uibTooltip", function(a) { return a("uibPopoverTemplate", "popover", "click", { useContentExp: !0 }); } ]).directive("uibPopoverHtmlPopup", function() { return { replace: !0, scope: { contentExp: "&", title: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/popover/popover-html.html", link: function(a, b) { b.addClass("popover"); } }; }).directive("uibPopoverHtml", [ "$uibTooltip", function(a) { return a("uibPopoverHtml", "popover", "click", { useContentExp: !0 }); } ]).directive("uibPopoverPopup", function() { return { replace: !0, scope: { title: "@", content: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/popover/popover.html", link: function(a, b) { b.addClass("popover"); } }; }).directive("uibPopover", [ "$uibTooltip", function(a) { return a("uibPopover", "popover", "click"); } ]), angular.module("ui.bootstrap.popover").value("$popoverSuppressWarning", !1).directive("popoverTemplatePopup", [ "$log", "$popoverSuppressWarning", function(a, b) { return { replace: !0, scope: { title: "@", contentExp: "&", placement: "@", popupClass: "@", animation: "&", isOpen: "&", originScope: "&" }, templateUrl: "template/popover/popover-template.html", link: function(c, d) { b || a.warn("popover-template-popup is now deprecated. Use uib-popover-template-popup instead."), d.addClass("popover"); } }; } ]).directive("popoverTemplate", [ "$tooltip", function(a) { return a("popoverTemplate", "popover", "click", { useContentExp: !0 }); } ]).directive("popoverHtmlPopup", [ "$log", "$popoverSuppressWarning", function(a, b) { return { replace: !0, scope: { contentExp: "&", title: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/popover/popover-html.html", link: function(c, d) { b || a.warn("popover-html-popup is now deprecated. Use uib-popover-html-popup instead."), d.addClass("popover"); } }; } ]).directive("popoverHtml", [ "$tooltip", function(a) { return a("popoverHtml", "popover", "click", { useContentExp: !0 }); } ]).directive("popoverPopup", [ "$log", "$popoverSuppressWarning", function(a, b) { return { replace: !0, scope: { title: "@", content: "@", placement: "@", popupClass: "@", animation: "&", isOpen: "&" }, templateUrl: "template/popover/popover.html", link: function(c, d) { b || a.warn("popover-popup is now deprecated. Use uib-popover-popup instead."), d.addClass("popover"); } }; } ]).directive("popover", [ "$tooltip", function(a) { return a("popover", "popover", "click"); } ]), angular.module("ui.bootstrap.progressbar", []).constant("uibProgressConfig", { animate: !0, max: 100 }).controller("UibProgressController", [ "$scope", "$attrs", "uibProgressConfig", function(a, b, c) { var d = this, e = angular.isDefined(b.animate) ? a.$parent.$eval(b.animate) : c.animate; this.bars = [], a.max = angular.isDefined(a.max) ? a.max : c.max, this.addBar = function(b, c, f) { e || c.css({ transition: "none" }), this.bars.push(b), b.max = a.max, b.title = f && angular.isDefined(f.title) ? f.title : "progressbar", b.$watch("value", function(a) { b.recalculatePercentage(); }), b.recalculatePercentage = function() { var a = d.bars.reduce(function(a, b) { return b.percent = +(100 * b.value / b.max).toFixed(2), a + b.percent; }, 0); a > 100 && (b.percent -= a - 100); }, b.$on("$destroy", function() { c = null, d.removeBar(b); }); }, this.removeBar = function(a) { this.bars.splice(this.bars.indexOf(a), 1), this.bars.forEach(function(a) { a.recalculatePercentage(); }); }, a.$watch("max", function(b) { d.bars.forEach(function(b) { b.max = a.max, b.recalculatePercentage(); }); }); } ]).directive("uibProgress", function() { return { replace: !0, transclude: !0, controller: "UibProgressController", require: "uibProgress", scope: { max: "=?" }, templateUrl: "template/progressbar/progress.html" }; }).directive("uibBar", function() { return { replace: !0, transclude: !0, require: "^uibProgress", scope: { value: "=", type: "@" }, templateUrl: "template/progressbar/bar.html", link: function(a, b, c, d) { d.addBar(a, b, c); } }; }).directive("uibProgressbar", function() { return { replace: !0, transclude: !0, controller: "UibProgressController", scope: { value: "=", max: "=?", type: "@" }, templateUrl: "template/progressbar/progressbar.html", link: function(a, b, c, d) { d.addBar(a, angular.element(b.children()[0]), { title: c.title }); } }; }), angular.module("ui.bootstrap.progressbar").value("$progressSuppressWarning", !1).controller("ProgressController", [ "$scope", "$attrs", "uibProgressConfig", "$log", "$progressSuppressWarning", function(a, b, c, d, e) { e || d.warn("ProgressController is now deprecated. Use UibProgressController instead."); var f = this, g = angular.isDefined(b.animate) ? a.$parent.$eval(b.animate) : c.animate; this.bars = [], a.max = angular.isDefined(a.max) ? a.max : c.max, this.addBar = function(b, c, d) { g || c.css({ transition: "none" }), this.bars.push(b), b.max = a.max, b.title = d && angular.isDefined(d.title) ? d.title : "progressbar", b.$watch("value", function(a) { b.recalculatePercentage(); }), b.recalculatePercentage = function() { b.percent = +(100 * b.value / b.max).toFixed(2); var a = f.bars.reduce(function(a, b) { return a + b.percent; }, 0); a > 100 && (b.percent -= a - 100); }, b.$on("$destroy", function() { c = null, f.removeBar(b); }); }, this.removeBar = function(a) { this.bars.splice(this.bars.indexOf(a), 1); }, a.$watch("max", function(b) { f.bars.forEach(function(b) { b.max = a.max, b.recalculatePercentage(); }); }); } ]).directive("progress", [ "$log", "$progressSuppressWarning", function(a, b) { return { replace: !0, transclude: !0, controller: "ProgressController", require: "progress", scope: { max: "=?", title: "@?" }, templateUrl: "template/progressbar/progress.html", link: function() { b || a.warn("progress is now deprecated. Use uib-progress instead."); } }; } ]).directive("bar", [ "$log", "$progressSuppressWarning", function(a, b) { return { replace: !0, transclude: !0, require: "^progress", scope: { value: "=", type: "@" }, templateUrl: "template/progressbar/bar.html", link: function(c, d, e, f) { b || a.warn("bar is now deprecated. Use uib-bar instead."), f.addBar(c, d); } }; } ]).directive("progressbar", [ "$log", "$progressSuppressWarning", function(a, b) { return { replace: !0, transclude: !0, controller: "ProgressController", scope: { value: "=", max: "=?", type: "@" }, templateUrl: "template/progressbar/progressbar.html", link: function(c, d, e, f) { b || a.warn("progressbar is now deprecated. Use uib-progressbar instead."), f.addBar(c, angular.element(d.children()[0]), { title: e.title }); } }; } ]), angular.module("ui.bootstrap.rating", []).constant("uibRatingConfig", { max: 5, stateOn: null, stateOff: null, titles: [ "one", "two", "three", "four", "five" ] }).controller("UibRatingController", [ "$scope", "$attrs", "uibRatingConfig", function(a, b, c) { var d = { $setViewValue: angular.noop }; this.init = function(e) { d = e, d.$render = this.render, d.$formatters.push(function(a) { return angular.isNumber(a) && a << 0 !== a && (a = Math.round(a)), a; }), this.stateOn = angular.isDefined(b.stateOn) ? a.$parent.$eval(b.stateOn) : c.stateOn, this.stateOff = angular.isDefined(b.stateOff) ? a.$parent.$eval(b.stateOff) : c.stateOff; var f = angular.isDefined(b.titles) ? a.$parent.$eval(b.titles) : c.titles; this.titles = angular.isArray(f) && f.length > 0 ? f : c.titles; var g = angular.isDefined(b.ratingStates) ? a.$parent.$eval(b.ratingStates) : new Array(angular.isDefined(b.max) ? a.$parent.$eval(b.max) : c.max); a.range = this.buildTemplateObjects(g); }, this.buildTemplateObjects = function(a) { for (var b = 0, c = a.length; b < c; b++) a[b] = angular.extend({ index: b }, { stateOn: this.stateOn, stateOff: this.stateOff, title: this.getTitle(b) }, a[b]); return a; }, this.getTitle = function(a) { return a >= this.titles.length ? a + 1 : this.titles[a]; }, a.rate = function(b) { !a.readonly && b >= 0 && b <= a.range.length && (d.$setViewValue(d.$viewValue === b ? 0 : b), d.$render()); }, a.enter = function(b) { a.readonly || (a.value = b), a.onHover({ value: b }); }, a.reset = function() { a.value = d.$viewValue, a.onLeave(); }, a.onKeydown = function(b) { /(37|38|39|40)/.test(b.which) && (b.preventDefault(), b.stopPropagation(), a.rate(a.value + (38 === b.which || 39 === b.which ? 1 : -1))); }, this.render = function() { a.value = d.$viewValue; }; } ]).directive("uibRating", function() { return { require: [ "uibRating", "ngModel" ], scope: { readonly: "=?", onHover: "&", onLeave: "&" }, controller: "UibRatingController", templateUrl: "template/rating/rating.html", replace: !0, link: function(a, b, c, d) { var e = d[0], f = d[1]; e.init(f); } }; }), angular.module("ui.bootstrap.rating").value("$ratingSuppressWarning", !1).controller("RatingController", [ "$scope", "$attrs", "$controller", "$log", "$ratingSuppressWarning", function(a, b, c, d, e) { e || d.warn("RatingController is now deprecated. Use UibRatingController instead."), angular.extend(this, c("UibRatingController", { $scope: a, $attrs: b })); } ]).directive("rating", [ "$log", "$ratingSuppressWarning", function(a, b) { return { require: [ "rating", "ngModel" ], scope: { readonly: "=?", onHover: "&", onLeave: "&" }, controller: "RatingController", templateUrl: "template/rating/rating.html", replace: !0, link: function(c, d, e, f) { b || a.warn("rating is now deprecated. Use uib-rating instead."); var g = f[0], h = f[1]; g.init(h); } }; } ]), angular.module("ui.bootstrap.tabs", []).controller("UibTabsetController", [ "$scope", function(a) { var b = this, c = b.tabs = a.tabs = []; b.select = function(a) { angular.forEach(c, function(b) { b.active && b !== a && (b.active = !1, b.onDeselect(), a.selectCalled = !1); }), a.active = !0, a.selectCalled || (a.onSelect(), a.selectCalled = !0); }, b.addTab = function(a) { c.push(a), 1 === c.length && a.active !== !1 ? a.active = !0 : a.active ? b.select(a) : a.active = !1; }, b.removeTab = function(a) { var e = c.indexOf(a); if (a.active && c.length > 1 && !d) { var f = e == c.length - 1 ? e - 1 : e + 1; b.select(c[f]); } c.splice(e, 1); }; var d; a.$on("$destroy", function() { d = !0; }); } ]).directive("uibTabset", function() { return { restrict: "EA", transclude: !0, replace: !0, scope: { type: "@" }, controller: "UibTabsetController", templateUrl: "template/tabs/tabset.html", link: function(a, b, c) { a.vertical = !!angular.isDefined(c.vertical) && a.$parent.$eval(c.vertical), a.justified = !!angular.isDefined(c.justified) && a.$parent.$eval(c.justified); } }; }).directive("uibTab", [ "$parse", function(a) { return { require: "^uibTabset", restrict: "EA", replace: !0, templateUrl: "template/tabs/tab.html", transclude: !0, scope: { active: "=?", heading: "@", onSelect: "&select", onDeselect: "&deselect" }, controller: function() {}, link: function(b, c, d, e, f) { b.$watch("active", function(a) { a && e.select(b); }), b.disabled = !1, d.disable && b.$parent.$watch(a(d.disable), function(a) { b.disabled = !!a; }), b.select = function() { b.disabled || (b.active = !0); }, e.addTab(b), b.$on("$destroy", function() { e.removeTab(b); }), b.$transcludeFn = f; } }; } ]).directive("uibTabHeadingTransclude", function() { return { restrict: "A", require: [ "?^uibTab", "?^tab" ], link: function(a, b) { a.$watch("headingElement", function(a) { a && (b.html(""), b.append(a)); }); } }; }).directive("uibTabContentTransclude", function() { function a(a) { return a.tagName && (a.hasAttribute("tab-heading") || a.hasAttribute("data-tab-heading") || a.hasAttribute("x-tab-heading") || a.hasAttribute("uib-tab-heading") || a.hasAttribute("data-uib-tab-heading") || a.hasAttribute("x-uib-tab-heading") || "tab-heading" === a.tagName.toLowerCase() || "data-tab-heading" === a.tagName.toLowerCase() || "x-tab-heading" === a.tagName.toLowerCase() || "uib-tab-heading" === a.tagName.toLowerCase() || "data-uib-tab-heading" === a.tagName.toLowerCase() || "x-uib-tab-heading" === a.tagName.toLowerCase()); } return { restrict: "A", require: [ "?^uibTabset", "?^tabset" ], link: function(b, c, d) { var e = b.$eval(d.uibTabContentTransclude); e.$transcludeFn(e.$parent, function(b) { angular.forEach(b, function(b) { a(b) ? e.headingElement = b : c.append(b); }); }); } }; }), angular.module("ui.bootstrap.tabs").value("$tabsSuppressWarning", !1).controller("TabsetController", [ "$scope", "$controller", "$log", "$tabsSuppressWarning", function(a, b, c, d) { d || c.warn("TabsetController is now deprecated. Use UibTabsetController instead."), angular.extend(this, b("UibTabsetController", { $scope: a })); } ]).directive("tabset", [ "$log", "$tabsSuppressWarning", function(a, b) { return { restrict: "EA", transclude: !0, replace: !0, scope: { type: "@" }, controller: "TabsetController", templateUrl: "template/tabs/tabset.html", link: function(c, d, e) { b || a.warn("tabset is now deprecated. Use uib-tabset instead."), c.vertical = !!angular.isDefined(e.vertical) && c.$parent.$eval(e.vertical), c.justified = !!angular.isDefined(e.justified) && c.$parent.$eval(e.justified); } }; } ]).directive("tab", [ "$parse", "$log", "$tabsSuppressWarning", function(a, b, c) { return { require: "^tabset", restrict: "EA", replace: !0, templateUrl: "template/tabs/tab.html", transclude: !0, scope: { active: "=?", heading: "@", onSelect: "&select", onDeselect: "&deselect" }, controller: function() {}, link: function(d, e, f, g, h) { c || b.warn("tab is now deprecated. Use uib-tab instead."), d.$watch("active", function(a) { a && g.select(d); }), d.disabled = !1, f.disable && d.$parent.$watch(a(f.disable), function(a) { d.disabled = !!a; }), d.select = function() { d.disabled || (d.active = !0); }, g.addTab(d), d.$on("$destroy", function() { g.removeTab(d); }), d.$transcludeFn = h; } }; } ]).directive("tabHeadingTransclude", [ "$log", "$tabsSuppressWarning", function(a, b) { return { restrict: "A", require: "^tab", link: function(c, d) { b || a.warn("tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead."), c.$watch("headingElement", function(a) { a && (d.html(""), d.append(a)); }); } }; } ]).directive("tabContentTransclude", [ "$log", "$tabsSuppressWarning", function(a, b) { function c(a) { return a.tagName && (a.hasAttribute("tab-heading") || a.hasAttribute("data-tab-heading") || a.hasAttribute("x-tab-heading") || "tab-heading" === a.tagName.toLowerCase() || "data-tab-heading" === a.tagName.toLowerCase() || "x-tab-heading" === a.tagName.toLowerCase()); } return { restrict: "A", require: "^tabset", link: function(d, e, f) { b || a.warn("tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead."); var g = d.$eval(f.tabContentTransclude); g.$transcludeFn(g.$parent, function(a) { angular.forEach(a, function(a) { c(a) ? g.headingElement = a : e.append(a); }); }); } }; } ]), angular.module("ui.bootstrap.timepicker", []).constant("uibTimepickerConfig", { hourStep: 1, minuteStep: 1, showMeridian: !0, meridians: null, readonlyInput: !1, mousewheel: !0, arrowkeys: !0, showSpinners: !0 }).controller("UibTimepickerController", [ "$scope", "$element", "$attrs", "$parse", "$log", "$locale", "uibTimepickerConfig", function(a, b, c, d, e, f, g) { function h() { var b = parseInt(a.hours, 10), c = a.showMeridian ? b > 0 && b < 13 : b >= 0 && b < 24; if (c) return a.showMeridian && (12 === b && (b = 0), a.meridian === r[1] && (b += 12)), b; } function i() { var b = parseInt(a.minutes, 10); return b >= 0 && b < 60 ? b : void 0; } function j(a) { return angular.isDefined(a) && a.toString().length < 2 ? "0" + a : a.toString(); } function k(a) { l(), q.$setViewValue(new Date(p)), m(a); } function l() { q.$setValidity("time", !0), a.invalidHours = !1, a.invalidMinutes = !1; } function m(b) { var c = p.getHours(), d = p.getMinutes(); a.showMeridian && (c = 0 === c || 12 === c ? 12 : c % 12), a.hours = "h" === b ? c : j(c), "m" !== b && (a.minutes = j(d)), a.meridian = p.getHours() < 12 ? r[0] : r[1]; } function n(a, b) { var c = new Date(a.getTime() + 6e4 * b), d = new Date(a); return d.setHours(c.getHours(), c.getMinutes()), d; } function o(a) { p = n(p, a), k(); } var p = new Date(), q = { $setViewValue: angular.noop }, r = angular.isDefined(c.meridians) ? a.$parent.$eval(c.meridians) : g.meridians || f.DATETIME_FORMATS.AMPMS; a.tabindex = angular.isDefined(c.tabindex) ? c.tabindex : 0, b.removeAttr("tabindex"), this.init = function(b, d) { q = b, q.$render = this.render, q.$formatters.unshift(function(a) { return a ? new Date(a) : null; }); var e = d.eq(0), f = d.eq(1), h = angular.isDefined(c.mousewheel) ? a.$parent.$eval(c.mousewheel) : g.mousewheel; h && this.setupMousewheelEvents(e, f); var i = angular.isDefined(c.arrowkeys) ? a.$parent.$eval(c.arrowkeys) : g.arrowkeys; i && this.setupArrowkeyEvents(e, f), a.readonlyInput = angular.isDefined(c.readonlyInput) ? a.$parent.$eval(c.readonlyInput) : g.readonlyInput, this.setupInputEvents(e, f); }; var s = g.hourStep; c.hourStep && a.$parent.$watch(d(c.hourStep), function(a) { s = parseInt(a, 10); }); var t = g.minuteStep; c.minuteStep && a.$parent.$watch(d(c.minuteStep), function(a) { t = parseInt(a, 10); }); var u; a.$parent.$watch(d(c.min), function(a) { var b = new Date(a); u = isNaN(b) ? void 0 : b; }); var v; a.$parent.$watch(d(c.max), function(a) { var b = new Date(a); v = isNaN(b) ? void 0 : b; }), a.noIncrementHours = function() { var a = n(p, 60 * s); return a > v || a < p && a < u; }, a.noDecrementHours = function() { var a = n(p, 60 * -s); return a < u || a > p && a > v; }, a.noIncrementMinutes = function() { var a = n(p, t); return a > v || a < p && a < u; }, a.noDecrementMinutes = function() { var a = n(p, -t); return a < u || a > p && a > v; }, a.noToggleMeridian = function() { return p.getHours() < 13 ? n(p, 720) > v : n(p, -720) < u; }, a.showMeridian = g.showMeridian, c.showMeridian && a.$parent.$watch(d(c.showMeridian), function(b) { if (a.showMeridian = !!b, q.$error.time) { var c = h(), d = i(); angular.isDefined(c) && angular.isDefined(d) && (p.setHours(c), k()); } else m(); }), this.setupMousewheelEvents = function(b, c) { var d = function(a) { a.originalEvent && (a = a.originalEvent); var b = a.wheelDelta ? a.wheelDelta : -a.deltaY; return a.detail || b > 0; }; b.bind("mousewheel wheel", function(b) { a.$apply(d(b) ? a.incrementHours() : a.decrementHours()), b.preventDefault(); }), c.bind("mousewheel wheel", function(b) { a.$apply(d(b) ? a.incrementMinutes() : a.decrementMinutes()), b.preventDefault(); }); }, this.setupArrowkeyEvents = function(b, c) { b.bind("keydown", function(b) { 38 === b.which ? (b.preventDefault(), a.incrementHours(), a.$apply()) : 40 === b.which && (b.preventDefault(), a.decrementHours(), a.$apply()); }), c.bind("keydown", function(b) { 38 === b.which ? (b.preventDefault(), a.incrementMinutes(), a.$apply()) : 40 === b.which && (b.preventDefault(), a.decrementMinutes(), a.$apply()); }); }, this.setupInputEvents = function(b, c) { if (a.readonlyInput) return a.updateHours = angular.noop, void (a.updateMinutes = angular.noop); var d = function(b, c) { q.$setViewValue(null), q.$setValidity("time", !1), angular.isDefined(b) && (a.invalidHours = b), angular.isDefined(c) && (a.invalidMinutes = c); }; a.updateHours = function() { var a = h(), b = i(); angular.isDefined(a) && angular.isDefined(b) ? (p.setHours(a), p < u || p > v ? d(!0) : k("h")) : d(!0); }, b.bind("blur", function(b) { !a.invalidHours && a.hours < 10 && a.$apply(function() { a.hours = j(a.hours); }); }), a.updateMinutes = function() { var a = i(), b = h(); angular.isDefined(a) && angular.isDefined(b) ? (p.setMinutes(a), p < u || p > v ? d(void 0, !0) : k("m")) : d(void 0, !0); }, c.bind("blur", function(b) { !a.invalidMinutes && a.minutes < 10 && a.$apply(function() { a.minutes = j(a.minutes); }); }); }, this.render = function() { var b = q.$viewValue; isNaN(b) ? (q.$setValidity("time", !1), e.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')) : (b && (p = b), p < u || p > v ? (q.$setValidity("time", !1), a.invalidHours = !0, a.invalidMinutes = !0) : l(), m()); }, a.showSpinners = angular.isDefined(c.showSpinners) ? a.$parent.$eval(c.showSpinners) : g.showSpinners, a.incrementHours = function() { a.noIncrementHours() || o(60 * s); }, a.decrementHours = function() { a.noDecrementHours() || o(60 * -s); }, a.incrementMinutes = function() { a.noIncrementMinutes() || o(t); }, a.decrementMinutes = function() { a.noDecrementMinutes() || o(-t); }, a.toggleMeridian = function() { a.noToggleMeridian() || o(720 * (p.getHours() < 12 ? 1 : -1)); }; } ]).directive("uibTimepicker", function() { return { restrict: "EA", require: [ "uibTimepicker", "?^ngModel" ], controller: "UibTimepickerController", controllerAs: "timepicker", replace: !0, scope: {}, templateUrl: function(a, b) { return b.templateUrl || "template/timepicker/timepicker.html"; }, link: function(a, b, c, d) { var e = d[0], f = d[1]; f && e.init(f, b.find("input")); } }; }), angular.module("ui.bootstrap.timepicker").value("$timepickerSuppressWarning", !1).controller("TimepickerController", [ "$scope", "$element", "$attrs", "$controller", "$log", "$timepickerSuppressWarning", function(a, b, c, d, e, f) { f || e.warn("TimepickerController is now deprecated. Use UibTimepickerController instead."), angular.extend(this, d("UibTimepickerController", { $scope: a, $element: b, $attrs: c })); } ]).directive("timepicker", [ "$log", "$timepickerSuppressWarning", function(a, b) { return { restrict: "EA", require: [ "timepicker", "?^ngModel" ], controller: "TimepickerController", controllerAs: "timepicker", replace: !0, scope: {}, templateUrl: function(a, b) { return b.templateUrl || "template/timepicker/timepicker.html"; }, link: function(c, d, e, f) { b || a.warn("timepicker is now deprecated. Use uib-timepicker instead."); var g = f[0], h = f[1]; h && g.init(h, d.find("input")); } }; } ]), angular.module("ui.bootstrap.typeahead", [ "ui.bootstrap.position" ]).factory("uibTypeaheadParser", [ "$parse", function(a) { var b = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/; return { parse: function(c) { var d = c.match(b); if (!d) throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "' + c + '".'); return { itemName: d[3], source: a(d[4]), viewMapper: a(d[2] || d[1]), modelMapper: a(d[1]) }; } }; } ]).controller("UibTypeaheadController", [ "$scope", "$element", "$attrs", "$compile", "$parse", "$q", "$timeout", "$document", "$window", "$rootScope", "$uibPosition", "uibTypeaheadParser", function(a, b, c, d, e, f, g, h, i, j, k, l) { function m() { K.moveInProgress || (K.moveInProgress = !0, K.$digest()), S && g.cancel(S), S = g(function() { K.matches.length && n(), K.moveInProgress = !1; }, r); } function n() { K.position = C ? k.offset(b) : k.position(b), K.position.top += b.prop("offsetHeight"); } var o, p, q = [ 9, 13, 27, 38, 40 ], r = 200, s = a.$eval(c.typeaheadMinLength); s || 0 === s || (s = 1); var t, u, v = a.$eval(c.typeaheadWaitMs) || 0, w = a.$eval(c.typeaheadEditable) !== !1, x = e(c.typeaheadLoading).assign || angular.noop, y = e(c.typeaheadOnSelect), z = !!angular.isDefined(c.typeaheadSelectOnBlur) && a.$eval(c.typeaheadSelectOnBlur), A = e(c.typeaheadNoResults).assign || angular.noop, B = c.typeaheadInputFormatter ? e(c.typeaheadInputFormatter) : void 0, C = !!c.typeaheadAppendToBody && a.$eval(c.typeaheadAppendToBody), D = c.typeaheadAppendToElementId || !1, E = a.$eval(c.typeaheadFocusFirst) !== !1, F = !!c.typeaheadSelectOnExact && a.$eval(c.typeaheadSelectOnExact), G = e(c.ngModel), H = e(c.ngModel + "($$$p)"), I = function(b, c) { return angular.isFunction(G(a)) && p && p.$options && p.$options.getterSetter ? H(b, { $$$p: c }) : G.assign(b, c); }, J = l.parse(c.uibTypeahead), K = a.$new(), L = a.$on("$destroy", function() { K.$destroy(); }); K.$on("$destroy", L); var M = "typeahead-" + K.$id + "-" + Math.floor(1e4 * Math.random()); b.attr({ "aria-autocomplete": "list", "aria-expanded": !1, "aria-owns": M }); var N = angular.element("
    "); N.attr({ id: M, matches: "matches", active: "activeIdx", select: "select(activeIdx)", "move-in-progress": "moveInProgress", query: "query", position: "position" }), angular.isDefined(c.typeaheadTemplateUrl) && N.attr("template-url", c.typeaheadTemplateUrl), angular.isDefined(c.typeaheadPopupTemplateUrl) && N.attr("popup-template-url", c.typeaheadPopupTemplateUrl); var O = function() { K.matches = [], K.activeIdx = -1, b.attr("aria-expanded", !1); }, P = function(a) { return M + "-option-" + a; }; K.$watch("activeIdx", function(a) { a < 0 ? b.removeAttr("aria-activedescendant") : b.attr("aria-activedescendant", P(a)); }); var Q = function(a, b) { return !!(K.matches.length > b && a) && a.toUpperCase() === K.matches[b].label.toUpperCase(); }, R = function(c) { var d = { $viewValue: c }; x(a, !0), A(a, !1), f.when(J.source(a, d)).then(function(e) { var f = c === o.$viewValue; if (f && t) if (e && e.length > 0) { K.activeIdx = E ? 0 : -1, A(a, !1), K.matches.length = 0; for (var g = 0; g < e.length; g++) d[J.itemName] = e[g], K.matches.push({ id: P(g), label: J.viewMapper(K, d), model: e[g] }); K.query = c, n(), b.attr("aria-expanded", !0), F && 1 === K.matches.length && Q(c, 0) && K.select(0); } else O(), A(a, !0); f && x(a, !1); }, function() { O(), x(a, !1), A(a, !0); }); }; C && (angular.element(i).bind("resize", m), h.find("body").bind("scroll", m)); var S; K.moveInProgress = !1, K.query = void 0; var T, U = function(a) { T = g(function() { R(a); }, v); }, V = function() { T && g.cancel(T); }; O(), K.select = function(d) { var e, f, h = {}; u = !0, h[J.itemName] = f = K.matches[d].model, e = J.modelMapper(a, h), I(a, e), o.$setValidity("editable", !0), o.$setValidity("parse", !0), y(a, { $item: f, $model: e, $label: J.viewMapper(a, h) }), O(), K.$eval(c.typeaheadFocusOnSelect) !== !1 && g(function() { b[0].focus(); }, 0, !1); }, b.bind("keydown", function(a) { if (0 !== K.matches.length && q.indexOf(a.which) !== -1) { if (K.activeIdx === -1 && (9 === a.which || 13 === a.which)) return O(), void K.$digest(); a.preventDefault(), 40 === a.which ? (K.activeIdx = (K.activeIdx + 1) % K.matches.length, K.$digest()) : 38 === a.which ? (K.activeIdx = (K.activeIdx > 0 ? K.activeIdx : K.matches.length) - 1, K.$digest()) : 13 === a.which || 9 === a.which ? K.$apply(function() { K.select(K.activeIdx); }) : 27 === a.which && (a.stopPropagation(), O(), K.$digest()); } }), b.bind("blur", function() { z && K.matches.length && K.activeIdx !== -1 && !u && (u = !0, K.$apply(function() { K.select(K.activeIdx); })), t = !1, u = !1; }); var W = function(a) { b[0] !== a.target && 3 !== a.which && 0 !== K.matches.length && (O(), j.$$phase || K.$digest()); }; h.bind("click", W), a.$on("$destroy", function() { h.unbind("click", W), (C || D) && X.remove(), C && (angular.element(i).unbind("resize", m), h.find("body").unbind("scroll", m)), N.remove(); }); var X = d(N)(K); C ? h.find("body").append(X) : D !== !1 ? angular.element(h[0].getElementById(D)).append(X) : b.after(X), this.init = function(b, c) { o = b, p = c, o.$parsers.unshift(function(b) { return t = !0, 0 === s || b && b.length >= s ? v > 0 ? (V(), U(b)) : R(b) : (x(a, !1), V(), O()), w ? b : b ? void o.$setValidity("editable", !1) : (o.$setValidity("editable", !0), null); }), o.$formatters.push(function(b) { var c, d, e = {}; return w || o.$setValidity("editable", !0), B ? (e.$model = b, B(a, e)) : (e[J.itemName] = b, c = J.viewMapper(a, e), e[J.itemName] = void 0, d = J.viewMapper(a, e), c !== d ? c : b); }); }; } ]).directive("uibTypeahead", function() { return { controller: "UibTypeaheadController", require: [ "ngModel", "^?ngModelOptions", "uibTypeahead" ], link: function(a, b, c, d) { d[2].init(d[0], d[1]); } }; }).directive("uibTypeaheadPopup", function() { return { scope: { matches: "=", query: "=", active: "=", position: "&", moveInProgress: "=", select: "&" }, replace: !0, templateUrl: function(a, b) { return b.popupTemplateUrl || "template/typeahead/typeahead-popup.html"; }, link: function(a, b, c) { a.templateUrl = c.templateUrl, a.isOpen = function() { return a.matches.length > 0; }, a.isActive = function(b) { return a.active == b; }, a.selectActive = function(b) { a.active = b; }, a.selectMatch = function(b) { a.select({ activeIdx: b }); }; } }; }).directive("uibTypeaheadMatch", [ "$templateRequest", "$compile", "$parse", function(a, b, c) { return { scope: { index: "=", match: "=", query: "=" }, link: function(d, e, f) { var g = c(f.templateUrl)(d.$parent) || "template/typeahead/typeahead-match.html"; a(g).then(function(a) { b(a.trim())(d, function(a) { e.replaceWith(a); }); }); } }; } ]).filter("uibTypeaheadHighlight", [ "$sce", "$injector", "$log", function(a, b, c) { function d(a) { return a.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); } function e(a) { return /<.*>/g.test(a); } var f; return f = b.has("$sanitize"), function(b, g) { return !f && e(b) && c.warn("Unsafe use of typeahead please use ngSanitize"), b = g ? ("" + b).replace(new RegExp(d(g), "gi"), "$&") : b, f || (b = a.trustAsHtml(b)), b; }; } ]), angular.module("ui.bootstrap.typeahead").value("$typeaheadSuppressWarning", !1).service("typeaheadParser", [ "$parse", "uibTypeaheadParser", "$log", "$typeaheadSuppressWarning", function(a, b, c, d) { return d || c.warn("typeaheadParser is now deprecated. Use uibTypeaheadParser instead."), b; } ]).directive("typeahead", [ "$compile", "$parse", "$q", "$timeout", "$document", "$window", "$rootScope", "$uibPosition", "typeaheadParser", "$log", "$typeaheadSuppressWarning", function(a, b, c, d, e, f, g, h, i, j, k) { var l = [ 9, 13, 27, 38, 40 ], m = 200; return { require: [ "ngModel", "^?ngModelOptions" ], link: function(n, o, p, q) { function r() { N.moveInProgress || (N.moveInProgress = !0, N.$digest()), V && d.cancel(V), V = d(function() { N.matches.length && s(), N.moveInProgress = !1; }, m); } function s() { N.position = F ? h.offset(o) : h.position(o), N.position.top += o.prop("offsetHeight"); } k || j.warn("typeahead is now deprecated. Use uib-typeahead instead."); var t = q[0], u = q[1], v = n.$eval(p.typeaheadMinLength); v || 0 === v || (v = 1); var w, x, y = n.$eval(p.typeaheadWaitMs) || 0, z = n.$eval(p.typeaheadEditable) !== !1, A = b(p.typeaheadLoading).assign || angular.noop, B = b(p.typeaheadOnSelect), C = !!angular.isDefined(p.typeaheadSelectOnBlur) && n.$eval(p.typeaheadSelectOnBlur), D = b(p.typeaheadNoResults).assign || angular.noop, E = p.typeaheadInputFormatter ? b(p.typeaheadInputFormatter) : void 0, F = !!p.typeaheadAppendToBody && n.$eval(p.typeaheadAppendToBody), G = p.typeaheadAppendToElementId || !1, H = n.$eval(p.typeaheadFocusFirst) !== !1, I = !!p.typeaheadSelectOnExact && n.$eval(p.typeaheadSelectOnExact), J = b(p.ngModel), K = b(p.ngModel + "($$$p)"), L = function(a, b) { return angular.isFunction(J(n)) && u && u.$options && u.$options.getterSetter ? K(a, { $$$p: b }) : J.assign(a, b); }, M = i.parse(p.typeahead), N = n.$new(), O = n.$on("$destroy", function() { N.$destroy(); }); N.$on("$destroy", O); var P = "typeahead-" + N.$id + "-" + Math.floor(1e4 * Math.random()); o.attr({ "aria-autocomplete": "list", "aria-expanded": !1, "aria-owns": P }); var Q = angular.element("
    "); Q.attr({ id: P, matches: "matches", active: "activeIdx", select: "select(activeIdx)", "move-in-progress": "moveInProgress", query: "query", position: "position" }), angular.isDefined(p.typeaheadTemplateUrl) && Q.attr("template-url", p.typeaheadTemplateUrl), angular.isDefined(p.typeaheadPopupTemplateUrl) && Q.attr("popup-template-url", p.typeaheadPopupTemplateUrl); var R = function() { N.matches = [], N.activeIdx = -1, o.attr("aria-expanded", !1); }, S = function(a) { return P + "-option-" + a; }; N.$watch("activeIdx", function(a) { a < 0 ? o.removeAttr("aria-activedescendant") : o.attr("aria-activedescendant", S(a)); }); var T = function(a, b) { return !!(N.matches.length > b && a) && a.toUpperCase() === N.matches[b].label.toUpperCase(); }, U = function(a) { var b = { $viewValue: a }; A(n, !0), D(n, !1), c.when(M.source(n, b)).then(function(c) { var d = a === t.$viewValue; if (d && w) if (c && c.length > 0) { N.activeIdx = H ? 0 : -1, D(n, !1), N.matches.length = 0; for (var e = 0; e < c.length; e++) b[M.itemName] = c[e], N.matches.push({ id: S(e), label: M.viewMapper(N, b), model: c[e] }); N.query = a, s(), o.attr("aria-expanded", !0), I && 1 === N.matches.length && T(a, 0) && N.select(0); } else R(), D(n, !0); d && A(n, !1); }, function() { R(), A(n, !1), D(n, !0); }); }; F && (angular.element(f).bind("resize", r), e.find("body").bind("scroll", r)); var V; N.moveInProgress = !1, R(), N.query = void 0; var W, X = function(a) { W = d(function() { U(a); }, y); }, Y = function() { W && d.cancel(W); }; t.$parsers.unshift(function(a) { return w = !0, 0 === v || a && a.length >= v ? y > 0 ? (Y(), X(a)) : U(a) : (A(n, !1), Y(), R()), z ? a : a ? void t.$setValidity("editable", !1) : (t.$setValidity("editable", !0), null); }), t.$formatters.push(function(a) { var b, c, d = {}; return z || t.$setValidity("editable", !0), E ? (d.$model = a, E(n, d)) : (d[M.itemName] = a, b = M.viewMapper(n, d), d[M.itemName] = void 0, c = M.viewMapper(n, d), b !== c ? b : a); }), N.select = function(a) { var b, c, e = {}; x = !0, e[M.itemName] = c = N.matches[a].model, b = M.modelMapper(n, e), L(n, b), t.$setValidity("editable", !0), t.$setValidity("parse", !0), B(n, { $item: c, $model: b, $label: M.viewMapper(n, e) }), R(), N.$eval(p.typeaheadFocusOnSelect) !== !1 && d(function() { o[0].focus(); }, 0, !1); }, o.bind("keydown", function(a) { if (0 !== N.matches.length && l.indexOf(a.which) !== -1) { if (N.activeIdx === -1 && (9 === a.which || 13 === a.which)) return R(), void N.$digest(); a.preventDefault(), 40 === a.which ? (N.activeIdx = (N.activeIdx + 1) % N.matches.length, N.$digest()) : 38 === a.which ? (N.activeIdx = (N.activeIdx > 0 ? N.activeIdx : N.matches.length) - 1, N.$digest()) : 13 === a.which || 9 === a.which ? N.$apply(function() { N.select(N.activeIdx); }) : 27 === a.which && (a.stopPropagation(), R(), N.$digest()); } }), o.bind("blur", function() { C && N.matches.length && N.activeIdx !== -1 && !x && (x = !0, N.$apply(function() { N.select(N.activeIdx); })), w = !1, x = !1; }); var Z = function(a) { o[0] !== a.target && 3 !== a.which && 0 !== N.matches.length && (R(), g.$$phase || N.$digest()); }; e.bind("click", Z), n.$on("$destroy", function() { e.unbind("click", Z), (F || G) && $.remove(), F && (angular.element(f).unbind("resize", r), e.find("body").unbind("scroll", r)), Q.remove(); }); var $ = a(Q)(N); F ? e.find("body").append($) : G !== !1 ? angular.element(e[0].getElementById(G)).append($) : o.after($); } }; } ]).directive("typeaheadPopup", [ "$typeaheadSuppressWarning", "$log", function(a, b) { return { scope: { matches: "=", query: "=", active: "=", position: "&", moveInProgress: "=", select: "&" }, replace: !0, templateUrl: function(a, b) { return b.popupTemplateUrl || "template/typeahead/typeahead-popup.html"; }, link: function(c, d, e) { a || b.warn("typeahead-popup is now deprecated. Use uib-typeahead-popup instead."), c.templateUrl = e.templateUrl, c.isOpen = function() { return c.matches.length > 0; }, c.isActive = function(a) { return c.active == a; }, c.selectActive = function(a) { c.active = a; }, c.selectMatch = function(a) { c.select({ activeIdx: a }); }; } }; } ]).directive("typeaheadMatch", [ "$templateRequest", "$compile", "$parse", "$typeaheadSuppressWarning", "$log", function(a, b, c, d, e) { return { restrict: "EA", scope: { index: "=", match: "=", query: "=" }, link: function(f, g, h) { d || e.warn("typeahead-match is now deprecated. Use uib-typeahead-match instead."); var i = c(h.templateUrl)(f.$parent) || "template/typeahead/typeahead-match.html"; a(i).then(function(a) { b(a.trim())(f, function(a) { g.replaceWith(a); }); }); } }; } ]).filter("typeaheadHighlight", [ "$sce", "$injector", "$log", "$typeaheadSuppressWarning", function(a, b, c, d) { function e(a) { return a.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); } function f(a) { return /<.*>/g.test(a); } var g; return g = b.has("$sanitize"), function(b, h) { return d || c.warn("typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead."), !g && f(b) && c.warn("Unsafe use of typeahead please use ngSanitize"), b = h ? ("" + b).replace(new RegExp(e(h), "gi"), "$&") : b, g || (b = a.trustAsHtml(b)), b; }; } ]), angular.module("template/accordion/accordion-group.html", []).run([ "$templateCache", function(a) { a.put("template/accordion/accordion-group.html", '
    \n
    \n

    \n {{heading}}\n

    \n
    \n
    \n\t
    \n
    \n
    \n'); } ]), angular.module("template/accordion/accordion.html", []).run([ "$templateCache", function(a) { a.put("template/accordion/accordion.html", '
    '); } ]), angular.module("template/alert/alert.html", []).run([ "$templateCache", function(a) { a.put("template/alert/alert.html", '\n'); } ]), angular.module("template/carousel/carousel.html", []).run([ "$templateCache", function(a) { a.put("template/carousel/carousel.html", ''); } ]), angular.module("template/carousel/slide.html", []).run([ "$templateCache", function(a) { a.put("template/carousel/slide.html", '
    \n'); } ]), angular.module("template/datepicker/datepicker.html", []).run([ "$templateCache", function(a) { a.put("template/datepicker/datepicker.html", '
    \n \n \n \n
    '); } ]), angular.module("template/datepicker/day.html", []).run([ "$templateCache", function(a) { a.put("template/datepicker/day.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{::label.abbr}}
    {{ weekNumbers[$index] }}\n \n
    \n'); } ]), angular.module("template/datepicker/month.html", []).run([ "$templateCache", function(a) { a.put("template/datepicker/month.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n'); } ]), angular.module("template/datepicker/popup.html", []).run([ "$templateCache", function(a) { a.put("template/datepicker/popup.html", '\n'); } ]), angular.module("template/datepicker/year.html", []).run([ "$templateCache", function(a) { a.put("template/datepicker/year.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n'); } ]), angular.module("template/modal/backdrop.html", []).run([ "$templateCache", function(a) { a.put("template/modal/backdrop.html", '
    \n'); } ]), angular.module("template/modal/window.html", []).run([ "$templateCache", function(a) { a.put("template/modal/window.html", '\n'); } ]), angular.module("template/pagination/pager.html", []).run([ "$templateCache", function(a) { a.put("template/pagination/pager.html", '\n'); } ]), angular.module("template/pagination/pagination.html", []).run([ "$templateCache", function(a) { a.put("template/pagination/pagination.html", '\n'); } ]), angular.module("template/tooltip/tooltip-html-popup.html", []).run([ "$templateCache", function(a) { a.put("template/tooltip/tooltip-html-popup.html", '\n
    \n
    \n
    \n'); } ]), angular.module("template/tooltip/tooltip-popup.html", []).run([ "$templateCache", function(a) { a.put("template/tooltip/tooltip-popup.html", '\n
    \n
    \n
    \n'); } ]), angular.module("template/tooltip/tooltip-template-popup.html", []).run([ "$templateCache", function(a) { a.put("template/tooltip/tooltip-template-popup.html", '\n
    \n
    \n
    \n'); } ]), angular.module("template/popover/popover-html.html", []).run([ "$templateCache", function(a) { a.put("template/popover/popover-html.html", '
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n'); } ]), angular.module("template/popover/popover-template.html", []).run([ "$templateCache", function(a) { a.put("template/popover/popover-template.html", '
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n'); } ]), angular.module("template/popover/popover.html", []).run([ "$templateCache", function(a) { a.put("template/popover/popover.html", '
    \n
    \n\n
    \n

    \n
    \n
    \n
    \n'); } ]), angular.module("template/progressbar/bar.html", []).run([ "$templateCache", function(a) { a.put("template/progressbar/bar.html", '
    \n'); } ]), angular.module("template/progressbar/progress.html", []).run([ "$templateCache", function(a) { a.put("template/progressbar/progress.html", '
    '); } ]), angular.module("template/progressbar/progressbar.html", []).run([ "$templateCache", function(a) { a.put("template/progressbar/progressbar.html", '
    \n
    \n
    \n'); } ]), angular.module("template/rating/rating.html", []).run([ "$templateCache", function(a) { a.put("template/rating/rating.html", '\n ({{ $index < value ? \'*\' : \' \' }})\n \n\n'); } ]), angular.module("template/tabs/tab.html", []).run([ "$templateCache", function(a) { a.put("template/tabs/tab.html", '
  • \n {{heading}}\n
  • \n'); } ]), angular.module("template/tabs/tabset.html", []).run([ "$templateCache", function(a) { a.put("template/tabs/tabset.html", '
    \n \n
    \n
    \n
    \n
    \n
    \n'); } ]), angular.module("template/timepicker/timepicker.html", []).run([ "$templateCache", function(a) { a.put("template/timepicker/timepicker.html", '\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
     
    \n \n :\n \n
     
    \n'); } ]), angular.module("template/typeahead/typeahead-match.html", []).run([ "$templateCache", function(a) { a.put("template/typeahead/typeahead-match.html", '\n'); } ]), angular.module("template/typeahead/typeahead-popup.html", []).run([ "$templateCache", function(a) { a.put("template/typeahead/typeahead-popup.html", '\n'); } ]), !angular.$$csp() && angular.element(document).find("head").prepend(''), !function(a, b) { "function" == typeof define && define.amd ? define([], function() { return b(); }) : "object" == typeof exports ? module.exports = b() : b(); }(this, function() { function a(a) { var b = a.storageKey(), c = a.storage(), d = function() { var d = a.preferredLanguage(); angular.isString(d) ? a.use(d) : c.put(b, a.use()); }; d.displayName = "fallbackFromIncorrectStorageValue", c ? c.get(b) ? a.use(c.get(b))["catch"](d) : d() : angular.isString(a.preferredLanguage()) && a.use(a.preferredLanguage()); } function b() { var a, b, c = null, d = !1, e = !1; b = { sanitize: function(a, b) { return "text" === b && (a = g(a)), a; }, escape: function(a, b) { return "text" === b && (a = f(a)), a; }, sanitizeParameters: function(a, b) { return "params" === b && (a = h(a, g)), a; }, escapeParameters: function(a, b) { return "params" === b && (a = h(a, f)), a; } }, b.escaped = b.escapeParameters, this.addStrategy = function(a, c) { return b[a] = c, this; }, this.removeStrategy = function(a) { return delete b[a], this; }, this.useStrategy = function(a) { return d = !0, c = a, this; }, this.$get = [ "$injector", "$log", function(f, g) { var h = {}, i = function(a, c, d) { return angular.forEach(d, function(d) { if (angular.isFunction(d)) a = d(a, c); else if (angular.isFunction(b[d])) a = b[d](a, c); else { if (!angular.isString(b[d])) throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '" + d + "'"); if (!h[b[d]]) try { h[b[d]] = f.get(b[d]); } catch (e) { throw h[b[d]] = function() {}, new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '" + d + "'"); } a = h[b[d]](a, c); } }), a; }, j = function() { d || e || (g.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."), e = !0); }; return f.has("$sanitize") && (a = f.get("$sanitize")), { useStrategy: function(a) { return function(b) { a.useStrategy(b); }; }(this), sanitize: function(a, b, d) { if (c || j(), arguments.length < 3 && (d = c), !d) return a; var e = angular.isArray(d) ? d : [ d ]; return i(a, b, e); } }; } ]; var f = function(a) { var b = angular.element("
    "); return b.text(a), b.html(); }, g = function(b) { if (!a) throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'."); return a(b); }, h = function(a, b, c) { if (angular.isObject(a)) { var d = angular.isArray(a) ? [] : {}; if (c) { if (c.indexOf(a) > -1) throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object"); } else c = []; return c.push(a), angular.forEach(a, function(a, e) { angular.isFunction(a) || (d[e] = h(a, b, c)); }), c.splice(-1, 1), d; } return angular.isNumber(a) ? a : b(a); }; } function c(a, b, c, d) { var e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = {}, v = [], w = a, x = [], y = "translate-cloak", z = !1, A = !1, B = ".", C = !1, D = !1, E = 0, F = !0, G = "default", H = { "default": function(a) { return (a || "").split("-").join("_"); }, java: function(a) { var b = (a || "").split("-").join("_"), c = b.split("_"); return c.length > 1 ? c[0].toLowerCase() + "_" + c[1].toUpperCase() : b; }, bcp47: function(a) { var b = (a || "").split("_").join("-"), c = b.split("-"); return c.length > 1 ? c[0].toLowerCase() + "-" + c[1].toUpperCase() : b; }, "iso639-1": function(a) { var b = (a || "").split("_").join("-"), c = b.split("-"); return c[0].toLowerCase(); } }, I = "2.11.1", J = function() { if (angular.isFunction(d.getLocale)) return d.getLocale(); var a, c, e = b.$get().navigator, f = [ "language", "browserLanguage", "systemLanguage", "userLanguage" ]; if (angular.isArray(e.languages)) for (a = 0; a < e.languages.length; a++) if (c = e.languages[a], c && c.length) return c; for (a = 0; a < f.length; a++) if (c = e[f[a]], c && c.length) return c; return null; }; J.displayName = "angular-translate/service: getFirstBrowserLanguage"; var K = function() { var a = J() || ""; return H[G] && (a = H[G](a)), a; }; K.displayName = "angular-translate/service: getLocale"; var L = function(a, b) { for (var c = 0, d = a.length; c < d; c++) if (a[c] === b) return c; return -1; }, M = function() { return this.toString().replace(/^\s+|\s+$/g, ""); }, N = function(a) { if (a) { for (var b = [], c = angular.lowercase(a), d = 0, e = v.length; d < e; d++) b.push(angular.lowercase(v[d])); if (L(b, c) > -1) return a; if (f) { var g; for (var h in f) if (f.hasOwnProperty(h)) { var i = !1, j = Object.prototype.hasOwnProperty.call(f, h) && angular.lowercase(h) === angular.lowercase(a); if ("*" === h.slice(-1) && (i = h.slice(0, -1) === a.slice(0, h.length - 1)), (j || i) && (g = f[h], L(b, angular.lowercase(g)) > -1)) return g; } } var k = a.split("_"); return k.length > 1 && L(b, angular.lowercase(k[0])) > -1 ? k[0] : void 0; } }, O = function(a, b) { if (!a && !b) return u; if (a && !b) { if (angular.isString(a)) return u[a]; } else angular.isObject(u[a]) || (u[a] = {}), angular.extend(u[a], P(b)); return this; }; this.translations = O, this.cloakClassName = function(a) { return a ? (y = a, this) : y; }, this.nestedObjectDelimeter = function(a) { return a ? (B = a, this) : B; }; var P = function(a, b, c, d) { var e, f, g, h; b || (b = []), c || (c = {}); for (e in a) Object.prototype.hasOwnProperty.call(a, e) && (h = a[e], angular.isObject(h) ? P(h, b.concat(e), c, e) : (f = b.length ? "" + b.join(B) + B + e : e, b.length && e === d && (g = "" + b.join(B), c[g] = "@:" + f), c[f] = h)); return c; }; P.displayName = "flatObject", this.addInterpolation = function(a) { return x.push(a), this; }, this.useMessageFormatInterpolation = function() { return this.useInterpolation("$translateMessageFormatInterpolation"); }, this.useInterpolation = function(a) { return n = a, this; }, this.useSanitizeValueStrategy = function(a) { return c.useStrategy(a), this; }, this.preferredLanguage = function(a) { return a ? (Q(a), this) : e; }; var Q = function(a) { return a && (e = a), e; }; this.translationNotFoundIndicator = function(a) { return this.translationNotFoundIndicatorLeft(a), this.translationNotFoundIndicatorRight(a), this; }, this.translationNotFoundIndicatorLeft = function(a) { return a ? (q = a, this) : q; }, this.translationNotFoundIndicatorRight = function(a) { return a ? (r = a, this) : r; }, this.fallbackLanguage = function(a) { return R(a), this; }; var R = function(a) { return a ? (angular.isString(a) ? (h = !0, g = [ a ]) : angular.isArray(a) && (h = !1, g = a), angular.isString(e) && L(g, e) < 0 && g.push(e), this) : h ? g[0] : g; }; this.use = function(a) { if (a) { if (!u[a] && !o) throw new Error("$translateProvider couldn't find translationTable for langKey: '" + a + "'"); return i = a, this; } return i; }, this.resolveClientLocale = function() { return K(); }; var S = function(a) { return a ? (w = a, this) : l ? l + w : w; }; this.storageKey = S, this.useUrlLoader = function(a, b) { return this.useLoader("$translateUrlLoader", angular.extend({ url: a }, b)); }, this.useStaticFilesLoader = function(a) { return this.useLoader("$translateStaticFilesLoader", a); }, this.useLoader = function(a, b) { return o = a, p = b || {}, this; }, this.useLocalStorage = function() { return this.useStorage("$translateLocalStorage"); }, this.useCookieStorage = function() { return this.useStorage("$translateCookieStorage"); }, this.useStorage = function(a) { return k = a, this; }, this.storagePrefix = function(a) { return a ? (l = a, this) : a; }, this.useMissingTranslationHandlerLog = function() { return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog"); }, this.useMissingTranslationHandler = function(a) { return m = a, this; }, this.usePostCompiling = function(a) { return z = !!a, this; }, this.forceAsyncReload = function(a) { return A = !!a, this; }, this.uniformLanguageTag = function(a) { return a ? angular.isString(a) && (a = { standard: a }) : a = {}, G = a.standard, this; }, this.determinePreferredLanguage = function(a) { var b = a && angular.isFunction(a) ? a() : K(); return e = v.length ? N(b) || b : b, this; }, this.registerAvailableLanguageKeys = function(a, b) { return a ? (v = a, b && (f = b), this) : v; }, this.useLoaderCache = function(a) { return a === !1 ? s = void 0 : a === !0 ? s = !0 : "undefined" == typeof a ? s = "$translationCache" : a && (s = a), this; }, this.directivePriority = function(a) { return void 0 === a ? E : (E = a, this); }, this.statefulFilter = function(a) { return void 0 === a ? F : (F = a, this); }, this.postProcess = function(a) { return t = a ? a : void 0, this; }, this.keepContent = function(a) { return D = !!a, this; }, this.$get = [ "$log", "$injector", "$rootScope", "$q", function(a, b, c, d) { var f, l, G, H = b.get(n || "$translateDefaultInterpolation"), J = !1, T = {}, U = {}, V = function(a, b, c, h, j) { !i && e && (i = e); var m = j && j !== i ? N(j) || j : i; if (j && ka(j), angular.isArray(a)) { var n = function(a) { for (var e = {}, f = [], g = function(a) { var f = d.defer(), g = function(b) { e[a] = b, f.resolve([ a, b ]); }; return V(a, b, c, h, j).then(g, g), f.promise; }, i = 0, k = a.length; i < k; i++) f.push(g(a[i])); return d.all(f).then(function() { return e; }); }; return n(a); } var o = d.defer(); a && (a = M.apply(a)); var p = function() { var a = e ? U[e] : U[m]; if (l = 0, k && !a) { var b = f.get(w); if (a = U[b], g && g.length) { var c = L(g, b); l = 0 === c ? 1 : 0, L(g, e) < 0 && g.push(e); } } return a; }(); if (p) { var q = function() { j || (m = i), ga(a, b, c, h, m).then(o.resolve, o.reject); }; q.displayName = "promiseResolved", p["finally"](q); } else ga(a, b, c, h, m).then(o.resolve, o.reject); return o.promise; }, W = function(a) { return q && (a = [ q, a ].join(" ")), r && (a = [ a, r ].join(" ")), a; }, X = function(a) { i = a, k && f.put(V.storageKey(), i), c.$emit("$translateChangeSuccess", { language: a }), H.setLocale(i); var b = function(a, b) { T[b].setLocale(i); }; b.displayName = "eachInterpolatorLocaleSetter", angular.forEach(T, b), c.$emit("$translateChangeEnd", { language: a }); }, Y = function(a) { if (!a) throw "No language key specified for loading."; var e = d.defer(); c.$emit("$translateLoadingStart", { language: a }), J = !0; var f = s; "string" == typeof f && (f = b.get(f)); var g = angular.extend({}, p, { key: a, $http: angular.extend({}, { cache: f }, p.$http) }), h = function(b) { var d = {}; c.$emit("$translateLoadingSuccess", { language: a }), angular.isArray(b) ? angular.forEach(b, function(a) { angular.extend(d, P(a)); }) : angular.extend(d, P(b)), J = !1, e.resolve({ key: a, table: d }), c.$emit("$translateLoadingEnd", { language: a }); }; h.displayName = "onLoaderSuccess"; var i = function(a) { c.$emit("$translateLoadingError", { language: a }), e.reject(a), c.$emit("$translateLoadingEnd", { language: a }); }; return i.displayName = "onLoaderError", b.get(o)(g).then(h, i), e.promise; }; if (k && (f = b.get(k), !f.get || !f.put)) throw new Error("Couldn't use storage '" + k + "', missing get() or put() method!"); if (x.length) { var Z = function(a) { var c = b.get(a); c.setLocale(e || i), T[c.getInterpolationIdentifier()] = c; }; Z.displayName = "interpolationFactoryAdder", angular.forEach(x, Z); } var $ = function(a) { var b = d.defer(); if (Object.prototype.hasOwnProperty.call(u, a)) b.resolve(u[a]); else if (U[a]) { var c = function(a) { O(a.key, a.table), b.resolve(a.table); }; c.displayName = "translationTableResolver", U[a].then(c, b.reject); } else b.reject(); return b.promise; }, _ = function(a, b, c, e) { var f = d.defer(), g = function(d) { if (Object.prototype.hasOwnProperty.call(d, b)) { e.setLocale(a); var g = d[b]; if ("@:" === g.substr(0, 2)) _(a, g.substr(2), c, e).then(f.resolve, f.reject); else { var h = e.interpolate(d[b], c); h = ja(b, d[b], h, c, a), f.resolve(h); } e.setLocale(i); } else f.reject(); }; return g.displayName = "fallbackTranslationResolver", $(a).then(g, f.reject), f.promise; }, aa = function(a, b, c, d) { var e, f = u[a]; if (f && Object.prototype.hasOwnProperty.call(f, b)) { if (d.setLocale(a), e = d.interpolate(f[b], c), e = ja(b, f[b], e, c, a), "@:" === e.substr(0, 2)) return aa(a, e.substr(2), c, d); d.setLocale(i); } return e; }, ba = function(a, c, d) { if (m) { var e = b.get(m)(a, i, c, d); return void 0 !== e ? e : a; } return a; }, ca = function(a, b, c, e, f) { var h = d.defer(); if (a < g.length) { var i = g[a]; _(i, b, c, e).then(function(a) { h.resolve(a); }, function() { return ca(a + 1, b, c, e, f).then(h.resolve, h.reject); }); } else f ? h.resolve(f) : m ? h.resolve(ba(b, c)) : h.reject(ba(b, c)); return h.promise; }, da = function(a, b, c, d) { var e; if (a < g.length) { var f = g[a]; e = aa(f, b, c, d), e || (e = da(a + 1, b, c, d)); } return e; }, ea = function(a, b, c, d) { return ca(G > 0 ? G : l, a, b, c, d); }, fa = function(a, b, c) { return da(G > 0 ? G : l, a, b, c); }, ga = function(a, b, c, e, f) { var h = d.defer(), i = f ? u[f] : u, j = c ? T[c] : H; if (i && Object.prototype.hasOwnProperty.call(i, a)) { var k = i[a]; if ("@:" === k.substr(0, 2)) V(k.substr(2), b, c, e, f).then(h.resolve, h.reject); else { var l = j.interpolate(k, b); l = ja(a, k, l, b, f), h.resolve(l); } } else { var n; m && !J && (n = ba(a, b, e)), f && g && g.length ? ea(a, b, j, e).then(function(a) { h.resolve(a); }, function(a) { h.reject(W(a)); }) : m && !J && n ? e ? h.resolve(e) : h.resolve(n) : e ? h.resolve(e) : h.reject(W(a)); } return h.promise; }, ha = function(a, b, c, d) { var e, f = d ? u[d] : u, h = H; if (T && Object.prototype.hasOwnProperty.call(T, c) && (h = T[c]), f && Object.prototype.hasOwnProperty.call(f, a)) { var i = f[a]; "@:" === i.substr(0, 2) ? e = ha(i.substr(2), b, c, d) : (e = h.interpolate(i, b), e = ja(a, i, e, b, d)); } else { var j; m && !J && (j = ba(a, b)), d && g && g.length ? (l = 0, e = fa(a, b, h)) : e = m && !J && j ? j : W(a); } return e; }, ia = function(a) { j === a && (j = void 0), U[a] = void 0; }, ja = function(a, c, d, e, f) { var g = t; return g && ("string" == typeof g && (g = b.get(g)), g) ? g(a, c, d, e, f) : d; }, ka = function(a) { u[a] || !o || U[a] || (U[a] = Y(a).then(function(a) { return O(a.key, a.table), a; })); }; V.preferredLanguage = function(a) { return a && Q(a), e; }, V.cloakClassName = function() { return y; }, V.nestedObjectDelimeter = function() { return B; }, V.fallbackLanguage = function(a) { if (void 0 !== a && null !== a) { if (R(a), o && g && g.length) for (var b = 0, c = g.length; b < c; b++) U[g[b]] || (U[g[b]] = Y(g[b])); V.use(V.use()); } return h ? g[0] : g; }, V.useFallbackLanguage = function(a) { if (void 0 !== a && null !== a) if (a) { var b = L(g, a); b > -1 && (G = b); } else G = 0; }, V.proposedLanguage = function() { return j; }, V.storage = function() { return f; }, V.negotiateLocale = N, V.use = function(a) { if (!a) return i; var b = d.defer(); c.$emit("$translateChangeStart", { language: a }); var e = N(a); return v.length > 0 && !e ? d.reject(a) : (e && (a = e), j = a, !A && u[a] || !o || U[a] ? U[a] ? U[a].then(function(a) { return j === a.key && X(a.key), b.resolve(a.key), a; }, function(a) { return !i && g && g.length > 0 ? V.use(g[0]).then(b.resolve, b.reject) : b.reject(a); }) : (b.resolve(a), X(a)) : (U[a] = Y(a).then(function(c) { return O(c.key, c.table), b.resolve(c.key), j === a && X(c.key), c; }, function(a) { return c.$emit("$translateChangeError", { language: a }), b.reject(a), c.$emit("$translateChangeEnd", { language: a }), d.reject(a); }), U[a]["finally"](function() { ia(a); })), b.promise); }, V.resolveClientLocale = function() { return K(); }, V.storageKey = function() { return S(); }, V.isPostCompilingEnabled = function() { return z; }, V.isForceAsyncReloadEnabled = function() { return A; }, V.isKeepContent = function() { return D; }, V.refresh = function(a) { function b() { f.resolve(), c.$emit("$translateRefreshEnd", { language: a }); } function e() { f.reject(), c.$emit("$translateRefreshEnd", { language: a }); } if (!o) throw new Error("Couldn't refresh translation table, no loader registered!"); var f = d.defer(); if (c.$emit("$translateRefreshStart", { language: a }), a) if (u[a]) { var h = function(c) { return O(c.key, c.table), a === i && X(i), b(), c; }; h.displayName = "refreshPostProcessor", Y(a).then(h, e); } else e(); else { var j = [], k = {}; if (g && g.length) for (var l = 0, m = g.length; l < m; l++) j.push(Y(g[l])), k[g[l]] = !0; i && !k[i] && j.push(Y(i)); var n = function(a) { u = {}, angular.forEach(a, function(a) { O(a.key, a.table); }), i && X(i), b(); }; n.displayName = "refreshPostProcessor", d.all(j).then(n, e); } return f.promise; }, V.instant = function(a, b, c, d) { var f = d && d !== i ? N(d) || d : i; if (null === a || angular.isUndefined(a)) return a; if (d && ka(d), angular.isArray(a)) { for (var h = {}, j = 0, k = a.length; j < k; j++) h[a[j]] = V.instant(a[j], b, c, d); return h; } if (angular.isString(a) && a.length < 1) return a; a && (a = M.apply(a)); var l, n = []; e && n.push(e), f && n.push(f), g && g.length && (n = n.concat(g)); for (var o = 0, p = n.length; o < p; o++) { var s = n[o]; if (u[s] && "undefined" != typeof u[s][a] && (l = ha(a, b, c, f)), "undefined" != typeof l) break; } return l || "" === l || (q || r ? l = W(a) : (l = H.interpolate(a, b), m && !J && (l = ba(a, b)))), l; }, V.versionInfo = function() { return I; }, V.loaderCache = function() { return s; }, V.directivePriority = function() { return E; }, V.statefulFilter = function() { return F; }, V.isReady = function() { return C; }; var la = d.defer(); la.promise.then(function() { C = !0; }), V.onReady = function(a) { var b = d.defer(); return angular.isFunction(a) && b.promise.then(a), C ? b.resolve() : la.promise.then(b.resolve), b.promise; }, V.getAvailableLanguageKeys = function() { return v.length > 0 ? v : null; }; var ma = c.$on("$translateReady", function() { la.resolve(), ma(), ma = null; }), na = c.$on("$translateChangeEnd", function() { la.resolve(), na(), na = null; }); if (o) { if (angular.equals(u, {}) && V.use() && V.use(V.use()), g && g.length) for (var oa = function(a) { return O(a.key, a.table), c.$emit("$translateChangeEnd", { language: a.key }), a; }, pa = 0, qa = g.length; pa < qa; pa++) { var ra = g[pa]; !A && u[ra] || (U[ra] = Y(ra).then(oa)); } } else c.$emit("$translateReady", { language: V.use() }); return V; } ]; } function d(a, b) { var c, d = {}, e = "default"; return d.setLocale = function(a) { c = a; }, d.getInterpolationIdentifier = function() { return e; }, d.useSanitizeValueStrategy = function(a) { return b.useStrategy(a), this; }, d.interpolate = function(c, d) { d = d || {}, d = b.sanitize(d, "params"); var e; return angular.isNumber(c) ? e = "" + c : angular.isString(c) ? (e = a(c)(d), e = b.sanitize(e, "text")) : e = "", e; }, d; } function e(a, b, c, d, e, g) { var h = function() { return this.toString().replace(/^\s+|\s+$/g, ""); }; return { restrict: "AE", scope: !0, priority: a.directivePriority(), compile: function(b, i) { var j = i.translateValues ? i.translateValues : void 0, k = i.translateInterpolation ? i.translateInterpolation : void 0, l = b[0].outerHTML.match(/translate-value-+/i), m = "^(.*)(" + c.startSymbol() + ".*" + c.endSymbol() + ")(.*)", n = "^(.*)" + c.startSymbol() + "(.*)" + c.endSymbol() + "(.*)"; return function(b, o, p) { b.interpolateParams = {}, b.preText = "", b.postText = "", b.translateNamespace = f(b); var q = {}, r = function(a, c, d) { if (c.translateValues && angular.extend(a, e(c.translateValues)(b.$parent)), l) for (var f in d) if (Object.prototype.hasOwnProperty.call(c, f) && "translateValue" === f.substr(0, 14) && "translateValues" !== f) { var g = angular.lowercase(f.substr(14, 1)) + f.substr(15); a[g] = d[f]; } }, s = function(a) { if (angular.isFunction(s._unwatchOld) && (s._unwatchOld(), s._unwatchOld = void 0), angular.equals(a, "") || !angular.isDefined(a)) { var d = h.apply(o.text()), e = d.match(m); if (angular.isArray(e)) { b.preText = e[1], b.postText = e[3], q.translate = c(e[2])(b.$parent); var f = d.match(n); angular.isArray(f) && f[2] && f[2].length && (s._unwatchOld = b.$watch(f[2], function(a) { q.translate = a, y(); })); } else q.translate = d ? d : void 0; } else q.translate = a; y(); }, t = function(a) { p.$observe(a, function(b) { q[a] = b, y(); }); }; r(b.interpolateParams, p, i); var u = !0; p.$observe("translate", function(a) { "undefined" == typeof a ? s("") : "" === a && u || (q.translate = a, y()), u = !1; }); for (var v in p) p.hasOwnProperty(v) && "translateAttr" === v.substr(0, 13) && t(v); if (p.$observe("translateDefault", function(a) { b.defaultText = a, y(); }), j && p.$observe("translateValues", function(a) { a && b.$parent.$watch(function() { angular.extend(b.interpolateParams, e(a)(b.$parent)); }); }), l) { var w = function(a) { p.$observe(a, function(c) { var d = angular.lowercase(a.substr(14, 1)) + a.substr(15); b.interpolateParams[d] = c; }); }; for (var x in p) Object.prototype.hasOwnProperty.call(p, x) && "translateValue" === x.substr(0, 14) && "translateValues" !== x && w(x); } var y = function() { for (var a in q) q.hasOwnProperty(a) && void 0 !== q[a] && z(a, q[a], b, b.interpolateParams, b.defaultText, b.translateNamespace); }, z = function(b, c, d, e, f, g) { c ? (g && "." === c.charAt(0) && (c = g + c), a(c, e, k, f, d.translateLanguage).then(function(a) { A(a, d, !0, b); }, function(a) { A(a, d, !1, b); })) : A(c, d, !1, b); }, A = function(b, c, e, f) { if (e || "undefined" != typeof c.defaultText && (b = c.defaultText), "translate" === f) { (e || !e && !a.isKeepContent() && "undefined" == typeof p.translateKeepContent) && o.empty().append(c.preText + b + c.postText); var g = a.isPostCompilingEnabled(), h = "undefined" != typeof i.translateCompile, j = h && "false" !== i.translateCompile; (g && !h || j) && d(o.contents())(c); } else { var k = p.$attr[f]; "data-" === k.substr(0, 5) && (k = k.substr(5)), k = k.substr(15), o.attr(k, b); } }; (j || l || p.translateDefault) && b.$watch("interpolateParams", y, !0); var B = b.$on("translateLanguageChanged", y), C = g.$on("$translateChangeSuccess", y); o.text().length ? s(p.translate ? p.translate : "") : p.translate && s(p.translate), y(), b.$on("$destroy", function() { B(), C(); }); }; } }; } function f(a) { return a.translateNamespace ? a.translateNamespace : a.$parent ? f(a.$parent) : void 0; } function g(a, b) { return { compile: function(c) { var d = function() { c.addClass(a.cloakClassName()); }, e = function() { c.removeClass(a.cloakClassName()); }; return a.onReady(function() { e(); }), d(), function(c, f, g) { g.translateCloak && g.translateCloak.length && (g.$observe("translateCloak", function(b) { a(b).then(e, d); }), b.$on("$translateChangeSuccess", function() { a(g.translateCloak).then(e, d); })); }; } }; } function h() { return { restrict: "A", scope: !0, compile: function() { return { pre: function(a, b, c) { a.translateNamespace = f(a), a.translateNamespace && "." === c.translateNamespace.charAt(0) ? a.translateNamespace += c.translateNamespace : a.translateNamespace = c.translateNamespace; } }; } }; } function f(a) { return a.translateNamespace ? a.translateNamespace : a.$parent ? f(a.$parent) : void 0; } function i() { return { restrict: "A", scope: !0, compile: function() { return function(a, b, c) { c.$observe("translateLanguage", function(b) { a.translateLanguage = b; }), a.$watch("translateLanguage", function() { a.$broadcast("translateLanguageChanged"); }); }; } }; } function j(a, b) { var c = function(c, d, e, f) { return angular.isObject(d) || (d = a(d)(this)), b.instant(c, d, e, f); }; return b.statefulFilter() && (c.$stateful = !0), c; } function k(a) { return a("translations"); } return a.$inject = [ "$translate" ], c.$inject = [ "$STORAGE_KEY", "$windowProvider", "$translateSanitizationProvider", "pascalprechtTranslateOverrider" ], d.$inject = [ "$interpolate", "$translateSanitization" ], e.$inject = [ "$translate", "$q", "$interpolate", "$compile", "$parse", "$rootScope" ], g.$inject = [ "$translate", "$rootScope" ], j.$inject = [ "$parse", "$translate" ], k.$inject = [ "$cacheFactory" ], angular.module("pascalprecht.translate", [ "ng" ]).run(a), a.displayName = "runTranslate", angular.module("pascalprecht.translate").provider("$translateSanitization", b), angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider", {}).provider("$translate", c), c.displayName = "displayName", angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation", d), d.displayName = "$translateDefaultInterpolation", angular.module("pascalprecht.translate").constant("$STORAGE_KEY", "NG_TRANSLATE_LANG_KEY"), angular.module("pascalprecht.translate").directive("translate", e), e.displayName = "translateDirective", angular.module("pascalprecht.translate").directive("translateCloak", g), g.displayName = "translateCloakDirective", angular.module("pascalprecht.translate").directive("translateNamespace", h), h.displayName = "translateNamespaceDirective", angular.module("pascalprecht.translate").directive("translateLanguage", i), i.displayName = "translateLanguageDirective", angular.module("pascalprecht.translate").filter("translate", j), j.displayName = "translateFilterFactory", angular.module("pascalprecht.translate").factory("$translationCache", k), k.displayName = "$translationCache", "pascalprecht.translate"; }), !function() { function a(a, b) { window.XMLHttpRequest.prototype[a] = b(window.XMLHttpRequest.prototype[a]); } function b(a, b, c) { try { Object.defineProperty(a, b, { get: c }); } catch (d) {} } if (window.FileAPI || (window.FileAPI = {}), !window.XMLHttpRequest) throw "AJAX is not supported. XMLHttpRequest is not defined."; if (FileAPI.shouldLoad = !window.FormData || FileAPI.forceLoad, FileAPI.shouldLoad) { var c = function(a) { if (!a.__listeners) { a.upload || (a.upload = {}), a.__listeners = []; var b = a.upload.addEventListener; a.upload.addEventListener = function(c, d) { a.__listeners[c] = d, b && b.apply(this, arguments); }; } }; a("open", function(a) { return function(b, d, e) { c(this), this.__url = d; try { a.apply(this, [ b, d, e ]); } catch (f) { f.message.indexOf("Access is denied") > -1 && (this.__origError = f, a.apply(this, [ b, "_fix_for_ie_crossdomain__", e ])); } }; }), a("getResponseHeader", function(a) { return function(b) { return this.__fileApiXHR && this.__fileApiXHR.getResponseHeader ? this.__fileApiXHR.getResponseHeader(b) : null == a ? null : a.apply(this, [ b ]); }; }), a("getAllResponseHeaders", function(a) { return function() { return this.__fileApiXHR && this.__fileApiXHR.getAllResponseHeaders ? this.__fileApiXHR.getAllResponseHeaders() : null == a ? null : a.apply(this); }; }), a("abort", function(a) { return function() { return this.__fileApiXHR && this.__fileApiXHR.abort ? this.__fileApiXHR.abort() : null == a ? null : a.apply(this); }; }), a("setRequestHeader", function(a) { return function(b, d) { if ("__setXHR_" === b) { c(this); var e = d(this); e instanceof Function && e(this); } else this.__requestHeaders = this.__requestHeaders || {}, this.__requestHeaders[b] = d, a.apply(this, arguments); }; }), a("send", function(a) { return function() { var c = this; if (arguments[0] && arguments[0].__isFileAPIShim) { var d = arguments[0], e = { url: c.__url, jsonp: !1, cache: !0, complete: function(a, d) { a && angular.isString(a) && -1 !== a.indexOf("#2174") && (a = null), c.__completed = !0, !a && c.__listeners.load && c.__listeners.load({ type: "load", loaded: c.__loaded, total: c.__total, target: c, lengthComputable: !0 }), !a && c.__listeners.loadend && c.__listeners.loadend({ type: "loadend", loaded: c.__loaded, total: c.__total, target: c, lengthComputable: !0 }), "abort" === a && c.__listeners.abort && c.__listeners.abort({ type: "abort", loaded: c.__loaded, total: c.__total, target: c, lengthComputable: !0 }), void 0 !== d.status && b(c, "status", function() { return 0 === d.status && a && "abort" !== a ? 500 : d.status; }), void 0 !== d.statusText && b(c, "statusText", function() { return d.statusText; }), b(c, "readyState", function() { return 4; }), void 0 !== d.response && b(c, "response", function() { return d.response; }); var e = d.responseText || (a && 0 === d.status && "abort" !== a ? a : void 0); b(c, "responseText", function() { return e; }), b(c, "response", function() { return e; }), a && b(c, "err", function() { return a; }), c.__fileApiXHR = d, c.onreadystatechange && c.onreadystatechange(), c.onload && c.onload(); }, progress: function(a) { if (a.target = c, c.__listeners.progress && c.__listeners.progress(a), c.__total = a.total, c.__loaded = a.loaded, a.total === a.loaded) { var b = this; setTimeout(function() { c.__completed || (c.getAllResponseHeaders = function() {}, b.complete(null, { status: 204, statusText: "No Content" })); }, FileAPI.noContentTimeout || 1e4); } }, headers: c.__requestHeaders }; e.data = {}, e.files = {}; for (var f = 0; f < d.data.length; f++) { var g = d.data[f]; null != g.val && null != g.val.name && null != g.val.size && null != g.val.type ? e.files[g.key] = g.val : e.data[g.key] = g.val; } setTimeout(function() { if (!FileAPI.hasFlash) throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"'; c.__fileApiXHR = FileAPI.upload(e); }, 1); } else { if (this.__origError) throw this.__origError; a.apply(c, arguments); } }; }), window.XMLHttpRequest.__isFileAPIShim = !0, window.FormData = FormData = function() { return { append: function(a, b, c) { b.__isFileAPIBlobShim && (b = b.data[0]), this.data.push({ key: a, val: b, name: c }); }, data: [], __isFileAPIShim: !0 }; }, window.Blob = Blob = function(a) { return { data: a, __isFileAPIBlobShim: !0 }; }; } }(), function() { function a(a) { return "input" === a[0].tagName.toLowerCase() && a.attr("type") && "file" === a.attr("type").toLowerCase(); } function b() { try { var a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); if (a) return !0; } catch (b) { if (void 0 !== navigator.mimeTypes["application/x-shockwave-flash"]) return !0; } return !1; } function c(a) { var b = 0, c = 0; if (window.jQuery) return jQuery(a).offset(); if (a.offsetParent) do b += a.offsetLeft - a.scrollLeft, c += a.offsetTop - a.scrollTop, a = a.offsetParent; while (a); return { left: b, top: c }; } if (FileAPI.shouldLoad) { if (FileAPI.hasFlash = b(), FileAPI.forceLoad && (FileAPI.html5 = !1), !FileAPI.upload) { var d, e, f, g, h, i = document.createElement("script"), j = document.getElementsByTagName("script"); if (window.FileAPI.jsUrl) d = window.FileAPI.jsUrl; else if (window.FileAPI.jsPath) e = window.FileAPI.jsPath; else for (f = 0; f < j.length; f++) if (h = j[f].src, g = h.search(/\/ng\-file\-upload[\-a-zA-z0-9\.]*\.js/), g > -1) { e = h.substring(0, g + 1); break; } null == FileAPI.staticPath && (FileAPI.staticPath = e), i.setAttribute("src", d || e + "FileAPI.min.js"), document.getElementsByTagName("head")[0].appendChild(i); } FileAPI.ngfFixIE = function(d, e, f) { if (!b()) throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"'; var g = function() { var b = e.parent(); d.attr("disabled") ? b && b.removeClass("js-fileapi-wrapper") : (e.attr("__ngf_flash_") || (e.unbind("change"), e.unbind("click"), e.bind("change", function(a) { h.apply(this, [ a ]), f.apply(this, [ a ]); }), e.attr("__ngf_flash_", "true")), b.addClass("js-fileapi-wrapper"), a(d) || (b.css("position", "absolute").css("top", c(d[0]).top + "px").css("left", c(d[0]).left + "px").css("width", d[0].offsetWidth + "px").css("height", d[0].offsetHeight + "px").css("filter", "alpha(opacity=0)").css("display", d.css("display")).css("overflow", "hidden").css("z-index", "900000").css("visibility", "visible"), e.css("width", d[0].offsetWidth + "px").css("height", d[0].offsetHeight + "px").css("position", "absolute").css("top", "0px").css("left", "0px"))); }; d.bind("mouseenter", g); var h = function(a) { for (var b = FileAPI.getFiles(a), c = 0; c < b.length; c++) void 0 === b[c].size && (b[c].size = 0), void 0 === b[c].name && (b[c].name = "file"), void 0 === b[c].type && (b[c].type = "undefined"); a.target || (a.target = {}), a.target.files = b, a.target.files !== b && (a.__files_ = b), (a.__files_ || a.target.files).item = function(b) { return (a.__files_ || a.target.files)[b] || null; }; }; }, FileAPI.disableFileInput = function(a, b) { b ? a.removeClass("js-fileapi-wrapper") : a.addClass("js-fileapi-wrapper"); }; } }(), window.FileReader || (window.FileReader = function() { var a = this, b = !1; this.listeners = {}, this.addEventListener = function(b, c) { a.listeners[b] = a.listeners[b] || [], a.listeners[b].push(c); }, this.removeEventListener = function(b, c) { a.listeners[b] && a.listeners[b].splice(a.listeners[b].indexOf(c), 1); }, this.dispatchEvent = function(b) { var c = a.listeners[b.type]; if (c) for (var d = 0; d < c.length; d++) c[d].call(a, b); }, this.onabort = this.onerror = this.onload = this.onloadstart = this.onloadend = this.onprogress = null; var c = function(b, c) { var d = { type: b, target: a, loaded: c.loaded, total: c.total, error: c.error }; return null != c.result && (d.target.result = c.result), d; }, d = function(d) { b || (b = !0, a.onloadstart && a.onloadstart(c("loadstart", d))); var e; "load" === d.type ? (a.onloadend && a.onloadend(c("loadend", d)), e = c("load", d), a.onload && a.onload(e), a.dispatchEvent(e)) : "progress" === d.type ? (e = c("progress", d), a.onprogress && a.onprogress(e), a.dispatchEvent(e)) : (e = c("error", d), a.onerror && a.onerror(e), a.dispatchEvent(e)); }; this.readAsDataURL = function(a) { FileAPI.readAsDataURL(a, d); }, this.readAsText = function(a) { FileAPI.readAsText(a, d); }; }), !window.XMLHttpRequest || window.FileAPI && FileAPI.shouldLoad || (window.XMLHttpRequest.prototype.setRequestHeader = function(a) { return function(b, c) { if ("__setXHR_" === b) { var d = c(this); d instanceof Function && d(this); } else a.apply(this, arguments); }; }(window.XMLHttpRequest.prototype.setRequestHeader)); var ngFileUpload = angular.module("ngFileUpload", []); ngFileUpload.version = "12.2.13", ngFileUpload.service("UploadBase", [ "$http", "$q", "$timeout", function(a, b, c) { function d(d) { function e(a) { j.notify && j.notify(a), k.progressFunc && c(function() { k.progressFunc(a); }); } function h(a) { return null != d._start && g ? { loaded: a.loaded + d._start, total: d._file && d._file.size || a.total, type: a.type, config: d, lengthComputable: !0, target: a.target } : a; } function i() { a(d).then(function(a) { if (g && d._chunkSize && !d._finished && d._file) { var b = d._file && d._file.size || 0; e({ loaded: Math.min(d._end, b), total: b, config: d, type: "progress" }), f.upload(d, !0); } else d._finished && delete d._finished, j.resolve(a); }, function(a) { j.reject(a); }, function(a) { j.notify(a); }); } d.method = d.method || "POST", d.headers = d.headers || {}; var j = d._deferred = d._deferred || b.defer(), k = j.promise; return d.disableProgress || (d.headers.__setXHR_ = function() { return function(a) { a && a.upload && a.upload.addEventListener && (d.__XHR = a, d.xhrFn && d.xhrFn(a), a.upload.addEventListener("progress", function(a) { a.config = d, e(h(a)); }, !1), a.upload.addEventListener("load", function(a) { a.lengthComputable && (a.config = d, e(h(a))); }, !1)); }; }), g ? d._chunkSize && d._end && !d._finished ? (d._start = d._end, d._end += d._chunkSize, i()) : d.resumeSizeUrl ? a.get(d.resumeSizeUrl).then(function(a) { d._start = d.resumeSizeResponseReader ? d.resumeSizeResponseReader(a.data) : parseInt((null == a.data.size ? a.data : a.data.size).toString()), d._chunkSize && (d._end = d._start + d._chunkSize), i(); }, function(a) { throw a; }) : d.resumeSize ? d.resumeSize().then(function(a) { d._start = a, d._chunkSize && (d._end = d._start + d._chunkSize), i(); }, function(a) { throw a; }) : (d._chunkSize && (d._start = 0, d._end = d._start + d._chunkSize), i()) : i(), k.success = function(a) { return k.then(function(b) { a(b.data, b.status, b.headers, d); }), k; }, k.error = function(a) { return k.then(null, function(b) { a(b.data, b.status, b.headers, d); }), k; }, k.progress = function(a) { return k.progressFunc = a, k.then(null, null, function(b) { a(b); }), k; }, k.abort = k.pause = function() { return d.__XHR && c(function() { d.__XHR.abort(); }), k; }, k.xhr = function(a) { return d.xhrFn = function(b) { return function() { b && b.apply(k, arguments), a.apply(k, arguments); }; }(d.xhrFn), k; }, f.promisesCount++, k["finally"] && k["finally"] instanceof Function && k["finally"](function() { f.promisesCount--; }), k; } function e(a) { var b = {}; for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]); return b; } var f = this; f.promisesCount = 0, this.isResumeSupported = function() { return window.Blob && window.Blob.prototype.slice; }; var g = this.isResumeSupported(); this.isUploadInProgress = function() { return f.promisesCount > 0; }, this.rename = function(a, b) { return a.ngfName = b, a; }, this.jsonBlob = function(a) { null == a || angular.isString(a) || (a = JSON.stringify(a)); var b = new window.Blob([ a ], { type: "application/json" }); return b._ngfBlob = !0, b; }, this.json = function(a) { return angular.toJson(a); }, this.isFile = function(a) { return null != a && (a instanceof window.Blob || a.flashId && a.name && a.size); }, this.upload = function(a, b) { function c(b, c) { if (b._ngfBlob) return b; if (a._file = a._file || b, null != a._start && g) { a._end && a._end >= b.size && (a._finished = !0, a._end = b.size); var d = b.slice(a._start, a._end || b.size); return d.name = b.name, d.ngfName = b.ngfName, a._chunkSize && (c.append("_chunkSize", a._chunkSize), c.append("_currentChunkSize", a._end - a._start), c.append("_chunkNumber", Math.floor(a._start / a._chunkSize)), c.append("_totalSize", a._file.size)), d; } return b; } function h(b, d, e) { if (void 0 !== d) if (angular.isDate(d) && (d = d.toISOString()), angular.isString(d)) b.append(e, d); else if (f.isFile(d)) { var g = c(d, b), i = e.split(","); i[1] && (g.ngfName = i[1].replace(/^\s+|\s+$/g, ""), e = i[0]), a._fileKey = a._fileKey || e, b.append(e, g, g.ngfName || g.name); } else if (angular.isObject(d)) { if (d.$$ngfCircularDetection) throw "ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: " + e; d.$$ngfCircularDetection = !0; try { for (var j in d) if (d.hasOwnProperty(j) && "$$ngfCircularDetection" !== j) { var k = null == a.objectKey ? "[i]" : a.objectKey; d.length && parseInt(j) > -1 && (k = null == a.arrayKey ? k : a.arrayKey), h(b, d[j], e + k.replace(/[ik]/g, j)); } } finally { delete d.$$ngfCircularDetection; } } else b.append(e, d); } function i() { a._chunkSize = f.translateScalars(a.resumeChunkSize), a._chunkSize = a._chunkSize ? parseInt(a._chunkSize.toString()) : null, a.headers = a.headers || {}, a.headers["Content-Type"] = void 0, a.transformRequest = a.transformRequest ? angular.isArray(a.transformRequest) ? a.transformRequest : [ a.transformRequest ] : [], a.transformRequest.push(function(b) { var c, d = new window.FormData(); b = b || a.fields || {}, a.file && (b.file = a.file); for (c in b) if (b.hasOwnProperty(c)) { var e = b[c]; a.formDataAppender ? a.formDataAppender(d, c, e) : h(d, e, c); } return d; }); } return b || (a = e(a)), a._isDigested || (a._isDigested = !0, i()), d(a); }, this.http = function(b) { return b = e(b), b.transformRequest = b.transformRequest || function(b) { return window.ArrayBuffer && b instanceof window.ArrayBuffer || b instanceof window.Blob ? b : a.defaults.transformRequest[0].apply(this, arguments); }, b._chunkSize = f.translateScalars(b.resumeChunkSize), b._chunkSize = b._chunkSize ? parseInt(b._chunkSize.toString()) : null, d(b); }, this.translateScalars = function(a) { if (angular.isString(a)) { if (a.search(/kb/i) === a.length - 2) return parseFloat(1024 * a.substring(0, a.length - 2)); if (a.search(/mb/i) === a.length - 2) return parseFloat(1048576 * a.substring(0, a.length - 2)); if (a.search(/gb/i) === a.length - 2) return parseFloat(1073741824 * a.substring(0, a.length - 2)); if (a.search(/b/i) === a.length - 1) return parseFloat(a.substring(0, a.length - 1)); if (a.search(/s/i) === a.length - 1) return parseFloat(a.substring(0, a.length - 1)); if (a.search(/m/i) === a.length - 1) return parseFloat(60 * a.substring(0, a.length - 1)); if (a.search(/h/i) === a.length - 1) return parseFloat(3600 * a.substring(0, a.length - 1)); } return a; }, this.urlToBlob = function(c) { var d = b.defer(); return a({ url: c, method: "get", responseType: "arraybuffer" }).then(function(a) { var b = new Uint8Array(a.data), e = a.headers("content-type") || "image/WebP", f = new window.Blob([ b ], { type: e }), g = c.match(/.*\/(.+?)(\?.*)?$/); g.length > 1 && (f.name = g[1]), d.resolve(f); }, function(a) { d.reject(a); }), d.promise; }, this.setDefaults = function(a) { this.defaults = a || {}; }, this.defaults = {}, this.version = ngFileUpload.version; } ]), ngFileUpload.service("Upload", [ "$parse", "$timeout", "$compile", "$q", "UploadExif", function(a, b, c, d, e) { function f(a, b, c) { var e = [ i.emptyPromise() ]; return angular.forEach(a, function(d, f) { 0 === d.type.indexOf("image/jpeg") && i.attrGetter("ngfFixOrientation", b, c, { $file: d }) && e.push(i.happyPromise(i.applyExifRotation(d), d).then(function(b) { a.splice(f, 1, b); })); }), d.all(e); } function g(a, b, c, e) { var f = i.attrGetter("ngfResize", b, c); if (!f || !i.isResizeSupported() || !a.length) return i.emptyPromise(); if (f instanceof Function) { var g = d.defer(); return f(a).then(function(d) { h(d, a, b, c, e).then(function(a) { g.resolve(a); }, function(a) { g.reject(a); }); }, function(a) { g.reject(a); }); } return h(f, a, b, c, e); } function h(a, b, c, e, f) { function g(d, g) { if (0 === d.type.indexOf("image")) { if (a.pattern && !i.validatePattern(d, a.pattern)) return; a.resizeIf = function(a, b) { return i.attrGetter("ngfResizeIf", c, e, { $width: a, $height: b, $file: d }); }; var j = i.resize(d, a); h.push(j), j.then(function(a) { b.splice(g, 1, a); }, function(a) { d.$error = "resize", (d.$errorMessages = d.$errorMessages || {}).resize = !0, d.$errorParam = (a ? (a.message ? a.message : a) + ": " : "") + (d && d.name), f.$ngfValidations.push({ name: "resize", valid: !1 }), i.applyModelValidation(f, b); }); } } for (var h = [ i.emptyPromise() ], j = 0; j < b.length; j++) g(b[j], j); return d.all(h); } var i = e; return i.getAttrWithDefaults = function(a, b) { if (null != a[b]) return a[b]; var c = i.defaults[b]; return null == c ? c : angular.isString(c) ? c : JSON.stringify(c); }, i.attrGetter = function(b, c, d, e) { var f = this.getAttrWithDefaults(c, b); if (!d) return f; try { return e ? a(f)(d, e) : a(f)(d); } catch (g) { if (b.search(/min|max|pattern/i)) return f; throw g; } }, i.shouldUpdateOn = function(a, b, c) { var d = i.attrGetter("ngfModelOptions", b, c); return !d || !d.updateOn || d.updateOn.split(" ").indexOf(a) > -1; }, i.emptyPromise = function() { var a = d.defer(), c = arguments; return b(function() { a.resolve.apply(a, c); }), a.promise; }, i.rejectPromise = function() { var a = d.defer(), c = arguments; return b(function() { a.reject.apply(a, c); }), a.promise; }, i.happyPromise = function(a, c) { var e = d.defer(); return a.then(function(a) { e.resolve(a); }, function(a) { b(function() { throw a; }), e.resolve(c); }), e.promise; }, i.updateModel = function(c, d, e, h, j, k, l) { function m(f, g, j, l, m) { d.$$ngfPrevValidFiles = f, d.$$ngfPrevInvalidFiles = g; var n = f && f.length ? f[0] : null, o = g && g.length ? g[0] : null; c && (i.applyModelValidation(c, f), c.$setViewValue(m ? n : f)), h && a(h)(e, { $files: f, $file: n, $newFiles: j, $duplicateFiles: l, $invalidFiles: g, $invalidFile: o, $event: k }); var p = i.attrGetter("ngfModelInvalid", d); p && b(function() { a(p).assign(e, m ? o : g); }), b(function() {}); } function n() { function a(a, b) { return a.name === b.name && (a.$ngfOrigSize || a.size) === (b.$ngfOrigSize || b.size) && a.type === b.type; } function b(b) { var c; for (c = 0; c < r.length; c++) if (a(b, r[c])) return !0; for (c = 0; c < s.length; c++) if (a(b, s[c])) return !0; return !1; } if (j) { q = [], t = []; for (var c = 0; c < j.length; c++) b(j[c]) ? t.push(j[c]) : q.push(j[c]); } } function o(a) { return angular.isArray(a) ? a : [ a ]; } function p() { function a() { b(function() { m(w ? r.concat(v) : v, w ? s.concat(u) : u, j, t, x); }, z && z.debounce ? z.debounce.change || z.debounce : 0); } var f = y ? q : v; g(f, d, e, c).then(function() { y ? i.validate(q, w ? r.length : 0, c, d, e).then(function(b) { v = b.validsFiles, u = b.invalidsFiles, a(); }) : a(); }, function() { for (var b = 0; b < f.length; b++) { var c = f[b]; if ("resize" === c.$error) { var d = v.indexOf(c); d > -1 && (v.splice(d, 1), u.push(c)), a(); } } }); } var q, r, s, t = [], u = [], v = []; r = d.$$ngfPrevValidFiles || [], s = d.$$ngfPrevInvalidFiles || [], c && c.$modelValue && (r = o(c.$modelValue)); var w = i.attrGetter("ngfKeep", d, e); q = (j || []).slice(0), ("distinct" === w || i.attrGetter("ngfKeepDistinct", d, e) === !0) && n(d, e); var x = !w && !i.attrGetter("ngfMultiple", d, e) && !i.attrGetter("multiple", d); if (!w || q.length) { i.attrGetter("ngfBeforeModelChange", d, e, { $files: j, $file: j && j.length ? j[0] : null, $newFiles: q, $duplicateFiles: t, $event: k }); var y = i.attrGetter("ngfValidateAfterResize", d, e), z = i.attrGetter("ngfModelOptions", d, e); i.validate(q, w ? r.length : 0, c, d, e).then(function(a) { l ? m(q, [], j, t, x) : (z && z.allowInvalid || y ? v = q : (v = a.validFiles, u = a.invalidFiles), i.attrGetter("ngfFixOrientation", d, e) && i.isExifSupported() ? f(v, d, e).then(function() { p(); }) : p()); }); } }, i; } ]), ngFileUpload.directive("ngfSelect", [ "$parse", "$timeout", "$compile", "Upload", function(a, b, c, d) { function e(a) { var b = a.match(/Android[^\d]*(\d+)\.(\d+)/); if (b && b.length > 2) { var c = d.defaults.androidFixMinorVersion || 4; return parseInt(b[1]) < 4 || parseInt(b[1]) === c && parseInt(b[2]) < c; } return -1 === a.indexOf("Chrome") && /.*Windows.*Safari.*/.test(a); } function f(a, b, c, d, f, h, i, j) { function k() { return "input" === b[0].tagName.toLowerCase() && c.type && "file" === c.type.toLowerCase(); } function l() { return t("ngfChange") || t("ngfSelect"); } function m(b) { if (j.shouldUpdateOn("change", c, a)) { var e = b.__files_ || b.target && b.target.files, f = []; if (!e) return; for (var g = 0; g < e.length; g++) f.push(e[g]); j.updateModel(d, c, a, l(), f.length ? f : null, b); } } function n(a, d) { function e(b) { a.attr("id", "ngf-" + b), d.attr("id", "ngf-label-" + b); } for (var f = 0; f < b[0].attributes.length; f++) { var g = b[0].attributes[f]; "type" !== g.name && "class" !== g.name && "style" !== g.name && ("id" === g.name ? (e(g.value), u.push(c.$observe("id", e))) : a.attr(g.name, g.value || "required" !== g.name && "multiple" !== g.name ? g.value : g.name)); } } function o() { if (k()) return b; var a = angular.element(''), c = angular.element(""); return c.css("visibility", "hidden").css("position", "absolute").css("overflow", "hidden").css("width", "0px").css("height", "0px").css("border", "none").css("margin", "0px").css("padding", "0px").attr("tabindex", "-1"), n(a, c), g.push({ el: b, ref: c }), document.body.appendChild(c.append(a)[0]), a; } function p(c) { if (b.attr("disabled")) return !1; if (!t("ngfSelectDisabled", a)) { var d = q(c); if (null != d) return d; r(c); try { k() || document.body.contains(x[0]) || (g.push({ el: b, ref: x.parent() }), document.body.appendChild(x.parent()[0]), x.bind("change", m)); } catch (f) {} return e(navigator.userAgent) ? setTimeout(function() { x[0].click(); }, 0) : x[0].click(), !1; } } function q(a) { var b = a.changedTouches || a.originalEvent && a.originalEvent.changedTouches; if (b) { if ("touchstart" === a.type) return w = b[0].clientX, v = b[0].clientY, !0; if ("touchend" === a.type) { var c = b[0].clientX, d = b[0].clientY; if (Math.abs(c - w) > 20 || Math.abs(d - v) > 20) return a.stopPropagation(), a.preventDefault(), !1; } return !0; } } function r(b) { j.shouldUpdateOn("click", c, a) && x.val() && (x.val(null), j.updateModel(d, c, a, l(), null, b, !0)); } function s(a) { if (x && !x.attr("__ngf_ie10_Fix_")) { if (!x[0].parentNode) return void (x = null); a.preventDefault(), a.stopPropagation(), x.unbind("click"); var b = x.clone(); return x.replaceWith(b), x = b, x.attr("__ngf_ie10_Fix_", "true"), x.bind("change", m), x.bind("click", s), x[0].click(), !1; } x.removeAttr("__ngf_ie10_Fix_"); } var t = function(a, b) { return j.attrGetter(a, c, b); }; j.registerModelChangeValidator(d, c, a); var u = []; t("ngfMultiple") && u.push(a.$watch(t("ngfMultiple"), function() { x.attr("multiple", t("ngfMultiple", a)); })), t("ngfCapture") && u.push(a.$watch(t("ngfCapture"), function() { x.attr("capture", t("ngfCapture", a)); })), t("ngfAccept") && u.push(a.$watch(t("ngfAccept"), function() { x.attr("accept", t("ngfAccept", a)); })), u.push(c.$observe("accept", function() { x.attr("accept", t("accept")); })); var v = 0, w = 0, x = b; k() || (x = o()), x.bind("change", m), k() ? b.bind("click", r) : b.bind("click touchstart touchend", p), -1 !== navigator.appVersion.indexOf("MSIE 10") && x.bind("click", s), d && d.$formatters.push(function(a) { return (null == a || 0 === a.length) && x.val() && x.val(null), a; }), a.$on("$destroy", function() { k() || x.parent().remove(), angular.forEach(u, function(a) { a(); }); }), h(function() { for (var a = 0; a < g.length; a++) { var b = g[a]; document.body.contains(b.el[0]) || (g.splice(a, 1), b.ref.remove()); } }), window.FileAPI && window.FileAPI.ngfFixIE && window.FileAPI.ngfFixIE(b, x, m); } var g = []; return { restrict: "AEC", require: "?ngModel", link: function(e, g, h, i) { f(e, g, h, i, a, b, c, d); } }; } ]), function() { function a(a) { return "img" === a.tagName.toLowerCase() ? "image" : "audio" === a.tagName.toLowerCase() ? "audio" : "video" === a.tagName.toLowerCase() ? "video" : /./; } function b(b, c, d, e, f, g, h, i) { function j(a) { var g = b.attrGetter("ngfNoObjectUrl", f, d); b.dataUrl(a, g)["finally"](function() { c(function() { var b = (g ? a.$ngfDataUrl : a.$ngfBlobUrl) || a.$ngfDataUrl; i ? e.css("background-image", "url('" + (b || "") + "')") : e.attr("src", b), b ? e.removeClass("ng-hide") : e.addClass("ng-hide"); }); }); } c(function() { var c = d.$watch(f[g], function(c) { var k = h; if ("ngfThumbnail" === g && (k || (k = { width: e[0].naturalWidth || e[0].clientWidth, height: e[0].naturalHeight || e[0].clientHeight }), 0 === k.width && window.getComputedStyle)) { var l = getComputedStyle(e[0]); l.width && l.width.indexOf("px") > -1 && l.height && l.height.indexOf("px") > -1 && (k = { width: parseInt(l.width.slice(0, -2)), height: parseInt(l.height.slice(0, -2)) }); } return angular.isString(c) ? (e.removeClass("ng-hide"), i ? e.css("background-image", "url('" + c + "')") : e.attr("src", c)) : void (!c || !c.type || 0 !== c.type.search(a(e[0])) || i && 0 !== c.type.indexOf("image") ? e.addClass("ng-hide") : k && b.isResizeSupported() ? (k.resizeIf = function(a, e) { return b.attrGetter("ngfResizeIf", f, d, { $width: a, $height: e, $file: c }); }, b.resize(c, k).then(function(a) { j(a); }, function(a) { throw a; })) : j(c)); }); d.$on("$destroy", function() { c(); }); }); } ngFileUpload.service("UploadDataUrl", [ "UploadBase", "$timeout", "$q", function(a, b, c) { var d = a; return d.base64DataUrl = function(a) { if (angular.isArray(a)) { var b = c.defer(), e = 0; return angular.forEach(a, function(c) { d.dataUrl(c, !0)["finally"](function() { if (e++, e === a.length) { var c = []; angular.forEach(a, function(a) { c.push(a.$ngfDataUrl); }), b.resolve(c, a); } }); }), b.promise; } return d.dataUrl(a, !0); }, d.dataUrl = function(a, e) { if (!a) return d.emptyPromise(a, a); if (e && null != a.$ngfDataUrl || !e && null != a.$ngfBlobUrl) return d.emptyPromise(e ? a.$ngfDataUrl : a.$ngfBlobUrl, a); var f = e ? a.$$ngfDataUrlPromise : a.$$ngfBlobUrlPromise; if (f) return f; var g = c.defer(); return b(function() { if (window.FileReader && a && (!window.FileAPI || -1 === navigator.userAgent.indexOf("MSIE 8") || a.size < 2e4) && (!window.FileAPI || -1 === navigator.userAgent.indexOf("MSIE 9") || a.size < 4e6)) { var c = window.URL || window.webkitURL; if (c && c.createObjectURL && !e) { var f; try { f = c.createObjectURL(a); } catch (h) { return void b(function() { a.$ngfBlobUrl = "", g.reject(); }); } b(function() { if (a.$ngfBlobUrl = f, f) { g.resolve(f, a), d.blobUrls = d.blobUrls || [], d.blobUrlsTotalSize = d.blobUrlsTotalSize || 0, d.blobUrls.push({ url: f, size: a.size }), d.blobUrlsTotalSize += a.size || 0; for (var b = d.defaults.blobUrlsMaxMemory || 268435456, e = d.defaults.blobUrlsMaxQueueSize || 200; (d.blobUrlsTotalSize > b || d.blobUrls.length > e) && d.blobUrls.length > 1; ) { var h = d.blobUrls.splice(0, 1)[0]; c.revokeObjectURL(h.url), d.blobUrlsTotalSize -= h.size; } } }); } else { var i = new FileReader(); i.onload = function(c) { b(function() { a.$ngfDataUrl = c.target.result, g.resolve(c.target.result, a), b(function() { delete a.$ngfDataUrl; }, 1e3); }); }, i.onerror = function() { b(function() { a.$ngfDataUrl = "", g.reject(); }); }, i.readAsDataURL(a); } } else b(function() { a[e ? "$ngfDataUrl" : "$ngfBlobUrl"] = "", g.reject(); }); }), f = e ? a.$$ngfDataUrlPromise = g.promise : a.$$ngfBlobUrlPromise = g.promise, f["finally"](function() { delete a[e ? "$$ngfDataUrlPromise" : "$$ngfBlobUrlPromise"]; }), f; }, d; } ]), ngFileUpload.directive("ngfSrc", [ "Upload", "$timeout", function(a, c) { return { restrict: "AE", link: function(d, e, f) { b(a, c, d, e, f, "ngfSrc", a.attrGetter("ngfResize", f, d), !1); } }; } ]), ngFileUpload.directive("ngfBackground", [ "Upload", "$timeout", function(a, c) { return { restrict: "AE", link: function(d, e, f) { b(a, c, d, e, f, "ngfBackground", a.attrGetter("ngfResize", f, d), !0); } }; } ]), ngFileUpload.directive("ngfThumbnail", [ "Upload", "$timeout", function(a, c) { return { restrict: "AE", link: function(d, e, f) { var g = a.attrGetter("ngfSize", f, d); b(a, c, d, e, f, "ngfThumbnail", g, a.attrGetter("ngfAsBackground", f, d)); } }; } ]), ngFileUpload.config([ "$compileProvider", function(a) { a.imgSrcSanitizationWhitelist && a.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/), a.aHrefSanitizationWhitelist && a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/); } ]), ngFileUpload.filter("ngfDataUrl", [ "UploadDataUrl", "$sce", function(a, b) { return function(c, d, e) { if (angular.isString(c)) return b.trustAsResourceUrl(c); var f = c && ((d ? c.$ngfDataUrl : c.$ngfBlobUrl) || c.$ngfDataUrl); return c && !f ? (!c.$ngfDataUrlFilterInProgress && angular.isObject(c) && (c.$ngfDataUrlFilterInProgress = !0, a.dataUrl(c, d)), "") : (c && delete c.$ngfDataUrlFilterInProgress, (c && f ? e ? b.trustAsResourceUrl(f) : f : c) || ""); }; } ]); }(), ngFileUpload.service("UploadValidate", [ "UploadDataUrl", "$q", "$timeout", function(a, b, c) { function d(a) { var b = "", c = []; if (a.length > 2 && "/" === a[0] && "/" === a[a.length - 1]) b = a.substring(1, a.length - 1); else { var e = a.split(","); if (e.length > 1) for (var f = 0; f < e.length; f++) { var g = d(e[f]); g.regexp ? (b += "(" + g.regexp + ")", f < e.length - 1 && (b += "|")) : c = c.concat(g.excludes); } else 0 === a.indexOf("!") ? c.push("^((?!" + d(a.substring(1)).regexp + ").)*$") : (0 === a.indexOf(".") && (a = "*" + a), b = "^" + a.replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]", "g"), "\\$&") + "$", b = b.replace(/\\\*/g, ".*").replace(/\\\?/g, ".")); } return { regexp: b, excludes: c }; } function e(a, b) { null == b || a.$dirty || (a.$setDirty ? a.$setDirty() : a.$dirty = !0); } var f = a; return f.validatePattern = function(a, b) { if (!b) return !0; var c = d(b), e = !0; if (c.regexp && c.regexp.length) { var f = new RegExp(c.regexp, "i"); e = null != a.type && f.test(a.type) || null != a.name && f.test(a.name); } for (var g = c.excludes.length; g--; ) { var h = new RegExp(c.excludes[g], "i"); e = e && (null == a.type || h.test(a.type)) && (null == a.name || h.test(a.name)); } return e; }, f.ratioToFloat = function(a) { var b = a.toString(), c = b.search(/[x:]/i); return b = c > -1 ? parseFloat(b.substring(0, c)) / parseFloat(b.substring(c + 1)) : parseFloat(b); }, f.registerModelChangeValidator = function(a, b, c) { a && a.$formatters.push(function(d) { if (a.$dirty) { var e = d; d && !angular.isArray(d) && (e = [ d ]), f.validate(e, 0, a, b, c).then(function() { f.applyModelValidation(a, e); }); } return d; }); }, f.applyModelValidation = function(a, b) { e(a, b), angular.forEach(a.$ngfValidations, function(b) { a.$setValidity(b.name, b.valid); }); }, f.getValidationAttr = function(a, b, c, d, e) { var g = "ngf" + c[0].toUpperCase() + c.substr(1), h = f.attrGetter(g, a, b, { $file: e }); if (null == h && (h = f.attrGetter("ngfValidate", a, b, { $file: e }))) { var i = (d || c).split("."); h = h[i[0]], i.length > 1 && (h = h && h[i[1]]); } return h; }, f.validate = function(a, c, d, e, g) { function h(b, c, h) { if (a) { for (var i = a.length, j = null; i--; ) { var n = a[i]; if (n) { var o = f.getValidationAttr(e, g, b, c, n); null != o && (h(n, o, i) || (-1 === k.indexOf(b) ? (n.$error = b, (n.$errorMessages = n.$errorMessages || {})[b] = !0, n.$errorParam = o, -1 === m.indexOf(n) && m.push(n), l || a.splice(i, 1), j = !1) : a.splice(i, 1))); } } null !== j && d.$ngfValidations.push({ name: b, valid: j }); } } function i(c, h, i, n, o) { function p(b, d, e) { function f(f) { if (f()) if (-1 === k.indexOf(c)) { if (d.$error = c, (d.$errorMessages = d.$errorMessages || {})[c] = !0, d.$errorParam = e, -1 === m.indexOf(d) && m.push(d), !l) { var g = a.indexOf(d); g > -1 && a.splice(g, 1); } b.resolve(!1); } else { var h = a.indexOf(d); h > -1 && a.splice(h, 1), b.resolve(!0); } else b.resolve(!0); } null != e ? n(d, e).then(function(a) { f(function() { return !o(a, e); }); }, function() { f(function() { return j("ngfValidateForce", { $file: d }); }); }) : b.resolve(!0); } var q = [ f.emptyPromise(!0) ]; a && (a = void 0 === a.length ? [ a ] : a, angular.forEach(a, function(a) { var d = b.defer(); return q.push(d.promise), !i || null != a.type && 0 === a.type.search(i) ? void ("dimensions" === c && null != f.attrGetter("ngfDimensions", e) ? f.imageDimensions(a).then(function(b) { p(d, a, j("ngfDimensions", { $file: a, $width: b.width, $height: b.height })); }, function() { d.resolve(!1); }) : "duration" === c && null != f.attrGetter("ngfDuration", e) ? f.mediaDuration(a).then(function(b) { p(d, a, j("ngfDuration", { $file: a, $duration: b })); }, function() { d.resolve(!1); }) : p(d, a, f.getValidationAttr(e, g, c, h, a))) : void d.resolve(!0); })); var r = b.defer(); return b.all(q).then(function(a) { for (var b = !0, e = 0; e < a.length; e++) if (!a[e]) { b = !1; break; } d.$ngfValidations.push({ name: c, valid: b }), r.resolve(b); }), r.promise; } d = d || {}, d.$ngfValidations = d.$ngfValidations || [], angular.forEach(d.$ngfValidations, function(a) { a.valid = !0; }); var j = function(a, b) { return f.attrGetter(a, e, g, b); }, k = (f.attrGetter("ngfIgnoreInvalid", e, g) || "").split(" "), l = f.attrGetter("ngfRunAllValidations", e, g); if (null == a || 0 === a.length) return f.emptyPromise({ validFiles: a, invalidFiles: [] }); a = void 0 === a.length ? [ a ] : a.slice(0); var m = []; h("pattern", null, f.validatePattern), h("minSize", "size.min", function(a, b) { return a.size + .1 >= f.translateScalars(b); }), h("maxSize", "size.max", function(a, b) { return a.size - .1 <= f.translateScalars(b); }); var n = 0; if (h("maxTotalSize", null, function(b, c) { return n += b.size, !(n > f.translateScalars(c)) || (a.splice(0, a.length), !1); }), h("validateFn", null, function(a, b) { return b === !0 || null === b || "" === b; }), !a.length) return f.emptyPromise({ validFiles: [], invalidFiles: m }); var o = b.defer(), p = []; return p.push(i("maxHeight", "height.max", /image/, this.imageDimensions, function(a, b) { return a.height <= b; })), p.push(i("minHeight", "height.min", /image/, this.imageDimensions, function(a, b) { return a.height >= b; })), p.push(i("maxWidth", "width.max", /image/, this.imageDimensions, function(a, b) { return a.width <= b; })), p.push(i("minWidth", "width.min", /image/, this.imageDimensions, function(a, b) { return a.width >= b; })), p.push(i("dimensions", null, /image/, function(a, b) { return f.emptyPromise(b); }, function(a) { return a; })), p.push(i("ratio", null, /image/, this.imageDimensions, function(a, b) { for (var c = b.toString().split(","), d = !1, e = 0; e < c.length; e++) Math.abs(a.width / a.height - f.ratioToFloat(c[e])) < .01 && (d = !0); return d; })), p.push(i("maxRatio", "ratio.max", /image/, this.imageDimensions, function(a, b) { return a.width / a.height - f.ratioToFloat(b) < 1e-4; })), p.push(i("minRatio", "ratio.min", /image/, this.imageDimensions, function(a, b) { return a.width / a.height - f.ratioToFloat(b) > -1e-4; })), p.push(i("maxDuration", "duration.max", /audio|video/, this.mediaDuration, function(a, b) { return a <= f.translateScalars(b); })), p.push(i("minDuration", "duration.min", /audio|video/, this.mediaDuration, function(a, b) { return a >= f.translateScalars(b); })), p.push(i("duration", null, /audio|video/, function(a, b) { return f.emptyPromise(b); }, function(a) { return a; })), p.push(i("validateAsyncFn", null, null, function(a, b) { return b; }, function(a) { return a === !0 || null === a || "" === a; })), b.all(p).then(function() { if (l) for (var b = 0; b < a.length; b++) { var d = a[b]; d.$error && a.splice(b--, 1); } l = !1, h("maxFiles", null, function(a, b, d) { return b > c + d; }), o.resolve({ validFiles: a, invalidFiles: m }); }), o.promise; }, f.imageDimensions = function(a) { if (a.$ngfWidth && a.$ngfHeight) { var d = b.defer(); return c(function() { d.resolve({ width: a.$ngfWidth, height: a.$ngfHeight }); }), d.promise; } if (a.$ngfDimensionPromise) return a.$ngfDimensionPromise; var e = b.defer(); return c(function() { return 0 !== a.type.indexOf("image") ? void e.reject("not image") : void f.dataUrl(a).then(function(b) { function d() { var b = h[0].naturalWidth || h[0].clientWidth, c = h[0].naturalHeight || h[0].clientHeight; h.remove(), a.$ngfWidth = b, a.$ngfHeight = c, e.resolve({ width: b, height: c }); } function f() { h.remove(), e.reject("load error"); } function g() { c(function() { h[0].parentNode && (h[0].clientWidth ? d() : i++ > 10 ? f() : g()); }, 1e3); } var h = angular.element("").attr("src", b).css("visibility", "hidden").css("position", "fixed").css("max-width", "none !important").css("max-height", "none !important"); h.on("load", d), h.on("error", f); var i = 0; g(), angular.element(document.getElementsByTagName("body")[0]).append(h); }, function() { e.reject("load error"); }); }), a.$ngfDimensionPromise = e.promise, a.$ngfDimensionPromise["finally"](function() { delete a.$ngfDimensionPromise; }), a.$ngfDimensionPromise; }, f.mediaDuration = function(a) { if (a.$ngfDuration) { var d = b.defer(); return c(function() { d.resolve(a.$ngfDuration); }), d.promise; } if (a.$ngfDurationPromise) return a.$ngfDurationPromise; var e = b.defer(); return c(function() { return 0 !== a.type.indexOf("audio") && 0 !== a.type.indexOf("video") ? void e.reject("not media") : void f.dataUrl(a).then(function(b) { function d() { var b = h[0].duration; a.$ngfDuration = b, h.remove(), e.resolve(b); } function f() { h.remove(), e.reject("load error"); } function g() { c(function() { h[0].parentNode && (h[0].duration ? d() : i > 10 ? f() : g()); }, 1e3); } var h = angular.element(0 === a.type.indexOf("audio") ? "