/* Minification failed. Returning unminified contents.
(475,62-69): run-time error JS1019: Can't have 'break' outside of loop: break a
(475,22-29): run-time error JS1019: Can't have 'break' outside of loop: break a
(367,285-292): run-time error JS1019: Can't have 'break' outside of loop: break a
(359,468-475): run-time error JS1019: Can't have 'break' outside of loop: break a
(40,89-96): run-time error JS1019: Can't have 'break' outside of loop: break n
 */
/**
 * @license
 * lodash 3.10.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
 * Build: `lodash compat -o ./lodash.js`
 */
; (function () {
    function n(n, t) { if (n !== t) { var r = null === n, e = n === w, u = n === n, o = null === t, i = t === w, f = t === t; if (n > t && !o || !u || r && !i && f || e && f) return 1; if (n < t && !r || !f || o && !e && u || i && u) return -1 } return 0 } function t(n, t, r) { for (var e = n.length, u = r ? e : -1; r ? u-- : ++u < e;) if (t(n[u], u, n)) return u; return -1 } function r(n, t, r) { if (t !== t) return p(n, r); r -= 1; for (var e = n.length; ++r < e;) if (n[r] === t) return r; return -1 } function e(n) { return typeof n == "function" || false } function u(n) { return null == n ? "" : n + "" } function o(n, t) {
        for (var r = -1, e = n.length; ++r < e && -1 < t.indexOf(n.charAt(r)) ;);
        return r
    } function i(n, t) { for (var r = n.length; r-- && -1 < t.indexOf(n.charAt(r)) ;); return r } function f(t, r) { return n(t.a, r.a) || t.b - r.b } function a(n) { return Nn[n] } function c(n) { return Tn[n] } function l(n, t, r) { return t ? n = Bn[n] : r && (n = Dn[n]), "\\" + n } function s(n) { return "\\" + Dn[n] } function p(n, t, r) { var e = n.length; for (t += r ? 0 : -1; r ? t-- : ++t < e;) { var u = n[t]; if (u !== u) return t } return -1 } function h(n) { return !!n && typeof n == "object" } function _(n) {
        return 160 >= n && 9 <= n && 13 >= n || 32 == n || 160 == n || 5760 == n || 6158 == n || 8192 <= n && (8202 >= n || 8232 == n || 8233 == n || 8239 == n || 8287 == n || 12288 == n || 65279 == n);
    } function v(n, t) { for (var r = -1, e = n.length, u = -1, o = []; ++r < e;) n[r] === t && (n[r] = P, o[++u] = r); return o } function g(n) { for (var t = -1, r = n.length; ++t < r && _(n.charCodeAt(t)) ;); return t } function y(n) { for (var t = n.length; t-- && _(n.charCodeAt(t)) ;); return t } function d(n) { return Pn[n] } function m(_) {
        function Nn(n) { if (h(n) && !(Wo(n) || n instanceof zn)) { if (n instanceof Pn) return n; if (eu.call(n, "__chain__") && eu.call(n, "__wrapped__")) return qr(n) } return new Pn(n) } function Tn() { } function Pn(n, t, r) {
            this.__wrapped__ = n, this.__actions__ = r || [],
            this.__chain__ = !!t
        } function zn(n) { this.__wrapped__ = n, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = false, this.__iteratees__ = [], this.__takeCount__ = Cu, this.__views__ = [] } function Bn() { this.__data__ = {} } function Dn(n) { var t = n ? n.length : 0; for (this.data = { hash: mu(null), set: new hu }; t--;) this.push(n[t]) } function Mn(n, t) { var r = n.data; return (typeof t == "string" || de(t) ? r.set.has(t) : r.hash[t]) ? 0 : -1 } function qn(n, t) { var r = -1, e = n.length; for (t || (t = De(e)) ; ++r < e;) t[r] = n[r]; return t } function Kn(n, t) {
            for (var r = -1, e = n.length; ++r < e && false !== t(n[r], r, n) ;);
            return n
        } function Vn(n, t) { for (var r = -1, e = n.length; ++r < e;) if (!t(n[r], r, n)) return false; return true } function Zn(n, t) { for (var r = -1, e = n.length, u = -1, o = []; ++r < e;) { var i = n[r]; t(i, r, n) && (o[++u] = i) } return o } function Xn(n, t) { for (var r = -1, e = n.length, u = De(e) ; ++r < e;) u[r] = t(n[r], r, n); return u } function Hn(n, t) { for (var r = -1, e = t.length, u = n.length; ++r < e;) n[u + r] = t[r]; return n } function Qn(n, t, r, e) { var u = -1, o = n.length; for (e && o && (r = n[++u]) ; ++u < o;) r = t(r, n[u], u, n); return r } function nt(n, t) {
            for (var r = -1, e = n.length; ++r < e;) if (t(n[r], r, n)) return true;
            return false
        } function tt(n, t, r, e) { return n !== w && eu.call(e, r) ? n : t } function rt(n, t, r) { for (var e = -1, u = Ko(t), o = u.length; ++e < o;) { var i = u[e], f = n[i], a = r(f, t[i], i, n, t); (a === a ? a === f : f !== f) && (f !== w || i in n) || (n[i] = a) } return n } function et(n, t) { return null == t ? n : ot(t, Ko(t), n) } function ut(n, t) { for (var r = -1, e = null == n, u = !e && Sr(n), o = u ? n.length : 0, i = t.length, f = De(i) ; ++r < i;) { var a = t[r]; f[r] = u ? Ur(a, o) ? n[a] : w : e ? w : n[a] } return f } function ot(n, t, r) { r || (r = {}); for (var e = -1, u = t.length; ++e < u;) { var o = t[e]; r[o] = n[o] } return r } function it(n, t, r) {
            var e = typeof n; return "function" == e ? t === w ? n : Dt(n, t, r) : null == n ? Ne : "object" == e ? At(n) : t === w ? Be(n) : jt(n, t)
        } function ft(n, t, r, e, u, o, i) {
            var f; if (r && (f = u ? r(n, e, u) : r(n)), f !== w) return f; if (!de(n)) return n; if (e = Wo(n)) { if (f = Ir(n), !t) return qn(n, f) } else { var a = ou.call(n), c = a == K; if (a != Z && a != z && (!c || u)) return Ln[a] ? Er(n, a, t) : u ? n : {}; if (Gn(n)) return u ? n : {}; if (f = Rr(c ? {} : n), !t) return et(f, n) } for (o || (o = []), i || (i = []), u = o.length; u--;) if (o[u] == n) return i[u]; return o.push(n), i.push(f), (e ? Kn : gt)(n, function (e, u) {
                f[u] = ft(e, t, r, u, n, o, i);
            }), f
        } function at(n, t, r) { if (typeof n != "function") throw new Xe(T); return _u(function () { n.apply(w, r) }, t) } function ct(n, t) { var e = n ? n.length : 0, u = []; if (!e) return u; var o = -1, i = jr(), f = i === r, a = f && t.length >= F && mu && hu ? new Dn(t) : null, c = t.length; a && (i = Mn, f = false, t = a); n: for (; ++o < e;) if (a = n[o], f && a === a) { for (var l = c; l--;) if (t[l] === a) continue n; u.push(a) } else 0 > i(t, a, 0) && u.push(a); return u } function lt(n, t) { var r = true; return zu(n, function (n, e, u) { return r = !!t(n, e, u) }), r } function st(n, t, r, e) {
            var u = e, o = u; return zu(n, function (n, i, f) {
                i = +t(n, i, f), (r(i, u) || i === e && i === o) && (u = i, o = n)
            }), o
        } function pt(n, t) { var r = []; return zu(n, function (n, e, u) { t(n, e, u) && r.push(n) }), r } function ht(n, t, r, e) { var u; return r(n, function (n, r, o) { return t(n, r, o) ? (u = e ? r : n, false) : void 0 }), u } function _t(n, t, r, e) { e || (e = []); for (var u = -1, o = n.length; ++u < o;) { var i = n[u]; h(i) && Sr(i) && (r || Wo(i) || _e(i)) ? t ? _t(i, t, r, e) : Hn(e, i) : r || (e[e.length] = i) } return e } function vt(n, t) { return Du(n, t, Ee) } function gt(n, t) { return Du(n, t, Ko) } function yt(n, t) { return Mu(n, t, Ko) } function dt(n, t) {
            for (var r = -1, e = t.length, u = -1, o = []; ++r < e;) {
                var i = t[r]; ye(n[i]) && (o[++u] = i)
            } return o
        } function mt(n, t, r) { if (null != n) { n = Dr(n), r !== w && r in n && (t = [r]), r = 0; for (var e = t.length; null != n && r < e;) n = Dr(n)[t[r++]]; return r && r == e ? n : w } } function wt(n, t, r, e, u, o) {
            if (n === t) return true; if (null == n || null == t || !de(n) && !h(t)) return n !== n && t !== t; n: {
                var i = wt, f = Wo(n), a = Wo(t), c = B, l = B; f || (c = ou.call(n), c == z ? c = Z : c != Z && (f = je(n))), a || (l = ou.call(t), l == z ? l = Z : l != Z && je(t)); var s = c == Z && !Gn(n), a = l == Z && !Gn(t), l = c == l; if (!l || f || s) {
                    if (!e && (c = s && eu.call(n, "__wrapped__"), a = a && eu.call(t, "__wrapped__"),
                    c || a)) { n = i(c ? n.value() : n, a ? t.value() : t, r, e, u, o); break n } if (l) { for (u || (u = []), o || (o = []), c = u.length; c--;) if (u[c] == n) { n = o[c] == t; break n } u.push(n), o.push(t), n = (f ? mr : xr)(n, t, i, r, e, u, o), u.pop(), o.pop() } else n = false
                } else n = wr(n, t, c)
            } return n
        } function xt(n, t, r) {
            var e = t.length, u = e, o = !r; if (null == n) return !u; for (n = Dr(n) ; e--;) { var i = t[e]; if (o && i[2] ? i[1] !== n[i[0]] : !(i[0] in n)) return false } for (; ++e < u;) {
                var i = t[e], f = i[0], a = n[f], c = i[1]; if (o && i[2]) { if (a === w && !(f in n)) return false } else if (i = r ? r(a, c, f) : w, i === w ? !wt(c, a, r, true) : !i) return false;
            } return true
        } function bt(n, t) { var r = -1, e = Sr(n) ? De(n.length) : []; return zu(n, function (n, u, o) { e[++r] = t(n, u, o) }), e } function At(n) { var t = kr(n); if (1 == t.length && t[0][2]) { var r = t[0][0], e = t[0][1]; return function (n) { return null == n ? false : (n = Dr(n), n[r] === e && (e !== w || r in n)) } } return function (n) { return xt(n, t) } } function jt(n, t) {
            var r = Wo(n), e = Wr(n) && t === t && !de(t), u = n + ""; return n = Mr(n), function (o) {
                if (null == o) return false; var i = u; if (o = Dr(o), !(!r && e || i in o)) {
                    if (o = 1 == n.length ? o : mt(o, St(n, 0, -1)), null == o) return false; i = Gr(n), o = Dr(o);
                } return o[i] === t ? t !== w || i in o : wt(t, o[i], w, true)
            }
        } function kt(n, t, r, e, u) {
            if (!de(n)) return n; var o = Sr(t) && (Wo(t) || je(t)), i = o ? w : Ko(t); return Kn(i || t, function (f, a) {
                if (i && (a = f, f = t[a]), h(f)) { e || (e = []), u || (u = []); n: { for (var c = a, l = e, s = u, p = l.length, _ = t[c]; p--;) if (l[p] == _) { n[c] = s[p]; break n } var p = n[c], v = r ? r(p, _, c, n, t) : w, g = v === w; g && (v = _, Sr(_) && (Wo(_) || je(_)) ? v = Wo(p) ? p : Sr(p) ? qn(p) : [] : xe(_) || _e(_) ? v = _e(p) ? Ie(p) : xe(p) ? p : {} : g = false), l.push(_), s.push(v), g ? n[c] = kt(v, _, r, l, s) : (v === v ? v !== p : p === p) && (n[c] = v) } } else c = n[a],
                l = r ? r(c, f, a, n, t) : w, (s = l === w) && (l = f), l === w && (!o || a in n) || !s && (l === l ? l === c : c !== c) || (n[a] = l)
            }), n
        } function Ot(n) { return function (t) { return null == t ? w : Dr(t)[n] } } function It(n) { var t = n + ""; return n = Mr(n), function (r) { return mt(r, n, t) } } function Rt(n, t) { for (var r = n ? t.length : 0; r--;) { var e = t[r]; if (e != u && Ur(e)) { var u = e; vu.call(n, e, 1) } } return n } function Et(n, t) { return n + wu(Ru() * (t - n + 1)) } function Ct(n, t, r, e, u) { return u(n, function (n, u, o) { r = e ? (e = false, n) : t(r, n, u, o) }), r } function St(n, t, r) {
            var e = -1, u = n.length; for (t = null == t ? 0 : +t || 0,
            0 > t && (t = -t > u ? 0 : u + t), r = r === w || r > u ? u : +r || 0, 0 > r && (r += u), u = t > r ? 0 : r - t >>> 0, t >>>= 0, r = De(u) ; ++e < u;) r[e] = n[e + t]; return r
        } function Ut(n, t) { var r; return zu(n, function (n, e, u) { return r = t(n, e, u), !r }), !!r } function $t(n, t) { var r = n.length; for (n.sort(t) ; r--;) n[r] = n[r].c; return n } function Wt(t, r, e) {
            var u = br(), o = -1; return r = Xn(r, function (n) { return u(n) }), t = bt(t, function (n) { return { a: Xn(r, function (t) { return t(n) }), b: ++o, c: n } }), $t(t, function (t, r) {
                var u; n: {
                    for (var o = -1, i = t.a, f = r.a, a = i.length, c = e.length; ++o < a;) if (u = n(i[o], f[o])) {
                        if (o >= c) break n; o = e[o], u *= "asc" === o || true === o ? 1 : -1; break n
                    } u = t.b - r.b
                } return u
            })
        } function Ft(n, t) { var r = 0; return zu(n, function (n, e, u) { r += +t(n, e, u) || 0 }), r } function Lt(n, t) { var e = -1, u = jr(), o = n.length, i = u === r, f = i && o >= F, a = f && mu && hu ? new Dn(void 0) : null, c = []; a ? (u = Mn, i = false) : (f = false, a = t ? [] : c); n: for (; ++e < o;) { var l = n[e], s = t ? t(l, e, n) : l; if (i && l === l) { for (var p = a.length; p--;) if (a[p] === s) continue n; t && a.push(s), c.push(l) } else 0 > u(a, s, 0) && ((t || f) && a.push(s), c.push(l)) } return c } function Nt(n, t) {
            for (var r = -1, e = t.length, u = De(e) ; ++r < e;) u[r] = n[t[r]];
            return u
        } function Tt(n, t, r, e) { for (var u = n.length, o = e ? u : -1; (e ? o-- : ++o < u) && t(n[o], o, n) ;); return r ? St(n, e ? 0 : o, e ? o + 1 : u) : St(n, e ? o + 1 : 0, e ? u : o) } function Pt(n, t) { var r = n; r instanceof zn && (r = r.value()); for (var e = -1, u = t.length; ++e < u;) var o = t[e], r = o.func.apply(o.thisArg, Hn([r], o.args)); return r } function zt(n, t, r) { var e = 0, u = n ? n.length : e; if (typeof t == "number" && t === t && u <= Uu) { for (; e < u;) { var o = e + u >>> 1, i = n[o]; (r ? i <= t : i < t) && null !== i ? e = o + 1 : u = o } return u } return Bt(n, t, Ne, r) } function Bt(n, t, r, e) {
            t = r(t); for (var u = 0, o = n ? n.length : 0, i = t !== t, f = null === t, a = t === w; u < o;) {
                var c = wu((u + o) / 2), l = r(n[c]), s = l !== w, p = l === l; (i ? p || e : f ? p && s && (e || null != l) : a ? p && (e || s) : null == l ? 0 : e ? l <= t : l < t) ? u = c + 1 : o = c
            } return ku(o, Su)
        } function Dt(n, t, r) { if (typeof n != "function") return Ne; if (t === w) return n; switch (r) { case 1: return function (r) { return n.call(t, r) }; case 3: return function (r, e, u) { return n.call(t, r, e, u) }; case 4: return function (r, e, u, o) { return n.call(t, r, e, u, o) }; case 5: return function (r, e, u, o, i) { return n.call(t, r, e, u, o, i) } } return function () { return n.apply(t, arguments) } } function Mt(n) {
            var t = new au(n.byteLength);
            return new gu(t).set(new gu(n)), t
        } function qt(n, t, r) { for (var e = r.length, u = -1, o = ju(n.length - e, 0), i = -1, f = t.length, a = De(f + o) ; ++i < f;) a[i] = t[i]; for (; ++u < e;) a[r[u]] = n[u]; for (; o--;) a[i++] = n[u++]; return a } function Kt(n, t, r) { for (var e = -1, u = r.length, o = -1, i = ju(n.length - u, 0), f = -1, a = t.length, c = De(i + a) ; ++o < i;) c[o] = n[o]; for (i = o; ++f < a;) c[i + f] = t[f]; for (; ++e < u;) c[i + r[e]] = n[o++]; return c } function Vt(n, t) {
            return function (r, e, u) {
                var o = t ? t() : {}; if (e = br(e, u, 3), Wo(r)) {
                    u = -1; for (var i = r.length; ++u < i;) {
                        var f = r[u]; n(o, f, e(f, u, r), r);
                    }
                } else zu(r, function (t, r, u) { n(o, t, e(t, r, u), u) }); return o
            }
        } function Zt(n) { return pe(function (t, r) { var e = -1, u = null == t ? 0 : r.length, o = 2 < u ? r[u - 2] : w, i = 2 < u ? r[2] : w, f = 1 < u ? r[u - 1] : w; for (typeof o == "function" ? (o = Dt(o, f, 5), u -= 2) : (o = typeof f == "function" ? f : w, u -= o ? 1 : 0), i && $r(r[0], r[1], i) && (o = 3 > u ? w : o, u = 1) ; ++e < u;) (i = r[e]) && n(t, i, o); return t }) } function Yt(n, t) { return function (r, e) { var u = r ? Vu(r) : 0; if (!Lr(u)) return n(r, e); for (var o = t ? u : -1, i = Dr(r) ; (t ? o-- : ++o < u) && false !== e(i[o], o, i) ;); return r } } function Gt(n) {
            return function (t, r, e) {
                var u = Dr(t); e = e(t); for (var o = e.length, i = n ? o : -1; n ? i-- : ++i < o;) { var f = e[i]; if (false === r(u[f], f, u)) break } return t
            }
        } function Jt(n, t) { function r() { return (this && this !== Yn && this instanceof r ? e : n).apply(t, arguments) } var e = Ht(n); return r } function Xt(n) { return function (t) { var r = -1; t = Fe(Ue(t)); for (var e = t.length, u = ""; ++r < e;) u = n(u, t[r], r); return u } } function Ht(n) {
            return function () {
                var t = arguments; switch (t.length) {
                    case 0: return new n; case 1: return new n(t[0]); case 2: return new n(t[0], t[1]); case 3: return new n(t[0], t[1], t[2]);
                    case 4: return new n(t[0], t[1], t[2], t[3]); case 5: return new n(t[0], t[1], t[2], t[3], t[4]); case 6: return new n(t[0], t[1], t[2], t[3], t[4], t[5]); case 7: return new n(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
                } var r = Pu(n.prototype), t = n.apply(r, t); return de(t) ? t : r
            }
        } function Qt(n) { function t(r, e, u) { return u && $r(r, e, u) && (e = w), r = dr(r, n, w, w, w, w, w, e), r.placeholder = t.placeholder, r } return t } function nr(n, t) { return pe(function (r) { var e = r[0]; return null == e ? e : (r.push(t), n.apply(w, r)) }) } function tr(n, t) {
            return function (r, e, u) {
                if (u && $r(r, e, u) && (e = w), e = br(e, u, 3), 1 == e.length) { u = r = Wo(r) ? r : Br(r); for (var o = e, i = -1, f = u.length, a = t, c = a; ++i < f;) { var l = u[i], s = +o(l); n(s, a) && (a = s, c = l) } if (u = c, !r.length || u !== t) return u } return st(r, e, n, t)
            }
        } function rr(n, r) { return function (e, u, o) { return u = br(u, o, 3), Wo(e) ? (u = t(e, u, r), -1 < u ? e[u] : w) : ht(e, u, n) } } function er(n) { return function (r, e, u) { return r && r.length ? (e = br(e, u, 3), t(r, e, n)) : -1 } } function ur(n) { return function (t, r, e) { return r = br(r, e, 3), ht(t, r, n, true) } } function or(n) {
            return function () {
                for (var t, r = arguments.length, e = n ? r : -1, u = 0, o = De(r) ; n ? e-- : ++e < r;) {
                    var i = o[u++] = arguments[e]; if (typeof i != "function") throw new Xe(T); !t && Pn.prototype.thru && "wrapper" == Ar(i) && (t = new Pn([], true))
                } for (e = t ? -1 : r; ++e < r;) { var i = o[e], u = Ar(i), f = "wrapper" == u ? Ku(i) : w; t = f && Fr(f[0]) && f[1] == (E | k | I | C) && !f[4].length && 1 == f[9] ? t[Ar(f[0])].apply(t, f[3]) : 1 == i.length && Fr(i) ? t[u]() : t.thru(i) } return function () { var n = arguments, e = n[0]; if (t && 1 == n.length && Wo(e) && e.length >= F) return t.plant(e).value(); for (var u = 0, n = r ? o[u].apply(this, n) : e; ++u < r;) n = o[u].call(this, n); return n }
            }
        } function ir(n, t) {
            return function (r, e, u) { return typeof e == "function" && u === w && Wo(r) ? n(r, e) : t(r, Dt(e, u, 3)) }
        } function fr(n) { return function (t, r, e) { return (typeof r != "function" || e !== w) && (r = Dt(r, e, 3)), n(t, r, Ee) } } function ar(n) { return function (t, r, e) { return (typeof r != "function" || e !== w) && (r = Dt(r, e, 3)), n(t, r) } } function cr(n) { return function (t, r, e) { var u = {}; return r = br(r, e, 3), gt(t, function (t, e, o) { o = r(t, e, o), e = n ? o : e, t = n ? t : o, u[e] = t }), u } } function lr(n) { return function (t, r, e) { return t = u(t), (n ? t : "") + _r(t, r, e) + (n ? "" : t) } } function sr(n) {
            var t = pe(function (r, e) { var u = v(e, t.placeholder); return dr(r, n, w, e, u) }); return t
        } function pr(n, t) { return function (r, e, u, o) { var i = 3 > arguments.length; return typeof e == "function" && o === w && Wo(r) ? n(r, e, u, i) : Ct(r, br(e, o, 4), u, i, t) } } function hr(n, t, r, e, u, o, i, f, a, c) {
            function l() {
                for (var m = arguments.length, x = m, j = De(m) ; x--;) j[x] = arguments[x]; if (e && (j = qt(j, e, u)), o && (j = Kt(j, o, i)), _ || y) {
                    var x = l.placeholder, k = v(j, x), m = m - k.length; if (m < c) {
                        var O = f ? qn(f) : w, m = ju(c - m, 0), E = _ ? k : w, k = _ ? w : k, C = _ ? j : w, j = _ ? w : j; return t |= _ ? I : R, t &= ~(_ ? R : I),
                        g || (t &= ~(b | A)), j = [n, t, r, C, E, j, k, O, a, m], O = hr.apply(w, j), Fr(n) && Zu(O, j), O.placeholder = x, O
                    }
                } if (x = p ? r : this, O = h ? x[n] : n, f) for (m = j.length, E = ku(f.length, m), k = qn(j) ; E--;) C = f[E], j[E] = Ur(C, m) ? k[C] : w; return s && a < j.length && (j.length = a), this && this !== Yn && this instanceof l && (O = d || Ht(n)), O.apply(x, j)
            } var s = t & E, p = t & b, h = t & A, _ = t & k, g = t & j, y = t & O, d = h ? w : Ht(n); return l
        } function _r(n, t, r) { return n = n.length, t = +t, n < t && bu(t) ? (t -= n, r = null == r ? " " : r + "", $e(r, du(t / r.length)).slice(0, t)) : "" } function vr(n, t, r, e) {
            function u() {
                for (var t = -1, f = arguments.length, a = -1, c = e.length, l = De(c + f) ; ++a < c;) l[a] = e[a];
                for (; f--;) l[a++] = arguments[++t]; return (this && this !== Yn && this instanceof u ? i : n).apply(o ? r : this, l)
            } var o = t & b, i = Ht(n); return u
        } function gr(n) { var t = Ve[n]; return function (n, r) { return (r = r === w ? 0 : +r || 0) ? (r = su(10, r), t(n * r) / r) : t(n) } } function yr(n) { return function (t, r, e, u) { var o = br(e); return null == e && o === it ? zt(t, r, n) : Bt(t, r, o(e, u, 1), n) } } function dr(n, t, r, e, u, o, i, f) {
            var a = t & A; if (!a && typeof n != "function") throw new Xe(T); var c = e ? e.length : 0; if (c || (t &= ~(I | R), e = u = w), c -= u ? u.length : 0, t & R) { var l = e, s = u; e = u = w } var p = a ? w : Ku(n);
            return r = [n, t, r, e, u, l, s, o, i, f], p && (e = r[1], t = p[1], f = e | t, u = t == E && e == k || t == E && e == C && r[7].length <= p[8] || t == (E | C) && e == k, (f < E || u) && (t & b && (r[2] = p[2], f |= e & b ? 0 : j), (e = p[3]) && (u = r[3], r[3] = u ? qt(u, e, p[4]) : qn(e), r[4] = u ? v(r[3], P) : qn(p[4])), (e = p[5]) && (u = r[5], r[5] = u ? Kt(u, e, p[6]) : qn(e), r[6] = u ? v(r[5], P) : qn(p[6])), (e = p[7]) && (r[7] = qn(e)), t & E && (r[8] = null == r[8] ? p[8] : ku(r[8], p[8])), null == r[9] && (r[9] = p[9]), r[0] = p[0], r[1] = f), t = r[1], f = r[9]), r[9] = null == f ? a ? 0 : n.length : ju(f - c, 0) || 0, n = t == b ? Jt(r[0], r[2]) : t != I && t != (b | I) || r[4].length ? hr.apply(w, r) : vr.apply(w, r),
            (p ? qu : Zu)(n, r)
        } function mr(n, t, r, e, u, o, i) { var f = -1, a = n.length, c = t.length; if (a != c && (!u || c <= a)) return false; for (; ++f < a;) { var l = n[f], c = t[f], s = e ? e(u ? c : l, u ? l : c, f) : w; if (s !== w) { if (s) continue; return false } if (u) { if (!nt(t, function (n) { return l === n || r(l, n, e, u, o, i) })) return false } else if (l !== c && !r(l, c, e, u, o, i)) return false } return true } function wr(n, t, r) { switch (r) { case D: case M: return +n == +t; case q: return n.name == t.name && n.message == t.message; case V: return n != +n ? t != +t : n == +t; case Y: case G: return n == t + "" } return false } function xr(n, t, r, e, u, o, i) {
            var f = Ko(n), a = f.length, c = Ko(t).length; if (a != c && !u) return false; for (c = a; c--;) { var l = f[c]; if (!(u ? l in t : eu.call(t, l))) return false } for (var s = u; ++c < a;) { var l = f[c], p = n[l], h = t[l], _ = e ? e(u ? h : p, u ? p : h, l) : w; if (_ === w ? !r(p, h, e, u, o, i) : !_) return false; s || (s = "constructor" == l) } return s || (r = n.constructor, e = t.constructor, !(r != e && "constructor" in n && "constructor" in t) || typeof r == "function" && r instanceof r && typeof e == "function" && e instanceof e) ? true : false
        } function br(n, t, r) { var e = Nn.callback || Le, e = e === Le ? it : e; return r ? e(n, t, r) : e } function Ar(n) {
            for (var t = n.name + "", r = Fu[t], e = r ? r.length : 0; e--;) { var u = r[e], o = u.func; if (null == o || o == n) return u.name } return t
        } function jr(n, t, e) { var u = Nn.indexOf || Yr, u = u === Yr ? r : u; return n ? u(n, t, e) : u } function kr(n) { n = Ce(n); for (var t = n.length; t--;) { var r, e = n[t]; r = n[t][1], r = r === r && !de(r), e[2] = r } return n } function Or(n, t) { var r = null == n ? w : n[t]; return me(r) ? r : w } function Ir(n) { var t = n.length, r = new n.constructor(t); return t && "string" == typeof n[0] && eu.call(n, "index") && (r.index = n.index, r.input = n.input), r } function Rr(n) {
            return n = n.constructor,
            typeof n == "function" && n instanceof n || (n = Ye), new n
        } function Er(n, t, r) { var e = n.constructor; switch (t) { case J: return Mt(n); case D: case M: return new e(+n); case X: case H: case Q: case nn: case tn: case rn: case en: case un: case on: return e instanceof e && (e = Lu[t]), t = n.buffer, new e(r ? Mt(t) : t, n.byteOffset, n.length); case V: case G: return new e(n); case Y: var u = new e(n.source, kn.exec(n)); u.lastIndex = n.lastIndex } return u } function Cr(n, t, r) {
            return null == n || Wr(t, n) || (t = Mr(t), n = 1 == t.length ? n : mt(n, St(t, 0, -1)), t = Gr(t)),
            t = null == n ? n : n[t], null == t ? w : t.apply(n, r)
        } function Sr(n) { return null != n && Lr(Vu(n)) } function Ur(n, t) { return n = typeof n == "number" || Rn.test(n) ? +n : -1, t = null == t ? $u : t, -1 < n && 0 == n % 1 && n < t } function $r(n, t, r) { if (!de(r)) return false; var e = typeof t; return ("number" == e ? Sr(r) && Ur(t, r.length) : "string" == e && t in r) ? (t = r[t], n === n ? n === t : t !== t) : false } function Wr(n, t) { var r = typeof n; return "string" == r && dn.test(n) || "number" == r ? true : Wo(n) ? false : !yn.test(n) || null != t && n in Dr(t) } function Fr(n) {
            var t = Ar(n), r = Nn[t]; return typeof r == "function" && t in zn.prototype ? n === r ? true : (t = Ku(r),
            !!t && n === t[0]) : false
        } function Lr(n) { return typeof n == "number" && -1 < n && 0 == n % 1 && n <= $u } function Nr(n, t) { return n === w ? t : Fo(n, t, Nr) } function Tr(n, t) { n = Dr(n); for (var r = -1, e = t.length, u = {}; ++r < e;) { var o = t[r]; o in n && (u[o] = n[o]) } return u } function Pr(n, t) { var r = {}; return vt(n, function (n, e, u) { t(n, e, u) && (r[e] = n) }), r } function zr(n) { for (var t = Ee(n), r = t.length, e = r && n.length, u = !!e && Lr(e) && (Wo(n) || _e(n) || Ae(n)), o = -1, i = []; ++o < r;) { var f = t[o]; (u && Ur(f, e) || eu.call(n, f)) && i.push(f) } return i } function Br(n) {
            return null == n ? [] : Sr(n) ? Nn.support.unindexedChars && Ae(n) ? n.split("") : de(n) ? n : Ye(n) : Se(n);
        } function Dr(n) { if (Nn.support.unindexedChars && Ae(n)) { for (var t = -1, r = n.length, e = Ye(n) ; ++t < r;) e[t] = n.charAt(t); return e } return de(n) ? n : Ye(n) } function Mr(n) { if (Wo(n)) return n; var t = []; return u(n).replace(mn, function (n, r, e, u) { t.push(e ? u.replace(An, "$1") : r || n) }), t } function qr(n) { return n instanceof zn ? n.clone() : new Pn(n.__wrapped__, n.__chain__, qn(n.__actions__)) } function Kr(n, t, r) { return n && n.length ? ((r ? $r(n, t, r) : null == t) && (t = 1), St(n, 0 > t ? 0 : t)) : [] } function Vr(n, t, r) {
            var e = n ? n.length : 0; return e ? ((r ? $r(n, t, r) : null == t) && (t = 1),
            t = e - (+t || 0), St(n, 0, 0 > t ? 0 : t)) : []
        } function Zr(n) { return n ? n[0] : w } function Yr(n, t, e) { var u = n ? n.length : 0; if (!u) return -1; if (typeof e == "number") e = 0 > e ? ju(u + e, 0) : e; else if (e) return e = zt(n, t), e < u && (t === t ? t === n[e] : n[e] !== n[e]) ? e : -1; return r(n, t, e || 0) } function Gr(n) { var t = n ? n.length : 0; return t ? n[t - 1] : w } function Jr(n) { return Kr(n, 1) } function Xr(n, t, e, u) {
            if (!n || !n.length) return []; null != t && typeof t != "boolean" && (u = e, e = $r(n, t, u) ? w : t, t = false); var o = br(); if ((null != e || o !== it) && (e = o(e, u, 3)), t && jr() === r) {
                t = e; var i; e = -1,
                u = n.length; for (var o = -1, f = []; ++e < u;) { var a = n[e], c = t ? t(a, e, n) : a; e && i === c || (i = c, f[++o] = a) } n = f
            } else n = Lt(n, e); return n
        } function Hr(n) { if (!n || !n.length) return []; var t = -1, r = 0; n = Zn(n, function (n) { return Sr(n) ? (r = ju(n.length, r), true) : void 0 }); for (var e = De(r) ; ++t < r;) e[t] = Xn(n, Ot(t)); return e } function Qr(n, t, r) { return n && n.length ? (n = Hr(n), null == t ? n : (t = Dt(t, r, 4), Xn(n, function (n) { return Qn(n, t, w, true) }))) : [] } function ne(n, t) {
            var r = -1, e = n ? n.length : 0, u = {}; for (!e || t || Wo(n[0]) || (t = []) ; ++r < e;) {
                var o = n[r]; t ? u[o] = t[r] : o && (u[o[0]] = o[1]);
            } return u
        } function te(n) { return n = Nn(n), n.__chain__ = true, n } function re(n, t, r) { return t.call(r, n) } function ee(n, t, r) { var e = Wo(n) ? Vn : lt; return r && $r(n, t, r) && (t = w), (typeof t != "function" || r !== w) && (t = br(t, r, 3)), e(n, t) } function ue(n, t, r) { var e = Wo(n) ? Zn : pt; return t = br(t, r, 3), e(n, t) } function oe(n, t, r, e) { var u = n ? Vu(n) : 0; return Lr(u) || (n = Se(n), u = n.length), r = typeof r != "number" || e && $r(t, r, e) ? 0 : 0 > r ? ju(u + r, 0) : r || 0, typeof n == "string" || !Wo(n) && Ae(n) ? r <= u && -1 < n.indexOf(t, r) : !!u && -1 < jr(n, t, r) } function ie(n, t, r) {
            var e = Wo(n) ? Xn : bt;
            return t = br(t, r, 3), e(n, t)
        } function fe(n, t, r) { if (r ? $r(n, t, r) : null == t) { n = Br(n); var e = n.length; return 0 < e ? n[Et(0, e - 1)] : w } r = -1, n = Oe(n); var e = n.length, u = e - 1; for (t = ku(0 > t ? 0 : +t || 0, e) ; ++r < t;) { var e = Et(r, u), o = n[e]; n[e] = n[r], n[r] = o } return n.length = t, n } function ae(n, t, r) { var e = Wo(n) ? nt : Ut; return r && $r(n, t, r) && (t = w), (typeof t != "function" || r !== w) && (t = br(t, r, 3)), e(n, t) } function ce(n, t) {
            var r; if (typeof t != "function") { if (typeof n != "function") throw new Xe(T); var e = n; n = t, t = e } return function () {
                return 0 < --n && (r = t.apply(this, arguments)),
                1 >= n && (t = w), r
            }
        } function le(n, t, r) {
            function e(t, r) { r && cu(r), a = p = h = w, t && (_ = wo(), c = n.apply(s, f), p || a || (f = s = w)) } function u() { var n = t - (wo() - l); 0 >= n || n > t ? e(h, a) : p = _u(u, n) } function o() { e(g, p) } function i() { if (f = arguments, l = wo(), s = this, h = g && (p || !y), false === v) var r = y && !p; else { a || y || (_ = l); var e = v - (l - _), i = 0 >= e || e > v; i ? (a && (a = cu(a)), _ = l, c = n.apply(s, f)) : a || (a = _u(o, e)) } return i && p ? p = cu(p) : p || t === v || (p = _u(u, t)), r && (i = true, c = n.apply(s, f)), !i || p || a || (f = s = w), c } var f, a, c, l, s, p, h, _ = 0, v = false, g = true; if (typeof n != "function") throw new Xe(T);
            if (t = 0 > t ? 0 : +t || 0, true === r) var y = true, g = false; else de(r) && (y = !!r.leading, v = "maxWait" in r && ju(+r.maxWait || 0, t), g = "trailing" in r ? !!r.trailing : g); return i.cancel = function () { p && cu(p), a && cu(a), _ = 0, a = p = h = w }, i
        } function se(n, t) { if (typeof n != "function" || t && typeof t != "function") throw new Xe(T); var r = function () { var e = arguments, u = t ? t.apply(this, e) : e[0], o = r.cache; return o.has(u) ? o.get(u) : (e = n.apply(this, e), r.cache = o.set(u, e), e) }; return r.cache = new se.Cache, r } function pe(n, t) {
            if (typeof n != "function") throw new Xe(T); return t = ju(t === w ? n.length - 1 : +t || 0, 0),
            function () { for (var r = arguments, e = -1, u = ju(r.length - t, 0), o = De(u) ; ++e < u;) o[e] = r[t + e]; switch (t) { case 0: return n.call(this, o); case 1: return n.call(this, r[0], o); case 2: return n.call(this, r[0], r[1], o) } for (u = De(t + 1), e = -1; ++e < t;) u[e] = r[e]; return u[t] = o, n.apply(this, u) }
        } function he(n, t) { return n > t } function _e(n) { return h(n) && Sr(n) && eu.call(n, "callee") && !pu.call(n, "callee") } function ve(n, t, r, e) { return e = (r = typeof r == "function" ? Dt(r, e, 3) : w) ? r(n, t) : w, e === w ? wt(n, t, r) : !!e } function ge(n) {
            return h(n) && typeof n.message == "string" && ou.call(n) == q;
        } function ye(n) { return de(n) && ou.call(n) == K } function de(n) { var t = typeof n; return !!n && ("object" == t || "function" == t) } function me(n) { return null == n ? false : ye(n) ? fu.test(ru.call(n)) : h(n) && (Gn(n) ? fu : In).test(n) } function we(n) { return typeof n == "number" || h(n) && ou.call(n) == V } function xe(n) {
            var t; if (!h(n) || ou.call(n) != Z || Gn(n) || _e(n) || !(eu.call(n, "constructor") || (t = n.constructor, typeof t != "function" || t instanceof t))) return false; var r; return Nn.support.ownLast ? (vt(n, function (n, t, e) { return r = eu.call(e, t), false }), false !== r) : (vt(n, function (n, t) {
                r = t
            }), r === w || eu.call(n, r))
        } function be(n) { return de(n) && ou.call(n) == Y } function Ae(n) { return typeof n == "string" || h(n) && ou.call(n) == G } function je(n) { return h(n) && Lr(n.length) && !!Fn[ou.call(n)] } function ke(n, t) { return n < t } function Oe(n) { var t = n ? Vu(n) : 0; return Lr(t) ? t ? Nn.support.unindexedChars && Ae(n) ? n.split("") : qn(n) : [] : Se(n) } function Ie(n) { return ot(n, Ee(n)) } function Re(n) { return dt(n, Ee(n)) } function Ee(n) {
            if (null == n) return []; de(n) || (n = Ye(n)); for (var t = n.length, r = Nn.support, t = t && Lr(t) && (Wo(n) || _e(n) || Ae(n)) && t || 0, e = n.constructor, u = -1, e = ye(e) && e.prototype || nu, o = e === n, i = De(t), f = 0 < t, a = r.enumErrorProps && (n === Qe || n instanceof qe), c = r.enumPrototypes && ye(n) ; ++u < t;) i[u] = u + "";
            for (var l in n) c && "prototype" == l || a && ("message" == l || "name" == l) || f && Ur(l, t) || "constructor" == l && (o || !eu.call(n, l)) || i.push(l); if (r.nonEnumShadows && n !== nu) for (t = n === tu ? G : n === Qe ? q : ou.call(n), r = Nu[t] || Nu[Z], t == Z && (e = nu), t = Wn.length; t--;) l = Wn[t], u = r[l], o && u || (u ? !eu.call(n, l) : n[l] === e[l]) || i.push(l); return i
        } function Ce(n) { n = Dr(n); for (var t = -1, r = Ko(n), e = r.length, u = De(e) ; ++t < e;) { var o = r[t]; u[t] = [o, n[o]] } return u } function Se(n) { return Nt(n, Ko(n)) } function Ue(n) {
            return (n = u(n)) && n.replace(En, a).replace(bn, "");
        } function $e(n, t) { var r = ""; if (n = u(n), t = +t, 1 > t || !n || !bu(t)) return r; do t % 2 && (r += n), t = wu(t / 2), n += n; while (t); return r } function We(n, t, r) { var e = n; return (n = u(n)) ? (r ? $r(e, t, r) : null == t) ? n.slice(g(n), y(n) + 1) : (t += "", n.slice(o(n, t), i(n, t) + 1)) : n } function Fe(n, t, r) { return r && $r(n, t, r) && (t = w), n = u(n), n.match(t || Un) || [] } function Le(n, t, r) { return r && $r(n, t, r) && (t = w), h(n) ? Te(n) : it(n, t) } function Ne(n) { return n } function Te(n) { return At(ft(n, true)) } function Pe(n, t, r) {
            if (null == r) {
                var e = de(t), u = e ? Ko(t) : w; ((u = u && u.length ? dt(t, u) : w) ? u.length : e) || (u = false,
                r = t, t = n, n = this)
            } u || (u = dt(t, Ko(t))); var o = true, e = -1, i = ye(n), f = u.length; false === r ? o = false : de(r) && "chain" in r && (o = r.chain); for (; ++e < f;) { r = u[e]; var a = t[r]; n[r] = a, i && (n.prototype[r] = function (t) { return function () { var r = this.__chain__; if (o || r) { var e = n(this.__wrapped__); return (e.__actions__ = qn(this.__actions__)).push({ func: t, args: arguments, thisArg: n }), e.__chain__ = r, e } return t.apply(n, Hn([this.value()], arguments)) } }(a)) } return n
        } function ze() { } function Be(n) { return Wr(n) ? Ot(n) : It(n) } _ = _ ? Jn.defaults(Yn.Object(), _, Jn.pick(Yn, $n)) : Yn;
        var De = _.Array, Me = _.Date, qe = _.Error, Ke = _.Function, Ve = _.Math, Ze = _.Number, Ye = _.Object, Ge = _.RegExp, Je = _.String, Xe = _.TypeError, He = De.prototype, Qe = qe.prototype, nu = Ye.prototype, tu = Je.prototype, ru = Ke.prototype.toString, eu = nu.hasOwnProperty, uu = 0, ou = nu.toString, iu = Yn._, fu = Ge("^" + ru.call(eu).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), au = _.ArrayBuffer, cu = _.clearTimeout, lu = _.parseFloat, su = Ve.pow, pu = nu.propertyIsEnumerable, hu = Or(_, "Set"), _u = _.setTimeout, vu = He.splice, gu = _.Uint8Array, yu = Or(_, "WeakMap"), du = Ve.ceil, mu = Or(Ye, "create"), wu = Ve.floor, xu = Or(De, "isArray"), bu = _.isFinite, Au = Or(Ye, "keys"), ju = Ve.max, ku = Ve.min, Ou = Or(Me, "now"), Iu = _.parseInt, Ru = Ve.random, Eu = Ze.NEGATIVE_INFINITY, Cu = Ze.POSITIVE_INFINITY, Su = 4294967294, Uu = 2147483647, $u = 9007199254740991, Wu = yu && new yu, Fu = {}, Lu = {};
        Lu[X] = _.Float32Array, Lu[H] = _.Float64Array, Lu[Q] = _.Int8Array, Lu[nn] = _.Int16Array, Lu[tn] = _.Int32Array, Lu[rn] = gu, Lu[en] = _.Uint8ClampedArray, Lu[un] = _.Uint16Array, Lu[on] = _.Uint32Array; var Nu = {}; Nu[B] = Nu[M] = Nu[V] = { constructor: true, toLocaleString: true, toString: true, valueOf: true }, Nu[D] = Nu[G] = { constructor: true, toString: true, valueOf: true }, Nu[q] = Nu[K] = Nu[Y] = { constructor: true, toString: true }, Nu[Z] = { constructor: true }, Kn(Wn, function (n) { for (var t in Nu) if (eu.call(Nu, t)) { var r = Nu[t]; r[n] = eu.call(r, n) } }); var Tu = Nn.support = {}; !function (n) {
            var t = function () { this.x = n }, r = { 0: n, length: n }, e = []; t.prototype = { valueOf: n, y: n }; for (var u in new t) e.push(u); Tu.enumErrorProps = pu.call(Qe, "message") || pu.call(Qe, "name"), Tu.enumPrototypes = pu.call(t, "prototype"), Tu.nonEnumShadows = !/valueOf/.test(e), Tu.ownLast = "x" != e[0], Tu.spliceObjects = (vu.call(r, 0, 1), !r[0]), Tu.unindexedChars = "xx" != "x"[0] + Ye("x")[0]
        }(1, 0), Nn.templateSettings = { escape: _n, evaluate: vn, interpolate: gn, variable: "", imports: { _: Nn } }; var Pu = function () {
            function n() { } return function (t) {
                if (de(t)) {
                    n.prototype = t;
                    var r = new n; n.prototype = w
                } return r || {}
            }
        }(), zu = Yt(gt), Bu = Yt(yt, true), Du = Gt(), Mu = Gt(true), qu = Wu ? function (n, t) { return Wu.set(n, t), n } : Ne, Ku = Wu ? function (n) { return Wu.get(n) } : ze, Vu = Ot("length"), Zu = function () { var n = 0, t = 0; return function (r, e) { var u = wo(), o = W - (u - t); if (t = u, 0 < o) { if (++n >= $) return r } else n = 0; return qu(r, e) } }(), Yu = pe(function (n, t) { return h(n) && Sr(n) ? ct(n, _t(t, false, true)) : [] }), Gu = er(), Ju = er(true), Xu = pe(function (n) {
            for (var t = n.length, e = t, u = De(l), o = jr(), i = o === r, f = []; e--;) {
                var a = n[e] = Sr(a = n[e]) ? a : []; u[e] = i && 120 <= a.length && mu && hu ? new Dn(e && a) : null;
            } var i = n[0], c = -1, l = i ? i.length : 0, s = u[0]; n: for (; ++c < l;) if (a = i[c], 0 > (s ? Mn(s, a) : o(f, a, 0))) { for (e = t; --e;) { var p = u[e]; if (0 > (p ? Mn(p, a) : o(n[e], a, 0))) continue n } s && s.push(a), f.push(a) } return f
        }), Hu = pe(function (t, r) { r = _t(r); var e = ut(t, r); return Rt(t, r.sort(n)), e }), Qu = yr(), no = yr(true), to = pe(function (n) { return Lt(_t(n, false, true)) }), ro = pe(function (n, t) { return Sr(n) ? ct(n, t) : [] }), eo = pe(Hr), uo = pe(function (n) {
            var t = n.length, r = 2 < t ? n[t - 2] : w, e = 1 < t ? n[t - 1] : w; return 2 < t && typeof r == "function" ? t -= 2 : (r = 1 < t && typeof e == "function" ? (--t,
            e) : w, e = w), n.length = t, Qr(n, r, e)
        }), oo = pe(function (n) { return n = _t(n), this.thru(function (t) { t = Wo(t) ? t : [Dr(t)]; for (var r = n, e = -1, u = t.length, o = -1, i = r.length, f = De(u + i) ; ++e < u;) f[e] = t[e]; for (; ++o < i;) f[e++] = r[o]; return f }) }), io = pe(function (n, t) { return Sr(n) && (n = Br(n)), ut(n, _t(t)) }), fo = Vt(function (n, t, r) { eu.call(n, r) ? ++n[r] : n[r] = 1 }), ao = rr(zu), co = rr(Bu, true), lo = ir(Kn, zu), so = ir(function (n, t) { for (var r = n.length; r-- && false !== t(n[r], r, n) ;); return n }, Bu), po = Vt(function (n, t, r) { eu.call(n, r) ? n[r].push(t) : n[r] = [t] }), ho = Vt(function (n, t, r) {
            n[r] = t
        }), _o = pe(function (n, t, r) { var e = -1, u = typeof t == "function", o = Wr(t), i = Sr(n) ? De(n.length) : []; return zu(n, function (n) { var f = u ? t : o && null != n ? n[t] : w; i[++e] = f ? f.apply(n, r) : Cr(n, t, r) }), i }), vo = Vt(function (n, t, r) { n[r ? 0 : 1].push(t) }, function () { return [[], []] }), go = pr(Qn, zu), yo = pr(function (n, t, r, e) { var u = n.length; for (e && u && (r = n[--u]) ; u--;) r = t(r, n[u], u, n); return r }, Bu), mo = pe(function (n, t) { if (null == n) return []; var r = t[2]; return r && $r(t[0], t[1], r) && (t.length = 1), Wt(n, _t(t), []) }), wo = Ou || function () {
            return (new Me).getTime();
        }, xo = pe(function (n, t, r) { var e = b; if (r.length) var u = v(r, xo.placeholder), e = e | I; return dr(n, e, t, r, u) }), bo = pe(function (n, t) { t = t.length ? _t(t) : Re(n); for (var r = -1, e = t.length; ++r < e;) { var u = t[r]; n[u] = dr(n[u], b, n) } return n }), Ao = pe(function (n, t, r) { var e = b | A; if (r.length) var u = v(r, Ao.placeholder), e = e | I; return dr(t, e, n, r, u) }), jo = Qt(k), ko = Qt(O), Oo = pe(function (n, t) { return at(n, 1, t) }), Io = pe(function (n, t, r) { return at(n, t, r) }), Ro = or(), Eo = or(true), Co = pe(function (n, t) {
            if (t = _t(t), typeof n != "function" || !Vn(t, e)) throw new Xe(T);
            var r = t.length; return pe(function (e) { for (var u = ku(e.length, r) ; u--;) e[u] = t[u](e[u]); return n.apply(this, e) })
        }), So = sr(I), Uo = sr(R), $o = pe(function (n, t) { return dr(n, C, w, w, w, _t(t)) }), Wo = xu || function (n) { return h(n) && Lr(n.length) && ou.call(n) == B }, Fo = Zt(kt), Lo = Zt(function (n, t, r) { return r ? rt(n, t, r) : et(n, t) }), No = nr(Lo, function (n, t) { return n === w ? t : n }), To = nr(Fo, Nr), Po = ur(gt), zo = ur(yt), Bo = fr(Du), Do = fr(Mu), Mo = ar(gt), qo = ar(yt), Ko = Au ? function (n) {
            var t = null == n ? w : n.constructor; return typeof t == "function" && t.prototype === n || (typeof n == "function" ? Nn.support.enumPrototypes : Sr(n)) ? zr(n) : de(n) ? Au(n) : [];
        } : zr, Vo = cr(true), Zo = cr(), Yo = pe(function (n, t) { if (null == n) return {}; if ("function" != typeof t[0]) return t = Xn(_t(t), Je), Tr(n, ct(Ee(n), t)); var r = Dt(t[0], t[1], 3); return Pr(n, function (n, t, e) { return !r(n, t, e) }) }), Go = pe(function (n, t) { return null == n ? {} : "function" == typeof t[0] ? Pr(n, Dt(t[0], t[1], 3)) : Tr(n, _t(t)) }), Jo = Xt(function (n, t, r) { return t = t.toLowerCase(), n + (r ? t.charAt(0).toUpperCase() + t.slice(1) : t) }), Xo = Xt(function (n, t, r) { return n + (r ? "-" : "") + t.toLowerCase() }), Ho = lr(), Qo = lr(true), ni = Xt(function (n, t, r) {
            return n + (r ? "_" : "") + t.toLowerCase();
        }), ti = Xt(function (n, t, r) { return n + (r ? " " : "") + (t.charAt(0).toUpperCase() + t.slice(1)) }), ri = pe(function (n, t) { try { return n.apply(w, t) } catch (r) { return ge(r) ? r : new qe(r) } }), ei = pe(function (n, t) { return function (r) { return Cr(r, n, t) } }), ui = pe(function (n, t) { return function (r) { return Cr(n, r, t) } }), oi = gr("ceil"), ii = gr("floor"), fi = tr(he, Eu), ai = tr(ke, Cu), ci = gr("round"); return Nn.prototype = Tn.prototype, Pn.prototype = Pu(Tn.prototype), Pn.prototype.constructor = Pn, zn.prototype = Pu(Tn.prototype), zn.prototype.constructor = zn,
        Bn.prototype["delete"] = function (n) { return this.has(n) && delete this.__data__[n] }, Bn.prototype.get = function (n) { return "__proto__" == n ? w : this.__data__[n] }, Bn.prototype.has = function (n) { return "__proto__" != n && eu.call(this.__data__, n) }, Bn.prototype.set = function (n, t) { return "__proto__" != n && (this.__data__[n] = t), this }, Dn.prototype.push = function (n) { var t = this.data; typeof n == "string" || de(n) ? t.set.add(n) : t.hash[n] = true }, se.Cache = Bn, Nn.after = function (n, t) {
            if (typeof t != "function") {
                if (typeof n != "function") throw new Xe(T);
                var r = n; n = t, t = r
            } return n = bu(n = +n) ? n : 0, function () { return 1 > --n ? t.apply(this, arguments) : void 0 }
        }, Nn.ary = function (n, t, r) { return r && $r(n, t, r) && (t = w), t = n && null == t ? n.length : ju(+t || 0, 0), dr(n, E, w, w, w, w, t) }, Nn.assign = Lo, Nn.at = io, Nn.before = ce, Nn.bind = xo, Nn.bindAll = bo, Nn.bindKey = Ao, Nn.callback = Le, Nn.chain = te, Nn.chunk = function (n, t, r) { t = (r ? $r(n, t, r) : null == t) ? 1 : ju(wu(t) || 1, 1), r = 0; for (var e = n ? n.length : 0, u = -1, o = De(du(e / t)) ; r < e;) o[++u] = St(n, r, r += t); return o }, Nn.compact = function (n) {
            for (var t = -1, r = n ? n.length : 0, e = -1, u = []; ++t < r;) {
                var o = n[t]; o && (u[++e] = o)
            } return u
        }, Nn.constant = function (n) { return function () { return n } }, Nn.countBy = fo, Nn.create = function (n, t, r) { var e = Pu(n); return r && $r(n, t, r) && (t = w), t ? et(e, t) : e }, Nn.curry = jo, Nn.curryRight = ko, Nn.debounce = le, Nn.defaults = No, Nn.defaultsDeep = To, Nn.defer = Oo, Nn.delay = Io, Nn.difference = Yu, Nn.drop = Kr, Nn.dropRight = Vr, Nn.dropRightWhile = function (n, t, r) { return n && n.length ? Tt(n, br(t, r, 3), true, true) : [] }, Nn.dropWhile = function (n, t, r) { return n && n.length ? Tt(n, br(t, r, 3), true) : [] }, Nn.fill = function (n, t, r, e) {
            var u = n ? n.length : 0; if (!u) return []; for (r && typeof r != "number" && $r(n, t, r) && (r = 0, e = u), u = n.length, r = null == r ? 0 : +r || 0, 0 > r && (r = -r > u ? 0 : u + r), e = e === w || e > u ? u : +e || 0, 0 > e && (e += u), u = r > e ? 0 : e >>> 0, r >>>= 0; r < u;) n[r++] = t; return n
        }, Nn.filter = ue, Nn.flatten = function (n, t, r) { var e = n ? n.length : 0; return r && $r(n, t, r) && (t = false), e ? _t(n, t) : [] }, Nn.flattenDeep = function (n) { return n && n.length ? _t(n, true) : [] }, Nn.flow = Ro, Nn.flowRight = Eo, Nn.forEach = lo, Nn.forEachRight = so, Nn.forIn = Bo, Nn.forInRight = Do, Nn.forOwn = Mo, Nn.forOwnRight = qo, Nn.functions = Re,
        Nn.groupBy = po, Nn.indexBy = ho, Nn.initial = function (n) { return Vr(n, 1) }, Nn.intersection = Xu, Nn.invert = function (n, t, r) { r && $r(n, t, r) && (t = w), r = -1; for (var e = Ko(n), u = e.length, o = {}; ++r < u;) { var i = e[r], f = n[i]; t ? eu.call(o, f) ? o[f].push(i) : o[f] = [i] : o[f] = i } return o }, Nn.invoke = _o, Nn.keys = Ko, Nn.keysIn = Ee, Nn.map = ie, Nn.mapKeys = Vo, Nn.mapValues = Zo, Nn.matches = Te, Nn.matchesProperty = function (n, t) { return jt(n, ft(t, true)) }, Nn.memoize = se, Nn.merge = Fo, Nn.method = ei, Nn.methodOf = ui, Nn.mixin = Pe, Nn.modArgs = Co, Nn.negate = function (n) {
            if (typeof n != "function") throw new Xe(T);
            return function () { return !n.apply(this, arguments) }
        }, Nn.omit = Yo, Nn.once = function (n) { return ce(2, n) }, Nn.pairs = Ce, Nn.partial = So, Nn.partialRight = Uo, Nn.partition = vo, Nn.pick = Go, Nn.pluck = function (n, t) { return ie(n, Be(t)) }, Nn.property = Be, Nn.propertyOf = function (n) { return function (t) { return mt(n, Mr(t), t + "") } }, Nn.pull = function () { var n = arguments, t = n[0]; if (!t || !t.length) return t; for (var r = 0, e = jr(), u = n.length; ++r < u;) for (var o = 0, i = n[r]; -1 < (o = e(t, i, o)) ;) vu.call(t, o, 1); return t }, Nn.pullAt = Hu, Nn.range = function (n, t, r) {
            r && $r(n, t, r) && (t = r = w), n = +n || 0, r = null == r ? 1 : +r || 0, null == t ? (t = n, n = 0) : t = +t || 0; var e = -1; t = ju(du((t - n) / (r || 1)), 0); for (var u = De(t) ; ++e < t;) u[e] = n, n += r; return u
        }, Nn.rearg = $o, Nn.reject = function (n, t, r) { var e = Wo(n) ? Zn : pt; return t = br(t, r, 3), e(n, function (n, r, e) { return !t(n, r, e) }) }, Nn.remove = function (n, t, r) { var e = []; if (!n || !n.length) return e; var u = -1, o = [], i = n.length; for (t = br(t, r, 3) ; ++u < i;) r = n[u], t(r, u, n) && (e.push(r), o.push(u)); return Rt(n, o), e }, Nn.rest = Jr, Nn.restParam = pe, Nn.set = function (n, t, r) {
            if (null == n) return n;
            var e = t + ""; t = null != n[e] || Wr(t, n) ? [e] : Mr(t); for (var e = -1, u = t.length, o = u - 1, i = n; null != i && ++e < u;) { var f = t[e]; de(i) && (e == o ? i[f] = r : null == i[f] && (i[f] = Ur(t[e + 1]) ? [] : {})), i = i[f] } return n
        }, Nn.shuffle = function (n) { return fe(n, Cu) }, Nn.slice = function (n, t, r) { var e = n ? n.length : 0; return e ? (r && typeof r != "number" && $r(n, t, r) && (t = 0, r = e), St(n, t, r)) : [] }, Nn.sortBy = function (n, t, r) { if (null == n) return []; r && $r(n, t, r) && (t = w); var e = -1; return t = br(t, r, 3), n = bt(n, function (n, r, u) { return { a: t(n, r, u), b: ++e, c: n } }), $t(n, f) }, Nn.sortByAll = mo,
        Nn.sortByOrder = function (n, t, r, e) { return null == n ? [] : (e && $r(t, r, e) && (r = w), Wo(t) || (t = null == t ? [] : [t]), Wo(r) || (r = null == r ? [] : [r]), Wt(n, t, r)) }, Nn.spread = function (n) { if (typeof n != "function") throw new Xe(T); return function (t) { return n.apply(this, t) } }, Nn.take = function (n, t, r) { return n && n.length ? ((r ? $r(n, t, r) : null == t) && (t = 1), St(n, 0, 0 > t ? 0 : t)) : [] }, Nn.takeRight = function (n, t, r) { var e = n ? n.length : 0; return e ? ((r ? $r(n, t, r) : null == t) && (t = 1), t = e - (+t || 0), St(n, 0 > t ? 0 : t)) : [] }, Nn.takeRightWhile = function (n, t, r) {
            return n && n.length ? Tt(n, br(t, r, 3), false, true) : [];
        }, Nn.takeWhile = function (n, t, r) { return n && n.length ? Tt(n, br(t, r, 3)) : [] }, Nn.tap = function (n, t, r) { return t.call(r, n), n }, Nn.throttle = function (n, t, r) { var e = true, u = true; if (typeof n != "function") throw new Xe(T); return false === r ? e = false : de(r) && (e = "leading" in r ? !!r.leading : e, u = "trailing" in r ? !!r.trailing : u), le(n, t, { leading: e, maxWait: +t, trailing: u }) }, Nn.thru = re, Nn.times = function (n, t, r) { if (n = wu(n), 1 > n || !bu(n)) return []; var e = -1, u = De(ku(n, 4294967295)); for (t = Dt(t, r, 1) ; ++e < n;) 4294967295 > e ? u[e] = t(e) : t(e); return u }, Nn.toArray = Oe,
        Nn.toPlainObject = Ie, Nn.transform = function (n, t, r, e) { var u = Wo(n) || je(n); return t = br(t, e, 4), null == r && (u || de(n) ? (e = n.constructor, r = u ? Wo(n) ? new e : [] : Pu(ye(e) ? e.prototype : w)) : r = {}), (u ? Kn : gt)(n, function (n, e, u) { return t(r, n, e, u) }), r }, Nn.union = to, Nn.uniq = Xr, Nn.unzip = Hr, Nn.unzipWith = Qr, Nn.values = Se, Nn.valuesIn = function (n) { return Nt(n, Ee(n)) }, Nn.where = function (n, t) { return ue(n, At(t)) }, Nn.without = ro, Nn.wrap = function (n, t) { return t = null == t ? Ne : t, dr(t, I, w, [n], []) }, Nn.xor = function () {
            for (var n = -1, t = arguments.length; ++n < t;) {
                var r = arguments[n]; if (Sr(r)) var e = e ? Hn(ct(e, r), ct(r, e)) : r
            } return e ? Lt(e) : []
        }, Nn.zip = eo, Nn.zipObject = ne, Nn.zipWith = uo, Nn.backflow = Eo, Nn.collect = ie, Nn.compose = Eo, Nn.each = lo, Nn.eachRight = so, Nn.extend = Lo, Nn.iteratee = Le, Nn.methods = Re, Nn.object = ne, Nn.select = ue, Nn.tail = Jr, Nn.unique = Xr, Pe(Nn, Nn), Nn.add = function (n, t) { return (+n || 0) + (+t || 0) }, Nn.attempt = ri, Nn.camelCase = Jo, Nn.capitalize = function (n) { return (n = u(n)) && n.charAt(0).toUpperCase() + n.slice(1) }, Nn.ceil = oi, Nn.clone = function (n, t, r, e) {
            return t && typeof t != "boolean" && $r(n, t, r) ? t = false : typeof t == "function" && (e = r,
            r = t, t = false), typeof r == "function" ? ft(n, t, Dt(r, e, 3)) : ft(n, t)
        }, Nn.cloneDeep = function (n, t, r) { return typeof t == "function" ? ft(n, true, Dt(t, r, 3)) : ft(n, true) }, Nn.deburr = Ue, Nn.endsWith = function (n, t, r) { n = u(n), t += ""; var e = n.length; return r = r === w ? e : ku(0 > r ? 0 : +r || 0, e), r -= t.length, 0 <= r && n.indexOf(t, r) == r }, Nn.escape = function (n) { return (n = u(n)) && hn.test(n) ? n.replace(sn, c) : n }, Nn.escapeRegExp = function (n) { return (n = u(n)) && xn.test(n) ? n.replace(wn, l) : n || "(?:)" }, Nn.every = ee, Nn.find = ao, Nn.findIndex = Gu, Nn.findKey = Po, Nn.findLast = co,
        Nn.findLastIndex = Ju, Nn.findLastKey = zo, Nn.findWhere = function (n, t) { return ao(n, At(t)) }, Nn.first = Zr, Nn.floor = ii, Nn.get = function (n, t, r) { return n = null == n ? w : mt(n, Mr(t), t + ""), n === w ? r : n }, Nn.gt = he, Nn.gte = function (n, t) { return n >= t }, Nn.has = function (n, t) { if (null == n) return false; var r = eu.call(n, t); if (!r && !Wr(t)) { if (t = Mr(t), n = 1 == t.length ? n : mt(n, St(t, 0, -1)), null == n) return false; t = Gr(t), r = eu.call(n, t) } return r || Lr(n.length) && Ur(t, n.length) && (Wo(n) || _e(n) || Ae(n)) }, Nn.identity = Ne, Nn.includes = oe, Nn.indexOf = Yr, Nn.inRange = function (n, t, r) {
            return t = +t || 0, r === w ? (r = t, t = 0) : r = +r || 0, n >= ku(t, r) && n < ju(t, r)
        }, Nn.isArguments = _e, Nn.isArray = Wo, Nn.isBoolean = function (n) { return true === n || false === n || h(n) && ou.call(n) == D }, Nn.isDate = function (n) { return h(n) && ou.call(n) == M }, Nn.isElement = function (n) { return !!n && 1 === n.nodeType && h(n) && !xe(n) }, Nn.isEmpty = function (n) { return null == n ? true : Sr(n) && (Wo(n) || Ae(n) || _e(n) || h(n) && ye(n.splice)) ? !n.length : !Ko(n).length }, Nn.isEqual = ve, Nn.isError = ge, Nn.isFinite = function (n) { return typeof n == "number" && bu(n) }, Nn.isFunction = ye, Nn.isMatch = function (n, t, r, e) {
            return r = typeof r == "function" ? Dt(r, e, 3) : w, xt(n, kr(t), r)
        }, Nn.isNaN = function (n) { return we(n) && n != +n }, Nn.isNative = me, Nn.isNull = function (n) { return null === n }, Nn.isNumber = we, Nn.isObject = de, Nn.isPlainObject = xe, Nn.isRegExp = be, Nn.isString = Ae, Nn.isTypedArray = je, Nn.isUndefined = function (n) { return n === w }, Nn.kebabCase = Xo, Nn.last = Gr, Nn.lastIndexOf = function (n, t, r) {
            var e = n ? n.length : 0; if (!e) return -1; var u = e; if (typeof r == "number") u = (0 > r ? ju(e + r, 0) : ku(r || 0, e - 1)) + 1; else if (r) return u = zt(n, t, true) - 1, n = n[u], (t === t ? t === n : n !== n) ? u : -1;
            if (t !== t) return p(n, u, true); for (; u--;) if (n[u] === t) return u; return -1
        }, Nn.lt = ke, Nn.lte = function (n, t) { return n <= t }, Nn.max = fi, Nn.min = ai, Nn.noConflict = function () { return Yn._ = iu, this }, Nn.noop = ze, Nn.now = wo, Nn.pad = function (n, t, r) { n = u(n), t = +t; var e = n.length; return e < t && bu(t) ? (e = (t - e) / 2, t = wu(e), e = du(e), r = _r("", e, r), r.slice(0, t) + n + r) : n }, Nn.padLeft = Ho, Nn.padRight = Qo, Nn.parseInt = function (n, t, r) { return (r ? $r(n, t, r) : null == t) ? t = 0 : t && (t = +t), n = We(n), Iu(n, t || (On.test(n) ? 16 : 10)) }, Nn.random = function (n, t, r) {
            r && $r(n, t, r) && (t = r = w);
            var e = null == n, u = null == t; return null == r && (u && typeof n == "boolean" ? (r = n, n = 1) : typeof t == "boolean" && (r = t, u = true)), e && u && (t = 1, u = false), n = +n || 0, u ? (t = n, n = 0) : t = +t || 0, r || n % 1 || t % 1 ? (r = Ru(), ku(n + r * (t - n + lu("1e-" + ((r + "").length - 1))), t)) : Et(n, t)
        }, Nn.reduce = go, Nn.reduceRight = yo, Nn.repeat = $e, Nn.result = function (n, t, r) { var e = null == n ? w : Dr(n)[t]; return e === w && (null == n || Wr(t, n) || (t = Mr(t), n = 1 == t.length ? n : mt(n, St(t, 0, -1)), e = null == n ? w : Dr(n)[Gr(t)]), e = e === w ? r : e), ye(e) ? e.call(n) : e }, Nn.round = ci, Nn.runInContext = m, Nn.size = function (n) {
            var t = n ? Vu(n) : 0; return Lr(t) ? t : Ko(n).length
        }, Nn.snakeCase = ni, Nn.some = ae, Nn.sortedIndex = Qu, Nn.sortedLastIndex = no, Nn.startCase = ti, Nn.startsWith = function (n, t, r) { return n = u(n), r = null == r ? 0 : ku(0 > r ? 0 : +r || 0, n.length), n.lastIndexOf(t, r) == r }, Nn.sum = function (n, t, r) { if (r && $r(n, t, r) && (t = w), t = br(t, r, 3), 1 == t.length) { n = Wo(n) ? n : Br(n), r = n.length; for (var e = 0; r--;) e += +t(n[r]) || 0; n = e } else n = Ft(n, t); return n }, Nn.template = function (n, t, r) {
            var e = Nn.templateSettings; r && $r(n, t, r) && (t = r = w), n = u(n), t = rt(et({}, r || t), e, tt), r = rt(et({}, t.imports), e.imports, tt);
            var o, i, f = Ko(r), a = Nt(r, f), c = 0; r = t.interpolate || Cn; var l = "__p+='"; r = Ge((t.escape || Cn).source + "|" + r.source + "|" + (r === gn ? jn : Cn).source + "|" + (t.evaluate || Cn).source + "|$", "g"); var p = "sourceURL" in t ? "//# sourceURL=" + t.sourceURL + "\n" : ""; if (n.replace(r, function (t, r, e, u, f, a) { return e || (e = u), l += n.slice(c, a).replace(Sn, s), r && (o = true, l += "'+__e(" + r + ")+'"), f && (i = true, l += "';" + f + ";\n__p+='"), e && (l += "'+((__t=(" + e + "))==null?'':__t)+'"), c = a + t.length, t }), l += "';", (t = t.variable) || (l = "with(obj){" + l + "}"), l = (i ? l.replace(fn, "") : l).replace(an, "$1").replace(cn, "$1;"),
            l = "function(" + (t || "obj") + "){" + (t ? "" : "obj||(obj={});") + "var __t,__p=''" + (o ? ",__e=_.escape" : "") + (i ? ",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}" : ";") + l + "return __p}", t = ri(function () { return Ke(f, p + "return " + l).apply(w, a) }), t.source = l, ge(t)) throw t; return t
        }, Nn.trim = We, Nn.trimLeft = function (n, t, r) { var e = n; return (n = u(n)) ? n.slice((r ? $r(e, t, r) : null == t) ? g(n) : o(n, t + "")) : n }, Nn.trimRight = function (n, t, r) {
            var e = n; return (n = u(n)) ? (r ? $r(e, t, r) : null == t) ? n.slice(0, y(n) + 1) : n.slice(0, i(n, t + "") + 1) : n;
        }, Nn.trunc = function (n, t, r) {
            r && $r(n, t, r) && (t = w); var e = S; if (r = U, null != t) if (de(t)) { var o = "separator" in t ? t.separator : o, e = "length" in t ? +t.length || 0 : e; r = "omission" in t ? u(t.omission) : r } else e = +t || 0; if (n = u(n), e >= n.length) return n; if (e -= r.length, 1 > e) return r; if (t = n.slice(0, e), null == o) return t + r; if (be(o)) { if (n.slice(e).search(o)) { var i, f = n.slice(0, e); for (o.global || (o = Ge(o.source, (kn.exec(o) || "") + "g")), o.lastIndex = 0; n = o.exec(f) ;) i = n.index; t = t.slice(0, null == i ? e : i) } } else n.indexOf(o, e) != e && (o = t.lastIndexOf(o),
            -1 < o && (t = t.slice(0, o))); return t + r
        }, Nn.unescape = function (n) { return (n = u(n)) && pn.test(n) ? n.replace(ln, d) : n }, Nn.uniqueId = function (n) { var t = ++uu; return u(n) + t }, Nn.words = Fe, Nn.all = ee, Nn.any = ae, Nn.contains = oe, Nn.eq = ve, Nn.detect = ao, Nn.foldl = go, Nn.foldr = yo, Nn.head = Zr, Nn.include = oe, Nn.inject = go, Pe(Nn, function () { var n = {}; return gt(Nn, function (t, r) { Nn.prototype[r] || (n[r] = t) }), n }(), false), Nn.sample = fe, Nn.prototype.sample = function (n) {
            return this.__chain__ || null != n ? this.thru(function (t) { return fe(t, n) }) : fe(this.value());
        }, Nn.VERSION = x, Kn("bind bindKey curry curryRight partial partialRight".split(" "), function (n) { Nn[n].placeholder = Nn }), Kn(["drop", "take"], function (n, t) { zn.prototype[n] = function (r) { var e = this.__filtered__; if (e && !t) return new zn(this); r = null == r ? 1 : ju(wu(r) || 0, 0); var u = this.clone(); return e ? u.__takeCount__ = ku(u.__takeCount__, r) : u.__views__.push({ size: r, type: n + (0 > u.__dir__ ? "Right" : "") }), u }, zn.prototype[n + "Right"] = function (t) { return this.reverse()[n](t).reverse() } }), Kn(["filter", "map", "takeWhile"], function (n, t) {
            var r = t + 1, e = r != N; zn.prototype[n] = function (n, t) { var u = this.clone(); return u.__iteratees__.push({ iteratee: br(n, t, 1), type: r }), u.__filtered__ = u.__filtered__ || e, u }
        }), Kn(["first", "last"], function (n, t) { var r = "take" + (t ? "Right" : ""); zn.prototype[n] = function () { return this[r](1).value()[0] } }), Kn(["initial", "rest"], function (n, t) { var r = "drop" + (t ? "" : "Right"); zn.prototype[n] = function () { return this.__filtered__ ? new zn(this) : this[r](1) } }), Kn(["pluck", "where"], function (n, t) {
            var r = t ? "filter" : "map", e = t ? At : Be; zn.prototype[n] = function (n) {
                return this[r](e(n))
            }
        }), zn.prototype.compact = function () { return this.filter(Ne) }, zn.prototype.reject = function (n, t) { return n = br(n, t, 1), this.filter(function (t) { return !n(t) }) }, zn.prototype.slice = function (n, t) { n = null == n ? 0 : +n || 0; var r = this; return r.__filtered__ && (0 < n || 0 > t) ? new zn(r) : (0 > n ? r = r.takeRight(-n) : n && (r = r.drop(n)), t !== w && (t = +t || 0, r = 0 > t ? r.dropRight(-t) : r.take(t - n)), r) }, zn.prototype.takeRightWhile = function (n, t) { return this.reverse().takeWhile(n, t).reverse() }, zn.prototype.toArray = function () {
            return this.take(Cu);
        }, gt(zn.prototype, function (n, t) {
            var r = /^(?:filter|map|reject)|While$/.test(t), e = /^(?:first|last)$/.test(t), u = Nn[e ? "take" + ("last" == t ? "Right" : "") : t]; u && (Nn.prototype[t] = function () {
                var t = e ? [1] : arguments, o = this.__chain__, i = this.__wrapped__, f = !!this.__actions__.length, a = i instanceof zn, c = t[0], l = a || Wo(i); l && r && typeof c == "function" && 1 != c.length && (a = l = false); var s = function (n) { return e && o ? u(n, 1)[0] : u.apply(w, Hn([n], t)) }, c = { func: re, args: [s], thisArg: w }, f = a && !f; return e && !o ? f ? (i = i.clone(), i.__actions__.push(c),
                n.call(i)) : u.call(w, this.value())[0] : !e && l ? (i = f ? i : new zn(this), i = n.apply(i, t), i.__actions__.push(c), new Pn(i, o)) : this.thru(s)
            })
        }), Kn("join pop push replace shift sort splice split unshift".split(" "), function (n) {
            var t = (/^(?:replace|split)$/.test(n) ? tu : He)[n], r = /^(?:push|sort|unshift)$/.test(n) ? "tap" : "thru", e = !Tu.spliceObjects && /^(?:pop|shift|splice)$/.test(n), u = /^(?:join|pop|replace|shift)$/.test(n), o = e ? function () { var n = t.apply(this, arguments); return 0 === this.length && delete this[0], n } : t; Nn.prototype[n] = function () {
                var n = arguments; return u && !this.__chain__ ? o.apply(this.value(), n) : this[r](function (t) { return o.apply(t, n) })
            }
        }), gt(zn.prototype, function (n, t) { var r = Nn[t]; if (r) { var e = r.name + ""; (Fu[e] || (Fu[e] = [])).push({ name: t, func: r }) } }), Fu[hr(w, A).name] = [{ name: "wrapper", func: w }], zn.prototype.clone = function () {
            var n = new zn(this.__wrapped__); return n.__actions__ = qn(this.__actions__), n.__dir__ = this.__dir__, n.__filtered__ = this.__filtered__, n.__iteratees__ = qn(this.__iteratees__), n.__takeCount__ = this.__takeCount__, n.__views__ = qn(this.__views__),
            n
        }, zn.prototype.reverse = function () { if (this.__filtered__) { var n = new zn(this); n.__dir__ = -1, n.__filtered__ = true } else n = this.clone(), n.__dir__ *= -1; return n }, zn.prototype.value = function () {
            var n, t = this.__wrapped__.value(), r = this.__dir__, e = Wo(t), u = 0 > r, o = e ? t.length : 0; n = 0; for (var i = o, f = this.__views__, a = -1, c = f.length; ++a < c;) { var l = f[a], s = l.size; switch (l.type) { case "drop": n += s; break; case "dropRight": i -= s; break; case "take": i = ku(i, n + s); break; case "takeRight": n = ju(n, i - s) } } if (n = { start: n, end: i }, i = n.start, f = n.end, n = f - i,
            u = u ? f : i - 1, i = this.__iteratees__, f = i.length, a = 0, c = ku(n, this.__takeCount__), !e || o < F || o == n && c == n) return Pt(t, this.__actions__); e = []; n: for (; n-- && a < c;) { for (u += r, o = -1, l = t[u]; ++o < f;) { var p = i[o], s = p.type, p = p.iteratee(l); if (s == N) l = p; else if (!p) { if (s == L) continue n; break n } } e[a++] = l } return e
        }, Nn.prototype.chain = function () { return te(this) }, Nn.prototype.commit = function () { return new Pn(this.value(), this.__chain__) }, Nn.prototype.concat = oo, Nn.prototype.plant = function (n) {
            for (var t, r = this; r instanceof Tn;) {
                var e = qr(r);
                t ? u.__wrapped__ = e : t = e; var u = e, r = r.__wrapped__
            } return u.__wrapped__ = n, t
        }, Nn.prototype.reverse = function () { var n = this.__wrapped__, t = function (n) { return n.reverse() }; return n instanceof zn ? (this.__actions__.length && (n = new zn(this)), n = n.reverse(), n.__actions__.push({ func: re, args: [t], thisArg: w }), new Pn(n, this.__chain__)) : this.thru(t) }, Nn.prototype.toString = function () { return this.value() + "" }, Nn.prototype.run = Nn.prototype.toJSON = Nn.prototype.valueOf = Nn.prototype.value = function () {
            return Pt(this.__wrapped__, this.__actions__);
        }, Nn.prototype.collect = Nn.prototype.map, Nn.prototype.head = Nn.prototype.first, Nn.prototype.select = Nn.prototype.filter, Nn.prototype.tail = Nn.prototype.rest, Nn
    } var w, x = "3.10.1", b = 1, A = 2, j = 4, k = 8, O = 16, I = 32, R = 64, E = 128, C = 256, S = 30, U = "...", $ = 150, W = 16, F = 200, L = 1, N = 2, T = "Expected a function", P = "__lodash_placeholder__", z = "[object Arguments]", B = "[object Array]", D = "[object Boolean]", M = "[object Date]", q = "[object Error]", K = "[object Function]", V = "[object Number]", Z = "[object Object]", Y = "[object RegExp]", G = "[object String]", J = "[object ArrayBuffer]", X = "[object Float32Array]", H = "[object Float64Array]", Q = "[object Int8Array]", nn = "[object Int16Array]", tn = "[object Int32Array]", rn = "[object Uint8Array]", en = "[object Uint8ClampedArray]", un = "[object Uint16Array]", on = "[object Uint32Array]", fn = /\b__p\+='';/g, an = /\b(__p\+=)''\+/g, cn = /(__e\(.*?\)|\b__t\))\+'';/g, ln = /&(?:amp|lt|gt|quot|#39|#96);/g, sn = /[&<>"'`]/g, pn = RegExp(ln.source), hn = RegExp(sn.source), _n = /<%-([\s\S]+?)%>/g, vn = /<%([\s\S]+?)%>/g, gn = /<%=([\s\S]+?)%>/g, yn = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, dn = /^\w*$/, mn = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g, wn = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g, xn = RegExp(wn.source), bn = /[\u0300-\u036f\ufe20-\ufe23]/g, An = /\\(\\)?/g, jn = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, kn = /\w*$/, On = /^0[xX]/, In = /^\[object .+?Constructor\]$/, Rn = /^\d+$/, En = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g, Cn = /($^)/, Sn = /['\n\r\u2028\u2029\\]/g, Un = RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+", "g"), $n = "Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap".split(" "), Wn = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "), Fn = {};
    Fn[X] = Fn[H] = Fn[Q] = Fn[nn] = Fn[tn] = Fn[rn] = Fn[en] = Fn[un] = Fn[on] = true, Fn[z] = Fn[B] = Fn[J] = Fn[D] = Fn[M] = Fn[q] = Fn[K] = Fn["[object Map]"] = Fn[V] = Fn[Z] = Fn[Y] = Fn["[object Set]"] = Fn[G] = Fn["[object WeakMap]"] = false; var Ln = {}; Ln[z] = Ln[B] = Ln[J] = Ln[D] = Ln[M] = Ln[X] = Ln[H] = Ln[Q] = Ln[nn] = Ln[tn] = Ln[V] = Ln[Z] = Ln[Y] = Ln[G] = Ln[rn] = Ln[en] = Ln[un] = Ln[on] = true, Ln[q] = Ln[K] = Ln["[object Map]"] = Ln["[object Set]"] = Ln["[object WeakMap]"] = false; var Nn = {
        "\xc0": "A", "\xc1": "A", "\xc2": "A", "\xc3": "A", "\xc4": "A", "\xc5": "A", "\xe0": "a", "\xe1": "a", "\xe2": "a",
        "\xe3": "a", "\xe4": "a", "\xe5": "a", "\xc7": "C", "\xe7": "c", "\xd0": "D", "\xf0": "d", "\xc8": "E", "\xc9": "E", "\xca": "E", "\xcb": "E", "\xe8": "e", "\xe9": "e", "\xea": "e", "\xeb": "e", "\xcc": "I", "\xcd": "I", "\xce": "I", "\xcf": "I", "\xec": "i", "\xed": "i", "\xee": "i", "\xef": "i", "\xd1": "N", "\xf1": "n", "\xd2": "O", "\xd3": "O", "\xd4": "O", "\xd5": "O", "\xd6": "O", "\xd8": "O", "\xf2": "o", "\xf3": "o", "\xf4": "o", "\xf5": "o", "\xf6": "o", "\xf8": "o", "\xd9": "U", "\xda": "U", "\xdb": "U", "\xdc": "U", "\xf9": "u", "\xfa": "u", "\xfb": "u", "\xfc": "u", "\xdd": "Y",
        "\xfd": "y", "\xff": "y", "\xc6": "Ae", "\xe6": "ae", "\xde": "Th", "\xfe": "th", "\xdf": "ss"
    }, Tn = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "`": "&#96;" }, Pn = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'", "&#96;": "`" }, zn = { "function": true, object: true }, Bn = { 0: "x30", 1: "x31", 2: "x32", 3: "x33", 4: "x34", 5: "x35", 6: "x36", 7: "x37", 8: "x38", 9: "x39", A: "x41", B: "x42", C: "x43", D: "x44", E: "x45", F: "x46", a: "x61", b: "x62", c: "x63", d: "x64", e: "x65", f: "x66", n: "x6e", r: "x72", t: "x74", u: "x75", v: "x76", x: "x78" }, Dn = {
        "\\": "\\",
        "'": "'", "\n": "n", "\r": "r", "\u2028": "u2028", "\u2029": "u2029"
    }, Mn = zn[typeof exports] && exports && !exports.nodeType && exports, qn = zn[typeof module] && module && !module.nodeType && module, Kn = zn[typeof self] && self && self.Object && self, Vn = zn[typeof window] && window && window.Object && window, Zn = qn && qn.exports === Mn && Mn, Yn = Mn && qn && typeof global == "object" && global && global.Object && global || Vn !== (this && this.window) && Vn || Kn || this, Gn = function () {
        try { Object({ toString: 0 } + "") } catch (n) { return function () { return false } } return function (n) {
            return typeof n.toString != "function" && typeof (n + "") == "string"
        }
    }(), Jn = m(); typeof define == "function" && typeof define.amd == "object" && define.amd ? (Yn._ = Jn, define(function () { return Jn })) : Mn && qn ? Zn ? (qn.exports = Jn)._ = Jn : Mn._ = Jn : Yn._ = Jn
}).call(this);;
/*
 AngularJS v1.4.8
 (c) 2010-2015 Google, Inc. http://angularjs.org
 License: MIT
*/
(function(S,X,u){'use strict';function G(a){return function(){var b=arguments[0],d;d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.4.8/"+(a?a+"/":"")+b;for(b=1;b<arguments.length;b++){d=d+(1==b?"?":"&")+"p"+(b-1)+"=";var c=encodeURIComponent,e;e=arguments[b];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;d+=c(e)}return Error(d)}}function za(a){if(null==a||Xa(a))return!1;if(I(a)||E(a)||B&&a instanceof B)return!0;
var b="length"in Object(a)&&a.length;return Q(b)&&(0<=b&&b-1 in a||"function"==typeof a.item)}function n(a,b,d){var c,e;if(a)if(z(a))for(c in a)"prototype"==c||"length"==c||"name"==c||a.hasOwnProperty&&!a.hasOwnProperty(c)||b.call(d,a[c],c,a);else if(I(a)||za(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==n)a.forEach(b,d,a);else if(nc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&
b.call(d,a[c],c,a);else for(c in a)qa.call(a,c)&&b.call(d,a[c],c,a);return a}function oc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function pc(a){return function(b,d){a(d,b)}}function Td(){return++nb}function Mb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(H(g)||z(g))for(var h=Object.keys(g),k=0,l=h.length;k<l;k++){var m=h[k],r=g[m];d&&H(r)?da(r)?a[m]=new Date(r.valueOf()):Ma(r)?a[m]=new RegExp(r):r.nodeName?a[m]=r.cloneNode(!0):
Nb(r)?a[m]=r.clone():(H(a[m])||(a[m]=I(r)?[]:{}),Mb(a[m],[r],!0)):a[m]=r}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function M(a){return Mb(a,ra.call(arguments,1),!1)}function Ud(a){return Mb(a,ra.call(arguments,1),!0)}function ea(a){return parseInt(a,10)}function Ob(a,b){return M(Object.create(a),b)}function x(){}function Ya(a){return a}function na(a){return function(){return a}}function qc(a){return z(a.toString)&&a.toString!==sa}function q(a){return"undefined"===typeof a}function y(a){return"undefined"!==
typeof a}function H(a){return null!==a&&"object"===typeof a}function nc(a){return null!==a&&"object"===typeof a&&!rc(a)}function E(a){return"string"===typeof a}function Q(a){return"number"===typeof a}function da(a){return"[object Date]"===sa.call(a)}function z(a){return"function"===typeof a}function Ma(a){return"[object RegExp]"===sa.call(a)}function Xa(a){return a&&a.window===a}function Za(a){return a&&a.$evalAsync&&a.$watch}function $a(a){return"boolean"===typeof a}function sc(a){return a&&Q(a.length)&&
Vd.test(sa.call(a))}function Nb(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function Wd(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function ta(a){return F(a.nodeName||a[0]&&a[0].nodeName)}function ab(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function bb(a,b){function d(a,b){var d=b.$$hashKey,e;if(I(a)){e=0;for(var f=a.length;e<f;e++)b.push(c(a[e]))}else if(nc(a))for(e in a)b[e]=c(a[e]);else if(a&&"function"===typeof a.hasOwnProperty)for(e in a)a.hasOwnProperty(e)&&
(b[e]=c(a[e]));else for(e in a)qa.call(a,e)&&(b[e]=c(a[e]));d?b.$$hashKey=d:delete b.$$hashKey;return b}function c(a){if(!H(a))return a;var b=e.indexOf(a);if(-1!==b)return f[b];if(Xa(a)||Za(a))throw Aa("cpws");var b=!1,c;I(a)?(c=[],b=!0):sc(a)?c=new a.constructor(a):da(a)?c=new Date(a.getTime()):Ma(a)?(c=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),c.lastIndex=a.lastIndex):z(a.cloneNode)?c=a.cloneNode(!0):(c=Object.create(rc(a)),b=!0);e.push(a);f.push(c);return b?d(a,c):c}var e=[],f=[];if(b){if(sc(b))throw Aa("cpta");
if(a===b)throw Aa("cpi");I(b)?b.length=0:n(b,function(a,c){"$$hashKey"!==c&&delete b[c]});e.push(a);f.push(b);return d(a,b)}return c(a)}function ia(a,b){if(I(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(H(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function ma(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d==typeof b&&"object"==d)if(I(a)){if(!I(b))return!1;if((d=a.length)==b.length){for(c=
0;c<d;c++)if(!ma(a[c],b[c]))return!1;return!0}}else{if(da(a))return da(b)?ma(a.getTime(),b.getTime()):!1;if(Ma(a))return Ma(b)?a.toString()==b.toString():!1;if(Za(a)||Za(b)||Xa(a)||Xa(b)||I(b)||da(b)||Ma(b))return!1;d=$();for(c in a)if("$"!==c.charAt(0)&&!z(a[c])){if(!ma(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&y(b[c])&&!z(b[c]))return!1;return!0}return!1}function cb(a,b,d){return a.concat(ra.call(b,d))}function tc(a,b){var d=2<arguments.length?ra.call(arguments,2):
[];return!z(b)||b instanceof RegExp?b:d.length?function(){return arguments.length?b.apply(a,cb(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function Xd(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=u:Xa(b)?d="$WINDOW":b&&X===b?d="$DOCUMENT":Za(b)&&(d="$SCOPE");return d}function db(a,b){if("undefined"===typeof a)return u;Q(b)||(b=b?2:null);return JSON.stringify(a,Xd,b)}function uc(a){return E(a)?JSON.parse(a):a}function vc(a,
b){var d=Date.parse("Jan 01, 1970 00:00:00 "+a)/6E4;return isNaN(d)?b:d}function Pb(a,b,d){d=d?-1:1;var c=vc(b,a.getTimezoneOffset());b=a;a=d*(c-a.getTimezoneOffset());b=new Date(b.getTime());b.setMinutes(b.getMinutes()+a);return b}function ua(a){a=B(a).clone();try{a.empty()}catch(b){}var d=B("<div>").append(a).html();try{return a[0].nodeType===Na?F(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+F(b)})}catch(c){return F(d)}}function wc(a){try{return decodeURIComponent(a)}catch(b){}}
function xc(a){var b={};n((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=wc(e),y(e)&&(f=y(f)?wc(f):!0,qa.call(b,e)?I(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Qb(a){var b=[];n(a,function(a,c){I(a)?n(a,function(a){b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))}):b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))});return b.length?b.join("&"):""}function ob(a){return ja(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,
"=").replace(/%2B/gi,"+")}function ja(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 Yd(a,b){var d,c,e=Oa.length;for(c=0;c<e;++c)if(d=Oa[c]+b,E(d=a.getAttribute(d)))return d;return null}function Zd(a,b){var d,c,e={};n(Oa,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});n(Oa,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":",
"\\:")+"]"))&&(d=e,c=e.getAttribute(b))});d&&(e.strictDi=null!==Yd(d,"strict-di"),b(d,c?[c]:[],e))}function yc(a,b,d){H(d)||(d={});d=M({strictDi:!1},d);var c=function(){a=B(a);if(a.injector()){var c=a[0]===X?"document":ua(a);throw Aa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=eb(b,d.strictDi);c.invoke(["$rootScope",
"$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;S&&e.test(S.name)&&(d.debugInfoEnabled=!0,S.name=S.name.replace(e,""));if(S&&!f.test(S.name))return c();S.name=S.name.replace(f,"");fa.resumeBootstrap=function(a){n(a,function(a){b.push(a)});return c()};z(fa.resumeDeferredBootstrap)&&fa.resumeDeferredBootstrap()}function $d(){S.name="NG_ENABLE_DEBUG_INFO!"+S.name;S.location.reload()}
function ae(a){a=fa.element(a).injector();if(!a)throw Aa("test");return a.get("$$testability")}function zc(a,b){b=b||"_";return a.replace(be,function(a,c){return(c?b:"")+a.toLowerCase()})}function ce(){var a;if(!Ac){var b=pb();(oa=q(b)?S.jQuery:b?S[b]:u)&&oa.fn.on?(B=oa,M(oa.fn,{scope:Pa.scope,isolateScope:Pa.isolateScope,controller:Pa.controller,injector:Pa.injector,inheritedData:Pa.inheritedData}),a=oa.cleanData,oa.cleanData=function(b){var c;if(Rb)Rb=!1;else for(var e=0,f;null!=(f=b[e]);e++)(c=
oa._data(f,"events"))&&c.$destroy&&oa(f).triggerHandler("$destroy");a(b)}):B=N;fa.element=B;Ac=!0}}function qb(a,b,d){if(!a)throw Aa("areq",b||"?",d||"required");return a}function Qa(a,b,d){d&&I(a)&&(a=a[a.length-1]);qb(z(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ra(a,b){if("hasOwnProperty"===a)throw Aa("badname",b);}function Bc(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&
z(a)?tc(e,a):a}function rb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=B(ra.call(a,0,e))),c.push(b);return c||a}function $(){return Object.create(null)}function de(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=G("$injector"),c=G("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||G;return b(a,"module",function(){var a={};return function(f,g,h){if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&(a[f]=null);return b(a,f,function(){function a(b,
d,e,f){f||(f=c);return function(){f[e||"push"]([b,d,arguments]);return v}}function b(a,d){return function(b,e){e&&z(e)&&(e.$$moduleName=f);c.push([a,d,arguments]);return v}}if(!g)throw d("nomod",f);var c=[],e=[],t=[],A=a("$injector","invoke","push",e),v={_invokeQueue:c,_configBlocks:e,_runBlocks:t,requires:g,name:f,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:A,run:function(a){t.push(a);return this}};h&&A(h);return v})}})}function ee(a){M(a,{bootstrap:yc,copy:bb,extend:M,merge:Ud,equals:ma,element:B,forEach:n,injector:eb,noop:x,bind:tc,toJson:db,fromJson:uc,identity:Ya,isUndefined:q,isDefined:y,isString:E,isFunction:z,isObject:H,isNumber:Q,isElement:Nb,isArray:I,
version:fe,isDate:da,lowercase:F,uppercase:sb,callbacks:{counter:0},getTestability:ae,$$minErr:G,$$csp:Ba,reloadWithDebugInfo:$d});Sb=de(S);Sb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:ge});a.provider("$compile",Cc).directive({a:he,input:Dc,textarea:Dc,form:ie,script:je,select:ke,style:le,option:me,ngBind:ne,ngBindHtml:oe,ngBindTemplate:pe,ngClass:qe,ngClassEven:re,ngClassOdd:se,ngCloak:te,ngController:ue,ngForm:ve,ngHide:we,ngIf:xe,ngInclude:ye,ngInit:ze,ngNonBindable:Ae,
ngPluralize:Be,ngRepeat:Ce,ngShow:De,ngStyle:Ee,ngSwitch:Fe,ngSwitchWhen:Ge,ngSwitchDefault:He,ngOptions:Ie,ngTransclude:Je,ngModel:Ke,ngList:Le,ngChange:Me,pattern:Ec,ngPattern:Ec,required:Fc,ngRequired:Fc,minlength:Gc,ngMinlength:Gc,maxlength:Hc,ngMaxlength:Hc,ngValue:Ne,ngModelOptions:Oe}).directive({ngInclude:Pe}).directive(tb).directive(Ic);a.provider({$anchorScroll:Qe,$animate:Re,$animateCss:Se,$$animateQueue:Te,$$AnimateRunner:Ue,$browser:Ve,$cacheFactory:We,$controller:Xe,$document:Ye,$exceptionHandler:Ze,
$filter:Jc,$$forceReflow:$e,$interpolate:af,$interval:bf,$http:cf,$httpParamSerializer:df,$httpParamSerializerJQLike:ef,$httpBackend:ff,$xhrFactory:gf,$location:hf,$log:jf,$parse:kf,$rootScope:lf,$q:mf,$$q:nf,$sce:of,$sceDelegate:pf,$sniffer:qf,$templateCache:rf,$templateRequest:sf,$$testability:tf,$timeout:uf,$window:vf,$$rAF:wf,$$jqLite:xf,$$HashMap:yf,$$cookieReader:zf})}])}function fb(a){return a.replace(Af,function(a,d,c,e){return e?c.toUpperCase():c}).replace(Bf,"Moz$1")}function Kc(a){a=a.nodeType;
return 1===a||!a||9===a}function Lc(a,b){var d,c,e=b.createDocumentFragment(),f=[];if(Tb.test(a)){d=d||e.appendChild(b.createElement("div"));c=(Cf.exec(a)||["",""])[1].toLowerCase();c=ka[c]||ka._default;d.innerHTML=c[1]+a.replace(Df,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=cb(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";n(f,function(a){e.appendChild(a)});return e}function N(a){if(a instanceof N)return a;var b;E(a)&&(a=U(a),
b=!0);if(!(this instanceof N)){if(b&&"<"!=a.charAt(0))throw Ub("nosel");return new N(a)}if(b){b=X;var d;a=(d=Ef.exec(a))?[b.createElement(d[1])]:(d=Lc(a,b))?d.childNodes:[]}Mc(this,a)}function Vb(a){return a.cloneNode(!0)}function ub(a,b){b||vb(a);if(a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c<e;c++)vb(d[c])}function Nc(a,b,d,c){if(y(c))throw Ub("offargs");var e=(c=wb(a))&&c.events,f=c&&c.handle;if(f)if(b){var g=function(b){var c=e[b];y(d)&&ab(c||[],d);y(d)&&c&&0<c.length||
(a.removeEventListener(b,f,!1),delete e[b])};n(b.split(" "),function(a){g(a);xb[a]&&g(xb[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f,!1),delete e[b]}function vb(a,b){var d=a.ng339,c=d&&gb[d];c&&(b?delete c.data[b]:(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Nc(a)),delete gb[d],a.ng339=u))}function wb(a,b){var d=a.ng339,d=d&&gb[d];b&&!d&&(a.ng339=d=++Ff,d=gb[d]={events:{},data:{},handle:u});return d}function Wb(a,b,d){if(Kc(a)){var c=y(d),e=!c&&b&&!H(b),f=!b;a=(a=wb(a,
!e))&&a.data;if(c)a[b]=d;else{if(f)return a;if(e)return a&&a[b];M(a,b)}}}function yb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function zb(a,b){b&&a.setAttribute&&n(b.split(" "),function(b){a.setAttribute("class",U((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+U(b)+" "," ")))})}function Ab(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");n(b.split(" "),
function(a){a=U(a);-1===d.indexOf(" "+a+" ")&&(d+=a+" ")});a.setAttribute("class",U(d))}}function Mc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function Oc(a,b){return Bb(a,"$"+(b||"ngController")+"Controller")}function Bb(a,b,d){9==a.nodeType&&(a=a.documentElement);for(b=I(b)?b:[b];a;){for(var c=0,e=b.length;c<e;c++)if(y(d=B.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&
a.host}}function Pc(a){for(ub(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Xb(a,b){b||ub(a);var d=a.parentNode;d&&d.removeChild(a)}function Gf(a,b){b=b||S;if("complete"===b.document.readyState)b.setTimeout(a);else B(b).on("load",a)}function Qc(a,b){var d=Cb[b.toLowerCase()];return d&&Rc[ta(a)]&&d}function Hf(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(q(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;
c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};var k=f.specialHandlerWrapper||If;1<g&&(f=ia(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||k(a,c,f[l])}};d.elem=a;return d}function If(a,b,d){d.call(a,b)}function Jf(a,b,d){var c=b.relatedTarget;c&&(c===a||Kf.call(a,c))||d.call(a,b)}function xf(){this.$get=function(){return M(N,
{hasClass:function(a,b){a.attr&&(a=a[0]);return yb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return Ab(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return zb(a,b)}})}}function Ca(a,b){var d=a&&a.$$hashKey;if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"==d||"object"==d&&null!==a?a.$$hashKey=d+":"+(b||Td)():d+":"+a}function Sa(a,b){if(b){var d=0;this.nextUid=function(){return++d}}n(a,this.put,this)}function Lf(a){return(a=a.toString().replace(Sc,"").match(Tc))?
"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function eb(a,b){function d(a){return function(b,c){if(H(b))n(b,pc(a));else return a(b,c)}}function c(a,b){Ra(a,"service");if(z(b)||I(b))b=t.instantiate(b);if(!b.$get)throw Da("pget",a);return r[a+"Provider"]=b}function e(a,b){return function(){var c=v.invoke(b,this);if(q(c))throw Da("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){qb(q(a)||I(a),"modulesToLoad","not an array");var b=[],c;n(a,function(a){function d(a){var b,
c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=t.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.put(a,!0);try{E(a)?(c=Sb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):z(a)?b.push(t.invoke(a)):I(a)?b.push(t.invoke(a)):Qa(a,"module")}catch(e){throw I(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Da("modulerr",a,e.stack||e.message||e);}}});return b}function h(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===
k)throw Da("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=k,a[b]=c(b,e)}catch(f){throw a[b]===k&&delete a[b],f;}finally{l.shift()}}function e(a,c,f,g){"string"===typeof f&&(g=f,f=null);var h=[],k=eb.$$annotate(a,b,g),l,m,t;m=0;for(l=k.length;m<l;m++){t=k[m];if("string"!==typeof t)throw Da("itkn",t);h.push(f&&f.hasOwnProperty(t)?f[t]:d(t,g))}I(a)&&(a=a[l]);return a.apply(c,h)}return{invoke:e,instantiate:function(a,b,c){var d=Object.create((I(a)?a[a.length-1]:a).prototype||
null);a=e(a,d,b,c);return H(a)||z(a)?a:d},get:d,annotate:eb.$$annotate,has:function(b){return r.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],m=new Sa([],!0),r={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,na(b),!1)}),constant:d(function(a,b){Ra(a,"constant");r[a]=b;A[a]=b}),decorator:function(a,b){var c=t.get(a+"Provider"),d=c.$get;c.$get=function(){var a=
v.invoke(d,c);return v.invoke(b,null,{$delegate:a})}}}},t=r.$injector=h(r,function(a,b){fa.isString(b)&&l.push(b);throw Da("unpr",l.join(" <- "));}),A={},v=A.$injector=h(A,function(a,b){var c=t.get(a+"Provider",b);return v.invoke(c.$get,c,u,a)});n(g(a),function(a){a&&v.invoke(a)});return v}function Qe(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===ta(a))return b=
a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;z(c)?c=c():Nb(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Q(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=E(a)?a:d.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;a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||Gf(function(){c.$evalAsync(g)})});
return g}]}function hb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;I(a)&&(a=a.join(" "));I(b)&&(b=b.join(" "));return a+" "+b}function Mf(a){E(a)&&(a=a.split(" "));var b=$();n(a,function(a){a.length&&(b[a]=!0)});return b}function Ea(a){return H(a)?a:{}}function Nf(a,b,d,c){function e(a){try{a.apply(null,ra.call(arguments,1))}finally{if(v--,0===v)for(;T.length;)try{T.pop()()}catch(b){d.error(b)}}}function f(){L=null;g();h()}function g(){a:{try{p=m.state;break a}catch(a){}p=void 0}p=q(p)?
null:p;ma(p,J)&&(p=J);J=p}function h(){if(w!==k.url()||C!==p)w=k.url(),C=p,n(aa,function(a){a(k.url(),p)})}var k=this,l=a.location,m=a.history,r=a.setTimeout,t=a.clearTimeout,A={};k.isMock=!1;var v=0,T=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){v++};k.notifyWhenNoOutstandingRequests=function(a){0===v?a():T.push(a)};var p,C,w=l.href,ga=b.find("base"),L=null;g();C=p;k.url=function(b,d,e){q(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=
C===e;if(w===b&&(!c.history||f))return k;var h=w&&Fa(w)===Fa(b);w=b;C=e;if(!c.history||h&&f){if(!h||L)L=b;d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b;l.href!==b&&(L=b)}else m[d?"replaceState":"pushState"](e,"",b),g(),C=p;return k}return L||l.href.replace(/%27/g,"'")};k.state=function(){return p};var aa=[],D=!1,J=null;k.onUrlChange=function(b){if(!D){if(c.history)B(a).on("popstate",f);B(a).on("hashchange",f);D=!0}aa.push(b);return b};k.$$applicationDestroyed=function(){B(a).off("hashchange popstate",
f)};k.$$checkUrlChange=h;k.baseHref=function(){var a=ga.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};k.defer=function(a,b){var c;v++;c=r(function(){delete A[c];e(a)},b||0);A[c]=!0;return c};k.defer.cancel=function(a){return A[a]?(delete A[a],t(a),e(x),!0):!1}}function Ve(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new Nf(a,c,b,d)}]}function We(){this.$get=function(){function a(a,c){function e(a){a!=r&&(t?t==a&&(t=a.n):t=a,f(a.n,a.p),f(a,r),r=a,
r.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw G("$cacheFactory")("iid",a);var g=0,h=M({},c,{id:a}),k=$(),l=c&&c.capacity||Number.MAX_VALUE,m=$(),r=null,t=null;return b[a]={put:function(a,b){if(!q(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}a in k||g++;k[a]=b;g>l&&this.remove(t.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return k[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b==r&&(r=b.p);b==t&&
(t=b.n);f(b.n,b.p);delete m[a]}a in k&&(delete k[a],g--)},removeAll:function(){k=$();g=0;m=$();r=t=null},destroy:function(){m=h=k=null;delete b[a]},info:function(){return M({},h,{size:g})}}}var b={};a.info=function(){var a={};n(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function rf(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Cc(a,b){function d(a,b,c){var d=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,e={};n(a,function(a,f){var g=a.match(d);
if(!g)throw ha("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}});return e}function c(a){var b=a.charAt(0);if(!b||b!==F(b))throw ha("baddir",a);if(a!==a.trim())throw ha("baddir",a);}var e={},f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,g=/(([\w\-]+)(?:\:([^;]+))?;?)/,h=Wd("ngSrc,ngSrcset,src,srcset"),k=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/;this.directive=function t(b,f){Ra(b,"directive");
E(b)?(c(b),qb(f,"directiveFactory"),e.hasOwnProperty(b)||(e[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var f=[];n(e[b],function(e,g){try{var h=a.invoke(e);z(h)?h={compile:na(h)}:!h.compile&&h.link&&(h.compile=na(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||b;h.require=h.require||h.controller&&h.name;h.restrict=h.restrict||"EA";var k=h,l=h,m=h.name,t={isolateScope:null,bindToController:null};H(l.scope)&&(!0===l.bindToController?(t.bindToController=d(l.scope,
m,!0),t.isolateScope={}):t.isolateScope=d(l.scope,m,!1));H(l.bindToController)&&(t.bindToController=d(l.bindToController,m,!0));if(H(t.bindToController)){var v=l.controller,R=l.controllerAs;if(!v)throw ha("noctrl",m);var V;a:if(R&&E(R))V=R;else{if(E(v)){var n=Uc.exec(v);if(n){V=n[3];break a}}V=void 0}if(!V)throw ha("noident",m);}var s=k.$$bindings=t;H(s.isolateScope)&&(h.$$isolateBindings=s.isolateScope);h.$$moduleName=e.$$moduleName;f.push(h)}catch(u){c(u)}});return f}])),e[b].push(f)):n(b,pc(t));
return this};this.aHrefSanitizationWhitelist=function(a){return y(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return y(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};var m=!0;this.debugInfoEnabled=function(a){return y(a)?(m=a,this):m};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,
b,c,d,p,C,w,ga,L,aa,D){function J(a,b){try{a.addClass(b)}catch(c){}}function K(a,b,c,d,e){a instanceof B||(a=B(a));n(a,function(b,c){b.nodeType==Na&&b.nodeValue.match(/\S+/)&&(a[c]=B(b).wrap("<span></span>").parent()[0])});var f=O(a,b,a,c,d,e);K.$$addScopeClass(a);var g=null;return function(b,c,d){qb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement;h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=
d&&d[0])?"foreignobject"!==ta(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Yb(g,B("<div>").append(a).html())):c?Pa.clone.call(a):a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);K.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);return d}}function O(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,t,w,D;if(p)for(D=Array(c.length),m=0;m<h.length;m+=3)f=h[m],D[f]=c[f];else D=c;m=0;for(t=h.length;m<t;)k=D[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),K.$$addScopeInfo(B(k),
l)):l=a,w=c.transcludeOnThisElement?R(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?R(a,b):null,c(f,l,k,d,w)):f&&f(a,k.childNodes,u,e)}for(var h=[],k,l,m,t,p,w=0;w<a.length;w++){k=new fa;l=V(a[w],[],k,0===w?d:u,e);(f=l.length?Z(l,a[w],k,b,c,null,[],[],f):null)&&f.scope&&K.$$addScopeClass(k.$$element);k=f&&f.terminal||!(m=a[w].childNodes)||!m.length?null:O(m,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||k)h.push(w,f,k),t=!0,p=p||f;f=null}return t?g:null}function R(a,
b,c){return function(d,e,f,g,h){d||(d=a.$new(!1,h),d.$$transcluded=!0);return b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})}}function V(a,b,c,d,e){var h=c.$attr,k;switch(a.nodeType){case 1:P(b,va(ta(a)),"E",d,e);for(var l,m,t,p=a.attributes,w=0,D=p&&p.length;w<D;w++){var K=!1,A=!1;l=p[w];k=l.name;m=U(l.value);l=va(k);if(t=ka.test(l))k=k.replace(Vc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});(l=l.match(la))&&G(l[1])&&(K=k,A=k.substr(0,k.length-
5)+"end",k=k.substr(0,k.length-6));l=va(k.toLowerCase());h[l]=k;if(t||!c.hasOwnProperty(l))c[l]=m,Qc(a,l)&&(c[l]=!0);W(a,b,m,l,t);P(b,l,"A",d,e,K,A)}a=a.className;H(a)&&(a=a.animVal);if(E(a)&&""!==a)for(;k=g.exec(a);)l=va(k[2]),P(b,l,"C",d,e)&&(c[l]=U(k[3])),a=a.substr(k.index+k[0].length);break;case Na:if(11===Ha)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===Na;)a.nodeValue+=a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);N(b,a.nodeValue);break;case 8:try{if(k=f.exec(a.nodeValue))l=
va(k[1]),P(b,l,"M",d,e)&&(c[l]=U(k[2]))}catch(R){}}b.sort(Ia);return b}function Ta(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ha("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 B(d)}function s(a,b,c){return function(d,e,f,g,h){e=Ta(e[0],b,c);return a(d,e,f,g,h)}}function Z(a,b,d,e,f,g,h,l,m){function t(a,b,c,d){if(a){c&&(a=s(a,c,d));a.require=q.require;a.directiveName=x;if(O===
q||q.$$isolateScope)a=ca(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=s(b,c,d));b.require=q.require;b.directiveName=x;if(O===q||q.$$isolateScope)b=ca(b,{isolateScope:!0});l.push(b)}}function p(a,b,c,d){var e;if(E(b)){var f=b.match(k);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;e||(d="$"+b+"Controller",e=g?c.inheritedData(d):c.data(d));if(!e&&!f)throw ha("ctreq",b,a);}else if(I(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=p(a,b[g],c,d);return e||
null}function w(a,b,c,d,e,f){var g=$(),h;for(h in d){var k=d[h],l={$scope:k===O||k.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},m=k.controller;"@"==m&&(m=b[k.name]);l=C(m,l,!0,k.controllerAs);g[k.name]=l;aa||a.data("$"+k.name+"Controller",l.instance)}return g}function D(a,c,e,f,g){function k(a,b,c){var d;Za(a)||(c=b,b=a,a=u);aa&&(d=v);c||(c=aa?V.parent():V);return g(a,b,d,c,Ta)}var m,t,A,v,C,V,Ga;b===e?(f=d,V=d.$$element):(V=B(e),f=new fa(V,d));A=c;O?t=c.$new(!0):R&&(A=c.$parent);g&&(C=k,
C.$$boundTransclude=g);T&&(v=w(V,f,C,T,t,c));O&&(K.$$addScopeInfo(V,t,!0,!(J&&(J===O||J===O.$$originalDirective))),K.$$addScopeClass(V,!0),t.$$isolateBindings=O.$$isolateBindings,(Ga=ba(c,f,t,t.$$isolateBindings,O))&&t.$on("$destroy",Ga));for(var n in v){Ga=T[n];var ga=v[n],L=Ga.$$bindings.bindToController;ga.identifier&&L&&(m=ba(A,f,ga.instance,L,Ga));var q=ga();q!==ga.instance&&(ga.instance=q,V.data("$"+Ga.name+"Controller",q),m&&m(),m=ba(A,f,ga.instance,L,Ga))}F=0;for(M=h.length;F<M;F++)m=h[F],
ea(m,m.isolateScope?t:c,V,f,m.require&&p(m.directiveName,m.require,V,v),C);var Ta=c;O&&(O.template||null===O.templateUrl)&&(Ta=t);a&&a(Ta,e.childNodes,u,g);for(F=l.length-1;0<=F;F--)m=l[F],ea(m,m.isolateScope?t:c,V,f,m.require&&p(m.directiveName,m.require,V,v),C)}m=m||{};for(var A=-Number.MAX_VALUE,R=m.newScopeDirective,T=m.controllerDirectives,O=m.newIsolateScopeDirective,J=m.templateDirective,n=m.nonTlbTranscludeDirective,ga=!1,L=!1,aa=m.hasElementTranscludeDirective,Z=d.$$element=B(b),q,x,P,Ia=
e,G,F=0,M=a.length;F<M;F++){q=a[F];var N=q.$$start,Q=q.$$end;N&&(Z=Ta(b,N,Q));P=u;if(A>q.priority)break;if(P=q.scope)q.templateUrl||(H(P)?(Ua("new/isolated scope",O||R,q,Z),O=q):Ua("new/isolated scope",O,q,Z)),R=R||q;x=q.name;!q.templateUrl&&q.controller&&(P=q.controller,T=T||$(),Ua("'"+x+"' controller",T[x],q,Z),T[x]=q);if(P=q.transclude)ga=!0,q.$$tlb||(Ua("transclusion",n,q,Z),n=q),"element"==P?(aa=!0,A=q.priority,P=Z,Z=d.$$element=B(X.createComment(" "+x+": "+d[x]+" ")),b=Z[0],Y(f,ra.call(P,0),
b),Ia=K(P,e,A,g&&g.name,{nonTlbTranscludeDirective:n})):(P=B(Vb(b)).contents(),Z.empty(),Ia=K(P,e,u,u,{needsNewScope:q.$$isolateScope||q.$$newScope}));if(q.template)if(L=!0,Ua("template",J,q,Z),J=q,P=z(q.template)?q.template(Z,d):q.template,P=ja(P),q.replace){g=q;P=Tb.test(P)?Xc(Yb(q.templateNamespace,U(P))):[];b=P[0];if(1!=P.length||1!==b.nodeType)throw ha("tplrt",x,"");Y(f,Z,b);P={$attr:{}};var Wc=V(b,[],P),W=a.splice(F+1,a.length-(F+1));(O||R)&&y(Wc,O,R);a=a.concat(Wc).concat(W);S(d,P);M=a.length}else Z.html(P);
if(q.templateUrl)L=!0,Ua("template",J,q,Z),J=q,q.replace&&(g=q),D=Of(a.splice(F,a.length-F),Z,d,f,ga&&Ia,h,l,{controllerDirectives:T,newScopeDirective:R!==q&&R,newIsolateScopeDirective:O,templateDirective:J,nonTlbTranscludeDirective:n}),M=a.length;else if(q.compile)try{G=q.compile(Z,d,Ia),z(G)?t(null,G,N,Q):G&&t(G.pre,G.post,N,Q)}catch(da){c(da,ua(Z))}q.terminal&&(D.terminal=!0,A=Math.max(A,q.priority))}D.scope=R&&!0===R.scope;D.transcludeOnThisElement=ga;D.templateOnThisElement=L;D.transclude=Ia;
m.hasElementTranscludeDirective=aa;return D}function y(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=Ob(a[d],{$$isolateScope:b,$$newScope:c})}function P(b,d,f,g,h,k,l){if(d===h)return null;h=null;if(e.hasOwnProperty(d)){var m;d=a.get(d+"Directive");for(var p=0,w=d.length;p<w;p++)try{m=d[p],(q(g)||g>m.priority)&&-1!=m.restrict.indexOf(f)&&(k&&(m=Ob(m,{$$start:k,$$end:l})),b.push(m),h=m)}catch(D){c(D)}}return h}function G(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d<f;d++)if(b=
c[d],b.multiElement)return!0;return!1}function S(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;n(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});n(b,function(b,f){"class"==f?(J(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 Of(a,b,c,e,f,g,h,k){var l=[],m,t,p=b[0],w=a.shift(),D=Ob(w,{templateUrl:null,
transclude:null,replace:null,$$originalDirective:w}),A=z(w.templateUrl)?w.templateUrl(b,c):w.templateUrl,K=w.templateNamespace;b.empty();d(A).then(function(d){var T,v;d=ja(d);if(w.replace){d=Tb.test(d)?Xc(Yb(K,U(d))):[];T=d[0];if(1!=d.length||1!==T.nodeType)throw ha("tplrt",w.name,A);d={$attr:{}};Y(e,b,T);var C=V(T,[],d);H(w.scope)&&y(C,!0);a=C.concat(a);S(c,d)}else T=p,b.html(d);a.unshift(D);m=Z(a,T,c,f,b,w,g,h,k);n(e,function(a,c){a==T&&(e[c]=b[0])});for(t=O(b[0].childNodes,f);l.length;){d=l.shift();
v=l.shift();var ga=l.shift(),L=l.shift(),C=b[0];if(!d.$$destroyed){if(v!==p){var q=v.className;k.hasElementTranscludeDirective&&w.replace||(C=Vb(T));Y(ga,B(v),C);J(B(C),q)}v=m.transcludeOnThisElement?R(d,m.transclude,L):L;m(t,d,C,e,v)}}l=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(l?l.push(b,c,d,a):(m.transcludeOnThisElement&&(a=R(b,m.transclude,e)),m(t,b,c,d,a)))}}function Ia(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 Ua(a,
b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw ha("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,ua(d));}function N(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&K.$$addBindingClass(a);return function(a,c){var e=c.parent();b||K.$$addBindingClass(e);K.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function Yb(a,b){a=F(a||"html");switch(a){case "svg":case "math":var c=X.createElement("div");
c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function Q(a,b){if("srcdoc"==b)return L.HTML;var c=ta(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return L.RESOURCE_URL}function W(a,c,d,e,f){var g=Q(a,e);f=h[e]||f;var k=b(d,!0,g,f);if(k){if("multiple"===e&&"select"===ta(a))throw ha("selmulti",ua(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers=$());if(l.test(e))throw ha("nodomevents");
var m=h[e];m!==d&&(k=m&&b(m,!0,g,f),d=m);k&&(h[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(k,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function Y(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]==d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=X.createDocumentFragment();a.appendChild(d);
B.hasData(d)&&(B.data(c,B.data(d)),oa?(Rb=!0,oa.cleanData([d])):delete B.cache[d[B.expando]]);d=1;for(e=b.length;d<e;d++)f=b[d],B(f).remove(),a.appendChild(f),delete b[d];b[0]=c;b.length=1}function ca(a,b){return M(function(){return a.apply(null,arguments)},a,b)}function ea(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,ua(d))}}function ba(a,c,d,e,f){var g=[];n(e,function(e,h){var k=e.attrName,l=e.optional,m,t,w,D;switch(e.mode){case "@":l||qa.call(c,k)||(d[h]=c[k]=void 0);c.$observe(k,function(a){E(a)&&
(d[h]=a)});c.$$observers[k].$$scope=a;E(c[k])&&(d[h]=b(c[k])(a));break;case "=":if(!qa.call(c,k)){if(l)break;c[k]=void 0}if(l&&!c[k])break;t=p(c[k]);D=t.literal?ma:function(a,b){return a===b||a!==a&&b!==b};w=t.assign||function(){m=d[h]=t(a);throw ha("nonassign",c[k],f.name);};m=d[h]=t(a);l=function(b){D(b,d[h])||(D(b,m)?w(a,b=d[h]):d[h]=b);return m=b};l.$stateful=!0;l=e.collection?a.$watchCollection(c[k],l):a.$watch(p(c[k],l),null,t.literal);g.push(l);break;case "&":t=c.hasOwnProperty(k)?p(c[k]):
x;if(t===x&&l)break;d[h]=function(b){return t(a,b)}}});return g.length&&function(){for(var a=0,b=g.length;a<b;++a)g[a]()}}var fa=function(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a};fa.prototype={$normalize:va,$addClass:function(a){a&&0<a.length&&aa.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&aa.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=Yc(a,b);c&&c.length&&aa.addClass(this.$$element,
c);(c=Yc(b,a))&&c.length&&aa.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=Qc(this.$$element[0],a),g=Zc[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=zc(a,"-"));f=ta(this.$$element);if("a"===f&&"href"===a||"img"===f&&"src"===a)this[a]=b=D(b,"src"===a);else if("img"===f&&"srcset"===a){for(var f="",g=U(b),k=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,k=/\s/.test(g)?k:/(,)/,g=g.split(k),k=Math.floor(g.length/2),l=0;l<
k;l++)var m=2*l,f=f+D(U(g[m]),!0),f=f+(" "+U(g[m+1]));g=U(g[2*l]).split(/\s/);f+=D(U(g[0]),!0);2===g.length&&(f+=" "+U(g[1]));this[a]=b=f}!1!==d&&(null===b||q(b)?this.$$element.removeAttr(e):this.$$element.attr(e,b));(a=this.$$observers)&&n(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=$()),e=d[a]||(d[a]=[]);e.push(b);w.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||q(c[a])||b(c[a])});return function(){ab(e,b)}}};var da=b.startSymbol(),
ia=b.endSymbol(),ja="{{"==da||"}}"==ia?Ya:function(a){return a.replace(/\{\{/g,da).replace(/}}/g,ia)},ka=/^ngAttr[A-Z]/,la=/^(.+)Start$/;K.$$addBindingInfo=m?function(a,b){var c=a.data("$binding")||[];I(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:x;K.$$addBindingClass=m?function(a){J(a,"ng-binding")}:x;K.$$addScopeInfo=m?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:x;K.$$addScopeClass=m?function(a,b){J(a,b?"ng-isolate-scope":"ng-scope")}:x;return K}]}function va(a){return fb(a.replace(Vc,
""))}function Yc(a,b){var d="",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],h=0;h<e.length;h++)if(g==e[h])continue a;d+=(0<d.length?" ":"")+g}return d}function Xc(a){a=B(a);var b=a.length;if(1>=b)return a;for(;b--;)8===a[b].nodeType&&Pf.call(a,b,1);return a}function Xe(){var a={},b=!1;this.register=function(b,c){Ra(b,"controller");H(b)?M(a,b):a[b]=c};this.allowGlobals=function(){b=!0};this.$get=["$injector","$window",function(d,c){function e(a,b,c,d){if(!a||!H(a.$scope))throw G("$controller")("noscp",
d,b);a.$scope[b]=c}return function(f,g,h,k){var l,m,r;h=!0===h;k&&E(k)&&(r=k);if(E(f)){k=f.match(Uc);if(!k)throw Qf("ctrlfmt",f);m=k[1];r=r||k[3];f=a.hasOwnProperty(m)?a[m]:Bc(g.$scope,m,!0)||(b?Bc(c,m,!0):u);Qa(f,m,!0)}if(h)return h=(I(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),r&&e(g,r,l,m||f.name),M(function(){var a=d.invoke(f,l,g,m);a!==l&&(H(a)||z(a))&&(l=a,r&&e(g,r,l,m||f.name));return l},{instance:l,identifier:r});l=d.instantiate(f,g,m);r&&e(g,r,l,m||f.name);return l}}]}function Ye(){this.$get=
["$window",function(a){return B(a.document)}]}function Ze(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,arguments)}}]}function Zb(a){return H(a)?da(a)?a.toISOString():db(a):a}function df(){this.$get=function(){return function(a){if(!a)return"";var b=[];oc(a,function(a,c){null===a||q(a)||(I(a)?n(a,function(a,d){b.push(ja(c)+"="+ja(Zb(a)))}):b.push(ja(c)+"="+ja(Zb(a))))});return b.join("&")}}}function ef(){this.$get=function(){return function(a){function b(a,e,f){null===a||q(a)||
(I(a)?n(a,function(a,c){b(a,e+"["+(H(a)?c:"")+"]")}):H(a)&&!da(a)?oc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ja(e)+"="+ja(Zb(a))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function $b(a,b){if(E(a)){var d=a.replace(Rf,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf($c))||(c=(c=d.match(Sf))&&Tf[c[0]].test(d));c&&(a=uc(d))}}return a}function ad(a){var b=$(),d;E(a)?n(a.split("\n"),function(a){d=a.indexOf(":");var e=F(U(a.substr(0,d)));a=U(a.substr(d+1));e&&
(b[e]=b[e]?b[e]+", "+a:a)}):H(a)&&n(a,function(a,d){var f=F(d),g=U(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function bd(a){var b;return function(d){b||(b=ad(a));return d?(d=b[F(d)],void 0===d&&(d=null),d):b}}function cd(a,b,d,c){if(z(c))return c(a,b,d);n(c,function(c){a=c(a,b,d)});return a}function cf(){var a=this.defaults={transformResponse:[$b],transformRequest:[function(a){return H(a)&&"[object File]"!==sa.call(a)&&"[object Blob]"!==sa.call(a)&&"[object FormData]"!==sa.call(a)?db(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
post:ia(ac),put:ia(ac),patch:ia(ac)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return y(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return y(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,k,l){function m(b){function c(a){var b=M({},a);b.data=cd(a.data,a.headers,a.status,f.transformResponse);
a=a.status;return 200<=a&&300>a?b:k.reject(b)}function e(a,b){var c,d={};n(a,function(a,e){z(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!fa.isObject(b))throw G("$http")("badreq",b);var f=M({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);f.headers=function(b){var c=a.headers,d=M({},b.headers),f,g,h,c=M({},c.common,c[F(b.method)]);a:for(f in c){g=F(f);for(h in d)if(F(h)===g)continue a;d[f]=c[f]}return e(d,ia(b))}(b);
f.method=sb(f.method);f.paramSerializer=E(f.paramSerializer)?l.get(f.paramSerializer):f.paramSerializer;var g=[function(b){var d=b.headers,e=cd(b.data,bd(d),u,b.transformRequest);q(e)&&n(d,function(a,b){"content-type"===F(b)&&delete d[b]});q(b.withCredentials)&&!q(a.withCredentials)&&(b.withCredentials=a.withCredentials);return r(b,e).then(c,c)},u],h=k.when(f);for(n(v,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){b=
g.shift();var m=g.shift(),h=h.then(b,m)}d?(h.success=function(a){Qa(a,"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Qa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=dd("success"),h.error=dd("error"));return h}function r(c,d){function g(a,c,d,e){function f(){l(c,a,d,e)}J&&(200<=a&&300>a?J.put(R,[a,c,ad(d),e]):J.remove(R));b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function l(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?n.resolve:
n.reject)({data:a,status:b,headers:bd(d),config:c,statusText:e})}function r(a){l(a.data,a.status,ia(a.headers()),a.statusText)}function v(){var a=m.pendingRequests.indexOf(c);-1!==a&&m.pendingRequests.splice(a,1)}var n=k.defer(),D=n.promise,J,K,O=c.headers,R=t(c.url,c.paramSerializer(c.params));m.pendingRequests.push(c);D.then(v,v);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(J=H(c.cache)?c.cache:H(a.cache)?a.cache:A);J&&(K=J.get(R),y(K)?K&&z(K.then)?K.then(r,r):I(K)?l(K[1],
K[0],ia(K[2]),K[3]):l(K,200,{},"OK"):J.put(R,D));q(K)&&((K=ed(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]:u)&&(O[c.xsrfHeaderName||a.xsrfHeaderName]=K),e(c.method,R,d,g,O,c.timeout,c.withCredentials,c.responseType));return D}function t(a,b){0<b.length&&(a+=(-1==a.indexOf("?")?"?":"&")+b);return a}var A=g("$http");a.paramSerializer=E(a.paramSerializer)?l.get(a.paramSerializer):a.paramSerializer;var v=[];n(c,function(a){v.unshift(E(a)?l.get(a):l.invoke(a))});m.pendingRequests=[];(function(a){n(arguments,
function(a){m[a]=function(b,c){return m(M({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){n(arguments,function(a){m[a]=function(b,c,d){return m(M({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");m.defaults=a;return m}]}function gf(){this.$get=function(){return function(){return new S.XMLHttpRequest}}}function ff(){this.$get=["$browser","$window","$document","$xhrFactory",function(a,b,d,c){return Uf(a,c,a.defer,b.angular.callbacks,d[0])}]}function Uf(a,b,d,
c,e){function f(a,b,d){var f=e.createElement("script"),m=null;f.type="text/javascript";f.src=a;f.async=!0;m=function(a){f.removeEventListener("load",m,!1);f.removeEventListener("error",m,!1);e.body.removeChild(f);f=null;var g=-1,A="unknown";a&&("load"!==a.type||c[b].called||(a={type:"error"}),A=a.type,g="error"===a.type?404:200);d&&d(g,A)};f.addEventListener("load",m,!1);f.addEventListener("error",m,!1);e.body.appendChild(f);return m}return function(e,h,k,l,m,r,t,A){function v(){C&&C();w&&w.abort()}
function T(b,c,e,f,g){y(L)&&d.cancel(L);C=w=null;b(c,e,f,g);a.$$completeOutstandingRequest(x)}a.$$incOutstandingRequestCount();h=h||a.url();if("jsonp"==F(e)){var p="_"+(c.counter++).toString(36);c[p]=function(a){c[p].data=a;c[p].called=!0};var C=f(h.replace("JSON_CALLBACK","angular.callbacks."+p),p,function(a,b){T(l,a,c[p].data,"",b);c[p]=x})}else{var w=b(e,h);w.open(e,h,!0);n(m,function(a,b){y(a)&&w.setRequestHeader(b,a)});w.onload=function(){var a=w.statusText||"",b="response"in w?w.response:w.responseText,
c=1223===w.status?204:w.status;0===c&&(c=b?200:"file"==wa(h).protocol?404:0);T(l,c,b,w.getAllResponseHeaders(),a)};e=function(){T(l,-1,null,null,"")};w.onerror=e;w.onabort=e;t&&(w.withCredentials=!0);if(A)try{w.responseType=A}catch(ga){if("json"!==A)throw ga;}w.send(q(k)?null:k)}if(0<r)var L=d(v,r);else r&&z(r.then)&&r.then(v)}}function af(){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(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(m,a).replace(r,b)}function h(f,h,m,r){function p(a){try{var b=a;a=m?e.getTrusted(m,b):e.valueOf(b);var d;if(r&&!y(a))d=a;else if(null==a)d="";else{switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=db(a)}d=a}return d}catch(g){c(Ja.interr(f,g))}}r=!!r;for(var C,w,n=0,L=[],s=[],D=f.length,J=[],K=[];n<D;)if(-1!=(C=f.indexOf(a,n))&&-1!=(w=f.indexOf(b,C+k)))n!==C&&J.push(g(f.substring(n,C))),n=f.substring(C+
k,w),L.push(n),s.push(d(n,p)),n=w+l,K.push(J.length),J.push("");else{n!==D&&J.push(g(f.substring(n)));break}m&&1<J.length&&Ja.throwNoconcat(f);if(!h||L.length){var O=function(a){for(var b=0,c=L.length;b<c;b++){if(r&&q(a[b]))return;J[K[b]]=a[b]}return J.join("")};return M(function(a){var b=0,d=L.length,e=Array(d);try{for(;b<d;b++)e[b]=s[b](a);return O(e)}catch(g){c(Ja.interr(f,g))}},{exp:f,expressions:L,$$watchDelegate:function(a,b){var c;return a.$watchGroup(s,function(d,e){var f=O(d);z(b)&&b.call(this,
f,d!==e?c:f,a);c=f})}})}}var k=a.length,l=b.length,m=new RegExp(a.replace(/./g,f),"g"),r=new RegExp(b.replace(/./g,f),"g");h.startSymbol=function(){return a};h.endSymbol=function(){return b};return h}]}function bf(){this.$get=["$rootScope","$window","$q","$$q",function(a,b,d,c){function e(e,h,k,l){var m=4<arguments.length,r=m?ra.call(arguments,4):[],t=b.setInterval,A=b.clearInterval,v=0,n=y(l)&&!l,p=(n?c:d).defer(),C=p.promise;k=y(k)?k:0;C.then(null,null,m?function(){e.apply(null,r)}:e);C.$$intervalId=
t(function(){p.notify(v++);0<k&&v>=k&&(p.resolve(v),A(C.$$intervalId),delete f[C.$$intervalId]);n||a.$apply()},h);f[C.$$intervalId]=p;return C}var f={};e.cancel=function(a){return a&&a.$$intervalId in f?(f[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete f[a.$$intervalId],!0):!1};return e}]}function bc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=ob(a[b]);return a.join("/")}function fd(a,b){var d=wa(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=ea(d.port)||Vf[d.protocol]||
null}function gd(a,b){var d="/"!==a.charAt(0);d&&(a="/"+a);var c=wa(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname);b.$$search=xc(c.search);b.$$hash=decodeURIComponent(c.hash);b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function pa(a,b){if(0===b.indexOf(a))return b.substr(a.length)}function Fa(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function ib(a){return a.replace(/(#.+)|#$/,"$1")}function cc(a,b,d){this.$$html5=!0;d=d||"";
fd(a,this);this.$$parse=function(a){var d=pa(b,a);if(!E(d))throw Db("ipthprfx",a,b);gd(d,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Qb(this.$$search),d=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=bc(this.$$path)+(a?"?"+a:"")+d;this.$$absUrl=b+this.$$url.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;y(f=pa(a,c))?(g=f,g=y(f=pa(d,f))?b+(pa("/",f)||f):a+g):y(f=pa(b,c))?g=b+f:b==c+"/"&&(g=b);g&&this.$$parse(g);
return!!g}}function dc(a,b,d){fd(a,this);this.$$parse=function(c){var e=pa(a,c)||pa(b,c),f;q(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",q(e)&&(a=c,this.replace())):(f=pa(d,e),q(f)&&(f=e));gd(f,this);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$compose=function(){var b=Qb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+(this.$$url?
d+this.$$url:"")};this.$$parseLinkUrl=function(b,d){return Fa(a)==Fa(b)?(this.$$parse(b),!0):!1}}function hd(a,b,d){this.$$html5=!0;dc.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a==Fa(c)?f=c:(g=pa(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$compose=function(){var b=Qb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=bc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+d+this.$$url}}function Eb(a){return function(){return this[a]}}
function id(a,b){return function(d){if(q(d))return this[a];this[a]=b(d);this.$$compose();return this}}function hf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return y(b)?(a=b,this):a};this.html5Mode=function(a){return $a(a)?(b.enabled=a,this):H(a)?($a(a.enabled)&&(b.enabled=a.enabled),$a(a.requireBase)&&(b.requireBase=a.requireBase),$a(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",
function(d,c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g;}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state,b)}var l,m;m=c.baseHref();var r=c.url(),t;if(b.enabled){if(!m&&b.requireBase)throw Db("nobase");t=r.substring(0,r.indexOf("/",r.indexOf("//")+2))+(m||"/");m=e.history?cc:hd}else t=Fa(r),m=dc;var A=t.substr(0,Fa(t).lastIndexOf("/")+1);l=new m(t,A,"#"+a);l.$$parseLinkUrl(r,r);l.$$state=
c.state();var v=/^\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=B(a.target);"a"!==ta(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");H(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=wa(h.animVal).href);v.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]=
!0))}});ib(l.absUrl())!=ib(r)&&c.url(l.absUrl(),!0);var n=!0;c.onUrlChange(function(a,b){q(pa(A,a))?g.location.href=a:(d.$evalAsync(function(){var c=l.absUrl(),e=l.$$state,f;a=ib(a);l.$$parse(a);l.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(n=!1,k(c,e)))}),d.$$phase||d.$digest())});d.$watch(function(){var a=ib(c.url()),b=ib(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;if(n||
m)n=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state),k(a,f)))});l.$$replace=!1});return l}]}function jf(){var a=!0,b=this;this.debugEnabled=function(b){return y(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){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));return a}function e(a){var b=d.console||{},e=b[a]||b.log||x;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];n(arguments,function(b){a.push(c(b))});return 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 Va(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===
a||"__proto__"===a)throw ba("isecfld",b);return a}function jd(a,b){a+="";if(!E(a))throw ba("iseccst",b);return a}function xa(a,b){if(a){if(a.constructor===a)throw ba("isecfn",b);if(a.window===a)throw ba("isecwindow",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw ba("isecdom",b);if(a===Object)throw ba("isecobj",b);}return a}function kd(a,b){if(a){if(a.constructor===a)throw ba("isecfn",b);if(a===Wf||a===Xf||a===Yf)throw ba("isecff",b);}}function ld(a,b){if(a&&(a===(0).constructor||a===
(!1).constructor||a==="".constructor||a==={}.constructor||a===[].constructor||a===Function.constructor))throw ba("isecaf",b);}function Zf(a,b){return"undefined"!==typeof a?a:b}function md(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function W(a,b){var d,c;switch(a.type){case s.Program:d=!0;n(a.body,function(a){W(a.expression,b);d=d&&a.expression.constant});a.constant=d;break;case s.Literal:a.constant=!0;a.toWatch=[];break;case s.UnaryExpression:W(a.argument,b);a.constant=a.argument.constant;
a.toWatch=a.argument.toWatch;break;case s.BinaryExpression:W(a.left,b);W(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:W(a.left,b);W(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:W(a.test,b);W(a.alternate,b);W(a.consequent,b);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant=
!1;a.toWatch=[a];break;case s.MemberExpression:W(a.object,b);a.computed&&W(a.property,b);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=[a];break;case s.CallExpression:d=a.filter?!b(a.callee.name).$stateful:!1;c=[];n(a.arguments,function(a){W(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:W(a.left,b);W(a.right,b);a.constant=a.left.constant&&a.right.constant;
a.toWatch=[a];break;case s.ArrayExpression:d=!0;c=[];n(a.elements,function(a){W(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=c;break;case s.ObjectExpression:d=!0;c=[];n(a.properties,function(a){W(a.value,b);d=d&&a.value.constant;a.value.constant||c.push.apply(c,a.value.toWatch)});a.constant=d;a.toWatch=c;break;case s.ThisExpression:a.constant=!1,a.toWatch=[]}}function nd(a){if(1==a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:u}}
function od(a){return a.type===s.Identifier||a.type===s.MemberExpression}function pd(a){if(1===a.body.length&&od(a.body[0].expression))return{type:s.AssignmentExpression,left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function qd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function rd(a,b){this.astBuilder=a;this.$filter=b}function sd(a,
b){this.astBuilder=a;this.$filter=b}function Fb(a){return"constructor"==a}function ec(a){return z(a.valueOf)?a.valueOf():$f.call(a)}function kf(){var a=$(),b=$();this.$get=["$filter",function(d){function c(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=ec(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,d,e,f){var g=e.inputs,h;if(1===g.length){var k=c,g=g[0];return a.$watch(function(a){var b=g(a);c(b,k)||(h=e(a,u,u,[b]),k=b&&ec(b));return h},b,d,f)}for(var l=[],m=[],r=0,n=
g.length;r<n;r++)l[r]=c,m[r]=null;return a.$watch(function(a){for(var b=!1,d=0,f=g.length;d<f;d++){var k=g[d](a);if(b||(b=!c(k,l[d])))m[d]=k,l[d]=k&&ec(k)}b&&(h=e(a,u,u,m));return h},b,d,f)}function f(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);y(a)&&d.$$postDigest(function(){y(f)&&e()})},c)}function g(a,b,c,d){function e(a){var b=!0;n(a,function(a){y(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,
c,d){g=a;z(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function h(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 k(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,c=c!==g&&c!==f?function(c,e,f,g){f=d&&g?g[0]:a(c,e,f,g);return b(f,c,e)}:function(c,d,e,f){e=a(c,d,e,f);c=b(e,c,d);return y(e)?c:e};a.$$watchDelegate&&a.$$watchDelegate!==e?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=
e,d=!a.inputs,c.inputs=a.inputs?a.inputs:[a]);return c}var l=Ba().noUnsafeEval,m={csp:l,expensiveChecks:!1},r={csp:l,expensiveChecks:!0};return function(c,l,v){var n,p,q;switch(typeof c){case "string":q=c=c.trim();var w=v?b:a;n=w[q];n||(":"===c.charAt(0)&&":"===c.charAt(1)&&(p=!0,c=c.substring(2)),v=v?r:m,n=new fc(v),n=(new gc(n,d,v)).parse(c),n.constant?n.$$watchDelegate=h:p?n.$$watchDelegate=n.literal?g:f:n.inputs&&(n.$$watchDelegate=e),w[q]=n);return k(n,l);case "function":return k(c,l);default:return x}}}]}
function mf(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return td(function(b){a.$evalAsync(b)},b)}]}function nf(){this.$get=["$browser","$exceptionHandler",function(a,b){return td(function(b){a.defer(b)},b)}]}function td(a,b){function d(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 c(){this.$$state={status:0}}function e(a,b){return function(c){b.call(a,c)}}function f(c){!c.processScheduled&&c.pending&&(c.processScheduled=!0,a(function(){var a,
d,e;e=c.pending;c.processScheduled=!1;c.pending=u;for(var f=0,g=e.length;f<g;++f){d=e[f][0];a=e[f][c.status];try{z(a)?d.resolve(a(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(h){d.reject(h),b(h)}}}))}function g(){this.promise=new c;this.resolve=e(this,this.resolve);this.reject=e(this,this.reject);this.notify=e(this,this.notify)}var h=G("$q",TypeError);M(c.prototype,{then:function(a,b,c){if(q(a)&&q(b)&&q(c))return this;var d=new g;this.$$state.pending=this.$$state.pending||[];
this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&f(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return l(b,!0,a)},function(b){return l(b,!1,a)},b)}});M(g.prototype,{resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(h("qcycle",a)):this.$$resolve(a))},$$resolve:function(a){var c,e;e=d(this,this.$$resolve,this.$$reject);try{if(H(a)||z(a))c=a&&a.then;z(c)?(this.promise.$$state.status=
-1,c.call(a,e[0],e[1],this.notify)):(this.promise.$$state.value=a,this.promise.$$state.status=1,f(this.promise.$$state))}catch(g){e[1](g),b(g)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;f(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 k=function(a,b){var c=new g;b?c.resolve(a):c.reject(a);return c.promise},l=function(a,b,c){var d=null;try{z(c)&&(d=c())}catch(e){return k(e,!1)}return d&&z(d.then)?d.then(function(){return k(a,b)},function(a){return k(a,!1)}):k(a,b)},m=function(a,b,c,d){var e=new g;e.resolve(a);return e.promise.then(b,c,d)},r=function A(a){if(!z(a))throw h("norslvr",a);if(!(this instanceof A))return new A(a);var b=new g;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};
r.defer=function(){return new g};r.reject=function(a){var b=new g;b.reject(a);return b.promise};r.when=m;r.resolve=m;r.all=function(a){var b=new g,c=0,d=I(a)?[]:{};n(a,function(a,e){c++;m(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);return b.promise};return r}function wf(){this.$get=["$window","$timeout",function(a,b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||
a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function lf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++nb;this.$$ChildScope=null}b.prototype=a;return b}var b=10,d=G("$rootScope"),c=null,e=null;this.digestTtl=function(a){arguments.length&&
(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(f,g,h,k){function l(a){a.currentScope.$$destroyed=!0}function m(a){9===Ha&&(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 r(){this.$id=++nb;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 t(a){if(w.$$phase)throw d("inprog",w.$$phase);w.$$phase=a}function A(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function v(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function s(){}function p(){for(;aa.length;)try{aa.shift()()}catch(a){g(a)}e=null}function C(){null===e&&(e=k.defer(function(){w.$apply(p)}))}r.prototype={constructor:r,
$new:function(b,c){var d;c=c||this;b?(d=new r,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);return d},$watch:function(a,b,d,e){var f=h(a);if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,a);var g=this,k=g.$$watchers,l={fn:b,last:s,get:f,exp:e||a,eq:!!d};c=null;z(b)||(l.fn=x);k||
(k=g.$$watchers=[]);k.unshift(l);A(this,1);return function(){0<=ab(k,l)&&A(g,-1);c=null}},$watchGroup:function(a,b){function c(){h=!1;k?(k=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});n(a,function(a,b){var k=g.$watch(a,function(a,f){e[b]=a;d[b]=f;h||(h=!0,g.$evalAsync(c))});f.push(k)});return function(){for(;f.length;)f.shift()()}},
$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!q(e)){if(H(e))if(za(e))for(f!==r&&(f=r,n=f.length=0,l++),a=e.length,n!==a&&(l++,f.length=n=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==t&&(f=t={},n=0,l++);a=0;for(b in e)qa.call(e,b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(n++,f[b]=g,l++));if(n>a)for(b in l++,f)qa.call(e,b)||(n--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,g,k=1<b.length,l=0,m=
h(a,c),r=[],t={},p=!0,n=0;return this.$watch(m,function(){p?(p=!1,b(e,e,d)):b(e,g,d);if(k)if(H(e))if(za(e)){g=Array(e.length);for(var a=0;a<e.length;a++)g[a]=e[a]}else for(a in g={},e)qa.call(e,a)&&(g[a]=e[a]);else g=e})},$digest:function(){var a,f,h,l,m,r,n=b,A,q=[],v,C;t("$digest");k.$$checkUrlChange();this===w&&null!==e&&(k.defer.cancel(e),p());c=null;do{r=!1;for(A=this;u.length;){try{C=u.shift(),C.scope.$eval(C.expression,C.locals)}catch(aa){g(aa)}c=null}a:do{if(l=A.$$watchers)for(m=l.length;m--;)try{if(a=
l[m])if((f=a.get(A))!==(h=a.last)&&!(a.eq?ma(f,h):"number"===typeof f&&"number"===typeof h&&isNaN(f)&&isNaN(h)))r=!0,c=a,a.last=a.eq?bb(f,null):f,a.fn(f,h===s?f:h,A),5>n&&(v=4-n,q[v]||(q[v]=[]),q[v].push({msg:z(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:f,oldVal:h}));else if(a===c){r=!1;break a}}catch(y){g(y)}if(!(l=A.$$watchersCount&&A.$$childHead||A!==this&&A.$$nextSibling))for(;A!==this&&!(l=A.$$nextSibling);)A=A.$parent}while(A=l);if((r||u.length)&&!n--)throw w.$$phase=null,d("infdig",
b,q);}while(r||u.length);for(w.$$phase=null;L.length;)try{L.shift()()}catch(x){g(x)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===w&&k.$$applicationDestroyed();A(this,-this.$$watchersCount);for(var b in this.$$listenerCount)v(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=x;this.$on=this.$watch=this.$watchGroup=function(){return x};this.$$listeners={};this.$$nextSibling=null;m(this)}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){w.$$phase||u.length||k.defer(function(){u.length&&w.$digest()});u.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){L.push(a)},$apply:function(a){try{t("$apply");
try{return this.$eval(a)}finally{w.$$phase=null}}catch(b){g(b)}finally{try{w.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&aa.push(b);C()},$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,v(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,h=
{name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=cb([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;l<m;l++)if(d[l])try{d[l].apply(null,k)}catch(r){g(r)}else d.splice(l,1),l--,m--;if(f)return h.currentScope=null,h;e=e.$parent}while(e);h.currentScope=null;return h},$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=cb([e],arguments,1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,f)}catch(l){g(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var w=new r,u=w.$$asyncQueue=[],L=w.$$postDigestQueue=[],aa=w.$$applyAsyncQueue=[];return w}]}function ge(){var a=/^\s*(https?|ftp|mailto|tel|file):/,
b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(b){return y(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return y(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f;f=wa(d).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function ag(a){if("self"===a)return a;if(E(a)){if(-1<a.indexOf("***"))throw ya("iwcard",a);a=ud(a).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+a+"$")}if(Ma(a))return new RegExp("^"+
a.source+"$");throw ya("imatcher");}function vd(a){var b=[];y(a)&&n(a,function(a){b.push(ag(a))});return b}function pf(){this.SCE_CONTEXTS=la;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=vd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=vd(a));return b};this.$get=["$injector",function(d){function c(a,b){return"self"===a?ed(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=
new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var f=function(a){throw ya("unsafe");};d.has("$sanitize")&&(f=d.get("$sanitize"));var g=e(),h={};h[la.HTML]=e(g);h[la.CSS]=e(g);h[la.URL]=e(g);h[la.JS]=e(g);h[la.RESOURCE_URL]=e(h[la.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw ya("icontext",a,b);if(null===b||q(b)||""===b)return b;if("string"!==typeof b)throw ya("itype",
a);return new c(b)},getTrusted:function(d,e){if(null===e||q(e)||""===e)return e;var g=h.hasOwnProperty(d)?h[d]:null;if(g&&e instanceof g)return e.$$unwrapTrustedValue();if(d===la.RESOURCE_URL){var g=wa(e.toString()),r,t,n=!1;r=0;for(t=a.length;r<t;r++)if(c(a[r],g)){n=!0;break}if(n)for(r=0,t=b.length;r<t;r++)if(c(b[r],g)){n=!1;break}if(n)return e;throw ya("insecurl",e.toString());}if(d===la.HTML)return f(e);throw ya("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}
function of(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ha)throw ya("iequirks");var c=ia(la);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ya);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;n(la,function(a,
b){var d=F(b);c[fb("parse_as_"+d)]=function(b){return e(a,b)};c[fb("get_trusted_"+d)]=function(b){return f(a,b)};c[fb("trust_as_"+d)]=function(b){return g(a,b)}});return c}]}function qf(){this.$get=["$window","$document",function(a,b){var d={},c=ea((/android (\d+)/.exec(F((a.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((a.navigator||{}).userAgent),f=b[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,k=f.body&&f.body.style,l=!1,m=!1;if(k){for(var r in k)if(l=h.exec(r)){g=l[0];g=g.substr(0,1).toUpperCase()+
g.substr(1);break}g||(g="WebkitOpacity"in k&&"webkit");l=!!("transition"in k||g+"Transition"in k);m=!!("animation"in k||g+"Animation"in k);!c||l&&m||(l=E(k.webkitTransition),m=E(k.webkitAnimation))}return{history:!(!a.history||!a.history.pushState||4>c||e),hasEvent:function(a){if("input"===a&&11>=Ha)return!1;if(q(d[a])){var b=f.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ba(),vendorPrefix:g,transitions:l,animations:m,android:c}}]}function sf(){this.$get=["$templateCache","$http","$q","$sce",
function(a,b,d,c){function e(f,g){e.totalPendingRequests++;E(f)&&a.get(f)||(f=c.getTrustedResourceUrl(f));var h=b.defaults&&b.defaults.transformResponse;I(h)?h=h.filter(function(a){return a!==$b}):h===$b&&(h=null);return b.get(f,{cache:a,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(b){a.put(f,b.data);return b.data},function(a){if(!g)throw ha("tpload",f,a.status,a.statusText);return d.reject(a)})}e.totalPendingRequests=0;return e}]}function tf(){this.$get=["$rootScope",
"$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];n(a,function(a){var c=fa.element(a).data("$binding");c&&n(c,function(c){d?(new RegExp("(^|\\s)"+ud(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!=c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var k=a.querySelectorAll("["+g[h]+"model"+(d?"=":"*=")+'"'+b+'"]');if(k.length)return k}},getLocation:function(){return d.url()},
setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function uf(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,d,c,e){function f(f,k,l){z(f)||(l=k,k=f,f=x);var m=ra.call(arguments,3),r=y(l)&&!l,t=(r?c:d).defer(),n=t.promise,q;q=b.defer(function(){try{t.resolve(f.apply(null,m))}catch(b){t.reject(b),e(b)}finally{delete g[n.$$timeoutId]}r||a.$apply()},k);n.$$timeoutId=q;g[q]=t;return n}var g={};
f.cancel=function(a){return a&&a.$$timeoutId in g?(g[a.$$timeoutId].reject("canceled"),delete g[a.$$timeoutId],b.defer.cancel(a.$$timeoutId)):!1};return f}]}function wa(a){Ha&&(Y.setAttribute("href",a),a=Y.href);Y.setAttribute("href",a);return{href:Y.href,protocol:Y.protocol?Y.protocol.replace(/:$/,""):"",host:Y.host,search:Y.search?Y.search.replace(/^\?/,""):"",hash:Y.hash?Y.hash.replace(/^#/,""):"",hostname:Y.hostname,port:Y.port,pathname:"/"===Y.pathname.charAt(0)?Y.pathname:"/"+Y.pathname}}function ed(a){a=
E(a)?wa(a):a;return a.protocol===wd.protocol&&a.host===wd.host}function vf(){this.$get=na(S)}function xd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},c={},e="";return function(){var a,g,h,k,l;a=d.cookie||"";if(a!==e)for(e=a,a=e.split("; "),c={},h=0;h<a.length;h++)g=a[h],k=g.indexOf("="),0<k&&(l=b(g.substring(0,k)),q(c[l])&&(c[l]=b(g.substring(k+1))));return c}}function zf(){this.$get=xd}function Jc(a){function b(d,c){if(H(d)){var e={};n(d,function(a,c){e[c]=
b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",yd);b("date",zd);b("filter",bg);b("json",cg);b("limitTo",dg);b("lowercase",eg);b("number",Ad);b("orderBy",Bd);b("uppercase",fg)}function bg(){return function(a,b,d){if(!za(a)){if(null==a)return a;throw G("filter")("notarray",a);}var c;switch(hc(b)){case "function":break;case "boolean":case "null":case "number":case "string":c=!0;case "object":b=
gg(b,d,c);break;default:return a}return Array.prototype.filter.call(a,b)}}function gg(a,b,d){var c=H(a)&&"$"in a;!0===b?b=ma:z(b)||(b=function(a,b){if(q(a))return!1;if(null===a||null===b)return a===b;if(H(b)||H(a)&&!qc(a))return!1;a=F(""+a);b=F(""+b);return-1!==a.indexOf(b)});return function(e){return c&&!H(e)?Ka(e,a.$,b,!1):Ka(e,a,b,d)}}function Ka(a,b,d,c,e){var f=hc(a),g=hc(b);if("string"===g&&"!"===b.charAt(0))return!Ka(a,b.substring(1),d,c);if(I(a))return a.some(function(a){return Ka(a,b,d,c)});
switch(f){case "object":var h;if(c){for(h in a)if("$"!==h.charAt(0)&&Ka(a[h],b,d,!0))return!0;return e?!1:Ka(a,b,d,!1)}if("object"===g){for(h in b)if(e=b[h],!z(e)&&!q(e)&&(f="$"===h,!Ka(f?a:a[h],e,d,f,f)))return!1;return!0}return d(a,b);case "function":return!1;default:return d(a,b)}}function hc(a){return null===a?"null":typeof a}function yd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){q(c)&&(c=b.CURRENCY_SYM);q(e)&&(e=b.PATTERNS[1].maxFrac);return null==a?a:Cd(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,
e).replace(/\u00A4/g,c)}}function Ad(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Cd(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function Cd(a,b,d,c,e){if(H(a))return"";var f=0>a;a=Math.abs(a);var g=Infinity===a;if(!g&&!isFinite(a))return"";var h=a+"",k="",l=!1,m=[];g&&(k="\u221e");if(!g&&-1!==h.indexOf("e")){var r=h.match(/([\d\.]+)e(-?)(\d+)/);r&&"-"==r[2]&&r[3]>e+1?a=0:(k=h,l=!0)}if(g||l)0<e&&1>a&&(k=a.toFixed(e),a=parseFloat(k),k=k.replace(ic,c));else{g=(h.split(ic)[1]||"").length;
q(e)&&(e=Math.min(Math.max(b.minFrac,g),b.maxFrac));a=+(Math.round(+(a.toString()+"e"+e)).toString()+"e"+-e);var g=(""+a).split(ic),h=g[0],g=g[1]||"",r=0,t=b.lgSize,n=b.gSize;if(h.length>=t+n)for(r=h.length-t,l=0;l<r;l++)0===(r-l)%n&&0!==l&&(k+=d),k+=h.charAt(l);for(l=r;l<h.length;l++)0===(h.length-l)%t&&0!==l&&(k+=d),k+=h.charAt(l);for(;g.length<e;)g+="0";e&&"0"!==e&&(k+=c+g.substr(0,e))}0===a&&(f=!1);m.push(f?b.negPre:b.posPre,k,f?b.negSuf:b.posSuf);return m.join("")}function Gb(a,b,d){var c="";
0>a&&(c="-",a=-a);for(a=""+a;a.length<b;)a="0"+a;d&&(a=a.substr(a.length-b));return c+a}function ca(a,b,d,c){d=d||0;return function(e){e=e["get"+a]();if(0<d||e>-d)e+=d;0===e&&-12==d&&(e=12);return Gb(e,b,c)}}function Hb(a,b){return function(d,c){var e=d["get"+a](),f=sb(b?"SHORT"+a:a);return c[f][e]}}function Dd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Ed(a){return function(b){var d=Dd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-
+d;b=1+Math.round(b/6048E5);return Gb(b,a)}}function jc(a,b){return 0>=a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function zd(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,k=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=ea(b[9]+b[10]),g=ea(b[9]+b[11]));h.call(a,ea(b[1]),ea(b[2])-1,ea(b[3]));f=ea(b[4]||0)-f;g=ea(b[5]||0)-g;h=ea(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));k.call(a,f,g,h,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
return function(c,d,f){var g="",h=[],k,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;E(c)&&(c=hg.test(c)?ea(c):b(c));Q(c)&&(c=new Date(c));if(!da(c)||!isFinite(c.getTime()))return c;for(;d;)(l=ig.exec(d))?(h=cb(h,l,1),d=h.pop()):(h.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=vc(f,c.getTimezoneOffset()),c=Pb(c,f,!0));n(h,function(b){k=jg[b];g+=k?k(c,a.DATETIME_FORMATS,m):b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function cg(){return function(a,b){q(b)&&(b=2);return db(a,b)}}function dg(){return function(a,
b,d){b=Infinity===Math.abs(Number(b))?Number(b):ea(b);if(isNaN(b))return a;Q(a)&&(a=a.toString());if(!I(a)&&!E(a))return a;d=!d||isNaN(d)?0:ea(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?a.slice(d,d+b):0===d?a.slice(b,a.length):a.slice(Math.max(0,d+b),d)}}function Bd(a){function b(b,d){d=d?-1:1;return b.map(function(b){var c=1,h=Ya;if(z(b))h=b;else if(E(b)){if("+"==b.charAt(0)||"-"==b.charAt(0))c="-"==b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(h=a(b),h.constant))var k=h(),h=function(a){return a[k]}}return{get:h,
descending:c*d}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(a,e,f){if(!za(a))return a;I(e)||(e=[e]);0===e.length&&(e=["+"]);var g=b(e,f);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(c){var e=c.get(a);c=typeof e;if(null===e)c="string",e="null";else if("string"===c)e=e.toLowerCase();else if("object"===c)a:{if("function"===typeof e.valueOf&&
(e=e.valueOf(),d(e)))break a;if(qc(e)&&(e=e.toString(),d(e)))break a;e=b}return{value:e,type:c}})}});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],n=0;c.type===f.type?c.value!==f.value&&(n=c.value<f.value?-1:1):n=c.type<f.type?-1:1;if(c=n*g[d].descending)break}return c});return a=a.map(function(a){return a.value})}}function La(a){z(a)&&(a={link:a});a.restrict=a.restrict||"AC";return na(a)}function Fd(a,b,d,c,e){var f=this,g=[];f.$error=
{};f.$$success={};f.$pending=u;f.$name=e(b.name||b.ngForm||"")(d);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;f.$$parentForm=Ib;f.$rollbackViewValue=function(){n(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){n(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Ra(a.$name,"input");g.push(a);a.$name&&(f[a.$name]=a);a.$$parentForm=f};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&
f[a.$name]===a&&delete f[a.$name];n(f.$pending,function(b,c){f.$setValidity(c,null,a)});n(f.$error,function(b,c){f.$setValidity(c,null,a)});n(f.$$success,function(b,c){f.$setValidity(c,null,a)});ab(g,a);a.$$parentForm=Ib};Gd({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&&(ab(d,c),0===d.length&&delete a[b])},$animate:c});f.$setDirty=function(){c.removeClass(a,Wa);c.addClass(a,Jb);f.$dirty=!0;f.$pristine=!1;f.$$parentForm.$setDirty()};
f.$setPristine=function(){c.setClass(a,Wa,Jb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;n(g,function(a){a.$setPristine()})};f.$setUntouched=function(){n(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){c.addClass(a,"ng-submitted");f.$submitted=!0;f.$$parentForm.$setSubmitted()}}function kc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function jb(a,b,d,c,e,f){var g=F(b[0].type);if(!e.android){var h=!1;b.on("compositionstart",function(a){h=!0});
b.on("compositionend",function(){h=!1;k()})}var k=function(a){l&&(f.defer.cancel(l),l=null);if(!h){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&"false"===d.ngTrim||(e=U(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",k);else{var l,m=function(a,b,c){l||(l=f.defer(function(){l=null;b&&b.value===c||k(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut",
m)}b.on("change",k);c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Kb(a,b){return function(d,c){var e,f;if(da(d))return d;if(E(d)){'"'==d.charAt(0)&&'"'==d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(kg.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,
mm:0,ss:0,sss:0},n(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function kb(a,b,d,c){return function(e,f,g,h,k,l,m){function r(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function n(a){return y(a)&&!da(a)?d(a)||u:a}Hd(e,f,g,h);jb(e,f,g,h,k,l);var A=h&&h.$options&&h.$options.timezone,v;h.$$parserName=a;h.$parsers.push(function(a){return h.$isEmpty(a)?null:b.test(a)?(a=d(a,v),A&&(a=Pb(a,A)),a):u});h.$formatters.push(function(a){if(a&&
!da(a))throw lb("datefmt",a);if(r(a))return(v=a)&&A&&(v=Pb(v,A,!0)),m("date")(a,c,A);v=null;return""});if(y(g.min)||g.ngMin){var s;h.$validators.min=function(a){return!r(a)||q(s)||d(a)>=s};g.$observe("min",function(a){s=n(a);h.$validate()})}if(y(g.max)||g.ngMax){var p;h.$validators.max=function(a){return!r(a)||q(p)||d(a)<=p};g.$observe("max",function(a){p=n(a);h.$validate()})}}}function Hd(a,b,d,c){(c.$$hasNativeValidators=H(b[0].validity))&&c.$parsers.push(function(a){var c=b.prop("validity")||{};
return c.badInput&&!c.typeMismatch?u:a})}function Id(a,b,d,c,e){if(y(c)){a=a(c);if(!a.constant)throw lb("constexpr",d,c);return a(b)}return e}function lc(a,b){a="ngClass"+a;return["$animate",function(d){function c(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e==b[m])continue a;c.push(e)}return c}function e(a){var b=[];return I(a)?(n(a,function(a){b=b.concat(e(a))}),b):E(a)?a.split(" "):H(a)?(n(a,function(a,c){a&&(b=b.concat(c.split(" ")))}),b):a}return{restrict:"AC",
link:function(f,g,h){function k(a,b){var c=g.data("$classCounts")||$(),d=[];n(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",c);return d.join(" ")}function l(a){if(!0===b||f.$index%2===b){var l=e(a||[]);if(!m){var n=k(l,1);h.$addClass(n)}else if(!ma(a,m)){var q=e(m),n=c(l,q),l=c(q,l),n=k(n,1),l=k(l,-1);n&&n.length&&d.addClass(g,n);l&&l.length&&d.removeClass(g,l)}}m=ia(a)}var m;f.$watch(h[a],l,!0);h.$observe("class",function(b){l(f.$eval(h[a]))});"ngClass"!==
a&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var l=e(f.$eval(h[a]));g===b?(g=k(l,1),h.$addClass(g)):(g=k(l,-1),h.$removeClass(g))}})}}}]}function Gd(a){function b(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function d(a,c){a=a?"-"+zc(a,"-"):"";b(mb+a,!0===c);b(Jd+a,!1===c)}var c=a.ctrl,e=a.$element,f={},g=a.set,h=a.unset,k=a.$animate;f[Jd]=!(f[mb]=e.hasClass(mb));c.$setValidity=function(a,e,f){q(e)?(c.$pending||(c.$pending={}),g(c.$pending,a,f)):(c.$pending&&
h(c.$pending,a,f),Kd(c.$pending)&&(c.$pending=u));$a(e)?e?(h(c.$error,a,f),g(c.$$success,a,f)):(g(c.$error,a,f),h(c.$$success,a,f)):(h(c.$error,a,f),h(c.$$success,a,f));c.$pending?(b(Ld,!0),c.$valid=c.$invalid=u,d("",null)):(b(Ld,!1),c.$valid=Kd(c.$error),c.$invalid=!c.$valid,d("",c.$valid));e=c.$pending&&c.$pending[a]?u:c.$error[a]?!1:c.$$success[a]?!0:null;d(a,e);c.$$parentForm.$setValidity(a,e,c)}}function Kd(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}var lg=/^\/(.+)\/([a-z]*)$/,
F=function(a){return E(a)?a.toLowerCase():a},qa=Object.prototype.hasOwnProperty,sb=function(a){return E(a)?a.toUpperCase():a},Ha,B,oa,ra=[].slice,Pf=[].splice,mg=[].push,sa=Object.prototype.toString,rc=Object.getPrototypeOf,Aa=G("ng"),fa=S.angular||(S.angular={}),Sb,nb=0;Ha=X.documentMode;x.$inject=[];Ya.$inject=[];var I=Array.isArray,Vd=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,U=function(a){return E(a)?a.trim():a},ud=function(a){return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,
"\\$1").replace(/\x08/g,"\\x08")},Ba=function(){if(!y(Ba.rules)){var a=X.querySelector("[ng-csp]")||X.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Ba.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==b.indexOf("no-inline-style")}}else{a=Ba;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Ba.rules},pb=function(){if(y(pb.name_))return pb.name_;var a,b,d=Oa.length,c,e;for(b=0;b<
d;++b)if(c=Oa[b],a=X.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+"jq");break}return pb.name_=e},Oa=["ng-","data-ng-","ng:","x-ng-"],be=/[A-Z]/g,Ac=!1,Rb,Na=3,fe={full:"1.4.8",major:1,minor:4,dot:8,codeName:"ice-manipulation"};N.expando="ng339";var gb=N.cache={},Ff=1;N._data=function(a){return this.cache[a[this.expando]]||{}};var Af=/([\:\-\_]+(.))/g,Bf=/^moz([A-Z])/,xb={mouseleave:"mouseout",mouseenter:"mouseover"},Ub=G("jqLite"),Ef=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,
Cf=/<([\w:-]+)/,Df=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,ka={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option;ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead;ka.th=ka.td;var Kf=Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&
16)},Pa=N.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"===X.readyState?setTimeout(b):(this.on("DOMContentLoaded",b),N(S).on("load",b))},toString:function(){var a=[];n(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?B(this[a]):B(this[this.length+a])},length:0,push:mg,sort:[].sort,splice:[].splice},Cb={};n("multiple selected checked disabled readOnly required open".split(" "),function(a){Cb[F(a)]=a});var Rc={};n("input select option textarea button form details".split(" "),
function(a){Rc[a]=!0});var Zc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};n({data:Wb,removeData:vb,hasData:function(a){for(var b in gb[a.ng339])return!0;return!1}},function(a,b){N[b]=a});n({data:Wb,inheritedData:Bb,scope:function(a){return B.data(a,"$scope")||Bb(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return B.data(a,"$isolateScope")||B.data(a,"$isolateScopeNoTemplate")},controller:Oc,injector:function(a){return Bb(a,
"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:yb,css:function(a,b,d){b=fb(b);if(y(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Na&&2!==c&&8!==c)if(c=F(b),Cb[c])if(y(d))d?(a[b]=!0,a.setAttribute(b,c)):(a[b]=!1,a.removeAttribute(c));else return a[b]||(a.attributes.getNamedItem(b)||x).specified?c:u;else if(y(d))a.setAttribute(b,d);else if(a.getAttribute)return a=a.getAttribute(b,2),null===a?u:a},prop:function(a,b,d){if(y(d))a[b]=d;else return a[b]},
text:function(){function a(a,d){if(q(d)){var c=a.nodeType;return 1===c||c===Na?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(q(b)){if(a.multiple&&"select"===ta(a)){var d=[];n(a.options,function(a){a.selected&&d.push(a.value||a.text)});return 0===d.length?null:d}return a.value}a.value=b},html:function(a,b){if(q(b))return a.innerHTML;ub(a,!0);a.innerHTML=b},empty:Pc},function(a,b){N.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==Pc&&q(2==a.length&&a!==yb&&a!==Oc?
b:c)){if(H(b)){for(e=0;e<g;e++)if(a===Wb)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=q(e)?Math.min(g,1):g;for(f=0;f<g;f++){var h=a(this[f],b,c);e=e?e+h:h}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});n({removeData:vb,on:function(a,b,d,c){if(y(c))throw Ub("onargs");if(Kc(a)){c=wb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=Hf(a,e));c=0<=b.indexOf(" ")?b.split(" "):[b];for(var g=c.length,h=function(b,c,g){var h=e[b];h||(h=e[b]=[],h.specialHandlerWrapper=c,"$destroy"===
b||g||a.addEventListener(b,f,!1));h.push(d)};g--;)b=c[g],xb[b]?(h(xb[b],Jf),h(b,u,!0)):h(b)}},off:Nc,one:function(a,b,d){a=B(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;ub(a);n(new N(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];n(a.childNodes,function(a){1===a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var d=
a.nodeType;if(1===d||11===d){b=new N(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;n(new N(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){b=B(b).eq(0).clone()[0];var d=a.parentNode;d&&d.replaceChild(b,a);b.appendChild(a)},remove:Xb,detach:function(a){Xb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;b=new N(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}},addClass:Ab,removeClass:zb,
toggleClass:function(a,b,d){b&&n(b.split(" "),function(b){var e=d;q(e)&&(e=!yb(a,b));(e?Ab:zb)(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:Vb,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=wb(a);if(g=(g=g&&g.events)&&g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},
stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:x,type:f,target:a},b.type&&(c=M(c,b)),b=ia(g),e=d?[c].concat(d):[c],n(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){N.prototype[b]=function(b,c,e){for(var f,g=0,h=this.length;g<h;g++)q(f)?(f=a(this[g],b,c,e),y(f)&&(f=B(f))):Mc(f,a(this[g],b,c,e));return y(f)?f:this};N.prototype.bind=N.prototype.on;
N.prototype.unbind=N.prototype.off});Sa.prototype={put:function(a,b){this[Ca(a,this.nextUid)]=b},get:function(a){return this[Ca(a,this.nextUid)]},remove:function(a){var b=this[a=Ca(a,this.nextUid)];delete this[a];return b}};var yf=[function(){this.$get=[function(){return Sa}]}],Tc=/^[^\(]*\(\s*([^\)]*)\)/m,ng=/,/,og=/^\s*(_?)(\S+?)\1\s*$/,Sc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Da=G("$injector");eb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw E(d)&&
d||(d=a.name||Lf(a)),Da("strictdi",d);b=a.toString().replace(Sc,"");b=b.match(Tc);n(b[1].split(ng),function(a){a.replace(og,function(a,b,d){c.push(d)})})}a.$inject=c}}else I(a)?(b=a.length-1,Qa(a[b],"fn"),c=a.slice(0,b)):Qa(a,"fn",!0);return c};var Md=G("$animate"),Ue=function(){this.$get=["$q","$$rAF",function(a,b){function d(){}d.all=x;d.chain=x;d.prototype={end:x,cancel:x,resume:x,pause:x,complete:x,then:function(c,d){return a(function(a){b(function(){a()})}).then(c,d)}};return d}]},Te=function(){var a=
new Sa,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=E(b)?b.split(" "):I(b)?b:[],n(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){n(b,function(b){var c=a.get(b);if(c){var d=Mf(b.attr("class")),e="",f="";n(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});n(b,function(a){e&&Ab(a,e);f&&zb(a,f)});a.remove(b)}});b.length=0}return{enabled:x,on:x,off:x,pin:x,push:function(g,h,k,l){l&&l();k=k||{};k.from&&g.css(k.from);
k.to&&g.css(k.to);if(k.addClass||k.removeClass)if(h=k.addClass,l=k.removeClass,k=a.get(g)||{},h=e(k,h,!0),l=e(k,l,!1),h||l)a.put(g,k),b.push(g),1===b.length&&c.$$postDigest(f);return new d}}}]},Re=["$provide",function(a){var b=this;this.$$registeredAnimations=Object.create(null);this.register=function(d,c){if(d&&"."!==d.charAt(0))throw Md("notcsel",d);var e=d+"-animation";b.$$registeredAnimations[d.substr(1)]=e;a.factory(e,c)};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,c,d){if(d){var h;a:{for(h=0;h<d.length;h++){var k=d[h];if(1===k.nodeType){h=k;break a}}h=void 0}!h||h.parentNode||h.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.end&&a.end()},enter:function(e,f,g,h){f=
f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"enter",Ea(h))},move:function(e,f,g,h){f=f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"move",Ea(h))},leave:function(b,c){return a.push(b,"leave",Ea(c),function(){b.remove()})},addClass:function(b,c,g){g=Ea(g);g.addClass=hb(g.addclass,c);return a.push(b,"addClass",g)},removeClass:function(b,c,g){g=Ea(g);g.removeClass=hb(g.removeClass,c);return a.push(b,"removeClass",g)},setClass:function(b,c,g,h){h=Ea(h);h.addClass=hb(h.addClass,
c);h.removeClass=hb(h.removeClass,g);return a.push(b,"setClass",h)},animate:function(b,c,g,h,k){k=Ea(k);k.from=k.from?M(k.from,c):c;k.to=k.to?M(k.to,g):g;k.tempClasses=hb(k.tempClasses,h||"ng-inline-animate");return a.push(b,"animate",k)}}}]}],Se=function(){this.$get=["$$rAF","$q",function(a,b){var d=function(){};d.prototype={done:function(a){this.defer&&this.defer[!0===a?"reject":"resolve"]()},end:function(){this.done()},cancel:function(){this.done(!0)},getPromise:function(){this.defer||(this.defer=
b.defer());return this.defer.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)}};return function(b,e){function f(){a(function(){e.addClass&&(b.addClass(e.addClass),e.addClass=null);e.removeClass&&(b.removeClass(e.removeClass),e.removeClass=null);e.to&&(b.css(e.to),e.to=null);g||h.done();g=!0});return h}e.cleanupStyles&&(e.from=e.to=null);e.from&&(b.css(e.from),e.from=
null);var g,h=new d;return{start:f,end:f}}}]},ha=G("$compile");Cc.$inject=["$provide","$$sanitizeUriProvider"];var Vc=/^((?:x|data)[\:\-_])/i,Qf=G("$controller"),Uc=/^(\S+)(\s+as\s+(\w+))?$/,$e=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&b instanceof B&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},$c="application/json",ac={"Content-Type":$c+";charset=utf-8"},Sf=/^\[|^\{(?!\{)/,Tf={"[":/]$/,"{":/}$/},Rf=/^\)\]\}',?\n/,pg=G("$http"),dd=function(a){return function(){throw pg("legacy",
a);}},Ja=fa.$interpolateMinErr=G("$interpolate");Ja.throwNoconcat=function(a){throw Ja("noconcat",a);};Ja.interr=function(a,b){return Ja("interr",a,b.toString())};var qg=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Vf={http:80,https:443,ftp:21},Db=G("$location"),rg={$$html5:!1,$$replace:!1,absUrl:Eb("$$absUrl"),url:function(a){if(q(a))return this.$$url;var b=qg.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Eb("$$protocol"),
host:Eb("$$host"),port:Eb("$$port"),path:id("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(E(a)||Q(a))a=a.toString(),this.$$search=xc(a);else if(H(a))a=bb(a,{}),n(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw Db("isrcharg");break;default:q(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:id("$$hash",function(a){return null!==
a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};n([hd,dc,cc],function(a){a.prototype=Object.create(rg);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==cc||!this.$$html5)throw Db("nostate");this.$$state=q(b)?null:b;return this}});var ba=G("$parse"),Wf=Function.prototype.call,Xf=Function.prototype.apply,Yf=Function.prototype.bind,Lb=$();n("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var sg={n:"\n",f:"\f",r:"\r",
t:"\t",v:"\v","'":"'",'"':'"'},fc=function(a){this.options=a};fc.prototype={constructor:fc,lex:function(a){this.text=a;this.index=0;for(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(),d=b+this.peek(2),c=Lb[b],e=Lb[d];Lb[a]||c||e?(a=e?d:c?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){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||
"\t"===a||"\n"===a||"\v"===a||"\u00a0"===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,d){d=d||this.index;b=y(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw ba("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var d=F(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var c=this.peek();
if("e"==d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!=a.charAt(a.length-1))break;else 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 d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+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,d+=String.fromCharCode(parseInt(e,16))):d+=sg[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,
value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var s=function(a,b){this.lexer=a;this.options=b};s.Program="Program";s.ExpressionStatement="ExpressionStatement";s.AssignmentExpression="AssignmentExpression";s.ConditionalExpression="ConditionalExpression";s.LogicalExpression="LogicalExpression";s.BinaryExpression="BinaryExpression";s.UnaryExpression="UnaryExpression";s.CallExpression="CallExpression";s.MemberExpression="MemberExpression";s.Identifier="Identifier";s.Literal=
"Literal";s.ArrayExpression="ArrayExpression";s.Property="Property";s.ObjectExpression="ObjectExpression";s.ThisExpression="ThisExpression";s.NGValueParameter="NGValueParameter";s.prototype={ast:function(a){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]);return a},program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:s.Program,
body:a}},expressionStatement:function(){return{type:s.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();this.expect("=")&&(a={type:s.AssignmentExpression,left:a,right:this.assignment(),operator:"="});return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?
(d=this.expression(),{type:s.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:s.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a={type:s.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:s.BinaryExpression,
operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:b.text,
left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.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=bb(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:s.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:s.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();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.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(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:s.Property,kind:"init"};this.peek().constant?b.key=this.constant():this.peek().identifier?b.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");b.value=this.expression();a.push(b)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},
throwError:function(a,b){throw ba("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw ba("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw ba("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];
var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},constants:{"true":{type:s.Literal,value:!0},"false":{type:s.Literal,value:!1},"null":{type:s.Literal,value:null},undefined:{type:s.Literal,value:u},"this":{type:s.ThisExpression}}};rd.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],
body:[],own:{}},inputs:[]};W(c,d.$filter);var e="",f;this.stage="assign";if(f=pd(c))this.state.computing="assign",e=this.nextId(),this.recurse(f,e),this.return_(e),e="fn.assign="+this.generateFunction("assign","s,v,l");f=nd(c.body);d.stage="inputs";n(f,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(c);e='"'+this.USE+" "+this.STRICT+
'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+e+this.watchFns()+"return fn;";e=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",e))(this.$filter,Va,xa,kd,jd,ld,Zf,md,a);this.state=this.stage=u;e.literal=qd(c);e.constant=c.constant;return e},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;n(b,function(b){a.push("var "+b+"="+d.generateFunction(b,
"s"))});b.length&&a.push("fn.inputs=["+b.join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;n(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return 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,c,e,f){var g,h,k=this,l,m;c=c||x;if(!f&&y(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case s.Program:n(a.body,function(b,c){k.recurse(b.expression,u,u,function(a){h=a});c!==a.body.length-1?k.current().body.push(h,";"):k.return_(h)});break;case s.Literal:m=this.escape(a.value);this.assign(b,m);c(m);break;case s.UnaryExpression:this.recurse(a.argument,u,u,function(a){h=a});m=a.operator+"("+this.ifDefined(h,
0)+")";this.assign(b,m);c(m);break;case s.BinaryExpression:this.recurse(a.left,u,u,function(a){g=a});this.recurse(a.right,u,u,function(a){h=a});m="+"===a.operator?this.plus(g,h):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(h,0):"("+g+")"+a.operator+"("+h+")";this.assign(b,m);c(m);break;case s.LogicalExpression:b=b||this.nextId();k.recurse(a.left,b);k.if_("&&"===a.operator?b:k.not(b),k.lazyRecurse(a.right,b));c(b);break;case s.ConditionalExpression:b=b||this.nextId();k.recurse(a.test,
b);k.if_(b,k.lazyRecurse(a.alternate,b),k.lazyRecurse(a.consequent,b));c(b);break;case s.Identifier:b=b||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Va(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){e&&1!==e&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(b,k.nonComputedMember("s",
a.name))})},b&&k.lazyAssign(b,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(b);c(b);break;case s.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();k.recurse(a.object,g,u,function(){k.if_(k.notNull(g),function(){if(a.computed)h=k.nextId(),k.recurse(a.property,h),k.getStringValue(h),k.addEnsureSafeMemberName(h),e&&1!==e&&k.if_(k.not(k.computedMember(g,h)),k.lazyAssign(k.computedMember(g,h),"{}")),m=k.ensureSafeObject(k.computedMember(g,
h)),k.assign(b,m),d&&(d.computed=!0,d.name=h);else{Va(a.property.name);e&&1!==e&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),k.lazyAssign(k.nonComputedMember(g,a.property.name),"{}"));m=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))m=k.ensureSafeObject(m);k.assign(b,m);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(b,"undefined")});c(b)},!!e);break;case s.CallExpression:b=b||this.nextId();a.filter?(h=k.filter(a.callee.name),l=[],n(a.arguments,
function(a){var b=k.nextId();k.recurse(a,b);l.push(b)}),m=h+"("+l.join(",")+")",k.assign(b,m),c(b)):(h=k.nextId(),g={},l=[],k.recurse(a.callee,h,g,function(){k.if_(k.notNull(h),function(){k.addEnsureSafeFunction(h);n(a.arguments,function(a){k.recurse(a,k.nextId(),u,function(a){l.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),m=k.member(g.context,g.name,g.computed)+"("+l.join(",")+")"):m=h+"("+l.join(",")+")";m=k.ensureSafeObject(m);k.assign(b,m)},
function(){k.assign(b,"undefined")});c(b)}));break;case s.AssignmentExpression:h=this.nextId();g={};if(!od(a.left))throw ba("lval");this.recurse(a.left,u,g,function(){k.if_(k.notNull(g.context),function(){k.recurse(a.right,h);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);m=k.member(g.context,g.name,g.computed)+a.operator+h;k.assign(b,m);c(b||m)})},1);break;case s.ArrayExpression:l=[];n(a.elements,function(a){k.recurse(a,k.nextId(),u,function(a){l.push(a)})});
m="["+l.join(",")+"]";this.assign(b,m);c(m);break;case s.ObjectExpression:l=[];n(a.properties,function(a){k.recurse(a.value,k.nextId(),u,function(b){l.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+b)})});m="{"+l.join(",")+"}";this.assign(b,m);c(m);break;case s.ThisExpression:this.assign(b,"s");c("s");break;case s.NGValueParameter:this.assign(b,"v"),c("v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+
this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return 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,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,
"){");b();c.push("}");d&&(c.push("else{"),d(),c.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,d){return d?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,d,c,e,f){var g=this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.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(E(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(Q(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 ba("esc");},nextId:function(a,b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};sd.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=b;W(c,d.$filter);var e,f;if(e=pd(c))f=this.recurse(e);e=nd(c.body);var g;e&&(g=[],n(e,function(a,b){var c=d.recurse(a);a.input=c;g.push(c);a.watchId=b}));var h=[];n(c.body,function(a){h.push(d.recurse(a.expression))});
e=0===c.body.length?function(){}:1===c.body.length?h[0]:function(a,b){var c;n(h,function(d){c=d(a,b)});return c};f&&(e.assign=function(a,b,c){return f(a,c,b)});g&&(e.inputs=g);e.literal=qd(c);e.constant=c.constant;return e},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,b);case s.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case s.BinaryExpression:return c=this.recurse(a.left),
e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case s.Identifier:return Va(a.name,f.expression),f.identifier(a.name,f.expensiveChecks||Fb(a.name),b,d,f.expression);case s.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(Va(a.property.name,
f.expression),e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d,f.expression):this.nonComputedMember(c,e,f.expensiveChecks,b,d,f.expression);case s.CallExpression:return g=[],n(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var r=[],n=0;n<g.length;++n)r.push(g[n](a,c,d,f));a=e.apply(u,r,f);return b?{context:u,name:u,value:a}:a}:function(a,
c,d,m){var r=e(a,c,d,m),n;if(null!=r.value){xa(r.context,f.expression);kd(r.value,f.expression);n=[];for(var q=0;q<g.length;++q)n.push(xa(g[q](a,c,d,m),f.expression));n=xa(r.value.apply(r.context,n),f.expression)}return b?{value:n}:n};case s.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,g,m){var n=c(a,d,g,m);a=e(a,d,g,m);xa(n.value,f.expression);ld(n.context);n.context[n.name]=a;return b?{value:a}:a};case s.ArrayExpression:return g=[],n(a.elements,function(a){g.push(f.recurse(a))}),
function(a,c,d,e){for(var f=[],n=0;n<g.length;++n)f.push(g[n](a,c,d,e));return b?{value:f}:f};case s.ObjectExpression:return g=[],n(a.properties,function(a){g.push({key:a.key.type===s.Identifier?a.key.name:""+a.key.value,value:f.recurse(a.value)})}),function(a,c,d,e){for(var f={},n=0;n<g.length;++n)f[g[n].key]=g[n].value(a,c,d,e);return b?{value:f}:f};case s.ThisExpression:return function(a){return b?{value:a}:a};case s.NGValueParameter:return function(a,c,d,e){return b?{value:d}:d}}},"unary+":function(a,
b){return function(d,c,e,f){d=a(d,c,e,f);d=y(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=y(d)?-d:0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);h=md(h,c);return d?{value:h}:h}},"binary-":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);h=(y(h)?h:0)-(y(c)?c:0);return d?{value:h}:h}},"binary*":function(a,
b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,
d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,
e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,h){e=a(e,f,g,h)?b(e,f,g,h):d(e,f,g,h);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:u,name:u,value:a}:a}},identifier:function(a,b,d,c,e){return function(f,g,h,k){f=
g&&a in g?g:f;c&&1!==c&&f&&!f[a]&&(f[a]={});g=f?f[a]:u;b&&xa(g,e);return d?{context:f,name:a,value:g}:g}},computedMember:function(a,b,d,c,e){return function(f,g,h,k){var l=a(f,g,h,k),m,n;null!=l&&(m=b(f,g,h,k),m=jd(m),Va(m,e),c&&1!==c&&l&&!l[m]&&(l[m]={}),n=l[m],xa(n,e));return d?{context:l,name:m,value:n}:n}},nonComputedMember:function(a,b,d,c,e,f){return function(g,h,k,l){g=a(g,h,k,l);e&&1!==e&&g&&!g[b]&&(g[b]={});h=null!=g?g[b]:u;(d||Fb(b))&&xa(h,f);return c?{context:g,name:b,value:h}:h}},inputs:function(a,
b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};var gc=function(a,b,d){this.lexer=a;this.$filter=b;this.options=d;this.ast=new s(this.lexer);this.astCompiler=d.csp?new sd(this.ast,b):new rd(this.ast,b)};gc.prototype={constructor:gc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};$();$();var $f=Object.prototype.valueOf,ya=G("$sce"),la={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ha=G("$compile"),Y=X.createElement("a"),wd=wa(S.location.href);
xd.$inject=["$document"];Jc.$inject=["$provide"];yd.$inject=["$locale"];Ad.$inject=["$locale"];var ic=".",jg={yyyy:ca("FullYear",4),yy:ca("FullYear",2,0,!0),y:ca("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:ca("Month",2,1),M:ca("Month",1,1),dd:ca("Date",2),d:ca("Date",1),HH:ca("Hours",2),H:ca("Hours",1),hh:ca("Hours",2,-12),h:ca("Hours",1,-12),mm:ca("Minutes",2),m:ca("Minutes",1),ss:ca("Seconds",2),s:ca("Seconds",1),sss:ca("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,b){return 12>
a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Gb(Math[0<a?"floor":"ceil"](a/60),2)+Gb(Math.abs(a%60),2))},ww:Ed(2),w:Ed(1),G:jc,GG:jc,GGG:jc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},ig=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,hg=/^\-?\d+$/;zd.$inject=["$locale"];var eg=na(F),fg=na(sb);Bd.$inject=["$parse"];var he=na({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,
b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===sa.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),tb={};n(Cb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!=a){var c=va("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});tb[c]=function(){return{restrict:"A",priority:100,link:e}}}});n(Zc,function(a,b){tb[b]=function(){return{priority:100,link:function(a,
c,e){if("ngPattern"===b&&"/"==e.ngPattern.charAt(0)&&(c=e.ngPattern.match(lg))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});n(["src","srcset","href"],function(a){var b=va("ng-"+a);tb[b]=function(){return{priority:99,link:function(d,c,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===sa.call(c.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null);e.$observe(b,function(b){b?(e.$set(g,b),Ha&&f&&c.prop(f,e[g])):"href"===a&&e.$set(g,null)})}}}});
var Ib={$addControl:x,$$renameControl:function(a,b){a.$name=b},$removeControl:x,$setValidity:x,$setDirty:x,$setPristine:x,$setSubmitted:x};Fd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Nd=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||x}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Fd,compile:function(d,f){d.addClass(Wa).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":
!1;return{pre:function(a,d,e,f){var n=f[0];if(!("action"in e)){var q=function(b){a.$apply(function(){n.$commitViewValue();n.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",q,!1);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",q,!1)},0,!1)})}(f[1]||n.$$parentForm).$addControl(n);var s=g?c(n.$name):x;g&&(s(a,n),e.$observe(g,function(b){n.$name!==b&&(s(a,u),n.$$parentForm.$$renameControl(n,b),s=c(n.$name),s(a,n))}));d.on("$destroy",function(){n.$$parentForm.$removeControl(n);
s(a,u);M(n,Ib)})}}}}}]},ie=Nd(),ve=Nd(!0),kg=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,tg=/^[A-Za-z][A-Za-z\d.+-]*:\/*(?:\w+(?::\w+)?@)?[^\s/]+(?::\d+)?(?:\/[\w#!:.?+=&%@\-/]*)?$/,ug=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,vg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Od=/^(\d{4})-(\d{2})-(\d{2})$/,Pd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,mc=/^(\d{4})-W(\d\d)$/,Qd=/^(\d{4})-(\d\d)$/,
Rd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Sd={text:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);kc(c)},date:kb("date",Od,Kb(Od,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Pd,Kb(Pd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Rd,Kb(Rd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",mc,function(a,b){if(da(a))return a;if(E(a)){mc.lastIndex=0;var d=mc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,h=0,k=Dd(c),e=7*(e-1);b&&(d=b.getHours(),f=
b.getMinutes(),g=b.getSeconds(),h=b.getMilliseconds());return new Date(c,0,k.getDate()+e,d,f,g,h)}}return NaN},"yyyy-Www"),month:kb("month",Qd,Kb(Qd,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f){Hd(a,b,d,c);jb(a,b,d,c,e,f);c.$$parserName="number";c.$parsers.push(function(a){return c.$isEmpty(a)?null:vg.test(a)?parseFloat(a):u});c.$formatters.push(function(a){if(!c.$isEmpty(a)){if(!Q(a))throw lb("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var g;c.$validators.min=function(a){return c.$isEmpty(a)||
q(g)||a>=g};d.$observe("min",function(a){y(a)&&!Q(a)&&(a=parseFloat(a,10));g=Q(a)&&!isNaN(a)?a:u;c.$validate()})}if(y(d.max)||d.ngMax){var h;c.$validators.max=function(a){return c.$isEmpty(a)||q(h)||a<=h};d.$observe("max",function(a){y(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:u;c.$validate()})}},url:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);kc(c);c.$$parserName="url";c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||tg.test(d)}},email:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);kc(c);
c.$$parserName="email";c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||ug.test(d)}},radio:function(a,b,d,c){q(d.name)&&b.attr("name",++nb);b.on("click",function(a){b[0].checked&&c.$setViewValue(d.value,a&&a.type)});c.$render=function(){b[0].checked=d.value==c.$viewValue};d.$observe("value",c.$render)},checkbox:function(a,b,d,c,e,f,g,h){var k=Id(h,a,"ngTrueValue",d.ngTrueValue,!0),l=Id(h,a,"ngFalseValue",d.ngFalseValue,!1);b.on("click",function(a){c.$setViewValue(b[0].checked,a&&
a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return ma(a,k)});c.$parsers.push(function(a){return a?k:l})},hidden:x,button:x,submit:x,reset:x,file:x},Dc=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Sd[F(g.type)]||Sd.text)(e,f,g,h[0],b,a,d,c)}}}}],wg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a,
b){return wg.test(b.ngValue)?function(a,b,e){e.$set("value",a.$eval(e.ngValue))}:function(a,b,e){a.$watch(e.ngValue,function(a){e.$set("value",a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=q(a)?"":a})}}}}],pe=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));
b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=q(a)?"":a})}}}}],oe=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){c.html(a.getTrustedHtml(f(b))||"")})}}}}],Me=na({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
qe=lc("",!0),se=lc("Odd",0),re=lc("Even",1),te=La({compile:function(a,b){b.$set("ngCloak",u);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ic={},xg={blur:!0,focus:!0};n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=va("ng-"+a);Ic[b]=["$parse","$rootScope",function(d,c){return{restrict:"A",compile:function(e,f){var g=
d(f[b],null,!0);return function(b,d){d.on(a,function(d){var e=function(){g(b,{$event:d})};xg[a]&&c.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(b,d,c,e,f){var g,h,k;b.$watch(c.ngIf,function(b){b?h||f(function(b,e){h=e;b[b.length++]=X.createComment(" end ngIf: "+c.ngIf+" ");g={clone:b};a.enter(b,d.parent(),d)}):(k&&(k.remove(),k=null),h&&(h.$destroy(),h=null),g&&(k=
rb(g.clone),a.leave(k).then(function(){k=null}),g=null))})}}}],ye=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:fa.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(c,e,m,n,q){var s=0,v,u,p,C=function(){u&&(u.remove(),u=null);v&&(v.$destroy(),v=null);p&&(d.leave(p).then(function(){u=null}),u=p,p=null)};c.$watch(f,function(f){var m=function(){!y(h)||h&&!c.$eval(h)||
b()},u=++s;f?(a(f,!0).then(function(a){if(u===s){var b=c.$new();n.template=a;a=q(b,function(a){C();d.enter(a,null,e).then(m)});v=b;p=a;v.$emit("$includeContentLoaded",f);c.$eval(g)}},function(){u===s&&(C(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(C(),n.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){/SVG/.test(d[0].toString())?(d.empty(),a(Lc(e.template,X).childNodes)(b,function(a){d.append(a)},
{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],ze=La({priority:450,compile:function(){return{pre:function(a,b,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=b.attr(d.$attr.ngList)||", ",f="false"!==d.ngTrim,g=f?U(e):e;c.$parsers.push(function(a){if(!q(a)){var b=[];a&&n(a.split(g),function(a){a&&b.push(f?U(a):a)});return b}});c.$formatters.push(function(a){return I(a)?a.join(e):u});c.$isEmpty=function(a){return!a||
!a.length}}}},mb="ng-valid",Jd="ng-invalid",Wa="ng-pristine",Jb="ng-dirty",Ld="ng-pending",lb=G("ngModel"),yg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,c,e,f,g,h,k,l){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;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=u;this.$name=l(d.name||"",!1)(a);this.$$parentForm=Ib;var m=e(d.ngModel),r=m.assign,t=m,s=r,v=null,B,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var b=e(d.ngModel+"()"),f=e(d.ngModel+"($$$p)");t=function(a){var c=m(a);z(c)&&(c=b(a));return c};s=function(a,b){z(m(a))?f(a,{$$$p:p.$modelValue}):r(a,p.$modelValue)}}else if(!m.assign)throw lb("nonassign",d.ngModel,ua(c));};this.$render=x;this.$isEmpty=
function(a){return q(a)||""===a||null===a||a!==a};var C=0;Gd({ctrl:this,$element:c,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:f});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;f.removeClass(c,Jb);f.addClass(c,Wa)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;f.removeClass(c,Wa);f.addClass(c,Jb);p.$$parentForm.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;f.setClass(c,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=
!0;p.$untouched=!1;f.setClass(c,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(v);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,b=p.$valid,c=p.$modelValue,d=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(e){d||b===e||(p.$modelValue=e?a:u,p.$modelValue!==c&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,b,c){function d(){var c=
!0;n(p.$validators,function(d,e){var g=d(a,b);c=c&&g;f(e,g)});return c?!0:(n(p.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;n(p.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!z(h.then))throw lb("$asyncValidators",h);f(g,u);c.push(h.then(function(){f(g,!0)},function(a){d=!1;f(g,!1)}))});c.length?k.all(c).then(function(){g(d)},x):g(!0)}function f(a,b){h===C&&p.$setValidity(a,b)}function g(a){h===C&&c(a)}C++;var h=C;(function(){var a=p.$$parserName||"parse";if(q(B))f(a,
null);else return B||(n(p.$validators,function(a,b){f(b,null)}),n(p.$asyncValidators,function(a,b){f(b,null)})),f(a,B),B;return!0})()?d()?e():g(!1):g(!1)};this.$commitViewValue=function(){var a=p.$viewValue;g.cancel(v);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var b=p.$$lastCommittedViewValue;if(B=q(b)?u:!0)for(var c=0;c<p.$parsers.length;c++)if(b=p.$parsers[c](b),
q(b)){B=!1;break}Q(p.$modelValue)&&isNaN(p.$modelValue)&&(p.$modelValue=t(a));var d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$rawModelValue=b;e&&(p.$modelValue=b,p.$modelValue!==d&&p.$$writeModelToScope());p.$$runValidators(b,p.$$lastCommittedViewValue,function(a){e||(p.$modelValue=a?b:u,p.$modelValue!==d&&p.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,p.$modelValue);n(p.$viewChangeListeners,function(a){try{a()}catch(c){b(c)}})};this.$setViewValue=function(a,b){p.$viewValue=
a;p.$options&&!p.$options.updateOnDefault||p.$$debounceViewValueCommit(b)};this.$$debounceViewValueCommit=function(b){var c=0,d=p.$options;d&&y(d.debounce)&&(d=d.debounce,Q(d)?c=d:Q(d[b])?c=d[b]:Q(d["default"])&&(c=d["default"]));g.cancel(v);c?v=g(function(){p.$commitViewValue()},c):h.$$phase?p.$commitViewValue():a.$apply(function(){p.$commitViewValue()})};a.$watch(function(){var b=t(a);if(b!==p.$modelValue&&(p.$modelValue===p.$modelValue||b===b)){p.$modelValue=p.$$rawModelValue=b;B=u;for(var c=p.$formatters,
d=c.length,e=b;d--;)e=c[d](e);p.$viewValue!==e&&(p.$viewValue=p.$$lastCommittedViewValue=e,p.$render(),p.$$runValidators(b,e,x))}return b})}],Ke=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:yg,priority:1,compile:function(b){b.addClass(Wa).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||g.$$parentForm;g.$$setOptions(f[2]&&f[2].$options);b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,
a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){var g=f[0];if(g.$options&&g.$options.updateOn)c.on(g.$options.updateOn,function(a){g.$$debounceViewValueCommit(a&&a.type)});c.on("blur",function(c){g.$touched||(a.$$phase?b.$evalAsync(g.$setTouched):b.$apply(g.$setTouched))})}}}}}],zg=/(\s+|^)default(\s+|$)/,Oe=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,b){var d=this;this.$options=bb(a.$eval(b.ngModelOptions));y(this.$options.updateOn)?
(this.$options.updateOnDefault=!1,this.$options.updateOn=U(this.$options.updateOn.replace(zg,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},Ae=La({terminal:!0,priority:1E3}),Ag=G("ngOptions"),Bg=/^\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]+?))?$/,Ie=["$compile","$parse",function(a,
b){function d(a,c,d){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function l(a){var b;if(!q&&za(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var m=a.match(Bg);if(!m)throw Ag("iexp",a,ua(c));var n=m[5]||m[7],q=m[6];a=/ as /.test(m[0])&&m[1];var s=m[9];c=b(m[2]?m[1]:n);var v=a&&b(a)||c,u=s&&b(s),p=s?function(a,b){return u(d,b)}:function(a){return Ca(a)},C=function(a,b){return p(a,z(a,b))},w=b(m[2]||
m[1]),y=b(m[3]||""),B=b(m[4]||""),x=b(m[8]),D={},z=q?function(a,b){D[q]=b;D[n]=a;return D}:function(a){D[n]=a;return D};return{trackBy:s,getTrackByValue:C,getWatchables:b(x,function(a){var b=[];a=a||[];for(var c=l(a),e=c.length,f=0;f<e;f++){var g=a===c?f:c[f],k=z(a[g],g),g=p(a[g],k);b.push(g);if(m[2]||m[1])g=w(d,k),b.push(g);m[4]&&(k=B(d,k),b.push(k))}return b}),getOptions:function(){for(var a=[],b={},c=x(d)||[],f=l(c),g=f.length,m=0;m<g;m++){var n=c===f?m:f[m],r=z(c[n],n),q=v(d,r),n=p(q,r),t=w(d,
r),u=y(d,r),r=B(d,r),q=new e(n,q,t,u,r);a.push(q);b[n]=q}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[C(a)]},getViewValueFromOption:function(a){return s?fa.copy(a.viewValue):a.viewValue}}}}}var c=X.createElement("option"),e=X.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=x},post:function(b,g,h,k){function l(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 m(a,b,c,d){b&&F(b.nodeName)===c?c=b:(c=d.cloneNode(!1),b?a.insertBefore(c,b):a.appendChild(c));return c}function r(a){for(var b;a;)b=a.nextSibling,Xb(a),a=b}function q(a){var b=p&&p[0],c=z&&z[0];if(b||c)for(;a&&(a===b||a===c||8===a.nodeType||""===a.value);)a=a.nextSibling;return a}function s(){var a=D&&u.readValue();D=E.getOptions();var b={},d=g[0].firstChild;x&&g.prepend(p);d=q(d);D.items.forEach(function(a){var f,h;a.group?
(f=b[a.group],f||(f=m(g[0],d,"optgroup",e),d=f.nextSibling,f.label=a.group,f=b[a.group]={groupElement:f,currentOptionElement:f.firstChild}),h=m(f.groupElement,f.currentOptionElement,"option",c),l(a,h),f.currentOptionElement=h.nextSibling):(h=m(g[0],d,"option",c),l(a,h),d=h.nextSibling)});Object.keys(b).forEach(function(a){r(b[a].currentOptionElement)});r(d);v.$render();if(!v.$isEmpty(a)){var f=u.readValue();(E.trackBy?ma(a,f):a===f)||(v.$setViewValue(f),v.$render())}}var v=k[1];if(v){var u=k[0];k=
h.multiple;for(var p,C=0,w=g.children(),y=w.length;C<y;C++)if(""===w[C].value){p=w.eq(C);break}var x=!!p,z=B(c.cloneNode(!1));z.val("?");var D,E=d(h.ngOptions,g,b);k?(v.$isEmpty=function(a){return!a||0===a.length},u.writeValue=function(a){D.items.forEach(function(a){a.element.selected=!1});a&&a.forEach(function(a){(a=D.getOptionFromViewValue(a))&&!a.disabled&&(a.element.selected=!0)})},u.readValue=function(){var a=g.val()||[],b=[];n(a,function(a){(a=D.selectValueMap[a])&&!a.disabled&&b.push(D.getViewValueFromOption(a))});
return b},E.trackBy&&b.$watchCollection(function(){if(I(v.$viewValue))return v.$viewValue.map(function(a){return E.getTrackByValue(a)})},function(){v.$render()})):(u.writeValue=function(a){var b=D.getOptionFromViewValue(a);b&&!b.disabled?g[0].value!==b.selectValue&&(z.remove(),x||p.remove(),g[0].value=b.selectValue,b.element.selected=!0,b.element.setAttribute("selected","selected")):null===a||x?(z.remove(),x||g.prepend(p),g.val(""),p.prop("selected",!0),p.attr("selected",!0)):(x||p.remove(),g.prepend(z),
g.val("?"),z.prop("selected",!0),z.attr("selected",!0))},u.readValue=function(){var a=D.selectValueMap[g.val()];return a&&!a.disabled?(x||p.remove(),z.remove(),D.getViewValueFromOption(a)):null},E.trackBy&&b.$watch(function(){return E.getTrackByValue(v.$viewValue)},function(){v.$render()}));x?(p.remove(),a(p)(b),p.removeClass("ng-scope")):p=B(c.cloneNode(!1));s();b.$watchCollection(E.getWatchables,s)}}}}}],Be=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,
g,h){function k(a){g.text(a||"")}var l=h.count,m=h.$attr.when&&g.attr(h.$attr.when),r=h.offset||0,s=f.$eval(m)||{},u={},v=b.startSymbol(),y=b.endSymbol(),p=v+l+"-"+r+y,C=fa.noop,w;n(h,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+F(c[2]),s[c]=g.attr(h.$attr[b]))});n(s,function(a,d){u[d]=b(a.replace(c,p))});f.$watch(l,function(b){var c=parseFloat(b),e=isNaN(c);e||c in s||(c=a.pluralCat(c-r));c===w||e&&Q(w)&&isNaN(w)||(C(),e=u[c],q(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+
m),C=x,k()):C=f.$watch(e,k),w=c)})}}}],Ce=["$parse","$animate",function(a,b){var d=G("ngRepeat"),c=function(a,b,c,d,k,l,m){a[c]=d;k&&(a[k]=l);a.$index=b;a.$first=0===b;a.$last=b===m-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(b&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(e,f){var g=f.ngRepeat,h=X.createComment(" end ngRepeat: "+g+" "),k=g.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);
if(!k)throw d("iexp",g);var l=k[1],m=k[2],r=k[3],q=k[4],k=l.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!k)throw d("iidexp",l);var s=k[3]||k[1],v=k[2];if(r&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(r)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(r)))throw d("badident",r);var x,p,y,w,z={$id:Ca};q?x=a(q):(y=function(a,b){return Ca(b)},w=function(a){return a});return function(a,e,f,k,l){x&&(p=function(b,c,d){v&&(z[v]=b);z[s]=c;z.$index=
d;return x(a,z)});var q=$();a.$watchCollection(m,function(f){var k,m,t=e[0],x,z=$(),D,E,H,F,I,G,J;r&&(a[r]=f);if(za(f))I=f,m=p||y;else for(J in m=p||w,I=[],f)qa.call(f,J)&&"$"!==J.charAt(0)&&I.push(J);D=I.length;J=Array(D);for(k=0;k<D;k++)if(E=f===I?k:I[k],H=f[E],F=m(E,H,k),q[F])G=q[F],delete q[F],z[F]=G,J[k]=G;else{if(z[F])throw n(J,function(a){a&&a.scope&&(q[a.id]=a)}),d("dupes",g,F,H);J[k]={id:F,scope:u,clone:u};z[F]=!0}for(x in q){G=q[x];F=rb(G.clone);b.leave(F);if(F[0].parentNode)for(k=0,m=F.length;k<
m;k++)F[k].$$NG_REMOVED=!0;G.scope.$destroy()}for(k=0;k<D;k++)if(E=f===I?k:I[k],H=f[E],G=J[k],G.scope){x=t;do x=x.nextSibling;while(x&&x.$$NG_REMOVED);G.clone[0]!=x&&b.move(rb(G.clone),null,B(t));t=G.clone[G.clone.length-1];c(G.scope,k,s,H,v,E,D)}else l(function(a,d){G.scope=d;var e=h.cloneNode(!1);a[a.length++]=e;b.enter(a,null,B(t));t=e;G.clone=a;z[G.id]=G;c(G.scope,k,s,H,v,E,D)});q=z})}}}}],De=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?
"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],we=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ee=La(function(a,b,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&n(d,function(a,c){b.css(c,"")});a&&b.css(a)},!0)}),Fe=["$animate",function(a){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(b,
d,c,e){var f=[],g=[],h=[],k=[],l=function(a,b){return function(){a.splice(b,1)}};b.$watch(c.ngSwitch||c.on,function(b){var c,d;c=0;for(d=h.length;c<d;++c)a.cancel(h[c]);c=h.length=0;for(d=k.length;c<d;++c){var q=rb(g[c].clone);k[c].$destroy();(h[c]=a.leave(q)).then(l(h,c))}g.length=0;k.length=0;(f=e.cases["!"+b]||e.cases["?"])&&n(f,function(b){b.transclude(function(c,d){k.push(d);var e=b.element;c[c.length++]=X.createComment(" end ngSwitchWhen: ");g.push({clone:c});a.enter(c,e.parent(),e)})})})}}}],
Ge=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["!"+d.ngSwitchWhen]=c.cases["!"+d.ngSwitchWhen]||[];c.cases["!"+d.ngSwitchWhen].push({transclude:e,element:b})}}),He=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),Je=La({restrict:"EAC",link:function(a,b,d,c,e){if(!e)throw G("ngTransclude")("orphan",ua(b));e(function(a){b.empty();
b.append(a)})}}),je=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"==d.type&&a.put(d.id,b[0].text)}}}],Cg={$setViewValue:x,$render:x},Dg=["$element","$scope","$attrs",function(a,b,d){var c=this,e=new Sa;c.ngModelCtrl=Cg;c.unknownOption=B(X.createElement("option"));c.renderUnknownOption=function(b){b="? "+Ca(b)+" ?";c.unknownOption.val(b);a.prepend(c.unknownOption);a.val(b)};b.$on("$destroy",function(){c.renderUnknownOption=x});c.removeUnknownOption=
function(){c.unknownOption.parent()&&c.unknownOption.remove()};c.readValue=function(){c.removeUnknownOption();return a.val()};c.writeValue=function(b){c.hasOption(b)?(c.removeUnknownOption(),a.val(b),""===b&&c.emptyOption.prop("selected",!0)):null==b&&c.emptyOption?(c.removeUnknownOption(),a.val("")):c.renderUnknownOption(b)};c.addOption=function(a,b){Ra(a,'"option value"');""===a&&(c.emptyOption=b);var d=e.get(a)||0;e.put(a,d+1);c.ngModelCtrl.$render();b[0].hasAttribute("selected")&&(b[0].selected=
!0)};c.removeOption=function(a){var b=e.get(a);b&&(1===b?(e.remove(a),""===a&&(c.emptyOption=u)):e.put(a,b-1))};c.hasOption=function(a){return!!e.get(a)};c.registerOption=function(a,b,d,e,l){if(e){var m;d.$observe("value",function(a){y(m)&&c.removeOption(m);m=a;c.addOption(a,b)})}else l?a.$watch(l,function(a,e){d.$set("value",a);e!==a&&c.removeOption(e);c.addOption(a,b)}):c.addOption(d.value,b);b.on("$destroy",function(){c.removeOption(d.value);c.ngModelCtrl.$render()})}}],ke=function(){return{restrict:"E",
require:["select","?ngModel"],controller:Dg,priority:1,link:{pre:function(a,b,d,c){var e=c[1];if(e){var f=c[0];f.ngModelCtrl=e;e.$render=function(){f.writeValue(e.$viewValue)};b.on("change",function(){a.$apply(function(){e.$setViewValue(f.readValue())})});if(d.multiple){f.readValue=function(){var a=[];n(b.find("option"),function(b){b.selected&&a.push(b.value)});return a};f.writeValue=function(a){var c=new Sa(a);n(b.find("option"),function(a){a.selected=y(c.get(a.value))})};var g,h=NaN;a.$watch(function(){h!==
e.$viewValue||ma(g,e.$viewValue)||(g=ia(e.$viewValue),e.$render());h=e.$viewValue});e.$isEmpty=function(a){return!a||0===a.length}}}}}}},me=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,d){if(y(d.value))var c=a(d.value,!0);else{var e=a(b.text(),!0);e||d.$set("value",b.text())}return function(a,b,d){var k=b.parent();(k=k.data("$selectController")||k.parent().data("$selectController"))&&k.registerOption(a,b,d,c,e)}}}}],le=na({restrict:"E",terminal:!1}),Fc=function(){return{restrict:"A",
require:"?ngModel",link:function(a,b,d,c){c&&(d.required=!0,c.$validators.required=function(a,b){return!d.required||!c.$isEmpty(b)},d.$observe("required",function(){c.$validate()}))}}},Ec=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e,f=d.ngPattern||d.pattern;d.$observe("pattern",function(a){E(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw G("ngPattern")("noregexp",f,a,ua(b));e=a||u;c.$validate()});c.$validators.pattern=function(a,b){return c.$isEmpty(b)||
q(e)||e.test(b)}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=-1;d.$observe("maxlength",function(a){a=ea(a);e=isNaN(a)?-1:a;c.$validate()});c.$validators.maxlength=function(a,b){return 0>e||c.$isEmpty(b)||b.length<=e}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=0;d.$observe("minlength",function(a){e=ea(a)||0;c.$validate()});c.$validators.minlength=function(a,b){return c.$isEmpty(b)||b.length>=e}}}}};S.angular.bootstrap?
console.log("WARNING: Tried to load angular more than once."):(ce(),ee(fa),fa.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(" "),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:"-\u00a4",
negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,c){var e=a|0,f=c;u===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),B(X).ready(function(){Zd(X,yc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
//# sourceMappingURL=angular.min.js.map
;
/**
 * Angular Selectize2
 * https://github.com/machineboy2045/angular-selectize
 **/

angular.module('selectize', []).value('selectizeConfig', {}).directive("selectize", ['selectizeConfig', function (selectizeConfig) {
    return {
        restrict: 'EA',
        require: '^ngModel',
        scope: { ngModel: '=', config: '=?', options: '=?', ngDisabled: '=', ngRequired: '&' },
        link: function (scope, element, attrs, modelCtrl) {

            var selectize,
                settings = angular.extend({}, Selectize.defaults, selectizeConfig, scope.config);

            scope.options = scope.options || [];
            scope.config = scope.config || {};

            var isEmpty = function (val) {
                return val === undefined || val === null || !val.length; //support checking empty arrays
            };

            var toggle = function (disabled) {
                disabled ? selectize.disable() : selectize.enable();
            }

            var validate = function () {
                var isInvalid = (scope.ngRequired() || attrs.required || settings.required) && isEmpty(scope.ngModel);
                modelCtrl.$setValidity('required', !isInvalid);
            };

            var setSelectizeOptions = function (curr, prev) {
                angular.forEach(prev, function (opt) {
                    if (curr.indexOf(opt) === -1) {
                        var value = opt[settings.valueField];
                        selectize.removeOption(value, true);
                    }
                });

                selectize.addOption(curr, true);

                selectize.refreshOptions(false); // updates results if user has entered a query
                setSelectizeValue();
            }

            var setSelectizeValue = function () {
                validate();

                selectize.$control.toggleClass('ng-valid', modelCtrl.$valid);
                selectize.$control.toggleClass('ng-invalid', modelCtrl.$invalid);
                selectize.$control.toggleClass('ng-dirty', modelCtrl.$dirty);
                selectize.$control.toggleClass('ng-pristine', modelCtrl.$pristine);

                if (!angular.equals(selectize.items, scope.ngModel)) {
                    selectize.setValue(scope.ngModel, true);
                }
            }

            settings.onChange = function (value) {
                var value = angular.copy(selectize.items);
                if (settings.maxItems == 1) {
                    value = value[0]
                }
                modelCtrl.$setViewValue(value);

                if (scope.config.onChange) {
                    scope.config.onChange.apply(this, arguments);
                }
            };

            settings.onOptionAdd = function (value, data) {
                if (scope.options.indexOf(data) === -1) {
                    scope.options.push(data);

                    if (scope.config.onOptionAdd) {
                        scope.config.onOptionAdd.apply(this, arguments);
                    }
                }
            };

            settings.onInitialize = function () {
                selectize = element[0].selectize;

                setSelectizeOptions(scope.options);

                //provides a way to access the selectize element from an
                //angular controller
                if (scope.config.onInitialize) {
                    scope.config.onInitialize(selectize);
                }

                scope.$watchCollection('options', setSelectizeOptions);
                scope.$watch('ngModel', setSelectizeValue);
                scope.$watch('ngDisabled', toggle);
            };

            element.selectize(settings);

            element.on('$destroy', function () {
                if (selectize) {
                    selectize.destroy();
                    element = null;
                }
            });
        }
    };
}]);;
'use strict';
angular.module('app', ['selectize']);;
(function () {
    'use strict';
    //var matchExpression = /\w\S*/g;
    var matchSpace = /\s/g;

    angular.module('app').filter('spacesubstitute', spacesubstituteFilter);

    function spacesubstituteFilter() {
        return function (input) {
            return input.replace(matchSpace, '-');
        };
    }
})();;
(function() {
    'use strict';
    var matchExpression = /\w\S*/g;
    var matchDash = /\-/g;

    angular.module('app').filter('titlecase', titlecaseFilter);

    function titlecaseFilter() {
        return function(input) {
            return input.replace(matchDash, ' ').replace(matchExpression, onMatch);
        };
    }

    function onMatch(txt) {
        if (txt.length < 3) {
            return txt.toLowerCase();
        }
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    }
})();
;
(function () {

    function HomeHttpService($http) {
        this.http = $http;
    }

    HomeHttpService.prototype.findMany = function (filters) {
        var httpOptions = {
            url: '/homelist/search',
            method: 'POST',
            data: filters
        };

        return this.http(httpOptions)
            .then(function (resp) {
                return resp.data;
            });
    };

    angular.module('app').service('homeHttpService', ['$http', HomeHttpService]);
})();;
(function (global) {
    'use strict';
    // export controller and import dependencies
    angular.module('app').controller('CommunitySearchController', ['$scope', '$sce', '$timeout', CommunitySearchController]);

    //var defaultZoom = 12;
    var mobileRegex = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
    var zoomedOut = 6;
    var usCenter = { latitude: 36.5837531, longitude: -85.3343833 };
    var dropEffect = 2; // google.maps.Animation.DROP

    function CommunitySearchController($scope, $sce, $timeout) {
        var modelData = global.ModelData;
        this.$scope = $scope;
    
        this.$sce = $sce;
        this.$timeout = $timeout;
        this.mapMarkerTemplate = _.template(document.getElementById('locationMapMarkerTemplate').innerHTML);
        this.Locations = null;
        this.StatesList = [];
        this.hasValidResult = false;
        this.Filters = modelData ? angular.copy(modelData) : {};
        this.Filters.SearchText = modelData.SearchTextDisplay;

        this.initialize();
        this.searchLocations();
        this.showPopup();
 }

    // define methods
    CommunitySearchController.prototype = {
        clearFilters: function (ev) {
            window.location.reload(true);
        },
        clearMarkers: function () {
            var vm = this;
            this.maplace.markers.forEach(function(marker) {
                marker.setMap(null);
            });
            this.maplace.markers = [];
            this.Locations = [];

            setTimeout(function() {
                vm.$scope.$apply();
            });
        },
        isEnterPressed: function(evt, fn) {
            var keyCode = evt.keyCode || evt.which;
            if (keyCode === 13) {
                fn.call(this);
            }
        },
        initialize: function () {
            var vm = this;

            var $controls = $('#map-controls');
            var $sort = $('button.icon-sort-amount-desc');
            var $filter = $('button.icon-sliders');
            var $gmap = $('#gmap');
            var $mrt = $('.map-results.toggle');
            var $mfr = $('.map-filter-results');
            var $mobilecontrols = $('.view-mobile');
          

            //this.listenForResize($(window));

            this.maplace = new Maplace({
                generate_controls: false,
                show_markers: false,
                controls_on_map: false,
                map_options: {
                    streetViewControl: false,
                    disableDefaultUI: true,
                    //disableDoubleClickZoom:true,
                    //draggable:false,
                    scrollwheel: false,
                     zoomControl: true,
                     zoomControlOptions: {
                         position: google.maps.ControlPosition.LEFT_TOP
                     },
                     scaleControl: true,
                     set_center: usCenter
                },

                afterOpenInfowindow: function (index, location, marker) {
                    setTimeout(function () {
                        $('.gm-style-iw').next('div').remove();
                    }, 250);
                }
            });

        $controls.on('click', 'button[data-show-prop]', function () {
                var which = parseInt($(this).data('show-prop'));
                if (which === 0) {
                    which = 'all';
                }
                var locations = vm.Locations[which - 1];
           var searchtext = global.ModelData.SearchTextDisplay.replace("-", " ");
           vm.currentCommunity = vm.Locations.some(function (it) {
               return it.distance === "0" && it.title.toLowerCase() === searchtext.toLowerCase();
           });
        if (locations != null)
                {
             if ((locations.isSimplyRyan) && (!vm.currentCommunity) && (vm.Filters.ShowFilters))
                    {
                        popupHomeType("simplyryan",null);                      
                    }
             if ((locations.isLifestyle) && (!vm.currentCommunity) && (vm.Filters.ShowFilters))
                    {
                        popupHomeType("lifestyle",null);
                    }         
                }
                vm.maplace.ViewOnMap(which);
            });
            $mobilecontrols.on('click', 'li[data-show-prop]', function () {
             var which = parseInt($(this).data('show-prop'));
                if (which === 0) {
                    which = 'all';
                }
                var locations = vm.Locations[which - 1];
                var searchtext = global.ModelData.SearchTextDisplay.replace("-", " ");
              vm.currentCommunity = vm.Locations.some(function (it) {
                    return it.distance === "0" && it.title.toLowerCase() === searchtext.toLowerCase();
                });
              if (locations != null) {
                  var communityUrl = "/find-your-home/our-communities/" +
                      locations.stateName +
                      "/" +
                      locations.cityName +
                      "/" +
                      locations.communityName;
                  if ((locations.isSimplyRyan) && (!vm.currentCommunity) && (vm.Filters.ShowFilters)) {
                      popupHomeType("simplyryan",communityUrl);
                      }
                  if ((locations.isLifestyle) && (!vm.currentCommunity) && (vm.Filters.ShowFilters)) {
                    popupHomeType("lifestyle",communityUrl);
                  }
              }
                vm.maplace.ViewOnMap(which);
            });
          $('#simply-ryan-lifestyle').on('click', '.icon-close', function () {
              var communityurl = $('.mobile-popup-hidden').attr('href');
              $('.mobile-popup').attr('href', communityurl);
                $('#simply-ryan-lifestyle').removeClass('modal-open');
                
            });

            $gmap.on('click', '.icon-close', function () {
                vm.maplace.CloseInfoWindow();
            });

            //$("#map").addClass("hide_tablet_side");
            $sort.on('click', function () {
                $(this).toggleClass('active');
                if ($mfr.hasClass('open') === true) {
                    $filter.removeClass('active');
                    $mfr.slideUp('fast', function () {
                        $mrt.slideDown('fast').addClass('open');
                    }).removeClass('open');
                } else {
                    if ($mrt.hasClass('open') === false) {
                        $mrt.slideDown().addClass('open');
                    } else {
                        $mrt.slideUp().removeClass('open');
                    }
                }
            });

            $filter.on('click', function () {
                $(this).toggleClass('active');
                if ($mrt.hasClass('open') === true) {
                    $sort.removeClass('active');
                    $mrt.slideUp('fast', function () {
                        $mfr.slideDown('fast').addClass('open');
                    }).removeClass('open');
                } else {
                    if ($mfr.hasClass('open') === false) {
                        $mfr.slideDown().addClass('open');
                    } else {
                        $mfr.slideUp().removeClass('open');
                    }
                }
            });

            // set initial zoom and location
            this.loadMaps([], usCenter, zoomedOut);
        },
        listenForResize: function (el) {
            // var self = this;
            // var $el = el;

            // $el.resize(onResize)
            //     .bind('resizeEnd', onResizeEnd)
            //     .load(onLoad);

            // function onResize() {

            //     if (this.resizeTO) {
            //         clearTimeout(this.resizeTO);
            //     }
            //     this.resizeTO = setTimeout(function () {
            //         $el.trigger('resizeEnd');
            //     }, 250);
            // }
            // function onResizeEnd() {
            //     var windowWidth = $el.width();
            
            //     // if (windowWidth > 767 && RHMaps.mapsLoaded === false) {
            //     //     self.loadMaps();
            //     // }
            //     if (windowWidth > 641 && $('.map-properties').length) {
            //         self.sideSize();
            //     }
            // }
            // function onLoad() {
            //     self.sideSize();
            // }
        },
        fitBounds: function() {
            this.maplace.oMap.fitBounds(this.maplace.oBounds);
        },
        ensureMarkersVisible: function (attemptsLeft, waitMs) {
            waitMs = waitMs || 250;
            var vm = this;

            vm.$timeout(function () {
                var map = vm.maplace.oMap;
                var bounds = map.getBounds();
                if (bounds) {
                    var areAllMarkersVisible = _.every(vm.maplace.markers, function (marker) {
                        return bounds.contains(marker.getPosition());
                    });

                    if (areAllMarkersVisible || !attemptsLeft) {
                        return;
                    }

                    vm.fitBounds();
                }
                vm.ensureMarkersVisible(--attemptsLeft, waitMs);
            }, waitMs);
        },
        loadMaps: function (locations, centerPoint, zoomLevel) {
            var vm = this;
            vm.mapsLoaded = true;

            var isDraggable = true;
            //device detection to set draggable to false
            if (mobileRegex.test(navigator.userAgent)) {
                isDraggable = false;
            }

            var loadOptions = {
                locations: locations,
                styles: styless,
                map_options: {
                    draggable:isDraggable,
                    streetViewControl: false,
                    disableDefaultUI: true,
                    //disableDoubleClickZoom:true,
                    maxZoom:12,
                    minZoom: 3,
                    scrollwheel: false,
                    zoomControl: true,
                    zoomControlOptions: {
                        position: google.maps.ControlPosition.LEFT_TOP
                    },
                    scaleControl: true
                }
            };

            if (centerPoint !== undefined && locations.length !== 1) {
                loadOptions.map_options.set_center = [centerPoint.latitude, centerPoint.longitude];
            }

            $('.map-display').show();
            $('.map-loading').css('position', 'absolute');
            this.maplace.Load(loadOptions);

            if (zoomLevel !== undefined) {
                if (zoomLevel === 0) {
                    // call fitbounds using maplace's internal bounds object
                    this.fitBounds();
                    this.ensureMarkersVisible(3, 2000);
                } else {
                    // set default of 1 to keep from causing errors if undefined
                    this.maplace.oMap.setZoom(zoomLevel || 1);
                }
            }


            var $mapFilters = $('#map-filters');
            if($mapFilters.length === 0 || $mapFilters.attr('style') === 'display:none;' || $mapFilters.attr('style') === 'display: none;' || $mapFilters.hasClass('ng-hide') === true){
                $('#map-controls').addClass('no-filters');
            }
            setTimeout(function () {
                $('.map-controls-container').show();

               // vm.sideSize();
                $('.map-loading').fadeOut();
            }, 1500);

            if ($('#map-controls').length === 0) {
                $('.map-display').addClass('full');
            } else {
                $('.map-display').removeClass('full');
            }

            var mainCommunities = locations.filter(function (loc) {
                return loc.isNearbyCommunity === false;
            });
            
            // trigger first result to open
            if (mainCommunities.length === 1 || locations.length === 1) {
                setTimeout(function () {
                    $('#map-controls').find('button[data-show-prop]').first().trigger('click');
                }, 2000);
            }

            setTimeout(function() {
                vm.$scope.$apply();
            });

        },   
 searchLocations: function () {
            var filters = this.Filters;
            if (filters.SearchText === filters.CountyName) {
                filters.SearchTextDisplay = filters.CountyName+" county";
            } else {
                filters.SearchTextDisplay = filters.SearchText;
            }

            $.ajax({
                    method: 'GET',
                    url: '/find-your-home/SearchCommunities',
                    data: filters
                })
                .then(this.updateLocations.bind(this));     
          },
        sideSize: function () {
            // var $map = $('#map');
            // var $mapFilters = $('#map-filters');
            // var $mapResults = $('.map-results', $('#map-controls'));
            // var $mapProperties = $('.map-properties');
            // var $mapKey = $('.map-key');
            // var diff;

            // if($mapFilters.length === 0 || $mapFilters.attr('style') === 'display:none;' || $mapFilters.attr('style') === 'display: none;'){
            //    diff = $map.height() - ($mapResults.eq(0).outerHeight() + $mapKey.eq(0).outerHeight());
            //    $mapProperties.height(diff);
              
            //     $('.map-display').height($map.height());
            //     $('.map-loading').height($map.height());
            // }else{
                
            //     diff = $map.height() - ($mapFilters.outerHeight() + $mapResults.eq(0).outerHeight() + $mapKey.eq(0).outerHeight());
            //     $mapProperties.height(diff);
            // }
        },
        updateLocations: function (model) {
            var vm = this;
            var searchtext = global.ModelData.SearchTextDisplay.replace("-", " ");
            vm.Locations = model.mapResults.locations;
            vm.homeContents = model.homeContents;
            vm.stateName = model.stateName;
            vm.seoArea = model.seoArea;
            vm.citiesArea = model.citiesArea;
            vm.counties = model.counties;
            vm.hasDecorated = vm.Locations.some(function (it) { return it.isShowModel; });
            vm.currentCommunity = vm.Locations.some(function (it) {
               return it.distance === "0" && it.title.toLowerCase() === searchtext.toLowerCase(); });
            $('#homeContentHtml').html(this.homeContents);
            if (model.marketId != null && model.marketId != "") {
                $('#AreaOfInterestId').val(model.marketId);
                $('#LocOfInterestID').val(model.marketId);
            }

            if (vm.Locations.length === 0) {
                if (vm.hasValidResult) {
                    this.clearMarkers();
                    return;
                }

                this.loadMaps([], usCenter, zoomedOut);
                return;
            }

            vm.hasValidResult = true;

            var centroid = {
                latitude: model.mapResults.latitude,
                longitude: model.mapResults.longitude
            };

            // assign defaults and calculated properties to location
            _.forEach(vm.Locations, function (loc) {
                var icon;
                var searchtxt = global.ModelData.SearchTextDisplay.replace("-", " ");
                var titletxt = loc.title.replace("-", " ");
                var communityUrl = "/find-your-home/our-communities/" +
                    loc.stateName +
                    "/" +
                    loc.cityName +
                    "/" +
                    loc.communityName;
                
              if (loc.isShowModel) {
                    icon = '/assets/images/map-flag-blue.png';
                } else if (loc.isNearbyCommunity) {
                    icon = '/assets/images/map-circle.png';
                } else {
                    if (!loc.distance || loc.distance === "0") {
                        if(titletxt.toLowerCase() === searchtxt.toLowerCase())
                    {
                         icon = '/assets/images/map-star.png';
                     }
                     else
                     { icon = '/assets/images/map-flag.png'; }
                    } else {
                        icon = '/assets/images/map-flag.png';
                        loc.zIndex = 3;
                    }
                }
                loc.thumbnailMobileURL = loc.thumbnailUrl.replace("rh-community-thumbnail", "rh-community-models-grid-thumbnail");
                loc.distanceText = loc.distance && loc.distance !== '0' ? '&nbsp;&nbsp;' + '&bull;' + '&nbsp;&nbsp;' + loc.distance + ' mi' : '';
                loc.currentCommunity = loc.distance === '0' && titletxt.toLowerCase() === searchtxt.toLowerCase();
                //loc.isLaunchCommunity = !vm.Filters.ShowNearbyCommmunities;
                loc.phone = loc.phone;
                loc.communityId = loc.communityId;
                loc.isLaunchCommunity = loc.isLaunchPageTemplate;
                loc.icon = {
                    url: icon,
                    anchor: new google.maps.Point(0, 0)
                };
                loc.animation = dropEffect;
                loc.visible = true;
                loc.communityUrl = communityUrl;
                loc.marker = new google.maps.Marker({
                    position: {
                        latitude: loc.latitude,
                        longitude: loc.longitude
                    },
                    map: map,
                    icon: icon,
                    optimized: false
                });
            });
           
            // generate popup window content
            var epsilon = 0.03;
            _.forEach(vm.Locations, function (loc) {
                var locs = _.filter(vm.Locations, function(loc2) {
                        return Math.abs(loc.lat - loc2.lat) < epsilon
                            && Math.abs(loc.lon - loc2.lon) < epsilon;
                    });

                // if more than one location at that marker
                if (locs.length > 1) {
                    var newLocs = [];
                    for (var x = 0; x < locs.length; x++) {
                        // make a copy
                        var loc2 = _.extend({}, locs[x]);
                        loc2.thumbnailUrl = undefined;
                        if (x !== 0) {
                            loc2.hideClose = 'not undefined';
                        }
                        newLocs.push(loc2);
                    }
                    locs = newLocs;
                }

                loc.html = locs
                    .map(vm.mapMarkerTemplate)
                    .join('\n');
            });

            this.loadMaps(vm.Locations, centroid, model.mapResults.zoomLevel);
        },
        showPopup: function () {
            var urlhomeType = this.Filters.HomeType;
            var popup = "popup";
            var value ="";
            if (urlhomeType != null) {
                popupHomeType(urlhomeType.toLowerCase(),null);
            }
            else {
                value = MatchURLParameter(popup, value);
                if (value != null) {
                    popupHomeType(value.toLowerCase(),null);
                }
            }
        }
         };

    var styless = {
        'Greyscale': [{
            "featureType": 'water',
            "elementType": 'geometry.fill',
            "stylers": [{
                "color": '#A3A4A5'
            }]
        }, {
            "featureType": 'landscape',
            "elementType": 'geometry.fill',
            "stylers": [{
                "color": '#f0f0f0'
            }]
        }, {
            "featureType": 'road.highway',
            "elementType": 'geometry.fill',
            "stylers": [{
                "visibility": 'on'
            }, {
                "color": '#bebebf'
            }]
        }, {
            "featureType": 'poi',
            "elementType": 'geometry',
            "stylers": [{
                "visibility": 'off'
            }]
        }, {
            "featureType": 'administrative.province',
            "elementType": 'labels.text.fill',
            "stylers": [{
                "visibility": 'on'
            }, {
                "color": '#151515'
            }]
        }, {
            "featureType": 'transit.station',
            "elementType": 'geometry.fill',
            "stylers": [{
                "color": '#d2d2d2'
            }, {
                "visibility": 'on'
            }]
        }, {
            "featureType": 'poi',
            "elementType": 'labels',
            "stylers": [{
                "visibility": 'off'
            }]
        }, {
            "featureType": 'water',
            "elementType": 'labels.text.fill',
            "stylers": [{
                "color": '#ffffff'
            }, {
                "visibility": 'on'
            }]
        }, {
            "featureType": 'water',
            "elementType": 'labels.text.stroke',
            "stylers": [{
                "color": '#66645f'
            }, {
                "visibility": 'off'
            }]
        }, {
            "featureType": 'road.local',
            "elementType": 'geometry.fill',
            "stylers": [{
                "color": '#ffffff'
            }, {
                "visibility": 'on'
            }]
        }, {
            "featureType": 'road.local',
            "elementType": 'geometry.stroke',
            "stylers": [{
                "color": '#c8c8c9'
            }, {
                "visibility": 'on'
            }]
        }, {
            "featureType": 'road.highway',
            "elementType": 'geometry.stroke',
            "stylers": [{
                "color": '#646464'
            }, {
                "visibility": 'off'
            }]
        }, {
            "featureType": 'road.highway.controlled_access',
            "elementType": 'geometry.fill',
            "stylers": [{
                "color": '#7d7d7d'
            }, {
                "visibility": 'on'
            }]
        }, {
            "elementType": 'labels.text.stroke',
            "stylers": [{
                "color": '#ffffff'
            }]
        }, {
            "featureType": 'road.highway',
            "elementType": 'labels',
            "stylers": [{
                "visibility": 'on'
            }, {
                "saturation": -100
            }]
        }, {
            "featureType": 'road.highway.controlled_access',
            "elementType": 'geometry.stroke',
            "stylers": [{
                "color": '#7d7d7d'
            }, {
                "visibility": 'on'
            }]
        }, {
            "featureType": 'road.highway',
            "elementType": 'geometry.fill',
            "stylers": [{
                "visibility": 'on'
            }, {
                "color": '#d3d3d3'
            }]
        }, {
            "featureType": 'road.highway.controlled_access',
            "elementType": 'geometry.fill',
            "stylers": [{
                "visibility": 'on'
            }, {
                "color": '#7d7d7d'
            }]
        }, {
            "featureType": 'administrative.neighborhood',
            "stylers": [{
                "visibility": 'simplified'
            }]
        }, {
            "featureType": 'administrative.locality',
            "stylers": [{
                "visibility": 'on'
            }]
        }]
    };
    /*Simplyryan-Lifestyle-Popup*/
    function popupHomeType(homeType, communtityUrl) {
       switch (homeType) {
            case "simplyryan":
                if ((Cookies.get("simplyryan") != 'true') || (Cookies.get("simplyryan") === null)) {
                    setSimplyRyanCookies();
                    $('.mobile-popup').removeAttr('href');
                $('#simply-ryan-lifestyle').addClass('modal-open simplyryan');
                $('#simply-ryan-lifestyle').removeClass('lifestyle simplyryanandlifestyle');
                   $('.mobile-popup-hidden').attr('href',communtityUrl);
                };
                break;
            case "lifestyle":
                if ((Cookies.get("lifestyle") != 'true') || (Cookies.get("lifestyle") === null)) {
                    setLifestyleCookies();
                    $('.mobile-popup').removeAttr('href');
                $('#simply-ryan-lifestyle').addClass('modal-open lifestyle');                
                $('#simply-ryan-lifestyle').removeClass('simplyryan simplyryanandlifestyle');
                $('.mobile-popup-hidden').attr('href', communtityUrl);
                }
                break;
            case "simplyryanandlifestyle":
                if ((Cookies.get("simplylryanlifestyle") != 'true') || (Cookies.get("simplylryanlifestyle") === null)) {
                    setLifestyleCookies();
                    setSimplyRyanCookies();
                    setSimplyRyanAndLifestyleCookies();
                $('#simply-ryan-lifestyle').addClass('modal-open simplyryanandlifestyle');
                $('#simply-ryan-lifestyle').removeClass('simplyryan lifestyle');
                }
           default:
                break;                
                }        
           };
   
        //set simply ryan  cookie
    function setSimplyRyanCookies() {
        Cookies.set('simplyryan', 'true', { path: '/', expires: 30 });
    }
        //set lifestyle ryan  cookie
    function setLifestyleCookies() {
        Cookies.set('lifestyle', 'true', { path: '/', expires: 30 });
    }
    function setSimplyRyanAndLifestyleCookies() {
        Cookies.set('simplylryanlifestyle', 'true', { path: '/', expires: 30 });
    }
 


    function MatchURLParameter(name, value) {
        var params = window.location.search.substring(1);
        var paramList = params.split('&');
        for (var i = 0; i < paramList.length; i++) {
            var param = paramList[i].split('=');
            if (param[0] == name) {
                    return param[1]
            }
        }
    }
})(window);;
(function (global) {
    'use strict';
    var homeSearchUrlKey = 'home_search_url';
    var homeSearchFiltersKey = 'home_search_filters';

    function range(startPos, length) {
        var list = [];
        for (var x = 0; x < length; x++) {
            list.push(startPos + x);
        }
        return list;
    }

    function HomeListController(homeHttpService, $scope) {
        var vm = this;

        // save deps to object
        this.homeHttpService = homeHttpService;
        this.scope = $scope;

        // set default model
        this.model = {
            county: ' ',
            homeType: ' ',
            isActiveCommunity: function() {
                return !vm.model.isQuickMoveIn && !vm.model.isModelInvestment;
            },
            isCountyEnabled: function () {
                return this.state && this.state !== ' ';
            },
            isModelInvestment: false,
            isQuickMoveIn: false,
            modelName: ' ',
            squareFootage: ' ',
            state: ' ',
            market:  function () {
                return this.market;
                },
            subText: function () {
                if (vm.model.isModelInvestment) {
                    return 'Model-Home Investment';
                }
                if (this.isQuickMoveIn) {
                    return 'Quick Move In';
                }
                return 'Our Homes';
            }
        };

        // set default options
        this.options = {
            counties: [],
            homeTypes: [],
            modelNames: [],
            squareFootages: [],
            states: []
        };

        // set default pager
        this.pager = {
            pageStart: undefined,
            pageEnd: undefined,
            pageNumbers: [],
            totalPages: undefined,
            currentPage: undefined,
            pageSize: 10
        }

        // set default results
        this.items = [];
        this.view = [];

        this.dropDownOptions = {
            create: false,
            valueField: 'value',
            labelField: 'text',
            allowEmptyOption: false,
            maxItems: 1,
            onFocus:function(){
                var $this =  $('#' +this.$input[0].id);

                if($this.attr('data-focus')!== 'focus'){
                    selectizeInitialize($this);
                    selectizeOnFocus($this);
                }
               $this.attr('data-focus','focus');
            }
        };

        // load initial state
        var initialState = this.loadState();
        this.setFilters(initialState);

        // load initial results
        vm.search();

        $scope.$watchGroup(['vm.model.homeTypeString', 'vm.model.county', 'vm.model.state', 'vm.model.modelName', 'vm.model.squareFootage'], function () {
            if (vm.updateInProgress) {
                return;
            }
            vm.search();
        });
    }

    HomeListController.prototype.clearFilters = function () {
        var filters = global.ModelData || {};
        filters.homeType = ' ';

        this.setFilters(filters);
        this.search();
    };

    HomeListController.prototype.findState = function (state) {
        var matchingStates = this.options.states
            .filter(function(item) {
                return item.value === state;
            });

        if (matchingStates.length < 1) {
            return {
                text: state,
                value: state
            };
        }

        return matchingStates[0];
    };

    HomeListController.prototype.formatPhone = function (phone) {
        var re = /\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})/g;
        var subst = '$1 $2-$3';
        return phone.replace(re, subst);
    };

    HomeListController.prototype.getFilters = function () {
        return {
            county: this.model.county || ' ',
            homeType: this.model.homeType || ' ',
            homeTypeString: this.model.homeTypeString || ' ',
            isModelInvestment: this.model.isModelInvestment,
            isQuickMoveIn: this.model.isQuickMoveIn,
            modelName: this.model.modelName || ' ',
            squareFootage: this.model.squareFootage || ' ',
            state: this.model.state || ' ',
            market: this.model.market || ' ',
            page: this.pager.currentPage,
            pageSize: this.pager.pageSize
        };
    };

    HomeListController.prototype.getHomeTypeString = function(homeType) {
        switch (homeType.toString()) {
            case '5':
                return 'single-family';
            case '6':
                return 'townhome';
            case '2':
                return 'condo';
            case '3':
                return 'first-floor-owner';
            case '1':
                return 'active-adult';
            case '4':
                return 'resort-beach';
        }
        return '';
    };

    HomeListController.prototype.halfBathDisplay = function (result) {
        if (result.halfBath > 0) {
            var showplus = result.showPlusHalfBathroom ? '+' : '';
                        
                return ' | ' + result.halfBath + showplus + ' Half Bath';
            
        }
      
    };

    HomeListController.prototype.garageDisplay = function (result) {
        if (result.numberGarageSpaces > 0) {
            var showplus = result.showPlusGarage ? '+ ' : '-';

            return  (result.numberGarageSpaces + showplus + 'Car Garage');

        }

    };

   

    HomeListController.prototype.loadState = function () {
        // get model data from global or use empty if not set
        var modelData = global.ModelData || {};

        return modelData;

        // TODO: this isn't working quite right, sideline it for now
        //// if localstorage doesn't exist return model data or empty object
        //if (!global.localStorage || typeof global.localStorage.getItem !== 'function') {
        //    return modelData;
        //}

        //// if search part of url is not the same as the last home search,
        //// this is a different search and back was not hit
        //var search = localStorage.getItem(homeSearchUrlKey);
        //if (search !== global.location.search) {
        //    return modelData;
        //}

        //// if no filter string was saved (this is just to be safe)
        //var filterString = localStorage.getItem(homeSearchFiltersKey);
        //if (!filterString) {
        //    return modelData;
        //}

        //// return filters if parsible.  return modeldata if not
        //// this should not prevent the page from loading something
        //try {
        //    return JSON.parse(filterString);
        //} catch (err) {
        //    console.error(err);
        //    return modelData;
        //}
    };

    HomeListController.prototype.page = function (pageNumber) {
        var pageSize = 10;
        var numberOfPagesShown = 10;

        var pageStart = (Math.floor((pageNumber - 1) / numberOfPagesShown) * 10) + 1;
        var pageEnd = pageStart + numberOfPagesShown;

        var totalPages = (this.items.length / pageSize) + (this.items.length % pageSize === 0 ? 0 : 1);
        var pagesLeft = (totalPages) - pageStart;
        pagesLeft = pagesLeft > pageSize ? pageSize : pagesLeft;
        var pageNumbers = range(pageStart, pagesLeft);

        var startPos = (pageNumber - 1) * pageSize;
        var endPos = startPos + pageSize;
        var view = this.items.slice(startPos, endPos);

        // clamp page end to toal pages
        if (pageEnd > totalPages) {
            pageEnd = totalPages;
        }

        this.pager.totalPages = totalPages;
        this.pager.currentPage = pageNumber;
        this.pager.pageStart = pageStart;
        this.pager.pageEnd = pageEnd;
        this.pager.pageNumbers = pageNumbers;
        this.view = view;

        setTimeout(function() {
            var main = document.getElementById('main');
            Hearts.init(main);
            DropDownMenu.init(main);
        });
    };

    HomeListController.prototype.saveState = function (filters) {
        if (global.localStorage) {
            localStorage.setItem(homeSearchUrlKey, global.location.search);
            localStorage.setItem(homeSearchFiltersKey, JSON.stringify(filters));
        }
    }

    HomeListController.prototype.search = function () {
        var vm = this;

        // get current filters
        var filters = vm.getFilters() || {};

        vm.updateInProgress = true;

        // save current state for navigation backtracking
        vm.saveState(filters);

        if (filters.state === ' ')
        {
            vm.model.county = ' ';
            filters.county = ' ';
        }

        // get promise from home http service
        this.homeHttpService.findMany(filters)
            .then(onSuccess, onError);

        function onSuccess(resp) {
            vm.setResults(resp);
            vm.updateInProgress = false;
        }

        function onError() {
            vm.updateInProgress = false;
        }
    }

    HomeListController.prototype.selectModelName = function (modelName) {
        this.model.modelName = modelName;
    };

    HomeListController.prototype.setFilters = function (filters) {
        this.model.county = filters.county || ' ';
        this.model.homeType = filters.homeType || ' ';
        this.model.homeTypeString = filters.homeTypeString || ' ';
        this.model.isModelInvestment = filters.isModelInvestment;
        this.model.isQuickMoveIn = filters.isQuickMoveIn;
        this.model.modelName = filters.modelName || ' ';
        this.model.squareFootage = filters.squareFootage || ' ';
        this.model.state = filters.state || ' ';
        this.model.market = filters.market || ' ';
        this.pager.currentPage = filters.page;
    };

    HomeListController.prototype.setResults = function (resp) {
        var vm = this;
        var scope = this.scope;

        // set options
        this.options.counties = resp.options.counties;
        this.options.homeTypes = resp.options.homeTypes;
        this.options.modelNames = resp.options.modelNames;
        this.options.squareFootages = resp.options.squareFootages;
        this.options.states = resp.options.states;

        //In case we sent URL to clients e.g. ~/quick-move-in/first-floor-owner/virginia/loudoun set the selected county name by ignoring case
        for (var cnt = 0 ; cnt < this.options.counties.length ; cnt++)
        {
            if(this.options.counties[cnt].value.toLowerCase() === this.model.county.toLowerCase())
            {
                this.model.county = this.options.counties[cnt].value;
            }
        }


        // calculate properties in results
        resp.items.forEach(function (result) {
            // create listing url
            var listingUrl = '';
            var productSeo = '';
            var communityUrl = '';
            if (result.productSeoUrl) {
                    productSeo = result.productSeoUrl;
                }
            else {
                    productSeo = result.name.replace(" ", "-");
                }
            if (vm.model.isQuickMoveIn || vm.model.isModelInvestment) {

                communityUrl = '/find-your-home/our-communities/' + vm.findState(result.state).text.trim().toLowerCase().replace(/\s+/g, "-") + '/' + result.city.trim().toLowerCase().replace(/\s+/g, "-") + '/' + result.communitySeoUrl;
                listingUrl = '/find-your-home/our-communities/' + vm.findState(result.state).text.trim().toLowerCase().replace(/\s+/g, "-") + '/' + result.city.trim().toLowerCase().replace(/\s+/g, "-") + '/' + result.communitySeoUrl + '/' + productSeo + '/' + result.id;
            }
            else {
                listingUrl = '/find-your-home/our-homes/' + vm.model.homeTypeString + '/' + productSeo + '/' + result.homeModelSetNumber.toLowerCase();
            }
            result.listingUrl = listingUrl;
            result.communityUrl = communityUrl;

            // round square footage
            result.squareFootage = Math.round(result.squareFootage);
        });

        // set results
        this.items = resp.items;

        // reset to page one and recalculate
        this.page(1);

        setTimeout(function () {
            scope.$apply();
        }, 200);
    };

    angular.module('app').controller('HomeListController', ['homeHttpService', '$scope', HomeListController]);
})(window);;
