Skip to content

Instantly share code, notes, and snippets.

@trinvh2
Last active February 21, 2016 17:44
Show Gist options
  • Save trinvh2/83a056fc29f0a059a01d to your computer and use it in GitHub Desktop.
Save trinvh2/83a056fc29f0a059a01d to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
/*! Fimplus - v1.2.3 - 17-02-2016 */
(function() {
function a(a) {
function b(b, c, d, e, f, g) {
for (; f >= 0 && g > f; f += a) {
var h = e ? e[f] : f;
d = c(d, b[h], h, b)
}
return d
}
return function(c, d, e, f) {
d = t(d, f, 4);
var g = !A(c) && s.keys(c),
h = (g || c).length,
i = a > 0 ? 0 : h - 1;
return arguments.length < 3 && (e = c[g ? g[i] : i], i += a), b(c, d, e, g, i, h)
}
}
function b(a) {
return function(b, c, d) {
c = u(c, d);
for (var e = z(b), f = a > 0 ? 0 : e - 1; f >= 0 && e > f; f += a)
if (c(b[f], f, b)) return f;
return -1
}
}
function c(a, b, c) {
return function(d, e, f) {
var g = 0,
h = z(d);
if ("number" == typeof f) a > 0 ? g = f >= 0 ? f : Math.max(f + h, g) : h = f >= 0 ? Math.min(f + 1, h) : f + h + 1;
else if (c && f && h) return f = c(d, e), d[f] === e ? f : -1;
if (e !== e) return f = b(k.call(d, g, h), s.isNaN), f >= 0 ? f + g : -1;
for (f = a > 0 ? g : h - 1; f >= 0 && h > f; f += a)
if (d[f] === e) return f;
return -1
}
}
function d(a, b) {
var c = F.length,
d = a.constructor,
e = s.isFunction(d) && d.prototype || h,
f = "constructor";
for (s.has(a, f) && !s.contains(b, f) && b.push(f); c--;) f = F[c], f in a && a[f] !== e[f] && !s.contains(b, f) && b.push(f)
}
var e = this,
f = e._,
g = Array.prototype,
h = Object.prototype,
i = Function.prototype,
j = g.push,
k = g.slice,
l = h.toString,
m = h.hasOwnProperty,
n = Array.isArray,
o = Object.keys,
p = i.bind,
q = Object.create,
r = function() {},
s = function(a) {
return a instanceof s ? a : this instanceof s ? void(this._wrapped = a) : new s(a)
};
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = s), exports._ = s) : e._ = s, s.VERSION = "1.8.3";
var t = function(a, b, c) {
if (void 0 === b) return a;
switch (null == c ? 3 : c) {
case 1:
return function(c) {
return a.call(b, c)
};
case 2:
return function(c, d) {
return a.call(b, c, d)
};
case 3:
return function(c, d, e) {
return a.call(b, c, d, e)
};
case 4:
return function(c, d, e, f) {
return a.call(b, c, d, e, f)
}
}
return function() {
return a.apply(b, arguments)
}
},
u = function(a, b, c) {
return null == a ? s.identity : s.isFunction(a) ? t(a, b, c) : s.isObject(a) ? s.matcher(a) : s.property(a)
};
s.iteratee = function(a, b) {
return u(a, b, 1 / 0)
};
var v = function(a, b) {
return function(c) {
var d = arguments.length;
if (2 > d || null == c) return c;
for (var e = 1; d > e; e++)
for (var f = arguments[e], g = a(f), h = g.length, i = 0; h > i; i++) {
var j = g[i];
b && void 0 !== c[j] || (c[j] = f[j])
}
return c
}
},
w = function(a) {
if (!s.isObject(a)) return {};
if (q) return q(a);
r.prototype = a;
var b = new r;
return r.prototype = null, b
},
x = function(a) {
return function(b) {
return null == b ? void 0 : b[a]
}
},
y = Math.pow(2, 53) - 1,
z = x("length"),
A = function(a) {
var b = z(a);
return "number" == typeof b && b >= 0 && y >= b
};
s.each = s.forEach = function(a, b, c) {
b = t(b, c);
var d, e;
if (A(a))
for (d = 0, e = a.length; e > d; d++) b(a[d], d, a);
else {
var f = s.keys(a);
for (d = 0, e = f.length; e > d; d++) b(a[f[d]], f[d], a)
}
return a
}, s.map = s.collect = function(a, b, c) {
b = u(b, c);
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = Array(e), g = 0; e > g; g++) {
var h = d ? d[g] : g;
f[g] = b(a[h], h, a)
}
return f
}, s.reduce = s.foldl = s.inject = a(1), s.reduceRight = s.foldr = a(-1), s.find = s.detect = function(a, b, c) {
var d;
return d = A(a) ? s.findIndex(a, b, c) : s.findKey(a, b, c), void 0 !== d && -1 !== d ? a[d] : void 0
}, s.filter = s.select = function(a, b, c) {
var d = [];
return b = u(b, c), s.each(a, function(a, c, e) {
b(a, c, e) && d.push(a)
}), d
}, s.reject = function(a, b, c) {
return s.filter(a, s.negate(u(b)), c)
}, s.every = s.all = function(a, b, c) {
b = u(b, c);
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) {
var g = d ? d[f] : f;
if (!b(a[g], g, a)) return !1
}
return !0
}, s.some = s.any = function(a, b, c) {
b = u(b, c);
for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) {
var g = d ? d[f] : f;
if (b(a[g], g, a)) return !0
}
return !1
}, s.contains = s.includes = s.include = function(a, b, c, d) {
return A(a) || (a = s.values(a)), ("number" != typeof c || d) && (c = 0), s.indexOf(a, b, c) >= 0
}, s.invoke = function(a, b) {
var c = k.call(arguments, 2),
d = s.isFunction(b);
return s.map(a, function(a) {
var e = d ? b : a[b];
return null == e ? e : e.apply(a, c)
})
}, s.pluck = function(a, b) {
return s.map(a, s.property(b))
}, s.where = function(a, b) {
return s.filter(a, s.matcher(b))
}, s.findWhere = function(a, b) {
return s.find(a, s.matcher(b))
}, s.max = function(a, b, c) {
var d, e, f = -(1 / 0),
g = -(1 / 0);
if (null == b && null != a) {
a = A(a) ? a : s.values(a);
for (var h = 0, i = a.length; i > h; h++) d = a[h], d > f && (f = d)
} else b = u(b, c), s.each(a, function(a, c, d) {
e = b(a, c, d), (e > g || e === -(1 / 0) && f === -(1 / 0)) && (f = a, g = e)
});
return f
}, s.min = function(a, b, c) {
var d, e, f = 1 / 0,
g = 1 / 0;
if (null == b && null != a) {
a = A(a) ? a : s.values(a);
for (var h = 0, i = a.length; i > h; h++) d = a[h], f > d && (f = d)
} else b = u(b, c), s.each(a, function(a, c, d) {
e = b(a, c, d), (g > e || e === 1 / 0 && f === 1 / 0) && (f = a, g = e)
});
return f
}, s.shuffle = function(a) {
for (var b, c = A(a) ? a : s.values(a), d = c.length, e = Array(d), f = 0; d > f; f++) b = s.random(0, f), b !== f && (e[f] = e[b]), e[b] = c[f];
return e
}, s.sample = function(a, b, c) {
return null == b || c ? (A(a) || (a = s.values(a)), a[s.random(a.length - 1)]) : s.shuffle(a).slice(0, Math.max(0, b))
}, s.sortBy = function(a, b, c) {
return b = u(b, c), s.pluck(s.map(a, function(a, c, d) {
return {
value: a,
index: c,
criteria: b(a, c, d)
}
}).sort(function(a, b) {
var c = a.criteria,
d = b.criteria;
if (c !== d) {
if (c > d || void 0 === c) return 1;
if (d > c || void 0 === d) return -1
}
return a.index - b.index
}), "value")
};
var B = function(a) {
return function(b, c, d) {
var e = {};
return c = u(c, d), s.each(b, function(d, f) {
var g = c(d, f, b);
a(e, d, g)
}), e
}
};
s.groupBy = B(function(a, b, c) {
s.has(a, c) ? a[c].push(b) : a[c] = [b]
}), s.indexBy = B(function(a, b, c) {
a[c] = b
}), s.countBy = B(function(a, b, c) {
s.has(a, c) ? a[c]++ : a[c] = 1
}), s.toArray = function(a) {
return a ? s.isArray(a) ? k.call(a) : A(a) ? s.map(a, s.identity) : s.values(a) : []
}, s.size = function(a) {
return null == a ? 0 : A(a) ? a.length : s.keys(a).length
}, s.partition = function(a, b, c) {
b = u(b, c);
var d = [],
e = [];
return s.each(a, function(a, c, f) {
(b(a, c, f) ? d : e).push(a)
}), [d, e]
}, s.first = s.head = s.take = function(a, b, c) {
return null == a ? void 0 : null == b || c ? a[0] : s.initial(a, a.length - b)
}, s.initial = function(a, b, c) {
return k.call(a, 0, Math.max(0, a.length - (null == b || c ? 1 : b)))
}, s.last = function(a, b, c) {
return null == a ? void 0 : null == b || c ? a[a.length - 1] : s.rest(a, Math.max(0, a.length - b))
}, s.rest = s.tail = s.drop = function(a, b, c) {
return k.call(a, null == b || c ? 1 : b)
}, s.compact = function(a) {
return s.filter(a, s.identity)
};
var C = function(a, b, c, d) {
for (var e = [], f = 0, g = d || 0, h = z(a); h > g; g++) {
var i = a[g];
if (A(i) && (s.isArray(i) || s.isArguments(i))) {
b || (i = C(i, b, c));
var j = 0,
k = i.length;
for (e.length += k; k > j;) e[f++] = i[j++]
} else c || (e[f++] = i)
}
return e
};
s.flatten = function(a, b) {
return C(a, b, !1)
}, s.without = function(a) {
return s.difference(a, k.call(arguments, 1))
}, s.uniq = s.unique = function(a, b, c, d) {
s.isBoolean(b) || (d = c, c = b, b = !1), null != c && (c = u(c, d));
for (var e = [], f = [], g = 0, h = z(a); h > g; g++) {
var i = a[g],
j = c ? c(i, g, a) : i;
b ? (g && f === j || e.push(i), f = j) : c ? s.contains(f, j) || (f.push(j), e.push(i)) : s.contains(e, i) || e.push(i)
}
return e
}, s.union = function() {
return s.uniq(C(arguments, !0, !0))
}, s.intersection = function(a) {
for (var b = [], c = arguments.length, d = 0, e = z(a); e > d; d++) {
var f = a[d];
if (!s.contains(b, f)) {
for (var g = 1; c > g && s.contains(arguments[g], f); g++);
g === c && b.push(f)
}
}
return b
}, s.difference = function(a) {
var b = C(arguments, !0, !0, 1);
return s.filter(a, function(a) {
return !s.contains(b, a)
})
}, s.zip = function() {
return s.unzip(arguments)
}, s.unzip = function(a) {
for (var b = a && s.max(a, z).length || 0, c = Array(b), d = 0; b > d; d++) c[d] = s.pluck(a, d);
return c
}, s.object = function(a, b) {
for (var c = {}, d = 0, e = z(a); e > d; d++) b ? c[a[d]] = b[d] : c[a[d][0]] = a[d][1];
return c
}, s.findIndex = b(1), s.findLastIndex = b(-1), s.sortedIndex = function(a, b, c, d) {
c = u(c, d, 1);
for (var e = c(b), f = 0, g = z(a); g > f;) {
var h = Math.floor((f + g) / 2);
c(a[h]) < e ? f = h + 1 : g = h
}
return f
}, s.indexOf = c(1, s.findIndex, s.sortedIndex), s.lastIndexOf = c(-1, s.findLastIndex), s.range = function(a, b, c) {
null == b && (b = a || 0, a = 0), c = c || 1;
for (var d = Math.max(Math.ceil((b - a) / c), 0), e = Array(d), f = 0; d > f; f++, a += c) e[f] = a;
return e
};
var D = function(a, b, c, d, e) {
if (!(d instanceof b)) return a.apply(c, e);
var f = w(a.prototype),
g = a.apply(f, e);
return s.isObject(g) ? g : f
};
s.bind = function(a, b) {
if (p && a.bind === p) return p.apply(a, k.call(arguments, 1));
if (!s.isFunction(a)) throw new TypeError("Bind must be called on a function");
var c = k.call(arguments, 2),
d = function() {
return D(a, d, b, this, c.concat(k.call(arguments)))
};
return d
}, s.partial = function(a) {
var b = k.call(arguments, 1),
c = function() {
for (var d = 0, e = b.length, f = Array(e), g = 0; e > g; g++) f[g] = b[g] === s ? arguments[d++] : b[g];
for (; d < arguments.length;) f.push(arguments[d++]);
return D(a, c, this, this, f)
};
return c
}, s.bindAll = function(a) {
var b, c, d = arguments.length;
if (1 >= d) throw new Error("bindAll must be passed function names");
for (b = 1; d > b; b++) c = arguments[b], a[c] = s.bind(a[c], a);
return a
}, s.memoize = function(a, b) {
var c = function(d) {
var e = c.cache,
f = "" + (b ? b.apply(this, arguments) : d);
return s.has(e, f) || (e[f] = a.apply(this, arguments)), e[f]
};
return c.cache = {}, c
}, s.delay = function(a, b) {
var c = k.call(arguments, 2);
return setTimeout(function() {
return a.apply(null, c)
}, b)
}, s.defer = s.partial(s.delay, s, 1), s.throttle = function(a, b, c) {
var d, e, f, g = null,
h = 0;
c || (c = {});
var i = function() {
h = c.leading === !1 ? 0 : s.now(), g = null, f = a.apply(d, e), g || (d = e = null)
};
return function() {
var j = s.now();
h || c.leading !== !1 || (h = j);
var k = b - (j - h);
return d = this, e = arguments, 0 >= k || k > b ? (g && (clearTimeout(g), g = null), h = j, f = a.apply(d, e), g || (d = e = null)) : g || c.trailing === !1 || (g = setTimeout(i, k)), f
}
}, s.debounce = function(a, b, c) {
var d, e, f, g, h, i = function() {
var j = s.now() - g;
b > j && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null)))
};
return function() {
f = this, e = arguments, g = s.now();
var j = c && !d;
return d || (d = setTimeout(i, b)), j && (h = a.apply(f, e), f = e = null), h
}
}, s.wrap = function(a, b) {
return s.partial(b, a)
}, s.negate = function(a) {
return function() {
return !a.apply(this, arguments)
}
}, s.compose = function() {
var a = arguments,
b = a.length - 1;
return function() {
for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d);
return d
}
}, s.after = function(a, b) {
return function() {
return --a < 1 ? b.apply(this, arguments) : void 0
}
}, s.before = function(a, b) {
var c;
return function() {
return --a > 0 && (c = b.apply(this, arguments)), 1 >= a && (b = null), c
}
}, s.once = s.partial(s.before, 2);
var E = !{
toString: null
}.propertyIsEnumerable("toString"),
F = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
s.keys = function(a) {
if (!s.isObject(a)) return [];
if (o) return o(a);
var b = [];
for (var c in a) s.has(a, c) && b.push(c);
return E && d(a, b), b
}, s.allKeys = function(a) {
if (!s.isObject(a)) return [];
var b = [];
for (var c in a) b.push(c);
return E && d(a, b), b
}, s.values = function(a) {
for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = a[b[e]];
return d
}, s.mapObject = function(a, b, c) {
b = u(b, c);
for (var d, e = s.keys(a), f = e.length, g = {}, h = 0; f > h; h++) d = e[h], g[d] = b(a[d], d, a);
return g
}, s.pairs = function(a) {
for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = [b[e], a[b[e]]];
return d
}, s.invert = function(a) {
for (var b = {}, c = s.keys(a), d = 0, e = c.length; e > d; d++) b[a[c[d]]] = c[d];
return b
}, s.functions = s.methods = function(a) {
var b = [];
for (var c in a) s.isFunction(a[c]) && b.push(c);
return b.sort()
}, s.extend = v(s.allKeys), s.extendOwn = s.assign = v(s.keys), s.findKey = function(a, b, c) {
b = u(b, c);
for (var d, e = s.keys(a), f = 0, g = e.length; g > f; f++)
if (d = e[f], b(a[d], d, a)) return d
}, s.pick = function(a, b, c) {
var d, e, f = {},
g = a;
if (null == g) return f;
s.isFunction(b) ? (e = s.allKeys(g), d = t(b, c)) : (e = C(arguments, !1, !1, 1), d = function(a, b, c) {
return b in c
}, g = Object(g));
for (var h = 0, i = e.length; i > h; h++) {
var j = e[h],
k = g[j];
d(k, j, g) && (f[j] = k)
}
return f
}, s.omit = function(a, b, c) {
if (s.isFunction(b)) b = s.negate(b);
else {
var d = s.map(C(arguments, !1, !1, 1), String);
b = function(a, b) {
return !s.contains(d, b)
}
}
return s.pick(a, b, c)
}, s.defaults = v(s.allKeys, !0), s.create = function(a, b) {
var c = w(a);
return b && s.extendOwn(c, b), c
}, s.clone = function(a) {
return s.isObject(a) ? s.isArray(a) ? a.slice() : s.extend({}, a) : a
}, s.tap = function(a, b) {
return b(a), a
}, s.isMatch = function(a, b) {
var c = s.keys(b),
d = c.length;
if (null == a) return !d;
for (var e = Object(a), f = 0; d > f; f++) {
var g = c[f];
if (b[g] !== e[g] || !(g in e)) return !1
}
return !0
};
var G = function(a, b, c, d) {
if (a === b) return 0 !== a || 1 / a === 1 / b;
if (null == a || null == b) return a === b;
a instanceof s && (a = a._wrapped), b instanceof s && (b = b._wrapped);
var e = l.call(a);
if (e !== l.call(b)) return !1;
switch (e) {
case "[object RegExp]":
case "[object String]":
return "" + a == "" + b;
case "[object Number]":
return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b;
case "[object Date]":
case "[object Boolean]":
return +a === +b
}
var f = "[object Array]" === e;
if (!f) {
if ("object" != typeof a || "object" != typeof b) return !1;
var g = a.constructor,
h = b.constructor;
if (g !== h && !(s.isFunction(g) && g instanceof g && s.isFunction(h) && h instanceof h) && "constructor" in a && "constructor" in b) return !1
}
c = c || [], d = d || [];
for (var i = c.length; i--;)
if (c[i] === a) return d[i] === b;
if (c.push(a), d.push(b), f) {
if (i = a.length, i !== b.length) return !1;
for (; i--;)
if (!G(a[i], b[i], c, d)) return !1
} else {
var j, k = s.keys(a);
if (i = k.length, s.keys(b).length !== i) return !1;
for (; i--;)
if (j = k[i], !s.has(b, j) || !G(a[j], b[j], c, d)) return !1
}
return c.pop(), d.pop(), !0
};
s.isEqual = function(a, b) {
return G(a, b)
}, s.isEmpty = function(a) {
return null == a ? !0 : A(a) && (s.isArray(a) || s.isString(a) || s.isArguments(a)) ? 0 === a.length : 0 === s.keys(a).length
}, s.isElement = function(a) {
return !(!a || 1 !== a.nodeType)
}, s.isArray = n || function(a) {
return "[object Array]" === l.call(a)
}, s.isObject = function(a) {
var b = typeof a;
return "function" === b || "object" === b && !!a
}, s.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(a) {
s["is" + a] = function(b) {
return l.call(b) === "[object " + a + "]"
}
}), s.isArguments(arguments) || (s.isArguments = function(a) {
return s.has(a, "callee")
}), "function" != typeof /./ && "object" != typeof Int8Array && (s.isFunction = function(a) {
return "function" == typeof a || !1
}), s.isFinite = function(a) {
return isFinite(a) && !isNaN(parseFloat(a))
}, s.isNaN = function(a) {
return s.isNumber(a) && a !== +a
}, s.isBoolean = function(a) {
return a === !0 || a === !1 || "[object Boolean]" === l.call(a)
}, s.isNull = function(a) {
return null === a
}, s.isUndefined = function(a) {
return void 0 === a
}, s.has = function(a, b) {
return null != a && m.call(a, b)
}, s.noConflict = function() {
return e._ = f, this
}, s.identity = function(a) {
return a
}, s.constant = function(a) {
return function() {
return a
}
}, s.noop = function() {}, s.property = x, s.propertyOf = function(a) {
return null == a ? function() {} : function(b) {
return a[b]
}
}, s.matcher = s.matches = function(a) {
return a = s.extendOwn({}, a),
function(b) {
return s.isMatch(b, a)
}
}, s.times = function(a, b, c) {
var d = Array(Math.max(0, a));
b = t(b, c, 1);
for (var e = 0; a > e; e++) d[e] = b(e);
return d
}, s.random = function(a, b) {
return null == b && (b = a, a = 0), a + Math.floor(Math.random() * (b - a + 1))
}, s.now = Date.now || function() {
return (new Date).getTime()
};
var H = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
I = s.invert(H),
J = function(a) {
var b = function(b) {
return a[b]
},
c = "(?:" + s.keys(a).join("|") + ")",
d = RegExp(c),
e = RegExp(c, "g");
return function(a) {
return a = null == a ? "" : "" + a, d.test(a) ? a.replace(e, b) : a
}
};
s.escape = J(H), s.unescape = J(I), s.result = function(a, b, c) {
var d = null == a ? void 0 : a[b];
return void 0 === d && (d = c), s.isFunction(d) ? d.call(a) : d
};
var K = 0;
s.uniqueId = function(a) {
var b = ++K + "";
return a ? a + b : b
}, s.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var L = /(.)^/,
M = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
"\u2028": "u2028",
"\u2029": "u2029"
},
N = /\\|'|\r|\n|\u2028|\u2029/g,
O = function(a) {
return "\\" + M[a]
};
s.template = function(a, b, c) {
!b && c && (b = c), b = s.defaults({}, b, s.templateSettings);
var d = RegExp([(b.escape || L).source, (b.interpolate || L).source, (b.evaluate || L).source].join("|") + "|$", "g"),
e = 0,
f = "__p+='";
a.replace(d, function(b, c, d, g, h) {
return f += a.slice(e, h).replace(N, O), e = h + b.length, c ? f += "'+\n((__t=(" + c + "))==null?'':_.escape(__t))+\n'" : d ? f += "'+\n((__t=(" + d + "))==null?'':__t)+\n'" : g && (f += "';\n" + g + "\n__p+='"), b
}), f += "';\n", b.variable || (f = "with(obj||{}){\n" + f + "}\n"), f = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + f + "return __p;\n";
try {
var g = new Function(b.variable || "obj", "_", f)
} catch (h) {
throw h.source = f, h
}
var i = function(a) {
return g.call(this, a, s)
},
j = b.variable || "obj";
return i.source = "function(" + j + "){\n" + f + "}", i
}, s.chain = function(a) {
var b = s(a);
return b._chain = !0, b
};
var P = function(a, b) {
return a._chain ? s(b).chain() : b
};
s.mixin = function(a) {
s.each(s.functions(a), function(b) {
var c = s[b] = a[b];
s.prototype[b] = function() {
var a = [this._wrapped];
return j.apply(a, arguments), P(this, c.apply(s, a))
}
})
}, s.mixin(s), s.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(a) {
var b = g[a];
s.prototype[a] = function() {
var c = this._wrapped;
return b.apply(c, arguments), "shift" !== a && "splice" !== a || 0 !== c.length || delete c[0], P(this, c)
}
}), s.each(["concat", "join", "slice"], function(a) {
var b = g[a];
s.prototype[a] = function() {
return P(this, b.apply(this._wrapped, arguments))
}
}), s.prototype.value = function() {
return this._wrapped
}, s.prototype.valueOf = s.prototype.toJSON = s.prototype.value, s.prototype.toString = function() {
return "" + this._wrapped
}, "function" == typeof define && define.amd && define("underscore", [], function() {
return s
})
}).call(this),
function(a, b) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
if (!a.document) throw new Error("jQuery requires a window with a document");
return b(a)
} : b(a)
}("undefined" != typeof window ? window : this, function(a, b) {
function c(a) {
var b = !!a && "length" in a && a.length,
c = fa.type(a);
return "function" === c || fa.isWindow(a) ? !1 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
}
function d(a, b, c) {
if (fa.isFunction(b)) return fa.grep(a, function(a, d) {
return !!b.call(a, d, a) !== c
});
if (b.nodeType) return fa.grep(a, function(a) {
return a === b !== c
});
if ("string" == typeof b) {
if (pa.test(b)) return fa.filter(b, a, c);
b = fa.filter(b, a)
}
return fa.grep(a, function(a) {
return _.call(b, a) > -1 !== c
})
}
function e(a, b) {
for (;
(a = a[b]) && 1 !== a.nodeType;);
return a
}
function f(a) {
var b = {};
return fa.each(a.match(va) || [], function(a, c) {
b[c] = !0
}), b
}
function g() {
X.removeEventListener("DOMContentLoaded", g), a.removeEventListener("load", g), fa.ready()
}
function h() {
this.expando = fa.expando + h.uid++
}
function i(a, b, c) {
var d;
if (void 0 === c && 1 === a.nodeType)
if (d = "data-" + b.replace(Ca, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) {
try {
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : Ba.test(c) ? fa.parseJSON(c) : c
} catch (e) {}
Aa.set(a, b, c)
} else c = void 0;
return c
}
function j(a, b, c, d) {
var e, f = 1,
g = 20,
h = d ? function() {
return d.cur()
} : function() {
return fa.css(a, b, "")
},
i = h(),
j = c && c[3] || (fa.cssNumber[b] ? "" : "px"),
k = (fa.cssNumber[b] || "px" !== j && +i) && Ea.exec(fa.css(a, b));
if (k && k[3] !== j) {
j = j || k[3], c = c || [], k = +i || 1;
do f = f || ".5", k /= f, fa.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g)
}
return c && (k = +k || +i || 0, e = c[1] ? k + (c[1] + 1) * c[2] : +c[2], d && (d.unit = j, d.start = k, d.end = e)), e
}
function k(a, b) {
var c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
return void 0 === b || b && fa.nodeName(a, b) ? fa.merge([a], c) : c
}
function l(a, b) {
for (var c = 0, d = a.length; d > c; c++) za.set(a[c], "globalEval", !b || za.get(b[c], "globalEval"))
}
function m(a, b, c, d, e) {
for (var f, g, h, i, j, m, n = b.createDocumentFragment(), o = [], p = 0, q = a.length; q > p; p++)
if (f = a[p], f || 0 === f)
if ("object" === fa.type(f)) fa.merge(o, f.nodeType ? [f] : f);
else if (La.test(f)) {
for (g = g || n.appendChild(b.createElement("div")), h = (Ia.exec(f) || ["", ""])[1].toLowerCase(), i = Ka[h] || Ka._default, g.innerHTML = i[1] + fa.htmlPrefilter(f) + i[2], m = i[0]; m--;) g = g.lastChild;
fa.merge(o, g.childNodes), g = n.firstChild, g.textContent = ""
} else o.push(b.createTextNode(f));
for (n.textContent = "", p = 0; f = o[p++];)
if (d && fa.inArray(f, d) > -1) e && e.push(f);
else if (j = fa.contains(f.ownerDocument, f), g = k(n.appendChild(f), "script"), j && l(g), c)
for (m = 0; f = g[m++];) Ja.test(f.type || "") && c.push(f);
return n
}
function n() {
return !0
}
function o() {
return !1
}
function p() {
try {
return X.activeElement
} catch (a) {}
}
function q(a, b, c, d, e, f) {
var g, h;
if ("object" == typeof b) {
"string" != typeof c && (d = d || c, c = void 0);
for (h in b) q(a, h, c, d, b[h], f);
return a
}
if (null == d && null == e ? (e = c, d = c = void 0) : null == e && ("string" == typeof c ? (e = d, d = void 0) : (e = d, d = c, c = void 0)), e === !1) e = o;
else if (!e) return this;
return 1 === f && (g = e, e = function(a) {
return fa().off(a), g.apply(this, arguments)
}, e.guid = g.guid || (g.guid = fa.guid++)), a.each(function() {
fa.event.add(this, b, e, d, c)
})
}
function r(a, b) {
return fa.nodeName(a, "table") && fa.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a : a
}
function s(a) {
return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a
}
function t(a) {
var b = Sa.exec(a.type);
return b ? a.type = b[1] : a.removeAttribute("type"), a
}
function u(a, b) {
var c, d, e, f, g, h, i, j;
if (1 === b.nodeType) {
if (za.hasData(a) && (f = za.access(a), g = za.set(b, f), j = f.events)) {
delete g.handle, g.events = {};
for (e in j)
for (c = 0, d = j[e].length; d > c; c++) fa.event.add(b, e, j[e][c])
}
Aa.hasData(a) && (h = Aa.access(a), i = fa.extend({}, h), Aa.set(b, i))
}
}
function v(a, b) {
var c = b.nodeName.toLowerCase();
"input" === c && Ha.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
}
function w(a, b, c, d) {
b = Z.apply([], b);
var e, f, g, h, i, j, l = 0,
n = a.length,
o = n - 1,
p = b[0],
q = fa.isFunction(p);
if (q || n > 1 && "string" == typeof p && !da.checkClone && Ra.test(p)) return a.each(function(e) {
var f = a.eq(e);
q && (b[0] = p.call(this, e, f.html())), w(f, b, c, d)
});
if (n && (e = m(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) {
for (g = fa.map(k(e, "script"), s), h = g.length; n > l; l++) i = e, l !== o && (i = fa.clone(i, !0, !0), h && fa.merge(g, k(i, "script"))), c.call(a[l], i, l);
if (h)
for (j = g[g.length - 1].ownerDocument, fa.map(g, t), l = 0; h > l; l++) i = g[l], Ja.test(i.type || "") && !za.access(i, "globalEval") && fa.contains(j, i) && (i.src ? fa._evalUrl && fa._evalUrl(i.src) : fa.globalEval(i.textContent.replace(Ta, "")))
}
return a
}
function x(a, b, c) {
for (var d, e = b ? fa.filter(b, a) : a, f = 0; null != (d = e[f]); f++) c || 1 !== d.nodeType || fa.cleanData(k(d)), d.parentNode && (c && fa.contains(d.ownerDocument, d) && l(k(d, "script")), d.parentNode.removeChild(d));
return a
}
function y(a, b) {
var c = fa(b.createElement(a)).appendTo(b.body),
d = fa.css(c[0], "display");
return c.detach(), d
}
function z(a) {
var b = X,
c = Va[a];
return c || (c = y(a, b), "none" !== c && c || (Ua = (Ua || fa("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = Ua[0].contentDocument, b.write(), b.close(), c = y(a, b), Ua.detach()), Va[a] = c), c
}
function A(a, b, c) {
var d, e, f, g, h = a.style;
return c = c || Ya(a), c && (g = c.getPropertyValue(b) || c[b], "" !== g || fa.contains(a.ownerDocument, a) || (g = fa.style(a, b)), !da.pixelMarginRight() && Xa.test(g) && Wa.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 !== g ? g + "" : g
}
function B(a, b) {
return {
get: function() {
return a() ? void delete this.get : (this.get = b).apply(this, arguments)
}
}
}
function C(a) {
if (a in db) return a;
for (var b = a[0].toUpperCase() + a.slice(1), c = cb.length; c--;)
if (a = cb[c] + b, a in db) return a
}
function D(a, b, c) {
var d = Ea.exec(b);
return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b
}
function E(a, b, c, d, e) {
for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += fa.css(a, c + Fa[f], !0, e)), d ? ("content" === c && (g -= fa.css(a, "padding" + Fa[f], !0, e)), "margin" !== c && (g -= fa.css(a, "border" + Fa[f] + "Width", !0, e))) : (g += fa.css(a, "padding" + Fa[f], !0, e), "padding" !== c && (g += fa.css(a, "border" + Fa[f] + "Width", !0, e)));
return g
}
function F(b, c, d) {
var e = !0,
f = "width" === c ? b.offsetWidth : b.offsetHeight,
g = Ya(b),
h = "border-box" === fa.css(b, "boxSizing", !1, g);
if (X.msFullscreenElement && a.top !== a && b.getClientRects().length && (f = Math.round(100 * b.getBoundingClientRect()[c])), 0 >= f || null == f) {
if (f = A(b, c, g), (0 > f || null == f) && (f = b.style[c]), Xa.test(f)) return f;
e = h && (da.boxSizingReliable() || f === b.style[c]), f = parseFloat(f) || 0
}
return f + E(b, c, d || (h ? "border" : "content"), e, g) + "px"
}
function G(a, b) {
for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = za.get(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && Ga(d) && (f[g] = za.access(d, "olddisplay", z(d.nodeName)))) : (e = Ga(d), "none" === c && e || za.set(d, "olddisplay", e ? c : fa.css(d, "display"))));
for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
return a
}
function H(a, b, c, d, e) {
return new H.prototype.init(a, b, c, d, e)
}
function I() {
return a.setTimeout(function() {
eb = void 0
}), eb = fa.now()
}
function J(a, b) {
var c, d = 0,
e = {
height: a
};
for (b = b ? 1 : 0; 4 > d; d += 2 - b) c = Fa[d], e["margin" + c] = e["padding" + c] = a;
return b && (e.opacity = e.width = a), e
}
function K(a, b, c) {
for (var d, e = (N.tweeners[b] || []).concat(N.tweeners["*"]), f = 0, g = e.length; g > f; f++)
if (d = e[f].call(c, b, a)) return d
}
function L(a, b, c) {
var d, e, f, g, h, i, j, k, l = this,
m = {},
n = a.style,
o = a.nodeType && Ga(a),
p = za.get(a, "fxshow");
c.queue || (h = fa._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
h.unqueued || i()
}), h.unqueued++, l.always(function() {
l.always(function() {
h.unqueued--, fa.queue(a, "fx").length || h.empty.fire()
})
})), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], j = fa.css(a, "display"), k = "none" === j ? za.get(a, "olddisplay") || z(a.nodeName) : j, "inline" === k && "none" === fa.css(a, "float") && (n.display = "inline-block")), c.overflow && (n.overflow = "hidden", l.always(function() {
n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2]
}));
for (d in b)
if (e = b[d], gb.exec(e)) {
if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) {
if ("show" !== e || !p || void 0 === p[d]) continue;
o = !0
}
m[d] = p && p[d] || fa.style(a, d)
} else j = void 0;
if (fa.isEmptyObject(m)) "inline" === ("none" === j ? z(a.nodeName) : j) && (n.display = j);
else {
p ? "hidden" in p && (o = p.hidden) : p = za.access(a, "fxshow", {}), f && (p.hidden = !o), o ? fa(a).show() : l.done(function() {
fa(a).hide()
}), l.done(function() {
var b;
za.remove(a, "fxshow");
for (b in m) fa.style(a, b, m[b])
});
for (d in m) g = K(o ? p[d] : 0, d, l), d in p || (p[d] = g.start, o && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
}
}
function M(a, b) {
var c, d, e, f, g;
for (c in a)
if (d = fa.camelCase(c), e = b[d], f = a[c], fa.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = fa.cssHooks[d], g && "expand" in g) {
f = g.expand(f), delete a[d];
for (c in f) c in a || (a[c] = f[c], b[c] = e)
} else b[d] = e
}
function N(a, b, c) {
var d, e, f = 0,
g = N.prefilters.length,
h = fa.Deferred().always(function() {
delete i.elem
}),
i = function() {
if (e) return !1;
for (var b = eb || I(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
},
j = h.promise({
elem: a,
props: fa.extend({}, b),
opts: fa.extend(!0, {
specialEasing: {},
easing: fa.easing._default
}, c),
originalProperties: b,
originalOptions: c,
startTime: eb || I(),
duration: c.duration,
tweens: [],
createTween: function(b, c) {
var d = fa.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
return j.tweens.push(d), d
},
stop: function(b) {
var c = 0,
d = b ? j.tweens.length : 0;
if (e) return this;
for (e = !0; d > c; c++) j.tweens[c].run(1);
return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this
}
}),
k = j.props;
for (M(k, j.opts.specialEasing); g > f; f++)
if (d = N.prefilters[f].call(j, a, k, j.opts)) return fa.isFunction(d.stop) && (fa._queueHooks(j.elem, j.opts.queue).stop = fa.proxy(d.stop, d)), d;
return fa.map(k, K, j), fa.isFunction(j.opts.start) && j.opts.start.call(a, j), fa.fx.timer(fa.extend(i, {
elem: a,
anim: j,
queue: j.opts.queue
})), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
}
function O(a) {
return a.getAttribute && a.getAttribute("class") || ""
}
function P(a) {
return function(b, c) {
"string" != typeof b && (c = b, b = "*");
var d, e = 0,
f = b.toLowerCase().match(va) || [];
if (fa.isFunction(c))
for (; d = f[e++];) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
}
}
function Q(a, b, c, d) {
function e(h) {
var i;
return f[h] = !0, fa.each(a[h] || [], function(a, h) {
var j = h(b, c, d);
return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1)
}), i
}
var f = {},
g = a === zb;
return e(b.dataTypes[0]) || !f["*"] && e("*")
}
function R(a, b) {
var c, d, e = fa.ajaxSettings.flatOptions || {};
for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
return d && fa.extend(!0, a, d), a
}
function S(a, b, c) {
for (var d, e, f, g, h = a.contents, i = a.dataTypes;
"*" === i[0];) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
if (d)
for (e in h)
if (h[e] && h[e].test(d)) {
i.unshift(e);
break
}
if (i[0] in c) f = i[0];
else {
for (e in c) {
if (!i[0] || a.converters[e + " " + i[0]]) {
f = e;
break
}
g || (g = e)
}
f = f || g
}
return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
}
function T(a, b, c, d) {
var e, f, g, h, i, j = {},
k = a.dataTypes.slice();
if (k[1])
for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
for (f = k.shift(); f;)
if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
if ("*" === f) f = i;
else if ("*" !== i && i !== f) {
if (g = j[i + " " + f] || j["* " + f], !g)
for (e in j)
if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
break
}
if (g !== !0)
if (g && a["throws"]) b = g(b);
else try {
b = g(b)
} catch (l) {
return {
state: "parsererror",
error: g ? l : "No conversion from " + i + " to " + f
}
}
}
return {
state: "success",
data: b
}
}
function U(a, b, c, d) {
var e;
if (fa.isArray(b)) fa.each(b, function(b, e) {
c || Db.test(a) ? d(a, e) : U(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d)
});
else if (c || "object" !== fa.type(b)) d(a, b);
else
for (e in b) U(a + "[" + e + "]", b[e], c, d)
}
function V(a) {
return fa.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
}
var W = [],
X = a.document,
Y = W.slice,
Z = W.concat,
$ = W.push,
_ = W.indexOf,
aa = {},
ba = aa.toString,
ca = aa.hasOwnProperty,
da = {},
ea = "2.2.0",
fa = function(a, b) {
return new fa.fn.init(a, b)
},
ga = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
ha = /^-ms-/,
ia = /-([\da-z])/gi,
ja = function(a, b) {
return b.toUpperCase()
};
fa.fn = fa.prototype = {
jquery: ea,
constructor: fa,
selector: "",
length: 0,
toArray: function() {
return Y.call(this)
},
get: function(a) {
return null != a ? 0 > a ? this[a + this.length] : this[a] : Y.call(this)
},
pushStack: function(a) {
var b = fa.merge(this.constructor(), a);
return b.prevObject = this, b.context = this.context, b
},
each: function(a) {
return fa.each(this, a)
},
map: function(a) {
return this.pushStack(fa.map(this, function(b, c) {
return a.call(b, c, b)
}))
},
slice: function() {
return this.pushStack(Y.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(a) {
var b = this.length,
c = +a + (0 > a ? b : 0);
return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: $,
sort: W.sort,
splice: W.splice
}, fa.extend = fa.fn.extend = function() {
var a, b, c, d, e, f, g = arguments[0] || {},
h = 1,
i = arguments.length,
j = !1;
for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || fa.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)
if (null != (a = arguments[h]))
for (b in a) c = g[b], d = a[b], g !== d && (j && d && (fa.isPlainObject(d) || (e = fa.isArray(d))) ? (e ? (e = !1, f = c && fa.isArray(c) ? c : []) : f = c && fa.isPlainObject(c) ? c : {}, g[b] = fa.extend(j, f, d)) : void 0 !== d && (g[b] = d));
return g
}, fa.extend({
expando: "jQuery" + (ea + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(a) {
throw new Error(a)
},
noop: function() {},
isFunction: function(a) {
return "function" === fa.type(a)
},
isArray: Array.isArray,
isWindow: function(a) {
return null != a && a === a.window
},
isNumeric: function(a) {
var b = a && a.toString();
return !fa.isArray(a) && b - parseFloat(b) + 1 >= 0
},
isPlainObject: function(a) {
return "object" !== fa.type(a) || a.nodeType || fa.isWindow(a) ? !1 : a.constructor && !ca.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0
},
isEmptyObject: function(a) {
var b;
for (b in a) return !1;
return !0
},
type: function(a) {
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? aa[ba.call(a)] || "object" : typeof a
},
globalEval: function(a) {
var b, c = eval;
a = fa.trim(a), a && (1 === a.indexOf("use strict") ? (b = X.createElement("script"), b.text = a, X.head.appendChild(b).parentNode.removeChild(b)) : c(a))
},
camelCase: function(a) {
return a.replace(ha, "ms-").replace(ia, ja)
},
nodeName: function(a, b) {
return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
},
each: function(a, b) {
var d, e = 0;
if (c(a))
for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++);
else
for (e in a)
if (b.call(a[e], e, a[e]) === !1) break; return a
},
trim: function(a) {
return null == a ? "" : (a + "").replace(ga, "")
},
makeArray: function(a, b) {
var d = b || [];
return null != a && (c(Object(a)) ? fa.merge(d, "string" == typeof a ? [a] : a) : $.call(d, a)), d
},
inArray: function(a, b, c) {
return null == b ? -1 : _.call(b, a, c)
},
merge: function(a, b) {
for (var c = +b.length, d = 0, e = a.length; c > d; d++) a[e++] = b[d];
return a.length = e, a
},
grep: function(a, b, c) {
for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
return e
},
map: function(a, b, d) {
var e, f, g = 0,
h = [];
if (c(a))
for (e = a.length; e > g; g++) f = b(a[g], g, d), null != f && h.push(f);
else
for (g in a) f = b(a[g], g, d), null != f && h.push(f);
return Z.apply([], h)
},
guid: 1,
proxy: function(a, b) {
var c, d, e;
return "string" == typeof b && (c = a[b], b = a, a = c), fa.isFunction(a) ? (d = Y.call(arguments, 2), e = function() {
return a.apply(b || this, d.concat(Y.call(arguments)))
}, e.guid = a.guid = a.guid || fa.guid++, e) : void 0
},
now: Date.now,
support: da
}), "function" == typeof Symbol && (fa.fn[Symbol.iterator] = W[Symbol.iterator]), fa.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(a, b) {
aa["[object " + b + "]"] = b.toLowerCase()
});
var ka = function(a) {
function b(a, b, c, d) {
var e, f, g, h, i, j, l, n, o = b && b.ownerDocument,
p = b ? b.nodeType : 9;
if (c = c || [], "string" != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c;
if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) {
if (11 !== p && (j = ra.exec(a)))
if (e = j[1]) {
if (9 === p) {
if (!(g = b.getElementById(e))) return c;
if (g.id === e) return c.push(g), c
} else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c
} else {
if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c;
if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c
}
if (v.qsa && !T[a + " "] && (!J || !J.test(a))) {
if (1 !== p) o = b, n = a;
else if ("object" !== b.nodeName.toLowerCase()) {
for ((h = b.getAttribute("id")) ? h = h.replace(ta, "\\$&") : b.setAttribute("id", h = N), l = z(a), f = l.length, i = ma.test(h) ? "#" + h : "[id='" + h + "']"; f--;) l[f] = i + " " + m(l[f]);
n = l.join(","), o = sa.test(a) && k(b.parentNode) || b
}
if (n) try {
return $.apply(c, o.querySelectorAll(n)), c
} catch (q) {} finally {
h === N && b.removeAttribute("id")
}
}
}
return B(a.replace(ha, "$1"), b, c, d)
}
function c() {
function a(c, d) {
return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d
}
var b = [];
return a
}
function d(a) {
return a[N] = !0, a
}
function e(a) {
var b = G.createElement("div");
try {
return !!a(b)
} catch (c) {
return !1
} finally {
b.parentNode && b.parentNode.removeChild(b), b = null
}
}
function f(a, b) {
for (var c = a.split("|"), d = c.length; d--;) w.attrHandle[c[d]] = b
}
function g(a, b) {
var c = b && a,
d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V);
if (d) return d;
if (c)
for (; c = c.nextSibling;)
if (c === b) return -1;
return a ? 1 : -1
}
function h(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return "input" === c && b.type === a
}
}
function i(a) {
return function(b) {
var c = b.nodeName.toLowerCase();
return ("input" === c || "button" === c) && b.type === a
}
}
function j(a) {
return d(function(b) {
return b = +b, d(function(c, d) {
for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
})
})
}
function k(a) {
return a && "undefined" != typeof a.getElementsByTagName && a
}
function l() {}
function m(a) {
for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
return d
}
function n(a, b, c) {
var d = b.dir,
e = c && "parentNode" === d,
f = Q++;
return b.first ? function(b, c, f) {
for (; b = b[d];)
if (1 === b.nodeType || e) return a(b, c, f)
} : function(b, c, g) {
var h, i, j, k = [P, f];
if (g) {
for (; b = b[d];)
if ((1 === b.nodeType || e) && a(b, c, g)) return !0
} else
for (; b = b[d];)
if (1 === b.nodeType || e) {
if (j = b[N] || (b[N] = {}), i = j[b.uniqueID] || (j[b.uniqueID] = {}), (h = i[d]) && h[0] === P && h[1] === f) return k[2] = h[2];
if (i[d] = k, k[2] = a(b, c, g)) return !0
}
}
}
function o(a) {
return a.length > 1 ? function(b, c, d) {
for (var e = a.length; e--;)
if (!a[e](b, c, d)) return !1;
return !0
} : a[0]
}
function p(a, c, d) {
for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d);
return d
}
function q(a, b, c, d, e) {
for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
return g
}
function r(a, b, c, e, f, g) {
return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) {
var j, k, l, m = [],
n = [],
o = g.length,
r = d || p(b || "*", h.nodeType ? [h] : h, []),
s = !a || !d && b ? r : q(r, m, a, h, i),
t = c ? f || (d ? a : o || e) ? [] : g : s;
if (c && c(s, t, h, i), e)
for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
if (d) {
if (f || a) {
if (f) {
for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l);
f(null, t = [], j, i)
}
for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l))
}
} else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t)
})
}
function s(a) {
for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[" "], h = f ? 1 : 0, i = n(function(a) {
return a === b
}, g, !0), j = n(function(a) {
return aa(b, a) > -1
}, g, !0), k = [function(a, c, d) {
var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d));
return b = null, e
}]; e > h; h++)
if (c = w.relative[a[h].type]) k = [n(o(k), c)];
else {
if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) {
for (d = ++h; e > d && !w.relative[a[d].type]; d++);
return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({
value: " " === a[h - 2].type ? "*" : ""
})).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a))
}
k.push(c)
}
return o(k)
}
function t(a, c) {
var e = c.length > 0,
f = a.length > 0,
g = function(d, g, h, i, j) {
var k, l, m, n = 0,
o = "0",
p = d && [],
r = [],
s = C,
t = d || f && w.find.TAG("*", j),
u = P += null == s ? 1 : Math.random() || .1,
v = t.length;
for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) {
if (f && k) {
for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++];)
if (m(k, g || G, h)) {
i.push(k);
break
}
j && (P = u)
}
e && ((k = !m && k) && n--, d && p.push(k))
}
if (n += o, e && o !== n) {
for (l = 0; m = c[l++];) m(p, r, g, h);
if (d) {
if (n > 0)
for (; o--;) p[o] || r[o] || (r[o] = Y.call(i));
r = q(r)
}
$.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i)
}
return j && (P = u, C = s), p
};
return e ? d(g) : g
}
var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = "sizzle" + 1 * new Date,
O = a.document,
P = 0,
Q = 0,
R = c(),
S = c(),
T = c(),
U = function(a, b) {
return a === b && (E = !0), 0
},
V = 1 << 31,
W = {}.hasOwnProperty,
X = [],
Y = X.pop,
Z = X.push,
$ = X.push,
_ = X.slice,
aa = function(a, b) {
for (var c = 0, d = a.length; d > c; c++)
if (a[c] === b) return c;
return -1
},
ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
ca = "[\\x20\\t\\r\\n\\f]",
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]",
fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)",
ga = new RegExp(ca + "+", "g"),
ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"),
ia = new RegExp("^" + ca + "*," + ca + "*"),
ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"),
ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"),
la = new RegExp(fa),
ma = new RegExp("^" + da + "$"),
na = {
ID: new RegExp("^#(" + da + ")"),
CLASS: new RegExp("^\\.(" + da + ")"),
TAG: new RegExp("^(" + da + "|[*])"),
ATTR: new RegExp("^" + ea),
PSEUDO: new RegExp("^" + fa),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"),
bool: new RegExp("^(?:" + ba + ")$", "i"),
needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i")
},
oa = /^(?:input|select|textarea|button)$/i,
pa = /^h\d$/i,
qa = /^[^{]+\{\s*\[native \w/,
ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
sa = /[+~]/,
ta = /'|\\/g,
ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"),
va = function(a, b, c) {
var d = "0x" + b - 65536;
return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
},
wa = function() {
F()
};
try {
$.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType
} catch (xa) {
$ = {
apply: X.length ? function(a, b) {
Z.apply(a, _.call(b))
} : function(a, b) {
for (var c = a.length, d = 0; a[c++] = b[d++];);
a.length = c - 1
}
}
}
v = b.support = {}, y = b.isXML = function(a) {
var b = a && (a.ownerDocument || a).documentElement;
return b ? "HTML" !== b.nodeName : !1
}, F = b.setDocument = function(a) {
var b, c, d = a ? a.ownerDocument || a : O;
return d !== G && 9 === d.nodeType && d.documentElement ? (G = d, H = G.documentElement, I = !y(G), (c = G.defaultView) && c.top !== c && (c.addEventListener ? c.addEventListener("unload", wa, !1) : c.attachEvent && c.attachEvent("onunload", wa)), v.attributes = e(function(a) {
return a.className = "i", !a.getAttribute("className")
}), v.getElementsByTagName = e(function(a) {
return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length
}), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function(a) {
return H.appendChild(a).id = N, !G.getElementsByName || !G.getElementsByName(N).length
}), v.getById ? (w.find.ID = function(a, b) {
if ("undefined" != typeof b.getElementById && I) {
var c = b.getElementById(a);
return c ? [c] : []
}
}, w.filter.ID = function(a) {
var b = a.replace(ua, va);
return function(a) {
return a.getAttribute("id") === b
}
}) : (delete w.find.ID, w.filter.ID = function(a) {
var b = a.replace(ua, va);
return function(a) {
var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
return c && c.value === b
}
}), w.find.TAG = v.getElementsByTagName ? function(a, b) {
return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0
} : function(a, b) {
var c, d = [],
e = 0,
f = b.getElementsByTagName(a);
if ("*" === a) {
for (; c = f[e++];) 1 === c.nodeType && d.push(c);
return d
}
return f
}, w.find.CLASS = v.getElementsByClassName && function(a, b) {
return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0
}, K = [], J = [], (v.qsa = qa.test(G.querySelectorAll)) && (e(function(a) {
H.appendChild(a).innerHTML = "<a id='" + N + "'></a><select id='" + N + "-\r\\' msallowcapture=''><option selected=''></option></select>", a.querySelectorAll("[msallowcapture^='']").length && J.push("[*^$]=" + ca + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || J.push("\\[" + ca + "*(?:value|" + ba + ")"), a.querySelectorAll("[id~=" + N + "-]").length || J.push("~="), a.querySelectorAll(":checked").length || J.push(":checked"), a.querySelectorAll("a#" + N + "+*").length || J.push(".#.+[+~]")
}), e(function(a) {
var b = G.createElement("input");
b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && J.push("name" + ca + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || J.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), J.push(",.*:")
})), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) {
v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", fa)
}), J = J.length && new RegExp(J.join("|")), K = K.length && new RegExp(K.join("|")), b = qa.test(H.compareDocumentPosition), M = b || qa.test(H.contains) ? function(a, b) {
var c = 9 === a.nodeType ? a.documentElement : a,
d = b && b.parentNode;
return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
} : function(a, b) {
if (b)
for (; b = b.parentNode;)
if (b === a) return !0;
return !1
}, U = b ? function(a, b) {
if (a === b) return E = !0, 0;
var c = !a.compareDocumentPosition - !b.compareDocumentPosition;
return c ? c : (c = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & c || !v.sortDetached && b.compareDocumentPosition(a) === c ? a === G || a.ownerDocument === O && M(O, a) ? -1 : b === G || b.ownerDocument === O && M(O, b) ? 1 : D ? aa(D, a) - aa(D, b) : 0 : 4 & c ? -1 : 1)
} : function(a, b) {
if (a === b) return E = !0, 0;
var c, d = 0,
e = a.parentNode,
f = b.parentNode,
h = [a],
i = [b];
if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0;
if (e === f) return g(a, b);
for (c = a; c = c.parentNode;) h.unshift(c);
for (c = b; c = c.parentNode;) i.unshift(c);
for (; h[d] === i[d];) d++;
return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0
}, G) : G
}, b.matches = function(a, c) {
return b(a, null, null, c)
}, b.matchesSelector = function(a, c) {
if ((a.ownerDocument || a) !== G && F(a), c = c.replace(ka, "='$1']"), v.matchesSelector && I && !T[c + " "] && (!K || !K.test(c)) && (!J || !J.test(c))) try {
var d = L.call(a, c);
if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
} catch (e) {}
return b(c, G, null, [a]).length > 0
}, b.contains = function(a, b) {
return (a.ownerDocument || a) !== G && F(a), M(a, b)
}, b.attr = function(a, b) {
(a.ownerDocument || a) !== G && F(a);
var c = w.attrHandle[b.toLowerCase()],
d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0;
return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}, b.error = function(a) {
throw new Error("Syntax error, unrecognized expression: " + a)
}, b.uniqueSort = function(a) {
var b, c = [],
d = 0,
e = 0;
if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) {
for (; b = a[e++];) b === a[e] && (d = c.push(e));
for (; d--;) a.splice(c[d], 1)
}
return D = null, a
}, x = b.getText = function(a) {
var b, c = "",
d = 0,
e = a.nodeType;
if (e) {
if (1 === e || 9 === e || 11 === e) {
if ("string" == typeof a.textContent) return a.textContent;
for (a = a.firstChild; a; a = a.nextSibling) c += x(a)
} else if (3 === e || 4 === e) return a.nodeValue
} else
for (; b = a[d++];) c += x(b);
return c
}, w = b.selectors = {
cacheLength: 50,
createPseudo: d,
match: na,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(a) {
return a[1] = a[1].replace(ua, va), a[3] = (a[3] || a[4] || a[5] || "").replace(ua, va), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
},
CHILD: function(a) {
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && b.error(a[0]), a
},
PSEUDO: function(a) {
var b, c = !a[6] && a[2];
return na.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && la.test(c) && (b = z(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
}
},
filter: {
TAG: function(a) {
var b = a.replace(ua, va).toLowerCase();
return "*" === a ? function() {
return !0
} : function(a) {
return a.nodeName && a.nodeName.toLowerCase() === b
}
},
CLASS: function(a) {
var b = R[a + " "];
return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) {
return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
})
},
ATTR: function(a, c, d) {
return function(e) {
var f = b.attr(e, a);
return null == f ? "!=" === c : c ? (f += "", "=" === c ? f === d : "!=" === c ? f !== d : "^=" === c ? d && 0 === f.indexOf(d) : "*=" === c ? d && f.indexOf(d) > -1 : "$=" === c ? d && f.slice(-d.length) === d : "~=" === c ? (" " + f.replace(ga, " ") + " ").indexOf(d) > -1 : "|=" === c ? f === d || f.slice(0, d.length + 1) === d + "-" : !1) : !0
}
},
CHILD: function(a, b, c, d, e) {
var f = "nth" !== a.slice(0, 3),
g = "last" !== a.slice(-4),
h = "of-type" === b;
return 1 === d && 0 === e ? function(a) {
return !!a.parentNode
} : function(b, c, i) {
var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
q = b.parentNode,
r = h && b.nodeName.toLowerCase(),
s = !i && !h,
t = !1;
if (q) {
if (f) {
for (; p;) {
for (m = b; m = m[p];)
if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1;
o = p = "only" === a && !o && "nextSibling"
}
return !0
}
if (o = [g ? q.firstChild : q.lastChild], g && s) {
for (m = q, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n && j[2], m = n && q.childNodes[n]; m = ++n && m && m[p] || (t = n = 0) || o.pop();)
if (1 === m.nodeType && ++t && m === b) {
k[a] = [P, n, t];
break
}
} else if (s && (m = b, l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), j = k[a] || [], n = j[0] === P && j[1], t = n), t === !1)
for (;
(m = ++n && m && m[p] || (t = n = 0) || o.pop()) && ((h ? m.nodeName.toLowerCase() !== r : 1 !== m.nodeType) || !++t || (s && (l = m[N] || (m[N] = {}), k = l[m.uniqueID] || (l[m.uniqueID] = {}), k[a] = [P, t]), m !== b)););
return t -= e, t === d || t % d === 0 && t / d >= 0
}
}
},
PSEUDO: function(a, c) {
var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a);
return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) {
for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g])
}) : function(a) {
return f(a, 0, e)
}) : f
}
},
pseudos: {
not: d(function(a) {
var b = [],
c = [],
e = A(a.replace(ha, "$1"));
return e[N] ? d(function(a, b, c, d) {
for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f))
}) : function(a, d, f) {
return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop()
}
}),
has: d(function(a) {
return function(c) {
return b(a, c).length > 0
}
}),
contains: d(function(a) {
return a = a.replace(ua, va),
function(b) {
return (b.textContent || b.innerText || x(b)).indexOf(a) > -1
}
}),
lang: d(function(a) {
return ma.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(ua, va).toLowerCase(),
function(b) {
var c;
do
if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-");
while ((b = b.parentNode) && 1 === b.nodeType);
return !1
}
}),
target: function(b) {
var c = a.location && a.location.hash;
return c && c.slice(1) === b.id
},
root: function(a) {
return a === H
},
focus: function(a) {
return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
},
enabled: function(a) {
return a.disabled === !1
},
disabled: function(a) {
return a.disabled === !0
},
checked: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && !!a.checked || "option" === b && !!a.selected
},
selected: function(a) {
return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
},
empty: function(a) {
for (a = a.firstChild; a; a = a.nextSibling)
if (a.nodeType < 6) return !1;
return !0
},
parent: function(a) {
return !w.pseudos.empty(a)
},
header: function(a) {
return pa.test(a.nodeName)
},
input: function(a) {
return oa.test(a.nodeName)
},
button: function(a) {
var b = a.nodeName.toLowerCase();
return "input" === b && "button" === a.type || "button" === b
},
text: function(a) {
var b;
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
},
first: j(function() {
return [0]
}),
last: j(function(a, b) {
return [b - 1]
}),
eq: j(function(a, b, c) {
return [0 > c ? c + b : c]
}),
even: j(function(a, b) {
for (var c = 0; b > c; c += 2) a.push(c);
return a
}),
odd: j(function(a, b) {
for (var c = 1; b > c; c += 2) a.push(c);
return a
}),
lt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
return a
}),
gt: j(function(a, b, c) {
for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
return a
})
}
}, w.pseudos.nth = w.pseudos.eq;
for (u in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) w.pseudos[u] = h(u);
for (u in {
submit: !0,
reset: !0
}) w.pseudos[u] = i(u);
return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) {
var d, e, f, g, h, i, j, k = S[a + " "];
if (k) return c ? 0 : k.slice(0);
for (h = a, i = [], j = w.preFilter; h;) {
(!d || (e = ia.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = ja.exec(h)) && (d = e.shift(), f.push({
value: d,
type: e[0].replace(ha, " ")
}), h = h.slice(d.length));
for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({
value: d,
type: g,
matches: e
}), h = h.slice(d.length));
if (!d) break
}
return c ? h.length : h ? b.error(a) : S(a, i).slice(0)
}, A = b.compile = function(a, b) {
var c, d = [],
e = [],
f = T[a + " "];
if (!f) {
for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f);
f = T(a, t(e, d)), f.selector = a
}
return f
}, B = b.select = function(a, b, c, d) {
var e, f, g, h, i, j = "function" == typeof a && a,
l = !d && z(a = j.selector || a);
if (c = c || [], 1 === l.length) {
if (f = l[0] = l[0].slice(0), f.length > 2 && "ID" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) {
if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0], !b) return c;
j && (b = b.parentNode), a = a.slice(f.shift().value.length)
}
for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);)
if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) {
if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c;
break
}
}
return (j || A(a, l))(d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b), c
}, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) {
return 1 & a.compareDocumentPosition(G.createElement("div"))
}), e(function(a) {
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
}) || f("type|href|height|width", function(a, b, c) {
return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
}), v.attributes && e(function(a) {
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
}) || f("value", function(a, b, c) {
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
}), e(function(a) {
return null == a.getAttribute("disabled")
}) || f(ba, function(a, b, c) {
var d;
return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
}), b
}(a);
fa.find = ka, fa.expr = ka.selectors, fa.expr[":"] = fa.expr.pseudos, fa.uniqueSort = fa.unique = ka.uniqueSort, fa.text = ka.getText, fa.isXMLDoc = ka.isXML, fa.contains = ka.contains;
var la = function(a, b, c) {
for (var d = [], e = void 0 !== c;
(a = a[b]) && 9 !== a.nodeType;)
if (1 === a.nodeType) {
if (e && fa(a).is(c)) break;
d.push(a)
}
return d
},
ma = function(a, b) {
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
return c
},
na = fa.expr.match.needsContext,
oa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
pa = /^.[^:#\[\.,]*$/;
fa.filter = function(a, b, c) {
var d = b[0];
return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? fa.find.matchesSelector(d, a) ? [d] : [] : fa.find.matches(a, fa.grep(b, function(a) {
return 1 === a.nodeType
}))
}, fa.fn.extend({
find: function(a) {
var b, c = this.length,
d = [],
e = this;
if ("string" != typeof a) return this.pushStack(fa(a).filter(function() {
for (b = 0; c > b; b++)
if (fa.contains(e[b], this)) return !0
}));
for (b = 0; c > b; b++) fa.find(a, e[b], d);
return d = this.pushStack(c > 1 ? fa.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d
},
filter: function(a) {
return this.pushStack(d(this, a || [], !1))
},
not: function(a) {
return this.pushStack(d(this, a || [], !0))
},
is: function(a) {
return !!d(this, "string" == typeof a && na.test(a) ? fa(a) : a || [], !1).length
}
});
var qa, ra = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
sa = fa.fn.init = function(a, b, c) {
var d, e;
if (!a) return this;
if (c = c || qa, "string" == typeof a) {
if (d = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : ra.exec(a), !d || !d[1] && b) return !b || b.jquery ? (b || c).find(a) : this.constructor(b).find(a);
if (d[1]) {
if (b = b instanceof fa ? b[0] : b, fa.merge(this, fa.parseHTML(d[1], b && b.nodeType ? b.ownerDocument || b : X, !0)), oa.test(d[1]) && fa.isPlainObject(b))
for (d in b) fa.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]);
return this
}
return e = X.getElementById(d[2]), e && e.parentNode && (this.length = 1, this[0] = e), this.context = X, this.selector = a, this
}
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : fa.isFunction(a) ? void 0 !== c.ready ? c.ready(a) : a(fa) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), fa.makeArray(a, this))
};
sa.prototype = fa.fn, qa = fa(X);
var ta = /^(?:parents|prev(?:Until|All))/,
ua = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
fa.fn.extend({
has: function(a) {
var b = fa(a, this),
c = b.length;
return this.filter(function() {
for (var a = 0; c > a; a++)
if (fa.contains(this, b[a])) return !0
})
},
closest: function(a, b) {
for (var c, d = 0, e = this.length, f = [], g = na.test(a) || "string" != typeof a ? fa(a, b || this.context) : 0; e > d; d++)
for (c = this[d]; c && c !== b; c = c.parentNode)
if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && fa.find.matchesSelector(c, a))) {
f.push(c);
break
}
return this.pushStack(f.length > 1 ? fa.uniqueSort(f) : f)
},
index: function(a) {
return a ? "string" == typeof a ? _.call(fa(a), this[0]) : _.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(a, b) {
return this.pushStack(fa.uniqueSort(fa.merge(this.get(), fa(a, b))))
},
addBack: function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}
}), fa.each({
parent: function(a) {
var b = a.parentNode;
return b && 11 !== b.nodeType ? b : null
},
parents: function(a) {
return la(a, "parentNode")
},
parentsUntil: function(a, b, c) {
return la(a, "parentNode", c)
},
next: function(a) {
return e(a, "nextSibling")
},
prev: function(a) {
return e(a, "previousSibling")
},
nextAll: function(a) {
return la(a, "nextSibling")
},
prevAll: function(a) {
return la(a, "previousSibling")
},
nextUntil: function(a, b, c) {
return la(a, "nextSibling", c)
},
prevUntil: function(a, b, c) {
return la(a, "previousSibling", c)
},
siblings: function(a) {
return ma((a.parentNode || {}).firstChild, a)
},
children: function(a) {
return ma(a.firstChild)
},
contents: function(a) {
return a.contentDocument || fa.merge([], a.childNodes)
}
}, function(a, b) {
fa.fn[a] = function(c, d) {
var e = fa.map(this, b, c);
return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = fa.filter(d, e)), this.length > 1 && (ua[a] || fa.uniqueSort(e), ta.test(a) && e.reverse()), this.pushStack(e)
}
});
var va = /\S+/g;
fa.Callbacks = function(a) {
a = "string" == typeof a ? f(a) : fa.extend({}, a);
var b, c, d, e, g = [],
h = [],
i = -1,
j = function() {
for (e = a.once, d = b = !0; h.length; i = -1)
for (c = h.shift(); ++i < g.length;) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1);
a.memory || (c = !1), b = !1, e && (g = c ? [] : "")
},
k = {
add: function() {
return g && (c && !b && (i = g.length - 1, h.push(c)), function d(b) {
fa.each(b, function(b, c) {
fa.isFunction(c) ? a.unique && k.has(c) || g.push(c) : c && c.length && "string" !== fa.type(c) && d(c)
})
}(arguments), c && !b && j()), this
},
remove: function() {
return fa.each(arguments, function(a, b) {
for (var c;
(c = fa.inArray(b, g, c)) > -1;) g.splice(c, 1), i >= c && i--
}), this
},
has: function(a) {
return a ? fa.inArray(a, g) > -1 : g.length > 0
},
empty: function() {
return g && (g = []), this
},
disable: function() {
return e = h = [], g = c = "", this
},
disabled: function() {
return !g
},
lock: function() {
return e = h = [], c || (g = c = ""), this
},
locked: function() {
return !!e
},
fireWith: function(a, c) {
return e || (c = c || [], c = [a, c.slice ? c.slice() : c], h.push(c), b || j()), this
},
fire: function() {
return k.fireWith(this, arguments), this
},
fired: function() {
return !!d
}
};
return k
}, fa.extend({
Deferred: function(a) {
var b = [
["resolve", "done", fa.Callbacks("once memory"), "resolved"],
["reject", "fail", fa.Callbacks("once memory"), "rejected"],
["notify", "progress", fa.Callbacks("memory")]
],
c = "pending",
d = {
state: function() {
return c
},
always: function() {
return e.done(arguments).fail(arguments), this
},
then: function() {
var a = arguments;
return fa.Deferred(function(c) {
fa.each(b, function(b, f) {
var g = fa.isFunction(a[b]) && a[b];
e[f[1]](function() {
var a = g && g.apply(this, arguments);
a && fa.isFunction(a.promise) ? a.promise().progress(c.notify).done(c.resolve).fail(c.reject) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
})
}), a = null
}).promise()
},
promise: function(a) {
return null != a ? fa.extend(a, d) : d
}
},
e = {};
return d.pipe = d.then, fa.each(b, function(a, f) {
var g = f[2],
h = f[3];
d[f[1]] = g.add, h && g.add(function() {
c = h
}, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
return e[f[0] + "With"](this === e ? d : this, arguments), this
}, e[f[0] + "With"] = g.fireWith
}), d.promise(e), a && a.call(e, e), e
},
when: function(a) {
var b, c, d, e = 0,
f = Y.call(arguments),
g = f.length,
h = 1 !== g || a && fa.isFunction(a.promise) ? g : 0,
i = 1 === h ? a : fa.Deferred(),
j = function(a, c, d) {
return function(e) {
c[a] = this, d[a] = arguments.length > 1 ? Y.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d)
}
};
if (g > 1)
for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++) f[e] && fa.isFunction(f[e].promise) ? f[e].promise().progress(j(e, c, b)).done(j(e, d, f)).fail(i.reject) : --h;
return h || i.resolveWith(d, f), i.promise()
}
});
var wa;
fa.fn.ready = function(a) {
return fa.ready.promise().done(a), this
}, fa.extend({
isReady: !1,
readyWait: 1,
holdReady: function(a) {
a ? fa.readyWait++ : fa.ready(!0)
},
ready: function(a) {
(a === !0 ? --fa.readyWait : fa.isReady) || (fa.isReady = !0, a !== !0 && --fa.readyWait > 0 || (wa.resolveWith(X, [fa]), fa.fn.triggerHandler && (fa(X).triggerHandler("ready"), fa(X).off("ready"))))
}
}), fa.ready.promise = function(b) {
return wa || (wa = fa.Deferred(), "complete" === X.readyState || "loading" !== X.readyState && !X.documentElement.doScroll ? a.setTimeout(fa.ready) : (X.addEventListener("DOMContentLoaded", g), a.addEventListener("load", g))), wa.promise(b)
}, fa.ready.promise();
var xa = function(a, b, c, d, e, f, g) {
var h = 0,
i = a.length,
j = null == c;
if ("object" === fa.type(c)) {
e = !0;
for (h in c) xa(a, b, h, c[h], !0, f, g)
} else if (void 0 !== d && (e = !0, fa.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
return j.call(fa(a), c)
})), b))
for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
},
ya = function(a) {
return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
};
h.uid = 1, h.prototype = {
register: function(a, b) {
var c = b || {};
return a.nodeType ? a[this.expando] = c : Object.defineProperty(a, this.expando, {
value: c,
writable: !0,
configurable: !0
}), a[this.expando]
},
cache: function(a) {
if (!ya(a)) return {};
var b = a[this.expando];
return b || (b = {}, ya(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, {
value: b,
configurable: !0
}))), b
},
set: function(a, b, c) {
var d, e = this.cache(a);
if ("string" == typeof b) e[b] = c;
else
for (d in b) e[d] = b[d];
return e
},
get: function(a, b) {
return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][b]
},
access: function(a, b, c) {
var d;
return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, fa.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b)
},
remove: function(a, b) {
var c, d, e, f = a[this.expando];
if (void 0 !== f) {
if (void 0 === b) this.register(a);
else {
fa.isArray(b) ? d = b.concat(b.map(fa.camelCase)) : (e = fa.camelCase(b), b in f ? d = [b, e] : (d = e, d = d in f ? [d] : d.match(va) || [])), c = d.length;
for (; c--;) delete f[d[c]]
}(void 0 === b || fa.isEmptyObject(f)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando])
}
},
hasData: function(a) {
var b = a[this.expando];
return void 0 !== b && !fa.isEmptyObject(b)
}
};
var za = new h,
Aa = new h,
Ba = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
Ca = /[A-Z]/g;
fa.extend({
hasData: function(a) {
return Aa.hasData(a) || za.hasData(a)
},
data: function(a, b, c) {
return Aa.access(a, b, c)
},
removeData: function(a, b) {
Aa.remove(a, b)
},
_data: function(a, b, c) {
return za.access(a, b, c)
},
_removeData: function(a, b) {
za.remove(a, b)
}
}), fa.fn.extend({
data: function(a, b) {
var c, d, e, f = this[0],
g = f && f.attributes;
if (void 0 === a) {
if (this.length && (e = Aa.get(f), 1 === f.nodeType && !za.get(f, "hasDataAttrs"))) {
for (c = g.length; c--;) g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = fa.camelCase(d.slice(5)), i(f, d, e[d])));
za.set(f, "hasDataAttrs", !0)
}
return e
}
return "object" == typeof a ? this.each(function() {
Aa.set(this, a)
}) : xa(this, function(b) {
var c, d;
if (f && void 0 === b) {
if (c = Aa.get(f, a) || Aa.get(f, a.replace(Ca, "-$&").toLowerCase()), void 0 !== c) return c;
if (d = fa.camelCase(a), c = Aa.get(f, d), void 0 !== c) return c;
if (c = i(f, d, void 0), void 0 !== c) return c
} else d = fa.camelCase(a), this.each(function() {
var c = Aa.get(this, d);
Aa.set(this, d, b), a.indexOf("-") > -1 && void 0 !== c && Aa.set(this, a, b)
})
}, null, b, arguments.length > 1, null, !0)
},
removeData: function(a) {
return this.each(function() {
Aa.remove(this, a)
})
}
}), fa.extend({
queue: function(a, b, c) {
var d;
return a ? (b = (b || "fx") + "queue", d = za.get(a, b), c && (!d || fa.isArray(c) ? d = za.access(a, b, fa.makeArray(c)) : d.push(c)), d || []) : void 0
},
dequeue: function(a, b) {
b = b || "fx";
var c = fa.queue(a, b),
d = c.length,
e = c.shift(),
f = fa._queueHooks(a, b),
g = function() {
fa.dequeue(a, b)
};
"inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
},
_queueHooks: function(a, b) {
var c = b + "queueHooks";
return za.get(a, c) || za.access(a, c, {
empty: fa.Callbacks("once memory").add(function() {
za.remove(a, [b + "queue", c])
})
})
}
}), fa.fn.extend({
queue: function(a, b) {
var c = 2;
return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? fa.queue(this[0], a) : void 0 === b ? this : this.each(function() {
var c = fa.queue(this, a, b);
fa._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && fa.dequeue(this, a)
})
},
dequeue: function(a) {
return this.each(function() {
fa.dequeue(this, a)
})
},
clearQueue: function(a) {
return this.queue(a || "fx", [])
},
promise: function(a, b) {
var c, d = 1,
e = fa.Deferred(),
f = this,
g = this.length,
h = function() {
--d || e.resolveWith(f, [f])
};
for ("string" != typeof a && (b = a, a = void 0), a = a || "fx"; g--;) c = za.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
return h(), e.promise(b)
}
});
var Da = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
Ea = new RegExp("^(?:([+-])=|)(" + Da + ")([a-z%]*)$", "i"),
Fa = ["Top", "Right", "Bottom", "Left"],
Ga = function(a, b) {
return a = b || a, "none" === fa.css(a, "display") || !fa.contains(a.ownerDocument, a)
},
Ha = /^(?:checkbox|radio)$/i,
Ia = /<([\w:-]+)/,
Ja = /^$|\/(?:java|ecma)script/i,
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 La = /<|&#?\w+;/;
! function() {
var a = X.createDocumentFragment(),
b = a.appendChild(X.createElement("div")),
c = X.createElement("input");
c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), da.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "<textarea>x</textarea>", da.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue
}();
var Ma = /^key/,
Na = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
Oa = /^([^.]*)(?:\.(.+)|)/;
fa.event = {
global: {},
add: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = za.get(a);
if (q)
for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = fa.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function(b) {
return "undefined" != typeof fa && fa.event.triggered !== b.type ? fa.event.dispatch.apply(a, arguments) : void 0
}), b = (b || "").match(va) || [""], j = b.length; j--;) h = Oa.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n && (l = fa.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = fa.event.special[n] || {}, k = fa.extend({
type: n,
origType: p,
data: d,
handler: c,
guid: c.guid,
selector: e,
needsContext: e && fa.expr.match.needsContext.test(e),
namespace: o.join(".")
}, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), fa.event.global[n] = !0)
},
remove: function(a, b, c, d, e) {
var f, g, h, i, j, k, l, m, n, o, p, q = za.hasData(a) && za.get(a);
if (q && (i = q.events)) {
for (b = (b || "").match(va) || [""], j = b.length; j--;)
if (h = Oa.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
for (l = fa.event.special[n] || {}, n = (d ? l.delegateType : l.bindType) || n, m = i[n] || [], h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; f--;) k = m[f], !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1),
k.selector && m.delegateCount--, l.remove && l.remove.call(a, k));
g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || fa.removeEvent(a, n, q.handle), delete i[n])
} else
for (n in i) fa.event.remove(a, n + b[j], c, d, !0);
fa.isEmptyObject(i) && za.remove(a, "handle events")
}
},
dispatch: function(a) {
a = fa.event.fix(a);
var b, c, d, e, f, g = [],
h = Y.call(arguments),
i = (za.get(this, "events") || {})[a.type] || [],
j = fa.event.special[a.type] || {};
if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
for (g = fa.event.handlers.call(this, a, i), b = 0;
(e = g[b++]) && !a.isPropagationStopped();)
for (a.currentTarget = e.elem, c = 0;
(f = e.handlers[c++]) && !a.isImmediatePropagationStopped();)(!a.rnamespace || a.rnamespace.test(f.namespace)) && (a.handleObj = f, a.data = f.data, d = ((fa.event.special[f.origType] || {}).handle || f.handler).apply(e.elem, h), void 0 !== d && (a.result = d) === !1 && (a.preventDefault(), a.stopPropagation()));
return j.postDispatch && j.postDispatch.call(this, a), a.result
}
},
handlers: function(a, b) {
var c, d, e, f, g = [],
h = b.delegateCount,
i = a.target;
if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1))
for (; i !== this; i = i.parentNode || this)
if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
for (d = [], c = 0; h > c; c++) f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? fa(e, this).index(i) > -1 : fa.find(e, this, null, [i]).length), d[e] && d.push(f);
d.length && g.push({
elem: i,
handlers: d
})
}
return h < b.length && g.push({
elem: this,
handlers: b.slice(h)
}), g
},
props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(a, b) {
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
}
},
mouseHooks: {
props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(a, b) {
var c, d, e, f = b.button;
return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || X, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
}
},
fix: function(a) {
if (a[fa.expando]) return a;
var b, c, d, e = a.type,
f = a,
g = this.fixHooks[e];
for (g || (this.fixHooks[e] = g = Na.test(e) ? this.mouseHooks : Ma.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new fa.Event(f), b = d.length; b--;) c = d[b], a[c] = f[c];
return a.target || (a.target = X), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
return this !== p() && this.focus ? (this.focus(), !1) : void 0
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === p() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return "checkbox" === this.type && this.click && fa.nodeName(this, "input") ? (this.click(), !1) : void 0
},
_default: function(a) {
return fa.nodeName(a.target, "a")
}
},
beforeunload: {
postDispatch: function(a) {
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
}
}
}
}, fa.removeEvent = function(a, b, c) {
a.removeEventListener && a.removeEventListener(b, c)
}, fa.Event = function(a, b) {
return this instanceof fa.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? n : o) : this.type = a, b && fa.extend(this, b), this.timeStamp = a && a.timeStamp || fa.now(), void(this[fa.expando] = !0)) : new fa.Event(a, b)
}, fa.Event.prototype = {
constructor: fa.Event,
isDefaultPrevented: o,
isPropagationStopped: o,
isImmediatePropagationStopped: o,
preventDefault: function() {
var a = this.originalEvent;
this.isDefaultPrevented = n, a && a.preventDefault()
},
stopPropagation: function() {
var a = this.originalEvent;
this.isPropagationStopped = n, a && a.stopPropagation()
},
stopImmediatePropagation: function() {
var a = this.originalEvent;
this.isImmediatePropagationStopped = n, a && a.stopImmediatePropagation(), this.stopPropagation()
}
}, fa.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(a, b) {
fa.event.special[a] = {
delegateType: b,
bindType: b,
handle: function(a) {
var c, d = this,
e = a.relatedTarget,
f = a.handleObj;
return (!e || e !== d && !fa.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
}
}
}), fa.fn.extend({
on: function(a, b, c, d) {
return q(this, a, b, c, d)
},
one: function(a, b, c, d) {
return q(this, a, b, c, d, 1)
},
off: function(a, b, c) {
var d, e;
if (a && a.preventDefault && a.handleObj) return d = a.handleObj, fa(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
if ("object" == typeof a) {
for (e in a) this.off(e, b, a[e]);
return this
}
return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = o), this.each(function() {
fa.event.remove(this, a, c, b)
})
}
});
var Pa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
Qa = /<script|<style|<link/i,
Ra = /checked\s*(?:[^=]|=\s*.checked.)/i,
Sa = /^true\/(.*)/,
Ta = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
fa.extend({
htmlPrefilter: function(a) {
return a.replace(Pa, "<$1></$2>")
},
clone: function(a, b, c) {
var d, e, f, g, h = a.cloneNode(!0),
i = fa.contains(a.ownerDocument, a);
if (!(da.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || fa.isXMLDoc(a)))
for (g = k(h), f = k(a), d = 0, e = f.length; e > d; d++) v(f[d], g[d]);
if (b)
if (c)
for (f = f || k(a), g = g || k(h), d = 0, e = f.length; e > d; d++) u(f[d], g[d]);
else u(a, h);
return g = k(h, "script"), g.length > 0 && l(g, !i && k(a, "script")), h
},
cleanData: function(a) {
for (var b, c, d, e = fa.event.special, f = 0; void 0 !== (c = a[f]); f++)
if (ya(c)) {
if (b = c[za.expando]) {
if (b.events)
for (d in b.events) e[d] ? fa.event.remove(c, d) : fa.removeEvent(c, d, b.handle);
c[za.expando] = void 0
}
c[Aa.expando] && (c[Aa.expando] = void 0)
}
}
}), fa.fn.extend({
domManip: w,
detach: function(a) {
return x(this, a, !0)
},
remove: function(a) {
return x(this, a)
},
text: function(a) {
return xa(this, function(a) {
return void 0 === a ? fa.text(this) : this.empty().each(function() {
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a)
})
}, null, a, arguments.length)
},
append: function() {
return w(this, arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = r(this, a);
b.appendChild(a)
}
})
},
prepend: function() {
return w(this, arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var b = r(this, a);
b.insertBefore(a, b.firstChild)
}
})
},
before: function() {
return w(this, arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this)
})
},
after: function() {
return w(this, arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
})
},
empty: function() {
for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (fa.cleanData(k(a, !1)), a.textContent = "");
return this
},
clone: function(a, b) {
return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() {
return fa.clone(this, a, b)
})
},
html: function(a) {
return xa(this, function(a) {
var b = this[0] || {},
c = 0,
d = this.length;
if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
if ("string" == typeof a && !Qa.test(a) && !Ka[(Ia.exec(a) || ["", ""])[1].toLowerCase()]) {
a = fa.htmlPrefilter(a);
try {
for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (fa.cleanData(k(b, !1)), b.innerHTML = a);
b = 0
} catch (e) {}
}
b && this.empty().append(a)
}, null, a, arguments.length)
},
replaceWith: function() {
var a = [];
return w(this, arguments, function(b) {
var c = this.parentNode;
fa.inArray(this, a) < 0 && (fa.cleanData(k(this)), c && c.replaceChild(b, this))
}, a)
}
}), fa.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(a, b) {
fa.fn[a] = function(a) {
for (var c, d = [], e = fa(a), f = e.length - 1, g = 0; f >= g; g++) c = g === f ? this : this.clone(!0), fa(e[g])[b](c), $.apply(d, c.get());
return this.pushStack(d)
}
});
var Ua, Va = {
HTML: "block",
BODY: "block"
},
Wa = /^margin/,
Xa = new RegExp("^(" + Da + ")(?!px)[a-z%]+$", "i"),
Ya = function(b) {
var c = b.ownerDocument.defaultView;
return c.opener || (c = a), c.getComputedStyle(b)
},
Za = function(a, b, c, d) {
var e, f, g = {};
for (f in b) g[f] = a.style[f], a.style[f] = b[f];
e = c.apply(a, d || []);
for (f in b) a.style[f] = g[f];
return e
},
$a = X.documentElement;
! function() {
function b() {
h.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", h.innerHTML = "", $a.appendChild(g);
var b = a.getComputedStyle(h);
c = "1%" !== b.top, f = "2px" === b.marginLeft, d = "4px" === b.width, h.style.marginRight = "50%", e = "4px" === b.marginRight, $a.removeChild(g)
}
var c, d, e, f, g = X.createElement("div"),
h = X.createElement("div");
h.style && (h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", da.clearCloneStyle = "content-box" === h.style.backgroundClip, g.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", g.appendChild(h), fa.extend(da, {
pixelPosition: function() {
return b(), c
},
boxSizingReliable: function() {
return null == d && b(), d
},
pixelMarginRight: function() {
return null == d && b(), e
},
reliableMarginLeft: function() {
return null == d && b(), f
},
reliableMarginRight: function() {
var b, c = h.appendChild(X.createElement("div"));
return c.style.cssText = h.style.cssText = "-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", c.style.marginRight = c.style.width = "0", h.style.width = "1px", $a.appendChild(g), b = !parseFloat(a.getComputedStyle(c).marginRight), $a.removeChild(g), h.removeChild(c), b
}
}))
}();
var _a = /^(none|table(?!-c[ea]).+)/,
ab = {
position: "absolute",
visibility: "hidden",
display: "block"
},
bb = {
letterSpacing: "0",
fontWeight: "400"
},
cb = ["Webkit", "O", "Moz", "ms"],
db = X.createElement("div").style;
fa.extend({
cssHooks: {
opacity: {
get: function(a, b) {
if (b) {
var c = A(a, "opacity");
return "" === c ? "1" : c
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": "cssFloat"
},
style: function(a, b, c, d) {
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
var e, f, g, h = fa.camelCase(b),
i = a.style;
return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h), g = fa.cssHooks[b] || fa.cssHooks[h], void 0 === c ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b] : (f = typeof c, "string" === f && (e = Ea.exec(c)) && e[1] && (c = j(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (fa.cssNumber[h] ? "" : "px")), da.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0)
}
},
css: function(a, b, c, d) {
var e, f, g, h = fa.camelCase(b);
return b = fa.cssProps[h] || (fa.cssProps[h] = C(h) || h), g = fa.cssHooks[b] || fa.cssHooks[h], g && "get" in g && (e = g.get(a, !0, c)), void 0 === e && (e = A(a, b, d)), "normal" === e && b in bb && (e = bb[b]), "" === c || c ? (f = parseFloat(e), c === !0 || isFinite(f) ? f || 0 : e) : e
}
}), fa.each(["height", "width"], function(a, b) {
fa.cssHooks[b] = {
get: function(a, c, d) {
return c ? _a.test(fa.css(a, "display")) && 0 === a.offsetWidth ? Za(a, ab, function() {
return F(a, b, d)
}) : F(a, b, d) : void 0
},
set: function(a, c, d) {
var e, f = d && Ya(a),
g = d && E(a, b, d, "border-box" === fa.css(a, "boxSizing", !1, f), f);
return g && (e = Ea.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = fa.css(a, b)), D(a, c, g)
}
}
}), fa.cssHooks.marginLeft = B(da.reliableMarginLeft, function(a, b) {
return b ? (parseFloat(A(a, "marginLeft")) || a.getBoundingClientRect().left - Za(a, {
marginLeft: 0
}, function() {
return a.getBoundingClientRect().left
})) + "px" : void 0
}), fa.cssHooks.marginRight = B(da.reliableMarginRight, function(a, b) {
return b ? Za(a, {
display: "inline-block"
}, A, [a, "marginRight"]) : void 0
}), fa.each({
margin: "",
padding: "",
border: "Width"
}, function(a, b) {
fa.cssHooks[a + b] = {
expand: function(c) {
for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + Fa[d] + b] = f[d] || f[d - 2] || f[0];
return e
}
}, Wa.test(a) || (fa.cssHooks[a + b].set = D)
}), fa.fn.extend({
css: function(a, b) {
return xa(this, function(a, b, c) {
var d, e, f = {},
g = 0;
if (fa.isArray(b)) {
for (d = Ya(a), e = b.length; e > g; g++) f[b[g]] = fa.css(a, b[g], !1, d);
return f
}
return void 0 !== c ? fa.style(a, b, c) : fa.css(a, b)
}, a, b, arguments.length > 1)
},
show: function() {
return G(this, !0)
},
hide: function() {
return G(this)
},
toggle: function(a) {
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
Ga(this) ? fa(this).show() : fa(this).hide()
})
}
}), fa.Tween = H, H.prototype = {
constructor: H,
init: function(a, b, c, d, e, f) {
this.elem = a, this.prop = c, this.easing = e || fa.easing._default, this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (fa.cssNumber[c] ? "" : "px")
},
cur: function() {
var a = H.propHooks[this.prop];
return a && a.get ? a.get(this) : H.propHooks._default.get(this)
},
run: function(a) {
var b, c = H.propHooks[this.prop];
return this.options.duration ? this.pos = b = fa.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : H.propHooks._default.set(this), this
}
}, H.prototype.init.prototype = H.prototype, H.propHooks = {
_default: {
get: function(a) {
var b;
return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] ? a.elem[a.prop] : (b = fa.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0)
},
set: function(a) {
fa.fx.step[a.prop] ? fa.fx.step[a.prop](a) : 1 !== a.elem.nodeType || null == a.elem.style[fa.cssProps[a.prop]] && !fa.cssHooks[a.prop] ? a.elem[a.prop] = a.now : fa.style(a.elem, a.prop, a.now + a.unit)
}
}
}, H.propHooks.scrollTop = H.propHooks.scrollLeft = {
set: function(a) {
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
}
}, fa.easing = {
linear: function(a) {
return a
},
swing: function(a) {
return .5 - Math.cos(a * Math.PI) / 2
},
_default: "swing"
}, fa.fx = H.prototype.init, fa.fx.step = {};
var eb, fb, gb = /^(?:toggle|show|hide)$/,
hb = /queueHooks$/;
fa.Animation = fa.extend(N, {
tweeners: {
"*": [function(a, b) {
var c = this.createTween(a, b);
return j(c.elem, a, Ea.exec(b), c), c
}]
},
tweener: function(a, b) {
fa.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(va);
for (var c, d = 0, e = a.length; e > d; d++) c = a[d], N.tweeners[c] = N.tweeners[c] || [], N.tweeners[c].unshift(b)
},
prefilters: [L],
prefilter: function(a, b) {
b ? N.prefilters.unshift(a) : N.prefilters.push(a)
}
}), fa.speed = function(a, b, c) {
var d = a && "object" == typeof a ? fa.extend({}, a) : {
complete: c || !c && b || fa.isFunction(a) && a,
duration: a,
easing: c && b || b && !fa.isFunction(b) && b
};
return d.duration = fa.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in fa.fx.speeds ? fa.fx.speeds[d.duration] : fa.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() {
fa.isFunction(d.old) && d.old.call(this), d.queue && fa.dequeue(this, d.queue)
}, d
}, fa.fn.extend({
fadeTo: function(a, b, c, d) {
return this.filter(Ga).css("opacity", 0).show().end().animate({
opacity: b
}, a, c, d)
},
animate: function(a, b, c, d) {
var e = fa.isEmptyObject(a),
f = fa.speed(b, c, d),
g = function() {
var b = N(this, fa.extend({}, a), f);
(e || za.get(this, "finish")) && b.stop(!0)
};
return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
},
stop: function(a, b, c) {
var d = function(a) {
var b = a.stop;
delete a.stop, b(c)
};
return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
var b = !0,
e = null != a && a + "queueHooks",
f = fa.timers,
g = za.get(this);
if (e) g[e] && g[e].stop && d(g[e]);
else
for (e in g) g[e] && g[e].stop && hb.test(e) && d(g[e]);
for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
(b || !c) && fa.dequeue(this, a)
})
},
finish: function(a) {
return a !== !1 && (a = a || "fx"), this.each(function() {
var b, c = za.get(this),
d = c[a + "queue"],
e = c[a + "queueHooks"],
f = fa.timers,
g = d ? d.length : 0;
for (c.finish = !0, fa.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
delete c.finish
})
}
}), fa.each(["toggle", "show", "hide"], function(a, b) {
var c = fa.fn[b];
fa.fn[b] = function(a, d, e) {
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(J(b, !0), a, d, e)
}
}), fa.each({
slideDown: J("show"),
slideUp: J("hide"),
slideToggle: J("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(a, b) {
fa.fn[a] = function(a, c, d) {
return this.animate(b, a, c, d)
}
}), fa.timers = [], fa.fx.tick = function() {
var a, b = 0,
c = fa.timers;
for (eb = fa.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1);
c.length || fa.fx.stop(), eb = void 0
}, fa.fx.timer = function(a) {
fa.timers.push(a), a() ? fa.fx.start() : fa.timers.pop()
}, fa.fx.interval = 13, fa.fx.start = function() {
fb || (fb = a.setInterval(fa.fx.tick, fa.fx.interval))
}, fa.fx.stop = function() {
a.clearInterval(fb), fb = null
}, fa.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, fa.fn.delay = function(b, c) {
return b = fa.fx ? fa.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) {
var e = a.setTimeout(c, b);
d.stop = function() {
a.clearTimeout(e)
}
})
},
function() {
var a = X.createElement("input"),
b = X.createElement("select"),
c = b.appendChild(X.createElement("option"));
a.type = "checkbox", da.checkOn = "" !== a.value, da.optSelected = c.selected, b.disabled = !0, da.optDisabled = !c.disabled, a = X.createElement("input"), a.value = "t", a.type = "radio", da.radioValue = "t" === a.value
}();
var ib, jb = fa.expr.attrHandle;
fa.fn.extend({
attr: function(a, b) {
return xa(this, fa.attr, a, b, arguments.length > 1)
},
removeAttr: function(a) {
return this.each(function() {
fa.removeAttr(this, a)
})
}
}), fa.extend({
attr: function(a, b, c) {
var d, e, f = a.nodeType;
if (3 !== f && 8 !== f && 2 !== f) return "undefined" == typeof a.getAttribute ? fa.prop(a, b, c) : (1 === f && fa.isXMLDoc(a) || (b = b.toLowerCase(), e = fa.attrHooks[b] || (fa.expr.match.bool.test(b) ? ib : void 0)), void 0 !== c ? null === c ? void fa.removeAttr(a, b) : e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : (a.setAttribute(b, c + ""), c) : e && "get" in e && null !== (d = e.get(a, b)) ? d : (d = fa.find.attr(a, b), null == d ? void 0 : d))
},
attrHooks: {
type: {
set: function(a, b) {
if (!da.radioValue && "radio" === b && fa.nodeName(a, "input")) {
var c = a.value;
return a.setAttribute("type", b), c && (a.value = c), b
}
}
}
},
removeAttr: function(a, b) {
var c, d, e = 0,
f = b && b.match(va);
if (f && 1 === a.nodeType)
for (; c = f[e++];) d = fa.propFix[c] || c, fa.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c)
}
}), ib = {
set: function(a, b, c) {
return b === !1 ? fa.removeAttr(a, c) : a.setAttribute(c, c), c
}
}, fa.each(fa.expr.match.bool.source.match(/\w+/g), function(a, b) {
var c = jb[b] || fa.find.attr;
jb[b] = function(a, b, d) {
var e, f;
return d || (f = jb[b], jb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, jb[b] = f), e
}
});
var kb = /^(?:input|select|textarea|button)$/i,
lb = /^(?:a|area)$/i;
fa.fn.extend({
prop: function(a, b) {
return xa(this, fa.prop, a, b, arguments.length > 1)
},
removeProp: function(a) {
return this.each(function() {
delete this[fa.propFix[a] || a]
})
}
}), fa.extend({
prop: function(a, b, c) {
var d, e, f = a.nodeType;
if (3 !== f && 8 !== f && 2 !== f) return 1 === f && fa.isXMLDoc(a) || (b = fa.propFix[b] || b, e = fa.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
},
propHooks: {
tabIndex: {
get: function(a) {
var b = fa.find.attr(a, "tabindex");
return b ? parseInt(b, 10) : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href ? 0 : -1
}
}
},
propFix: {
"for": "htmlFor",
"class": "className"
}
}), da.optSelected || (fa.propHooks.selected = {
get: function(a) {
var b = a.parentNode;
return b && b.parentNode && b.parentNode.selectedIndex, null
}
}), fa.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
fa.propFix[this.toLowerCase()] = this
});
var mb = /[\t\r\n\f]/g;
fa.fn.extend({
addClass: function(a) {
var b, c, d, e, f, g, h, i = 0;
if (fa.isFunction(a)) return this.each(function(b) {
fa(this).addClass(a.call(this, b, O(this)))
});
if ("string" == typeof a && a)
for (b = a.match(va) || []; c = this[i++];)
if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) {
for (g = 0; f = b[g++];) d.indexOf(" " + f + " ") < 0 && (d += f + " ");
h = fa.trim(d), e !== h && c.setAttribute("class", h)
}
return this
},
removeClass: function(a) {
var b, c, d, e, f, g, h, i = 0;
if (fa.isFunction(a)) return this.each(function(b) {
fa(this).removeClass(a.call(this, b, O(this)))
});
if (!arguments.length) return this.attr("class", "");
if ("string" == typeof a && a)
for (b = a.match(va) || []; c = this[i++];)
if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) {
for (g = 0; f = b[g++];)
for (; d.indexOf(" " + f + " ") > -1;) d = d.replace(" " + f + " ", " ");
h = fa.trim(d), e !== h && c.setAttribute("class", h)
}
return this
},
toggleClass: function(a, b) {
var c = typeof a;
return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : fa.isFunction(a) ? this.each(function(c) {
fa(this).toggleClass(a.call(this, c, O(this), b), b)
}) : this.each(function() {
var b, d, e, f;
if ("string" === c)
for (d = 0, e = fa(this), f = a.match(va) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
else(void 0 === a || "boolean" === c) && (b = O(this), b && za.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 ? "" : za.get(this, "__className__") || ""))
})
},
hasClass: function(a) {
var b, c, d = 0;
for (b = " " + a + " "; c = this[d++];)
if (1 === c.nodeType && (" " + O(c) + " ").replace(mb, " ").indexOf(b) > -1) return !0;
return !1
}
});
var nb = /\r/g;
fa.fn.extend({
val: function(a) {
var b, c, d, e = this[0]; {
if (arguments.length) return d = fa.isFunction(a), this.each(function(c) {
var e;
1 === this.nodeType && (e = d ? a.call(this, c, fa(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : fa.isArray(e) && (e = fa.map(e, function(a) {
return null == a ? "" : a + ""
})), b = fa.valHooks[this.type] || fa.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
});
if (e) return b = fa.valHooks[e.type] || fa.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(nb, "") : null == c ? "" : c)
}
}
}), fa.extend({
valHooks: {
option: {
get: function(a) {
return fa.trim(a.value)
}
},
select: {
get: function(a) {
for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
if (c = d[i], (c.selected || i === e) && (da.optDisabled ? !c.disabled : null === c.getAttribute("disabled")) && (!c.parentNode.disabled || !fa.nodeName(c.parentNode, "optgroup"))) {
if (b = fa(c).val(), f) return b;
g.push(b)
}
return g
},
set: function(a, b) {
for (var c, d, e = a.options, f = fa.makeArray(b), g = e.length; g--;) d = e[g], (d.selected = fa.inArray(fa.valHooks.option.get(d), f) > -1) && (c = !0);
return c || (a.selectedIndex = -1), f
}
}
}
}), fa.each(["radio", "checkbox"], function() {
fa.valHooks[this] = {
set: function(a, b) {
return fa.isArray(b) ? a.checked = fa.inArray(fa(a).val(), b) > -1 : void 0
}
}, da.checkOn || (fa.valHooks[this].get = function(a) {
return null === a.getAttribute("value") ? "on" : a.value
})
});
var ob = /^(?:focusinfocus|focusoutblur)$/;
fa.extend(fa.event, {
trigger: function(b, c, d, e) {
var f, g, h, i, j, k, l, m = [d || X],
n = ca.call(b, "type") ? b.type : b,
o = ca.call(b, "namespace") ? b.namespace.split(".") : [];
if (g = h = d = d || X, 3 !== d.nodeType && 8 !== d.nodeType && !ob.test(n + fa.event.triggered) && (n.indexOf(".") > -1 && (o = n.split("."), n = o.shift(), o.sort()), j = n.indexOf(":") < 0 && "on" + n, b = b[fa.expando] ? b : new fa.Event(n, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = o.join("."), b.rnamespace = b.namespace ? new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : fa.makeArray(c, [b]), l = fa.event.special[n] || {}, e || !l.trigger || l.trigger.apply(d, c) !== !1)) {
if (!e && !l.noBubble && !fa.isWindow(d)) {
for (i = l.delegateType || n, ob.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g), h = g;
h === (d.ownerDocument || X) && m.push(h.defaultView || h.parentWindow || a)
}
for (f = 0;
(g = m[f++]) && !b.isPropagationStopped();) b.type = f > 1 ? i : l.bindType || n, k = (za.get(g, "events") || {})[b.type] && za.get(g, "handle"), k && k.apply(g, c), k = j && g[j], k && k.apply && ya(g) && (b.result = k.apply(g, c), b.result === !1 && b.preventDefault());
return b.type = n, e || b.isDefaultPrevented() || l._default && l._default.apply(m.pop(), c) !== !1 || !ya(d) || j && fa.isFunction(d[n]) && !fa.isWindow(d) && (h = d[j], h && (d[j] = null), fa.event.triggered = n, d[n](), fa.event.triggered = void 0, h && (d[j] = h)), b.result
}
},
simulate: function(a, b, c) {
var d = fa.extend(new fa.Event, c, {
type: a,
isSimulated: !0
});
fa.event.trigger(d, null, b), d.isDefaultPrevented() && c.preventDefault()
}
}), fa.fn.extend({
trigger: function(a, b) {
return this.each(function() {
fa.event.trigger(a, b, this)
})
},
triggerHandler: function(a, b) {
var c = this[0];
return c ? fa.event.trigger(a, b, c, !0) : void 0
}
}), fa.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
fa.fn[b] = function(a, c) {
return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
}
}), fa.fn.extend({
hover: function(a, b) {
return this.mouseenter(a).mouseleave(b || a)
}
}), da.focusin = "onfocusin" in a, da.focusin || fa.each({
focus: "focusin",
blur: "focusout"
}, function(a, b) {
var c = function(a) {
fa.event.simulate(b, a.target, fa.event.fix(a))
};
fa.event.special[b] = {
setup: function() {
var d = this.ownerDocument || this,
e = za.access(d, b);
e || d.addEventListener(a, c, !0), za.access(d, b, (e || 0) + 1)
},
teardown: function() {
var d = this.ownerDocument || this,
e = za.access(d, b) - 1;
e ? za.access(d, b, e) : (d.removeEventListener(a, c, !0), za.remove(d, b))
}
}
});
var pb = a.location,
qb = fa.now(),
rb = /\?/;
fa.parseJSON = function(a) {
return JSON.parse(a + "")
}, fa.parseXML = function(b) {
var c;
if (!b || "string" != typeof b) return null;
try {
c = (new a.DOMParser).parseFromString(b, "text/xml")
} catch (d) {
c = void 0
}
return (!c || c.getElementsByTagName("parsererror").length) && fa.error("Invalid XML: " + b), c
};
var sb = /#.*$/,
tb = /([?&])_=[^&]*/,
ub = /^(.*?):[ \t]*([^\r\n]*)$/gm,
vb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
wb = /^(?:GET|HEAD)$/,
xb = /^\/\//,
yb = {},
zb = {},
Ab = "*/".concat("*"),
Bb = X.createElement("a");
Bb.href = pb.href, fa.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: pb.href,
type: "GET",
isLocal: vb.test(pb.protocol),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": Ab,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": fa.parseJSON,
"text xml": fa.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(a, b) {
return b ? R(R(a, fa.ajaxSettings), b) : R(fa.ajaxSettings, a)
},
ajaxPrefilter: P(yb),
ajaxTransport: P(zb),
ajax: function(b, c) {
function d(b, c, d, h) {
var j, l, s, t, v, x = c;
2 !== u && (u = 2, i && a.clearTimeout(i), e = void 0, g = h || "", w.readyState = b > 0 ? 4 : 0, j = b >= 200 && 300 > b || 304 === b, d && (t = S(m, w, d)), t = T(m, t, w, j), j ? (m.ifModified && (v = w.getResponseHeader("Last-Modified"), v && (fa.lastModified[f] = v), v = w.getResponseHeader("etag"), v && (fa.etag[f] = v)), 204 === b || "HEAD" === m.type ? x = "nocontent" : 304 === b ? x = "notmodified" : (x = t.state, l = t.data, s = t.error, j = !s)) : (s = x, (b || !x) && (x = "error", 0 > b && (b = 0))), w.status = b, w.statusText = (c || x) + "", j ? p.resolveWith(n, [l, x, w]) : p.rejectWith(n, [w, x, s]), w.statusCode(r), r = void 0, k && o.trigger(j ? "ajaxSuccess" : "ajaxError", [w, m, j ? l : s]), q.fireWith(n, [w, x]), k && (o.trigger("ajaxComplete", [w, m]), --fa.active || fa.event.trigger("ajaxStop")))
}
"object" == typeof b && (c = b, b = void 0), c = c || {};
var e, f, g, h, i, j, k, l, m = fa.ajaxSetup({}, c),
n = m.context || m,
o = m.context && (n.nodeType || n.jquery) ? fa(n) : fa.event,
p = fa.Deferred(),
q = fa.Callbacks("once memory"),
r = m.statusCode || {},
s = {},
t = {},
u = 0,
v = "canceled",
w = {
readyState: 0,
getResponseHeader: function(a) {
var b;
if (2 === u) {
if (!h)
for (h = {}; b = ub.exec(g);) h[b[1].toLowerCase()] = b[2];
b = h[a.toLowerCase()]
}
return null == b ? null : b
},
getAllResponseHeaders: function() {
return 2 === u ? g : null
},
setRequestHeader: function(a, b) {
var c = a.toLowerCase();
return u || (a = t[c] = t[c] || a, s[a] = b), this
},
overrideMimeType: function(a) {
return u || (m.mimeType = a), this
},
statusCode: function(a) {
var b;
if (a)
if (2 > u)
for (b in a) r[b] = [r[b], a[b]];
else w.always(a[w.status]);
return this
},
abort: function(a) {
var b = a || v;
return e && e.abort(b), d(0, b), this
}
};
if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || pb.href) + "").replace(sb, "").replace(xb, pb.protocol + "//"), m.type = c.method || c.type || m.method || m.type, m.dataTypes = fa.trim(m.dataType || "*").toLowerCase().match(va) || [""], null == m.crossDomain) {
j = X.createElement("a");
try {
j.href = m.url, j.href = j.href, m.crossDomain = Bb.protocol + "//" + Bb.host != j.protocol + "//" + j.host
} catch (x) {
m.crossDomain = !0
}
}
if (m.data && m.processData && "string" != typeof m.data && (m.data = fa.param(m.data, m.traditional)), Q(yb, m, c, w), 2 === u) return w;
k = fa.event && m.global, k && 0 === fa.active++ && fa.event.trigger("ajaxStart"), m.type = m.type.toUpperCase(), m.hasContent = !wb.test(m.type), f = m.url, m.hasContent || (m.data && (f = m.url += (rb.test(f) ? "&" : "?") + m.data, delete m.data), m.cache === !1 && (m.url = tb.test(f) ? f.replace(tb, "$1_=" + qb++) : f + (rb.test(f) ? "&" : "?") + "_=" + qb++)), m.ifModified && (fa.lastModified[f] && w.setRequestHeader("If-Modified-Since", fa.lastModified[f]), fa.etag[f] && w.setRequestHeader("If-None-Match", fa.etag[f])), (m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader("Content-Type", m.contentType), w.setRequestHeader("Accept", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ("*" !== m.dataTypes[0] ? ", " + Ab + "; q=0.01" : "") : m.accepts["*"]);
for (l in m.headers) w.setRequestHeader(l, m.headers[l]);
if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort();
v = "abort";
for (l in {
success: 1,
error: 1,
complete: 1
}) w[l](m[l]);
if (e = Q(zb, m, c, w)) {
if (w.readyState = 1, k && o.trigger("ajaxSend", [w, m]), 2 === u) return w;
m.async && m.timeout > 0 && (i = a.setTimeout(function() {
w.abort("timeout")
}, m.timeout));
try {
u = 1, e.send(s, d)
} catch (x) {
if (!(2 > u)) throw x;
d(-1, x)
}
} else d(-1, "No Transport");
return w
},
getJSON: function(a, b, c) {
return fa.get(a, b, c, "json")
},
getScript: function(a, b) {
return fa.get(a, void 0, b, "script")
}
}), fa.each(["get", "post"], function(a, b) {
fa[b] = function(a, c, d, e) {
return fa.isFunction(c) && (e = e || d, d = c, c = void 0), fa.ajax(fa.extend({
url: a,
type: b,
dataType: e,
data: c,
success: d
}, fa.isPlainObject(a) && a))
}
}), fa._evalUrl = function(a) {
return fa.ajax({
url: a,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
})
}, fa.fn.extend({
wrapAll: function(a) {
var b;
return fa.isFunction(a) ? this.each(function(b) {
fa(this).wrapAll(a.call(this, b))
}) : (this[0] && (b = fa(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
for (var a = this; a.firstElementChild;) a = a.firstElementChild;
return a
}).append(this)), this)
},
wrapInner: function(a) {
return fa.isFunction(a) ? this.each(function(b) {
fa(this).wrapInner(a.call(this, b))
}) : this.each(function() {
var b = fa(this),
c = b.contents();
c.length ? c.wrapAll(a) : b.append(a)
})
},
wrap: function(a) {
var b = fa.isFunction(a);
return this.each(function(c) {
fa(this).wrapAll(b ? a.call(this, c) : a)
})
},
unwrap: function() {
return this.parent().each(function() {
fa.nodeName(this, "body") || fa(this).replaceWith(this.childNodes)
}).end()
}
}), fa.expr.filters.hidden = function(a) {
return !fa.expr.filters.visible(a)
}, fa.expr.filters.visible = function(a) {
return a.offsetWidth > 0 || a.offsetHeight > 0 || a.getClientRects().length > 0
};
var Cb = /%20/g,
Db = /\[\]$/,
Eb = /\r?\n/g,
Fb = /^(?:submit|button|image|reset|file)$/i,
Gb = /^(?:input|select|textarea|keygen)/i;
fa.param = function(a, b) {
var c, d = [],
e = function(a, b) {
b = fa.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
};
if (void 0 === b && (b = fa.ajaxSettings && fa.ajaxSettings.traditional), fa.isArray(a) || a.jquery && !fa.isPlainObject(a)) fa.each(a, function() {
e(this.name, this.value)
});
else
for (c in a) U(c, a[c], b, e);
return d.join("&").replace(Cb, "+")
}, fa.fn.extend({
serialize: function() {
return fa.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var a = fa.prop(this, "elements");
return a ? fa.makeArray(a) : this
}).filter(function() {
var a = this.type;
return this.name && !fa(this).is(":disabled") && Gb.test(this.nodeName) && !Fb.test(a) && (this.checked || !Ha.test(a))
}).map(function(a, b) {
var c = fa(this).val();
return null == c ? null : fa.isArray(c) ? fa.map(c, function(a) {
return {
name: b.name,
value: a.replace(Eb, "\r\n")
}
}) : {
name: b.name,
value: c.replace(Eb, "\r\n")
}
}).get()
}
}), fa.ajaxSettings.xhr = function() {
try {
return new a.XMLHttpRequest
} catch (b) {}
};
var Hb = {
0: 200,
1223: 204
},
Ib = fa.ajaxSettings.xhr();
da.cors = !!Ib && "withCredentials" in Ib, da.ajax = Ib = !!Ib, fa.ajaxTransport(function(b) {
var c, d;
return da.cors || Ib && !b.crossDomain ? {
send: function(e, f) {
var g, h = b.xhr();
if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields)
for (g in b.xhrFields) h[g] = b.xhrFields[g];
b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest");
for (g in e) h.setRequestHeader(g, e[g]);
c = function(a) {
return function() {
c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null,
"abort" === a ? h.abort() : "error" === a ? "number" != typeof h.status ? f(0, "error") : f(h.status, h.statusText) : f(Hb[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? {
binary: h.response
} : {
text: h.responseText
}, h.getAllResponseHeaders()))
}
}, h.onload = c(), d = h.onerror = c("error"), void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() {
4 === h.readyState && a.setTimeout(function() {
c && d()
})
}, c = c("abort");
try {
h.send(b.hasContent && b.data || null)
} catch (i) {
if (c) throw i
}
},
abort: function() {
c && c()
}
} : void 0
}), fa.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function(a) {
return fa.globalEval(a), a
}
}
}), fa.ajaxPrefilter("script", function(a) {
void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET")
}), fa.ajaxTransport("script", function(a) {
if (a.crossDomain) {
var b, c;
return {
send: function(d, e) {
b = fa("<script>").prop({
charset: a.scriptCharset,
src: a.url
}).on("load error", c = function(a) {
b.remove(), c = null, a && e("error" === a.type ? 404 : 200, a.type)
}), X.head.appendChild(b[0])
},
abort: function() {
c && c()
}
}
}
});
var Jb = [],
Kb = /(=)\?(?=&|$)|\?\?/;
fa.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var a = Jb.pop() || fa.expando + "_" + qb++;
return this[a] = !0, a
}
}), fa.ajaxPrefilter("json jsonp", function(b, c, d) {
var e, f, g, h = b.jsonp !== !1 && (Kb.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && Kb.test(b.data) && "data");
return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = fa.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Kb, "$1" + e) : b.jsonp !== !1 && (b.url += (rb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
return g || fa.error(e + " was not called"), g[0]
}, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
g = arguments
}, d.always(function() {
void 0 === f ? fa(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Jb.push(e)), g && fa.isFunction(f) && f(g[0]), g = f = void 0
}), "script") : void 0
}), da.createHTMLDocument = function() {
var a = X.implementation.createHTMLDocument("").body;
return a.innerHTML = "<form></form><form></form>", 2 === a.childNodes.length
}(), fa.parseHTML = function(a, b, c) {
if (!a || "string" != typeof a) return null;
"boolean" == typeof b && (c = b, b = !1), b = b || (da.createHTMLDocument ? X.implementation.createHTMLDocument("") : X);
var d = oa.exec(a),
e = !c && [];
return d ? [b.createElement(d[1])] : (d = m([a], b, e), e && e.length && fa(e).remove(), fa.merge([], d.childNodes))
};
var Lb = fa.fn.load;
fa.fn.load = function(a, b, c) {
if ("string" != typeof a && Lb) return Lb.apply(this, arguments);
var d, e, f, g = this,
h = a.indexOf(" ");
return h > -1 && (d = fa.trim(a.slice(h)), a = a.slice(0, h)), fa.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (e = "POST"), g.length > 0 && fa.ajax({
url: a,
type: e || "GET",
dataType: "html",
data: b
}).done(function(a) {
f = arguments, g.html(d ? fa("<div>").append(fa.parseHTML(a)).find(d) : a)
}).always(c && function(a, b) {
g.each(function() {
c.apply(g, f || [a.responseText, b, a])
})
}), this
}, fa.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
fa.fn[b] = function(a) {
return this.on(b, a)
}
}), fa.expr.filters.animated = function(a) {
return fa.grep(fa.timers, function(b) {
return a === b.elem
}).length
}, fa.offset = {
setOffset: function(a, b, c) {
var d, e, f, g, h, i, j, k = fa.css(a, "position"),
l = fa(a),
m = {};
"static" === k && (a.style.position = "relative"), h = l.offset(), f = fa.css(a, "top"), i = fa.css(a, "left"), j = ("absolute" === k || "fixed" === k) && (f + i).indexOf("auto") > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), fa.isFunction(b) && (b = b.call(a, c, fa.extend({}, h))), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
}
}, fa.fn.extend({
offset: function(a) {
if (arguments.length) return void 0 === a ? this : this.each(function(b) {
fa.offset.setOffset(this, a, b)
});
var b, c, d = this[0],
e = {
top: 0,
left: 0
},
f = d && d.ownerDocument;
if (f) return b = f.documentElement, fa.contains(b, d) ? (e = d.getBoundingClientRect(), c = V(f), {
top: e.top + c.pageYOffset - b.clientTop,
left: e.left + c.pageXOffset - b.clientLeft
}) : e
},
position: function() {
if (this[0]) {
var a, b, c = this[0],
d = {
top: 0,
left: 0
};
return "fixed" === fa.css(c, "position") ? b = c.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), fa.nodeName(a[0], "html") || (d = a.offset()), d.top += fa.css(a[0], "borderTopWidth", !0) - a.scrollTop(), d.left += fa.css(a[0], "borderLeftWidth", !0) - a.scrollLeft()), {
top: b.top - d.top - fa.css(c, "marginTop", !0),
left: b.left - d.left - fa.css(c, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var a = this.offsetParent; a && "static" === fa.css(a, "position");) a = a.offsetParent;
return a || $a
})
}
}), fa.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(a, b) {
var c = "pageYOffset" === b;
fa.fn[a] = function(d) {
return xa(this, function(a, d, e) {
var f = V(a);
return void 0 === e ? f ? f[b] : a[d] : void(f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e)
}, a, d, arguments.length)
}
}), fa.each(["top", "left"], function(a, b) {
fa.cssHooks[b] = B(da.pixelPosition, function(a, c) {
return c ? (c = A(a, b), Xa.test(c) ? fa(a).position()[b] + "px" : c) : void 0
})
}), fa.each({
Height: "height",
Width: "width"
}, function(a, b) {
fa.each({
padding: "inner" + a,
content: b,
"": "outer" + a
}, function(c, d) {
fa.fn[d] = function(d, e) {
var f = arguments.length && (c || "boolean" != typeof d),
g = c || (d === !0 || e === !0 ? "margin" : "border");
return xa(this, function(b, c, d) {
var e;
return fa.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? fa.css(b, c, g) : fa.style(b, c, d, g)
}, b, f ? d : void 0, f, null)
}
})
}), fa.fn.extend({
bind: function(a, b, c) {
return this.on(a, null, b, c)
},
unbind: function(a, b) {
return this.off(a, null, b)
},
delegate: function(a, b, c, d) {
return this.on(b, a, c, d)
},
undelegate: function(a, b, c) {
return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
},
size: function() {
return this.length
}
}), fa.fn.andSelf = fa.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
return fa
});
var Mb = a.jQuery,
Nb = a.$;
return fa.noConflict = function(b) {
return a.$ === fa && (a.$ = Nb), b && a.jQuery === fa && (a.jQuery = Mb), fa
}, b || (a.jQuery = a.$ = fa), fa
}),
function(a, b, c) {
"use strict";
function d(a, b) {
return b = b || Error,
function() {
var c, d, e = 2,
f = arguments,
g = f[0],
h = "[" + (a ? a + ":" : "") + g + "] ",
i = f[1];
for (h += i.replace(/\{\d+\}/g, function(a) {
var b = +a.slice(1, -1),
c = b + e;
return c < f.length ? ta(f[c]) : a
}), h += "\nhttp://errors.angularjs.org/1.4.9/" + (a ? a + "/" : "") + g, d = e, c = "?"; d < f.length; d++, c = "&") h += c + "p" + (d - e) + "=" + encodeURIComponent(ta(f[d]));
return new b(h)
}
}
function e(a) {
if (null == a || C(a)) return !1;
if (Qd(a) || x(a) || Ed && a instanceof Ed) return !0;
var b = "length" in Object(a) && a.length;
return y(b) && (b >= 0 && (b - 1 in a || a instanceof Array) || "function" == typeof a.item)
}
function f(a, b, c) {
var d, g;
if (a)
if (A(a))
for (d in a) "prototype" == d || "length" == d || "name" == d || a.hasOwnProperty && !a.hasOwnProperty(d) || b.call(c, a[d], d, a);
else if (Qd(a) || e(a)) {
var h = "object" != typeof a;
for (d = 0, g = a.length; g > d; d++)(h || d in a) && b.call(c, a[d], d, a)
} else if (a.forEach && a.forEach !== f) a.forEach(b, c, a);
else if (w(a))
for (d in a) b.call(c, a[d], d, a);
else if ("function" == typeof a.hasOwnProperty)
for (d in a) a.hasOwnProperty(d) && b.call(c, a[d], d, a);
else
for (d in a) zd.call(a, d) && b.call(c, a[d], d, a);
return a
}
function g(a, b, c) {
for (var d = Object.keys(a).sort(), e = 0; e < d.length; e++) b.call(c, a[d[e]], d[e]);
return d
}
function h(a) {
return function(b, c) {
a(c, b)
}
}
function i() {
return ++Od
}
function j(a, b) {
b ? a.$$hashKey = b : delete a.$$hashKey
}
function k(a, b, c) {
for (var d = a.$$hashKey, e = 0, f = b.length; f > e; ++e) {
var g = b[e];
if (v(g) || A(g))
for (var h = Object.keys(g), i = 0, l = h.length; l > i; i++) {
var m = h[i],
n = g[m];
c && v(n) ? z(n) ? a[m] = new Date(n.valueOf()) : B(n) ? a[m] = new RegExp(n) : n.nodeName ? a[m] = n.cloneNode(!0) : K(n) ? a[m] = n.clone() : (v(a[m]) || (a[m] = Qd(n) ? [] : {}), k(a[m], [n], !0)) : a[m] = n
}
}
return j(a, d), a
}
function l(a) {
return k(a, Hd.call(arguments, 1), !1)
}
function m(a) {
return k(a, Hd.call(arguments, 1), !0)
}
function n(a) {
return parseInt(a, 10)
}
function o(a, b) {
return l(Object.create(a), b)
}
function p() {}
function q(a) {
return a
}
function r(a) {
return function() {
return a
}
}
function s(a) {
return A(a.toString) && a.toString !== Kd
}
function t(a) {
return "undefined" == typeof a
}
function u(a) {
return "undefined" != typeof a
}
function v(a) {
return null !== a && "object" == typeof a
}
function w(a) {
return null !== a && "object" == typeof a && !Ld(a)
}
function x(a) {
return "string" == typeof a
}
function y(a) {
return "number" == typeof a
}
function z(a) {
return "[object Date]" === Kd.call(a)
}
function A(a) {
return "function" == typeof a
}
function B(a) {
return "[object RegExp]" === Kd.call(a)
}
function C(a) {
return a && a.window === a
}
function D(a) {
return a && a.$evalAsync && a.$watch
}
function E(a) {
return "[object File]" === Kd.call(a)
}
function F(a) {
return "[object FormData]" === Kd.call(a)
}
function G(a) {
return "[object Blob]" === Kd.call(a)
}
function H(a) {
return "boolean" == typeof a
}
function I(a) {
return a && A(a.then)
}
function J(a) {
return a && y(a.length) && Rd.test(Kd.call(a))
}
function K(a) {
return !(!a || !(a.nodeName || a.prop && a.attr && a.find))
}
function L(a) {
var b, c = {},
d = a.split(",");
for (b = 0; b < d.length; b++) c[d[b]] = !0;
return c
}
function M(a) {
return yd(a.nodeName || a[0] && a[0].nodeName)
}
function N(a, b) {
var c = a.indexOf(b);
return c >= 0 && a.splice(c, 1), c
}
function O(a, b) {
function c(a, b) {
var c, e = b.$$hashKey;
if (Qd(a))
for (var f = 0, g = a.length; g > f; f++) b.push(d(a[f]));
else if (w(a))
for (c in a) b[c] = d(a[c]);
else if (a && "function" == typeof a.hasOwnProperty)
for (c in a) a.hasOwnProperty(c) && (b[c] = d(a[c]));
else
for (c in a) zd.call(a, c) && (b[c] = d(a[c]));
return j(b, e), b
}
function d(a) {
if (!v(a)) return a;
var b = e.indexOf(a);
if (-1 !== b) return g[b];
if (C(a) || D(a)) throw Md("cpws", "Can't copy! Making copies of Window or Scope instances is not supported.");
var d, f = !1;
return Qd(a) ? (d = [], f = !0) : J(a) ? d = new a.constructor(a) : z(a) ? d = new Date(a.getTime()) : B(a) ? (d = new RegExp(a.source, a.toString().match(/[^\/]*$/)[0]), d.lastIndex = a.lastIndex) : A(a.cloneNode) ? d = a.cloneNode(!0) : (d = Object.create(Ld(a)), f = !0), e.push(a), g.push(d), f ? c(a, d) : d
}
var e = [],
g = [];
if (b) {
if (J(b)) throw Md("cpta", "Can't copy! TypedArray destination cannot be mutated.");
if (a === b) throw Md("cpi", "Can't copy! Source and destination are identical.");
return Qd(b) ? b.length = 0 : f(b, function(a, c) {
"$$hashKey" !== c && delete b[c]
}), e.push(a), g.push(b), c(a, b)
}
return d(a)
}
function P(a, b) {
if (Qd(a)) {
b = b || [];
for (var c = 0, d = a.length; d > c; c++) b[c] = a[c]
} else if (v(a)) {
b = b || {};
for (var e in a)("$" !== e.charAt(0) || "$" !== e.charAt(1)) && (b[e] = a[e])
}
return b || a
}
function Q(a, b) {
if (a === b) return !0;
if (null === a || null === b) return !1;
if (a !== a && b !== b) return !0;
var c, d, e, f = typeof a,
g = typeof b;
if (f == g && "object" == f) {
if (!Qd(a)) {
if (z(a)) return z(b) ? Q(a.getTime(), b.getTime()) : !1;
if (B(a)) return B(b) ? a.toString() == b.toString() : !1;
if (D(a) || D(b) || C(a) || C(b) || Qd(b) || z(b) || B(b)) return !1;
e = qa();
for (d in a)
if ("$" !== d.charAt(0) && !A(a[d])) {
if (!Q(a[d], b[d])) return !1;
e[d] = !0
}
for (d in b)
if (!(d in e) && "$" !== d.charAt(0) && u(b[d]) && !A(b[d])) return !1;
return !0
}
if (!Qd(b)) return !1;
if ((c = a.length) == b.length) {
for (d = 0; c > d; d++)
if (!Q(a[d], b[d])) return !1;
return !0
}
}
return !1
}
function R(a, b, c) {
return a.concat(Hd.call(b, c))
}
function S(a, b) {
return Hd.call(a, b || 0)
}
function T(a, b) {
var c = arguments.length > 2 ? S(arguments, 2) : [];
return !A(b) || b instanceof RegExp ? b : c.length ? function() {
return arguments.length ? b.apply(a, R(c, arguments, 0)) : b.apply(a, c)
} : function() {
return arguments.length ? b.apply(a, arguments) : b.call(a)
}
}
function U(a, d) {
var e = d;
return "string" == typeof a && "$" === a.charAt(0) && "$" === a.charAt(1) ? e = c : C(d) ? e = "$WINDOW" : d && b === d ? e = "$DOCUMENT" : D(d) && (e = "$SCOPE"), e
}
function V(a, b) {
return "undefined" == typeof a ? c : (y(b) || (b = b ? 2 : null), JSON.stringify(a, U, b))
}
function W(a) {
return x(a) ? JSON.parse(a) : a
}
function X(a, b) {
var c = Date.parse("Jan 01, 1970 00:00:00 " + a) / 6e4;
return isNaN(c) ? b : c
}
function Y(a, b) {
return a = new Date(a.getTime()), a.setMinutes(a.getMinutes() + b), a
}
function Z(a, b, c) {
c = c ? -1 : 1;
var d = X(b, a.getTimezoneOffset());
return Y(a, c * (d - a.getTimezoneOffset()))
}
function $(a) {
a = Ed(a).clone();
try {
a.empty()
} catch (b) {}
var c = Ed("<div>").append(a).html();
try {
return a[0].nodeType === _d ? yd(c) : c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/, function(a, b) {
return "<" + yd(b)
})
} catch (b) {
return yd(c)
}
}
function _(a) {
try {
return decodeURIComponent(a)
} catch (b) {}
}
function aa(a) {
var b = {};
return f((a || "").split("&"), function(a) {
var c, d, e;
a && (d = a = a.replace(/\+/g, "%20"), c = a.indexOf("="), -1 !== c && (d = a.substring(0, c), e = a.substring(c + 1)), d = _(d), u(d) && (e = u(e) ? _(e) : !0, zd.call(b, d) ? Qd(b[d]) ? b[d].push(e) : b[d] = [b[d], e] : b[d] = e))
}), b
}
function ba(a) {
var b = [];
return f(a, function(a, c) {
Qd(a) ? f(a, function(a) {
b.push(da(c, !0) + (a === !0 ? "" : "=" + da(a, !0)))
}) : b.push(da(c, !0) + (a === !0 ? "" : "=" + da(a, !0)))
}), b.length ? b.join("&") : ""
}
function ca(a) {
return da(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
}
function da(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 ea(a, b) {
var c, d, e = Wd.length;
for (d = 0; e > d; ++d)
if (c = Wd[d] + b, x(c = a.getAttribute(c))) return c;
return null
}
function fa(a, b) {
var c, d, e = {};
f(Wd, function(b) {
var e = b + "app";
!c && a.hasAttribute && a.hasAttribute(e) && (c = a, d = a.getAttribute(e))
}), f(Wd, function(b) {
var e, f = b + "app";
!c && (e = a.querySelector("[" + f.replace(":", "\\:") + "]")) && (c = e, d = e.getAttribute(f))
}), c && (e.strictDi = null !== ea(c, "strict-di"), b(c, d ? [d] : [], e))
}
function ga(c, d, e) {
v(e) || (e = {});
var g = {
strictDi: !1
};
e = l(g, e);
var h = function() {
if (c = Ed(c), c.injector()) {
var a = c[0] === b ? "document" : $(c);
throw Md("btstrpd", "App Already Bootstrapped with this Element '{0}'", a.replace(/</, "&lt;").replace(/>/, "&gt;"))
}
d = d || [], d.unshift(["$provide", function(a) {
a.value("$rootElement", c)
}]), e.debugInfoEnabled && d.push(["$compileProvider", function(a) {
a.debugInfoEnabled(!0)
}]), d.unshift("ng");
var f = ab(d, e.strictDi);
return f.invoke(["$rootScope", "$rootElement", "$compile", "$injector", function(a, b, c, d) {
a.$apply(function() {
b.data("$injector", d), c(b)(a)
})
}]), f
},
i = /^NG_ENABLE_DEBUG_INFO!/,
j = /^NG_DEFER_BOOTSTRAP!/;
return a && i.test(a.name) && (e.debugInfoEnabled = !0, a.name = a.name.replace(i, "")), a && !j.test(a.name) ? h() : (a.name = a.name.replace(j, ""), Nd.resumeBootstrap = function(a) {
return f(a, function(a) {
d.push(a)
}), h()
}, void(A(Nd.resumeDeferredBootstrap) && Nd.resumeDeferredBootstrap()))
}
function ha() {
a.name = "NG_ENABLE_DEBUG_INFO!" + a.name, a.location.reload()
}
function ia(a) {
var b = Nd.element(a).injector();
if (!b) throw Md("test", "no injector found for element argument to getTestability");
return b.get("$$testability")
}
function ja(a, b) {
return b = b || "_", a.replace(Xd, function(a, c) {
return (c ? b : "") + a.toLowerCase()
})
}
function ka() {
var b;
if (!Yd) {
var d = Vd();
Fd = t(d) ? a.jQuery : d ? a[d] : c, Fd && Fd.fn.on ? (Ed = Fd, l(Fd.fn, {
scope: se.scope,
isolateScope: se.isolateScope,
controller: se.controller,
injector: se.injector,
inheritedData: se.inheritedData
}), b = Fd.cleanData, Fd.cleanData = function(a) {
var c;
if (Pd) Pd = !1;
else
for (var d, e = 0; null != (d = a[e]); e++) c = Fd._data(d, "events"), c && c.$destroy && Fd(d).triggerHandler("$destroy");
b(a)
}) : Ed = Ca, Nd.element = Ed, Yd = !0
}
}
function la(a, b, c) {
if (!a) throw Md("areq", "Argument '{0}' is {1}", b || "?", c || "required");
return a
}
function ma(a, b, c) {
return c && Qd(a) && (a = a[a.length - 1]), la(A(a), b, "not a function, got " + (a && "object" == typeof a ? a.constructor.name || "Object" : typeof a)), a
}
function na(a, b) {
if ("hasOwnProperty" === a) throw Md("badname", "hasOwnProperty is not a valid {0} name", b)
}
function oa(a, b, c) {
if (!b) return a;
for (var d, e = b.split("."), f = a, g = e.length, h = 0; g > h; h++) d = e[h], a && (a = (f = a)[d]);
return !c && A(a) ? T(f, a) : a
}
function pa(a) {
for (var b, c = a[0], d = a[a.length - 1], e = 1; c !== d && (c = c.nextSibling); e++)(b || a[e] !== c) && (b || (b = Ed(Hd.call(a, 0, e))), b.push(c));
return b || a
}
function qa() {
return Object.create(null)
}
function ra(a) {
function b(a, b, c) {
return a[b] || (a[b] = c())
}
var c = d("$injector"),
e = d("ng"),
f = b(a, "angular", Object);
return f.$$minErr = f.$$minErr || d, b(f, "module", function() {
var a = {};
return function(d, f, g) {
var h = function(a, b) {
if ("hasOwnProperty" === a) throw e("badname", "hasOwnProperty is not a valid {0} name", b)
};
return h(d, "module"), f && a.hasOwnProperty(d) && (a[d] = null), b(a, d, function() {
function a(a, b, c, d) {
return d || (d = e),
function() {
return d[c || "push"]([a, b, arguments]), k
}
}
function b(a, b) {
return function(c, f) {
return f && A(f) && (f.$$moduleName = d), e.push([a, b, arguments]), k
}
}
if (!f) throw c("nomod", "Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.", d);
var e = [],
h = [],
i = [],
j = a("$injector", "invoke", "push", h),
k = {
_invokeQueue: e,
_configBlocks: h,
_runBlocks: i,
requires: f,
name: d,
provider: b("$provide", "provider"),
factory: b("$provide", "factory"),
service: b("$provide", "service"),
value: a("$provide", "value"),
constant: a("$provide", "constant", "unshift"),
decorator: b("$provide", "decorator"),
animation: b("$animateProvider", "register"),
filter: b("$filterProvider", "register"),
controller: b("$controllerProvider", "register"),
directive: b("$compileProvider", "directive"),
config: j,
run: function(a) {
return i.push(a), this
}
};
return g && j(g), k
})
}
})
}
function sa(a) {
var b = [];
return JSON.stringify(a, function(a, c) {
if (c = U(a, c), v(c)) {
if (b.indexOf(c) >= 0) return "...";
b.push(c)
}
return c
})
}
function ta(a) {
return "function" == typeof a ? a.toString().replace(/ \{[\s\S]*$/, "") : t(a) ? "undefined" : "string" != typeof a ? sa(a) : a
}
function ua(b) {
l(b, {
bootstrap: ga,
copy: O,
extend: l,
merge: m,
equals: Q,
element: Ed,
forEach: f,
injector: ab,
noop: p,
bind: T,
toJson: V,
fromJson: W,
identity: q,
isUndefined: t,
isDefined: u,
isString: x,
isFunction: A,
isObject: v,
isNumber: y,
isElement: K,
isArray: Qd,
version: de,
isDate: z,
lowercase: yd,
uppercase: Ad,
callbacks: {
counter: 0
},
getTestability: ia,
$$minErr: d,
$$csp: Ud,
reloadWithDebugInfo: ha
}), (Gd = ra(a))("ng", ["ngLocale"], ["$provide", function(a) {
a.provider({
$$sanitizeUri: sc
}), a.provider("$compile", kb).directive({
a: xf,
input: Of,
textarea: Of,
form: Cf,
script: Gg,
select: Jg,
style: Lg,
option: Kg,
ngBind: Rf,
ngBindHtml: Tf,
ngBindTemplate: Sf,
ngClass: Vf,
ngClassEven: Xf,
ngClassOdd: Wf,
ngCloak: Yf,
ngController: Zf,
ngForm: Df,
ngHide: Ag,
ngIf: ag,
ngInclude: bg,
ngInit: dg,
ngNonBindable: rg,
ngPluralize: vg,
ngRepeat: wg,
ngShow: zg,
ngStyle: Bg,
ngSwitch: Cg,
ngSwitchWhen: Dg,
ngSwitchDefault: Eg,
ngOptions: ug,
ngTransclude: Fg,
ngModel: og,
ngList: eg,
ngChange: Uf,
pattern: Ng,
ngPattern: Ng,
required: Mg,
ngRequired: Mg,
minlength: Pg,
ngMinlength: Pg,
maxlength: Og,
ngMaxlength: Og,
ngValue: Qf,
ngModelOptions: qg
}).directive({
ngInclude: cg
}).directive(yf).directive($f), a.provider({
$anchorScroll: bb,
$animate: He,
$animateCss: Ke,
$$animateJs: Fe,
$$animateQueue: Ge,
$$AnimateRunner: Je,
$$animateAsyncRun: Ie,
$browser: hb,
$cacheFactory: ib,
$controller: pb,
$document: qb,
$exceptionHandler: rb,
$filter: Gc,
$$forceReflow: Pe,
$interpolate: Fb,
$interval: Gb,
$http: Bb,
$httpParamSerializer: tb,
$httpParamSerializerJQLike: ub,
$httpBackend: Db,
$xhrFactory: Cb,
$location: Ub,
$log: Vb,
$parse: mc,
$rootScope: rc,
$q: nc,
$$q: oc,
$sce: wc,
$sceDelegate: vc,
$sniffer: xc,
$templateCache: jb,
$templateRequest: yc,
$$testability: zc,
$timeout: Ac,
$window: Dc,
$$rAF: qc,
$$jqLite: Xa,
$$HashMap: we,
$$cookieReader: Fc
})
}])
}
function va() {
return ++fe
}
function wa(a) {
return a.replace(ie, function(a, b, c, d) {
return d ? c.toUpperCase() : c
}).replace(je, "Moz$1")
}
function xa(a) {
return !ne.test(a)
}
function ya(a) {
var b = a.nodeType;
return b === Zd || !b || b === be
}
function za(a) {
for (var b in ee[a.ng339]) return !0;
return !1
}
function Aa(a, b) {
var c, d, e, g, h = b.createDocumentFragment(),
i = [];
if (xa(a)) i.push(b.createTextNode(a));
else {
for (c = c || h.appendChild(b.createElement("div")), d = (oe.exec(a) || ["", ""])[1].toLowerCase(), e = qe[d] || qe._default, c.innerHTML = e[1] + a.replace(pe, "<$1></$2>") + e[2], g = e[0]; g--;) c = c.lastChild;
i = R(i, c.childNodes), c = h.firstChild, c.textContent = ""
}
return h.textContent = "", h.innerHTML = "", f(i, function(a) {
h.appendChild(a)
}), h
}
function Ba(a, c) {
c = c || b;
var d;
return (d = me.exec(a)) ? [c.createElement(d[1])] : (d = Aa(a, c)) ? d.childNodes : []
}
function Ca(a) {
if (a instanceof Ca) return a;
var b;
if (x(a) && (a = Sd(a), b = !0), !(this instanceof Ca)) {
if (b && "<" != a.charAt(0)) throw le("nosel", "Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");
return new Ca(a)
}
b ? Ma(this, Ba(a)) : Ma(this, a)
}
function Da(a) {
return a.cloneNode(!0)
}
function Ea(a, b) {
if (b || Ga(a), a.querySelectorAll)
for (var c = a.querySelectorAll("*"), d = 0, e = c.length; e > d; d++) Ga(c[d])
}
function Fa(a, b, c, d) {
if (u(d)) throw le("offargs", "jqLite#off() does not support the `selector` argument");
var e = Ha(a),
g = e && e.events,
h = e && e.handle;
if (h)
if (b) {
var i = function(b) {
var d = g[b];
u(c) && N(d || [], c), u(c) && d && d.length > 0 || (he(a, b, h), delete g[b])
};
f(b.split(" "), function(a) {
i(a), ke[a] && i(ke[a])
})
} else
for (b in g) "$destroy" !== b && he(a, b, h), delete g[b]
}
function Ga(a, b) {
var d = a.ng339,
e = d && ee[d];
if (e) {
if (b) return void delete e.data[b];
e.handle && (e.events.$destroy && e.handle({}, "$destroy"), Fa(a)), delete ee[d], a.ng339 = c
}
}
function Ha(a, b) {
var d = a.ng339,
e = d && ee[d];
return b && !e && (a.ng339 = d = va(), e = ee[d] = {
events: {},
data: {},
handle: c
}), e
}
function Ia(a, b, c) {
if (ya(a)) {
var d = u(c),
e = !d && b && !v(b),
f = !b,
g = Ha(a, !e),
h = g && g.data;
if (d) h[b] = c;
else {
if (f) return h;
if (e) return h && h[b];
l(h, b)
}
}
}
function Ja(a, b) {
return a.getAttribute ? (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").indexOf(" " + b + " ") > -1 : !1
}
function Ka(a, b) {
b && a.setAttribute && f(b.split(" "), function(b) {
a.setAttribute("class", Sd((" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ").replace(" " + Sd(b) + " ", " ")))
})
}
function La(a, b) {
if (b && a.setAttribute) {
var c = (" " + (a.getAttribute("class") || "") + " ").replace(/[\n\t]/g, " ");
f(b.split(" "), function(a) {
a = Sd(a), -1 === c.indexOf(" " + a + " ") && (c += a + " ")
}), a.setAttribute("class", Sd(c))
}
}
function Ma(a, b) {
if (b)
if (b.nodeType) a[a.length++] = b;
else {
var c = b.length;
if ("number" == typeof c && b.window !== b) {
if (c)
for (var d = 0; c > d; d++) a[a.length++] = b[d]
} else a[a.length++] = b
}
}
function Na(a, b) {
return Oa(a, "$" + (b || "ngController") + "Controller")
}
function Oa(a, b, c) {
a.nodeType == be && (a = a.documentElement);
for (var d = Qd(b) ? b : [b]; a;) {
for (var e = 0, f = d.length; f > e; e++)
if (u(c = Ed.data(a, d[e]))) return c;
a = a.parentNode || a.nodeType === ce && a.host
}
}
function Pa(a) {
for (Ea(a, !0); a.firstChild;) a.removeChild(a.firstChild)
}
function Qa(a, b) {
b || Ea(a);
var c = a.parentNode;
c && c.removeChild(a)
}
function Ra(b, c) {
c = c || a, "complete" === c.document.readyState ? c.setTimeout(b) : Ed(c).on("load", b)
}
function Sa(a, b) {
var c = te[b.toLowerCase()];
return c && ue[M(a)] && c
}
function Ta(a) {
return ve[a]
}
function Ua(a, b) {
var c = function(c, d) {
c.isDefaultPrevented = function() {
return c.defaultPrevented
};
var e = b[d || c.type],
f = e ? e.length : 0;
if (f) {
if (t(c.immediatePropagationStopped)) {
var g = c.stopImmediatePropagation;
c.stopImmediatePropagation = function() {
c.immediatePropagationStopped = !0, c.stopPropagation && c.stopPropagation(), g && g.call(c)
}
}
c.isImmediatePropagationStopped = function() {
return c.immediatePropagationStopped === !0
};
var h = e.specialHandlerWrapper || Va;
f > 1 && (e = P(e));
for (var i = 0; f > i; i++) c.isImmediatePropagationStopped() || h(a, c, e[i])
}
};
return c.elem = a, c
}
function Va(a, b, c) {
c.call(a, b)
}
function Wa(a, b, c) {
var d = b.relatedTarget;
(!d || d !== a && !re.call(a, d)) && c.call(a, b)
}
function Xa() {
this.$get = function() {
return l(Ca, {
hasClass: function(a, b) {
return a.attr && (a = a[0]), Ja(a, b)
},
addClass: function(a, b) {
return a.attr && (a = a[0]), La(a, b)
},
removeClass: function(a, b) {
return a.attr && (a = a[0]), Ka(a, b)
}
})
}
}
function Ya(a, b) {
var c = a && a.$$hashKey;
if (c) return "function" == typeof c && (c = a.$$hashKey()), c;
var d = typeof a;
return c = "function" == d || "object" == d && null !== a ? a.$$hashKey = d + ":" + (b || i)() : d + ":" + a
}
function Za(a, b) {
if (b) {
var c = 0;
this.nextUid = function() {
return ++c
}
}
f(a, this.put, this)
}
function $a(a) {
var b = a.toString().replace(Ae, ""),
c = b.match(xe);
return c ? "function(" + (c[1] || "").replace(/[\s\r\n]+/, " ") + ")" : "fn"
}
function _a(a, b, c) {
var d, e, g, h;
if ("function" == typeof a) {
if (!(d = a.$inject)) {
if (d = [], a.length) {
if (b) throw x(c) && c || (c = a.name || $a(a)), Be("strictdi", "{0} is not using explicit annotation and cannot be invoked in strict mode", c);
e = a.toString().replace(Ae, ""), g = e.match(xe), f(g[1].split(ye), function(a) {
a.replace(ze, function(a, b, c) {
d.push(c)
})
})
}
a.$inject = d
}
} else Qd(a) ? (h = a.length - 1, ma(a[h], "fn"), d = a.slice(0, h)) : ma(a, "fn", !0);
return d
}
function ab(a, b) {
function d(a) {
return function(b, c) {
return v(b) ? void f(b, h(a)) : a(b, c)
}
}
function e(a, b) {
if (na(a, "service"), (A(b) || Qd(b)) && (b = y.instantiate(b)), !b.$get) throw Be("pget", "Provider '{0}' must define $get factory method.", a);
return w[a + q] = b
}
function g(a, b) {
return function() {
var c = B.invoke(b, this);
if (t(c)) throw Be("undef", "Provider '{0}' must return a value from $get factory method.", a);
return c
}
}
function i(a, b, c) {
return e(a, {
$get: c !== !1 ? g(a, b) : b
})
}
function j(a, b) {
return i(a, ["$injector", function(a) {
return a.instantiate(b)
}])
}
function k(a, b) {
return i(a, r(b), !1)
}
function l(a, b) {
na(a, "constant"), w[a] = b, z[a] = b
}
function m(a, b) {
var c = y.get(a + q),
d = c.$get;
c.$get = function() {
var a = B.invoke(d, c);
return B.invoke(b, null, {
$delegate: a
})
}
}
function n(a) {
la(t(a) || Qd(a), "modulesToLoad", "not an array");
var b, c = [];
return f(a, function(a) {
function d(a) {
var b, c;
for (b = 0, c = a.length; c > b; b++) {
var d = a[b],
e = y.get(d[0]);
e[d[1]].apply(e, d[2])
}
}
if (!u.get(a)) {
u.put(a, !0);
try {
x(a) ? (b = Gd(a), c = c.concat(n(b.requires)).concat(b._runBlocks), d(b._invokeQueue), d(b._configBlocks)) : A(a) ? c.push(y.invoke(a)) : Qd(a) ? c.push(y.invoke(a)) : ma(a, "module")
} catch (e) {
throw Qd(a) && (a = a[a.length - 1]), e.message && e.stack && -1 == e.stack.indexOf(e.message) && (e = e.message + "\n" + e.stack), Be("modulerr", "Failed to instantiate module {0} due to:\n{1}", a, e.stack || e.message || e)
}
}
}), c
}
function o(a, c) {
function d(b, d) {
if (a.hasOwnProperty(b)) {
if (a[b] === p) throw Be("cdep", "Circular dependency found: {0}", b + " <- " + s.join(" <- "));
return a[b]
}
try {
return s.unshift(b), a[b] = p, a[b] = c(b, d)
} catch (e) {
throw a[b] === p && delete a[b], e
} finally {
s.shift()
}
}
function e(a, c, e, f) {
"string" == typeof e && (f = e, e = null);
var g, h, i, j = [],
k = ab.$$annotate(a, b, f);
for (h = 0, g = k.length; g > h; h++) {
if (i = k[h], "string" != typeof i) throw Be("itkn", "Incorrect injection token! Expected service name as string, got {0}", i);
j.push(e && e.hasOwnProperty(i) ? e[i] : d(i, f))
}
return Qd(a) && (a = a[g]), a.apply(c, j)
}
function f(a, b, c) {
var d = Object.create((Qd(a) ? a[a.length - 1] : a).prototype || null),
f = e(a, d, b, c);
return v(f) || A(f) ? f : d
}
return {
invoke: e,
instantiate: f,
get: d,
annotate: ab.$$annotate,
has: function(b) {
return w.hasOwnProperty(b + q) || a.hasOwnProperty(b)
}
}
}
b = b === !0;
var p = {},
q = "Provider",
s = [],
u = new Za([], !0),
w = {
$provide: {
provider: d(e),
factory: d(i),
service: d(j),
value: d(k),
constant: d(l),
decorator: m
}
},
y = w.$injector = o(w, function(a, b) {
throw Nd.isString(b) && s.push(b), Be("unpr", "Unknown provider: {0}", s.join(" <- "))
}),
z = {},
B = z.$injector = o(z, function(a, b) {
var d = y.get(a + q, b);
return B.invoke(d.$get, d, c, a)
});
return f(n(a), function(a) {
a && B.invoke(a)
}), B
}
function bb() {
var a = !0;
this.disableAutoScrolling = function() {
a = !1
}, this.$get = ["$window", "$location", "$rootScope", function(b, c, d) {
function e(a) {
var b = null;
return Array.prototype.some.call(a, function(a) {
return "a" === M(a) ? (b = a, !0) : void 0
}), b
}
function f() {
var a = h.yOffset;
if (A(a)) a = a();
else if (K(a)) {
var c = a[0],
d = b.getComputedStyle(c);
a = "fixed" !== d.position ? 0 : c.getBoundingClientRect().bottom
} else y(a) || (a = 0);
return a
}
function g(a) {
if (a) {
a.scrollIntoView();
var c = f();
if (c) {
var d = a.getBoundingClientRect().top;
b.scrollBy(0, d - c)
}
} else b.scrollTo(0, 0)
}
function h(a) {
a = x(a) ? a : c.hash();
var b;
a ? (b = i.getElementById(a)) ? g(b) : (b = e(i.getElementsByName(a))) ? g(b) : "top" === a && g(null) : g(null)
}
var i = b.document;
return a && d.$watch(function() {
return c.hash()
}, function(a, b) {
(a !== b || "" !== a) && Ra(function() {
d.$evalAsync(h)
})
}), h
}]
}
function cb(a, b) {
return a || b ? a ? b ? (Qd(a) && (a = a.join(" ")), Qd(b) && (b = b.join(" ")), a + " " + b) : a : b : ""
}
function db(a) {
for (var b = 0; b < a.length; b++) {
var c = a[b];
if (c.nodeType === De) return c
}
}
function eb(a) {
x(a) && (a = a.split(" "));
var b = qa();
return f(a, function(a) {
a.length && (b[a] = !0)
}), b
}
function fb(a) {
return v(a) ? a : {}
}
function gb(a, b, c, d) {
function e(a) {
try {
a.apply(null, S(arguments, 1))
} finally {
if (s--, 0 === s)
for (; u.length;) try {
u.pop()()
} catch (b) {
c.error(b)
}
}
}
function g(a) {
var b = a.indexOf("#");
return -1 === b ? "" : a.substr(b)
}
function h() {
z = null, j(), k()
}
function i() {
try {
return n.state
} catch (a) {}
}
function j() {
v = i(), v = t(v) ? null : v, Q(v, C) && (v = C), C = v
}
function k() {
(x !== l.url() || w !== v) && (x = l.url(), w = v, f(A, function(a) {
a(l.url(), v)
}))
}
var l = this,
m = (b[0], a.location),
n = a.history,
o = a.setTimeout,
q = a.clearTimeout,
r = {};
l.isMock = !1;
var s = 0,
u = [];
l.$$completeOutstandingRequest = e, l.$$incOutstandingRequestCount = function() {
s++
}, l.notifyWhenNoOutstandingRequests = function(a) {
0 === s ? a() : u.push(a)
};
var v, w, x = m.href,
y = b.find("base"),
z = null;
j(), w = v, l.url = function(b, c, e) {
if (t(e) && (e = null), m !== a.location && (m = a.location), n !== a.history && (n = a.history), b) {
var f = w === e;
if (x === b && (!d.history || f)) return l;
var h = x && Lb(x) === Lb(b);
return x = b, w = e, !d.history || h && f ? ((!h || z) && (z = b), c ? m.replace(b) : h ? m.hash = g(b) : m.href = b, m.href !== b && (z = b)) : (n[c ? "replaceState" : "pushState"](e, "", b), j(), w = v), l
}
return z || m.href.replace(/%27/g, "'")
}, l.state = function() {
return v
};
var A = [],
B = !1,
C = null;
l.onUrlChange = function(b) {
return B || (d.history && Ed(a).on("popstate", h), Ed(a).on("hashchange", h), B = !0), A.push(b), b
}, l.$$applicationDestroyed = function() {
Ed(a).off("hashchange popstate", h)
}, l.$$checkUrlChange = k, l.baseHref = function() {
var a = y.attr("href");
return a ? a.replace(/^(https?\:)?\/\/[^\/]*/, "") : ""
}, l.defer = function(a, b) {
var c;
return s++, c = o(function() {
delete r[c], e(a)
}, b || 0), r[c] = !0, c
}, l.defer.cancel = function(a) {
return r[a] ? (delete r[a], q(a), e(p), !0) : !1
}
}
function hb() {
this.$get = ["$window", "$log", "$sniffer", "$document", function(a, b, c, d) {
return new gb(a, d, b, c)
}]
}
function ib() {
this.$get = function() {
function a(a, c) {
function e(a) {
a != m && (n ? n == a && (n = a.n) : n = a, f(a.n, a.p), f(a, m), m = a, m.n = null)
}
function f(a, b) {
a != b && (a && (a.p = b), b && (b.n = a))
}
if (a in b) throw d("$cacheFactory")("iid", "CacheId '{0}' is already taken!", a);
var g = 0,
h = l({}, c, {
id: a
}),
i = qa(),
j = c && c.capacity || Number.MAX_VALUE,
k = qa(),
m = null,
n = null;
return b[a] = {
put: function(a, b) {
if (!t(b)) {
if (j < Number.MAX_VALUE) {
var c = k[a] || (k[a] = {
key: a
});
e(c)
}
return a in i || g++, i[a] = b, g > j && this.remove(n.key), b
}
},
get: function(a) {
if (j < Number.MAX_VALUE) {
var b = k[a];
if (!b) return;
e(b)
}
return i[a]
},
remove: function(a) {
if (j < Number.MAX_VALUE) {
var b = k[a];
if (!b) return;
b == m && (m = b.p), b == n && (n = b.n), f(b.n, b.p), delete k[a]
}
a in i && (delete i[a], g--)
},
removeAll: function() {
i = qa(), g = 0, k = qa(), m = n = null
},
destroy: function() {
i = null, h = null, k = null, delete b[a]
},
info: function() {
return l({}, h, {
size: g
})
}
}
}
var b = {};
return a.info = function() {
var a = {};
return f(b, function(b, c) {
a[c] = b.info()
}), a
}, a.get = function(a) {
return b[a]
}, a
}
}
function jb() {
this.$get = ["$cacheFactory", function(a) {
return a("templates")
}]
}
function kb(a, d) {
function e(a, b, c) {
var d = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,
e = {};
return f(a, function(a, f) {
var g = a.match(d);
if (!g) throw Le("iscp", "Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}", 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
}
}), e
}
function g(a, b) {
var c = {
isolateScope: null,
bindToController: null
};
if (v(a.scope) && (a.bindToController === !0 ? (c.bindToController = e(a.scope, b, !0), c.isolateScope = {}) : c.isolateScope = e(a.scope, b, !1)), v(a.bindToController) && (c.bindToController = e(a.bindToController, b, !0)), v(c.bindToController)) {
var d = a.controller,
f = a.controllerAs;
if (!d) throw Le("noctrl", "Cannot bind to controller without directive '{0}'s controller.", b);
if (!ob(d, f)) throw Le("noident", "Cannot bind to controller without identifier for directive '{0}'.", b)
}
return c
}
function i(a) {
var b = a.charAt(0);
if (!b || b !== yd(b)) throw Le("baddir", "Directive name '{0}' is invalid. The first character must be a lowercase letter", a);
if (a !== a.trim()) throw Le("baddir", "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", a)
}
var j = {},
k = "Directive",
m = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/,
n = /(([\w\-]+)(?:\:([^;]+))?;?)/,
s = L("ngSrc,ngSrcset,src,srcset"),
w = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/,
y = /^(on[a-z]+|formaction)$/;
this.directive = function B(b, c) {
return na(b, "directive"), x(b) ? (i(b), la(c, "directiveFactory"), j.hasOwnProperty(b) || (j[b] = [], a.factory(b + k, ["$injector", "$exceptionHandler", function(a, c) {
var d = [];
return f(j[b], function(e, f) {
try {
var h = a.invoke(e);
A(h) ? h = {
compile: r(h)
} : !h.compile && h.link && (h.compile = r(h.link)), h.priority = h.priority || 0, h.index = f, h.name = h.name || b, h.require = h.require || h.controller && h.name,
h.restrict = h.restrict || "EA";
var i = h.$$bindings = g(h, h.name);
v(i.isolateScope) && (h.$$isolateBindings = i.isolateScope), h.$$moduleName = e.$$moduleName, d.push(h)
} catch (j) {
c(j)
}
}), d
}])), j[b].push(c)) : f(b, h(B)), this
}, this.aHrefSanitizationWhitelist = function(a) {
return u(a) ? (d.aHrefSanitizationWhitelist(a), this) : d.aHrefSanitizationWhitelist()
}, this.imgSrcSanitizationWhitelist = function(a) {
return u(a) ? (d.imgSrcSanitizationWhitelist(a), this) : d.imgSrcSanitizationWhitelist()
};
var z = !0;
this.debugInfoEnabled = function(a) {
return u(a) ? (z = a, this) : z
}, this.$get = ["$injector", "$interpolate", "$exceptionHandler", "$templateRequest", "$parse", "$controller", "$rootScope", "$sce", "$animate", "$$sanitizeUri", function(a, d, e, g, h, i, r, u, B, C) {
function E(a, b) {
try {
a.addClass(b)
} catch (c) {}
}
function F(a, b, c, d, e) {
a instanceof Ed || (a = Ed(a)), f(a, function(b, c) {
b.nodeType == _d && b.nodeValue.match(/\S+/) && (a[c] = Ed(b).wrap("<span></span>").parent()[0])
});
var g = H(a, b, a, c, d, e);
F.$$addScopeClass(a);
var h = null;
return function(b, c, d) {
la(b, "scope"), e && e.needsNewScope && (b = b.$parent.$new()), d = d || {};
var f = d.parentBoundTranscludeFn,
i = d.transcludeControllers,
j = d.futureParentElement;
f && f.$$boundTransclude && (f = f.$$boundTransclude), h || (h = G(j));
var k;
if (k = "html" !== h ? Ed(Z(h, Ed("<div>").append(a).html())) : c ? se.clone.call(a) : a, i)
for (var l in i) k.data("$" + l + "Controller", i[l].instance);
return F.$$addScopeInfo(k, b), c && c(k, b), g && g(b, k, k, f), k
}
}
function G(a) {
var b = a && a[0];
return b && "foreignobject" !== M(b) && b.toString().match(/SVG/) ? "svg" : "html"
}
function H(a, b, d, e, f, g) {
function h(a, d, e, f) {
var g, h, i, j, k, l, m, n, q;
if (o) {
var r = d.length;
for (q = new Array(r), k = 0; k < p.length; k += 3) m = p[k], q[m] = d[m]
} else q = d;
for (k = 0, l = p.length; l > k;) i = q[p[k++]], g = p[k++], h = p[k++], g ? (g.scope ? (j = a.$new(), F.$$addScopeInfo(Ed(i), j)) : j = a, n = g.transcludeOnThisElement ? I(a, g.transclude, f) : !g.templateOnThisElement && f ? f : !f && b ? I(a, b) : null, g(h, j, i, e, n)) : h && h(a, i.childNodes, c, f)
}
for (var i, j, k, l, m, n, o, p = [], q = 0; q < a.length; q++) i = new fa, j = J(a[q], [], i, 0 === q ? e : c, f), k = j.length ? O(j, a[q], i, b, d, null, [], [], g) : null, k && k.scope && F.$$addScopeClass(i.$$element), m = k && k.terminal || !(l = a[q].childNodes) || !l.length ? null : H(l, k ? (k.transcludeOnThisElement || !k.templateOnThisElement) && k.transclude : b), (k || m) && (p.push(q, k, m), n = !0, o = o || k), g = null;
return n ? h : null
}
function I(a, b, c) {
var d = function(d, e, f, g, h) {
return d || (d = a.$new(!1, h), d.$$transcluded = !0), b(d, e, {
parentBoundTranscludeFn: c,
transcludeControllers: f,
futureParentElement: g
})
};
return d
}
function J(a, b, c, d, e) {
var f, g, h = a.nodeType,
i = c.$attr;
switch (h) {
case Zd:
R(b, lb(M(a)), "E", d, e);
for (var j, k, l, o, p, q, r = a.attributes, s = 0, t = r && r.length; t > s; s++) {
var u = !1,
w = !1;
j = r[s], k = j.name, p = Sd(j.value), o = lb(k), (q = ka.test(o)) && (k = k.replace(Me, "").substr(8).replace(/_(.)/g, function(a, b) {
return b.toUpperCase()
}));
var y = o.match(ma);
y && T(y[1]) && (u = k, w = k.substr(0, k.length - 5) + "end", k = k.substr(0, k.length - 6)), l = lb(k.toLowerCase()), i[l] = k, (q || !c.hasOwnProperty(l)) && (c[l] = p, Sa(a, l) && (c[l] = !0)), aa(a, b, p, l, q), R(b, l, "A", d, e, u, w)
}
if (g = a.className, v(g) && (g = g.animVal), x(g) && "" !== g)
for (; f = n.exec(g);) l = lb(f[2]), R(b, l, "C", d, e) && (c[l] = Sd(f[3])), g = g.substr(f.index + f[0].length);
break;
case _d:
if (11 === Dd)
for (; a.parentNode && a.nextSibling && a.nextSibling.nodeType === _d;) a.nodeValue = a.nodeValue + a.nextSibling.nodeValue, a.parentNode.removeChild(a.nextSibling);
Y(b, a.nodeValue);
break;
case ae:
try {
f = m.exec(a.nodeValue), f && (l = lb(f[1]), R(b, l, "M", d, e) && (c[l] = Sd(f[2])))
} catch (z) {}
}
return b.sort(W), b
}
function K(a, b, c) {
var d = [],
e = 0;
if (b && a.hasAttribute && a.hasAttribute(b)) {
do {
if (!a) throw Le("uterdir", "Unterminated attribute, found '{0}' but no matching '{1}' found.", b, c);
a.nodeType == Zd && (a.hasAttribute(b) && e++, a.hasAttribute(c) && e--), d.push(a), a = a.nextSibling
} while (e > 0)
} else d.push(a);
return Ed(d)
}
function L(a, b, c) {
return function(d, e, f, g, h) {
return e = K(e[0], b, c), a(d, e, f, g, h)
}
}
function O(a, d, f, g, h, j, k, l, m) {
function n(a, b, c, d) {
a && (c && (a = L(a, c, d)), a.require = r.require, a.directiveName = s, (E === r || r.$$isolateScope) && (a = ca(a, {
isolateScope: !0
})), k.push(a)), b && (c && (b = L(b, c, d)), b.require = r.require, b.directiveName = s, (E === r || r.$$isolateScope) && (b = ca(b, {
isolateScope: !0
})), l.push(b))
}
function o(a, b, c, d) {
var e;
if (x(b)) {
var f = b.match(w),
g = b.substring(f[0].length),
h = f[1] || f[3],
i = "?" === f[2];
if ("^^" === h ? c = c.parent() : (e = d && d[g], e = e && e.instance), !e) {
var j = "$" + g + "Controller";
e = h ? c.inheritedData(j) : c.data(j)
}
if (!e && !i) throw Le("ctreq", "Controller '{0}', required by directive '{1}', can't be found!", g, a)
} else if (Qd(b)) {
e = [];
for (var k = 0, l = b.length; l > k; k++) e[k] = o(a, b[k], c, d)
}
return e || null
}
function p(a, b, c, d, e, f) {
var g = qa();
for (var h in d) {
var j = d[h],
k = {
$scope: j === E || j.$$isolateScope ? e : f,
$element: a,
$attrs: b,
$transclude: c
},
l = j.controller;
"@" == l && (l = b[j.name]);
var m = i(l, k, !0, j.controllerAs);
g[j.name] = m, N || a.data("$" + j.name + "Controller", m.instance)
}
return g
}
function q(a, b, e, g, h) {
function i(a, b, d) {
var e;
return D(a) || (d = b, b = a, a = c), N && (e = q), d || (d = N ? s.parent() : s), h(a, b, e, d, H)
}
var j, m, n, q, r, s, t, u, v;
d === e ? (t = f, s = f.$$element) : (s = Ed(e), t = new fa(s, f)), n = b, E ? m = b.$new(!0) : B && (n = b.$parent), h && (r = i, r.$$boundTransclude = h), C && (q = p(s, t, r, C, m, b)), E && (F.$$addScopeInfo(s, m, !0, !(G && (G === E || G === E.$$originalDirective))), F.$$addScopeClass(s, !0), m.$$isolateBindings = E.$$isolateBindings, u = ea(b, t, m, m.$$isolateBindings, E), u && m.$on("$destroy", u));
for (var w in q) {
var x = C[w],
y = q[w],
z = x.$$bindings.bindToController;
y.identifier && z && (v = ea(n, t, y.instance, z, x));
var A = y();
A !== y.instance && (y.instance = A, s.data("$" + x.name + "Controller", A), v && v(), v = ea(n, t, y.instance, z, x))
}
for (T = 0, W = k.length; W > T; T++) j = k[T], da(j, j.isolateScope ? m : b, s, t, j.require && o(j.directiveName, j.require, s, q), r);
var H = b;
for (E && (E.template || null === E.templateUrl) && (H = m), a && a(H, e.childNodes, c, h), T = l.length - 1; T >= 0; T--) j = l[T], da(j, j.isolateScope ? m : b, s, t, j.require && o(j.directiveName, j.require, s, q), r)
}
m = m || {};
for (var r, s, t, u, y, z = -Number.MAX_VALUE, B = m.newScopeDirective, C = m.controllerDirectives, E = m.newIsolateScopeDirective, G = m.templateDirective, H = m.nonTlbTranscludeDirective, I = !1, M = !1, N = m.hasElementTranscludeDirective, O = f.$$element = Ed(d), Q = j, R = g, T = 0, W = a.length; W > T; T++) {
r = a[T];
var Y = r.$$start,
_ = r.$$end;
if (Y && (O = K(d, Y, _)), t = c, z > r.priority) break;
if ((y = r.scope) && (r.templateUrl || (v(y) ? (X("new/isolated scope", E || B, r, O), E = r) : X("new/isolated scope", E, r, O)), B = B || r), s = r.name, !r.templateUrl && r.controller && (y = r.controller, C = C || qa(), X("'" + s + "' controller", C[s], r, O), C[s] = r), (y = r.transclude) && (I = !0, r.$$tlb || (X("transclusion", H, r, O), H = r), "element" == y ? (N = !0, z = r.priority, t = O, O = f.$$element = Ed(b.createComment(" " + s + ": " + f[s] + " ")), d = O[0], ba(h, S(t), d), R = F(t, g, z, Q && Q.name, {
nonTlbTranscludeDirective: H
})) : (t = Ed(Da(d)).contents(), O.empty(), R = F(t, g, c, c, {
needsNewScope: r.$$isolateScope || r.$$newScope
}))), r.template)
if (M = !0, X("template", G, r, O), G = r, y = A(r.template) ? r.template(O, f) : r.template, y = ia(y), r.replace) {
if (Q = r, t = xa(y) ? [] : nb(Z(r.templateNamespace, Sd(y))), d = t[0], 1 != t.length || d.nodeType !== Zd) throw Le("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", s, "");
ba(h, O, d);
var aa = {
$attr: {}
},
ga = J(d, [], aa),
ha = a.splice(T + 1, a.length - (T + 1));
(E || B) && P(ga, E, B), a = a.concat(ga).concat(ha), U(f, aa), W = a.length
} else O.html(y);
if (r.templateUrl) M = !0, X("template", G, r, O), G = r, r.replace && (Q = r), q = V(a.splice(T, a.length - T), O, f, h, I && R, k, l, {
controllerDirectives: C,
newScopeDirective: B !== r && B,
newIsolateScopeDirective: E,
templateDirective: G,
nonTlbTranscludeDirective: H
}), W = a.length;
else if (r.compile) try {
u = r.compile(O, f, R), A(u) ? n(null, u, Y, _) : u && n(u.pre, u.post, Y, _)
} catch (ja) {
e(ja, $(O))
}
r.terminal && (q.terminal = !0, z = Math.max(z, r.priority))
}
return q.scope = B && B.scope === !0, q.transcludeOnThisElement = I, q.templateOnThisElement = M, q.transclude = R, m.hasElementTranscludeDirective = N, q
}
function P(a, b, c) {
for (var d = 0, e = a.length; e > d; d++) a[d] = o(a[d], {
$$isolateScope: b,
$$newScope: c
})
}
function R(b, c, d, f, g, h, i) {
if (c === g) return null;
var l = null;
if (j.hasOwnProperty(c))
for (var m, n = a.get(c + k), p = 0, q = n.length; q > p; p++) try {
m = n[p], (t(f) || f > m.priority) && -1 != m.restrict.indexOf(d) && (h && (m = o(m, {
$$start: h,
$$end: i
})), b.push(m), l = m)
} catch (r) {
e(r)
}
return l
}
function T(b) {
if (j.hasOwnProperty(b))
for (var c, d = a.get(b + k), e = 0, f = d.length; f > e; e++)
if (c = d[e], c.multiElement) return !0;
return !1
}
function U(a, b) {
var c = b.$attr,
d = a.$attr,
e = a.$$element;
f(a, function(d, e) {
"$" != e.charAt(0) && (b[e] && b[e] !== d && (d += ("style" === e ? ";" : " ") + b[e]), a.$set(e, d, !0, c[e]))
}), f(b, function(b, f) {
"class" == f ? (E(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 V(a, b, c, d, e, h, i, j) {
var k, l, m = [],
n = b[0],
p = a.shift(),
q = o(p, {
templateUrl: null,
transclude: null,
replace: null,
$$originalDirective: p
}),
r = A(p.templateUrl) ? p.templateUrl(b, c) : p.templateUrl,
s = p.templateNamespace;
return b.empty(), g(r).then(function(g) {
var o, t, u, w;
if (g = ia(g), p.replace) {
if (u = xa(g) ? [] : nb(Z(s, Sd(g))), o = u[0], 1 != u.length || o.nodeType !== Zd) throw Le("tplrt", "Template for directive '{0}' must have exactly one root element. {1}", p.name, r);
t = {
$attr: {}
}, ba(d, b, o);
var x = J(o, [], t);
v(p.scope) && P(x, !0), a = x.concat(a), U(c, t)
} else o = n, b.html(g);
for (a.unshift(q), k = O(a, o, c, e, b, p, h, i, j), f(d, function(a, c) {
a == o && (d[c] = b[0])
}), l = H(b[0].childNodes, e); m.length;) {
var y = m.shift(),
z = m.shift(),
A = m.shift(),
B = m.shift(),
C = b[0];
if (!y.$$destroyed) {
if (z !== n) {
var D = z.className;
j.hasElementTranscludeDirective && p.replace || (C = Da(o)), ba(A, Ed(z), C), E(Ed(C), D)
}
w = k.transcludeOnThisElement ? I(y, k.transclude, B) : B, k(l, y, C, d, w)
}
}
m = null
}),
function(a, b, c, d, e) {
var f = e;
b.$$destroyed || (m ? m.push(b, c, d, f) : (k.transcludeOnThisElement && (f = I(b, k.transclude, e)), k(l, b, c, d, f)))
}
}
function W(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 X(a, b, c, d) {
function e(a) {
return a ? " (module: " + a + ")" : ""
}
if (b) throw Le("multidir", "Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}", b.name, e(b.$$moduleName), c.name, e(c.$$moduleName), a, $(d))
}
function Y(a, b) {
var c = d(b, !0);
c && a.push({
priority: 0,
compile: function(a) {
var b = a.parent(),
d = !!b.length;
return d && F.$$addBindingClass(b),
function(a, b) {
var e = b.parent();
d || F.$$addBindingClass(e), F.$$addBindingInfo(e, c.expressions), a.$watch(c, function(a) {
b[0].nodeValue = a
})
}
}
})
}
function Z(a, c) {
switch (a = yd(a || "html")) {
case "svg":
case "math":
var d = b.createElement("div");
return d.innerHTML = "<" + a + ">" + c + "</" + a + ">", d.childNodes[0].childNodes;
default:
return c
}
}
function _(a, b) {
if ("srcdoc" == b) return u.HTML;
var c = M(a);
return "xlinkHref" == b || "form" == c && "action" == b || "img" != c && ("src" == b || "ngSrc" == b) ? u.RESOURCE_URL : void 0
}
function aa(a, b, c, e, f) {
var g = _(a, e);
f = s[e] || f;
var h = d(c, !0, g, f);
if (h) {
if ("multiple" === e && "select" === M(a)) throw Le("selmulti", "Binding to the 'multiple' attribute is not supported. Element: {0}", $(a));
b.push({
priority: 100,
compile: function() {
return {
pre: function(a, b, i) {
var j = i.$$observers || (i.$$observers = qa());
if (y.test(e)) throw Le("nodomevents", "Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");
var k = i[e];
k !== c && (h = k && d(k, !0, g, f), c = k), h && (i[e] = h(a), (j[e] || (j[e] = [])).$$inter = !0, (i.$$observers && i.$$observers[e].$$scope || a).$watch(h, function(a, b) {
"class" === e && a != b ? i.$updateClass(a, b) : i.$set(e, a)
}))
}
}
}
})
}
}
function ba(a, c, d) {
var e, f, g = c[0],
h = c.length,
i = g.parentNode;
if (a)
for (e = 0, f = a.length; f > e; e++)
if (a[e] == g) {
a[e++] = d;
for (var j = e, k = j + h - 1, l = a.length; l > j; j++, k++) l > k ? a[j] = a[k] : delete a[j];
a.length -= h - 1, a.context === g && (a.context = d);
break
}
i && i.replaceChild(d, g);
var m = b.createDocumentFragment();
m.appendChild(g), Ed.hasData(g) && (Ed.data(d, Ed.data(g)), Fd ? (Pd = !0, Fd.cleanData([g])) : delete Ed.cache[g[Ed.expando]]);
for (var n = 1, o = c.length; o > n; n++) {
var p = c[n];
Ed(p).remove(), m.appendChild(p), delete c[n]
}
c[0] = d, c.length = 1
}
function ca(a, b) {
return l(function() {
return a.apply(null, arguments)
}, a, b)
}
function da(a, b, c, d, f, g) {
try {
a(b, c, d, f, g)
} catch (h) {
e(h, $(c))
}
}
function ea(a, b, c, e, g) {
var i = [];
return f(e, function(e, f) {
var j, k, l, m, n = e.attrName,
o = e.optional,
q = e.mode;
switch (q) {
case "@":
o || zd.call(b, n) || (c[f] = b[n] = void 0), b.$observe(n, function(a) {
x(a) && (c[f] = a)
}), b.$$observers[n].$$scope = a, x(b[n]) && (c[f] = d(b[n])(a));
break;
case "=":
if (!zd.call(b, n)) {
if (o) break;
b[n] = void 0
}
if (o && !b[n]) break;
k = h(b[n]), m = k.literal ? Q : function(a, b) {
return a === b || a !== a && b !== b
}, l = k.assign || function() {
throw j = c[f] = k(a), Le("nonassign", "Expression '{0}' used with directive '{1}' is non-assignable!", b[n], g.name)
}, j = c[f] = k(a);
var r = function(b) {
return m(b, c[f]) || (m(b, j) ? l(a, b = c[f]) : c[f] = b), j = b
};
r.$stateful = !0;
var s;
s = e.collection ? a.$watchCollection(b[n], r) : a.$watch(h(b[n], r), null, k.literal), i.push(s);
break;
case "&":
if (k = b.hasOwnProperty(n) ? h(b[n]) : p, k === p && o) break;
c[f] = function(b) {
return k(a, b)
}
}
}), i.length && function() {
for (var a = 0, b = i.length; b > a; ++a) i[a]()
}
}
var fa = function(a, b) {
if (b) {
var c, d, e, f = Object.keys(b);
for (c = 0, d = f.length; d > c; c++) e = f[c], this[e] = b[e]
} else this.$attr = {};
this.$$element = a
};
fa.prototype = {
$normalize: lb,
$addClass: function(a) {
a && a.length > 0 && B.addClass(this.$$element, a)
},
$removeClass: function(a) {
a && a.length > 0 && B.removeClass(this.$$element, a)
},
$updateClass: function(a, b) {
var c = mb(a, b);
c && c.length && B.addClass(this.$$element, c);
var d = mb(b, a);
d && d.length && B.removeClass(this.$$element, d)
},
$set: function(a, b, c, d) {
var g, h = this.$$element[0],
i = Sa(h, a),
j = Ta(a),
k = a;
if (i ? (this.$$element.prop(a, b), d = i) : j && (this[j] = b, k = j), this[a] = b, d ? this.$attr[a] = d : (d = this.$attr[a], d || (this.$attr[a] = d = ja(a, "-"))), g = M(this.$$element), "a" === g && "href" === a || "img" === g && "src" === a) this[a] = b = C(b, "src" === a);
else if ("img" === g && "srcset" === a) {
for (var l = "", m = Sd(b), n = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/, o = /\s/.test(m) ? n : /(,)/, p = m.split(o), q = Math.floor(p.length / 2), r = 0; q > r; r++) {
var s = 2 * r;
l += C(Sd(p[s]), !0), l += " " + Sd(p[s + 1])
}
var u = Sd(p[2 * r]).split(/\s/);
l += C(Sd(u[0]), !0), 2 === u.length && (l += " " + Sd(u[1])), this[a] = b = l
}
c !== !1 && (null === b || t(b) ? this.$$element.removeAttr(d) : this.$$element.attr(d, b));
var v = this.$$observers;
v && f(v[k], function(a) {
try {
a(b)
} catch (c) {
e(c)
}
})
},
$observe: function(a, b) {
var c = this,
d = c.$$observers || (c.$$observers = qa()),
e = d[a] || (d[a] = []);
return e.push(b), r.$evalAsync(function() {
e.$$inter || !c.hasOwnProperty(a) || t(c[a]) || b(c[a])
}),
function() {
N(e, b)
}
}
};
var ga = d.startSymbol(),
ha = d.endSymbol(),
ia = "{{" == ga || "}}" == ha ? q : function(a) {
return a.replace(/\{\{/g, ga).replace(/}}/g, ha)
},
ka = /^ngAttr[A-Z]/,
ma = /^(.+)Start$/;
return F.$$addBindingInfo = z ? function(a, b) {
var c = a.data("$binding") || [];
Qd(b) ? c = c.concat(b) : c.push(b), a.data("$binding", c)
} : p, F.$$addBindingClass = z ? function(a) {
E(a, "ng-binding")
} : p, F.$$addScopeInfo = z ? function(a, b, c, d) {
var e = c ? d ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope";
a.data(e, b)
} : p, F.$$addScopeClass = z ? function(a, b) {
E(a, b ? "ng-isolate-scope" : "ng-scope")
} : p, F
}]
}
function lb(a) {
return wa(a.replace(Me, ""))
}
function mb(a, b) {
var c = "",
d = a.split(/\s+/),
e = b.split(/\s+/);
a: for (var f = 0; f < d.length; f++) {
for (var g = d[f], h = 0; h < e.length; h++)
if (g == e[h]) continue a;
c += (c.length > 0 ? " " : "") + g
}
return c
}
function nb(a) {
a = Ed(a);
var b = a.length;
if (1 >= b) return a;
for (; b--;) {
var c = a[b];
c.nodeType === ae && Id.call(a, b, 1)
}
return a
}
function ob(a, b) {
if (b && x(b)) return b;
if (x(a)) {
var c = Oe.exec(a);
if (c) return c[3]
}
}
function pb() {
var a = {},
b = !1;
this.register = function(b, c) {
na(b, "controller"), v(b) ? l(a, b) : a[b] = c
}, this.allowGlobals = function() {
b = !0
}, this.$get = ["$injector", "$window", function(e, f) {
function g(a, b, c, e) {
if (!a || !v(a.$scope)) throw d("$controller")("noscp", "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.", e, b);
a.$scope[b] = c
}
return function(d, h, i, j) {
var k, m, n, o;
if (i = i === !0, j && x(j) && (o = j), x(d)) {
if (m = d.match(Oe), !m) throw Ne("ctrlfmt", "Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.", d);
n = m[1], o = o || m[3], d = a.hasOwnProperty(n) ? a[n] : oa(h.$scope, n, !0) || (b ? oa(f, n, !0) : c), ma(d, n, !0)
}
if (i) {
var p = (Qd(d) ? d[d.length - 1] : d).prototype;
k = Object.create(p || null), o && g(h, o, k, n || d.name);
var q;
return q = l(function() {
var a = e.invoke(d, k, h, n);
return a !== k && (v(a) || A(a)) && (k = a, o && g(h, o, k, n || d.name)), k
}, {
instance: k,
identifier: o
})
}
return k = e.instantiate(d, h, n), o && g(h, o, k, n || d.name), k
}
}]
}
function qb() {
this.$get = ["$window", function(a) {
return Ed(a.document)
}]
}
function rb() {
this.$get = ["$log", function(a) {
return function(b, c) {
a.error.apply(a, arguments)
}
}]
}
function sb(a) {
return v(a) ? z(a) ? a.toISOString() : V(a) : a
}
function tb() {
this.$get = function() {
return function(a) {
if (!a) return "";
var b = [];
return g(a, function(a, c) {
null === a || t(a) || (Qd(a) ? f(a, function(a, d) {
b.push(da(c) + "=" + da(sb(a)))
}) : b.push(da(c) + "=" + da(sb(a))))
}), b.join("&")
}
}
}
function ub() {
this.$get = function() {
return function(a) {
function b(a, d, e) {
null === a || t(a) || (Qd(a) ? f(a, function(a, c) {
b(a, d + "[" + (v(a) ? c : "") + "]")
}) : v(a) && !z(a) ? g(a, function(a, c) {
b(a, d + (e ? "" : "[") + c + (e ? "" : "]"))
}) : c.push(da(d) + "=" + da(sb(a))))
}
if (!a) return "";
var c = [];
return b(a, "", !0), c.join("&")
}
}
}
function vb(a, b) {
if (x(a)) {
var c = a.replace(Ue, "").trim();
if (c) {
var d = b("Content-Type");
(d && 0 === d.indexOf(Qe) || wb(c)) && (a = W(c))
}
}
return a
}
function wb(a) {
var b = a.match(Se);
return b && Te[b[0]].test(a)
}
function xb(a) {
function b(a, b) {
a && (d[a] = d[a] ? d[a] + ", " + b : b)
}
var c, d = qa();
return x(a) ? f(a.split("\n"), function(a) {
c = a.indexOf(":"), b(yd(Sd(a.substr(0, c))), Sd(a.substr(c + 1)))
}) : v(a) && f(a, function(a, c) {
b(yd(c), Sd(a))
}), d
}
function yb(a) {
var b;
return function(c) {
if (b || (b = xb(a)), c) {
var d = b[yd(c)];
return void 0 === d && (d = null), d
}
return b
}
}
function zb(a, b, c, d) {
return A(d) ? d(a, b, c) : (f(d, function(d) {
a = d(a, b, c)
}), a)
}
function Ab(a) {
return a >= 200 && 300 > a
}
function Bb() {
var a = this.defaults = {
transformResponse: [vb],
transformRequest: [function(a) {
return !v(a) || E(a) || G(a) || F(a) ? a : V(a)
}],
headers: {
common: {
Accept: "application/json, text/plain, */*"
},
post: P(Re),
put: P(Re),
patch: P(Re)
},
xsrfCookieName: "XSRF-TOKEN",
xsrfHeaderName: "X-XSRF-TOKEN",
paramSerializer: "$httpParamSerializer"
},
b = !1;
this.useApplyAsync = function(a) {
return u(a) ? (b = !!a, this) : b
};
var e = !0;
this.useLegacyPromiseExtensions = function(a) {
return u(a) ? (e = !!a, this) : e
};
var g = this.interceptors = [];
this.$get = ["$httpBackend", "$$cookieReader", "$cacheFactory", "$rootScope", "$q", "$injector", function(h, i, j, k, m, n) {
function o(b) {
function g(a) {
var b = l({}, a);
return b.data = zb(a.data, a.headers, a.status, j.transformResponse), Ab(a.status) ? b : m.reject(b)
}
function h(a, b) {
var c, d = {};
return f(a, function(a, e) {
A(a) ? (c = a(b), null != c && (d[e] = c)) : d[e] = a
}), d
}
function i(b) {
var c, d, e, f = a.headers,
g = l({}, b.headers);
f = l({}, f.common, f[yd(b.method)]);
a: for (c in f) {
d = yd(c);
for (e in g)
if (yd(e) === d) continue a;
g[c] = f[c]
}
return h(g, P(b))
}
if (!Nd.isObject(b)) throw d("$http")("badreq", "Http request configuration must be an object. Received: {0}", b);
if (!x(b.url)) throw d("$http")("badreq", "Http request configuration url must be a string. Received: {0}", b.url);
var j = l({
method: "get",
transformRequest: a.transformRequest,
transformResponse: a.transformResponse,
paramSerializer: a.paramSerializer
}, b);
j.headers = i(b), j.method = Ad(j.method), j.paramSerializer = x(j.paramSerializer) ? n.get(j.paramSerializer) : j.paramSerializer;
var k = function(b) {
var d = b.headers,
e = zb(b.data, yb(d), c, b.transformRequest);
return t(e) && f(d, function(a, b) {
"content-type" === yd(b) && delete d[b]
}), t(b.withCredentials) && !t(a.withCredentials) && (b.withCredentials = a.withCredentials), r(b, e).then(g, g)
},
o = [k, c],
p = m.when(j);
for (f(y, function(a) {
(a.request || a.requestError) && o.unshift(a.request, a.requestError), (a.response || a.responseError) && o.push(a.response, a.responseError)
}); o.length;) {
var q = o.shift(),
s = o.shift();
p = p.then(q, s)
}
return e ? (p.success = function(a) {
return ma(a, "fn"), p.then(function(b) {
a(b.data, b.status, b.headers, j)
}), p
}, p.error = function(a) {
return ma(a, "fn"), p.then(null, function(b) {
a(b.data, b.status, b.headers, j)
}), p
}) : (p.success = We("success"), p.error = We("error")), p
}
function p(a) {
f(arguments, function(a) {
o[a] = function(b, c) {
return o(l({}, c || {}, {
method: a,
url: b
}))
}
})
}
function q(a) {
f(arguments, function(a) {
o[a] = function(b, c, d) {
return o(l({}, d || {}, {
method: a,
url: b,
data: c
}))
}
})
}
function r(d, e) {
function f(a, c, d, e) {
function f() {
g(c, a, d, e)
}
n && (Ab(a) ? n.put(y, [a, c, xb(d), e]) : n.remove(y)), b ? k.$applyAsync(f) : (f(), k.$$phase || k.$apply())
}
function g(a, b, c, e) {
b = b >= -1 ? b : 0, (Ab(b) ? q.resolve : q.reject)({
data: a,
status: b,
headers: yb(c),
config: d,
statusText: e
})
}
function j(a) {
g(a.data, a.status, P(a.headers()), a.statusText)
}
function l() {
var a = o.pendingRequests.indexOf(d); - 1 !== a && o.pendingRequests.splice(a, 1)
}
var n, p, q = m.defer(),
r = q.promise,
x = d.headers,
y = s(d.url, d.paramSerializer(d.params));
if (o.pendingRequests.push(d), r.then(l, l), !d.cache && !a.cache || d.cache === !1 || "GET" !== d.method && "JSONP" !== d.method || (n = v(d.cache) ? d.cache : v(a.cache) ? a.cache : w), n && (p = n.get(y), u(p) ? I(p) ? p.then(j, j) : Qd(p) ? g(p[1], p[0], P(p[2]), p[3]) : g(p, 200, {}, "OK") : n.put(y, r)), t(p)) {
var z = Cc(d.url) ? i()[d.xsrfCookieName || a.xsrfCookieName] : c;
z && (x[d.xsrfHeaderName || a.xsrfHeaderName] = z), h(d.method, y, e, f, x, d.timeout, d.withCredentials, d.responseType)
}
return r
}
function s(a, b) {
return b.length > 0 && (a += (-1 == a.indexOf("?") ? "?" : "&") + b), a
}
var w = j("$http");
a.paramSerializer = x(a.paramSerializer) ? n.get(a.paramSerializer) : a.paramSerializer;
var y = [];
return f(g, function(a) {
y.unshift(x(a) ? n.get(a) : n.invoke(a))
}), o.pendingRequests = [], p("get", "delete", "head", "jsonp"), q("post", "put", "patch"), o.defaults = a, o
}]
}
function Cb() {
this.$get = function() {
return function() {
return new a.XMLHttpRequest
}
}
}
function Db() {
this.$get = ["$browser", "$window", "$document", "$xhrFactory", function(a, b, c, d) {
return Eb(a, d, a.defer, b.angular.callbacks, c[0])
}]
}
function Eb(a, b, c, d, e) {
function g(a, b, c) {
var f = e.createElement("script"),
g = null;
return f.type = "text/javascript", f.src = a, f.async = !0, g = function(a) {
he(f, "load", g), he(f, "error", g), e.body.removeChild(f), f = null;
var h = -1,
i = "unknown";
a && ("load" !== a.type || d[b].called || (a = {
type: "error"
}), i = a.type, h = "error" === a.type ? 404 : 200), c && c(h, i)
}, ge(f, "load", g), ge(f, "error", g), e.body.appendChild(f), g
}
return function(e, h, i, j, k, l, m, n) {
function o() {
s && s(), v && v.abort()
}
function q(b, d, e, f, g) {
u(y) && c.cancel(y), s = v = null, b(d, e, f, g), a.$$completeOutstandingRequest(p)
}
if (a.$$incOutstandingRequestCount(), h = h || a.url(), "jsonp" == yd(e)) {
var r = "_" + (d.counter++).toString(36);
d[r] = function(a) {
d[r].data = a, d[r].called = !0
};
var s = g(h.replace("JSON_CALLBACK", "angular.callbacks." + r), r, function(a, b) {
q(j, a, d[r].data, "", b), d[r] = p
})
} else {
var v = b(e, h);
v.open(e, h, !0), f(k, function(a, b) {
u(a) && v.setRequestHeader(b, a)
}), v.onload = function() {
var a = v.statusText || "",
b = "response" in v ? v.response : v.responseText,
c = 1223 === v.status ? 204 : v.status;
0 === c && (c = b ? 200 : "file" == Bc(h).protocol ? 404 : 0), q(j, c, b, v.getAllResponseHeaders(), a)
};
var w = function() {
q(j, -1, null, null, "")
};
if (v.onerror = w, v.onabort = w, m && (v.withCredentials = !0), n) try {
v.responseType = n
} catch (x) {
if ("json" !== n) throw x
}
v.send(t(i) ? null : i)
}
if (l > 0) var y = c(o, l);
else I(l) && l.then(o)
}
}
function Fb() {
var a = "{{",
b = "}}";
this.startSymbol = function(b) {
return b ? (a = b, this) : a
}, this.endSymbol = function(a) {
return a ? (b = a, this) : b
}, this.$get = ["$parse", "$exceptionHandler", "$sce", function(c, d, e) {
function f(a) {
return "\\\\\\" + a
}
function g(c) {
return c.replace(m, a).replace(n, b)
}
function h(a) {
if (null == a) return "";
switch (typeof a) {
case "string":
break;
case "number":
a = "" + a;
break;
default:
a = V(a)
}
return a
}
function i(f, i, m, n) {
function o(a) {
try {
return a = C(a), n && !u(a) ? a : h(a)
} catch (b) {
d(Xe.interr(f, b))
}
}
n = !!n;
for (var p, q, r, s = 0, v = [], w = [], x = f.length, y = [], z = []; x > s;) {
if (-1 == (p = f.indexOf(a, s)) || -1 == (q = f.indexOf(b, p + j))) {
s !== x && y.push(g(f.substring(s)));
break
}
s !== p && y.push(g(f.substring(s, p))), r = f.substring(p + j, q), v.push(r), w.push(c(r, o)), s = q + k, z.push(y.length), y.push("")
}
if (m && y.length > 1 && Xe.throwNoconcat(f), !i || v.length) {
var B = function(a) {
for (var b = 0, c = v.length; c > b; b++) {
if (n && t(a[b])) return;
y[z[b]] = a[b]
}
return y.join("")
},
C = function(a) {
return m ? e.getTrusted(m, a) : e.valueOf(a)
};
return l(function(a) {
var b = 0,
c = v.length,
e = new Array(c);
try {
for (; c > b; b++) e[b] = w[b](a);
return B(e)
} catch (g) {
d(Xe.interr(f, g))
}
}, {
exp: f,
expressions: v,
$$watchDelegate: function(a, b) {
var c;
return a.$watchGroup(w, function(d, e) {
var f = B(d);
A(b) && b.call(this, f, d !== e ? c : f, a), c = f
})
}
})
}
}
var j = a.length,
k = b.length,
m = new RegExp(a.replace(/./g, f), "g"),
n = new RegExp(b.replace(/./g, f), "g");
return i.startSymbol = function() {
return a
}, i.endSymbol = function() {
return b
}, i
}]
}
function Gb() {
this.$get = ["$rootScope", "$window", "$q", "$$q", function(a, b, c, d) {
function e(e, g, h, i) {
var j = arguments.length > 4,
k = j ? S(arguments, 4) : [],
l = b.setInterval,
m = b.clearInterval,
n = 0,
o = u(i) && !i,
p = (o ? d : c).defer(),
q = p.promise;
return h = u(h) ? h : 0, q.then(null, null, j ? function() {
e.apply(null, k)
} : e), q.$$intervalId = l(function() {
p.notify(n++), h > 0 && n >= h && (p.resolve(n), m(q.$$intervalId), delete f[q.$$intervalId]), o || a.$apply()
}, g), f[q.$$intervalId] = p, q
}
var f = {};
return e.cancel = function(a) {
return a && a.$$intervalId in f ? (f[a.$$intervalId].reject("canceled"), b.clearInterval(a.$$intervalId), delete f[a.$$intervalId], !0) : !1
}, e
}]
}
function Hb(a) {
for (var b = a.split("/"), c = b.length; c--;) b[c] = ca(b[c]);
return b.join("/")
}
function Ib(a, b) {
var c = Bc(a);
b.$$protocol = c.protocol, b.$$host = c.hostname, b.$$port = n(c.port) || Ze[c.protocol] || null
}
function Jb(a, b) {
var c = "/" !== a.charAt(0);
c && (a = "/" + a);
var d = Bc(a);
b.$$path = decodeURIComponent(c && "/" === d.pathname.charAt(0) ? d.pathname.substring(1) : d.pathname), b.$$search = aa(d.search), b.$$hash = decodeURIComponent(d.hash), b.$$path && "/" != b.$$path.charAt(0) && (b.$$path = "/" + b.$$path)
}
function Kb(a, b) {
return 0 === b.indexOf(a) ? b.substr(a.length) : void 0
}
function Lb(a) {
var b = a.indexOf("#");
return -1 == b ? a : a.substr(0, b)
}
function Mb(a) {
return a.replace(/(#.+)|#$/, "$1")
}
function Nb(a) {
return a.substr(0, Lb(a).lastIndexOf("/") + 1)
}
function Ob(a) {
return a.substring(0, a.indexOf("/", a.indexOf("//") + 2))
}
function Pb(a, b, c) {
this.$$html5 = !0, c = c || "", Ib(a, this), this.$$parse = function(a) {
var c = Kb(b, a);
if (!x(c)) throw $e("ipthprfx", 'Invalid url "{0}", missing path prefix "{1}".', a, b);
Jb(c, this), this.$$path || (this.$$path = "/"), this.$$compose()
}, this.$$compose = function() {
var a = ba(this.$$search),
c = this.$$hash ? "#" + ca(this.$$hash) : "";
this.$$url = Hb(this.$$path) + (a ? "?" + a : "") + c, this.$$absUrl = b + this.$$url.substr(1)
}, this.$$parseLinkUrl = function(d, e) {
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0;
var f, g, h;
return u(f = Kb(a, d)) ? (g = f, h = u(f = Kb(c, f)) ? b + (Kb("/", f) || f) : a + g) : u(f = Kb(b, d)) ? h = b + f : b == d + "/" && (h = b), h && this.$$parse(h), !!h
}
}
function Qb(a, b, c) {
Ib(a, this), this.$$parse = function(d) {
function e(a, b, c) {
var d, e = /^\/[A-Z]:(\/.*)/;
return 0 === b.indexOf(c) && (b = b.replace(c, "")), e.exec(b) ? a : (d = e.exec(a), d ? d[1] : a)
}
var f, g = Kb(a, d) || Kb(b, d);
t(g) || "#" !== g.charAt(0) ? this.$$html5 ? f = g : (f = "", t(g) && (a = d, this.replace())) : (f = Kb(c, g), t(f) && (f = g)), Jb(f, this), this.$$path = e(this.$$path, f, a), this.$$compose()
}, this.$$compose = function() {
var b = ba(this.$$search),
d = this.$$hash ? "#" + ca(this.$$hash) : "";
this.$$url = Hb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + (this.$$url ? c + this.$$url : "")
}, this.$$parseLinkUrl = function(b, c) {
return Lb(a) == Lb(b) ? (this.$$parse(b), !0) : !1
}
}
function Rb(a, b, c) {
this.$$html5 = !0, Qb.apply(this, arguments), this.$$parseLinkUrl = function(d, e) {
if (e && "#" === e[0]) return this.hash(e.slice(1)), !0;
var f, g;
return a == Lb(d) ? f = d : (g = Kb(b, d)) ? f = a + c + g : b === d + "/" && (f = b), f && this.$$parse(f), !!f
}, this.$$compose = function() {
var b = ba(this.$$search),
d = this.$$hash ? "#" + ca(this.$$hash) : "";
this.$$url = Hb(this.$$path) + (b ? "?" + b : "") + d, this.$$absUrl = a + c + this.$$url
}
}
function Sb(a) {
return function() {
return this[a]
}
}
function Tb(a, b) {
return function(c) {
return t(c) ? this[a] : (this[a] = b(c), this.$$compose(), this)
}
}
function Ub() {
var a = "",
b = {
enabled: !1,
requireBase: !0,
rewriteLinks: !0
};
this.hashPrefix = function(b) {
return u(b) ? (a = b, this) : a
}, this.html5Mode = function(a) {
return H(a) ? (b.enabled = a, this) : v(a) ? (H(a.enabled) && (b.enabled = a.enabled), H(a.requireBase) && (b.requireBase = a.requireBase), H(a.rewriteLinks) && (b.rewriteLinks = a.rewriteLinks), this) : b
}, this.$get = ["$rootScope", "$browser", "$sniffer", "$rootElement", "$window", function(c, d, e, f, g) {
function h(a, b, c) {
var e = j.url(),
f = j.$$state;
try {
d.url(a, b, c), j.$$state = d.state()
} catch (g) {
throw j.url(e), j.$$state = f, g
}
}
function i(a, b) {
c.$broadcast("$locationChangeSuccess", j.absUrl(), a, j.$$state, b)
}
var j, k, l, m = d.baseHref(),
n = d.url();
if (b.enabled) {
if (!m && b.requireBase) throw $e("nobase", "$location in HTML5 mode requires a <base> tag to be present!");
l = Ob(n) + (m || "/"), k = e.history ? Pb : Rb
} else l = Lb(n), k = Qb;
var o = Nb(l);
j = new k(l, o, "#" + a), j.$$parseLinkUrl(n, n), j.$$state = d.state();
var p = /^\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 = Ed(a.target);
"a" !== M(e[0]);)
if (e[0] === f[0] || !(e = e.parent())[0]) return;
var h = e.prop("href"),
i = e.attr("href") || e.attr("xlink:href");
v(h) && "[object SVGAnimatedString]" === h.toString() && (h = Bc(h.animVal).href), p.test(h) || !h || e.attr("target") || a.isDefaultPrevented() || j.$$parseLinkUrl(h, i) && (a.preventDefault(), j.absUrl() != d.url() && (c.$apply(), g.angular["ff-684208-preventDefault"] = !0))
}
}), Mb(j.absUrl()) != Mb(n) && d.url(j.absUrl(), !0);
var q = !0;
return d.onUrlChange(function(a, b) {
return t(Kb(o, a)) ? void(g.location.href = a) : (c.$evalAsync(function() {
var d, e = j.absUrl(),
f = j.$$state;
a = Mb(a), j.$$parse(a), j.$$state = b, d = c.$broadcast("$locationChangeStart", a, e, b, f).defaultPrevented, j.absUrl() === a && (d ? (j.$$parse(e), j.$$state = f, h(e, !1, f)) : (q = !1, i(e, f)))
}), void(c.$$phase || c.$digest()))
}), c.$watch(function() {
var a = Mb(d.url()),
b = Mb(j.absUrl()),
f = d.state(),
g = j.$$replace,
k = a !== b || j.$$html5 && e.history && f !== j.$$state;
(q || k) && (q = !1, c.$evalAsync(function() {
var b = j.absUrl(),
d = c.$broadcast("$locationChangeStart", b, a, j.$$state, f).defaultPrevented;
j.absUrl() === b && (d ? (j.$$parse(a), j.$$state = f) : (k && h(b, g, f === j.$$state ? null : j.$$state), i(a, f)))
})), j.$$replace = !1
}), j
}]
}
function Vb() {
var a = !0,
b = this;
this.debugEnabled = function(b) {
return u(b) ? (a = b, this) : a
}, this.$get = ["$window", function(c) {
function d(a) {
return a instanceof Error && (a.stack ? a = a.message && -1 === a.stack.indexOf(a.message) ? "Error: " + a.message + "\n" + a.stack : a.stack : a.sourceURL && (a = a.message + "\n" + a.sourceURL + ":" + a.line)), a
}
function e(a) {
var b = c.console || {},
e = b[a] || b.log || p,
g = !1;
try {
g = !!e.apply
} catch (h) {}
return g ? function() {
var a = [];
return f(arguments, function(b) {
a.push(d(b))
}), e.apply(b, a)
} : function(a, b) {
e(a, null == b ? "" : b)
}
}
return {
log: e("log"),
info: e("info"),
warn: e("warn"),
error: e("error"),
debug: function() {
var c = e("debug");
return function() {
a && c.apply(b, arguments)
}
}()
}
}]
}
function Wb(a, b) {
if ("__defineGetter__" === a || "__defineSetter__" === a || "__lookupGetter__" === a || "__lookupSetter__" === a || "__proto__" === a) throw af("isecfld", "Attempting to access a disallowed field in Angular expressions! Expression: {0}", b);
return a
}
function Xb(a, b) {
if (a += "", !x(a)) throw af("iseccst", "Cannot convert object to primitive value! Expression: {0}", b);
return a
}
function Yb(a, b) {
if (a) {
if (a.constructor === a) throw af("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", b);
if (a.window === a) throw af("isecwindow", "Referencing the Window in Angular expressions is disallowed! Expression: {0}", b);
if (a.children && (a.nodeName || a.prop && a.attr && a.find)) throw af("isecdom", "Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}", b);
if (a === Object) throw af("isecobj", "Referencing Object in Angular expressions is disallowed! Expression: {0}", b)
}
return a
}
function Zb(a, b) {
if (a) {
if (a.constructor === a) throw af("isecfn", "Referencing Function in Angular expressions is disallowed! Expression: {0}", b);
if (a === bf || a === cf || a === df) throw af("isecff", "Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}", b)
}
}
function $b(a, b) {
if (a && (a === 0..constructor || a === (!1).constructor || a === "".constructor || a === {}.constructor || a === [].constructor || a === Function.constructor)) throw af("isecaf", "Assigning to a constructor is disallowed! Expression: {0}", b)
}
function _b(a, b) {
return "undefined" != typeof a ? a : b
}
function ac(a, b) {
return "undefined" == typeof a ? b : "undefined" == typeof b ? a : a + b
}
function bc(a, b) {
var c = a(b);
return !c.$stateful
}
function cc(a, b) {
var c, d;
switch (a.type) {
case hf.Program:
c = !0, f(a.body, function(a) {
cc(a.expression, b), c = c && a.expression.constant
}), a.constant = c;
break;
case hf.Literal:
a.constant = !0, a.toWatch = [];
break;
case hf.UnaryExpression:
cc(a.argument, b), a.constant = a.argument.constant, a.toWatch = a.argument.toWatch;
break;
case hf.BinaryExpression:
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.left.toWatch.concat(a.right.toWatch);
break;
case hf.LogicalExpression:
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = a.constant ? [] : [a];
break;
case hf.ConditionalExpression:
cc(a.test, b), cc(a.alternate, b), cc(a.consequent, b), a.constant = a.test.constant && a.alternate.constant && a.consequent.constant, a.toWatch = a.constant ? [] : [a];
break;
case hf.Identifier:
a.constant = !1, a.toWatch = [a];
break;
case hf.MemberExpression:
cc(a.object, b), a.computed && cc(a.property, b), a.constant = a.object.constant && (!a.computed || a.property.constant), a.toWatch = [a];
break;
case hf.CallExpression:
c = a.filter ? bc(b, a.callee.name) : !1, d = [], f(a.arguments, function(a) {
cc(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch)
}), a.constant = c, a.toWatch = a.filter && bc(b, a.callee.name) ? d : [a];
break;
case hf.AssignmentExpression:
cc(a.left, b), cc(a.right, b), a.constant = a.left.constant && a.right.constant, a.toWatch = [a];
break;
case hf.ArrayExpression:
c = !0, d = [], f(a.elements, function(a) {
cc(a, b), c = c && a.constant, a.constant || d.push.apply(d, a.toWatch)
}), a.constant = c, a.toWatch = d;
break;
case hf.ObjectExpression:
c = !0, d = [], f(a.properties, function(a) {
cc(a.value, b), c = c && a.value.constant, a.value.constant || d.push.apply(d, a.value.toWatch)
}), a.constant = c, a.toWatch = d;
break;
case hf.ThisExpression:
a.constant = !1, a.toWatch = []
}
}
function dc(a) {
if (1 == a.length) {
var b = a[0].expression,
d = b.toWatch;
return 1 !== d.length ? d : d[0] !== b ? d : c
}
}
function ec(a) {
return a.type === hf.Identifier || a.type === hf.MemberExpression
}
function fc(a) {
return 1 === a.body.length && ec(a.body[0].expression) ? {
type: hf.AssignmentExpression,
left: a.body[0].expression,
right: {
type: hf.NGValueParameter
},
operator: "="
} : void 0
}
function gc(a) {
return 0 === a.body.length || 1 === a.body.length && (a.body[0].expression.type === hf.Literal || a.body[0].expression.type === hf.ArrayExpression || a.body[0].expression.type === hf.ObjectExpression)
}
function hc(a) {
return a.constant
}
function ic(a, b) {
this.astBuilder = a, this.$filter = b
}
function jc(a, b) {
this.astBuilder = a, this.$filter = b
}
function kc(a) {
return "constructor" == a
}
function lc(a) {
return A(a.valueOf) ? a.valueOf() : kf.call(a)
}
function mc() {
var a = qa(),
b = qa();
this.$get = ["$filter", function(d) {
function e(a, b) {
return null == a || null == b ? a === b : "object" == typeof a && (a = lc(a), "object" == typeof a) ? !1 : a === b || a !== a && b !== b
}
function g(a, b, d, f, g) {
var h, i = f.inputs;
if (1 === i.length) {
var j = e;
return i = i[0], a.$watch(function(a) {
var b = i(a);
return e(b, j) || (h = f(a, c, c, [b]), j = b && lc(b)), h
}, b, d, g)
}
for (var k = [], l = [], m = 0, n = i.length; n > m; m++) k[m] = e, l[m] = null;
return a.$watch(function(a) {
for (var b = !1, d = 0, g = i.length; g > d; d++) {
var j = i[d](a);
(b || (b = !e(j, k[d]))) && (l[d] = j, k[d] = j && lc(j))
}
return b && (h = f(a, c, c, l)), h
}, b, d, g)
}
function h(a, b, c, d) {
var e, f;
return e = a.$watch(function(a) {
return d(a)
}, function(a, c, d) {
f = a, A(b) && b.apply(this, arguments), u(a) && d.$$postDigest(function() {
u(f) && e()
})
}, c)
}
function i(a, b, c, d) {
function e(a) {
var b = !0;
return f(a, function(a) {
u(a) || (b = !1)
}), b
}
var g, h;
return g = a.$watch(function(a) {
return d(a)
}, function(a, c, d) {
h = a, A(b) && b.call(this, a, c, d), e(a) && d.$$postDigest(function() {
e(h) && g()
})
}, c)
}
function j(a, b, c, d) {
var e;
return e = a.$watch(function(a) {
return d(a)
}, function(a, c, d) {
A(b) && b.apply(this, arguments), e()
}, c)
}
function k(a, b) {
if (!b) return a;
var c = a.$$watchDelegate,
d = !1,
e = c !== i && c !== h,
f = e ? function(c, e, f, g) {
var h = d && g ? g[0] : a(c, e, f, g);
return b(h, c, e)
} : function(c, d, e, f) {
var g = a(c, d, e, f),
h = b(g, c, d);
return u(g) ? h : g
};
return a.$$watchDelegate && a.$$watchDelegate !== g ? f.$$watchDelegate = a.$$watchDelegate : b.$stateful || (f.$$watchDelegate = g, d = !a.inputs, f.inputs = a.inputs ? a.inputs : [a]), f
}
var l = Ud().noUnsafeEval,
m = {
csp: l,
expensiveChecks: !1
},
n = {
csp: l,
expensiveChecks: !0
};
return function(c, e, f) {
var l, o, q;
switch (typeof c) {
case "string":
c = c.trim(), q = c;
var r = f ? b : a;
if (l = r[q], !l) {
":" === c.charAt(0) && ":" === c.charAt(1) && (o = !0, c = c.substring(2));
var s = f ? n : m,
t = new gf(s),
u = new jf(t, d, s);
l = u.parse(c), l.constant ? l.$$watchDelegate = j : o ? l.$$watchDelegate = l.literal ? i : h : l.inputs && (l.$$watchDelegate = g), r[q] = l
}
return k(l, e);
case "function":
return k(c, e);
default:
return k(p, e)
}
}
}]
}
function nc() {
this.$get = ["$rootScope", "$exceptionHandler", function(a, b) {
return pc(function(b) {
a.$evalAsync(b)
}, b)
}]
}
function oc() {
this.$get = ["$browser", "$exceptionHandler", function(a, b) {
return pc(function(b) {
a.defer(b)
}, b)
}]
}
function pc(a, b) {
function e(a, b, c) {
function d(b) {
return function(c) {
e || (e = !0, b.call(a, c))
}
}
var e = !1;
return [d(b), d(c)]
}
function g() {
this.$$state = {
status: 0
}
}
function h(a, b) {
return function(c) {
b.call(a, c)
}
}
function i(a) {
var d, e, f;
f = a.pending, a.processScheduled = !1, a.pending = c;
for (var g = 0, h = f.length; h > g; ++g) {
e = f[g][0], d = f[g][a.status];
try {
A(d) ? e.resolve(d(a.value)) : 1 === a.status ? e.resolve(a.value) : e.reject(a.value)
} catch (i) {
e.reject(i), b(i)
}
}
}
function j(b) {
!b.processScheduled && b.pending && (b.processScheduled = !0, a(function() {
i(b)
}))
}
function k() {
this.promise = new g, this.resolve = h(this, this.resolve), this.reject = h(this, this.reject), this.notify = h(this, this.notify)
}
function m(a) {
var b = new k,
c = 0,
d = Qd(a) ? [] : {};
return f(a, function(a, e) {
c++, s(a).then(function(a) {
d.hasOwnProperty(e) || (d[e] = a, --c || b.resolve(d))
}, function(a) {
d.hasOwnProperty(e) || b.reject(a)
})
}), 0 === c && b.resolve(d), b.promise
}
var n = d("$q", TypeError),
o = function() {
return new k
};
l(g.prototype, {
then: function(a, b, c) {
if (t(a) && t(b) && t(c)) return this;
var d = new k;
return this.$$state.pending = this.$$state.pending || [], this.$$state.pending.push([d, a, b, c]), this.$$state.status > 0 && j(this.$$state), d.promise
},
"catch": function(a) {
return this.then(null, a)
},
"finally": function(a, b) {
return this.then(function(b) {
return r(b, !0, a)
}, function(b) {
return r(b, !1, a)
}, b)
}
}), l(k.prototype, {
resolve: function(a) {
this.promise.$$state.status || (a === this.promise ? this.$$reject(n("qcycle", "Expected promise to be resolved with value other than itself '{0}'", a)) : this.$$resolve(a))
},
$$resolve: function(a) {
var c, d;
d = e(this, this.$$resolve, this.$$reject);
try {
(v(a) || A(a)) && (c = a && a.then), A(c) ? (this.promise.$$state.status = -1, c.call(a, d[0], d[1], this.notify)) : (this.promise.$$state.value = a, this.promise.$$state.status = 1, j(this.promise.$$state))
} catch (f) {
d[1](f), b(f)
}
},
reject: function(a) {
this.promise.$$state.status || this.$$reject(a)
},
$$reject: function(a) {
this.promise.$$state.value = a, this.promise.$$state.status = 2, j(this.promise.$$state)
},
notify: function(c) {
var d = this.promise.$$state.pending;
this.promise.$$state.status <= 0 && d && d.length && a(function() {
for (var a, e, f = 0, g = d.length; g > f; f++) {
e = d[f][0], a = d[f][3];
try {
e.notify(A(a) ? a(c) : c)
} catch (h) {
b(h)
}
}
})
}
});
var p = function(a) {
var b = new k;
return b.reject(a), b.promise
},
q = function(a, b) {
var c = new k;
return b ? c.resolve(a) : c.reject(a), c.promise
},
r = function(a, b, c) {
var d = null;
try {
A(c) && (d = c())
} catch (e) {
return q(e, !1)
}
return I(d) ? d.then(function() {
return q(a, b)
}, function(a) {
return q(a, !1)
}) : q(a, b)
},
s = function(a, b, c, d) {
var e = new k;
return e.resolve(a), e.promise.then(b, c, d)
},
u = s,
w = function x(a) {
function b(a) {
d.resolve(a)
}
function c(a) {
d.reject(a)
}
if (!A(a)) throw n("norslvr", "Expected resolverFn, got '{0}'", a);
if (!(this instanceof x)) return new x(a);
var d = new k;
return a(b, c), d.promise
};
return w.defer = o, w.reject = p, w.when = s, w.resolve = u, w.all = m, w
}
function qc() {
this.$get = ["$window", "$timeout", function(a, b) {
var c = a.requestAnimationFrame || a.webkitRequestAnimationFrame,
d = a.cancelAnimationFrame || a.webkitCancelAnimationFrame || a.webkitCancelRequestAnimationFrame,
e = !!c,
f = e ? function(a) {
var b = c(a);
return function() {
d(b)
}
} : function(a) {
var c = b(a, 16.66, !1);
return function() {
b.cancel(c)
}
};
return f.supported = e, f
}]
}
function rc() {
function a(a) {
function b() {
this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null, this.$$listeners = {}, this.$$listenerCount = {}, this.$$watchersCount = 0, this.$id = i(), this.$$ChildScope = null
}
return b.prototype = a, b
}
var b = 10,
c = d("$rootScope"),
g = null,
h = null;
this.digestTtl = function(a) {
return arguments.length && (b = a), b
}, this.$get = ["$injector", "$exceptionHandler", "$parse", "$browser", function(d, j, k, l) {
function m(a) {
a.currentScope.$$destroyed = !0
}
function n(a) {
9 === Dd && (a.$$childHead && n(a.$$childHead), a.$$nextSibling && n(a.$$nextSibling)), a.$parent = a.$$nextSibling = a.$$prevSibling = a.$$childHead = a.$$childTail = a.$root = a.$$watchers = null
}
function o() {
this.$id = i(), 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 q(a) {
if (z.$$phase) throw c("inprog", "{0} already in progress", z.$$phase);
z.$$phase = a
}
function r() {
z.$$phase = null
}
function s(a, b) {
do a.$$watchersCount += b; while (a = a.$parent)
}
function u(a, b, c) {
do a.$$listenerCount[c] -= b, 0 === a.$$listenerCount[c] && delete a.$$listenerCount[c]; while (a = a.$parent)
}
function w() {}
function x() {
for (; D.length;) try {
D.shift()()
} catch (a) {
j(a)
}
h = null
}
function y() {
null === h && (h = l.defer(function() {
z.$apply(x)
}))
}
o.prototype = {
constructor: o,
$new: function(b, c) {
var d;
return c = c || this, b ? (d = new o, 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", m), d
},
$watch: function(a, b, c, d) {
var e = k(a);
if (e.$$watchDelegate) return e.$$watchDelegate(this, b, c, e, a);
var f = this,
h = f.$$watchers,
i = {
fn: b,
last: w,
get: e,
exp: d || a,
eq: !!c
};
return g = null, A(b) || (i.fn = p), h || (h = f.$$watchers = []), h.unshift(i), s(this, 1),
function() {
N(h, i) >= 0 && s(f, -1), g = null
}
},
$watchGroup: function(a, b) {
function c() {
i = !1, j ? (j = !1, b(e, e, h)) : b(e, d, h)
}
var d = new Array(a.length),
e = new Array(a.length),
g = [],
h = this,
i = !1,
j = !0;
if (!a.length) {
var k = !0;
return h.$evalAsync(function() {
k && b(e, e, h)
}),
function() {
k = !1
}
}
return 1 === a.length ? this.$watch(a[0], function(a, c, f) {
e[0] = a, d[0] = c, b(e, a === c ? e : d, f)
}) : (f(a, function(a, b) {
var f = h.$watch(a, function(a, f) {
e[b] = a, d[b] = f, i || (i = !0, h.$evalAsync(c))
});
g.push(f)
}), function() {
for (; g.length;) g.shift()()
})
},
$watchCollection: function(a, b) {
function c(a) {
f = a;
var b, c, d, h, i;
if (!t(f)) {
if (v(f))
if (e(f)) {
g !== n && (g = n, q = g.length = 0, l++), b = f.length, q !== b && (l++, g.length = q = b);
for (var j = 0; b > j; j++) i = g[j], h = f[j], d = i !== i && h !== h, d || i === h || (l++, g[j] = h)
} else {
g !== o && (g = o = {}, q = 0, l++), b = 0;
for (c in f) zd.call(f, c) && (b++, h = f[c], i = g[c], c in g ? (d = i !== i && h !== h, d || i === h || (l++, g[c] = h)) : (q++, g[c] = h, l++));
if (q > b) {
l++;
for (c in g) zd.call(f, c) || (q--, delete g[c])
}
}
else g !== f && (g = f, l++);
return l
}
}
function d() {
if (p ? (p = !1, b(f, f, i)) : b(f, h, i), j)
if (v(f))
if (e(f)) {
h = new Array(f.length);
for (var a = 0; a < f.length; a++) h[a] = f[a]
} else {
h = {};
for (var c in f) zd.call(f, c) && (h[c] = f[c])
}
else h = f
}
c.$stateful = !0;
var f, g, h, i = this,
j = b.length > 1,
l = 0,
m = k(a, c),
n = [],
o = {},
p = !0,
q = 0;
return this.$watch(m, d)
},
$digest: function() {
var a, d, e, f, i, k, m, n, o, p, s = b,
t = this,
u = [];
q("$digest"), l.$$checkUrlChange(), this === z && null !== h && (l.defer.cancel(h), x()), g = null;
do {
for (k = !1, n = t; B.length;) {
try {
p = B.shift(), p.scope.$eval(p.expression, p.locals)
} catch (v) {
j(v)
}
g = null
}
a: do {
if (f = n.$$watchers)
for (i = f.length; i--;) try {
if (a = f[i])
if ((d = a.get(n)) === (e = a.last) || (a.eq ? Q(d, e) : "number" == typeof d && "number" == typeof e && isNaN(d) && isNaN(e))) {
if (a === g) {
k = !1;
break a
}
} else k = !0, g = a, a.last = a.eq ? O(d, null) : d, a.fn(d, e === w ? d : e, n), 5 > s && (o = 4 - s, u[o] || (u[o] = []), u[o].push({
msg: A(a.exp) ? "fn: " + (a.exp.name || a.exp.toString()) : a.exp,
newVal: d,
oldVal: e
}))
} catch (v) {
j(v)
}
if (!(m = n.$$watchersCount && n.$$childHead || n !== t && n.$$nextSibling))
for (; n !== t && !(m = n.$$nextSibling);) n = n.$parent
} while (n = m);
if ((k || B.length) && !s--) throw r(), c("infdig", "{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}", b, u)
} while (k || B.length);
for (r(); C.length;) try {
C.shift()()
} catch (v) {
j(v)
}
},
$destroy: function() {
if (!this.$$destroyed) {
var a = this.$parent;
this.$broadcast("$destroy"), this.$$destroyed = !0, this === z && l.$$applicationDestroyed(), s(this, -this.$$watchersCount);
for (var b in this.$$listenerCount) u(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 = p, this.$on = this.$watch = this.$watchGroup = function() {
return p
}, this.$$listeners = {}, this.$$nextSibling = null, n(this)
}
},
$eval: function(a, b) {
return k(a)(this, b)
},
$evalAsync: function(a, b) {
z.$$phase || B.length || l.defer(function() {
B.length && z.$digest()
}), B.push({
scope: this,
expression: a,
locals: b
})
},
$$postDigest: function(a) {
C.push(a)
},
$apply: function(a) {
try {
q("$apply");
try {
return this.$eval(a)
} finally {
r()
}
} catch (b) {
j(b)
} finally {
try {
z.$digest()
} catch (b) {
throw j(b), b
}
}
},
$applyAsync: function(a) {
function b() {
c.$eval(a)
}
var c = this;
a && D.push(b), y()
},
$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, u(e, 1, a))
}
},
$emit: function(a, b) {
var c, d, e, f = [],
g = this,
h = !1,
i = {
name: a,
targetScope: g,
stopPropagation: function() {
h = !0
},
preventDefault: function() {
i.defaultPrevented = !0
},
defaultPrevented: !1
},
k = R([i], arguments, 1);
do {
for (c = g.$$listeners[a] || f, i.currentScope = g, d = 0, e = c.length; e > d; d++)
if (c[d]) try {
c[d].apply(null, k)
} catch (l) {
j(l)
} else c.splice(d, 1), d--, e--;
if (h) return i.currentScope = null, i;
g = g.$parent
} while (g);
return i.currentScope = null, i
},
$broadcast: function(a, b) {
var c = this,
d = c,
e = c,
f = {
name: a,
targetScope: c,
preventDefault: function() {
f.defaultPrevented = !0
},
defaultPrevented: !1
};
if (!c.$$listenerCount[a]) return f;
for (var g, h, i, k = R([f], arguments, 1); d = e;) {
for (f.currentScope = d, g = d.$$listeners[a] || [], h = 0, i = g.length; i > h; h++)
if (g[h]) try {
g[h].apply(null, k)
} catch (l) {
j(l)
} else g.splice(h, 1), h--, i--;
if (!(e = d.$$listenerCount[a] && d.$$childHead || d !== c && d.$$nextSibling))
for (; d !== c && !(e = d.$$nextSibling);) d = d.$parent
}
return f.currentScope = null, f
}
};
var z = new o,
B = z.$$asyncQueue = [],
C = z.$$postDigestQueue = [],
D = z.$$applyAsyncQueue = [];
return z
}]
}
function sc() {
var a = /^\s*(https?|ftp|mailto|tel|file):/,
b = /^\s*((https?|ftp|file|blob):|data:image\/)/;
this.aHrefSanitizationWhitelist = function(b) {
return u(b) ? (a = b, this) : a
}, this.imgSrcSanitizationWhitelist = function(a) {
return u(a) ? (b = a, this) : b
}, this.$get = function() {
return function(c, d) {
var e, f = d ? b : a;
return e = Bc(c).href, "" === e || e.match(f) ? c : "unsafe:" + e
}
}
}
function tc(a) {
if ("self" === a) return a;
if (x(a)) {
if (a.indexOf("***") > -1) throw lf("iwcard", "Illegal sequence *** in string matcher. String: {0}", a);
return a = Td(a).replace("\\*\\*", ".*").replace("\\*", "[^:/.?&;]*"), new RegExp("^" + a + "$")
}
if (B(a)) return new RegExp("^" + a.source + "$");
throw lf("imatcher", 'Matchers may only be "self", string patterns or RegExp objects')
}
function uc(a) {
var b = [];
return u(a) && f(a, function(a) {
b.push(tc(a))
}), b
}
function vc() {
this.SCE_CONTEXTS = mf;
var a = ["self"],
b = [];
this.resourceUrlWhitelist = function(b) {
return arguments.length && (a = uc(b)), a
}, this.resourceUrlBlacklist = function(a) {
return arguments.length && (b = uc(a)), b
}, this.$get = ["$injector", function(c) {
function d(a, b) {
return "self" === a ? Cc(b) : !!a.exec(b.href)
}
function e(c) {
var e, f, g = Bc(c.toString()),
h = !1;
for (e = 0, f = a.length; f > e; e++)
if (d(a[e], g)) {
h = !0;
break
}
if (h)
for (e = 0, f = b.length; f > e; e++)
if (d(b[e], g)) {
h = !1;
break
}
return h
}
function f(a) {
var b = function(a) {
this.$$unwrapTrustedValue = function() {
return a
}
};
return a && (b.prototype = new a), b.prototype.valueOf = function() {
return this.$$unwrapTrustedValue()
}, b.prototype.toString = function() {
return this.$$unwrapTrustedValue().toString()
}, b
}
function g(a, b) {
var c = l.hasOwnProperty(a) ? l[a] : null;
if (!c) throw lf("icontext", "Attempted to trust a value in invalid context. Context: {0}; Value: {1}", a, b);
if (null === b || t(b) || "" === b) return b;
if ("string" != typeof b) throw lf("itype", "Attempted to trust a non-string value in a content requiring a string: Context: {0}", a);
return new c(b)
}
function h(a) {
return a instanceof k ? a.$$unwrapTrustedValue() : a
}
function i(a, b) {
if (null === b || t(b) || "" === b) return b;
var c = l.hasOwnProperty(a) ? l[a] : null;
if (c && b instanceof c) return b.$$unwrapTrustedValue();
if (a === mf.RESOURCE_URL) {
if (e(b)) return b;
throw lf("insecurl", "Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}", b.toString())
}
if (a === mf.HTML) return j(b);
throw lf("unsafe", "Attempting to use an unsafe value in a safe context.")
}
var j = function(a) {
throw lf("unsafe", "Attempting to use an unsafe value in a safe context.")
};
c.has("$sanitize") && (j = c.get("$sanitize"));
var k = f(),
l = {};
return l[mf.HTML] = f(k), l[mf.CSS] = f(k), l[mf.URL] = f(k), l[mf.JS] = f(k), l[mf.RESOURCE_URL] = f(l[mf.URL]), {
trustAs: g,
getTrusted: i,
valueOf: h
}
}]
}
function wc() {
var a = !0;
this.enabled = function(b) {
return arguments.length && (a = !!b), a
}, this.$get = ["$parse", "$sceDelegate", function(b, c) {
if (a && 8 > Dd) throw lf("iequirks", "Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");
var d = P(mf);
d.isEnabled = function() {
return a
}, d.trustAs = c.trustAs, d.getTrusted = c.getTrusted, d.valueOf = c.valueOf, a || (d.trustAs = d.getTrusted = function(a, b) {
return b
}, d.valueOf = q), d.parseAs = function(a, c) {
var e = b(c);
return e.literal && e.constant ? e : b(c, function(b) {
return d.getTrusted(a, b)
})
};
var e = d.parseAs,
g = d.getTrusted,
h = d.trustAs;
return f(mf, function(a, b) {
var c = yd(b);
d[wa("parse_as_" + c)] = function(b) {
return e(a, b)
}, d[wa("get_trusted_" + c)] = function(b) {
return g(a, b)
}, d[wa("trust_as_" + c)] = function(b) {
return h(a, b)
}
}), d
}]
}
function xc() {
this.$get = ["$window", "$document", function(a, b) {
var c, d, e = {},
f = n((/android (\d+)/.exec(yd((a.navigator || {}).userAgent)) || [])[1]),
g = /Boxee/i.test((a.navigator || {}).userAgent),
h = b[0] || {},
i = /^(Moz|webkit|ms)(?=[A-Z])/,
j = h.body && h.body.style,
k = !1,
l = !1;
if (j) {
for (var m in j)
if (d = i.exec(m)) {
c = d[0], c = c.substr(0, 1).toUpperCase() + c.substr(1);
break
}
c || (c = "WebkitOpacity" in j && "webkit"), k = !!("transition" in j || c + "Transition" in j), l = !!("animation" in j || c + "Animation" in j), !f || k && l || (k = x(j.webkitTransition), l = x(j.webkitAnimation))
}
return {
history: !(!a.history || !a.history.pushState || 4 > f || g),
hasEvent: function(a) {
if ("input" === a && 11 >= Dd) return !1;
if (t(e[a])) {
var b = h.createElement("div");
e[a] = "on" + a in b
}
return e[a]
},
csp: Ud(),
vendorPrefix: c,
transitions: k,
animations: l,
android: f
}
}]
}
function yc() {
this.$get = ["$templateCache", "$http", "$q", "$sce", function(a, b, c, d) {
function e(f, g) {
function h(a) {
if (!g) throw Le("tpload", "Failed to load template: {0} (HTTP status: {1} {2})", f, a.status, a.statusText);
return c.reject(a)
}
e.totalPendingRequests++, x(f) && a.get(f) || (f = d.getTrustedResourceUrl(f));
var i = b.defaults && b.defaults.transformResponse;
Qd(i) ? i = i.filter(function(a) {
return a !== vb
}) : i === vb && (i = null);
var j = {
cache: a,
transformResponse: i
};
return b.get(f, j)["finally"](function() {
e.totalPendingRequests--
}).then(function(b) {
return a.put(f, b.data), b.data
}, h)
}
return e.totalPendingRequests = 0, e
}]
}
function zc() {
this.$get = ["$rootScope", "$browser", "$location", function(a, b, c) {
var d = {};
return d.findBindings = function(a, b, c) {
var d = a.getElementsByClassName("ng-binding"),
e = [];
return f(d, function(a) {
var d = Nd.element(a).data("$binding");
d && f(d, function(d) {
if (c) {
var f = new RegExp("(^|\\s)" + Td(b) + "(\\s|\\||$)");
f.test(d) && e.push(a)
} else -1 != d.indexOf(b) && e.push(a)
})
}), e
}, d.findModels = function(a, b, c) {
for (var d = ["ng-", "data-ng-", "ng\\:"], e = 0; e < d.length; ++e) {
var f = c ? "=" : "*=",
g = "[" + d[e] + "model" + f + '"' + b + '"]',
h = a.querySelectorAll(g);
if (h.length) return h
}
}, d.getLocation = function() {
return c.url()
}, d.setLocation = function(b) {
b !== c.url() && (c.url(b), a.$digest())
}, d.whenStable = function(a) {
b.notifyWhenNoOutstandingRequests(a)
}, d
}]
}
function Ac() {
this.$get = ["$rootScope", "$browser", "$q", "$$q", "$exceptionHandler", function(a, b, c, d, e) {
function f(f, h, i) {
A(f) || (i = h, h = f, f = p);
var j, k = S(arguments, 3),
l = u(i) && !i,
m = (l ? d : c).defer(),
n = m.promise;
return j = b.defer(function() {
try {
m.resolve(f.apply(null, k))
} catch (b) {
m.reject(b), e(b)
} finally {
delete g[n.$$timeoutId]
}
l || a.$apply()
}, h), n.$$timeoutId = j, g[j] = m, n
}
var g = {};
return f.cancel = function(a) {
return a && a.$$timeoutId in g ? (g[a.$$timeoutId].reject("canceled"), delete g[a.$$timeoutId], b.defer.cancel(a.$$timeoutId)) : !1
}, f
}]
}
function Bc(a) {
var b = a;
return Dd && (nf.setAttribute("href", b), b = nf.href), nf.setAttribute("href", b), {
href: nf.href,
protocol: nf.protocol ? nf.protocol.replace(/:$/, "") : "",
host: nf.host,
search: nf.search ? nf.search.replace(/^\?/, "") : "",
hash: nf.hash ? nf.hash.replace(/^#/, "") : "",
hostname: nf.hostname,
port: nf.port,
pathname: "/" === nf.pathname.charAt(0) ? nf.pathname : "/" + nf.pathname
}
}
function Cc(a) {
var b = x(a) ? Bc(a) : a;
return b.protocol === of.protocol && b.host === of.host
}
function Dc() {
this.$get = r(a)
}
function Ec(a) {
function b(a) {
try {
return decodeURIComponent(a)
} catch (b) {
return a
}
}
var c = a[0] || {},
d = {},
e = "";
return function() {
var a, f, g, h, i, j = c.cookie || "";
if (j !== e)
for (e = j, a = e.split("; "), d = {}, g = 0; g < a.length; g++) f = a[g], h = f.indexOf("="), h > 0 && (i = b(f.substring(0, h)), t(d[i]) && (d[i] = b(f.substring(h + 1))));
return d
}
}
function Fc() {
this.$get = Ec
}
function Gc(a) {
function b(d, e) {
if (v(d)) {
var g = {};
return f(d, function(a, c) {
g[c] = b(c, a)
}), g
}
return a.factory(d + c, e)
}
var c = "Filter";
this.register = b, this.$get = ["$injector", function(a) {
return function(b) {
return a.get(b + c)
}
}], b("currency", Lc), b("date", $c), b("filter", Hc), b("json", _c), b("limitTo", ad), b("lowercase", vf), b("number", Mc), b("orderBy", bd), b("uppercase", wf)
}
function Hc() {
return function(a, b, c) {
if (!e(a)) {
if (null == a) return a;
throw d("filter")("notarray", "Expected array but received: {0}", a)
}
var f, g, h = Kc(b);
switch (h) {
case "function":
f = b;
break;
case "boolean":
case "null":
case "number":
case "string":
g = !0;
case "object":
f = Ic(b, c, g);
break;
default:
return a
}
return Array.prototype.filter.call(a, f)
}
}
function Ic(a, b, c) {
var d, e = v(a) && "$" in a;
return b === !0 ? b = Q : A(b) || (b = function(a, b) {
return t(a) ? !1 : null === a || null === b ? a === b : v(b) || v(a) && !s(a) ? !1 : (a = yd("" + a), b = yd("" + b), -1 !== a.indexOf(b))
}), d = function(d) {
return e && !v(d) ? Jc(d, a.$, b, !1) : Jc(d, a, b, c)
}
}
function Jc(a, b, c, d, e) {
var f = Kc(a),
g = Kc(b);
if ("string" === g && "!" === b.charAt(0)) return !Jc(a, b.substring(1), c, d);
if (Qd(a)) return a.some(function(a) {
return Jc(a, b, c, d)
});
switch (f) {
case "object":
var h;
if (d) {
for (h in a)
if ("$" !== h.charAt(0) && Jc(a[h], b, c, !0)) return !0;
return e ? !1 : Jc(a, b, c, !1)
}
if ("object" === g) {
for (h in b) {
var i = b[h];
if (!A(i) && !t(i)) {
var j = "$" === h,
k = j ? a : a[h];
if (!Jc(k, i, c, j, j)) return !1
}
}
return !0
}
return c(a, b);
case "function":
return !1;
default:
return c(a, b)
}
}
function Kc(a) {
return null === a ? "null" : typeof a
}
function Lc(a) {
var b = a.NUMBER_FORMATS;
return function(a, c, d) {
return t(c) && (c = b.CURRENCY_SYM), t(d) && (d = b.PATTERNS[1].maxFrac), null == a ? a : Pc(a, b.PATTERNS[1], b.GROUP_SEP, b.DECIMAL_SEP, d).replace(/\u00A4/g, c)
}
}
function Mc(a) {
var b = a.NUMBER_FORMATS;
return function(a, c) {
return null == a ? a : Pc(a, b.PATTERNS[0], b.GROUP_SEP, b.DECIMAL_SEP, c)
}
}
function Nc(a) {
var b, c, d, e, f, g = 0;
for ((c = a.indexOf(qf)) > -1 && (a = a.replace(qf, "")), (d = a.search(/e/i)) > 0 ? (0 > c && (c = d), c += +a.slice(d + 1), a = a.substring(0, d)) : 0 > c && (c = a.length), d = 0; a.charAt(d) == rf; d++);
if (d == (f = a.length)) b = [0], c = 1;
else {
for (f--; a.charAt(f) == rf;) f--;
for (c -= d, b = [], e = 0; f >= d; d++, e++) b[e] = +a.charAt(d)
}
return c > pf && (b = b.splice(0, pf - 1), g = c - 1, c = 1), {
d: b,
e: g,
i: c
}
}
function Oc(a, b, c, d) {
var e = a.d,
f = e.length - a.i;
b = t(b) ? Math.min(Math.max(c, f), d) : +b;
var g = b + a.i,
h = e[g];
if (g > 0) e.splice(g);
else {
a.i = 1, e.length = g = b + 1;
for (var i = 0; g > i; i++) e[i] = 0
}
for (h >= 5 && e[g - 1]++; b > f; f++) e.push(0);
var j = e.reduceRight(function(a, b, c, d) {
return b += a, d[c] = b % 10, Math.floor(b / 10)
}, 0);
j && (e.unshift(j), a.i++)
}
function Pc(a, b, c, d, e) {
if (!x(a) && !y(a) || isNaN(a)) return "";
var f, g = !isFinite(a),
h = !1,
i = Math.abs(a) + "",
j = "";
if (g) j = "∞";
else {
f = Nc(i), Oc(f, e, b.minFrac, b.maxFrac);
var k = f.d,
l = f.i,
m = f.e,
n = [];
for (h = k.reduce(function(a, b) {
return a && !b
}, !0); 0 > l;) k.unshift(0), l++;
l > 0 ? n = k.splice(l) : (n = k, k = [0]);
var o = [];
for (k.length > b.lgSize && o.unshift(k.splice(-b.lgSize).join("")); k.length > b.gSize;) o.unshift(k.splice(-b.gSize).join(""));
k.length && o.unshift(k.join("")), j = o.join(c), n.length && (j += d + n.join("")), m && (j += "e+" + m)
}
return 0 > a && !h ? b.negPre + j + b.negSuf : b.posPre + j + b.posSuf
}
function Qc(a, b, c) {
var d = "";
for (0 > a && (d = "-", a = -a), a = "" + a; a.length < b;) a = rf + a;
return c && (a = a.substr(a.length - b)), d + a
}
function Rc(a, b, c, d) {
return c = c || 0,
function(e) {
var f = e["get" + a]();
return (c > 0 || f > -c) && (f += c), 0 === f && -12 == c && (f = 12), Qc(f, b, d)
}
}
function Sc(a, b) {
return function(c, d) {
var e = c["get" + a](),
f = Ad(b ? "SHORT" + a : a);
return d[f][e]
}
}
function Tc(a, b, c) {
var d = -1 * c,
e = d >= 0 ? "+" : "";
return e += Qc(Math[d > 0 ? "floor" : "ceil"](d / 60), 2) + Qc(Math.abs(d % 60), 2)
}
function Uc(a) {
var b = new Date(a, 0, 1).getDay();
return new Date(a, 0, (4 >= b ? 5 : 12) - b)
}
function Vc(a) {
return new Date(a.getFullYear(), a.getMonth(), a.getDate() + (4 - a.getDay()))
}
function Wc(a) {
return function(b) {
var c = Uc(b.getFullYear()),
d = Vc(b),
e = +d - +c,
f = 1 + Math.round(e / 6048e5);
return Qc(f, a)
}
}
function Xc(a, b) {
return a.getHours() < 12 ? b.AMPMS[0] : b.AMPMS[1]
}
function Yc(a, b) {
return a.getFullYear() <= 0 ? b.ERAS[0] : b.ERAS[1]
}
function Zc(a, b) {
return a.getFullYear() <= 0 ? b.ERANAMES[0] : b.ERANAMES[1]
}
function $c(a) {
function b(a) {
var b;
if (b = a.match(c)) {
var d = new Date(0),
e = 0,
f = 0,
g = b[8] ? d.setUTCFullYear : d.setFullYear,
h = b[8] ? d.setUTCHours : d.setHours;
b[9] && (e = n(b[9] + b[10]), f = n(b[9] + b[11])), g.call(d, n(b[1]), n(b[2]) - 1, n(b[3]));
var i = n(b[4] || 0) - e,
j = n(b[5] || 0) - f,
k = n(b[6] || 0),
l = Math.round(1e3 * parseFloat("0." + (b[7] || 0)));
return h.call(d, i, j, k, l), d
}
return a
}
var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;
return function(c, d, e) {
var g, h, i = "",
j = [];
if (d = d || "mediumDate", d = a.DATETIME_FORMATS[d] || d, x(c) && (c = uf.test(c) ? n(c) : b(c)), y(c) && (c = new Date(c)), !z(c) || !isFinite(c.getTime())) return c;
for (; d;) h = tf.exec(d), h ? (j = R(j, h, 1), d = j.pop()) : (j.push(d), d = null);
var k = c.getTimezoneOffset();
return e && (k = X(e, c.getTimezoneOffset()), c = Z(c, e, !0)), f(j, function(b) {
g = sf[b], i += g ? g(c, a.DATETIME_FORMATS, k) : b.replace(/(^'|'$)/g, "").replace(/''/g, "'")
}), i
}
}
function _c() {
return function(a, b) {
return t(b) && (b = 2), V(a, b)
}
}
function ad() {
return function(a, b, c) {
return b = Math.abs(Number(b)) === 1 / 0 ? Number(b) : n(b), isNaN(b) ? a : (y(a) && (a = a.toString()), Qd(a) || x(a) ? (c = !c || isNaN(c) ? 0 : n(c), c = 0 > c ? Math.max(0, a.length + c) : c, b >= 0 ? a.slice(c, c + b) : 0 === c ? a.slice(b, a.length) : a.slice(Math.max(0, c + b), c)) : a)
}
}
function bd(a) {
function b(b, c) {
return c = c ? -1 : 1, b.map(function(b) {
var d = 1,
e = q;
if (A(b)) e = b;
else if (x(b) && (("+" == b.charAt(0) || "-" == b.charAt(0)) && (d = "-" == b.charAt(0) ? -1 : 1, b = b.substring(1)), "" !== b && (e = a(b), e.constant))) {
var f = e();
e = function(a) {
return a[f]
}
}
return {
get: e,
descending: d * c
}
})
}
function c(a) {
switch (typeof a) {
case "number":
case "boolean":
case "string":
return !0;
default:
return !1
}
}
function d(a, b) {
return "function" == typeof a.valueOf && (a = a.valueOf(), c(a)) ? a : s(a) && (a = a.toString(), c(a)) ? a : b
}
function f(a, b) {
var c = typeof a;
return null === a ? (c = "string", a = "null") : "string" === c ? a = a.toLowerCase() : "object" === c && (a = d(a, b)), {
value: a,
type: c
}
}
function g(a, b) {
var c = 0;
return a.type === b.type ? a.value !== b.value && (c = a.value < b.value ? -1 : 1) : c = a.type < b.type ? -1 : 1, c
}
return function(a, c, d) {
function h(a, b) {
return {
value: a,
predicateValues: j.map(function(c) {
return f(c.get(a), b)
})
}
}
function i(a, b) {
for (var c = 0, d = 0, e = j.length; e > d && !(c = g(a.predicateValues[d], b.predicateValues[d]) * j[d].descending); ++d);
return c
}
if (!e(a)) return a;
Qd(c) || (c = [c]), 0 === c.length && (c = ["+"]);
var j = b(c, d);
j.push({
get: function() {
return {}
},
descending: d ? -1 : 1
});
var k = Array.prototype.map.call(a, h);
return k.sort(i), a = k.map(function(a) {
return a.value
})
}
}
function cd(a) {
return A(a) && (a = {
link: a
}), a.restrict = a.restrict || "AC", r(a)
}
function dd(a, b) {
a.$name = b
}
function ed(a, b, d, e, g) {
var h = this,
i = [];
h.$error = {}, h.$$success = {}, h.$pending = c, h.$name = g(b.name || b.ngForm || "")(d), h.$dirty = !1, h.$pristine = !0, h.$valid = !0, h.$invalid = !1, h.$submitted = !1, h.$$parentForm = zf, h.$rollbackViewValue = function() {
f(i, function(a) {
a.$rollbackViewValue()
})
}, h.$commitViewValue = function() {
f(i, function(a) {
a.$commitViewValue()
})
}, h.$addControl = function(a) {
na(a.$name, "input"), i.push(a), a.$name && (h[a.$name] = a), a.$$parentForm = h
}, h.$$renameControl = function(a, b) {
var c = a.$name;
h[c] === a && delete h[c], h[b] = a, a.$name = b
}, h.$removeControl = function(a) {
a.$name && h[a.$name] === a && delete h[a.$name], f(h.$pending, function(b, c) {
h.$setValidity(c, null, a)
}), f(h.$error, function(b, c) {
h.$setValidity(c, null, a)
}), f(h.$$success, function(b, c) {
h.$setValidity(c, null, a)
}), N(i, a), a.$$parentForm = zf
}, td({
ctrl: this,
$element: a,
set: function(a, b, c) {
var d = a[b];
if (d) {
var e = d.indexOf(c); - 1 === e && d.push(c)
} else a[b] = [c]
},
unset: function(a, b, c) {
var d = a[b];
d && (N(d, c), 0 === d.length && delete a[b])
},
$animate: e
}), h.$setDirty = function() {
e.removeClass(a, hg), e.addClass(a, ig), h.$dirty = !0, h.$pristine = !1, h.$$parentForm.$setDirty()
}, h.$setPristine = function() {
e.setClass(a, hg, ig + " " + Af), h.$dirty = !1, h.$pristine = !0, h.$submitted = !1, f(i, function(a) {
a.$setPristine()
})
}, h.$setUntouched = function() {
f(i, function(a) {
a.$setUntouched()
})
}, h.$setSubmitted = function() {
e.addClass(a, Af), h.$submitted = !0, h.$$parentForm.$setSubmitted()
}
}
function fd(a) {
a.$formatters.push(function(b) {
return a.$isEmpty(b) ? b : b.toString()
})
}
function gd(a, b, c, d, e, f) {
hd(a, b, c, d, e, f), fd(d)
}
function hd(a, b, c, d, e, f) {
var g = yd(b[0].type);
if (!e.android) {
var h = !1;
b.on("compositionstart", function(a) {
h = !0
}), b.on("compositionend", function() {
h = !1, i()
})
}
var i = function(a) {
if (j && (f.defer.cancel(j), j = null), !h) {
var e = b.val(),
i = a && a.type;
"password" === g || c.ngTrim && "false" === c.ngTrim || (e = Sd(e)), (d.$viewValue !== e || "" === e && d.$$hasNativeValidators) && d.$setViewValue(e, i)
}
};
if (e.hasEvent("input")) b.on("input", i);
else {
var j, k = function(a, b, c) {
j || (j = f.defer(function() {
j = null, b && b.value === c || i(a)
}))
};
b.on("keydown", function(a) {
var b = a.keyCode;
91 === b || b > 15 && 19 > b || b >= 37 && 40 >= b || k(a, this, this.value)
}), e.hasEvent("paste") && b.on("paste cut", k)
}
b.on("change", i), d.$render = function() {
var a = d.$isEmpty(d.$viewValue) ? "" : d.$viewValue;
b.val() !== a && b.val(a)
}
}
function id(a, b) {
if (z(a)) return a;
if (x(a)) {
Kf.lastIndex = 0;
var c = Kf.exec(a);
if (c) {
var d = +c[1],
e = +c[2],
f = 0,
g = 0,
h = 0,
i = 0,
j = Uc(d),
k = 7 * (e - 1);
return b && (f = b.getHours(), g = b.getMinutes(), h = b.getSeconds(), i = b.getMilliseconds()), new Date(d, 0, j.getDate() + k, f, g, h, i)
}
}
return NaN
}
function jd(a, b) {
return function(c, d) {
var e, g;
if (z(c)) return c;
if (x(c)) {
if ('"' == c.charAt(0) && '"' == c.charAt(c.length - 1) && (c = c.substring(1, c.length - 1)), Ef.test(c)) return new Date(c);
if (a.lastIndex = 0, e = a.exec(c)) return e.shift(), g = d ? {
yyyy: d.getFullYear(),
MM: d.getMonth() + 1,
dd: d.getDate(),
HH: d.getHours(),
mm: d.getMinutes(),
ss: d.getSeconds(),
sss: d.getMilliseconds() / 1e3
} : {
yyyy: 1970,
MM: 1,
dd: 1,
HH: 0,
mm: 0,
ss: 0,
sss: 0
}, f(e, function(a, c) {
c < b.length && (g[b[c]] = +a)
}), new Date(g.yyyy, g.MM - 1, g.dd, g.HH, g.mm, g.ss || 0, 1e3 * g.sss || 0)
}
return NaN
}
}
function kd(a, b, d, e) {
return function(f, g, h, i, j, k, l) {
function m(a) {
return a && !(a.getTime && a.getTime() !== a.getTime())
}
function n(a) {
return u(a) && !z(a) ? d(a) || c : a
}
ld(f, g, h, i), hd(f, g, h, i, j, k);
var o, p = i && i.$options && i.$options.timezone;
if (i.$$parserName = a, i.$parsers.push(function(a) {
if (i.$isEmpty(a)) return null;
if (b.test(a)) {
var e = d(a, o);
return p && (e = Z(e, p)), e
}
return c
}), i.$formatters.push(function(a) {
if (a && !z(a)) throw mg("datefmt", "Expected `{0}` to be a date", a);
return m(a) ? (o = a, o && p && (o = Z(o, p, !0)), l("date")(a, e, p)) : (o = null, "")
}), u(h.min) || h.ngMin) {
var q;
i.$validators.min = function(a) {
return !m(a) || t(q) || d(a) >= q
}, h.$observe("min", function(a) {
q = n(a), i.$validate()
})
}
if (u(h.max) || h.ngMax) {
var r;
i.$validators.max = function(a) {
return !m(a) || t(r) || d(a) <= r
}, h.$observe("max", function(a) {
r = n(a), i.$validate()
})
}
}
}
function ld(a, b, d, e) {
var f = b[0],
g = e.$$hasNativeValidators = v(f.validity);
g && e.$parsers.push(function(a) {
var d = b.prop(xd) || {};
return d.badInput && !d.typeMismatch ? c : a
})
}
function md(a, b, d, e, f, g) {
if (ld(a, b, d, e), hd(a, b, d, e, f, g), e.$$parserName = "number", e.$parsers.push(function(a) {
return e.$isEmpty(a) ? null : Hf.test(a) ? parseFloat(a) : c
}), e.$formatters.push(function(a) {
if (!e.$isEmpty(a)) {
if (!y(a)) throw mg("numfmt", "Expected `{0}` to be a number", a);
a = a.toString()
}
return a
}), u(d.min) || d.ngMin) {
var h;
e.$validators.min = function(a) {
return e.$isEmpty(a) || t(h) || a >= h
}, d.$observe("min", function(a) {
u(a) && !y(a) && (a = parseFloat(a, 10)), h = y(a) && !isNaN(a) ? a : c, e.$validate()
})
}
if (u(d.max) || d.ngMax) {
var i;
e.$validators.max = function(a) {
return e.$isEmpty(a) || t(i) || i >= a
}, d.$observe("max", function(a) {
u(a) && !y(a) && (a = parseFloat(a, 10)), i = y(a) && !isNaN(a) ? a : c, e.$validate()
})
}
}
function nd(a, b, c, d, e, f) {
hd(a, b, c, d, e, f), fd(d), d.$$parserName = "url", d.$validators.url = function(a, b) {
var c = a || b;
return d.$isEmpty(c) || Ff.test(c)
}
}
function od(a, b, c, d, e, f) {
hd(a, b, c, d, e, f), fd(d), d.$$parserName = "email", d.$validators.email = function(a, b) {
var c = a || b;
return d.$isEmpty(c) || Gf.test(c)
}
}
function pd(a, b, c, d) {
t(c.name) && b.attr("name", i());
var e = function(a) {
b[0].checked && d.$setViewValue(c.value, a && a.type)
};
b.on("click", e), d.$render = function() {
var a = c.value;
b[0].checked = a == d.$viewValue
}, c.$observe("value", d.$render)
}
function qd(a, b, c, d, e) {
var f;
if (u(d)) {
if (f = a(d), !f.constant) throw mg("constexpr", "Expected constant expression for `{0}`, but saw `{1}`.", c, d);
return f(b)
}
return e
}
function rd(a, b, c, d, e, f, g, h) {
var i = qd(h, a, "ngTrueValue", c.ngTrueValue, !0),
j = qd(h, a, "ngFalseValue", c.ngFalseValue, !1),
k = function(a) {
d.$setViewValue(b[0].checked, a && a.type)
};
b.on("click", k), d.$render = function() {
b[0].checked = d.$viewValue
}, d.$isEmpty = function(a) {
return a === !1
}, d.$formatters.push(function(a) {
return Q(a, i)
}), d.$parsers.push(function(a) {
return a ? i : j
})
}
function sd(a, b) {
return a = "ngClass" + a, ["$animate", function(c) {
function d(a, b) {
var c = [];
a: for (var d = 0; d < a.length; d++) {
for (var e = a[d], f = 0; f < b.length; f++)
if (e == b[f]) continue a;
c.push(e)
}
return c
}
function e(a) {
var b = [];
return Qd(a) ? (f(a, function(a) {
b = b.concat(e(a))
}), b) : x(a) ? a.split(" ") : v(a) ? (f(a, function(a, c) {
a && (b = b.concat(c.split(" ")))
}), b) : a
}
return {
restrict: "AC",
link: function(g, h, i) {
function j(a) {
var b = l(a, 1);
i.$addClass(b)
}
function k(a) {
var b = l(a, -1);
i.$removeClass(b)
}
function l(a, b) {
var c = h.data("$classCounts") || qa(),
d = [];
return f(a, function(a) {
(b > 0 || c[a]) && (c[a] = (c[a] || 0) + b, c[a] === +(b > 0) && d.push(a))
}), h.data("$classCounts", c), d.join(" ")
}
function m(a, b) {
var e = d(b, a),
f = d(a, b);
e = l(e, 1), f = l(f, -1), e && e.length && c.addClass(h, e), f && f.length && c.removeClass(h, f)
}
function n(a) {
if (b === !0 || g.$index % 2 === b) {
var c = e(a || []);
if (o) {
if (!Q(a, o)) {
var d = e(o);
m(d, c)
}
} else j(c)
}
o = P(a)
}
var o;
g.$watch(i[a], n, !0), i.$observe("class", function(b) {
n(g.$eval(i[a]))
}), "ngClass" !== a && g.$watch("$index", function(c, d) {
var f = 1 & c;
if (f !== (1 & d)) {
var h = e(g.$eval(i[a]));
f === b ? j(h) : k(h)
}
})
}
}
}]
}
function td(a) {
function b(a, b, i) {
t(b) ? d("$pending", a, i) : e("$pending", a, i), H(b) ? b ? (l(h.$error, a, i), k(h.$$success, a, i)) : (k(h.$error, a, i), l(h.$$success, a, i)) : (l(h.$error, a, i), l(h.$$success, a, i)), h.$pending ? (f(lg, !0), h.$valid = h.$invalid = c, g("", null)) : (f(lg, !1), h.$valid = ud(h.$error), h.$invalid = !h.$valid, g("", h.$valid));
var j;
j = h.$pending && h.$pending[a] ? c : h.$error[a] ? !1 : h.$$success[a] ? !0 : null, g(a, j), h.$$parentForm.$setValidity(a, j, h)
}
function d(a, b, c) {
h[a] || (h[a] = {}), k(h[a], b, c)
}
function e(a, b, d) {
h[a] && l(h[a], b, d), ud(h[a]) && (h[a] = c)
}
function f(a, b) {
b && !j[a] ? (m.addClass(i, a), j[a] = !0) : !b && j[a] && (m.removeClass(i, a), j[a] = !1)
}
function g(a, b) {
a = a ? "-" + ja(a, "-") : "", f(fg + a, b === !0), f(gg + a, b === !1)
}
var h = a.ctrl,
i = a.$element,
j = {},
k = a.set,
l = a.unset,
m = a.$animate;
j[gg] = !(j[fg] = i.hasClass(fg)), h.$setValidity = b
}
function ud(a) {
if (a)
for (var b in a)
if (a.hasOwnProperty(b)) return !1;
return !0
}
function vd(a) {
a[0].hasAttribute("selected") && (a[0].selected = !0)
}
var wd = /^\/(.+)\/([a-z]*)$/,
xd = "validity",
yd = function(a) {
return x(a) ? a.toLowerCase() : a
},
zd = Object.prototype.hasOwnProperty,
Ad = function(a) {
return x(a) ? a.toUpperCase() : a
},
Bd = function(a) {
return x(a) ? a.replace(/[A-Z]/g, function(a) {
return String.fromCharCode(32 | a.charCodeAt(0))
}) : a
},
Cd = function(a) {
return x(a) ? a.replace(/[a-z]/g, function(a) {
return String.fromCharCode(-33 & a.charCodeAt(0))
}) : a
};
"i" !== "I".toLowerCase() && (yd = Bd, Ad = Cd);
var Dd, Ed, Fd, Gd, Hd = [].slice,
Id = [].splice,
Jd = [].push,
Kd = Object.prototype.toString,
Ld = Object.getPrototypeOf,
Md = d("ng"),
Nd = a.angular || (a.angular = {}),
Od = 0;
Dd = b.documentMode, p.$inject = [], q.$inject = [];
var Pd, Qd = Array.isArray,
Rd = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,
Sd = function(a) {
return x(a) ? a.trim() : a
},
Td = function(a) {
return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08")
},
Ud = function() {
function a() {
try {
return new Function(""), !1
} catch (a) {
return !0
}
}
if (!u(Ud.rules)) {
var c = b.querySelector("[ng-csp]") || b.querySelector("[data-ng-csp]");
if (c) {
var d = c.getAttribute("ng-csp") || c.getAttribute("data-ng-csp");
Ud.rules = {
noUnsafeEval: !d || -1 !== d.indexOf("no-unsafe-eval"),
noInlineStyle: !d || -1 !== d.indexOf("no-inline-style")
}
} else Ud.rules = {
noUnsafeEval: a(),
noInlineStyle: !1
}
}
return Ud.rules
},
Vd = function() {
if (u(Vd.name_)) return Vd.name_;
var a, c, d, e, f = Wd.length;
for (c = 0; f > c; ++c)
if (d = Wd[c], a = b.querySelector("[" + d.replace(":", "\\:") + "jq]")) {
e = a.getAttribute(d + "jq");
break
}
return Vd.name_ = e
},
Wd = ["ng-", "data-ng-", "ng:", "x-ng-"],
Xd = /[A-Z]/g,
Yd = !1,
Zd = 1,
$d = 2,
_d = 3,
ae = 8,
be = 9,
ce = 11,
de = {
full: "1.4.9",
major: 1,
minor: 4,
dot: 9,
codeName: "implicit-superannuation"
};
Ca.expando = "ng339";
var ee = Ca.cache = {},
fe = 1,
ge = function(a, b, c) {
a.addEventListener(b, c, !1)
},
he = function(a, b, c) {
a.removeEventListener(b, c, !1)
};
Ca._data = function(a) {
return this.cache[a[this.expando]] || {}
};
var ie = /([\:\-\_]+(.))/g,
je = /^moz([A-Z])/,
ke = {
mouseleave: "mouseout",
mouseenter: "mouseover"
},
le = d("jqLite"),
me = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
ne = /<|&#?\w+;/,
oe = /<([\w:-]+)/,
pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
qe = {
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, "", ""]
};
qe.optgroup = qe.option, qe.tbody = qe.tfoot = qe.colgroup = qe.caption = qe.thead, qe.th = qe.td;
var re = Node.prototype.contains || function(a) {
return !!(16 & this.compareDocumentPosition(a))
},
se = Ca.prototype = {
ready: function(c) {
function d() {
e || (e = !0, c())
}
var e = !1;
"complete" === b.readyState ? setTimeout(d) : (this.on("DOMContentLoaded", d), Ca(a).on("load", d))
},
toString: function() {
var a = [];
return f(this, function(b) {
a.push("" + b)
}), "[" + a.join(", ") + "]"
},
eq: function(a) {
return Ed(a >= 0 ? this[a] : this[this.length + a])
},
length: 0,
push: Jd,
sort: [].sort,
splice: [].splice
},
te = {};
f("multiple,selected,checked,disabled,readOnly,required,open".split(","), function(a) {
te[yd(a)] = a
});
var ue = {};
f("input,select,option,textarea,button,form,details".split(","), function(a) {
ue[a] = !0
});
var ve = {
ngMinlength: "minlength",
ngMaxlength: "maxlength",
ngMin: "min",
ngMax: "max",
ngPattern: "pattern"
};
f({
data: Ia,
removeData: Ga,
hasData: za
}, function(a, b) {
Ca[b] = a
}), f({
data: Ia,
inheritedData: Oa,
scope: function(a) {
return Ed.data(a, "$scope") || Oa(a.parentNode || a, ["$isolateScope", "$scope"])
},
isolateScope: function(a) {
return Ed.data(a, "$isolateScope") || Ed.data(a, "$isolateScopeNoTemplate")
},
controller: Na,
injector: function(a) {
return Oa(a, "$injector")
},
removeAttr: function(a, b) {
a.removeAttribute(b)
},
hasClass: Ja,
css: function(a, b, c) {
return b = wa(b), u(c) ? void(a.style[b] = c) : a.style[b]
},
attr: function(a, b, d) {
var e = a.nodeType;
if (e !== _d && e !== $d && e !== ae) {
var f = yd(b);
if (te[f]) {
if (!u(d)) return a[b] || (a.attributes.getNamedItem(b) || p).specified ? f : c;
d ? (a[b] = !0, a.setAttribute(b, f)) : (a[b] = !1, a.removeAttribute(f))
} else if (u(d)) a.setAttribute(b, d);
else if (a.getAttribute) {
var g = a.getAttribute(b, 2);
return null === g ? c : g
}
}
},
prop: function(a, b, c) {
return u(c) ? void(a[b] = c) : a[b]
},
text: function() {
function a(a, b) {
if (t(b)) {
var c = a.nodeType;
return c === Zd || c === _d ? a.textContent : ""
}
a.textContent = b
}
return a.$dv = "", a
}(),
val: function(a, b) {
if (t(b)) {
if (a.multiple && "select" === M(a)) {
var c = [];
return f(a.options, function(a) {
a.selected && c.push(a.value || a.text)
}), 0 === c.length ? null : c
}
return a.value
}
a.value = b
},
html: function(a, b) {
return t(b) ? a.innerHTML : (Ea(a, !0), void(a.innerHTML = b))
},
empty: Pa
}, function(a, b) {
Ca.prototype[b] = function(b, c) {
var d, e, f = this.length;
if (a !== Pa && t(2 == a.length && a !== Ja && a !== Na ? b : c)) {
if (v(b)) {
for (d = 0; f > d; d++)
if (a === Ia) a(this[d], b);
else
for (e in b) a(this[d], e, b[e]);
return this
}
for (var g = a.$dv, h = t(g) ? Math.min(f, 1) : f, i = 0; h > i; i++) {
var j = a(this[i], b, c);
g = g ? g + j : j
}
return g
}
for (d = 0; f > d; d++) a(this[d], b, c);
return this
}
}), f({
removeData: Ga,
on: function(a, b, d, e) {
if (u(e)) throw le("onargs", "jqLite#on() does not support the `selector` or `eventData` parameters");
if (ya(a)) {
var f = Ha(a, !0),
g = f.events,
h = f.handle;
h || (h = f.handle = Ua(a, g));
for (var i = b.indexOf(" ") >= 0 ? b.split(" ") : [b], j = i.length, k = function(b, c, e) {
var f = g[b];
f || (f = g[b] = [], f.specialHandlerWrapper = c, "$destroy" === b || e || ge(a, b, h)), f.push(d)
}; j--;) b = i[j], ke[b] ? (k(ke[b], Wa), k(b, c, !0)) : k(b)
}
},
off: Fa,
one: function(a, b, c) {
a = Ed(a), a.on(b, function d() {
a.off(b, c), a.off(b, d)
}), a.on(b, c)
},
replaceWith: function(a, b) {
var c, d = a.parentNode;
Ea(a), f(new Ca(b), function(b) {
c ? d.insertBefore(b, c.nextSibling) : d.replaceChild(b, a), c = b
})
},
children: function(a) {
var b = [];
return f(a.childNodes, function(a) {
a.nodeType === Zd && b.push(a)
}), b
},
contents: function(a) {
return a.contentDocument || a.childNodes || []
},
append: function(a, b) {
var c = a.nodeType;
if (c === Zd || c === ce) {
b = new Ca(b);
for (var d = 0, e = b.length; e > d; d++) {
var f = b[d];
a.appendChild(f)
}
}
},
prepend: function(a, b) {
if (a.nodeType === Zd) {
var c = a.firstChild;
f(new Ca(b), function(b) {
a.insertBefore(b, c)
})
}
},
wrap: function(a, b) {
b = Ed(b).eq(0).clone()[0];
var c = a.parentNode;
c && c.replaceChild(b, a), b.appendChild(a)
},
remove: Qa,
detach: function(a) {
Qa(a, !0)
},
after: function(a, b) {
var c = a,
d = a.parentNode;
b = new Ca(b);
for (var e = 0, f = b.length; f > e; e++) {
var g = b[e];
d.insertBefore(g, c.nextSibling), c = g
}
},
addClass: La,
removeClass: Ka,
toggleClass: function(a, b, c) {
b && f(b.split(" "), function(b) {
var d = c;
t(d) && (d = !Ja(a, b)), (d ? La : Ka)(a, b)
})
},
parent: function(a) {
var b = a.parentNode;
return b && b.nodeType !== ce ? b : null
},
next: function(a) {
return a.nextElementSibling
},
find: function(a, b) {
return a.getElementsByTagName ? a.getElementsByTagName(b) : []
},
clone: Da,
triggerHandler: function(a, b, c) {
var d, e, g, h = b.type || b,
i = Ha(a),
j = i && i.events,
k = j && j[h];
k && (d = {
preventDefault: function() {
this.defaultPrevented = !0
},
isDefaultPrevented: function() {
return this.defaultPrevented === !0
},
stopImmediatePropagation: function() {
this.immediatePropagationStopped = !0
},
isImmediatePropagationStopped: function() {
return this.immediatePropagationStopped === !0
},
stopPropagation: p,
type: h,
target: a
}, b.type && (d = l(d, b)), e = P(k), g = c ? [d].concat(c) : [d], f(e, function(b) {
d.isImmediatePropagationStopped() || b.apply(a, g)
}))
}
}, function(a, b) {
Ca.prototype[b] = function(b, c, d) {
for (var e, f = 0, g = this.length; g > f; f++) t(e) ? (e = a(this[f], b, c, d), u(e) && (e = Ed(e))) : Ma(e, a(this[f], b, c, d));
return u(e) ? e : this
}, Ca.prototype.bind = Ca.prototype.on, Ca.prototype.unbind = Ca.prototype.off
}), Za.prototype = {
put: function(a, b) {
this[Ya(a, this.nextUid)] = b
},
get: function(a) {
return this[Ya(a, this.nextUid)]
},
remove: function(a) {
var b = this[a = Ya(a, this.nextUid)];
return delete this[a], b
}
};
var we = [function() {
this.$get = [function() {
return Za
}]
}],
xe = /^[^\(]*\(\s*([^\)]*)\)/m,
ye = /,/,
ze = /^\s*(_?)(\S+?)\1\s*$/,
Ae = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,
Be = d("$injector");
ab.$$annotate = _a;
var Ce = d("$animate"),
De = 1,
Ee = "ng-animate",
Fe = function() {
this.$get = function() {}
},
Ge = function() {
var a = new Za,
b = [];
this.$get = ["$$AnimateRunner", "$rootScope", function(c, d) {
function e(a, b, c) {
var d = !1;
return b && (b = x(b) ? b.split(" ") : Qd(b) ? b : [], f(b, function(b) {
b && (d = !0, a[b] = c)
})), d
}
function g() {
f(b, function(b) {
var c = a.get(b);
if (c) {
var d = eb(b.attr("class")),
e = "",
g = "";
f(c, function(a, b) {
var c = !!d[b];
a !== c && (a ? e += (e.length ? " " : "") + b : g += (g.length ? " " : "") + b)
}), f(b, function(a) {
e && La(a, e), g && Ka(a, g)
}), a.remove(b)
}
}), b.length = 0
}
function h(c, f, h) {
var i = a.get(c) || {},
j = e(i, f, !0),
k = e(i, h, !1);
(j || k) && (a.put(c, i), b.push(c), 1 === b.length && d.$$postDigest(g))
}
return {
enabled: p,
on: p,
off: p,
pin: p,
push: function(a, b, d, e) {
e && e(), d = d || {}, d.from && a.css(d.from), d.to && a.css(d.to), (d.addClass || d.removeClass) && h(a, d.addClass, d.removeClass);
var f = new c;
return f.complete(), f
}
}
}]
},
He = ["$provide", function(a) {
var b = this;
this.$$registeredAnimations = Object.create(null), this.register = function(c, d) {
if (c && "." !== c.charAt(0)) throw Ce("notcsel", "Expecting class selector starting with '.' got '{0}'.", c);
var e = c + "-animation";
b.$$registeredAnimations[c.substr(1)] = e, a.factory(e, d)
}, this.classNameFilter = function(a) {
if (1 === arguments.length && (this.$$classNameFilter = a instanceof RegExp ? a : null, this.$$classNameFilter)) {
var b = new RegExp("(\\s+|\\/)" + Ee + "(\\s+|\\/)");
if (b.test(this.$$classNameFilter.toString())) throw Ce("nongcls", '$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', Ee)
}
return this.$$classNameFilter
}, this.$get = ["$$animateQueue", function(a) {
function b(a, b, c) {
if (c) {
var d = db(c);
!d || d.parentNode || d.previousElementSibling || (c = null)
}
c ? c.after(a) : b.prepend(a)
}
return {
on: a.on,
off: a.off,
pin: a.pin,
enabled: a.enabled,
cancel: function(a) {
a.end && a.end()
},
enter: function(c, d, e, f) {
return d = d && Ed(d), e = e && Ed(e), d = d || e.parent(), b(c, d, e), a.push(c, "enter", fb(f))
},
move: function(c, d, e, f) {
return d = d && Ed(d), e = e && Ed(e), d = d || e.parent(), b(c, d, e), a.push(c, "move", fb(f))
},
leave: function(b, c) {
return a.push(b, "leave", fb(c), function() {
b.remove()
})
},
addClass: function(b, c, d) {
return d = fb(d), d.addClass = cb(d.addclass, c), a.push(b, "addClass", d)
},
removeClass: function(b, c, d) {
return d = fb(d), d.removeClass = cb(d.removeClass, c), a.push(b, "removeClass", d)
},
setClass: function(b, c, d, e) {
return e = fb(e), e.addClass = cb(e.addClass, c), e.removeClass = cb(e.removeClass, d), a.push(b, "setClass", e)
},
animate: function(b, c, d, e, f) {
return f = fb(f), f.from = f.from ? l(f.from, c) : c, f.to = f.to ? l(f.to, d) : d, e = e || "ng-inline-animate", f.tempClasses = cb(f.tempClasses, e), a.push(b, "animate", f)
}
}
}]
}],
Ie = function() {
this.$get = ["$$rAF", function(a) {
function b(b) {
c.push(b), c.length > 1 || a(function() {
for (var a = 0; a < c.length; a++) c[a]();
c = []
})
}
var c = [];
return function() {
var a = !1;
return b(function() {
a = !0
}),
function(c) {
a ? c() : b(c)
}
}
}]
},
Je = function() {
this.$get = ["$q", "$sniffer", "$$animateAsyncRun", "$document", "$timeout", function(a, b, c, d, e) {
function g(a) {
this.setHost(a);
var b = c(),
f = function(a) {
e(a, 0, !1)
};
this._doneCallbacks = [], this._tick = function(a) {
var c = d[0];
c && c.hidden ? f(a) : b(a)
}, this._state = 0
}
var h = 0,
i = 1,
j = 2;
return g.chain = function(a, b) {
function c() {
return d === a.length ? void b(!0) : void a[d](function(a) {
return a === !1 ? void b(!1) : (d++, void c())
})
}
var d = 0;
c()
}, g.all = function(a, b) {
function c(c) {
e = e && c, ++d === a.length && b(e)
}
var d = 0,
e = !0;
f(a, function(a) {
a.done(c)
})
}, g.prototype = {
setHost: function(a) {
this.host = a || {}
},
done: function(a) {
this._state === j ? a() : this._doneCallbacks.push(a)
},
progress: p,
getPromise: function() {
if (!this.promise) {
var b = this;
this.promise = a(function(a, c) {
b.done(function(b) {
b === !1 ? c() : a()
})
})
}
return this.promise
},
then: function(a, b) {
return this.getPromise().then(a, b)
},
"catch": function(a) {
return this.getPromise()["catch"](a)
},
"finally": function(a) {
return this.getPromise()["finally"](a)
},
pause: function() {
this.host.pause && this.host.pause()
},
resume: function() {
this.host.resume && this.host.resume()
},
end: function() {
this.host.end && this.host.end(), this._resolve(!0)
},
cancel: function() {
this.host.cancel && this.host.cancel(), this._resolve(!1)
},
complete: function(a) {
var b = this;
b._state === h && (b._state = i, b._tick(function() {
b._resolve(a)
}))
},
_resolve: function(a) {
this._state !== j && (f(this._doneCallbacks, function(b) {
b(a)
}), this._doneCallbacks.length = 0, this._state = j)
}
}, g
}]
},
Ke = function() {
this.$get = ["$$rAF", "$q", "$$AnimateRunner", function(a, b, c) {
return function(b, d) {
function e() {
return a(function() {
f(), h || i.complete(), h = !0
}), i
}
function f() {
g.addClass && (b.addClass(g.addClass), g.addClass = null), g.removeClass && (b.removeClass(g.removeClass), g.removeClass = null), g.to && (b.css(g.to), g.to = null)
}
var g = d || {};
g.$$prepared || (g = O(g)), g.cleanupStyles && (g.from = g.to = null), g.from && (b.css(g.from), g.from = null);
var h, i = new c;
return {
start: e,
end: e
}
}
}]
},
Le = d("$compile");
kb.$inject = ["$provide", "$$sanitizeUriProvider"];
var Me = /^((?:x|data)[\:\-_])/i,
Ne = d("$controller"),
Oe = /^(\S+)(\s+as\s+([\w$]+))?$/,
Pe = function() {
this.$get = ["$document", function(a) {
return function(b) {
return b ? !b.nodeType && b instanceof Ed && (b = b[0]) : b = a[0].body, b.offsetWidth + 1
}
}]
},
Qe = "application/json",
Re = {
"Content-Type": Qe + ";charset=utf-8"
},
Se = /^\[|^\{(?!\{)/,
Te = {
"[": /]$/,
"{": /}$/
},
Ue = /^\)\]\}',?\n/,
Ve = d("$http"),
We = function(a) {
return function() {
throw Ve("legacy", "The method `{0}` on the promise returned from `$http` has been disabled.", a)
}
},
Xe = Nd.$interpolateMinErr = d("$interpolate");
Xe.throwNoconcat = function(a) {
throw Xe("noconcat", "Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce", a)
}, Xe.interr = function(a, b) {
return Xe("interr", "Can't interpolate: {0}\n{1}", a, b.toString())
};
var Ye = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
Ze = {
http: 80,
https: 443,
ftp: 21
},
$e = d("$location"),
_e = {
$$html5: !1,
$$replace: !1,
absUrl: Sb("$$absUrl"),
url: function(a) {
if (t(a)) return this.$$url;
var b = Ye.exec(a);
return (b[1] || "" === a) && this.path(decodeURIComponent(b[1])), (b[2] || b[1] || "" === a) && this.search(b[3] || ""), this.hash(b[5] || ""), this
},
protocol: Sb("$$protocol"),
host: Sb("$$host"),
port: Sb("$$port"),
path: Tb("$$path", function(a) {
return a = null !== a ? a.toString() : "", "/" == a.charAt(0) ? a : "/" + a
}),
search: function(a, b) {
switch (arguments.length) {
case 0:
return this.$$search;
case 1:
if (x(a) || y(a)) a = a.toString(), this.$$search = aa(a);
else {
if (!v(a)) throw $e("isrcharg", "The first argument of the `$location#search()` call must be a string or an object.");
a = O(a, {}), f(a, function(b, c) {
null == b && delete a[c]
}), this.$$search = a
}
break;
default:
t(b) || null === b ? delete this.$$search[a] : this.$$search[a] = b
}
return this.$$compose(), this
},
hash: Tb("$$hash", function(a) {
return null !== a ? a.toString() : ""
}),
replace: function() {
return this.$$replace = !0, this
}
};
f([Rb, Qb, Pb], function(a) {
a.prototype = Object.create(_e), a.prototype.state = function(b) {
if (!arguments.length) return this.$$state;
if (a !== Pb || !this.$$html5) throw $e("nostate", "History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");
return this.$$state = t(b) ? null : b, this
}
});
var af = d("$parse"),
bf = Function.prototype.call,
cf = Function.prototype.apply,
df = Function.prototype.bind,
ef = qa();
f("+ - * / % === !== == != < > <= >= && || ! = |".split(" "), function(a) {
ef[a] = !0
});
var ff = {
n: "\n",
f: "\f",
r: "\r",
t: " ",
v: " ",
"'": "'",
'"': '"'
},
gf = function(a) {
this.options = a
};
gf.prototype = {
constructor: gf,
lex: function(a) {
for (this.text = a, this.index = 0, this.tokens = []; this.index < this.text.length;) {
var b = this.text.charAt(this.index);
if ('"' === b || "'" === b) this.readString(b);
else if (this.isNumber(b) || "." === b && this.isNumber(this.peek())) this.readNumber();
else if (this.isIdent(b)) this.readIdent();
else if (this.is(b, "(){}[].,;:?")) this.tokens.push({
index: this.index,
text: b
}), this.index++;
else if (this.isWhitespace(b)) this.index++;
else {
var c = b + this.peek(),
d = c + this.peek(2),
e = ef[b],
f = ef[c],
g = ef[d];
if (e || f || g) {
var h = g ? d : f ? c : b;
this.tokens.push({
index: this.index,
text: h,
operator: !0
}), this.index += h.length
} else 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) {
var b = a || 1;
return this.index + b < this.text.length ? this.text.charAt(this.index + b) : !1
},
isNumber: function(a) {
return a >= "0" && "9" >= a && "string" == typeof a
},
isWhitespace: function(a) {
return " " === a || "\r" === a || " " === a || "\n" === a || " " === a || " " === a
},
isIdent: function(a) {
return a >= "a" && "z" >= a || a >= "A" && "Z" >= a || "_" === a || "$" === a
},
isExpOperator: function(a) {
return "-" === a || "+" === a || this.isNumber(a)
},
throwError: function(a, b, c) {
c = c || this.index;
var d = u(b) ? "s " + b + "-" + this.index + " [" + this.text.substring(b, c) + "]" : " " + c;
throw af("lexerr", "Lexer Error: {0} at column{1} in expression [{2}].", a, d, this.text)
},
readNumber: function() {
for (var a = "", b = this.index; this.index < this.text.length;) {
var c = yd(this.text.charAt(this.index));
if ("." == c || this.isNumber(c)) a += c;
else {
var d = this.peek();
if ("e" == c && this.isExpOperator(d)) a += c;
else if (this.isExpOperator(c) && d && this.isNumber(d) && "e" == a.charAt(a.length - 1)) a += c;
else {
if (!this.isExpOperator(c) || d && this.isNumber(d) || "e" != a.charAt(a.length - 1)) break;
this.throwError("Invalid exponent")
}
}
this.index++
}
this.tokens.push({
index: b,
text: a,
constant: !0,
value: Number(a)
})
},
readIdent: function() {
for (var a = this.index; this.index < this.text.length;) {
var b = this.text.charAt(this.index);
if (!this.isIdent(b) && !this.isNumber(b)) break;
this.index++
}
this.tokens.push({
index: a,
text: this.text.slice(a, this.index),
identifier: !0
})
},
readString: function(a) {
var b = this.index;
this.index++;
for (var c = "", d = a, e = !1; this.index < this.text.length;) {
var f = this.text.charAt(this.index);
if (d += f, e) {
if ("u" === f) {
var g = this.text.substring(this.index + 1, this.index + 5);
g.match(/[\da-f]{4}/i) || this.throwError("Invalid unicode escape [\\u" + g + "]"), this.index += 4, c += String.fromCharCode(parseInt(g, 16))
} else {
var h = ff[f];
c += h || f
}
e = !1
} else if ("\\" === f) e = !0;
else {
if (f === a) return this.index++, void this.tokens.push({
index: b,
text: d,
constant: !0,
value: c
});
c += f
}
this.index++
}
this.throwError("Unterminated quote", b)
}
};
var hf = function(a, b) {
this.lexer = a, this.options = b
};
hf.Program = "Program", hf.ExpressionStatement = "ExpressionStatement", hf.AssignmentExpression = "AssignmentExpression", hf.ConditionalExpression = "ConditionalExpression", hf.LogicalExpression = "LogicalExpression", hf.BinaryExpression = "BinaryExpression", hf.UnaryExpression = "UnaryExpression", hf.CallExpression = "CallExpression", hf.MemberExpression = "MemberExpression", hf.Identifier = "Identifier", hf.Literal = "Literal", hf.ArrayExpression = "ArrayExpression", hf.Property = "Property", hf.ObjectExpression = "ObjectExpression", hf.ThisExpression = "ThisExpression", hf.NGValueParameter = "NGValueParameter", hf.prototype = {
ast: function(a) {
this.text = a, this.tokens = this.lexer.lex(a);
var b = this.program();
return 0 !== this.tokens.length && this.throwError("is an unexpected token", this.tokens[0]), b
},
program: function() {
for (var a = [];;)
if (this.tokens.length > 0 && !this.peek("}", ")", ";", "]") && a.push(this.expressionStatement()), !this.expect(";")) return {
type: hf.Program,
body: a
}
},
expressionStatement: function() {
return {
type: hf.ExpressionStatement,
expression: this.filterChain()
}
},
filterChain: function() {
for (var a, b = this.expression(); a = this.expect("|");) b = this.filter(b);
return b
},
expression: function() {
return this.assignment()
},
assignment: function() {
var a = this.ternary();
return this.expect("=") && (a = {
type: hf.AssignmentExpression,
left: a,
right: this.assignment(),
operator: "="
}), a
},
ternary: function() {
var a, b, c = this.logicalOR();
return this.expect("?") && (a = this.expression(), this.consume(":")) ? (b = this.expression(), {
type: hf.ConditionalExpression,
test: c,
alternate: a,
consequent: b
}) : c
},
logicalOR: function() {
for (var a = this.logicalAND(); this.expect("||");) a = {
type: hf.LogicalExpression,
operator: "||",
left: a,
right: this.logicalAND()
};
return a
},
logicalAND: function() {
for (var a = this.equality(); this.expect("&&");) a = {
type: hf.LogicalExpression,
operator: "&&",
left: a,
right: this.equality()
};
return a
},
equality: function() {
for (var a, b = this.relational(); a = this.expect("==", "!=", "===", "!==");) b = {
type: hf.BinaryExpression,
operator: a.text,
left: b,
right: this.relational()
};
return b
},
relational: function() {
for (var a, b = this.additive(); a = this.expect("<", ">", "<=", ">=");) b = {
type: hf.BinaryExpression,
operator: a.text,
left: b,
right: this.additive()
};
return b
},
additive: function() {
for (var a, b = this.multiplicative(); a = this.expect("+", "-");) b = {
type: hf.BinaryExpression,
operator: a.text,
left: b,
right: this.multiplicative()
};
return b
},
multiplicative: function() {
for (var a, b = this.unary(); a = this.expect("*", "/", "%");) b = {
type: hf.BinaryExpression,
operator: a.text,
left: b,
right: this.unary()
};
return b
},
unary: function() {
var a;
return (a = this.expect("+", "-", "!")) ? {
type: hf.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 = O(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: hf.CallExpression,
callee: a,
arguments: this.parseArguments()
}, this.consume(")")) : "[" === b.text ? (a = {
type: hf.MemberExpression,
object: a,
property: this.expression(),
computed: !0
}, this.consume("]")) : "." === b.text ? a = {
type: hf.MemberExpression,
object: a,
property: this.identifier(),
computed: !1
} : this.throwError("IMPOSSIBLE");
return a
},
filter: function(a) {
for (var b = [a], c = {
type: hf.CallExpression,
callee: this.identifier(),
arguments: b,
filter: !0
}; this.expect(":");) b.push(this.expression());
return c
},
parseArguments: function() {
var a = [];
if (")" !== this.peekToken().text)
do a.push(this.expression()); while (this.expect(","));
return a
},
identifier: function() {
var a = this.consume();
return a.identifier || this.throwError("is not a valid identifier", a), {
type: hf.Identifier,
name: a.text
}
},
constant: function() {
return {
type: hf.Literal,
value: this.consume().value
}
},
arrayDeclaration: function() {
var a = [];
if ("]" !== this.peekToken().text)
do {
if (this.peek("]")) break;
a.push(this.expression())
} while (this.expect(","));
return this.consume("]"), {
type: hf.ArrayExpression,
elements: a
}
},
object: function() {
var a, b = [];
if ("}" !== this.peekToken().text)
do {
if (this.peek("}")) break;
a = {
type: hf.Property,
kind: "init"
}, this.peek().constant ? a.key = this.constant() : this.peek().identifier ? a.key = this.identifier() : this.throwError("invalid key", this.peek()), this.consume(":"), a.value = this.expression(), b.push(a)
} while (this.expect(","));
return this.consume("}"), {
type: hf.ObjectExpression,
properties: b
}
},
throwError: function(a, b) {
throw af("syntax", "Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].", b.text, a, b.index + 1, this.text, this.text.substring(b.index))
},
consume: function(a) {
if (0 === this.tokens.length) throw af("ueoe", "Unexpected end of expression: {0}", this.text);
var b = this.expect(a);
return b || this.throwError("is unexpected, expecting [" + a + "]", this.peek()), b
},
peekToken: function() {
if (0 === this.tokens.length) throw af("ueoe", "Unexpected end of expression: {0}", this.text);
return this.tokens[0]
},
peek: function(a, b, c, d) {
return this.peekAhead(0, a, b, c, d)
},
peekAhead: function(a, b, c, d, e) {
if (this.tokens.length > a) {
var f = this.tokens[a],
g = f.text;
if (g === b || g === c || g === d || g === e || !b && !c && !d && !e) return f
}
return !1
},
expect: function(a, b, c, d) {
var e = this.peek(a, b, c, d);
return e ? (this.tokens.shift(), e) : !1
},
constants: {
"true": {
type: hf.Literal,
value: !0
},
"false": {
type: hf.Literal,
value: !1
},
"null": {
type: hf.Literal,
value: null
},
undefined: {
type: hf.Literal,
value: c
},
"this": {
type: hf.ThisExpression
}
}
}, ic.prototype = {
compile: function(a, b) {
var d = this,
e = this.astBuilder.ast(a);
this.state = {
nextId: 0,
filters: {},
expensiveChecks: b,
fn: {
vars: [],
body: [],
own: {}
},
assign: {
vars: [],
body: [],
own: {}
},
inputs: []
}, cc(e, d.$filter);
var g, h = "";
if (this.stage = "assign", g = fc(e)) {
this.state.computing = "assign";
var i = this.nextId();
this.recurse(g, i), this.return_(i), h = "fn.assign=" + this.generateFunction("assign", "s,v,l")
}
var j = dc(e.body);
d.stage = "inputs", f(j, function(a, b) {
var c = "fn" + b;
d.state[c] = {
vars: [],
body: [],
own: {}
}, d.state.computing = c;
var e = d.nextId();
d.recurse(a, e), d.return_(e), d.state.inputs.push(c), a.watchId = b
}), this.state.computing = "fn", this.stage = "main", this.recurse(e);
var k = '"' + this.USE + " " + this.STRICT + '";\n' + this.filterPrefix() + "var fn=" + this.generateFunction("fn", "s,l,a,i") + h + this.watchFns() + "return fn;",
l = new Function("$filter", "ensureSafeMemberName", "ensureSafeObject", "ensureSafeFunction", "getStringValue", "ensureSafeAssignContext", "ifDefined", "plus", "text", k)(this.$filter, Wb, Yb, Zb, Xb, $b, _b, ac, a);
return this.state = this.stage = c, l.literal = gc(e), l.constant = hc(e), l
},
USE: "use",
STRICT: "strict",
watchFns: function() {
var a = [],
b = this.state.inputs,
c = this;
return f(b, function(b) {
a.push("var " + b + "=" + c.generateFunction(b, "s"))
}), b.length && a.push("fn.inputs=[" + b.join(",") + "];"), a.join("")
},
generateFunction: function(a, b) {
return "function(" + b + "){" + this.varsPrefix(a) + this.body(a) + "};"
},
filterPrefix: function() {
var a = [],
b = this;
return f(this.state.filters, function(c, d) {
a.push(c + "=$filter(" + b.escape(d) + ")")
}), a.length ? "var " + a.join(",") + ";" : ""
},
varsPrefix: function(a) {
return this.state[a].vars.length ? "var " + this.state[a].vars.join(",") + ";" : ""
},
body: function(a) {
return this.state[a].body.join("")
},
recurse: function(a, b, d, e, g, h) {
var i, j, k, l, m = this;
if (e = e || p, !h && u(a.watchId)) return b = b || this.nextId(), void this.if_("i", this.lazyAssign(b, this.computedMember("i", a.watchId)), this.lazyRecurse(a, b, d, e, g, !0));
switch (a.type) {
case hf.Program:
f(a.body, function(b, d) {
m.recurse(b.expression, c, c, function(a) {
j = a
}), d !== a.body.length - 1 ? m.current().body.push(j, ";") : m.return_(j)
});
break;
case hf.Literal:
l = this.escape(a.value), this.assign(b, l), e(l);
break;
case hf.UnaryExpression:
this.recurse(a.argument, c, c, function(a) {
j = a
}), l = a.operator + "(" + this.ifDefined(j, 0) + ")", this.assign(b, l), e(l);
break;
case hf.BinaryExpression:
this.recurse(a.left, c, c, function(a) {
i = a
}), this.recurse(a.right, c, c, function(a) {
j = a
}), l = "+" === a.operator ? this.plus(i, j) : "-" === a.operator ? this.ifDefined(i, 0) + a.operator + this.ifDefined(j, 0) : "(" + i + ")" + a.operator + "(" + j + ")", this.assign(b, l), e(l);
break;
case hf.LogicalExpression:
b = b || this.nextId(), m.recurse(a.left, b), m.if_("&&" === a.operator ? b : m.not(b), m.lazyRecurse(a.right, b)), e(b);
break;
case hf.ConditionalExpression:
b = b || this.nextId(), m.recurse(a.test, b), m.if_(b, m.lazyRecurse(a.alternate, b), m.lazyRecurse(a.consequent, b)), e(b);
break;
case hf.Identifier:
b = b || this.nextId(), d && (d.context = "inputs" === m.stage ? "s" : this.assign(this.nextId(), this.getHasOwnProperty("l", a.name) + "?l:s"), d.computed = !1, d.name = a.name), Wb(a.name), m.if_("inputs" === m.stage || m.not(m.getHasOwnProperty("l", a.name)), function() {
m.if_("inputs" === m.stage || "s", function() {
g && 1 !== g && m.if_(m.not(m.nonComputedMember("s", a.name)), m.lazyAssign(m.nonComputedMember("s", a.name), "{}")), m.assign(b, m.nonComputedMember("s", a.name))
})
}, b && m.lazyAssign(b, m.nonComputedMember("l", a.name))), (m.state.expensiveChecks || kc(a.name)) && m.addEnsureSafeObject(b), e(b);
break;
case hf.MemberExpression:
i = d && (d.context = this.nextId()) || this.nextId(), b = b || this.nextId(), m.recurse(a.object, i, c, function() {
m.if_(m.notNull(i), function() {
a.computed ? (j = m.nextId(), m.recurse(a.property, j), m.getStringValue(j), m.addEnsureSafeMemberName(j), g && 1 !== g && m.if_(m.not(m.computedMember(i, j)), m.lazyAssign(m.computedMember(i, j), "{}")), l = m.ensureSafeObject(m.computedMember(i, j)), m.assign(b, l), d && (d.computed = !0, d.name = j)) : (Wb(a.property.name), g && 1 !== g && m.if_(m.not(m.nonComputedMember(i, a.property.name)), m.lazyAssign(m.nonComputedMember(i, a.property.name), "{}")), l = m.nonComputedMember(i, a.property.name), (m.state.expensiveChecks || kc(a.property.name)) && (l = m.ensureSafeObject(l)), m.assign(b, l), d && (d.computed = !1, d.name = a.property.name))
}, function() {
m.assign(b, "undefined")
}), e(b)
}, !!g);
break;
case hf.CallExpression:
b = b || this.nextId(), a.filter ? (j = m.filter(a.callee.name), k = [], f(a.arguments, function(a) {
var b = m.nextId();
m.recurse(a, b), k.push(b)
}), l = j + "(" + k.join(",") + ")", m.assign(b, l), e(b)) : (j = m.nextId(), i = {}, k = [], m.recurse(a.callee, j, i, function() {
m.if_(m.notNull(j), function() {
m.addEnsureSafeFunction(j), f(a.arguments, function(a) {
m.recurse(a, m.nextId(), c, function(a) {
k.push(m.ensureSafeObject(a))
})
}), i.name ? (m.state.expensiveChecks || m.addEnsureSafeObject(i.context), l = m.member(i.context, i.name, i.computed) + "(" + k.join(",") + ")") : l = j + "(" + k.join(",") + ")", l = m.ensureSafeObject(l), m.assign(b, l)
}, function() {
m.assign(b, "undefined")
}), e(b)
}));
break;
case hf.AssignmentExpression:
if (j = this.nextId(), i = {}, !ec(a.left)) throw af("lval", "Trying to assign a value to a non l-value");
this.recurse(a.left, c, i, function() {
m.if_(m.notNull(i.context), function() {
m.recurse(a.right, j), m.addEnsureSafeObject(m.member(i.context, i.name, i.computed)), m.addEnsureSafeAssignContext(i.context), l = m.member(i.context, i.name, i.computed) + a.operator + j, m.assign(b, l), e(b || l)
})
}, 1);
break;
case hf.ArrayExpression:
k = [], f(a.elements, function(a) {
m.recurse(a, m.nextId(), c, function(a) {
k.push(a)
})
}), l = "[" + k.join(",") + "]", this.assign(b, l), e(l);
break;
case hf.ObjectExpression:
k = [], f(a.properties, function(a) {
m.recurse(a.value, m.nextId(), c, function(b) {
k.push(m.escape(a.key.type === hf.Identifier ? a.key.name : "" + a.key.value) + ":" + b)
})
}), l = "{" + k.join(",") + "}", this.assign(b, l), e(l);
break;
case hf.ThisExpression:
this.assign(b, "s"), e("s");
break;
case hf.NGValueParameter:
this.assign(b, "v"), e("v")
}
},
getHasOwnProperty: function(a, b) {
var c = a + "." + b,
d = this.current().own;
return d.hasOwnProperty(c) || (d[c] = this.nextId(!1, a + "&&(" + this.escape(b) + " in " + a + ")")),
d[c]
},
assign: function(a, b) {
return a ? (this.current().body.push(a, "=", b, ";"), a) : void 0
},
filter: function(a) {
return this.state.filters.hasOwnProperty(a) || (this.state.filters[a] = this.nextId(!0)), this.state.filters[a]
},
ifDefined: function(a, b) {
return "ifDefined(" + a + "," + this.escape(b) + ")"
},
plus: function(a, b) {
return "plus(" + a + "," + b + ")"
},
return_: function(a) {
this.current().body.push("return ", a, ";")
},
if_: function(a, b, c) {
if (a === !0) b();
else {
var d = this.current().body;
d.push("if(", a, "){"), b(), d.push("}"), c && (d.push("else{"), c(), d.push("}"))
}
},
not: function(a) {
return "!(" + a + ")"
},
notNull: function(a) {
return a + "!=null"
},
nonComputedMember: function(a, b) {
return a + "." + b
},
computedMember: function(a, b) {
return a + "[" + b + "]"
},
member: function(a, b, c) {
return c ? this.computedMember(a, b) : this.nonComputedMember(a, b)
},
addEnsureSafeObject: function(a) {
this.current().body.push(this.ensureSafeObject(a), ";")
},
addEnsureSafeMemberName: function(a) {
this.current().body.push(this.ensureSafeMemberName(a), ";")
},
addEnsureSafeFunction: function(a) {
this.current().body.push(this.ensureSafeFunction(a), ";")
},
addEnsureSafeAssignContext: function(a) {
this.current().body.push(this.ensureSafeAssignContext(a), ";")
},
ensureSafeObject: function(a) {
return "ensureSafeObject(" + a + ",text)"
},
ensureSafeMemberName: function(a) {
return "ensureSafeMemberName(" + a + ",text)"
},
ensureSafeFunction: function(a) {
return "ensureSafeFunction(" + a + ",text)"
},
getStringValue: function(a) {
this.assign(a, "getStringValue(" + a + ",text)")
},
ensureSafeAssignContext: function(a) {
return "ensureSafeAssignContext(" + a + ",text)"
},
lazyRecurse: function(a, b, c, d, e, f) {
var g = this;
return function() {
g.recurse(a, b, c, d, e, f)
}
},
lazyAssign: function(a, b) {
var c = this;
return function() {
c.assign(a, b)
}
},
stringEscapeRegex: /[^ a-zA-Z0-9]/g,
stringEscapeFn: function(a) {
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)
},
escape: function(a) {
if (x(a)) return "'" + a.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'";
if (y(a)) return a.toString();
if (a === !0) return "true";
if (a === !1) return "false";
if (null === a) return "null";
if ("undefined" == typeof a) return "undefined";
throw af("esc", "IMPOSSIBLE")
},
nextId: function(a, b) {
var c = "v" + this.state.nextId++;
return a || this.current().vars.push(c + (b ? "=" + b : "")), c
},
current: function() {
return this.state[this.state.computing]
}
}, jc.prototype = {
compile: function(a, b) {
var c = this,
d = this.astBuilder.ast(a);
this.expression = a, this.expensiveChecks = b, cc(d, c.$filter);
var e, g;
(e = fc(d)) && (g = this.recurse(e));
var h, i = dc(d.body);
i && (h = [], f(i, function(a, b) {
var d = c.recurse(a);
a.input = d, h.push(d), a.watchId = b
}));
var j = [];
f(d.body, function(a) {
j.push(c.recurse(a.expression))
});
var k = 0 === d.body.length ? function() {} : 1 === d.body.length ? j[0] : function(a, b) {
var c;
return f(j, function(d) {
c = d(a, b)
}), c
};
return g && (k.assign = function(a, b, c) {
return g(a, c, b)
}), h && (k.inputs = h), k.literal = gc(d), k.constant = hc(d), k
},
recurse: function(a, b, d) {
var e, g, h, i = this;
if (a.input) return this.inputs(a.input, a.watchId);
switch (a.type) {
case hf.Literal:
return this.value(a.value, b);
case hf.UnaryExpression:
return g = this.recurse(a.argument), this["unary" + a.operator](g, b);
case hf.BinaryExpression:
return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b);
case hf.LogicalExpression:
return e = this.recurse(a.left), g = this.recurse(a.right), this["binary" + a.operator](e, g, b);
case hf.ConditionalExpression:
return this["ternary?:"](this.recurse(a.test), this.recurse(a.alternate), this.recurse(a.consequent), b);
case hf.Identifier:
return Wb(a.name, i.expression), i.identifier(a.name, i.expensiveChecks || kc(a.name), b, d, i.expression);
case hf.MemberExpression:
return e = this.recurse(a.object, !1, !!d), a.computed || (Wb(a.property.name, i.expression), g = a.property.name), a.computed && (g = this.recurse(a.property)), a.computed ? this.computedMember(e, g, b, d, i.expression) : this.nonComputedMember(e, g, i.expensiveChecks, b, d, i.expression);
case hf.CallExpression:
return h = [], f(a.arguments, function(a) {
h.push(i.recurse(a))
}), a.filter && (g = this.$filter(a.callee.name)), a.filter || (g = this.recurse(a.callee, !0)), a.filter ? function(a, d, e, f) {
for (var i = [], j = 0; j < h.length; ++j) i.push(h[j](a, d, e, f));
var k = g.apply(c, i, f);
return b ? {
context: c,
name: c,
value: k
} : k
} : function(a, c, d, e) {
var f, j = g(a, c, d, e);
if (null != j.value) {
Yb(j.context, i.expression), Zb(j.value, i.expression);
for (var k = [], l = 0; l < h.length; ++l) k.push(Yb(h[l](a, c, d, e), i.expression));
f = Yb(j.value.apply(j.context, k), i.expression)
}
return b ? {
value: f
} : f
};
case hf.AssignmentExpression:
return e = this.recurse(a.left, !0, 1), g = this.recurse(a.right),
function(a, c, d, f) {
var h = e(a, c, d, f),
j = g(a, c, d, f);
return Yb(h.value, i.expression), $b(h.context), h.context[h.name] = j, b ? {
value: j
} : j
};
case hf.ArrayExpression:
return h = [], f(a.elements, function(a) {
h.push(i.recurse(a))
}),
function(a, c, d, e) {
for (var f = [], g = 0; g < h.length; ++g) f.push(h[g](a, c, d, e));
return b ? {
value: f
} : f
};
case hf.ObjectExpression:
return h = [], f(a.properties, function(a) {
h.push({
key: a.key.type === hf.Identifier ? a.key.name : "" + a.key.value,
value: i.recurse(a.value)
})
}),
function(a, c, d, e) {
for (var f = {}, g = 0; g < h.length; ++g) f[h[g].key] = h[g].value(a, c, d, e);
return b ? {
value: f
} : f
};
case hf.ThisExpression:
return function(a) {
return b ? {
value: a
} : a
};
case hf.NGValueParameter:
return function(a, c, d, e) {
return b ? {
value: d
} : d
}
}
},
"unary+": function(a, b) {
return function(c, d, e, f) {
var g = a(c, d, e, f);
return g = u(g) ? +g : 0, b ? {
value: g
} : g
}
},
"unary-": function(a, b) {
return function(c, d, e, f) {
var g = a(c, d, e, f);
return g = u(g) ? -g : 0, b ? {
value: g
} : g
}
},
"unary!": function(a, b) {
return function(c, d, e, f) {
var g = !a(c, d, e, f);
return b ? {
value: g
} : g
}
},
"binary+": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g),
i = b(d, e, f, g),
j = ac(h, i);
return c ? {
value: j
} : j
}
},
"binary-": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g),
i = b(d, e, f, g),
j = (u(h) ? h : 0) - (u(i) ? i : 0);
return c ? {
value: j
} : j
}
},
"binary*": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) * b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary/": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) / b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary%": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) % b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary===": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) === b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary!==": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) !== b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary==": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) == b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary!=": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) != b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary<": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) < b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary>": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) > b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary<=": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) <= b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary>=": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) >= b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary&&": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) && b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"binary||": function(a, b, c) {
return function(d, e, f, g) {
var h = a(d, e, f, g) || b(d, e, f, g);
return c ? {
value: h
} : h
}
},
"ternary?:": function(a, b, c, d) {
return function(e, f, g, h) {
var i = a(e, f, g, h) ? b(e, f, g, h) : c(e, f, g, h);
return d ? {
value: i
} : i
}
},
value: function(a, b) {
return function() {
return b ? {
context: c,
name: c,
value: a
} : a
}
},
identifier: function(a, b, d, e, f) {
return function(g, h, i, j) {
var k = h && a in h ? h : g;
e && 1 !== e && k && !k[a] && (k[a] = {});
var l = k ? k[a] : c;
return b && Yb(l, f), d ? {
context: k,
name: a,
value: l
} : l
}
},
computedMember: function(a, b, c, d, e) {
return function(f, g, h, i) {
var j, k, l = a(f, g, h, i);
return null != l && (j = b(f, g, h, i), j = Xb(j), Wb(j, e), d && 1 !== d && l && !l[j] && (l[j] = {}), k = l[j], Yb(k, e)), c ? {
context: l,
name: j,
value: k
} : k
}
},
nonComputedMember: function(a, b, d, e, f, g) {
return function(h, i, j, k) {
var l = a(h, i, j, k);
f && 1 !== f && l && !l[b] && (l[b] = {});
var m = null != l ? l[b] : c;
return (d || kc(b)) && Yb(m, g), e ? {
context: l,
name: b,
value: m
} : m
}
},
inputs: function(a, b) {
return function(c, d, e, f) {
return f ? f[b] : a(c, d, e)
}
}
};
var jf = function(a, b, c) {
this.lexer = a, this.$filter = b, this.options = c, this.ast = new hf(this.lexer), this.astCompiler = c.csp ? new jc(this.ast, b) : new ic(this.ast, b)
};
jf.prototype = {
constructor: jf,
parse: function(a) {
return this.astCompiler.compile(a, this.options.expensiveChecks)
}
};
var kf = Object.prototype.valueOf,
lf = d("$sce"),
mf = {
HTML: "html",
CSS: "css",
URL: "url",
RESOURCE_URL: "resourceUrl",
JS: "js"
},
Le = d("$compile"),
nf = b.createElement("a"),
of = Bc(a.location.href);
Ec.$inject = ["$document"], Gc.$inject = ["$provide"];
var pf = 22,
qf = ".",
rf = "0";
Lc.$inject = ["$locale"], Mc.$inject = ["$locale"];
var sf = {
yyyy: Rc("FullYear", 4),
yy: Rc("FullYear", 2, 0, !0),
y: Rc("FullYear", 1),
MMMM: Sc("Month"),
MMM: Sc("Month", !0),
MM: Rc("Month", 2, 1),
M: Rc("Month", 1, 1),
dd: Rc("Date", 2),
d: Rc("Date", 1),
HH: Rc("Hours", 2),
H: Rc("Hours", 1),
hh: Rc("Hours", 2, -12),
h: Rc("Hours", 1, -12),
mm: Rc("Minutes", 2),
m: Rc("Minutes", 1),
ss: Rc("Seconds", 2),
s: Rc("Seconds", 1),
sss: Rc("Milliseconds", 3),
EEEE: Sc("Day"),
EEE: Sc("Day", !0),
a: Xc,
Z: Tc,
ww: Wc(2),
w: Wc(1),
G: Yc,
GG: Yc,
GGG: Yc,
GGGG: Zc
},
tf = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
uf = /^\-?\d+$/;
$c.$inject = ["$locale"];
var vf = r(yd),
wf = r(Ad);
bd.$inject = ["$parse"];
var xf = r({
restrict: "E",
compile: function(a, b) {
return b.href || b.xlinkHref ? void 0 : function(a, b) {
if ("a" === b[0].nodeName.toLowerCase()) {
var c = "[object SVGAnimatedString]" === Kd.call(b.prop("href")) ? "xlink:href" : "href";
b.on("click", function(a) {
b.attr(c) || a.preventDefault()
})
}
}
}
}),
yf = {};
f(te, function(a, b) {
function c(a, c, e) {
a.$watch(e[d], function(a) {
e.$set(b, !!a)
})
}
if ("multiple" != a) {
var d = lb("ng-" + b),
e = c;
"checked" === a && (e = function(a, b, e) {
e.ngModel !== e[d] && c(a, b, e)
}), yf[d] = function() {
return {
restrict: "A",
priority: 100,
link: e
}
}
}
}), f(ve, function(a, b) {
yf[b] = function() {
return {
priority: 100,
link: function(a, c, d) {
if ("ngPattern" === b && "/" == d.ngPattern.charAt(0)) {
var e = d.ngPattern.match(wd);
if (e) return void d.$set("ngPattern", new RegExp(e[1], e[2]))
}
a.$watch(d[b], function(a) {
d.$set(b, a)
})
}
}
}
}), f(["src", "srcset", "href"], function(a) {
var b = lb("ng-" + a);
yf[b] = function() {
return {
priority: 99,
link: function(c, d, e) {
var f = a,
g = a;
"href" === a && "[object SVGAnimatedString]" === Kd.call(d.prop("href")) && (g = "xlinkHref", e.$attr[g] = "xlink:href", f = null), e.$observe(b, function(b) {
return b ? (e.$set(g, b), void(Dd && f && d.prop(f, e[g]))) : void("href" === a && e.$set(g, null))
})
}
}
}
});
var zf = {
$addControl: p,
$$renameControl: dd,
$removeControl: p,
$setValidity: p,
$setDirty: p,
$setPristine: p,
$setSubmitted: p
},
Af = "ng-submitted";
ed.$inject = ["$element", "$attrs", "$scope", "$animate", "$interpolate"];
var Bf = function(a) {
return ["$timeout", "$parse", function(b, d) {
function e(a) {
return "" === a ? d('this[""]').assign : d(a).assign || p
}
var f = {
name: "form",
restrict: a ? "EAC" : "E",
require: ["form", "^^?form"],
controller: ed,
compile: function(d, f) {
d.addClass(hg).addClass(fg);
var g = f.name ? "name" : a && f.ngForm ? "ngForm" : !1;
return {
pre: function(a, d, f, h) {
var i = h[0];
if (!("action" in f)) {
var j = function(b) {
a.$apply(function() {
i.$commitViewValue(), i.$setSubmitted()
}), b.preventDefault()
};
ge(d[0], "submit", j), d.on("$destroy", function() {
b(function() {
he(d[0], "submit", j)
}, 0, !1)
})
}
var k = h[1] || i.$$parentForm;
k.$addControl(i);
var m = g ? e(i.$name) : p;
g && (m(a, i), f.$observe(g, function(b) {
i.$name !== b && (m(a, c), i.$$parentForm.$$renameControl(i, b), (m = e(i.$name))(a, i))
})), d.on("$destroy", function() {
i.$$parentForm.$removeControl(i), m(a, c), l(i, zf)
})
}
}
}
};
return f
}]
},
Cf = Bf(),
Df = Bf(!0),
Ef = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,
Ff = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,
Gf = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,
Hf = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,
If = /^(\d{4})-(\d{2})-(\d{2})$/,
Jf = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
Kf = /^(\d{4})-W(\d\d)$/,
Lf = /^(\d{4})-(\d\d)$/,
Mf = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,
Nf = {
text: gd,
date: kd("date", If, jd(If, ["yyyy", "MM", "dd"]), "yyyy-MM-dd"),
"datetime-local": kd("datetimelocal", Jf, jd(Jf, ["yyyy", "MM", "dd", "HH", "mm", "ss", "sss"]), "yyyy-MM-ddTHH:mm:ss.sss"),
time: kd("time", Mf, jd(Mf, ["HH", "mm", "ss", "sss"]), "HH:mm:ss.sss"),
week: kd("week", Kf, id, "yyyy-Www"),
month: kd("month", Lf, jd(Lf, ["yyyy", "MM"]), "yyyy-MM"),
number: md,
url: nd,
email: od,
radio: pd,
checkbox: rd,
hidden: p,
button: p,
submit: p,
reset: p,
file: p
},
Of = ["$browser", "$sniffer", "$filter", "$parse", function(a, b, c, d) {
return {
restrict: "E",
require: ["?ngModel"],
link: {
pre: function(e, f, g, h) {
h[0] && (Nf[yd(g.type)] || Nf.text)(e, f, g, h[0], b, a, c, d)
}
}
}
}],
Pf = /^(true|false|\d+)$/,
Qf = function() {
return {
restrict: "A",
priority: 100,
compile: function(a, b) {
return Pf.test(b.ngValue) ? function(a, b, c) {
c.$set("value", a.$eval(c.ngValue))
} : function(a, b, c) {
a.$watch(c.ngValue, function(a) {
c.$set("value", a)
})
}
}
}
},
Rf = ["$compile", function(a) {
return {
restrict: "AC",
compile: function(b) {
return a.$$addBindingClass(b),
function(b, c, d) {
a.$$addBindingInfo(c, d.ngBind), c = c[0], b.$watch(d.ngBind, function(a) {
c.textContent = t(a) ? "" : a
})
}
}
}
}],
Sf = ["$interpolate", "$compile", function(a, b) {
return {
compile: function(c) {
return b.$$addBindingClass(c),
function(c, d, e) {
var f = a(d.attr(e.$attr.ngBindTemplate));
b.$$addBindingInfo(d, f.expressions), d = d[0], e.$observe("ngBindTemplate", function(a) {
d.textContent = t(a) ? "" : a
})
}
}
}
}],
Tf = ["$sce", "$parse", "$compile", function(a, b, c) {
return {
restrict: "A",
compile: function(d, e) {
var f = b(e.ngBindHtml),
g = b(e.ngBindHtml, function(a) {
return (a || "").toString()
});
return c.$$addBindingClass(d),
function(b, d, e) {
c.$$addBindingInfo(d, e.ngBindHtml), b.$watch(g, function() {
d.html(a.getTrustedHtml(f(b)) || "")
})
}
}
}
}],
Uf = r({
restrict: "A",
require: "ngModel",
link: function(a, b, c, d) {
d.$viewChangeListeners.push(function() {
a.$eval(c.ngChange)
})
}
}),
Vf = sd("", !0),
Wf = sd("Odd", 0),
Xf = sd("Even", 1),
Yf = cd({
compile: function(a, b) {
b.$set("ngCloak", c), a.removeClass("ng-cloak")
}
}),
Zf = [function() {
return {
restrict: "A",
scope: !0,
controller: "@",
priority: 500
}
}],
$f = {},
_f = {
blur: !0,
focus: !0
};
f("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a) {
var b = lb("ng-" + a);
$f[b] = ["$parse", "$rootScope", function(c, d) {
return {
restrict: "A",
compile: function(e, f) {
var g = c(f[b], null, !0);
return function(b, c) {
c.on(a, function(c) {
var e = function() {
g(b, {
$event: c
})
};
_f[a] && d.$$phase ? b.$evalAsync(e) : b.$apply(e)
})
}
}
}
}]
});
var ag = ["$animate", function(a) {
return {
multiElement: !0,
transclude: "element",
priority: 600,
terminal: !0,
restrict: "A",
$$tlb: !0,
link: function(c, d, e, f, g) {
var h, i, j;
c.$watch(e.ngIf, function(c) {
c ? i || g(function(c, f) {
i = f, c[c.length++] = b.createComment(" end ngIf: " + e.ngIf + " "), h = {
clone: c
}, a.enter(c, d.parent(), d)
}) : (j && (j.remove(), j = null), i && (i.$destroy(), i = null), h && (j = pa(h.clone), a.leave(j).then(function() {
j = null
}), h = null))
})
}
}
}],
bg = ["$templateRequest", "$anchorScroll", "$animate", function(a, b, c) {
return {
restrict: "ECA",
priority: 400,
terminal: !0,
transclude: "element",
controller: Nd.noop,
compile: function(d, e) {
var f = e.ngInclude || e.src,
g = e.onload || "",
h = e.autoscroll;
return function(d, e, i, j, k) {
var l, m, n, o = 0,
p = function() {
m && (m.remove(), m = null), l && (l.$destroy(), l = null), n && (c.leave(n).then(function() {
m = null
}), m = n, n = null)
};
d.$watch(f, function(f) {
var i = function() {
!u(h) || h && !d.$eval(h) || b()
},
m = ++o;
f ? (a(f, !0).then(function(a) {
if (!d.$$destroyed && m === o) {
var b = d.$new();
j.template = a;
var h = k(b, function(a) {
p(), c.enter(a, null, e).then(i)
});
l = b, n = h, l.$emit("$includeContentLoaded", f), d.$eval(g)
}
}, function() {
d.$$destroyed || m === o && (p(), d.$emit("$includeContentError", f))
}), d.$emit("$includeContentRequested", f)) : (p(), j.template = null)
})
}
}
}
}],
cg = ["$compile", function(a) {
return {
restrict: "ECA",
priority: -400,
require: "ngInclude",
link: function(c, d, e, f) {
return /SVG/.test(d[0].toString()) ? (d.empty(), void a(Aa(f.template, b).childNodes)(c, function(a) {
d.append(a)
}, {
futureParentElement: d
})) : (d.html(f.template), void a(d.contents())(c))
}
}
}],
dg = cd({
priority: 450,
compile: function() {
return {
pre: function(a, b, c) {
a.$eval(c.ngInit)
}
}
}
}),
eg = function() {
return {
restrict: "A",
priority: 100,
require: "ngModel",
link: function(a, b, d, e) {
var g = b.attr(d.$attr.ngList) || ", ",
h = "false" !== d.ngTrim,
i = h ? Sd(g) : g,
j = function(a) {
if (!t(a)) {
var b = [];
return a && f(a.split(i), function(a) {
a && b.push(h ? Sd(a) : a)
}), b
}
};
e.$parsers.push(j), e.$formatters.push(function(a) {
return Qd(a) ? a.join(g) : c
}), e.$isEmpty = function(a) {
return !a || !a.length
}
}
}
},
fg = "ng-valid",
gg = "ng-invalid",
hg = "ng-pristine",
ig = "ng-dirty",
jg = "ng-untouched",
kg = "ng-touched",
lg = "ng-pending",
mg = d("ngModel"),
ng = ["$scope", "$exceptionHandler", "$attrs", "$element", "$parse", "$animate", "$timeout", "$rootScope", "$q", "$interpolate", function(a, b, d, e, g, h, i, j, k, l) {
this.$viewValue = Number.NaN, this.$modelValue = Number.NaN, this.$$rawModelValue = c, this.$validators = {}, this.$asyncValidators = {}, this.$parsers = [], this.$formatters = [], this.$viewChangeListeners = [], this.$untouched = !0, this.$touched = !1, this.$pristine = !0, this.$dirty = !1, this.$valid = !0, this.$invalid = !1, this.$error = {}, this.$$success = {}, this.$pending = c, this.$name = l(d.name || "", !1)(a), this.$$parentForm = zf;
var m, n = g(d.ngModel),
o = n.assign,
q = n,
r = o,
s = null,
v = this;
this.$$setOptions = function(a) {
if (v.$options = a, a && a.getterSetter) {
var b = g(d.ngModel + "()"),
c = g(d.ngModel + "($$$p)");
q = function(a) {
var c = n(a);
return A(c) && (c = b(a)), c
}, r = function(a, b) {
A(n(a)) ? c(a, {
$$$p: v.$modelValue
}) : o(a, v.$modelValue)
}
} else if (!n.assign) throw mg("nonassign", "Expression '{0}' is non-assignable. Element: {1}", d.ngModel, $(e))
}, this.$render = p, this.$isEmpty = function(a) {
return t(a) || "" === a || null === a || a !== a
};
var w = 0;
td({
ctrl: this,
$element: e,
set: function(a, b) {
a[b] = !0
},
unset: function(a, b) {
delete a[b]
},
$animate: h
}), this.$setPristine = function() {
v.$dirty = !1, v.$pristine = !0, h.removeClass(e, ig), h.addClass(e, hg)
}, this.$setDirty = function() {
v.$dirty = !0, v.$pristine = !1, h.removeClass(e, hg), h.addClass(e, ig), v.$$parentForm.$setDirty()
}, this.$setUntouched = function() {
v.$touched = !1, v.$untouched = !0, h.setClass(e, jg, kg)
}, this.$setTouched = function() {
v.$touched = !0, v.$untouched = !1, h.setClass(e, kg, jg)
}, this.$rollbackViewValue = function() {
i.cancel(s), v.$viewValue = v.$$lastCommittedViewValue, v.$render()
}, this.$validate = function() {
if (!y(v.$modelValue) || !isNaN(v.$modelValue)) {
var a = v.$$lastCommittedViewValue,
b = v.$$rawModelValue,
d = v.$valid,
e = v.$modelValue,
f = v.$options && v.$options.allowInvalid;
v.$$runValidators(b, a, function(a) {
f || d === a || (v.$modelValue = a ? b : c, v.$modelValue !== e && v.$$writeModelToScope())
})
}
}, this.$$runValidators = function(a, b, d) {
function e() {
var a = v.$$parserName || "parse";
return t(m) ? (i(a, null), !0) : (m || (f(v.$validators, function(a, b) {
i(b, null)
}), f(v.$asyncValidators, function(a, b) {
i(b, null)
})), i(a, m), m)
}
function g() {
var c = !0;
return f(v.$validators, function(d, e) {
var f = d(a, b);
c = c && f, i(e, f)
}), c ? !0 : (f(v.$asyncValidators, function(a, b) {
i(b, null)
}), !1)
}
function h() {
var d = [],
e = !0;
f(v.$asyncValidators, function(f, g) {
var h = f(a, b);
if (!I(h)) throw mg("nopromise", "Expected asynchronous validator to return a promise but got '{0}' instead.", h);
i(g, c), d.push(h.then(function() {
i(g, !0)
}, function(a) {
e = !1, i(g, !1)
}))
}), d.length ? k.all(d).then(function() {
j(e)
}, p) : j(!0)
}
function i(a, b) {
l === w && v.$setValidity(a, b)
}
function j(a) {
l === w && d(a)
}
w++;
var l = w;
return e() && g() ? void h() : void j(!1)
}, this.$commitViewValue = function() {
var a = v.$viewValue;
i.cancel(s), (v.$$lastCommittedViewValue !== a || "" === a && v.$$hasNativeValidators) && (v.$$lastCommittedViewValue = a, v.$pristine && this.$setDirty(), this.$$parseAndValidate())
}, this.$$parseAndValidate = function() {
function b() {
v.$modelValue !== g && v.$$writeModelToScope()
}
var d = v.$$lastCommittedViewValue,
e = d;
if (m = t(e) ? c : !0)
for (var f = 0; f < v.$parsers.length; f++)
if (e = v.$parsers[f](e), t(e)) {
m = !1;
break
}
y(v.$modelValue) && isNaN(v.$modelValue) && (v.$modelValue = q(a));
var g = v.$modelValue,
h = v.$options && v.$options.allowInvalid;
v.$$rawModelValue = e, h && (v.$modelValue = e, b()), v.$$runValidators(e, v.$$lastCommittedViewValue, function(a) {
h || (v.$modelValue = a ? e : c, b())
})
}, this.$$writeModelToScope = function() {
r(a, v.$modelValue), f(v.$viewChangeListeners, function(a) {
try {
a()
} catch (c) {
b(c)
}
})
}, this.$setViewValue = function(a, b) {
v.$viewValue = a, (!v.$options || v.$options.updateOnDefault) && v.$$debounceViewValueCommit(b)
}, this.$$debounceViewValueCommit = function(b) {
var c, d = 0,
e = v.$options;
e && u(e.debounce) && (c = e.debounce, y(c) ? d = c : y(c[b]) ? d = c[b] : y(c["default"]) && (d = c["default"])), i.cancel(s), d ? s = i(function() {
v.$commitViewValue()
}, d) : j.$$phase ? v.$commitViewValue() : a.$apply(function() {
v.$commitViewValue()
})
}, a.$watch(function() {
var b = q(a);
if (b !== v.$modelValue && (v.$modelValue === v.$modelValue || b === b)) {
v.$modelValue = v.$$rawModelValue = b, m = c;
for (var d = v.$formatters, e = d.length, f = b; e--;) f = d[e](f);
v.$viewValue !== f && (v.$viewValue = v.$$lastCommittedViewValue = f, v.$render(), v.$$runValidators(b, f, p))
}
return b
})
}],
og = ["$rootScope", function(a) {
return {
restrict: "A",
require: ["ngModel", "^?form", "^?ngModelOptions"],
controller: ng,
priority: 1,
compile: function(b) {
return b.addClass(hg).addClass(jg).addClass(fg), {
pre: function(a, b, c, d) {
var e = d[0],
f = d[1] || e.$$parentForm;
e.$$setOptions(d[2] && d[2].$options), f.$addControl(e), c.$observe("name", function(a) {
e.$name !== a && e.$$parentForm.$$renameControl(e, a)
}), a.$on("$destroy", function() {
e.$$parentForm.$removeControl(e)
})
},
post: function(b, c, d, e) {
var f = e[0];
f.$options && f.$options.updateOn && c.on(f.$options.updateOn, function(a) {
f.$$debounceViewValueCommit(a && a.type)
}), c.on("blur", function(c) {
f.$touched || (a.$$phase ? b.$evalAsync(f.$setTouched) : b.$apply(f.$setTouched))
})
}
}
}
}
}],
pg = /(\s+|^)default(\s+|$)/,
qg = function() {
return {
restrict: "A",
controller: ["$scope", "$attrs", function(a, b) {
var c = this;
this.$options = O(a.$eval(b.ngModelOptions)), u(this.$options.updateOn) ? (this.$options.updateOnDefault = !1, this.$options.updateOn = Sd(this.$options.updateOn.replace(pg, function() {
return c.$options.updateOnDefault = !0, " "
}))) : this.$options.updateOnDefault = !0
}]
}
},
rg = cd({
terminal: !0,
priority: 1e3
}),
sg = d("ngOptions"),
tg = /^\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]+?))?$/,
ug = ["$compile", "$parse", function(a, c) {
function d(a, b, d) {
function f(a, b, c, d, e) {
this.selectValue = a, this.viewValue = b, this.label = c, this.group = d, this.disabled = e
}
function g(a) {
var b;
if (!j && e(a)) b = a;
else {
b = [];
for (var c in a) a.hasOwnProperty(c) && "$" !== c.charAt(0) && b.push(c)
}
return b
}
var h = a.match(tg);
if (!h) throw sg("iexp", "Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}", a, $(b));
var i = h[5] || h[7],
j = h[6],
k = / as /.test(h[0]) && h[1],
l = h[9],
m = c(h[2] ? h[1] : i),
n = k && c(k),
o = n || m,
p = l && c(l),
q = l ? function(a, b) {
return p(d, b)
} : function(a) {
return Ya(a)
},
r = function(a, b) {
return q(a, x(a, b))
},
s = c(h[2] || h[1]),
t = c(h[3] || ""),
u = c(h[4] || ""),
v = c(h[8]),
w = {},
x = j ? function(a, b) {
return w[j] = b, w[i] = a, w
} : function(a) {
return w[i] = a, w
};
return {
trackBy: l,
getTrackByValue: r,
getWatchables: c(v, function(a) {
var b = [];
a = a || [];
for (var c = g(a), e = c.length, f = 0; e > f; f++) {
var i = a === c ? f : c[f],
j = (a[i], x(a[i], i)),
k = q(a[i], j);
if (b.push(k), h[2] || h[1]) {
var l = s(d, j);
b.push(l)
}
if (h[4]) {
var m = u(d, j);
b.push(m)
}
}
return b
}),
getOptions: function() {
for (var a = [], b = {}, c = v(d) || [], e = g(c), h = e.length, i = 0; h > i; i++) {
var j = c === e ? i : e[i],
k = c[j],
m = x(k, j),
n = o(d, m),
p = q(n, m),
w = s(d, m),
y = t(d, m),
z = u(d, m),
A = new f(p, n, w, y, z);
a.push(A), b[p] = A
}
return {
items: a,
selectValueMap: b,
getOptionFromViewValue: function(a) {
return b[r(a)]
},
getViewValueFromOption: function(a) {
return l ? Nd.copy(a.viewValue) : a.viewValue
}
}
}
}
}
function g(b, c, e, g) {
function j(a, b) {
a.element = b, b.disabled = a.disabled, a.label !== b.label && (b.label = a.label, b.textContent = a.label), a.value !== b.value && (b.value = a.selectValue)
}
function k(a, b, c, d) {
var e;
return b && yd(b.nodeName) === c ? e = b : (e = d.cloneNode(!1), b ? a.insertBefore(e, b) : a.appendChild(e)), e
}
function l(a) {
for (var b; a;) b = a.nextSibling, Qa(a), a = b
}
function m(a) {
var b = p && p[0],
c = w && w[0];
if (b || c)
for (; a && (a === b || a === c || a.nodeType === ae || "option" === M(a) && "" === a.value);) a = a.nextSibling;
return a
}
function n() {
var a = x && q.readValue();
x = y.getOptions();
var b = {},
d = c[0].firstChild;
if (v && c.prepend(p), d = m(d), x.items.forEach(function(a) {
var e, f, g;
a.group ? (e = b[a.group], e || (f = k(c[0], d, "optgroup", i), d = f.nextSibling, f.label = a.group, e = b[a.group] = {
groupElement: f,
currentOptionElement: f.firstChild
}), g = k(e.groupElement, e.currentOptionElement, "option", h), j(a, g), e.currentOptionElement = g.nextSibling) : (g = k(c[0], d, "option", h), j(a, g), d = g.nextSibling)
}), Object.keys(b).forEach(function(a) {
l(b[a].currentOptionElement)
}), l(d), o.$render(), !o.$isEmpty(a)) {
var e = q.readValue(),
f = y.trackBy || r;
(f ? Q(a, e) : a === e) || (o.$setViewValue(e), o.$render())
}
}
var o = g[1];
if (o) {
for (var p, q = g[0], r = e.multiple, s = 0, t = c.children(), u = t.length; u > s; s++)
if ("" === t[s].value) {
p = t.eq(s);
break
}
var v = !!p,
w = Ed(h.cloneNode(!1));
w.val("?");
var x, y = d(e.ngOptions, c, b),
z = function() {
v || c.prepend(p), c.val(""), p.prop("selected", !0), p.attr("selected", !0)
},
A = function() {
v || p.remove()
},
B = function() {
c.prepend(w), c.val("?"), w.prop("selected", !0), w.attr("selected", !0)
},
C = function() {
w.remove()
};
r ? (o.$isEmpty = function(a) {
return !a || 0 === a.length
}, q.writeValue = function(a) {
x.items.forEach(function(a) {
a.element.selected = !1
}), a && a.forEach(function(a) {
var b = x.getOptionFromViewValue(a);
b && !b.disabled && (b.element.selected = !0)
})
}, q.readValue = function() {
var a = c.val() || [],
b = [];
return f(a, function(a) {
var c = x.selectValueMap[a];
c && !c.disabled && b.push(x.getViewValueFromOption(c))
}), b
}, y.trackBy && b.$watchCollection(function() {
return Qd(o.$viewValue) ? o.$viewValue.map(function(a) {
return y.getTrackByValue(a)
}) : void 0
}, function() {
o.$render()
})) : (q.writeValue = function(a) {
var b = x.getOptionFromViewValue(a);
b && !b.disabled ? c[0].value !== b.selectValue && (C(), A(), c[0].value = b.selectValue, b.element.selected = !0, b.element.setAttribute("selected", "selected")) : null === a || v ? (C(), z()) : (A(), B())
}, q.readValue = function() {
var a = x.selectValueMap[c.val()];
return a && !a.disabled ? (A(), C(), x.getViewValueFromOption(a)) : null
}, y.trackBy && b.$watch(function() {
return y.getTrackByValue(o.$viewValue)
}, function() {
o.$render()
})), v ? (p.remove(), a(p)(b), p.removeClass("ng-scope")) : p = Ed(h.cloneNode(!1)), n(), b.$watchCollection(y.getWatchables, n)
}
}
var h = b.createElement("option"),
i = b.createElement("optgroup");
return {
restrict: "A",
terminal: !0,
require: ["select", "?ngModel"],
link: {
pre: function(a, b, c, d) {
d[0].registerOption = p
},
post: g
}
}
}],
vg = ["$locale", "$interpolate", "$log", function(a, b, c) {
var d = /{}/g,
e = /^when(Minus)?(.+)$/;
return {
link: function(g, h, i) {
function j(a) {
h.text(a || "")
}
var k, l = i.count,
m = i.$attr.when && h.attr(i.$attr.when),
n = i.offset || 0,
o = g.$eval(m) || {},
q = {},
r = b.startSymbol(),
s = b.endSymbol(),
u = r + l + "-" + n + s,
v = Nd.noop;
f(i, function(a, b) {
var c = e.exec(b);
if (c) {
var d = (c[1] ? "-" : "") + yd(c[2]);
o[d] = h.attr(i.$attr[b])
}
}), f(o, function(a, c) {
q[c] = b(a.replace(d, u))
}), g.$watch(l, function(b) {
var d = parseFloat(b),
e = isNaN(d);
if (e || d in o || (d = a.pluralCat(d - n)), d !== k && !(e && y(k) && isNaN(k))) {
v();
var f = q[d];
t(f) ? (null != b && c.debug("ngPluralize: no rule defined for '" + d + "' in " + m), v = p, j()) : v = g.$watch(f, j), k = d
}
})
}
}
}],
wg = ["$parse", "$animate", function(a, g) {
var h = "$$NG_REMOVED",
i = d("ngRepeat"),
j = function(a, b, c, d, e, f, g) {
a[c] = d, e && (a[e] = f), a.$index = b, a.$first = 0 === b, a.$last = b === g - 1, a.$middle = !(a.$first || a.$last), a.$odd = !(a.$even = 0 === (1 & b))
},
k = function(a) {
return a.clone[0]
},
l = function(a) {
return a.clone[a.clone.length - 1]
};
return {
restrict: "A",
multiElement: !0,
transclude: "element",
priority: 1e3,
terminal: !0,
$$tlb: !0,
compile: function(d, m) {
var n = m.ngRepeat,
o = b.createComment(" end ngRepeat: " + n + " "),
p = n.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);
if (!p) throw i("iexp", "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", n);
var q = p[1],
r = p[2],
s = p[3],
t = p[4];
if (p = q.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/), !p) throw i("iidexp", "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", q);
var u = p[3] || p[1],
v = p[2];
if (s && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(s) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(s))) throw i("badident", "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", s);
var w, x, y, z, A = {
$id: Ya
};
return t ? w = a(t) : (y = function(a, b) {
return Ya(b)
}, z = function(a) {
return a
}),
function(a, b, d, m, p) {
w && (x = function(b, c, d) {
return v && (A[v] = b), A[u] = c, A.$index = d, w(a, A)
});
var q = qa();
a.$watchCollection(r, function(d) {
var m, r, t, w, A, B, C, D, E, F, G, H, I = b[0],
J = qa();
if (s && (a[s] = d), e(d)) E = d, D = x || y;
else {
D = x || z, E = [];
for (var K in d) zd.call(d, K) && "$" !== K.charAt(0) && E.push(K)
}
for (w = E.length, G = new Array(w), m = 0; w > m; m++)
if (A = d === E ? m : E[m], B = d[A], C = D(A, B, m), q[C]) F = q[C], delete q[C], J[C] = F, G[m] = F;
else {
if (J[C]) throw f(G, function(a) {
a && a.scope && (q[a.id] = a)
}), i("dupes", "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}", n, C, B);
G[m] = {
id: C,
scope: c,
clone: c
}, J[C] = !0
}
for (var L in q) {
if (F = q[L], H = pa(F.clone), g.leave(H), H[0].parentNode)
for (m = 0, r = H.length; r > m; m++) H[m][h] = !0;
F.scope.$destroy()
}
for (m = 0; w > m; m++)
if (A = d === E ? m : E[m], B = d[A], F = G[m], F.scope) {
t = I;
do t = t.nextSibling; while (t && t[h]);
k(F) != t && g.move(pa(F.clone), null, Ed(I)), I = l(F), j(F.scope, m, u, B, v, A, w)
} else p(function(a, b) {
F.scope = b;
var c = o.cloneNode(!1);
a[a.length++] = c, g.enter(a, null, Ed(I)), I = c, F.clone = a, J[F.id] = F, j(F.scope, m, u, B, v, A, w)
});
q = J
})
}
}
}
}],
xg = "ng-hide",
yg = "ng-hide-animate",
zg = ["$animate", function(a) {
return {
restrict: "A",
multiElement: !0,
link: function(b, c, d) {
b.$watch(d.ngShow, function(b) {
a[b ? "removeClass" : "addClass"](c, xg, {
tempClasses: yg
})
})
}
}
}],
Ag = ["$animate", function(a) {
return {
restrict: "A",
multiElement: !0,
link: function(b, c, d) {
b.$watch(d.ngHide, function(b) {
a[b ? "addClass" : "removeClass"](c, xg, {
tempClasses: yg
})
})
}
}
}],
Bg = cd(function(a, b, c) {
a.$watch(c.ngStyle, function(a, c) {
c && a !== c && f(c, function(a, c) {
b.css(c, "")
}), a && b.css(a)
}, !0)
}),
Cg = ["$animate", function(a) {
return {
require: "ngSwitch",
controller: ["$scope", function() {
this.cases = {}
}],
link: function(c, d, e, g) {
var h = e.ngSwitch || e.on,
i = [],
j = [],
k = [],
l = [],
m = function(a, b) {
return function() {
a.splice(b, 1)
}
};
c.$watch(h, function(c) {
var d, e;
for (d = 0, e = k.length; e > d; ++d) a.cancel(k[d]);
for (k.length = 0, d = 0, e = l.length; e > d; ++d) {
var h = pa(j[d].clone);
l[d].$destroy();
var n = k[d] = a.leave(h);
n.then(m(k, d))
}
j.length = 0, l.length = 0, (i = g.cases["!" + c] || g.cases["?"]) && f(i, function(c) {
c.transclude(function(d, e) {
l.push(e);
var f = c.element;
d[d.length++] = b.createComment(" end ngSwitchWhen: ");
var g = {
clone: d
};
j.push(g), a.enter(d, f.parent(), f)
})
})
})
}
}
}],
Dg = cd({
transclude: "element",
priority: 1200,
require: "^ngSwitch",
multiElement: !0,
link: function(a, b, c, d, e) {
d.cases["!" + c.ngSwitchWhen] = d.cases["!" + c.ngSwitchWhen] || [], d.cases["!" + c.ngSwitchWhen].push({
transclude: e,
element: b
})
}
}),
Eg = cd({
transclude: "element",
priority: 1200,
require: "^ngSwitch",
multiElement: !0,
link: function(a, b, c, d, e) {
d.cases["?"] = d.cases["?"] || [], d.cases["?"].push({
transclude: e,
element: b
})
}
}),
Fg = cd({
restrict: "EAC",
link: function(a, b, c, e, f) {
if (!f) throw d("ngTransclude")("orphan", "Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}", $(b));
f(function(a) {
b.empty(), b.append(a)
})
}
}),
Gg = ["$templateCache", function(a) {
return {
restrict: "E",
terminal: !0,
compile: function(b, c) {
if ("text/ng-template" == c.type) {
var d = c.id,
e = b[0].text;
a.put(d, e)
}
}
}
}],
Hg = {
$setViewValue: p,
$render: p
},
Ig = ["$element", "$scope", "$attrs", function(a, d, e) {
var f = this,
g = new Za;
f.ngModelCtrl = Hg, f.unknownOption = Ed(b.createElement("option")), f.renderUnknownOption = function(b) {
var c = "? " + Ya(b) + " ?";
f.unknownOption.val(c), a.prepend(f.unknownOption), a.val(c)
}, d.$on("$destroy", function() {
f.renderUnknownOption = p
}), f.removeUnknownOption = function() {
f.unknownOption.parent() && f.unknownOption.remove()
}, f.readValue = function() {
return f.removeUnknownOption(), a.val()
}, f.writeValue = function(b) {
f.hasOption(b) ? (f.removeUnknownOption(), a.val(b), "" === b && f.emptyOption.prop("selected", !0)) : null == b && f.emptyOption ? (f.removeUnknownOption(), a.val("")) : f.renderUnknownOption(b)
}, f.addOption = function(a, b) {
na(a, '"option value"'), "" === a && (f.emptyOption = b);
var c = g.get(a) || 0;
g.put(a, c + 1), f.ngModelCtrl.$render(), vd(b)
}, f.removeOption = function(a) {
var b = g.get(a);
b && (1 === b ? (g.remove(a), "" === a && (f.emptyOption = c)) : g.put(a, b - 1));
}, f.hasOption = function(a) {
return !!g.get(a)
}, f.registerOption = function(a, b, c, d, e) {
if (d) {
var g;
c.$observe("value", function(a) {
u(g) && f.removeOption(g), g = a, f.addOption(a, b)
})
} else e ? a.$watch(e, function(a, d) {
c.$set("value", a), d !== a && f.removeOption(d), f.addOption(a, b)
}) : f.addOption(c.value, b);
b.on("$destroy", function() {
f.removeOption(c.value), f.ngModelCtrl.$render()
})
}
}],
Jg = function() {
function a(a, b, c, d) {
var e = d[1];
if (e) {
var g = d[0];
if (g.ngModelCtrl = e, b.on("change", function() {
a.$apply(function() {
e.$setViewValue(g.readValue())
})
}), c.multiple) {
g.readValue = function() {
var a = [];
return f(b.find("option"), function(b) {
b.selected && a.push(b.value)
}), a
}, g.writeValue = function(a) {
var c = new Za(a);
f(b.find("option"), function(a) {
a.selected = u(c.get(a.value))
})
};
var h, i = NaN;
a.$watch(function() {
i !== e.$viewValue || Q(h, e.$viewValue) || (h = P(e.$viewValue), e.$render()), i = e.$viewValue
}), e.$isEmpty = function(a) {
return !a || 0 === a.length
}
}
}
}
function b(a, b, c, d) {
var e = d[1];
if (e) {
var f = d[0];
e.$render = function() {
f.writeValue(e.$viewValue)
}
}
}
return {
restrict: "E",
require: ["select", "?ngModel"],
controller: Ig,
priority: 1,
link: {
pre: a,
post: b
}
}
},
Kg = ["$interpolate", function(a) {
return {
restrict: "E",
priority: 100,
compile: function(b, c) {
if (u(c.value)) var d = a(c.value, !0);
else {
var e = a(b.text(), !0);
e || c.$set("value", b.text())
}
return function(a, b, c) {
var f = "$selectController",
g = b.parent(),
h = g.data(f) || g.parent().data(f);
h && h.registerOption(a, b, c, d, e)
}
}
}
}],
Lg = r({
restrict: "E",
terminal: !1
}),
Mg = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
d && (c.required = !0, d.$validators.required = function(a, b) {
return !c.required || !d.$isEmpty(b)
}, c.$observe("required", function() {
d.$validate()
}))
}
}
},
Ng = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, e, f) {
if (f) {
var g, h = e.ngPattern || e.pattern;
e.$observe("pattern", function(a) {
if (x(a) && a.length > 0 && (a = new RegExp("^" + a + "$")), a && !a.test) throw d("ngPattern")("noregexp", "Expected {0} to be a RegExp but was {1}. Element: {2}", h, a, $(b));
g = a || c, f.$validate()
}), f.$validators.pattern = function(a, b) {
return f.$isEmpty(b) || t(g) || g.test(b)
}
}
}
}
},
Og = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
if (d) {
var e = -1;
c.$observe("maxlength", function(a) {
var b = n(a);
e = isNaN(b) ? -1 : b, d.$validate()
}), d.$validators.maxlength = function(a, b) {
return 0 > e || d.$isEmpty(b) || b.length <= e
}
}
}
}
},
Pg = function() {
return {
restrict: "A",
require: "?ngModel",
link: function(a, b, c, d) {
if (d) {
var e = 0;
c.$observe("minlength", function(a) {
e = n(a) || 0, d.$validate()
}), d.$validators.minlength = function(a, b) {
return d.$isEmpty(b) || b.length >= e
}
}
}
}
};
a.angular.bootstrap || (ka(), ua(Nd), Nd.module("ngLocale", [], ["$provide", function(a) {
function b(a) {
a += "";
var b = a.indexOf(".");
return -1 == b ? 0 : a.length - b - 1
}
function d(a, d) {
var e = d;
c === e && (e = Math.min(b(a), 3));
var f = Math.pow(10, e),
g = (a * f | 0) % f;
return {
v: e,
f: g
}
}
var e = {
ZERO: "zero",
ONE: "one",
TWO: "two",
FEW: "few",
MANY: "many",
OTHER: "other"
};
a.value("$locale", {
DATETIME_FORMATS: {
AMPMS: ["AM", "PM"],
DAY: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
ERANAMES: ["Before Christ", "Anno Domini"],
ERAS: ["BC", "AD"],
FIRSTDAYOFWEEK: 6,
MONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
SHORTDAY: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
SHORTMONTH: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
STANDALONEMONTH: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
WEEKENDRANGE: [5, 6],
fullDate: "EEEE, MMMM d, y",
longDate: "MMMM d, y",
medium: "MMM d, y h:mm:ss a",
mediumDate: "MMM d, y",
mediumTime: "h:mm:ss a",
"short": "M/d/yy h:mm a",
shortDate: "M/d/yy",
shortTime: "h:mm a"
},
NUMBER_FORMATS: {
CURRENCY_SYM: "$",
DECIMAL_SEP: ".",
GROUP_SEP: ",",
PATTERNS: [{
gSize: 3,
lgSize: 3,
maxFrac: 3,
minFrac: 0,
minInt: 1,
negPre: "-",
negSuf: "",
posPre: "",
posSuf: ""
}, {
gSize: 3,
lgSize: 3,
maxFrac: 2,
minFrac: 2,
minInt: 1,
negPre: "-¤",
negSuf: "",
posPre: "¤",
posSuf: ""
}]
},
id: "en-us",
pluralCat: function(a, b) {
var c = 0 | a,
f = d(a, b);
return 1 == c && 0 == f.v ? e.ONE : e.OTHER
}
})
}]), Ed(b).ready(function() {
fa(b, ga)
}))
}(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>'),
function(a, b, c) {
"use strict";
var d, e = {},
f = {
sdk: !1,
ready: !1
};
b.module("facebook", []).value("settings", e).value("flags", f).provider("Facebook", [function() {
e.appId = null, this.setAppId = function(a) {
e.appId = a
}, this.getAppId = function() {
return e.appId
}, e.locale = "en_US", this.setLocale = function(a) {
e.locale = a
}, this.getLocale = function() {
return e.locale
}, e.status = !0, this.setStatus = function(a) {
e.status = a
}, this.getStatus = function() {
return e.status
}, e.channelUrl = null, this.setChannel = function(a) {
e.channelUrl = a
}, this.getChannel = function() {
return e.channelUrl
}, e.cookie = !0, this.setCookie = function(a) {
e.cookie = a
}, this.getCookie = function() {
return e.cookie
}, e.xfbml = !0, this.setXfbml = function(a) {
e.xfbml = a
}, this.getXfbml = function() {
return e.xfbml
}, this.setAuthResponse = function(a) {
e.authResponse = a || !0
}, this.getAuthResponse = function() {
return e.authResponse
}, e.frictionlessRequests = !1, this.setFrictionlessRequests = function(a) {
e.frictionlessRequests = a
}, this.getFrictionlessRequests = function() {
return e.frictionlessRequests
}, e.hideFlashCallback = null, this.setHideFlashCallback = function(a) {
e.hideFlashCallback = a || null
}, this.getHideFlashCallback = function() {
return e.hideFlashCallback
}, this.setInitCustomOption = function(a, c) {
return b.isString(a) ? (e[a] = c, e[a]) : !1
}, this.getInitOption = function(a) {
return b.isString(a) && e.hasOwnProperty(a) ? e[a] : !1
}, e.loadSDK = !0, this.setLoadSDK = function(a) {
e.loadSDK = !!a
}, this.getLoadSDK = function() {
return e.loadSDK
}, e.version = "v2.5", this.setSdkVersion = function(a) {
e.version = a
}, this.getSdkVersion = function() {
return e.version
}, this.init = function(a, c) {
b.isString(a) && (e.appId = a || e.appId), b.isObject(a) && b.extend(e, a), b.isDefined(c) && (e.loadSDK = !!c)
}, this.$get = ["$q", "$rootScope", "$timeout", "$window", function(a, c, g, h) {
function i() {
this.appId = e.appId
}
return i.prototype.isReady = function() {
return f.ready
}, i.prototype.login = function() {
var c, d, e = a.defer(),
f = Array.prototype.slice.call(arguments);
return b.forEach(f, function(a, e) {
b.isFunction(a) && (c = a, d = e)
}), b.isFunction(c) && b.isNumber(d) && f.splice(d, 1, function(a) {
g(function() {
b.isUndefined(a.error) ? e.resolve(a) : e.reject(a), b.isFunction(c) && c(a)
})
}), this.isReady() ? h.FB.login.apply(h.FB, f) : g(function() {
e.reject("Facebook.login() called before Facebook SDK has loaded.")
}), e.promise
}, b.forEach(["logout", "api", "ui", "getLoginStatus"], function(c) {
i.prototype[c] = function() {
var e, f, i = a.defer(),
j = Array.prototype.slice.call(arguments);
return b.forEach(j, function(a, c) {
b.isFunction(a) && (e = a, f = c)
}), b.isFunction(e) && b.isNumber(f) && j.splice(f, 1, function(a) {
g(function() {
a && "undefined" == typeof a.error ? i.resolve(a) : i.reject(a), b.isFunction(e) && e(a)
})
}), g(function() {
d.promise.then(function() {
h.FB[c].apply(FB, j)
}, function() {
throw "Facebook API could not be initialized properly"
})
}), i.promise
}
}), i.prototype.parseXFBML = function() {
var b = a.defer();
return g(function() {
d.promise.then(function() {
h.FB.XFBML.parse(), b.resolve()
}, function() {
throw "Facebook API could not be initialized properly"
})
}), b.promise
}, i.prototype.subscribe = function() {
var c, e, f = a.defer(),
i = Array.prototype.slice.call(arguments);
return b.forEach(i, function(a, d) {
b.isFunction(a) && (c = a, e = d)
}), b.isFunction(c) && b.isNumber(e) && i.splice(e, 1, function(a) {
g(function() {
a && "undefined" == typeof a.error ? f.resolve(a) : f.reject(a), b.isFunction(c) && c(a)
})
}), g(function() {
d.promise.then(function() {
h.FB.Event.subscribe.apply(FB, i)
}, function() {
throw "Facebook API could not be initialized properly"
})
}), f.promise
}, i.prototype.unsubscribe = function() {
var c, e, f = a.defer(),
i = Array.prototype.slice.call(arguments);
return b.forEach(i, function(a, d) {
b.isFunction(a) && (c = a, e = d)
}), b.isFunction(c) && b.isNumber(e) && i.splice(e, 1, function(a) {
g(function() {
a && "undefined" == typeof a.error ? f.resolve(a) : f.reject(a), b.isFunction(c) && c(a)
})
}), g(function() {
d.promise.then(function() {
h.FB.Event.unsubscribe.apply(FB, i)
}, function() {
throw "Facebook API could not be initialized properly"
})
}), f.promise
}, new i
}]
}]).run(["$rootScope", "$q", "$window", "$timeout", function(a, c, g, h) {
d = c.defer();
var i = e.loadSDK;
delete e.loadSDK, g.fbAsyncInit = function() {
h(function() {
if (!e.appId) throw "Missing appId setting.";
FB.init(e), f.ready = !0, b.forEach({
"auth.login": "login",
"auth.logout": "logout",
"auth.prompt": "prompt",
"auth.sessionChange": "sessionChange",
"auth.statusChange": "statusChange",
"auth.authResponseChange": "authResponseChange",
"xfbml.render": "xfbmlRender",
"edge.create": "like",
"edge.remove": "unlike",
"comment.create": "comment",
"comment.remove": "uncomment"
}, function(b, c) {
FB.Event.subscribe(c, function(c) {
h(function() {
a.$broadcast("Facebook:" + b, c)
})
})
}), a.$broadcast("Facebook:load"), d.resolve(FB)
})
},
function() {
var a = document.getElementById("fb-root");
return a || (a = document.createElement("div"), a.id = "fb-root", document.body.insertBefore(a, document.body.childNodes[0])), a
}(), i && ! function() {
var a = "//connect.facebook.net/" + e.locale + "/sdk.js",
b = document.createElement("script");
b.id = "facebook-jssdk", b.async = !0, -1 !== ["file", "file:"].indexOf(g.location.protocol) && (a = "https:" + a), b.src = a, b.onload = function() {
f.sdk = !0
}, document.getElementsByTagName("head")[0].appendChild(b)
}()
}])
}(window, angular),
function(a, b, c) {
"use strict";
function d(a) {
if (null == a) return "";
switch (typeof a) {
case "string":
return a;
case "number":
return "" + a;
default:
return x(a)
}
}
function e(a, b) {
for (var c = a.split(/\n/g), d = 0; d < c.length; d++) {
var e = c[d];
if (!(b >= e.length)) return {
line: d + 1,
column: b + 1
};
b -= e.length
}
}
function f(a) {
function b(b) {
return a
}
var c = y[a];
return null != c ? c : (b.$$watchDelegate = function(b, c, d) {
var e = b.$watch(v, function() {
w(c) && c.call(null, a, a, b), e()
}, d);
return e
}, y[a] = b, b.exp = a, b.expressions = [], b)
}
function g(a, b) {
function c(a) {
return void 0 == a ? a : a - b
}
function d(b) {
return c(a(b))
}
if (0 === b) return a;
var e;
return d.$$watchDelegate = function(b, d, f) {
return e = b.$watch(a, function(a, e) {
w(d) && d.call(null, c(a), c(e), b)
}, f)
}, d
}
function h(a, b) {
var c = this;
if (this.expressionFn = a, this.choices = b, void 0 === b.other) throw u("reqother", "“other” is a required option.");
this.parsedFn = function(a) {
return c.getResult(a)
}, this.parsedFn.$$watchDelegate = function(a, b, d) {
return c.watchDelegate(a, b, d)
}, this.parsedFn.exp = a.exp, this.parsedFn.expressions = a.expressions
}
function i(a, b, c, d) {
var e = this;
this.scope = b, this.msgSelector = a, this.listener = c, this.objectEquality = d, this.lastMessage = void 0, this.messageFnWatcher = v;
var f = function(a, b) {
return e.expressionFnListener(a, b)
};
this.expressionFnWatcher = b.$watch(a.expressionFn, f, d)
}
function j(a, b) {
h.call(this, a, b)
}
function k() {}
function l(a, b, c, d) {
h.call(this, a, b), this.offset = c, this.pluralCat = d
}
function m() {}
function n(a, b) {
this.trustedContext = a, this.allOrNothing = b, this.textParts = [], this.expressionFns = [], this.expressionIndices = [], this.partialText = "", this.concatParts = null
}
function o(a, b, c, d) {
this.interpolationParts = a, this.scope = b, this.previousResult = void 0, this.listener = c;
var e = this;
this.expressionFnsWatcher = b.$watchGroup(a.expressionFns, function(a, b) {
e.watchListener(a, b)
})
}
function p(a, b) {
b.expressionFn = a.expressionFn, b.expressionMinusOffsetFn = a.expressionMinusOffsetFn, b.pluralOffset = a.pluralOffset, b.choices = a.choices, b.choiceKey = a.choiceKey, b.interpolationParts = a.interpolationParts, b.ruleChoiceKeyword = a.ruleChoiceKeyword, b.msgStartIndex = a.msgStartIndex, b.expressionStartIndex = a.expressionStartIndex
}
function q(a) {
p(a, this)
}
function r(a, b, c, d, e, f, g, h) {
this.text = a, this.index = b || 0, this.$parse = c, this.pluralCat = d, this.stringifier = e, this.mustHaveExpression = !!f, this.trustedContext = g, this.allOrNothing = !!h, this.expressionFn = null, this.expressionMinusOffsetFn = null, this.pluralOffset = null, this.choices = null, this.choiceKey = null, this.interpolationParts = null, this.msgStartIndex = null, this.nestedStateStack = [], this.parsedFn = null, this.rule = null, this.ruleStack = null, this.ruleChoiceKeyword = null, this.interpNestLevel = null, this.expressionStartIndex = null, this.stringStartIndex = null, this.stringQuote = null, this.stringInterestsRe = null, this.angularOperatorStack = null, this.textPart = null
}
function s(a) {
switch (a) {
case "{":
return "}";
case "[":
return "]";
case "(":
return ")";
default:
return null
}
}
function t(a) {
switch (a) {
case "}":
return "{";
case "]":
return "[";
case ")":
return "(";
default:
return null
}
}
var u = a.angular.$interpolateMinErr,
v = a.angular.noop,
w = a.angular.isFunction,
x = a.angular.toJson,
y = Object.create(null);
h.prototype.getMessageFn = function(a) {
return this.choices[this.categorizeValue(a)]
}, h.prototype.getResult = function(a) {
return this.getMessageFn(this.expressionFn(a))(a)
}, h.prototype.watchDelegate = function(a, b, c) {
var d = new i(this, a, b, c);
return function() {
d.cancelWatch()
}
}, i.prototype.expressionFnListener = function(a, b) {
var c = this;
this.messageFnWatcher();
var d = function(a, b) {
return c.messageFnListener(a, b)
},
e = this.msgSelector.getMessageFn(a);
this.messageFnWatcher = this.scope.$watch(e, d, this.objectEquality)
}, i.prototype.messageFnListener = function(a, b) {
w(this.listener) && this.listener.call(null, a, a === b ? a : this.lastMessage, this.scope), this.lastMessage = a
}, i.prototype.cancelWatch = function() {
this.expressionFnWatcher(), this.messageFnWatcher()
}, k.prototype = h.prototype, j.prototype = new k, j.prototype.categorizeValue = function(a) {
return void 0 !== this.choices[a] ? a : "other"
}, m.prototype = h.prototype, l.prototype = new m, l.prototype.categorizeValue = function(a) {
if (isNaN(a)) return "other";
if (void 0 !== this.choices[a]) return a;
var b = this.pluralCat(a - this.offset);
return void 0 !== this.choices[b] ? b : "other"
}, n.prototype.flushPartialText = function() {
this.partialText && (null == this.concatParts ? this.textParts.push(this.partialText) : (this.textParts.push(this.concatParts.join("")), this.concatParts = null), this.partialText = "")
}, n.prototype.addText = function(a) {
a.length && (this.partialText ? this.concatParts ? this.concatParts.push(a) : this.concatParts = [this.partialText, a] : this.partialText = a)
}, n.prototype.addExpressionFn = function(a) {
this.flushPartialText(), this.expressionIndices.push(this.textParts.length), this.expressionFns.push(a), this.textParts.push("")
}, n.prototype.getExpressionValues = function(a) {
for (var b = new Array(this.expressionFns.length), c = 0; c < this.expressionFns.length; c++) b[c] = this.expressionFns[c](a);
return b
}, n.prototype.getResult = function(a) {
for (var b = 0; b < this.expressionIndices.length; b++) {
var c = a[b];
if (this.allOrNothing && void 0 === c) return;
this.textParts[this.expressionIndices[b]] = c
}
return this.textParts.join("")
}, n.prototype.toParsedFn = function(a, b) {
var c = this;
if (this.flushPartialText(), a && 0 === this.expressionFns.length) return void 0;
if (0 === this.textParts.length) return f("");
if (this.trustedContext && this.textParts.length > 1 && u.throwNoconcat(b), 0 === this.expressionFns.length) return 1 != this.textParts.length && this.errorInParseLogic(), f(this.textParts[0]);
var d = function(a) {
return c.getResult(c.getExpressionValues(a))
};
d.$$watchDelegate = function(a, b, d) {
return c.watchDelegate(a, b, d)
}, d.exp = b, d.expressions = new Array(this.expressionFns.length);
for (var e = 0; e < this.expressionFns.length; e++) d.expressions[e] = this.expressionFns[e].exp;
return d
}, n.prototype.watchDelegate = function(a, b, c) {
var d = new o(this, a, b, c);
return function() {
d.cancelWatch()
}
}, o.prototype.watchListener = function(a, b) {
var c = this.interpolationParts.getResult(a);
w(this.listener) && this.listener.call(null, c, a === b ? c : this.previousResult, this.scope), this.previousResult = c
}, o.prototype.cancelWatch = function() {
this.expressionFnsWatcher()
};
var z = new q(new r("", 0, null, null, null, !1, null, !1));
r.prototype.pushState = function() {
this.nestedStateStack.push(new q(this)), p(z, this)
}, r.prototype.popState = function() {
0 === this.nestedStateStack.length && this.errorInParseLogic();
var a = this.nestedStateStack.pop();
p(a, this)
}, r.prototype.matchRe = function(a, b) {
a.lastIndex = this.index;
var c = a.exec(this.text);
return null == c || b !== !0 && c.index != this.index ? null : (this.index = a.lastIndex, c)
}, r.prototype.searchRe = function(a) {
return this.matchRe(a, !0)
}, r.prototype.consumeRe = function(a) {
return !!this.matchRe(a)
}, r.prototype.run = function(a) {
this.ruleStack = [a];
do {
for (this.rule = this.ruleStack.pop(); this.rule;) this.rule();
this.assertRuleOrNull(this.rule)
} while (this.ruleStack.length > 0)
}, r.prototype.errorInParseLogic = function() {
throw u("logicbug", "The messageformat parser has encountered an internal error. Please file a github issue against the AngularJS project and provide this message text that triggers the bug. Text: “{0}”", this.text)
}, r.prototype.assertRuleOrNull = function(a) {
void 0 === a && this.errorInParseLogic()
};
var A = /\s*(\w+)\s*/g;
r.prototype.errorExpecting = function() {
var a, b = this.matchRe(A);
if (null == b) throw a = e(this.text, this.index), u("reqarg", "Expected one of “plural” or “select” at line {0}, column {1} of text “{2}”", a.line, a.column, this.text);
var c = b[1];
throw "select" == c || "plural" == c ? (a = e(this.text, this.index), u("reqcomma", "Expected a comma after the keyword “{0}” at line {1}, column {2} of text “{3}”", c, a.line, a.column, this.text)) : (a = e(this.text, this.index), u("unknarg", "Unsupported keyword “{0}” at line {0}, column {1}. Only “plural” and “select” are currently supported. Text: “{3}”", c, a.line, a.column, this.text))
};
var B = /['"]/g;
r.prototype.ruleString = function() {
var a = this.matchRe(B);
if (null == a) {
var b = e(this.text, this.index);
throw u("wantstring", "Expected the beginning of a string at line {0}, column {1} in text “{2}”", b.line, b.column, this.text)
}
this.startStringAtMatch(a)
}, r.prototype.startStringAtMatch = function(a) {
this.stringStartIndex = a.index, this.stringQuote = a[0], this.stringInterestsRe = "'" == this.stringQuote ? C : D, this.rule = this.ruleInsideString
};
var C = /\\(?:\\|'|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|'/g,
D = /\\(?:\\|"|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}|[0-7]{3}|\r\n|\n|[\s\S])|"/g;
r.prototype.ruleInsideString = function() {
var a = this.searchRe(this.stringInterestsRe);
if (null == a) {
var b = e(this.text, this.stringStartIndex);
throw u("untermstr", "The string beginning at line {0}, column {1} is unterminated in text “{2}”", b.line, b.column, this.text)
}
a[0];
a == this.stringQuote && (this.rule = null)
};
var E = /\s*(plural|select)\s*,\s*/g;
r.prototype.rulePluralOrSelect = function() {
var a = this.searchRe(E);
null == a && this.errorExpecting();
var b = a[1];
switch (b) {
case "plural":
this.rule = this.rulePluralStyle;
break;
case "select":
this.rule = this.ruleSelectStyle;
break;
default:
this.errorInParseLogic()
}
}, r.prototype.rulePluralStyle = function() {
this.choices = Object.create(null), this.ruleChoiceKeyword = this.rulePluralValueOrKeyword, this.rule = this.rulePluralOffset
}, r.prototype.ruleSelectStyle = function() {
this.choices = Object.create(null), this.ruleChoiceKeyword = this.ruleSelectKeyword, this.rule = this.ruleSelectKeyword
};
var F = /[0]|(?:[1-9][0-9]*)/g,
G = new RegExp("\\s*offset\\s*:\\s*(" + F.source + ")", "g");
r.prototype.rulePluralOffset = function() {
var a = this.matchRe(G);
this.pluralOffset = null == a ? 0 : parseInt(a[1], 10), this.expressionMinusOffsetFn = g(this.expressionFn, this.pluralOffset), this.rule = this.rulePluralValueOrKeyword
}, r.prototype.assertChoiceKeyIsNew = function(a, b) {
if (void 0 !== this.choices[a]) {
var c = e(this.text, b);
throw u("dupvalue", "The choice “{0}” is specified more than once. Duplicate key is at line {1}, column {2} in text “{3}”", a, c.line, c.column, this.text)
}
};
var H = /\s*(\w+)/g;
r.prototype.ruleSelectKeyword = function() {
var a = this.matchRe(H);
return null == a ? (this.parsedFn = new j(this.expressionFn, this.choices).parsedFn, void(this.rule = null)) : (this.choiceKey = a[1], this.assertChoiceKeyIsNew(this.choiceKey, a.index), void(this.rule = this.ruleMessageText))
};
var I = new RegExp("\\s*(?:(?:=(" + F.source + "))|(\\w+))", "g");
r.prototype.rulePluralValueOrKeyword = function() {
var a = this.matchRe(I);
return null == a ? (this.parsedFn = new l(this.expressionFn, this.choices, this.pluralOffset, this.pluralCat).parsedFn, void(this.rule = null)) : (null != a[1] ? this.choiceKey = parseInt(a[1], 10) : this.choiceKey = a[2], this.assertChoiceKeyIsNew(this.choiceKey, a.index), void(this.rule = this.ruleMessageText))
};
var J = /\s*{/g;
r.prototype.ruleMessageText = function() {
if (!this.consumeRe(J)) {
var a = e(this.text, this.index);
throw u("reqopenbrace", "The plural choice “{0}” must be followed by a message in braces at line {1}, column {2} in text “{3}”", this.choiceKey, a.line, a.column, this.text)
}
this.msgStartIndex = this.index, this.interpolationParts = new n(this.trustedContext, this.allOrNothing), this.rule = this.ruleInInterpolationOrMessageText
};
var K = /\\.|{{|}/g,
L = /\\.|{{|#|}/g,
M = /\\.|{{/g;
r.prototype.advanceInInterpolationOrMessageText = function() {
var a, b = this.index;
if (null == this.ruleChoiceKeyword) {
if (a = this.searchRe(M), null == a) return this.textPart = this.text.substring(b), this.index = this.text.length, null
} else if (a = this.searchRe(this.ruleChoiceKeyword == this.rulePluralValueOrKeyword ? L : K), null == a) {
var c = e(this.text, this.msgStartIndex);
throw u("reqendbrace", "The plural/select choice “{0}” message starting at line {1}, column {2} does not have an ending closing brace. Text “{3}”", this.choiceKey, c.line, c.column, this.text)
}
var d = a[0];
return this.textPart = this.text.substring(b, a.index), d
}, r.prototype.ruleInInterpolationOrMessageText = function() {
var a = this.index,
b = this.advanceInInterpolationOrMessageText();
return null == b ? (this.index = this.text.length, this.interpolationParts.addText(this.text.substring(a)), void(this.rule = null)) : "\\" == b[0] ? void this.interpolationParts.addText(this.textPart + b[1]) : (this.interpolationParts.addText(this.textPart), void("{{" == b ? (this.pushState(), this.ruleStack.push(this.ruleEndMustacheInInterpolationOrMessage), this.rule = this.ruleEnteredMustache) : "}" == b ? (this.choices[this.choiceKey] = this.interpolationParts.toParsedFn(!1, this.text), this.rule = this.ruleChoiceKeyword) : "#" == b ? this.interpolationParts.addExpressionFn(this.expressionMinusOffsetFn) : this.errorInParseLogic()))
}, r.prototype.ruleInterpolate = function() {
this.interpolationParts = new n(this.trustedContext, this.allOrNothing), this.rule = this.ruleInInterpolation
}, r.prototype.ruleInInterpolation = function() {
var a = this.index,
b = this.searchRe(M);
if (null == b) return this.index = this.text.length, this.interpolationParts.addText(this.text.substring(a)), this.parsedFn = this.interpolationParts.toParsedFn(this.mustHaveExpression, this.text), void(this.rule = null);
var c = b[0];
return "\\" == c[0] ? void this.interpolationParts.addText(this.text.substring(a, b.index) + c[1]) : (this.interpolationParts.addText(this.text.substring(a, b.index)), this.pushState(), this.ruleStack.push(this.ruleInterpolationEndMustache), void(this.rule = this.ruleEnteredMustache))
}, r.prototype.ruleInterpolationEndMustache = function() {
var a = this.parsedFn;
this.popState(), this.interpolationParts.addExpressionFn(a), this.rule = this.ruleInInterpolation
}, r.prototype.ruleEnteredMustache = function() {
this.parsedFn = null, this.ruleStack.push(this.ruleEndMustache), this.rule = this.ruleAngularExpression
}, r.prototype.ruleEndMustacheInInterpolationOrMessage = function() {
var a = this.parsedFn;
this.popState(), this.interpolationParts.addExpressionFn(a), this.rule = this.ruleInInterpolationOrMessageText
};
var N = /\s*}}/g;
r.prototype.ruleEndMustache = function() {
var a = this.matchRe(N);
if (null == a) {
var b = e(this.text, this.index);
throw u("reqendinterp", "Expecting end of interpolation symbol, “{0}”, at line {1}, column {2} in text “{3}”", "}}", b.line, b.column, this.text)
}
null == this.parsedFn && (this.parsedFn = this.$parse(this.expressionFn, this.stringifier), this.parsedFn.exp = this.expressionFn.exp, this.parsedFn.expressions = this.expressionFn.expressions), this.rule = null
}, r.prototype.ruleAngularExpression = function() {
this.angularOperatorStack = [], this.expressionStartIndex = this.index, this.rule = this.ruleInAngularExpression
};
var O = /[[\]{}()'",]/g;
r.prototype.ruleInAngularExpression = function() {
var a, b = (this.index, this.searchRe(O));
if (null == b) {
if (0 === this.angularOperatorStack.length) return this.index = this.text.length, this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, this.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, this.index), this.expressionFn.expressions = this.expressionFn.expressions, void(this.rule = null);
var c = this.angularOperatorStack[0];
throw u("badexpr", "Unexpected end of Angular expression. Expecting operator “{0}” at the end of the text “{1}”", this.getEndOperator(c), this.text)
}
var d = b[0];
if ("'" == d || '"' == d) return this.ruleStack.push(this.ruleInAngularExpression), void this.startStringAtMatch(b);
if ("," == d) {
if (this.trustedContext) throw a = e(this.text, this.index), u("unsafe", "Use of select/plural MessageFormat syntax is currently disallowed in a secure context ({0}). At line {1}, column {2} of text “{3}”", this.trustedContext, a.line, a.column, this.text);
return void(0 === this.angularOperatorStack.length && (this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, b.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, b.index), this.expressionFn.expressions = this.expressionFn.expressions, this.rule = null, this.rule = this.rulePluralOrSelect))
}
if (null != s(d)) return void this.angularOperatorStack.unshift(d);
var f = t(d);
if (null == f && this.errorInParseLogic(), this.angularOperatorStack.length > 0) {
if (f == this.angularOperatorStack[0]) return void this.angularOperatorStack.shift();
throw a = e(this.text, this.index), u("badexpr", "Unexpected operator “{0}” at line {1}, column {2} in text. Was expecting “{3}”. Text: “{4}”", d, a.line, a.column, s(this.angularOperatorStack[0]), this.text)
}
this.index = b.index, this.expressionFn = this.$parse(this.text.substring(this.expressionStartIndex, this.index)), this.expressionFn.exp = this.text.substring(this.expressionStartIndex, this.index), this.expressionFn.expressions = this.expressionFn.expressions, this.rule = null
};
var P = ["$parse", "$locale", "$sce", "$exceptionHandler", function(a, b, c, e) {
function f(a, b, f) {
return function(g) {
try {
return g = a ? c.getTrusted(a, g) : c.valueOf(g), b && void 0 === g ? g : d(g)
} catch (h) {
e(u.interr(f, h))
}
}
}
function g(c, d, e, g) {
var h = f(e, g, c),
i = new r(c, 0, a, b.pluralCat, h, d, e, g);
return i.run(i.ruleInterpolate), i.parsedFn
}
return {
interpolate: g
}
}],
Q = ["$$messageFormat", "$delegate", function(a, b) {
if ("{{" != b.startSymbol() || "}}" != b.endSymbol()) throw u("nochgmustache", "angular-message-format.js currently does not allow you to use custom start and end symbols for interpolation.");
var c = a.interpolate;
return c.startSymbol = b.startSymbol, c.endSymbol = b.endSymbol, c
}],
R = a.angular.module("ngMessageFormat", ["ng"]);
R.factory("$$messageFormat", P), R.config(["$provide", function(a) {
a.decorator("$interpolate", Q)
}])
}(window, window.angular),
function(a, b, c) {
"use strict";
function d(a) {
return null != a && "" !== a && "hasOwnProperty" !== a && h.test("." + a)
}
function e(a, e) {
if (!d(e)) throw g("badmember", 'Dotted member path "@{0}" is invalid.', e);
for (var f = e.split("."), h = 0, i = f.length; i > h && b.isDefined(a); h++) {
var j = f[h];
a = null !== a ? a[j] : c
}
return a
}
function f(a, c) {
c = c || {}, b.forEach(c, function(a, b) {
delete c[b]
});
for (var d in a) !a.hasOwnProperty(d) || "$" === d.charAt(0) && "$" === d.charAt(1) || (c[d] = a[d]);
return c
}
var g = b.$$minErr("$resource"),
h = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;
b.module("ngResource", ["ng"]).provider("$resource", function() {
var a = /^https?:\/\/[^\/]*/,
d = this;
this.defaults = {
stripTrailingSlashes: !0,
actions: {
get: {
method: "GET"
},
save: {
method: "POST"
},
query: {
method: "GET",
isArray: !0
},
remove: {
method: "DELETE"
},
"delete": {
method: "DELETE"
}
}
}, this.$get = ["$http", "$log", "$q", function(h, i, j) {
function k(a) {
return l(a, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+")
}
function l(a, b) {
return encodeURIComponent(a).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, b ? "%20" : "+")
}
function m(a, b) {
this.template = a, this.defaults = q({}, d.defaults, b), this.urlParams = {}
}
function n(a, k, l, t) {
function u(a, b) {
var c = {};
return b = q({}, k, b), p(b, function(b, d) {
s(b) && (b = b()), c[d] = b && b.charAt && "@" == b.charAt(0) ? e(a, b.substr(1)) : b
}), c
}
function v(a) {
return a.resource
}
function w(a) {
f(a || {}, this)
}
var x = new m(a, t);
return l = q({}, d.defaults.actions, l), w.prototype.toJSON = function() {
var a = q({}, this);
return delete a.$promise, delete a.$resolved, a
}, p(l, function(a, d) {
var e = /^(POST|PUT|PATCH)$/i.test(a.method);
w[d] = function(k, l, m, n) {
var t, y, z, A = {};
switch (arguments.length) {
case 4:
z = n, y = m;
case 3:
case 2:
if (!s(l)) {
A = k, t = l, y = m;
break
}
if (s(k)) {
y = k, z = l;
break
}
y = l, z = m;
case 1:
s(k) ? y = k : e ? t = k : A = k;
break;
case 0:
break;
default:
throw g("badargs", "Expected up to 4 arguments [params, data, success, error], got {0} arguments", arguments.length)
}
var B = this instanceof w,
C = B ? t : a.isArray ? [] : new w(t),
D = {},
E = a.interceptor && a.interceptor.response || v,
F = a.interceptor && a.interceptor.responseError || c;
p(a, function(a, c) {
switch (c) {
default: D[c] = r(a);
break;
case "params":
case "isArray":
case "interceptor":
break;
case "timeout":
a && !b.isNumber(a) && i.debug("ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests.\n If you need support for cancellable $resource actions, you should upgrade to version 1.5 or higher.")
}
}), e && (D.data = t), x.setUrlParams(D, q({}, u(t, a.params || {}), A), a.url);
var G = h(D).then(function(c) {
var e = c.data,
h = C.$promise;
if (e) {
if (b.isArray(e) !== !!a.isArray) throw g("badcfg", "Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})", d, a.isArray ? "array" : "object", b.isArray(e) ? "array" : "object", D.method, D.url);
a.isArray ? (C.length = 0, p(e, function(a) {
"object" == typeof a ? C.push(new w(a)) : C.push(a)
})) : (f(e, C), C.$promise = h)
}
return C.$resolved = !0, c.resource = C, c
}, function(a) {
return C.$resolved = !0, (z || o)(a), j.reject(a)
});
return G = G.then(function(a) {
var b = E(a);
return (y || o)(b, a.headers), b
}, F), B ? G : (C.$promise = G, C.$resolved = !1, C)
}, w.prototype["$" + d] = function(a, b, c) {
s(a) && (c = b, b = a, a = {});
var e = w[d].call(this, a, this, b, c);
return e.$promise || e
}
}), w.bind = function(b) {
return n(a, q({}, k, b), l)
}, w
}
var o = b.noop,
p = b.forEach,
q = b.extend,
r = b.copy,
s = b.isFunction;
return m.prototype = {
setUrlParams: function(c, d, e) {
var f, h, i = this,
j = e || i.template,
l = "",
m = i.urlParams = {};
p(j.split(/\W/), function(a) {
if ("hasOwnProperty" === a) throw g("badname", "hasOwnProperty is not a valid parameter name.");
!new RegExp("^\\d+$").test(a) && a && new RegExp("(^|[^\\\\]):" + a + "(\\W|$)").test(j) && (m[a] = !0)
}), j = j.replace(/\\:/g, ":"), j = j.replace(a, function(a) {
return l = a, ""
}), d = d || {}, p(i.urlParams, function(a, c) {
f = d.hasOwnProperty(c) ? d[c] : i.defaults[c], b.isDefined(f) && null !== f ? (h = k(f), j = j.replace(new RegExp(":" + c + "(\\W|$)", "g"), function(a, b) {
return h + b
})) : j = j.replace(new RegExp("(/?):" + c + "(\\W|$)", "g"), function(a, b, c) {
return "/" == c.charAt(0) ? c : b + c
})
}), i.defaults.stripTrailingSlashes && (j = j.replace(/\/+$/, "") || "/"), j = j.replace(/\/\.(?=\w+($|\?))/, "."), c.url = l + j.replace(/\/\\\./, "/."), p(d, function(a, b) {
i.urlParams[b] || (c.params = c.params || {}, c.params[b] = a)
})
}
}, n
}]
})
}(window, window.angular), "undefined" != typeof module && "undefined" != typeof exports && module.exports === exports && (module.exports = "ui.router"),
function(a, b, c) {
"use strict";
function d(a, b) {
return N(new(N(function() {}, {
prototype: a
})), b)
}
function e(a) {
return M(arguments, function(b) {
b !== a && M(b, function(b, c) {
a.hasOwnProperty(c) || (a[c] = b)
})
}), a
}
function f(a, b) {
var c = [];
for (var d in a.path) {
if (a.path[d] !== b.path[d]) break;
c.push(a.path[d])
}
return c
}
function g(a) {
if (Object.keys) return Object.keys(a);
var b = [];
return M(a, function(a, c) {
b.push(c)
}), b
}
function h(a, b) {
if (Array.prototype.indexOf) return a.indexOf(b, Number(arguments[2]) || 0);
var c = a.length >>> 0,
d = Number(arguments[2]) || 0;
for (d = 0 > d ? Math.ceil(d) : Math.floor(d), 0 > d && (d += c); c > d; d++)
if (d in a && a[d] === b) return d;
return -1
}
function i(a, b, c, d) {
var e, i = f(c, d),
j = {},
k = [];
for (var l in i)
if (i[l].params && (e = g(i[l].params), e.length))
for (var m in e) h(k, e[m]) >= 0 || (k.push(e[m]), j[e[m]] = a[e[m]]);
return N({}, j, b)
}
function j(a, b, c) {
if (!c) {
c = [];
for (var d in a) c.push(d)
}
for (var e = 0; e < c.length; e++) {
var f = c[e];
if (a[f] != b[f]) return !1
}
return !0
}
function k(a, b) {
var c = {};
return M(a, function(a) {
c[a] = b[a]
}), c
}
function l(a) {
var b = {},
c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1));
return M(c, function(c) {
c in a && (b[c] = a[c])
}), b
}
function m(a) {
var b = {},
c = Array.prototype.concat.apply(Array.prototype, Array.prototype.slice.call(arguments, 1));
for (var d in a) - 1 == h(c, d) && (b[d] = a[d]);
return b
}
function n(a, b) {
var c = L(a),
d = c ? [] : {};
return M(a, function(a, e) {
b(a, e) && (d[c ? d.length : e] = a)
}), d
}
function o(a, b) {
var c = L(a) ? [] : {};
return M(a, function(a, d) {
c[d] = b(a, d)
}), c
}
function p(a, b) {
var d = 1,
f = 2,
i = {},
j = [],
k = i,
l = N(a.when(i), {
$$promises: i,
$$values: i
});
this.study = function(i) {
function n(a, c) {
if (s[c] !== f) {
if (r.push(c), s[c] === d) throw r.splice(0, h(r, c)), new Error("Cyclic dependency: " + r.join(" -> "));
if (s[c] = d, J(a)) q.push(c, [function() {
return b.get(a)
}], j);
else {
var e = b.annotate(a);
M(e, function(a) {
a !== c && i.hasOwnProperty(a) && n(i[a], a)
}), q.push(c, a, e)
}
r.pop(), s[c] = f
}
}
function o(a) {
return K(a) && a.then && a.$$promises
}
if (!K(i)) throw new Error("'invocables' must be an object");
var p = g(i || {}),
q = [],
r = [],
s = {};
return M(i, n), i = r = s = null,
function(d, f, g) {
function h() {
--u || (v || e(t, f.$$values), r.$$values = t, r.$$promises = r.$$promises || !0, delete r.$$inheritedValues, n.resolve(t))
}
function i(a) {
r.$$failure = a, n.reject(a)
}
function j(c, e, f) {
function j(a) {
l.reject(a), i(a)
}
function k() {
if (!H(r.$$failure)) try {
l.resolve(b.invoke(e, g, t)), l.promise.then(function(a) {
t[c] = a, h()
}, j)
} catch (a) {
j(a)
}
}
var l = a.defer(),
m = 0;
M(f, function(a) {
s.hasOwnProperty(a) && !d.hasOwnProperty(a) && (m++, s[a].then(function(b) {
t[a] = b, --m || k()
}, j))
}), m || k(), s[c] = l.promise
}
if (o(d) && g === c && (g = f, f = d, d = null), d) {
if (!K(d)) throw new Error("'locals' must be an object")
} else d = k;
if (f) {
if (!o(f)) throw new Error("'parent' must be a promise returned by $resolve.resolve()")
} else f = l;
var n = a.defer(),
r = n.promise,
s = r.$$promises = {},
t = N({}, d),
u = 1 + q.length / 3,
v = !1;
if (H(f.$$failure)) return i(f.$$failure), r;
f.$$inheritedValues && e(t, m(f.$$inheritedValues, p)), N(s, f.$$promises), f.$$values ? (v = e(t, m(f.$$values, p)), r.$$inheritedValues = m(f.$$values, p), h()) : (f.$$inheritedValues && (r.$$inheritedValues = m(f.$$inheritedValues, p)), f.then(h, i));
for (var w = 0, x = q.length; x > w; w += 3) d.hasOwnProperty(q[w]) ? h() : j(q[w], q[w + 1], q[w + 2]);
return r
}
}, this.resolve = function(a, b, c, d) {
return this.study(a)(b, c, d)
}
}
function q(a, b, c) {
this.fromConfig = function(a, b, c) {
return H(a.template) ? this.fromString(a.template, b) : H(a.templateUrl) ? this.fromUrl(a.templateUrl, b) : H(a.templateProvider) ? this.fromProvider(a.templateProvider, b, c) : null
}, this.fromString = function(a, b) {
return I(a) ? a(b) : a
}, this.fromUrl = function(c, d) {
return I(c) && (c = c(d)), null == c ? null : a.get(c, {
cache: b,
headers: {
Accept: "text/html"
}
}).then(function(a) {
return a.data
})
}, this.fromProvider = function(a, b, d) {
return c.invoke(a, null, d || {
params: b
})
}
}
function r(a, b, e) {
function f(b, c, d, e) {
if (q.push(b), o[b]) return o[b];
if (!/^\w+(-+\w+)*(?:\[\])?$/.test(b)) throw new Error("Invalid parameter name '" + b + "' in pattern '" + a + "'");
if (p[b]) throw new Error("Duplicate parameter name '" + b + "' in pattern '" + a + "'");
return p[b] = new P.Param(b, c, d, e), p[b]
}
function g(a, b, c, d) {
var e = ["", ""],
f = a.replace(/[\\\[\]\^$*+?.()|{}]/g, "\\$&");
if (!b) return f;
switch (c) {
case !1:
e = ["(", ")" + (d ? "?" : "")];
break;
case !0:
e = ["?(", ")?"];
break;
default:
e = ["(" + c + "|", ")?"]
}
return f + e[0] + b + e[1]
}
function h(e, f) {
var g, h, i, j, k;
return g = e[2] || e[3], k = b.params[g], i = a.substring(m, e.index), h = f ? e[4] : e[4] || ("*" == e[1] ? ".*" : null), j = P.type(h || "string") || d(P.type("string"), {
pattern: new RegExp(h, b.caseInsensitive ? "i" : c)
}), {
id: g,
regexp: h,
segment: i,
type: j,
cfg: k
}
}
b = N({
params: {}
}, K(b) ? b : {});
var i, j = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
k = /([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
l = "^",
m = 0,
n = this.segments = [],
o = e ? e.params : {},
p = this.params = e ? e.params.$$new() : new P.ParamSet,
q = [];
this.source = a;
for (var r, s, t;
(i = j.exec(a)) && (r = h(i, !1), !(r.segment.indexOf("?") >= 0));) s = f(r.id, r.type, r.cfg, "path"), l += g(r.segment, s.type.pattern.source, s.squash, s.isOptional), n.push(r.segment), m = j.lastIndex;
t = a.substring(m);
var u = t.indexOf("?");
if (u >= 0) {
var v = this.sourceSearch = t.substring(u);
if (t = t.substring(0, u), this.sourcePath = a.substring(0, m + u), v.length > 0)
for (m = 0; i = k.exec(v);) r = h(i, !0), s = f(r.id, r.type, r.cfg, "search"), m = j.lastIndex
} else this.sourcePath = a, this.sourceSearch = "";
l += g(t) + (b.strict === !1 ? "/?" : "") + "$", n.push(t), this.regexp = new RegExp(l, b.caseInsensitive ? "i" : c), this.prefix = n[0], this.$$paramNames = q
}
function s(a) {
N(this, a)
}
function t() {
function a(a) {
return null != a ? a.toString().replace(/\//g, "%2F") : a
}
function e(a) {
return null != a ? a.toString().replace(/%2F/g, "/") : a
}
function f() {
return {
strict: p,
caseInsensitive: m
}
}
function i(a) {
return I(a) || L(a) && I(a[a.length - 1])
}
function j() {
for (; w.length;) {
var a = w.shift();
if (a.pattern) throw new Error("You cannot override a type's .pattern at runtime.");
b.extend(u[a.name], l.invoke(a.def))
}
}
function k(a) {
N(this, a || {})
}
P = this;
var l, m = !1,
p = !0,
q = !1,
u = {},
v = !0,
w = [],
x = {
string: {
encode: a,
decode: e,
is: function(a) {
return null == a || !H(a) || "string" == typeof a
},
pattern: /[^\/]*/
},
"int": {
encode: a,
decode: function(a) {
return parseInt(a, 10)
},
is: function(a) {
return H(a) && this.decode(a.toString()) === a
},
pattern: /\d+/
},
bool: {
encode: function(a) {
return a ? 1 : 0
},
decode: function(a) {
return 0 !== parseInt(a, 10)
},
is: function(a) {
return a === !0 || a === !1
},
pattern: /0|1/
},
date: {
encode: function(a) {
return this.is(a) ? [a.getFullYear(), ("0" + (a.getMonth() + 1)).slice(-2), ("0" + a.getDate()).slice(-2)].join("-") : c
},
decode: function(a) {
if (this.is(a)) return a;
var b = this.capture.exec(a);
return b ? new Date(b[1], b[2] - 1, b[3]) : c
},
is: function(a) {
return a instanceof Date && !isNaN(a.valueOf())
},
equals: function(a, b) {
return this.is(a) && this.is(b) && a.toISOString() === b.toISOString()
},
pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,
capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/
},
json: {
encode: b.toJson,
decode: b.fromJson,
is: b.isObject,
equals: b.equals,
pattern: /[^\/]*/
},
any: {
encode: b.identity,
decode: b.identity,
equals: b.equals,
pattern: /.*/
}
};
t.$$getDefaultValue = function(a) {
if (!i(a.value)) return a.value;
if (!l) throw new Error("Injectable functions cannot be called at configuration time");
return l.invoke(a.value)
}, this.caseInsensitive = function(a) {
return H(a) && (m = a), m
}, this.strictMode = function(a) {
return H(a) && (p = a), p
}, this.defaultSquashPolicy = function(a) {
if (!H(a)) return q;
if (a !== !0 && a !== !1 && !J(a)) throw new Error("Invalid squash policy: " + a + ". Valid policies: false, true, arbitrary-string");
return q = a, a
}, this.compile = function(a, b) {
return new r(a, N(f(), b))
}, this.isMatcher = function(a) {
if (!K(a)) return !1;
var b = !0;
return M(r.prototype, function(c, d) {
I(c) && (b = b && H(a[d]) && I(a[d]))
}), b
}, this.type = function(a, b, c) {
if (!H(b)) return u[a];
if (u.hasOwnProperty(a)) throw new Error("A type named '" + a + "' has already been defined.");
return u[a] = new s(N({
name: a
}, b)), c && (w.push({
name: a,
def: c
}), v || j()), this
}, M(x, function(a, b) {
u[b] = new s(N({
name: b
}, a))
}), u = d(u, {}), this.$get = ["$injector", function(a) {
return l = a, v = !1, j(), M(x, function(a, b) {
u[b] || (u[b] = new s(a))
}), this
}], this.Param = function(a, b, d, e) {
function f(a) {
var b = K(a) ? g(a) : [],
c = -1 === h(b, "value") && -1 === h(b, "type") && -1 === h(b, "squash") && -1 === h(b, "array");
return c && (a = {
value: a
}), a.$$fn = i(a.value) ? a.value : function() {
return a.value
}, a
}
function j(b, c, d) {
if (b.type && c) throw new Error("Param '" + a + "' has two type configurations.");
return c ? c : b.type ? b.type instanceof s ? b.type : new s(b.type) : "config" === d ? u.any : u.string
}
function k() {
var b = {
array: "search" === e ? "auto" : !1
},
c = a.match(/\[\]$/) ? {
array: !0
} : {};
return N(b, c, d).array
}
function m(a, b) {
var c = a.squash;
if (!b || c === !1) return !1;
if (!H(c) || null == c) return q;
if (c === !0 || J(c)) return c;
throw new Error("Invalid squash policy: '" + c + "'. Valid policies: false, true, or arbitrary string")
}
function p(a, b, d, e) {
var f, g, i = [{
from: "",
to: d || b ? c : ""
}, {
from: null,
to: d || b ? c : ""
}];
return f = L(a.replace) ? a.replace : [], J(e) && f.push({
from: e,
to: c
}), g = o(f, function(a) {
return a.from
}), n(i, function(a) {
return -1 === h(g, a.from)
}).concat(f)
}
function r() {
if (!l) throw new Error("Injectable functions cannot be called at configuration time");
var a = l.invoke(d.$$fn);
if (null !== a && a !== c && !w.type.is(a)) throw new Error("Default value (" + a + ") for parameter '" + w.id + "' is not an instance of Type (" + w.type.name + ")");
return a
}
function t(a) {
function b(a) {
return function(b) {
return b.from === a
}
}
function c(a) {
var c = o(n(w.replace, b(a)), function(a) {
return a.to
});
return c.length ? c[0] : a
}
return a = c(a), H(a) ? w.type.$normalize(a) : r()
}
function v() {
return "{Param:" + a + " " + b + " squash: '" + z + "' optional: " + y + "}"
}
var w = this;
d = f(d), b = j(d, b, e);
var x = k();
b = x ? b.$asArray(x, "search" === e) : b, "string" !== b.name || x || "path" !== e || d.value !== c || (d.value = "");
var y = d.value !== c,
z = m(d, y),
A = p(d, x, y, z);
N(this, {
id: a,
type: b,
location: e,
array: x,
squash: z,
replace: A,
isOptional: y,
value: t,
dynamic: c,
config: d,
toString: v
})
}, k.prototype = {
$$new: function() {
return d(this, N(new k, {
$$parent: this
}))
},
$$keys: function() {
for (var a = [], b = [], c = this, d = g(k.prototype); c;) b.push(c), c = c.$$parent;
return b.reverse(), M(b, function(b) {
M(g(b), function(b) {
-1 === h(a, b) && -1 === h(d, b) && a.push(b)
})
}), a
},
$$values: function(a) {
var b = {},
c = this;
return M(c.$$keys(), function(d) {
b[d] = c[d].value(a && a[d])
}), b
},
$$equals: function(a, b) {
var c = !0,
d = this;
return M(d.$$keys(), function(e) {
var f = a && a[e],
g = b && b[e];
d[e].type.equals(f, g) || (c = !1)
}), c
},
$$validates: function(a) {
var d, e, f, g, h, i = this.$$keys();
for (d = 0; d < i.length && (e = this[i[d]], f = a[i[d]], f !== c && null !== f || !e.isOptional); d++) {
if (g = e.type.$normalize(f), !e.type.is(g)) return !1;
if (h = e.type.encode(g), b.isString(h) && !e.type.pattern.exec(h)) return !1
}
return !0
},
$$parent: c
}, this.ParamSet = k
}
function u(a, d) {
function e(a) {
var b = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source);
return null != b ? b[1].replace(/\\(.)/g, "$1") : ""
}
function f(a, b) {
return a.replace(/\$(\$|\d{1,2})/, function(a, c) {
return b["$" === c ? 0 : Number(c)]
})
}
function g(a, b, c) {
if (!c) return !1;
var d = a.invoke(b, b, {
$match: c
});
return H(d) ? d : !0
}
function h(d, e, f, g) {
function h(a, b, c) {
return "/" === p ? a : b ? p.slice(0, -1) + a : c ? p.slice(1) + a : a
}
function m(a) {
function b(a) {
var b = a(f, d);
return b ? (J(b) && d.replace().url(b), !0) : !1
}
if (!a || !a.defaultPrevented) {
o && d.url() === o;
o = c;
var e, g = j.length;
for (e = 0; g > e; e++)
if (b(j[e])) return;
k && b(k)
}
}
function n() {
return i = i || e.$on("$locationChangeSuccess", m)
}
var o, p = g.baseHref(),
q = d.url();
return l || n(), {
sync: function() {
m()
},
listen: function() {
return n()
},
update: function(a) {
return a ? void(q = d.url()) : void(d.url() !== q && (d.url(q), d.replace()))
},
push: function(a, b, e) {
var f = a.format(b || {});
null !== f && b && b["#"] && (f += "#" + b["#"]), d.url(f), o = e && e.$$avoidResync ? d.url() : c, e && e.replace && d.replace()
},
href: function(c, e, f) {
if (!c.validates(e)) return null;
var g = a.html5Mode();
b.isObject(g) && (g = g.enabled);
var i = c.format(e);
if (f = f || {}, g || null === i || (i = "#" + a.hashPrefix() + i), null !== i && e && e["#"] && (i += "#" + e["#"]), i = h(i, g, f.absolute), !f.absolute || !i) return i;
var j = !g && i ? "/" : "",
k = d.port();
return k = 80 === k || 443 === k ? "" : ":" + k, [d.protocol(), "://", d.host(), k, j, i].join("")
}
}
}
var i, j = [],
k = null,
l = !1;
this.rule = function(a) {
if (!I(a)) throw new Error("'rule' must be a function");
return j.push(a), this
}, this.otherwise = function(a) {
if (J(a)) {
var b = a;
a = function() {
return b
}
} else if (!I(a)) throw new Error("'rule' must be a function");
return k = a, this
}, this.when = function(a, b) {
var c, h = J(b);
if (J(a) && (a = d.compile(a)), !h && !I(b) && !L(b)) throw new Error("invalid 'handler' in when()");
var i = {
matcher: function(a, b) {
return h && (c = d.compile(b), b = ["$match", function(a) {
return c.format(a)
}]), N(function(c, d) {
return g(c, b, a.exec(d.path(), d.search()))
}, {
prefix: J(a.prefix) ? a.prefix : ""
})
},
regex: function(a, b) {
if (a.global || a.sticky) throw new Error("when() RegExp must not be global or sticky");
return h && (c = b, b = ["$match", function(a) {
return f(c, a)
}]), N(function(c, d) {
return g(c, b, a.exec(d.path()))
}, {
prefix: e(a)
})
}
},
j = {
matcher: d.isMatcher(a),
regex: a instanceof RegExp
};
for (var k in j)
if (j[k]) return this.rule(i[k](a, b));
throw new Error("invalid 'what' in when()")
}, this.deferIntercept = function(a) {
a === c && (a = !0), l = a
}, this.$get = h, h.$inject = ["$location", "$rootScope", "$injector", "$browser"]
}
function v(a, e) {
function f(a) {
return 0 === a.indexOf(".") || 0 === a.indexOf("^")
}
function m(a, b) {
if (!a) return c;
var d = J(a),
e = d ? a : a.name,
g = f(e);
if (g) {
if (!b) throw new Error("No reference point given for path '" + e + "'");
b = m(b);
for (var h = e.split("."), i = 0, j = h.length, k = b; j > i; i++)
if ("" !== h[i] || 0 !== i) {
if ("^" !== h[i]) break;
if (!k.parent) throw new Error("Path '" + e + "' not valid for state '" + b.name + "'");
k = k.parent
} else k = b;
h = h.slice(i).join("."), e = k.name + (k.name && h ? "." : "") + h
}
var l = z[e];
return !l || !d && (d || l !== a && l.self !== a) ? c : l
}
function n(a, b) {
A[a] || (A[a] = []), A[a].push(b)
}
function p(a) {
for (var b = A[a] || []; b.length;) q(b.shift())
}
function q(b) {
b = d(b, {
self: b,
resolve: b.resolve || {},
toString: function() {
return this.name
}
});
var c = b.name;
if (!J(c) || c.indexOf("@") >= 0) throw new Error("State must have a valid name");
if (z.hasOwnProperty(c)) throw new Error("State '" + c + "'' is already defined");
var e = -1 !== c.indexOf(".") ? c.substring(0, c.lastIndexOf(".")) : J(b.parent) ? b.parent : K(b.parent) && J(b.parent.name) ? b.parent.name : "";
if (e && !z[e]) return n(e, b.self);
for (var f in C) I(C[f]) && (b[f] = C[f](b, C.$delegates[f]));
return z[c] = b, !b[B] && b.url && a.when(b.url, ["$match", "$stateParams", function(a, c) {
y.$current.navigable == b && j(a, c) || y.transitionTo(b, a, {
inherit: !0,
location: !1
})
}]), p(c), b
}
function r(a) {
return a.indexOf("*") > -1
}
function s(a) {
for (var b = a.split("."), c = y.$current.name.split("."), d = 0, e = b.length; e > d; d++) "*" === b[d] && (c[d] = "*");
return "**" === b[0] && (c = c.slice(h(c, b[1])), c.unshift("**")), "**" === b[b.length - 1] && (c.splice(h(c, b[b.length - 2]) + 1, Number.MAX_VALUE), c.push("**")), b.length != c.length ? !1 : c.join("") === b.join("")
}
function t(a, b) {
return J(a) && !H(b) ? C[a] : I(b) && J(a) ? (C[a] && !C.$delegates[a] && (C.$delegates[a] = C[a]), C[a] = b, this) : this
}
function u(a, b) {
return K(a) ? b = a : b.name = a, q(b), this
}
function v(a, e, f, h, l, n, p, q, t) {
function u(b, c, d, f) {
var g = a.$broadcast("$stateNotFound", b, c, d);
if (g.defaultPrevented) return p.update(), D;
if (!g.retry) return null;
if (f.$retry) return p.update(), E;
var h = y.transition = e.when(g.retry);
return h.then(function() {
return h !== y.transition ? A : (b.options.$retry = !0, y.transitionTo(b.to, b.toParams, b.options))
}, function() {
return D
}), p.update(), h
}
function v(a, c, d, g, i, j) {
function m() {
var c = [];
return M(a.views, function(d, e) {
var g = d.resolve && d.resolve !== a.resolve ? d.resolve : {};
g.$template = [function() {
return f.load(e, {
view: d,
locals: i.globals,
params: n,
notify: j.notify
}) || ""
}], c.push(l.resolve(g, i.globals, i.resolve, a).then(function(c) {
if (I(d.controllerProvider) || L(d.controllerProvider)) {
var f = b.extend({}, g, i.globals);
c.$$controller = h.invoke(d.controllerProvider, null, f)
} else c.$$controller = d.controller;
c.$$state = a, c.$$controllerAs = d.controllerAs, i[e] = c
}))
}), e.all(c).then(function() {
return i.globals
})
}
var n = d ? c : k(a.params.$$keys(), c),
o = {
$stateParams: n
};
i.resolve = l.resolve(a.resolve, o, i.resolve, a);
var p = [i.resolve.then(function(a) {
i.globals = a
})];
return g && p.push(g), e.all(p).then(m).then(function(a) {
return i
})
}
var A = e.reject(new Error("transition superseded")),
C = e.reject(new Error("transition prevented")),
D = e.reject(new Error("transition aborted")),
E = e.reject(new Error("transition failed"));
return x.locals = {
resolve: null,
globals: {
$stateParams: {}
}
}, y = {
params: {},
current: x.self,
$current: x,
transition: null
}, y.reload = function(a) {
return y.transitionTo(y.current, n, {
reload: a || !0,
inherit: !1,
notify: !0
})
}, y.go = function(a, b, c) {
return y.transitionTo(a, b, N({
inherit: !0,
relative: y.$current
}, c))
}, y.transitionTo = function(b, c, f) {
c = c || {}, f = N({
location: !0,
inherit: !1,
relative: null,
notify: !0,
reload: !1,
$retry: !1
}, f || {});
var g, j = y.$current,
l = y.params,
o = j.path,
q = m(b, f.relative),
r = c["#"];
if (!H(q)) {
var s = {
to: b,
toParams: c,
options: f
},
t = u(s, j.self, l, f);
if (t) return t;
if (b = s.to, c = s.toParams, f = s.options, q = m(b, f.relative), !H(q)) {
if (!f.relative) throw new Error("No such state '" + b + "'");
throw new Error("Could not resolve '" + b + "' from state '" + f.relative + "'")
}
}
if (q[B]) throw new Error("Cannot transition to abstract state '" + b + "'");
if (f.inherit && (c = i(n, c || {}, y.$current, q)), !q.params.$$validates(c)) return E;
c = q.params.$$values(c), b = q;
var z = b.path,
D = 0,
F = z[D],
G = x.locals,
I = [];
if (f.reload) {
if (J(f.reload) || K(f.reload)) {
if (K(f.reload) && !f.reload.name) throw new Error("Invalid reload state object");
var L = f.reload === !0 ? o[0] : m(f.reload);
if (f.reload && !L) throw new Error("No such reload state '" + (J(f.reload) ? f.reload : f.reload.name) + "'");
for (; F && F === o[D] && F !== L;) G = I[D] = F.locals, D++, F = z[D]
}
} else
for (; F && F === o[D] && F.ownParams.$$equals(c, l);) G = I[D] = F.locals, D++, F = z[D];
if (w(b, c, j, l, G, f)) return r && (c["#"] = r), y.params = c, O(y.params, n), f.location && b.navigable && b.navigable.url && (p.push(b.navigable.url, c, {
$$avoidResync: !0,
replace: "replace" === f.location
}), p.update(!0)), y.transition = null, e.when(y.current);
if (c = k(b.params.$$keys(), c || {}), f.notify && a.$broadcast("$stateChangeStart", b.self, c, j.self, l).defaultPrevented) return a.$broadcast("$stateChangeCancel", b.self, c, j.self, l), p.update(), C;
for (var M = e.when(G), P = D; P < z.length; P++, F = z[P]) G = I[P] = d(G), M = v(F, c, F === b, M, G, f);
var Q = y.transition = M.then(function() {
var d, e, g;
if (y.transition !== Q) return A;
for (d = o.length - 1; d >= D; d--) g = o[d], g.self.onExit && h.invoke(g.self.onExit, g.self, g.locals.globals), g.locals = null;
for (d = D; d < z.length; d++) e = z[d], e.locals = I[d], e.self.onEnter && h.invoke(e.self.onEnter, e.self, e.locals.globals);
return r && (c["#"] = r), y.transition !== Q ? A : (y.$current = b, y.current = b.self, y.params = c, O(y.params, n), y.transition = null, f.location && b.navigable && p.push(b.navigable.url, b.navigable.locals.globals.$stateParams, {
$$avoidResync: !0,
replace: "replace" === f.location
}), f.notify && a.$broadcast("$stateChangeSuccess", b.self, c, j.self, l), p.update(!0), y.current)
}, function(d) {
return y.transition !== Q ? A : (y.transition = null, g = a.$broadcast("$stateChangeError", b.self, c, j.self, l, d), g.defaultPrevented || p.update(), e.reject(d))
});
return Q
}, y.is = function(a, b, d) {
d = N({
relative: y.$current
}, d || {});
var e = m(a, d.relative);
return H(e) ? y.$current !== e ? !1 : b ? j(e.params.$$values(b), n) : !0 : c
}, y.includes = function(a, b, d) {
if (d = N({
relative: y.$current
}, d || {}), J(a) && r(a)) {
if (!s(a)) return !1;
a = y.$current.name
}
var e = m(a, d.relative);
return H(e) ? H(y.$current.includes[e.name]) ? b ? j(e.params.$$values(b), n, g(b)) : !0 : !1 : c
}, y.href = function(a, b, d) {
d = N({
lossy: !0,
inherit: !0,
absolute: !1,
relative: y.$current
}, d || {});
var e = m(a, d.relative);
if (!H(e)) return null;
d.inherit && (b = i(n, b || {}, y.$current, e));
var f = e && d.lossy ? e.navigable : e;
return f && f.url !== c && null !== f.url ? p.href(f.url, k(e.params.$$keys().concat("#"), b || {}), {
absolute: d.absolute
}) : null
}, y.get = function(a, b) {
if (0 === arguments.length) return o(g(z), function(a) {
return z[a].self
});
var c = m(a, b || y.$current);
return c && c.self ? c.self : null
}, y
}
function w(a, b, c, d, e, f) {
function g(a, b, c) {
function d(b) {
return "search" != a.params[b].location
}
var e = a.params.$$keys().filter(d),
f = l.apply({}, [a.params].concat(e)),
g = new P.ParamSet(f);
return g.$$equals(b, c)
}
return !f.reload && a === c && (e === c.locals || a.self.reloadOnSearch === !1 && g(c, d, b)) ? !0 : void 0
}
var x, y, z = {},
A = {},
B = "abstract",
C = {
parent: function(a) {
if (H(a.parent) && a.parent) return m(a.parent);
var b = /^(.+)\.[^.]+$/.exec(a.name);
return b ? m(b[1]) : x
},
data: function(a) {
return a.parent && a.parent.data && (a.data = a.self.data = N({}, a.parent.data, a.data)), a.data
},
url: function(a) {
var b = a.url,
c = {
params: a.params || {}
};
if (J(b)) return "^" == b.charAt(0) ? e.compile(b.substring(1), c) : (a.parent.navigable || x).url.concat(b, c);
if (!b || e.isMatcher(b)) return b;
throw new Error("Invalid url '" + b + "' in state '" + a + "'")
},
navigable: function(a) {
return a.url ? a : a.parent ? a.parent.navigable : null
},
ownParams: function(a) {
var b = a.url && a.url.params || new P.ParamSet;
return M(a.params || {}, function(a, c) {
b[c] || (b[c] = new P.Param(c, null, a, "config"))
}), b
},
params: function(a) {
return a.parent && a.parent.params ? N(a.parent.params.$$new(), a.ownParams) : new P.ParamSet
},
views: function(a) {
var b = {};
return M(H(a.views) ? a.views : {
"": a
}, function(c, d) {
d.indexOf("@") < 0 && (d += "@" + a.parent.name), b[d] = c
}), b
},
path: function(a) {
return a.parent ? a.parent.path.concat(a) : []
},
includes: function(a) {
var b = a.parent ? N({}, a.parent.includes) : {};
return b[a.name] = !0, b
},
$delegates: {}
};
x = q({
name: "",
url: "^",
views: null,
"abstract": !0
}), x.navigable = null, this.decorator = t, this.state = u, this.$get = v, v.$inject = ["$rootScope", "$q", "$view", "$injector", "$resolve", "$stateParams", "$urlRouter", "$location", "$urlMatcherFactory"]
}
function w() {
function a(a, b) {
return {
load: function(c, d) {
var e, f = {
template: null,
controller: null,
view: null,
locals: null,
notify: !0,
async: !0,
params: {}
};
return d = N(f, d), d.view && (e = b.fromConfig(d.view, d.params, d.locals)), e && d.notify && a.$broadcast("$viewContentLoading", d), e
}
}
}
this.$get = a, a.$inject = ["$rootScope", "$templateFactory"]
}
function x() {
var a = !1;
this.useAnchorScroll = function() {
a = !0
}, this.$get = ["$anchorScroll", "$timeout", function(b, c) {
return a ? b : function(a) {
return c(function() {
a[0].scrollIntoView()
}, 0, !1)
}
}]
}
function y(a, c, d, e) {
function f() {
return c.has ? function(a) {
return c.has(a) ? c.get(a) : null
} : function(a) {
try {
return c.get(a)
} catch (b) {
return null
}
}
}
function g(a, b) {
var c = function() {
return {
enter: function(a, b, c) {
b.after(a), c()
},
leave: function(a, b) {
a.remove(), b()
}
}
};
if (j) return {
enter: function(a, b, c) {
var d = j.enter(a, null, b, c);
d && d.then && d.then(c)
},
leave: function(a, b) {
var c = j.leave(a, b);
c && c.then && c.then(b)
}
};
if (i) {
var d = i && i(b, a);
return {
enter: function(a, b, c) {
d.enter(a, null, b), c()
},
leave: function(a, b) {
d.leave(a), b()
}
}
}
return c()
}
var h = f(),
i = h("$animator"),
j = h("$animate"),
k = {
restrict: "ECA",
terminal: !0,
priority: 400,
transclude: "element",
compile: function(c, f, h) {
return function(c, f, i) {
function j() {
l && (l.remove(), l = null), n && (n.$destroy(), n = null), m && (r.leave(m, function() {
l = null
}), l = m, m = null)
}
function k(g) {
var k, l = A(c, i, f, e),
s = l && a.$current && a.$current.locals[l];
if (g || s !== o) {
k = c.$new(), o = a.$current.locals[l];
var t = h(k, function(a) {
r.enter(a, f, function() {
n && n.$emit("$viewContentAnimationEnded"), (b.isDefined(q) && !q || c.$eval(q)) && d(a)
}), j()
});
m = t, n = k, n.$emit("$viewContentLoaded"), n.$eval(p)
}
}
var l, m, n, o, p = i.onload || "",
q = i.autoscroll,
r = g(i, c);
c.$on("$stateChangeSuccess", function() {
k(!1)
}), c.$on("$viewContentLoading", function() {
k(!1)
}), k(!0)
}
}
};
return k
}
function z(a, b, c, d) {
return {
restrict: "ECA",
priority: -400,
compile: function(e) {
var f = e.html();
return function(e, g, h) {
var i = c.$current,
j = A(e, h, g, d),
k = i && i.locals[j];
if (k) {
g.data("$uiView", {
name: j,
state: k.$$state
}), g.html(k.$template ? k.$template : f);
var l = a(g.contents());
if (k.$$controller) {
k.$scope = e, k.$element = g;
var m = b(k.$$controller, k);
k.$$controllerAs && (e[k.$$controllerAs] = m), g.data("$ngControllerController", m), g.children().data("$ngControllerController", m)
}
l(e)
}
}
}
}
}
function A(a, b, c, d) {
var e = d(b.uiView || b.name || "")(a),
f = c.inheritedData("$uiView");
return e.indexOf("@") >= 0 ? e : e + "@" + (f ? f.state.name : "")
}
function B(a, b) {
var c, d = a.match(/^\s*({[^}]*})\s*$/);
if (d && (a = b + "(" + d[1] + ")"), c = a.replace(/\n/g, " ").match(/^([^(]+?)\s*(\((.*)\))?$/), !c || 4 !== c.length) throw new Error("Invalid state ref '" + a + "'");
return {
state: c[1],
paramExpr: c[3] || null
}
}
function C(a) {
var b = a.parent().inheritedData("$uiView");
return b && b.state && b.state.name ? b.state : void 0
}
function D(a, c) {
var d = ["location", "inherit", "reload", "absolute"];
return {
restrict: "A",
require: ["?^uiSrefActive", "?^uiSrefActiveEq"],
link: function(e, f, g, h) {
var i = B(g.uiSref, a.current.name),
j = null,
k = C(f) || a.$current,
l = "[object SVGAnimatedString]" === Object.prototype.toString.call(f.prop("href")) ? "xlink:href" : "href",
m = null,
n = "A" === f.prop("tagName").toUpperCase(),
o = "FORM" === f[0].nodeName,
p = o ? "action" : l,
q = !0,
r = {
relative: k,
inherit: !0
},
s = e.$eval(g.uiSrefOpts) || {};
b.forEach(d, function(a) {
a in s && (r[a] = s[a])
});
var t = function(c) {
if (c && (j = b.copy(c)), q) {
m = a.href(i.state, j, r);
var d = h[1] || h[0];
return d && d.$$addStateInfo(i.state, j), null === m ? (q = !1, !1) : void g.$set(p, m)
}
};
i.paramExpr && (e.$watch(i.paramExpr, function(a, b) {
a !== j && t(a)
}, !0), j = b.copy(e.$eval(i.paramExpr))), t(), o || f.bind("click", function(b) {
var d = b.which || b.button;
if (!(d > 1 || b.ctrlKey || b.metaKey || b.shiftKey || f.attr("target"))) {
var e = c(function() {
a.go(i.state, j, r)
});
b.preventDefault();
var g = n && !m ? 1 : 0;
b.preventDefault = function() {
g-- <= 0 && c.cancel(e)
}
}
})
}
}
}
function E(a, b, c) {
return {
restrict: "A",
controller: ["$scope", "$element", "$attrs", function(b, d, e) {
function f() {
g() ? d.addClass(i) : d.removeClass(i)
}
function g() {
for (var a = 0; a < j.length; a++)
if (h(j[a].state, j[a].params)) return !0;
return !1
}
function h(b, c) {
return "undefined" != typeof e.uiSrefActiveEq ? a.is(b.name, c) : a.includes(b.name, c)
}
var i, j = [];
i = c(e.uiSrefActiveEq || e.uiSrefActive || "", !1)(b), this.$$addStateInfo = function(b, c) {
var e = a.get(b, C(d));
j.push({
state: e || {
name: b
},
params: c
}), f()
}, b.$on("$stateChangeSuccess", f)
}]
}
}
function F(a) {
var b = function(b) {
return a.is(b)
};
return b.$stateful = !0, b
}
function G(a) {
var b = function(b) {
return a.includes(b)
};
return b.$stateful = !0, b
}
var H = b.isDefined,
I = b.isFunction,
J = b.isString,
K = b.isObject,
L = b.isArray,
M = b.forEach,
N = b.extend,
O = b.copy;
b.module("ui.router.util", ["ng"]), b.module("ui.router.router", ["ui.router.util"]), b.module("ui.router.state", ["ui.router.router", "ui.router.util"]), b.module("ui.router", ["ui.router.state"]), b.module("ui.router.compat", ["ui.router"]), p.$inject = ["$q", "$injector"], b.module("ui.router.util").service("$resolve", p), q.$inject = ["$http", "$templateCache", "$injector"], b.module("ui.router.util").service("$templateFactory", q);
var P;
r.prototype.concat = function(a, b) {
var c = {
caseInsensitive: P.caseInsensitive(),
strict: P.strictMode(),
squash: P.defaultSquashPolicy()
};
return new r(this.sourcePath + a + this.sourceSearch, N(c, b), this)
}, r.prototype.toString = function() {
return this.source
}, r.prototype.exec = function(a, b) {
function c(a) {
function b(a) {
return a.split("").reverse().join("")
}
function c(a) {
return a.replace(/\\-/g, "-")
}
var d = b(a).split(/-(?!\\)/),
e = o(d, b);
return o(e, c).reverse()
}
var d = this.regexp.exec(a);
if (!d) return null;
b = b || {};
var e, f, g, h = this.parameters(),
i = h.length,
j = this.segments.length - 1,
k = {};
if (j !== d.length - 1) throw new Error("Unbalanced capture group in route '" + this.source + "'");
for (e = 0; j > e; e++) {
g = h[e];
var l = this.params[g],
m = d[e + 1];
for (f = 0; f < l.replace; f++) l.replace[f].from === m && (m = l.replace[f].to);
m && l.array === !0 && (m = c(m)), k[g] = l.value(m)
}
for (; i > e; e++) g = h[e], k[g] = this.params[g].value(b[g]);
return k
}, r.prototype.parameters = function(a) {
return H(a) ? this.params[a] || null : this.$$paramNames
}, r.prototype.validates = function(a) {
return this.params.$$validates(a)
}, r.prototype.format = function(a) {
function b(a) {
return encodeURIComponent(a).replace(/-/g, function(a) {
return "%5C%" + a.charCodeAt(0).toString(16).toUpperCase()
})
}
a = a || {};
var c = this.segments,
d = this.parameters(),
e = this.params;
if (!this.validates(a)) return null;
var f, g = !1,
h = c.length - 1,
i = d.length,
j = c[0];
for (f = 0; i > f; f++) {
var k = h > f,
l = d[f],
m = e[l],
n = m.value(a[l]),
p = m.isOptional && m.type.equals(m.value(), n),
q = p ? m.squash : !1,
r = m.type.encode(n);
if (k) {
var s = c[f + 1];
if (q === !1) null != r && (j += L(r) ? o(r, b).join("-") : encodeURIComponent(r)), j += s;
else if (q === !0) {
var t = j.match(/\/$/) ? /\/?(.*)/ : /(.*)/;
j += s.match(t)[1]
} else J(q) && (j += q + s)
} else {
if (null == r || p && q !== !1) continue;
L(r) || (r = [r]), r = o(r, encodeURIComponent).join("&" + l + "="), j += (g ? "&" : "?") + (l + "=" + r), g = !0
}
}
return j
}, s.prototype.is = function(a, b) {
return !0
}, s.prototype.encode = function(a, b) {
return a
}, s.prototype.decode = function(a, b) {
return a
}, s.prototype.equals = function(a, b) {
return a == b
}, s.prototype.$subPattern = function() {
var a = this.pattern.toString();
return a.substr(1, a.length - 2)
}, s.prototype.pattern = /.*/, s.prototype.toString = function() {
return "{Type:" + this.name + "}"
}, s.prototype.$normalize = function(a) {
return this.is(a) ? a : this.decode(a)
}, s.prototype.$asArray = function(a, b) {
function d(a, b) {
function d(a, b) {
return function() {
return a[b].apply(a, arguments)
}
}
function e(a) {
return L(a) ? a : H(a) ? [a] : []
}
function f(a) {
switch (a.length) {
case 0:
return c;
case 1:
return "auto" === b ? a[0] : a;
default:
return a
}
}
function g(a) {
return !a
}
function h(a, b) {
return function(c) {
c = e(c);
var d = o(c, a);
return b === !0 ? 0 === n(d, g).length : f(d)
}
}
function i(a) {
return function(b, c) {
var d = e(b),
f = e(c);
if (d.length !== f.length) return !1;
for (var g = 0; g < d.length; g++)
if (!a(d[g], f[g])) return !1;
return !0
}
}
this.encode = h(d(a, "encode")), this.decode = h(d(a, "decode")), this.is = h(d(a, "is"), !0), this.equals = i(d(a, "equals")), this.pattern = a.pattern, this.$normalize = h(d(a, "$normalize")), this.name = a.name, this.$arrayMode = b
}
if (!a) return this;
if ("auto" === a && !b) throw new Error("'auto' array mode is for query parameters only");
return new d(this, a)
}, b.module("ui.router.util").provider("$urlMatcherFactory", t), b.module("ui.router.util").run(["$urlMatcherFactory", function(a) {}]), u.$inject = ["$locationProvider", "$urlMatcherFactoryProvider"], b.module("ui.router.router").provider("$urlRouter", u), v.$inject = ["$urlRouterProvider", "$urlMatcherFactoryProvider"], b.module("ui.router.state").value("$stateParams", {}).provider("$state", v), w.$inject = [], b.module("ui.router.state").provider("$view", w), b.module("ui.router.state").provider("$uiViewScroll", x), y.$inject = ["$state", "$injector", "$uiViewScroll", "$interpolate"], z.$inject = ["$compile", "$controller", "$state", "$interpolate"], b.module("ui.router.state").directive("uiView", y), b.module("ui.router.state").directive("uiView", z), D.$inject = ["$state", "$timeout"], E.$inject = ["$state", "$stateParams", "$interpolate"], b.module("ui.router.state").directive("uiSref", D).directive("uiSrefActive", E).directive("uiSrefActiveEq", E), F.$inject = ["$state"], G.$inject = ["$state"], b.module("ui.router.state").filter("isState", F).filter("includedByState", G)
}(window, window.angular);
var CanvasImage = function(a) {
this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), document.body.appendChild(this.canvas), this.width = this.canvas.width = a.width, this.height = this.canvas.height = a.height, this.context.drawImage(a, 0, 0, this.width, this.height)
};
CanvasImage.prototype.clear = function() {
this.context.clearRect(0, 0, this.width, this.height)
}, CanvasImage.prototype.update = function(a) {
this.context.putImageData(a, 0, 0)
}, CanvasImage.prototype.getPixelCount = function() {
return this.width * this.height
}, CanvasImage.prototype.getImageData = function() {
return this.context.getImageData(0, 0, this.width, this.height)
}, CanvasImage.prototype.removeCanvas = function() {
this.canvas.parentNode.removeChild(this.canvas)
};
var ColorThief = function() {};
if (ColorThief.prototype.getColor = function(a, b) {
var c = this.getPalette(a, 5, b),
d = c[0];
return d
}, ColorThief.prototype.getPalette = function(a, b, c) {
"undefined" == typeof b && (b = 10), ("undefined" == typeof c || 1 > c) && (c = 10);
for (var d, e, f, g, h, i = new CanvasImage(a), j = i.getImageData(), k = j.data, l = i.getPixelCount(), m = [], n = 0; l > n; n += c) d = 4 * n, e = k[d + 0], f = k[d + 1], g = k[d + 2], h = k[d + 3], h >= 125 && (e > 250 && f > 250 && g > 250 || m.push([e, f, g]));
var o = MMCQ.quantize(m, b),
p = o ? o.palette() : null;
return i.removeCanvas(), p
}, !pv) var pv = {
map: function(a, b) {
var c = {};
return b ? a.map(function(a, d) {
return c.index = d, b.call(c, a)
}) : a.slice()
},
naturalOrder: function(a, b) {
return b > a ? -1 : a > b ? 1 : 0
},
sum: function(a, b) {
var c = {};
return a.reduce(b ? function(a, d, e) {
return c.index = e, a + b.call(c, d)
} : function(a, b) {
return a + b
}, 0)
},
max: function(a, b) {
return Math.max.apply(null, b ? pv.map(a, b) : a)
}
};
var MMCQ = function() {
function a(a, b, c) {
return (a << 2 * i) + (b << i) + c
}
function b(a) {
function b() {
c.sort(a), d = !0
}
var c = [],
d = !1;
return {
push: function(a) {
c.push(a), d = !1
},
peek: function(a) {
return d || b(), void 0 === a && (a = c.length - 1), c[a]
},
pop: function() {
return d || b(), c.pop()
},
size: function() {
return c.length
},
map: function(a) {
return c.map(a)
},
debug: function() {
return d || b(), c
}
}
}
function c(a, b, c, d, e, f, g) {
var h = this;
h.r1 = a, h.r2 = b, h.g1 = c, h.g2 = d, h.b1 = e, h.b2 = f, h.histo = g
}
function d() {
this.vboxes = new b(function(a, b) {
return pv.naturalOrder(a.vbox.count() * a.vbox.volume(), b.vbox.count() * b.vbox.volume())
})
}
function e(b) {
var c, d, e, f, g = 1 << 3 * i,
h = new Array(g);
return b.forEach(function(b) {
d = b[0] >> j, e = b[1] >> j, f = b[2] >> j, c = a(d, e, f), h[c] = (h[c] || 0) + 1
}), h
}
function f(a, b) {
var d, e, f, g = 1e6,
h = 0,
i = 1e6,
k = 0,
l = 1e6,
m = 0;
return a.forEach(function(a) {
d = a[0] >> j, e = a[1] >> j, f = a[2] >> j, g > d ? g = d : d > h && (h = d), i > e ? i = e : e > k && (k = e), l > f ? l = f : f > m && (m = f)
}), new c(g, h, i, k, l, m, b)
}
function g(b, c) {
function d(a) {
var b, d, e, f, g, h = a + "1",
j = a + "2",
k = 0;
for (i = c[h]; i <= c[j]; i++)
if (o[i] > n / 2) {
for (e = c.copy(), f = c.copy(), b = i - c[h], d = c[j] - i, g = d >= b ? Math.min(c[j] - 1, ~~(i + d / 2)) : Math.max(c[h], ~~(i - 1 - b / 2)); !o[g];) g++;
for (k = p[g]; !k && o[g - 1];) k = p[--g];
return e[j] = g, f[h] = e[j] + 1, [e, f]
}
}
if (c.count()) {
var e = c.r2 - c.r1 + 1,
f = c.g2 - c.g1 + 1,
g = c.b2 - c.b1 + 1,
h = pv.max([e, f, g]);
if (1 == c.count()) return [c.copy()];
var i, j, k, l, m, n = 0,
o = [],
p = [];
if (h == e)
for (i = c.r1; i <= c.r2; i++) {
for (l = 0, j = c.g1; j <= c.g2; j++)
for (k = c.b1; k <= c.b2; k++) m = a(i, j, k), l += b[m] || 0;
n += l, o[i] = n
} else if (h == f)
for (i = c.g1; i <= c.g2; i++) {
for (l = 0, j = c.r1; j <= c.r2; j++)
for (k = c.b1; k <= c.b2; k++) m = a(j, i, k),
l += b[m] || 0;
n += l, o[i] = n
} else
for (i = c.b1; i <= c.b2; i++) {
for (l = 0, j = c.r1; j <= c.r2; j++)
for (k = c.g1; k <= c.g2; k++) m = a(j, k, i), l += b[m] || 0;
n += l, o[i] = n
}
return o.forEach(function(a, b) {
p[b] = n - a
}), d(h == e ? "r" : h == f ? "g" : "b")
}
}
function h(a, c) {
function h(a, b) {
for (var c, d = 1, e = 0; k > e;)
if (c = a.pop(), c.count()) {
var f = g(i, c),
h = f[0],
j = f[1];
if (!h) return;
if (a.push(h), j && (a.push(j), d++), d >= b) return;
if (e++ > k) return
} else a.push(c), e++
}
if (!a.length || 2 > c || c > 256) return !1;
var i = e(a),
j = 0;
i.forEach(function() {
j++
});
var m = f(a, i),
n = new b(function(a, b) {
return pv.naturalOrder(a.count(), b.count())
});
n.push(m), h(n, l * c);
for (var o = new b(function(a, b) {
return pv.naturalOrder(a.count() * a.volume(), b.count() * b.volume())
}); n.size();) o.push(n.pop());
h(o, c - o.size());
for (var p = new d; o.size();) p.push(o.pop());
return p
}
var i = 5,
j = 8 - i,
k = 1e3,
l = .75;
return c.prototype = {
volume: function(a) {
var b = this;
return (!b._volume || a) && (b._volume = (b.r2 - b.r1 + 1) * (b.g2 - b.g1 + 1) * (b.b2 - b.b1 + 1)), b._volume
},
count: function(b) {
var c = this,
d = c.histo;
if (!c._count_set || b) {
var e, f, g, h = 0;
for (e = c.r1; e <= c.r2; e++)
for (f = c.g1; f <= c.g2; f++)
for (g = c.b1; g <= c.b2; g++) index = a(e, f, g), h += d[index] || 0;
c._count = h, c._count_set = !0
}
return c._count
},
copy: function() {
var a = this;
return new c(a.r1, a.r2, a.g1, a.g2, a.b1, a.b2, a.histo)
},
avg: function(b) {
var c = this,
d = c.histo;
if (!c._avg || b) {
var e, f, g, h, j, k = 0,
l = 1 << 8 - i,
m = 0,
n = 0,
o = 0;
for (f = c.r1; f <= c.r2; f++)
for (g = c.g1; g <= c.g2; g++)
for (h = c.b1; h <= c.b2; h++) j = a(f, g, h), e = d[j] || 0, k += e, m += e * (f + .5) * l, n += e * (g + .5) * l, o += e * (h + .5) * l;
k ? c._avg = [~~(m / k), ~~(n / k), ~~(o / k)] : c._avg = [~~(l * (c.r1 + c.r2 + 1) / 2), ~~(l * (c.g1 + c.g2 + 1) / 2), ~~(l * (c.b1 + c.b2 + 1) / 2)]
}
return c._avg
},
contains: function(a) {
var b = this,
c = a[0] >> j;
return gval = a[1] >> j, bval = a[2] >> j, c >= b.r1 && c <= b.r2 && gval >= b.g1 && gval <= b.g2 && bval >= b.b1 && bval <= b.b2
}
}, d.prototype = {
push: function(a) {
this.vboxes.push({
vbox: a,
color: a.avg()
})
},
palette: function() {
return this.vboxes.map(function(a) {
return a.color
})
},
size: function() {
return this.vboxes.size()
},
map: function(a) {
for (var b = this.vboxes, c = 0; c < b.size(); c++)
if (b.peek(c).vbox.contains(a)) return b.peek(c).color;
return this.nearest(a)
},
nearest: function(a) {
for (var b, c, d, e = this.vboxes, f = 0; f < e.size(); f++) c = Math.sqrt(Math.pow(a[0] - e.peek(f).color[0], 2) + Math.pow(a[1] - e.peek(f).color[1], 2) + Math.pow(a[2] - e.peek(f).color[2], 2)), (b > c || void 0 === b) && (b = c, d = e.peek(f).color);
return d
},
forcebw: function() {
var a = this.vboxes;
a.sort(function(a, b) {
return pv.naturalOrder(pv.sum(a.color), pv.sum(b.color))
});
var b = a[0].color;
b[0] < 5 && b[1] < 5 && b[2] < 5 && (a[0].color = [0, 0, 0]);
var c = a.length - 1,
d = a[c].color;
d[0] > 251 && d[1] > 251 && d[2] > 251 && (a[c].color = [255, 255, 255])
}
}, {
quantize: h
}
}();
! function(a, b, c, d) {
function e(b, c) {
this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a(b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = {
time: null,
target: null,
pointer: null,
stage: {
start: null,
current: null
},
direction: null
}, this._states = {
current: {},
tags: {
initializing: ["busy"],
animating: ["busy"],
dragging: ["interacting"]
}
}, a.each(["onResize", "onThrottledResize"], a.proxy(function(b, c) {
this._handlers[c] = a.proxy(this[c], this)
}, this)), a.each(e.Plugins, a.proxy(function(a, b) {
this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this)
}, this)), a.each(e.Workers, a.proxy(function(b, c) {
this._pipe.push({
filter: c.filter,
run: a.proxy(c.run, this)
})
}, this)), this.setup(), this.initialize()
}
e.Defaults = {
items: 3,
loop: !1,
center: !1,
rewind: !1,
mouseDrag: !0,
touchDrag: !0,
pullDrag: !0,
freeDrag: !1,
margin: 0,
stagePadding: 0,
merge: !1,
mergeFit: !0,
autoWidth: !1,
startPosition: 0,
rtl: !1,
smartSpeed: 250,
fluidSpeed: !1,
dragEndSpeed: !1,
responsive: {},
responsiveRefreshRate: 200,
responsiveBaseElement: b,
fallbackEasing: "swing",
info: !1,
nestedItemSelector: !1,
itemElement: "div",
stageElement: "div",
refreshClass: "owl-refresh",
loadedClass: "owl-loaded",
loadingClass: "owl-loading",
rtlClass: "owl-rtl",
responsiveClass: "owl-responsive",
dragClass: "owl-drag",
itemClass: "owl-item",
stageClass: "owl-stage",
stageOuterClass: "owl-stage-outer",
grabClass: "owl-grab"
}, e.Width = {
Default: "default",
Inner: "inner",
Outer: "outer"
}, e.Type = {
Event: "event",
State: "state"
}, e.Plugins = {}, e.Workers = [{
filter: ["width", "settings"],
run: function() {
this._width = this.$element.width()
}
}, {
filter: ["width", "items", "settings"],
run: function(a) {
a.current = this._items && this._items[this.relative(this._current)]
}
}, {
filter: ["items", "settings"],
run: function() {
this.$stage.children(".cloned").remove()
}
}, {
filter: ["width", "items", "settings"],
run: function(a) {
var b = this.settings.margin || "",
c = !this.settings.autoWidth,
d = this.settings.rtl,
e = {
width: "auto",
"margin-left": d ? b : "",
"margin-right": d ? "" : b
};
!c && this.$stage.children().css(e), a.css = e
}
}, {
filter: ["width", "items", "settings"],
run: function(a) {
var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
c = null,
d = this._items.length,
e = !this.settings.autoWidth,
f = [];
for (a.items = {
merge: !1,
width: b
}; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width();
this._widths = f
}
}, {
filter: ["items", "settings"],
run: function() {
var b = [],
c = this._items,
d = this.settings,
e = Math.max(2 * d.items, 4),
f = 2 * Math.ceil(c.length / 2),
g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0,
h = "",
i = "";
for (g /= 2; g--;) b.push(this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i;
this._clones = b, a(h).addClass("cloned").appendTo(this.$stage), a(i).addClass("cloned").prependTo(this.$stage)
}
}, {
filter: ["width", "items", "settings"],
run: function() {
for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a);
this._coordinates = f
}
}, {
filter: ["width", "items", "settings"],
run: function() {
var a = this.settings.stagePadding,
b = this._coordinates,
c = {
width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a,
"padding-left": a || "",
"padding-right": a || ""
};
this.$stage.css(c)
}
}, {
filter: ["width", "items", "settings"],
run: function(a) {
var b = this._coordinates.length,
c = !this.settings.autoWidth,
d = this.$stage.children();
if (c && a.items.merge)
for (; b--;) a.css.width = this._widths[this.relative(b)], d.eq(b).css(a.css);
else c && (a.css.width = a.items.width, d.css(a.css))
}
}, {
filter: ["items"],
run: function() {
this._coordinates.length < 1 && this.$stage.removeAttr("style")
}
}, {
filter: ["width", "items", "settings"],
run: function(a) {
a.current = a.current ? this.$stage.children().index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current)
}
}, {
filter: ["position"],
run: function() {
this.animate(this.coordinates(this._current))
}
}, {
filter: ["width", "position", "items", "settings"],
run: function() {
var a, b, c, d, e = this.settings.rtl ? 1 : -1,
f = 2 * this.settings.stagePadding,
g = this.coordinates(this.current()) + f,
h = g + this.width() * e,
i = [];
for (c = 0, d = this._coordinates.length; d > c; c++) a = this._coordinates[c - 1] || 0, b = Math.abs(this._coordinates[c]) + f * e, (this.op(a, "<=", g) && this.op(a, ">", h) || this.op(b, "<", g) && this.op(b, ">", h)) && i.push(c);
this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + i.join("), :eq(") + ")").addClass("active"), this.settings.center && (this.$stage.children(".center").removeClass("center"), this.$stage.children().eq(this.current()).addClass("center"))
}
}], e.prototype.initialize = function() {
if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) {
var b, c, e;
b = this.$element.find("img"), c = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : d, e = this.$element.children(c).width(), b.length && 0 >= e && this.preloadAutoWidthImages(b)
}
this.$element.addClass(this.options.loadingClass), this.$stage = a("<" + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>').wrap('<div class="' + this.settings.stageOuterClass + '"/>'), this.$element.append(this.$stage.parent()), this.replace(this.$element.children().not(this.$stage.parent())), this.$element.is(":visible") ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized")
}, e.prototype.setup = function() {
var b = this.viewport(),
c = this.options.responsive,
d = -1,
e = null;
c ? (a.each(c, function(a) {
b >= a && a > d && (d = Number(a))
}), e = a.extend({}, this.options, c[d]), delete e.responsive, e.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + d))) : e = a.extend({}, this.options), (null === this.settings || this._breakpoint !== d) && (this.trigger("change", {
property: {
name: "settings",
value: e
}
}), this._breakpoint = d, this.settings = e, this.invalidate("settings"), this.trigger("changed", {
property: {
name: "settings",
value: this.settings
}
}))
}, e.prototype.optionsLogic = function() {
this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1)
}, e.prototype.prepare = function(b) {
var c = this.trigger("prepare", {
content: b
});
return c.data || (c.data = a("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(b)), this.trigger("prepared", {
content: c.data
}), c.data
}, e.prototype.update = function() {
for (var b = 0, c = this._pipe.length, d = a.proxy(function(a) {
return this[a]
}, this._invalidated), e = {}; c > b;)(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++;
this._invalidated = {}, !this.is("valid") && this.enter("valid")
}, e.prototype.width = function(a) {
switch (a = a || e.Width.Default) {
case e.Width.Inner:
case e.Width.Outer:
return this._width;
default:
return this._width - 2 * this.settings.stagePadding + this.settings.margin
}
}, e.prototype.refresh = function() {
this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed")
}, e.prototype.onThrottledResize = function() {
b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
}, e.prototype.onResize = function() {
return this._items.length ? this._width === this.$element.width() ? !1 : this.$element.is(":visible") ? (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))) : !1 : !1
}, e.prototype.registerEventHandlers = function() {
a.support.transition && this.$stage.on(a.support.transition.end + ".owl.core", a.proxy(this.onTransitionEnd, this)), this.settings.responsive !== !1 && this.on(b, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() {
return !1
})), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", a.proxy(this.onDragEnd, this)))
}, e.prototype.onDragStart = function(b) {
var d = null;
3 !== b.which && (a.support.transform ? (d = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), d = {
x: d[16 === d.length ? 12 : 4],
y: d[16 === d.length ? 13 : 5]
}) : (d = this.$stage.position(), d = {
x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left,
y: d.top
}), this.is("animating") && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === b.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = a(b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer(b), a(c).on("mouseup.owl.core touchend.owl.core", a.proxy(this.onDragEnd, this)), a(c).one("mousemove.owl.core touchmove.owl.core", a.proxy(function(b) {
var d = this.difference(this._drag.pointer, this.pointer(b));
a(c).on("mousemove.owl.core touchmove.owl.core", a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is("valid") || (b.preventDefault(), this.enter("dragging"), this.trigger("drag"))
}, this)))
}, e.prototype.onDragMove = function(a) {
var b = null,
c = null,
d = null,
e = this.difference(this._drag.pointer, this.pointer(a)),
f = this.difference(this._drag.stage.start, e);
this.is("dragging") && (a.preventDefault(), this.settings.loop ? (b = this.coordinates(this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), c = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x))
}, e.prototype.onDragEnd = function(b) {
var d = this.difference(this._drag.pointer, this.pointer(b)),
e = this._drag.stage.current,
f = d.x > 0 ^ this.settings.rtl ? "left" : "right";
a(c).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== d.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = f, (Math.abs(d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() {
return !1
})), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged"))
}, e.prototype.closest = function(b, c) {
var d = -1,
e = 30,
f = this.width(),
g = this.coordinates();
return this.settings.freeDrag || a.each(g, a.proxy(function(a, h) {
return b > h - e && h + e > b ? d = a : this.op(b, "<", h) && this.op(b, ">", g[a + 1] || h - f) && (d = "left" === c ? a + 1 : a), -1 === d
}, this)), this.settings.loop || (this.op(b, ">", g[this.minimum()]) ? d = b = this.minimum() : this.op(b, "<", g[this.maximum()]) && (d = b = this.maximum())), d
}, e.prototype.animate = function(b) {
var c = this.speed() > 0;
this.is("animating") && this.onTransitionEnd(), c && (this.enter("animating"), this.trigger("translate")), a.support.transform3d && a.support.transition ? this.$stage.css({
transform: "translate3d(" + b + "px,0px,0px)",
transition: this.speed() / 1e3 + "s"
}) : c ? this.$stage.animate({
left: b + "px"
}, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css({
left: b + "px"
})
}, e.prototype.is = function(a) {
return this._states.current[a] && this._states.current[a] > 0
}, e.prototype.current = function(a) {
if (a === d) return this._current;
if (0 === this._items.length) return d;
if (a = this.normalize(a), this._current !== a) {
var b = this.trigger("change", {
property: {
name: "position",
value: a
}
});
b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate("position"), this.trigger("changed", {
property: {
name: "position",
value: this._current
}
})
}
return this._current
}, e.prototype.invalidate = function(b) {
return "string" === a.type(b) && (this._invalidated[b] = !0, this.is("valid") && this.leave("valid")), a.map(this._invalidated, function(a, b) {
return b
})
}, e.prototype.reset = function(a) {
a = this.normalize(a), a !== d && (this._speed = 0, this._current = a, this.suppress(["translate", "translated"]), this.animate(this.coordinates(a)), this.release(["translate", "translated"]))
}, e.prototype.normalize = function(b, c) {
var e = this._items.length,
f = c ? 0 : this._clones.length;
return !a.isNumeric(b) || 1 > e ? b = d : (0 > b || b >= e + f) && (b = ((b - f / 2) % e + e) % e + f / 2), b
}, e.prototype.relative = function(a) {
return a -= this._clones.length / 2, this.normalize(a, !0)
}, e.prototype.maximum = function(a) {
var b, c = this.settings,
d = this._coordinates.length,
e = Math.abs(this._coordinates[d - 1]) - this._width,
f = -1;
if (c.loop) d = this._clones.length / 2 + this._items.length - 1;
else if (c.autoWidth || c.merge)
for (; d - f > 1;) Math.abs(this._coordinates[b = d + f >> 1]) < e ? f = b : d = b;
else d = c.center ? this._items.length - 1 : this._items.length - c.items;
return a && (d -= this._clones.length / 2), Math.max(d, 0)
}, e.prototype.minimum = function(a) {
return a ? 0 : this._clones.length / 2
}, e.prototype.items = function(a) {
return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a])
}, e.prototype.mergers = function(a) {
return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a])
}, e.prototype.clones = function(b) {
var c = this._clones.length / 2,
e = c + this._items.length,
f = function(a) {
return a % 2 === 0 ? e + a / 2 : c - (a + 1) / 2
};
return b === d ? a.map(this._clones, function(a, b) {
return f(b)
}) : a.map(this._clones, function(a, c) {
return a === b ? f(c) : null
})
}, e.prototype.speed = function(a) {
return a !== d && (this._speed = a), this._speed
}, e.prototype.coordinates = function(b) {
var c = null;
return b === d ? a.map(this._coordinates, a.proxy(function(a, b) {
return this.coordinates(b)
}, this)) : (this.settings.center ? (c = this._coordinates[b], c += (this.width() - c + (this._coordinates[b - 1] || 0)) / 2 * (this.settings.rtl ? -1 : 1)) : c = this._coordinates[b - 1] || 0, c)
}, e.prototype.duration = function(a, b, c) {
return Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed)
}, e.prototype.to = function(a, b) {
var c = this.current(),
d = null,
e = a - this.relative(c),
f = (e > 0) - (0 > e),
g = this._items.length,
h = this.minimum(),
i = this.maximum();
this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, d = ((a - h) % g + g) % g + h, d !== a && i >= d - e && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed(this.duration(c, a, b)), this.current(a), this.$element.is(":visible") && this.update()
}, e.prototype.next = function(a) {
a = a || !1, this.to(this.relative(this.current()) + 1, a)
}, e.prototype.prev = function(a) {
a = a || !1, this.to(this.relative(this.current()) - 1, a)
}, e.prototype.onTransitionEnd = function(a) {
return a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0)) ? !1 : (this.leave("animating"), void this.trigger("translated"))
}, e.prototype.viewport = function() {
var d;
if (this.options.responsiveBaseElement !== b) d = a(this.options.responsiveBaseElement).width();
else if (b.innerWidth) d = b.innerWidth;
else {
if (!c.documentElement || !c.documentElement.clientWidth) throw "Can not detect viewport width.";
d = c.documentElement.clientWidth
}
return d
}, e.prototype.replace = function(b) {
this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a(b)), this.settings.nestedItemSelector && (b = b.find("." + this.settings.nestedItemSelector)), b.filter(function() {
return 1 === this.nodeType
}).each(a.proxy(function(a, b) {
b = this.prepare(b), this.$stage.append(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)
}, this)), this.reset(a.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items")
}, e.prototype.add = function(b, c) {
var e = this.relative(this._current);
c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger("add", {
content: b,
position: c
}), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate("items"), this.trigger("added", {
content: b,
position: c
})
}, e.prototype.remove = function(a) {
a = this.normalize(a, !0), a !== d && (this.trigger("remove", {
content: this._items[a],
position: a
}), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate("items"), this.trigger("removed", {
content: null,
position: a
}))
}, e.prototype.preloadAutoWidthImages = function(b) {
b.each(a.proxy(function(b, c) {
this.enter("pre-loading"), c = a(c), a(new Image).one("load", a.proxy(function(a) {
c.attr("src", a.target.src), c.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh()
}, this)).attr("src", c.attr("src") || c.attr("data-src") || c.attr("data-src-retina"))
}, this))
}, e.prototype.destroy = function() {
this.$element.off(".owl.core"), this.$stage.off(".owl.core"), a(c).off(".owl.core"), this.settings.responsive !== !1 && (b.clearTimeout(this.resizeTimer), this.off(b, "resize", this._handlers.onThrottledResize));
for (var d in this._plugins) this._plugins[d].destroy();
this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel")
}, e.prototype.op = function(a, b, c) {
var d = this.settings.rtl;
switch (b) {
case "<":
return d ? a > c : c > a;
case ">":
return d ? c > a : a > c;
case ">=":
return d ? c >= a : a >= c;
case "<=":
return d ? a >= c : c >= a
}
}, e.prototype.on = function(a, b, c, d) {
a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent("on" + b, c)
}, e.prototype.off = function(a, b, c, d) {
a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent("on" + b, c)
}, e.prototype.trigger = function(b, c, d, f, g) {
var h = {
item: {
count: this._items.length,
index: this.current()
}
},
i = a.camelCase(a.grep(["on", b, d], function(a) {
return a
}).join("-").toLowerCase()),
j = a.Event([b, "owl", d || "carousel"].join(".").toLowerCase(), a.extend({
relatedTarget: this
}, h, c));
return this._supress[b] || (a.each(this._plugins, function(a, b) {
b.onTrigger && b.onTrigger(j)
}), this.register({
type: e.Type.Event,
name: b
}), this.$element.trigger(j), this.settings && "function" == typeof this.settings[i] && this.settings[i].call(this, j)), j
}, e.prototype.enter = function(b) {
a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++
}, this))
}, e.prototype.leave = function(b) {
a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
this._states.current[b]--
}, this))
}, e.prototype.register = function(b) {
if (b.type === e.Type.Event) {
if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) {
var c = a.event.special[b.name]._default;
a.event.special[b.name]._default = function(a) {
return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf("owl") ? a.namespace && a.namespace.indexOf("owl") > -1 : c.apply(this, arguments)
}, a.event.special[b.name].owl = !0
}
} else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat(b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep(this._states.tags[b.name], a.proxy(function(c, d) {
return a.inArray(c, this._states.tags[b.name]) === d
}, this)))
}, e.prototype.suppress = function(b) {
a.each(b, a.proxy(function(a, b) {
this._supress[b] = !0
}, this))
}, e.prototype.release = function(b) {
a.each(b, a.proxy(function(a, b) {
delete this._supress[b]
}, this))
}, e.prototype.pointer = function(a) {
var c = {
x: null,
y: null
};
return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c
}, e.prototype.difference = function(a, b) {
return {
x: a.x - b.x,
y: a.y - b.y
}
}, a.fn.owlCarousel = function(b) {
var c = Array.prototype.slice.call(arguments, 1);
return this.each(function() {
var d = a(this),
f = d.data("owl.carousel");
f || (f = new e(this, "object" == typeof b && b), d.data("owl.carousel", f), a.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(b, c) {
f.register({
type: e.Type.Event,
name: c
}), f.$element.on(c + ".owl.carousel.core", a.proxy(function(a) {
a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c]))
}, f))
})), "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c)
})
}, a.fn.owlCarousel.Constructor = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this._core = b, this._interval = null, this._visible = null, this._handlers = {
"initialized.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.autoRefresh && this.watch()
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
};
e.Defaults = {
autoRefresh: !0,
autoRefreshInterval: 500
}, e.prototype.watch = function() {
this._interval || (this._visible = this._core.$element.is(":visible"), this._interval = b.setInterval(a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval))
}, e.prototype.refresh = function() {
this._core.$element.is(":visible") !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh())
}, e.prototype.destroy = function() {
var a, c;
b.clearInterval(this._interval);
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
}, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this._core = b, this._loaded = [], this._handlers = {
"initialized.owl.carousel change.owl.carousel": a.proxy(function(b) {
if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && "position" == b.property.name || "initialized" == b.type))
for (var c = this._core.settings, d = c.center && Math.ceil(c.items / 2) || c.items, e = c.center && -1 * d || 0, f = (b.property && b.property.value || this._core.current()) + e, g = this._core.clones().length, h = a.proxy(function(a, b) {
this.load(b)
}, this); e++ < d;) this.load(g / 2 + this._core.relative(f)), g && a.each(this._core.clones(this._core.relative(f)), h), f++
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
};
e.Defaults = {
lazyLoad: !1
}, e.prototype.load = function(c) {
var d = this._core.$stage.children().eq(c),
e = d && d.find(".owl-lazy");
!e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy(function(c, d) {
var e, f = a(d),
g = b.devicePixelRatio > 1 && f.attr("data-src-retina") || f.attr("data-src");
this._core.trigger("load", {
element: f,
url: g
}, "lazy"), f.is("img") ? f.one("load.owl.lazy", a.proxy(function() {
f.css("opacity", 1), this._core.trigger("loaded", {
element: f,
url: g
}, "lazy")
}, this)).attr("src", g) : (e = new Image, e.onload = a.proxy(function() {
f.css({
"background-image": "url(" + g + ")",
opacity: "1"
}), this._core.trigger("loaded", {
element: f,
url: g
}, "lazy")
}, this), e.src = g)
}, this)), this._loaded.push(d.get(0)))
}, e.prototype.destroy = function() {
var a, b;
for (a in this.handlers) this._core.$element.off(a, this.handlers[a]);
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
}, a.fn.owlCarousel.Constructor.Plugins.Lazy = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this._core = b, this._handlers = {
"initialized.owl.carousel refreshed.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.autoHeight && this.update()
}, this),
"changed.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.autoHeight && "position" == a.property.name && this.update()
}, this),
"loaded.owl.lazy": a.proxy(function(a) {
a.namespace && this._core.settings.autoHeight && a.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update()
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
};
e.Defaults = {
autoHeight: !1,
autoHeightClass: "owl-height"
}, e.prototype.update = function() {
var b = this._core._current,
c = b + this._core.settings.items,
d = this._core.$stage.children().toArray().slice(b, c);
heights = [], maxheight = 0, a.each(d, function(b, c) {
heights.push(a(c).height())
}), maxheight = Math.max.apply(null, heights), this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass)
}, e.prototype.destroy = function() {
var a, b;
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
}, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this._core = b, this._videos = {}, this._playing = null, this._handlers = {
"initialized.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.register({
type: "state",
name: "playing",
tags: ["interacting"]
})
}, this),
"resize.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault()
}, this),
"refreshed.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove()
}, this),
"changed.owl.carousel": a.proxy(function(a) {
a.namespace && "position" === a.property.name && this._playing && this.stop()
}, this),
"prepared.owl.carousel": a.proxy(function(b) {
if (b.namespace) {
var c = a(b.content).find(".owl-video");
c.length && (c.css("display", "none"), this.fetch(c, a(b.content)))
}
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", a.proxy(function(a) {
this.play(a)
}, this))
};
e.Defaults = {
video: !1,
videoHeight: !1,
videoWidth: !1
}, e.prototype.fetch = function(a, b) {
var c = a.attr("data-vimeo-id") ? "vimeo" : "youtube",
d = a.attr("data-vimeo-id") || a.attr("data-youtube-id"),
e = a.attr("data-width") || this._core.settings.videoWidth,
f = a.attr("data-height") || this._core.settings.videoHeight,
g = a.attr("href");
if (!g) throw new Error("Missing video URL.");
if (d = g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf("youtu") > -1) c = "youtube";
else {
if (!(d[3].indexOf("vimeo") > -1)) throw new Error("Video URL not supported.");
c = "vimeo"
}
d = d[6], this._videos[g] = {
type: c,
id: d,
width: e,
height: f
}, b.attr("data-video", g), this.thumbnail(a, this._videos[g])
}, e.prototype.thumbnail = function(b, c) {
var d, e, f, g = c.width && c.height ? 'style="width:' + c.width + "px;height:" + c.height + 'px;"' : "",
h = b.find("img"),
i = "src",
j = "",
k = this._core.settings,
l = function(a) {
e = '<div class="owl-video-play-icon"></div>', d = k.lazyLoad ? '<div class="owl-video-tn ' + j + '" ' + i + '="' + a + '"></div>' : '<div class="owl-video-tn" style="opacity:1;background-image:url(' + a + ')"></div>', b.after(d), b.after(e)
};
return b.wrap('<div class="owl-video-wrapper"' + g + "></div>"), this._core.settings.lazyLoad && (i = "data-src", j = "owl-lazy"), h.length ? (l(h.attr(i)), h.remove(), !1) : void("youtube" === c.type ? (f = "http://img.youtube.com/vi/" + c.id + "/hqdefault.jpg", l(f)) : "vimeo" === c.type && a.ajax({
type: "GET",
url: "http://vimeo.com/api/v2/video/" + c.id + ".json",
jsonp: "callback",
dataType: "jsonp",
success: function(a) {
f = a[0].thumbnail_large, l(f)
}
}))
}, e.prototype.stop = function() {
this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video")
}, e.prototype.play = function(b) {
var c, d = a(b.target),
e = d.closest("." + this._core.settings.itemClass),
f = this._videos[e.attr("data-video")],
g = f.width || "100%",
h = f.height || this._core.$stage.height();
this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), "youtube" === f.type ? c = '<iframe width="' + g + '" height="' + h + '" src="http://www.youtube.com/embed/' + f.id + "?autoplay=1&v=" + f.id + '" frameborder="0" allowfullscreen></iframe>' : "vimeo" === f.type && (c = '<iframe src="http://player.vimeo.com/video/' + f.id + '?autoplay=1" width="' + g + '" height="' + h + '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'), a('<div class="owl-video-frame">' + c + "</div>").insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing"))
}, e.prototype.isInFullScreen = function() {
var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement;
return b && a(b).parent().hasClass("owl-video-frame")
}, e.prototype.destroy = function() {
var a, b;
this._core.$element.off("click.owl.video");
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null);
}, a.fn.owlCarousel.Constructor.Plugins.Video = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = {
"change.owl.carousel": a.proxy(function(a) {
a.namespace && "position" == a.property.name && (this.previous = this.core.current(), this.next = a.property.value)
}, this),
"drag.owl.carousel dragged.owl.carousel translated.owl.carousel": a.proxy(function(a) {
a.namespace && (this.swapping = "translated" == a.type)
}, this),
"translate.owl.carousel": a.proxy(function(a) {
a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap()
}, this)
}, this.core.$element.on(this.handlers)
};
e.Defaults = {
animateOut: !1,
animateIn: !1
}, e.prototype.swap = function() {
if (1 === this.core.settings.items && a.support.animation && a.support.transition) {
this.core.speed(0);
var b, c = a.proxy(this.clear, this),
d = this.core.$stage.children().eq(this.previous),
e = this.core.$stage.children().eq(this.next),
f = this.core.settings.animateIn,
g = this.core.settings.animateOut;
this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c).css({
left: b + "px"
}).addClass("animated owl-animated-out").addClass(g)), f && e.one(a.support.animation.end, c).addClass("animated owl-animated-in").addClass(f))
}
}, e.prototype.clear = function(b) {
a(b.target).css({
left: ""
}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd()
}, e.prototype.destroy = function() {
var a, b;
for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
}, a.fn.owlCarousel.Constructor.Plugins.Animate = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
var e = function(b) {
this._core = b, this._interval = null, this._paused = !1, this._handlers = {
"changed.owl.carousel": a.proxy(function(a) {
a.namespace && "settings" === a.property.name && (this._core.settings.autoplay ? this.play() : this.stop())
}, this),
"initialized.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.autoplay && this.play()
}, this),
"play.owl.autoplay": a.proxy(function(a, b, c) {
a.namespace && this.play(b, c)
}, this),
"stop.owl.autoplay": a.proxy(function(a) {
a.namespace && this.stop()
}, this),
"mouseover.owl.autoplay": a.proxy(function() {
this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
}, this),
"mouseleave.owl.autoplay": a.proxy(function() {
this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play()
}, this)
}, this._core.$element.on(this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options)
};
e.Defaults = {
autoplay: !1,
autoplayTimeout: 5e3,
autoplayHoverPause: !1,
autoplaySpeed: !1
}, e.prototype.play = function(d, e) {
this._paused = !1, this._core.is("rotating") || (this._core.enter("rotating"), this._interval = b.setInterval(a.proxy(function() {
this._paused || this._core.is("busy") || this._core.is("interacting") || c.hidden || this._core.next(e || this._core.settings.autoplaySpeed)
}, this), d || this._core.settings.autoplayTimeout))
}, e.prototype.stop = function() {
this._core.is("rotating") && (b.clearInterval(this._interval), this._core.leave("rotating"))
}, e.prototype.pause = function() {
this._core.is("rotating") && (this._paused = !0)
}, e.prototype.destroy = function() {
var a, b;
this.stop();
for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
}, a.fn.owlCarousel.Constructor.Plugins.autoplay = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
"use strict";
var e = function(b) {
this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {
next: this._core.next,
prev: this._core.prev,
to: this._core.to
}, this._handlers = {
"prepared.owl.carousel": a.proxy(function(b) {
b.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot") + "</div>")
}, this),
"added.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop())
}, this),
"remove.owl.carousel": a.proxy(function(a) {
a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1)
}, this),
"changed.owl.carousel": a.proxy(function(a) {
a.namespace && "position" == a.property.name && this.draw()
}, this),
"initialized.owl.carousel": a.proxy(function(a) {
a.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation"))
}, this),
"refreshed.owl.carousel": a.proxy(function(a) {
a.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation"))
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers)
};
e.Defaults = {
nav: !1,
navText: ["prev", "next"],
navSpeed: !1,
navElement: "div",
navContainer: !1,
navContainerClass: "owl-nav",
navClass: ["owl-prev", "owl-next"],
slideBy: 1,
dotClass: "owl-dot",
dotsClass: "owl-dots",
dots: !0,
dotsEach: !1,
dotsData: !1,
dotsSpeed: !1,
dotsContainer: !1
}, e.prototype.initialize = function() {
var b, c = this._core.settings;
this._controls.$relative = (c.navContainer ? a(c.navContainer) : a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = a("<" + c.navElement + ">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click", a.proxy(function(a) {
this.prev(c.navSpeed)
}, this)), this._controls.$next = a("<" + c.navElement + ">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click", a.proxy(function(a) {
this.next(c.navSpeed)
}, this)), c.dotsData || (this._templates = [a("<div>").addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]), this._controls.$absolute = (c.dotsContainer ? a(c.dotsContainer) : a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "div", a.proxy(function(b) {
var d = a(b.target).parent().is(this._controls.$absolute) ? a(b.target).index() : a(b.target).parent().index();
b.preventDefault(), this.to(d, c.dotsSpeed)
}, this));
for (b in this._overrides) this._core[b] = a.proxy(this[b], this)
}, e.prototype.destroy = function() {
var a, b, c, d;
for (a in this._handlers) this.$element.off(a, this._handlers[a]);
for (b in this._controls) this._controls[b].remove();
for (d in this.overides) this._core[d] = this._overrides[d];
for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
}, e.prototype.update = function() {
var a, b, c, d = this._core.clones().length / 2,
e = d + this._core.items().length,
f = this._core.maximum(!0),
g = this._core.settings,
h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items;
if ("page" !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)), g.dots || "page" == g.slideBy)
for (this._pages = [], a = d, b = 0, c = 0; e > a; a++) {
if (b >= h || 0 === b) {
if (this._pages.push({
start: Math.min(f, a - d),
end: a - d + h - 1
}), Math.min(f, a - d) === f) break;
b = 0, ++c
}
b += this._core.mergers(this._core.relative(a))
}
}, e.prototype.draw = function() {
var b, c = this._core.settings,
d = this._core.items().length <= c.items,
e = this._core.relative(this._core.current()),
f = c.loop || c.rewind;
this._controls.$relative.toggleClass("disabled", !c.nav || d), c.nav && (this._controls.$previous.toggleClass("disabled", !f && e <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !f && e >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !c.dots || d), c.dots && (b = this._pages.length - this._controls.$absolute.children().length, c.dotsData && 0 !== b ? this._controls.$absolute.html(this._templates.join("")) : b > 0 ? this._controls.$absolute.append(new Array(b + 1).join(this._templates[0])) : 0 > b && this._controls.$absolute.children().slice(b).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(a.inArray(this.current(), this._pages)).addClass("active"))
}, e.prototype.onTrigger = function(b) {
var c = this._core.settings;
b.page = {
index: a.inArray(this.current(), this._pages),
count: this._pages.length,
size: c && (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items)
}
}, e.prototype.current = function() {
var b = this._core.relative(this._core.current());
return a.grep(this._pages, a.proxy(function(a, c) {
return a.start <= b && a.end >= b
}, this)).pop()
}, e.prototype.getPosition = function(b) {
var c, d, e = this._core.settings;
return "page" == e.slideBy ? (c = a.inArray(this.current(), this._pages), d = this._pages.length, b ? ++c : --c, c = this._pages[(c % d + d) % d].start) : (c = this._core.relative(this._core.current()), d = this._core.items().length, b ? c += e.slideBy : c -= e.slideBy), c
}, e.prototype.next = function(b) {
a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b)
}, e.prototype.prev = function(b) {
a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b)
}, e.prototype.to = function(b, c, d) {
var e;
d ? a.proxy(this._overrides.to, this._core)(b, c) : (e = this._pages.length, a.proxy(this._overrides.to, this._core)(this._pages[(b % e + e) % e].start, c))
}, a.fn.owlCarousel.Constructor.Plugins.Navigation = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
"use strict";
var e = function(c) {
this._core = c, this._hashes = {}, this.$element = this._core.$element, this._handlers = {
"initialized.owl.carousel": a.proxy(function(c) {
c.namespace && "URLHash" === this._core.settings.startPosition && a(b).trigger("hashchange.owl.navigation")
}, this),
"prepared.owl.carousel": a.proxy(function(b) {
if (b.namespace) {
var c = a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash");
if (!c) return;
this._hashes[c] = b.content
}
}, this),
"changed.owl.carousel": a.proxy(function(c) {
if (c.namespace && "position" === c.property.name) {
var d = this._core.items(this._core.relative(this._core.current())),
e = a.map(this._hashes, function(a, b) {
return a === d ? b : null
}).join();
if (!e || b.location.hash.slice(1) === e) return;
b.location.hash = e
}
}, this)
}, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), a(b).on("hashchange.owl.navigation", a.proxy(function(a) {
var c = b.location.hash.substring(1),
e = this._core.$stage.children(),
f = this._hashes[c] && e.index(this._hashes[c]);
f !== d && f !== this._core.current() && this._core.to(this._core.relative(f), !1, !0)
}, this))
};
e.Defaults = {
URLhashListener: !1
}, e.prototype.destroy = function() {
var c, d;
a(b).off("hashchange.owl.navigation");
for (c in this._handlers) this._core.$element.off(c, this._handlers[c]);
for (d in Object.getOwnPropertyNames(this)) "function" != typeof this[d] && (this[d] = null)
}, a.fn.owlCarousel.Constructor.Plugins.Hash = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
function e(b, c) {
var e = !1,
f = b.charAt(0).toUpperCase() + b.slice(1);
return a.each((b + " " + h.join(f + " ") + f).split(" "), function(a, b) {
return g[b] !== d ? (e = c ? b : !0, !1) : void 0
}), e
}
function f(a) {
return e(a, !0)
}
var g = a("<support>").get(0).style,
h = "Webkit Moz O ms".split(" "),
i = {
transition: {
end: {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd",
transition: "transitionend"
}
},
animation: {
end: {
WebkitAnimation: "webkitAnimationEnd",
MozAnimation: "animationend",
OAnimation: "oAnimationEnd",
animation: "animationend"
}
}
},
j = {
csstransforms: function() {
return !!e("transform")
},
csstransforms3d: function() {
return !!e("perspective")
},
csstransitions: function() {
return !!e("transition")
},
cssanimations: function() {
return !!e("animation")
}
};
j.csstransitions() && (a.support.transition = new String(f("transition")), a.support.transition.end = i.transition.end[a.support.transition]), j.cssanimations() && (a.support.animation = new String(f("animation")), a.support.animation.end = i.animation.end[a.support.animation]), j.csstransforms() && (a.support.transform = new String(f("transform")), a.support.transform3d = j.csstransforms3d())
}(window.Zepto || window.jQuery, window, document),
function(a) {
if ("object" == typeof exports && "undefined" != typeof module) module.exports = a();
else if ("function" == typeof define && define.amd) define([], a);
else {
var b;
b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, b.io = a()
}
}(function() {
var a;
return function b(a, c, d) {
function e(g, h) {
if (!c[g]) {
if (!a[g]) {
var i = "function" == typeof require && require;
if (!h && i) return i(g, !0);
if (f) return f(g, !0);
var j = new Error("Cannot find module '" + g + "'");
throw j.code = "MODULE_NOT_FOUND", j
}
var k = c[g] = {
exports: {}
};
a[g][0].call(k.exports, function(b) {
var c = a[g][1][b];
return e(c ? c : b)
}, k, k.exports, b, a, c, d)
}
return c[g].exports
}
for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]);
return e
}({
1: [function(a, b, c) {
b.exports = a("./lib/")
}, {
"./lib/": 2
}],
2: [function(a, b, c) {
b.exports = a("./socket"), b.exports.parser = a("engine.io-parser")
}, {
"./socket": 3,
"engine.io-parser": 19
}],
3: [function(a, b, c) {
(function(c) {
function d(a, b) {
if (!(this instanceof d)) return new d(a, b);
b = b || {}, a && "object" == typeof a && (b = a, a = null), a ? (a = k(a), b.hostname = a.host, b.secure = "https" == a.protocol || "wss" == a.protocol, b.port = a.port, a.query && (b.query = a.query)) : b.host && (b.hostname = k(b.host).host), this.secure = null != b.secure ? b.secure : c.location && "https:" == location.protocol, b.hostname && !b.port && (b.port = this.secure ? "443" : "80"), this.agent = b.agent || !1, this.hostname = b.hostname || (c.location ? location.hostname : "localhost"), this.port = b.port || (c.location && location.port ? location.port : this.secure ? 443 : 80), this.query = b.query || {}, "string" == typeof this.query && (this.query = m.decode(this.query)), this.upgrade = !1 !== b.upgrade, this.path = (b.path || "/engine.io").replace(/\/$/, "") + "/", this.forceJSONP = !!b.forceJSONP, this.jsonp = !1 !== b.jsonp, this.forceBase64 = !!b.forceBase64, this.enablesXDR = !!b.enablesXDR, this.timestampParam = b.timestampParam || "t", this.timestampRequests = b.timestampRequests, this.transports = b.transports || ["polling", "websocket"], this.readyState = "", this.writeBuffer = [], this.policyPort = b.policyPort || 843, this.rememberUpgrade = b.rememberUpgrade || !1, this.binaryType = null, this.onlyBinaryUpgrades = b.onlyBinaryUpgrades, this.perMessageDeflate = !1 !== b.perMessageDeflate ? b.perMessageDeflate || {} : !1, !0 === this.perMessageDeflate && (this.perMessageDeflate = {}), this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024), this.pfx = b.pfx || null, this.key = b.key || null, this.passphrase = b.passphrase || null, this.cert = b.cert || null, this.ca = b.ca || null, this.ciphers = b.ciphers || null, this.rejectUnauthorized = void 0 === b.rejectUnauthorized ? null : b.rejectUnauthorized;
var e = "object" == typeof c && c;
e.global === e && b.extraHeaders && Object.keys(b.extraHeaders).length > 0 && (this.extraHeaders = b.extraHeaders), this.open()
}
function e(a) {
var b = {};
for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]);
return b
}
var f = a("./transports"),
g = a("component-emitter"),
h = a("debug")("engine.io-client:socket"),
i = a("indexof"),
j = a("engine.io-parser"),
k = a("parseuri"),
l = a("parsejson"),
m = a("parseqs");
b.exports = d, d.priorWebsocketSuccess = !1, g(d.prototype), d.protocol = j.protocol, d.Socket = d, d.Transport = a("./transport"), d.transports = a("./transports"), d.parser = a("engine.io-parser"), d.prototype.createTransport = function(a) {
h('creating transport "%s"', a);
var b = e(this.query);
b.EIO = j.protocol, b.transport = a, this.id && (b.sid = this.id);
var c = new f[a]({
agent: this.agent,
hostname: this.hostname,
port: this.port,
secure: this.secure,
path: this.path,
query: b,
forceJSONP: this.forceJSONP,
jsonp: this.jsonp,
forceBase64: this.forceBase64,
enablesXDR: this.enablesXDR,
timestampRequests: this.timestampRequests,
timestampParam: this.timestampParam,
policyPort: this.policyPort,
socket: this,
pfx: this.pfx,
key: this.key,
passphrase: this.passphrase,
cert: this.cert,
ca: this.ca,
ciphers: this.ciphers,
rejectUnauthorized: this.rejectUnauthorized,
perMessageDeflate: this.perMessageDeflate,
extraHeaders: this.extraHeaders
});
return c
}, d.prototype.open = function() {
var a;
if (this.rememberUpgrade && d.priorWebsocketSuccess && -1 != this.transports.indexOf("websocket")) a = "websocket";
else {
if (0 === this.transports.length) {
var b = this;
return void setTimeout(function() {
b.emit("error", "No transports available")
}, 0)
}
a = this.transports[0]
}
this.readyState = "opening";
try {
a = this.createTransport(a)
} catch (c) {
return this.transports.shift(), void this.open()
}
a.open(), this.setTransport(a)
}, d.prototype.setTransport = function(a) {
h("setting transport %s", a.name);
var b = this;
this.transport && (h("clearing existing transport %s", this.transport.name), this.transport.removeAllListeners()), this.transport = a, a.on("drain", function() {
b.onDrain()
}).on("packet", function(a) {
b.onPacket(a)
}).on("error", function(a) {
b.onError(a)
}).on("close", function() {
b.onClose("transport close")
})
}, d.prototype.probe = function(a) {
function b() {
if (m.onlyBinaryUpgrades) {
var b = !this.supportsBinary && m.transport.supportsBinary;
l = l || b
}
l || (h('probe transport "%s" opened', a), k.send([{
type: "ping",
data: "probe"
}]), k.once("packet", function(b) {
if (!l)
if ("pong" == b.type && "probe" == b.data) {
if (h('probe transport "%s" pong', a), m.upgrading = !0, m.emit("upgrading", k), !k) return;
d.priorWebsocketSuccess = "websocket" == k.name, h('pausing current transport "%s"', m.transport.name), m.transport.pause(function() {
l || "closed" != m.readyState && (h("changing transport and sending upgrade packet"), j(), m.setTransport(k), k.send([{
type: "upgrade"
}]), m.emit("upgrade", k), k = null, m.upgrading = !1, m.flush())
})
} else {
h('probe transport "%s" failed', a);
var c = new Error("probe error");
c.transport = k.name, m.emit("upgradeError", c)
}
}))
}
function c() {
l || (l = !0, j(), k.close(), k = null)
}
function e(b) {
var d = new Error("probe error: " + b);
d.transport = k.name, c(), h('probe transport "%s" failed because of error: %s', a, b), m.emit("upgradeError", d)
}
function f() {
e("transport closed")
}
function g() {
e("socket closed")
}
function i(a) {
k && a.name != k.name && (h('"%s" works - aborting "%s"', a.name, k.name), c())
}
function j() {
k.removeListener("open", b), k.removeListener("error", e), k.removeListener("close", f), m.removeListener("close", g), m.removeListener("upgrading", i)
}
h('probing transport "%s"', a);
var k = this.createTransport(a, {
probe: 1
}),
l = !1,
m = this;
d.priorWebsocketSuccess = !1, k.once("open", b), k.once("error", e), k.once("close", f), this.once("close", g), this.once("upgrading", i), k.open()
}, d.prototype.onOpen = function() {
if (h("socket open"), this.readyState = "open", d.priorWebsocketSuccess = "websocket" == this.transport.name, this.emit("open"), this.flush(), "open" == this.readyState && this.upgrade && this.transport.pause) {
h("starting upgrade probes");
for (var a = 0, b = this.upgrades.length; b > a; a++) this.probe(this.upgrades[a])
}
}, d.prototype.onPacket = function(a) {
if ("opening" == this.readyState || "open" == this.readyState) switch (h('socket receive: type "%s", data "%s"', a.type, a.data), this.emit("packet", a), this.emit("heartbeat"), a.type) {
case "open":
this.onHandshake(l(a.data));
break;
case "pong":
this.setPing(), this.emit("pong");
break;
case "error":
var b = new Error("server error");
b.code = a.data, this.onError(b);
break;
case "message":
this.emit("data", a.data), this.emit("message", a.data)
} else h('packet received with socket readyState "%s"', this.readyState)
}, d.prototype.onHandshake = function(a) {
this.emit("handshake", a), this.id = a.sid, this.transport.query.sid = a.sid, this.upgrades = this.filterUpgrades(a.upgrades), this.pingInterval = a.pingInterval, this.pingTimeout = a.pingTimeout, this.onOpen(), "closed" != this.readyState && (this.setPing(), this.removeListener("heartbeat", this.onHeartbeat), this.on("heartbeat", this.onHeartbeat))
}, d.prototype.onHeartbeat = function(a) {
clearTimeout(this.pingTimeoutTimer);
var b = this;
b.pingTimeoutTimer = setTimeout(function() {
"closed" != b.readyState && b.onClose("ping timeout")
}, a || b.pingInterval + b.pingTimeout)
}, d.prototype.setPing = function() {
var a = this;
clearTimeout(a.pingIntervalTimer), a.pingIntervalTimer = setTimeout(function() {
h("writing ping packet - expecting pong within %sms", a.pingTimeout), a.ping(), a.onHeartbeat(a.pingTimeout)
}, a.pingInterval)
}, d.prototype.ping = function() {
var a = this;
this.sendPacket("ping", function() {
a.emit("ping")
})
}, d.prototype.onDrain = function() {
this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 === this.writeBuffer.length ? this.emit("drain") : this.flush()
}, d.prototype.flush = function() {
"closed" != this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length && (h("flushing %d packets in socket", this.writeBuffer.length), this.transport.send(this.writeBuffer), this.prevBufferLen = this.writeBuffer.length, this.emit("flush"))
}, d.prototype.write = d.prototype.send = function(a, b, c) {
return this.sendPacket("message", a, b, c), this
}, d.prototype.sendPacket = function(a, b, c, d) {
if ("function" == typeof b && (d = b, b = void 0), "function" == typeof c && (d = c, c = null), "closing" != this.readyState && "closed" != this.readyState) {
c = c || {}, c.compress = !1 !== c.compress;
var e = {
type: a,
data: b,
options: c
};
this.emit("packetCreate", e), this.writeBuffer.push(e), d && this.once("flush", d), this.flush()
}
}, d.prototype.close = function() {
function a() {
d.onClose("forced close"), h("socket closing - telling transport to close"), d.transport.close()
}
function b() {
d.removeListener("upgrade", b), d.removeListener("upgradeError", b), a()
}
function c() {
d.once("upgrade", b), d.once("upgradeError", b)
}
if ("opening" == this.readyState || "open" == this.readyState) {
this.readyState = "closing";
var d = this;
this.writeBuffer.length ? this.once("drain", function() {
this.upgrading ? c() : a()
}) : this.upgrading ? c() : a()
}
return this
}, d.prototype.onError = function(a) {
h("socket error %j", a), d.priorWebsocketSuccess = !1, this.emit("error", a), this.onClose("transport error", a)
}, d.prototype.onClose = function(a, b) {
if ("opening" == this.readyState || "open" == this.readyState || "closing" == this.readyState) {
h('socket close with reason: "%s"', a);
var c = this;
clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), this.readyState = "closed", this.id = null, this.emit("close", a, b), c.writeBuffer = [], c.prevBufferLen = 0
}
}, d.prototype.filterUpgrades = function(a) {
for (var b = [], c = 0, d = a.length; d > c; c++) ~i(this.transports, a[c]) && b.push(a[c]);
return b
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./transport": 4,
"./transports": 5,
"component-emitter": 15,
debug: 17,
"engine.io-parser": 19,
indexof: 23,
parsejson: 26,
parseqs: 27,
parseuri: 28
}],
4: [function(a, b, c) {
function d(a) {
this.path = a.path, this.hostname = a.hostname, this.port = a.port, this.secure = a.secure, this.query = a.query, this.timestampParam = a.timestampParam, this.timestampRequests = a.timestampRequests, this.readyState = "", this.agent = a.agent || !1, this.socket = a.socket, this.enablesXDR = a.enablesXDR, this.pfx = a.pfx, this.key = a.key, this.passphrase = a.passphrase, this.cert = a.cert, this.ca = a.ca, this.ciphers = a.ciphers, this.rejectUnauthorized = a.rejectUnauthorized, this.extraHeaders = a.extraHeaders
}
var e = a("engine.io-parser"),
f = a("component-emitter");
b.exports = d, f(d.prototype), d.prototype.onError = function(a, b) {
var c = new Error(a);
return c.type = "TransportError", c.description = b, this.emit("error", c), this
}, d.prototype.open = function() {
return ("closed" == this.readyState || "" == this.readyState) && (this.readyState = "opening", this.doOpen()), this
}, d.prototype.close = function() {
return ("opening" == this.readyState || "open" == this.readyState) && (this.doClose(), this.onClose()), this
}, d.prototype.send = function(a) {
if ("open" != this.readyState) throw new Error("Transport not open");
this.write(a)
}, d.prototype.onOpen = function() {
this.readyState = "open", this.writable = !0, this.emit("open")
}, d.prototype.onData = function(a) {
var b = e.decodePacket(a, this.socket.binaryType);
this.onPacket(b)
}, d.prototype.onPacket = function(a) {
this.emit("packet", a)
}, d.prototype.onClose = function() {
this.readyState = "closed", this.emit("close")
}
}, {
"component-emitter": 15,
"engine.io-parser": 19
}],
5: [function(a, b, c) {
(function(b) {
function d(a) {
var c, d = !1,
h = !1,
i = !1 !== a.jsonp;
if (b.location) {
var j = "https:" == location.protocol,
k = location.port;
k || (k = j ? 443 : 80), d = a.hostname != location.hostname || k != a.port, h = a.secure != j
}
if (a.xdomain = d, a.xscheme = h, c = new e(a), "open" in c && !a.forceJSONP) return new f(a);
if (!i) throw new Error("JSONP disabled");
return new g(a)
}
var e = a("xmlhttprequest-ssl"),
f = a("./polling-xhr"),
g = a("./polling-jsonp"),
h = a("./websocket");
c.polling = d, c.websocket = h
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./polling-jsonp": 6,
"./polling-xhr": 7,
"./websocket": 9,
"xmlhttprequest-ssl": 10
}],
6: [function(a, b, c) {
(function(c) {
function d() {}
function e(a) {
f.call(this, a), this.query = this.query || {}, h || (c.___eio || (c.___eio = []), h = c.___eio), this.index = h.length;
var b = this;
h.push(function(a) {
b.onData(a)
}), this.query.j = this.index, c.document && c.addEventListener && c.addEventListener("beforeunload", function() {
b.script && (b.script.onerror = d)
}, !1)
}
var f = a("./polling"),
g = a("component-inherit");
b.exports = e;
var h, i = /\n/g,
j = /\\n/g;
g(e, f), e.prototype.supportsBinary = !1, e.prototype.doClose = function() {
this.script && (this.script.parentNode.removeChild(this.script), this.script = null), this.form && (this.form.parentNode.removeChild(this.form), this.form = null, this.iframe = null), f.prototype.doClose.call(this)
}, e.prototype.doPoll = function() {
var a = this,
b = document.createElement("script");
this.script && (this.script.parentNode.removeChild(this.script), this.script = null), b.async = !0, b.src = this.uri(), b.onerror = function(b) {
a.onError("jsonp poll error", b)
};
var c = document.getElementsByTagName("script")[0];
c ? c.parentNode.insertBefore(b, c) : (document.head || document.body).appendChild(b), this.script = b;
var d = "undefined" != typeof navigator && /gecko/i.test(navigator.userAgent);
d && setTimeout(function() {
var a = document.createElement("iframe");
document.body.appendChild(a), document.body.removeChild(a)
}, 100)
}, e.prototype.doWrite = function(a, b) {
function c() {
d(), b()
}
function d() {
if (e.iframe) try {
e.form.removeChild(e.iframe)
} catch (a) {
e.onError("jsonp polling iframe removal error", a)
}
try {
var b = '<iframe src="javascript:0" name="' + e.iframeId + '">';
f = document.createElement(b)
} catch (a) {
f = document.createElement("iframe"), f.name = e.iframeId, f.src = "javascript:0"
}
f.id = e.iframeId, e.form.appendChild(f), e.iframe = f
}
var e = this;
if (!this.form) {
var f, g = document.createElement("form"),
h = document.createElement("textarea"),
k = this.iframeId = "eio_iframe_" + this.index;
g.className = "socketio", g.style.position = "absolute", g.style.top = "-1000px", g.style.left = "-1000px", g.target = k, g.method = "POST", g.setAttribute("accept-charset", "utf-8"), h.name = "d", g.appendChild(h), document.body.appendChild(g), this.form = g, this.area = h
}
this.form.action = this.uri(), d(), a = a.replace(j, "\\\n"), this.area.value = a.replace(i, "\\n");
try {
this.form.submit()
} catch (l) {}
this.iframe.attachEvent ? this.iframe.onreadystatechange = function() {
"complete" == e.iframe.readyState && c()
} : this.iframe.onload = c
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./polling": 8,
"component-inherit": 16
}],
7: [function(a, b, c) {
(function(c) {
function d() {}
function e(a) {
if (i.call(this, a), c.location) {
var b = "https:" == location.protocol,
d = location.port;
d || (d = b ? 443 : 80), this.xd = a.hostname != c.location.hostname || d != a.port, this.xs = a.secure != b
} else this.extraHeaders = a.extraHeaders
}
function f(a) {
this.method = a.method || "GET", this.uri = a.uri, this.xd = !!a.xd, this.xs = !!a.xs, this.async = !1 !== a.async, this.data = void 0 != a.data ? a.data : null, this.agent = a.agent, this.isBinary = a.isBinary, this.supportsBinary = a.supportsBinary, this.enablesXDR = a.enablesXDR, this.pfx = a.pfx, this.key = a.key, this.passphrase = a.passphrase, this.cert = a.cert, this.ca = a.ca, this.ciphers = a.ciphers, this.rejectUnauthorized = a.rejectUnauthorized, this.extraHeaders = a.extraHeaders, this.create()
}
function g() {
for (var a in f.requests) f.requests.hasOwnProperty(a) && f.requests[a].abort()
}
var h = a("xmlhttprequest-ssl"),
i = a("./polling"),
j = a("component-emitter"),
k = a("component-inherit"),
l = a("debug")("engine.io-client:polling-xhr");
b.exports = e, b.exports.Request = f, k(e, i), e.prototype.supportsBinary = !0, e.prototype.request = function(a) {
return a = a || {}, a.uri = this.uri(), a.xd = this.xd, a.xs = this.xs, a.agent = this.agent || !1, a.supportsBinary = this.supportsBinary, a.enablesXDR = this.enablesXDR, a.pfx = this.pfx, a.key = this.key, a.passphrase = this.passphrase, a.cert = this.cert, a.ca = this.ca, a.ciphers = this.ciphers, a.rejectUnauthorized = this.rejectUnauthorized, a.extraHeaders = this.extraHeaders, new f(a)
}, e.prototype.doWrite = function(a, b) {
var c = "string" != typeof a && void 0 !== a,
d = this.request({
method: "POST",
data: a,
isBinary: c
}),
e = this;
d.on("success", b), d.on("error", function(a) {
e.onError("xhr post error", a)
}), this.sendXhr = d
}, e.prototype.doPoll = function() {
l("xhr poll");
var a = this.request(),
b = this;
a.on("data", function(a) {
b.onData(a)
}), a.on("error", function(a) {
b.onError("xhr poll error", a)
}), this.pollXhr = a
}, j(f.prototype), f.prototype.create = function() {
var a = {
agent: this.agent,
xdomain: this.xd,
xscheme: this.xs,
enablesXDR: this.enablesXDR
};
a.pfx = this.pfx, a.key = this.key, a.passphrase = this.passphrase, a.cert = this.cert, a.ca = this.ca, a.ciphers = this.ciphers, a.rejectUnauthorized = this.rejectUnauthorized;
var b = this.xhr = new h(a),
d = this;
try {
l("xhr open %s: %s", this.method, this.uri), b.open(this.method, this.uri, this.async);
try {
if (this.extraHeaders) {
b.setDisableHeaderCheck(!0);
for (var e in this.extraHeaders) this.extraHeaders.hasOwnProperty(e) && b.setRequestHeader(e, this.extraHeaders[e])
}
} catch (g) {}
if (this.supportsBinary && (b.responseType = "arraybuffer"), "POST" == this.method) try {
this.isBinary ? b.setRequestHeader("Content-type", "application/octet-stream") : b.setRequestHeader("Content-type", "text/plain;charset=UTF-8")
} catch (g) {}
"withCredentials" in b && (b.withCredentials = !0), this.hasXDR() ? (b.onload = function() {
d.onLoad()
}, b.onerror = function() {
d.onError(b.responseText)
}) : b.onreadystatechange = function() {
4 == b.readyState && (200 == b.status || 1223 == b.status ? d.onLoad() : setTimeout(function() {
d.onError(b.status)
}, 0))
}, l("xhr data %s", this.data), b.send(this.data)
} catch (g) {
return void setTimeout(function() {
d.onError(g)
}, 0)
}
c.document && (this.index = f.requestsCount++, f.requests[this.index] = this)
}, f.prototype.onSuccess = function() {
this.emit("success"), this.cleanup()
}, f.prototype.onData = function(a) {
this.emit("data", a), this.onSuccess()
}, f.prototype.onError = function(a) {
this.emit("error", a), this.cleanup(!0)
}, f.prototype.cleanup = function(a) {
if ("undefined" != typeof this.xhr && null !== this.xhr) {
if (this.hasXDR() ? this.xhr.onload = this.xhr.onerror = d : this.xhr.onreadystatechange = d, a) try {
this.xhr.abort()
} catch (b) {}
c.document && delete f.requests[this.index], this.xhr = null
}
}, f.prototype.onLoad = function() {
var a;
try {
var b;
try {
b = this.xhr.getResponseHeader("Content-Type").split(";")[0]
} catch (c) {}
if ("application/octet-stream" === b) a = this.xhr.response;
else if (this.supportsBinary) try {
a = String.fromCharCode.apply(null, new Uint8Array(this.xhr.response))
} catch (c) {
for (var d = new Uint8Array(this.xhr.response), e = [], f = 0, g = d.length; g > f; f++) e.push(d[f]);
a = String.fromCharCode.apply(null, e)
} else a = this.xhr.responseText
} catch (c) {
this.onError(c)
}
null != a && this.onData(a)
}, f.prototype.hasXDR = function() {
return "undefined" != typeof c.XDomainRequest && !this.xs && this.enablesXDR
}, f.prototype.abort = function() {
this.cleanup()
}, c.document && (f.requestsCount = 0, f.requests = {}, c.attachEvent ? c.attachEvent("onunload", g) : c.addEventListener && c.addEventListener("beforeunload", g, !1))
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./polling": 8,
"component-emitter": 15,
"component-inherit": 16,
debug: 17,
"xmlhttprequest-ssl": 10
}],
8: [function(a, b, c) {
function d(a) {
var b = a && a.forceBase64;
(!k || b) && (this.supportsBinary = !1), e.call(this, a)
}
var e = a("../transport"),
f = a("parseqs"),
g = a("engine.io-parser"),
h = a("component-inherit"),
i = a("yeast"),
j = a("debug")("engine.io-client:polling");
b.exports = d;
var k = function() {
var b = a("xmlhttprequest-ssl"),
c = new b({
xdomain: !1
});
return null != c.responseType
}();
h(d, e), d.prototype.name = "polling", d.prototype.doOpen = function() {
this.poll()
}, d.prototype.pause = function(a) {
function b() {
j("paused"), c.readyState = "paused", a()
}
var c = this;
if (this.readyState = "pausing", this.polling || !this.writable) {
var d = 0;
this.polling && (j("we are currently polling - waiting to pause"), d++, this.once("pollComplete", function() {
j("pre-pause polling complete"),
--d || b()
})), this.writable || (j("we are currently writing - waiting to pause"), d++, this.once("drain", function() {
j("pre-pause writing complete"), --d || b()
}))
} else b()
}, d.prototype.poll = function() {
j("polling"), this.polling = !0, this.doPoll(), this.emit("poll")
}, d.prototype.onData = function(a) {
var b = this;
j("polling got data %s", a);
var c = function(a, c, d) {
return "opening" == b.readyState && b.onOpen(), "close" == a.type ? (b.onClose(), !1) : void b.onPacket(a)
};
g.decodePayload(a, this.socket.binaryType, c), "closed" != this.readyState && (this.polling = !1, this.emit("pollComplete"), "open" == this.readyState ? this.poll() : j('ignoring poll - transport state "%s"', this.readyState))
}, d.prototype.doClose = function() {
function a() {
j("writing close packet"), b.write([{
type: "close"
}])
}
var b = this;
"open" == this.readyState ? (j("transport open - closing"), a()) : (j("transport not open - deferring close"), this.once("open", a))
}, d.prototype.write = function(a) {
var b = this;
this.writable = !1;
var c = function() {
b.writable = !0, b.emit("drain")
},
b = this;
g.encodePayload(a, this.supportsBinary, function(a) {
b.doWrite(a, c)
})
}, d.prototype.uri = function() {
var a = this.query || {},
b = this.secure ? "https" : "http",
c = "";
!1 !== this.timestampRequests && (a[this.timestampParam] = i()), this.supportsBinary || a.sid || (a.b64 = 1), a = f.encode(a), this.port && ("https" == b && 443 != this.port || "http" == b && 80 != this.port) && (c = ":" + this.port), a.length && (a = "?" + a);
var d = -1 !== this.hostname.indexOf(":");
return b + "://" + (d ? "[" + this.hostname + "]" : this.hostname) + c + this.path + a
}
}, {
"../transport": 4,
"component-inherit": 16,
debug: 17,
"engine.io-parser": 19,
parseqs: 27,
"xmlhttprequest-ssl": 10,
yeast: 30
}],
9: [function(a, b, c) {
(function(c) {
function d(a) {
var b = a && a.forceBase64;
b && (this.supportsBinary = !1), this.perMessageDeflate = a.perMessageDeflate, e.call(this, a)
}
var e = a("../transport"),
f = a("engine.io-parser"),
g = a("parseqs"),
h = a("component-inherit"),
i = a("yeast"),
j = a("debug")("engine.io-client:websocket"),
k = c.WebSocket || c.MozWebSocket,
l = k;
if (!l && "undefined" == typeof window) try {
l = a("ws")
} catch (m) {}
b.exports = d, h(d, e), d.prototype.name = "websocket", d.prototype.supportsBinary = !0, d.prototype.doOpen = function() {
if (this.check()) {
var a = this.uri(),
b = void 0,
c = {
agent: this.agent,
perMessageDeflate: this.perMessageDeflate
};
c.pfx = this.pfx, c.key = this.key, c.passphrase = this.passphrase, c.cert = this.cert, c.ca = this.ca, c.ciphers = this.ciphers, c.rejectUnauthorized = this.rejectUnauthorized, this.extraHeaders && (c.headers = this.extraHeaders), this.ws = k ? new l(a) : new l(a, b, c), void 0 === this.ws.binaryType && (this.supportsBinary = !1), this.ws.supports && this.ws.supports.binary ? (this.supportsBinary = !0, this.ws.binaryType = "buffer") : this.ws.binaryType = "arraybuffer", this.addEventListeners()
}
}, d.prototype.addEventListeners = function() {
var a = this;
this.ws.onopen = function() {
a.onOpen()
}, this.ws.onclose = function() {
a.onClose()
}, this.ws.onmessage = function(b) {
a.onData(b.data)
}, this.ws.onerror = function(b) {
a.onError("websocket error", b)
}
}, "undefined" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) && (d.prototype.onData = function(a) {
var b = this;
setTimeout(function() {
e.prototype.onData.call(b, a)
}, 0)
}), d.prototype.write = function(a) {
function b() {
d.emit("flush"), setTimeout(function() {
d.writable = !0, d.emit("drain")
}, 0)
}
var d = this;
this.writable = !1;
for (var e = a.length, g = 0, h = e; h > g; g++) ! function(a) {
f.encodePacket(a, d.supportsBinary, function(f) {
if (!k) {
var g = {};
if (a.options && (g.compress = a.options.compress), d.perMessageDeflate) {
var h = "string" == typeof f ? c.Buffer.byteLength(f) : f.length;
h < d.perMessageDeflate.threshold && (g.compress = !1)
}
}
try {
k ? d.ws.send(f) : d.ws.send(f, g)
} catch (i) {
j("websocket closed before onclose event")
}--e || b()
})
}(a[g])
}, d.prototype.onClose = function() {
e.prototype.onClose.call(this)
}, d.prototype.doClose = function() {
"undefined" != typeof this.ws && this.ws.close()
}, d.prototype.uri = function() {
var a = this.query || {},
b = this.secure ? "wss" : "ws",
c = "";
this.port && ("wss" == b && 443 != this.port || "ws" == b && 80 != this.port) && (c = ":" + this.port), this.timestampRequests && (a[this.timestampParam] = i()), this.supportsBinary || (a.b64 = 1), a = g.encode(a), a.length && (a = "?" + a);
var d = -1 !== this.hostname.indexOf(":");
return b + "://" + (d ? "[" + this.hostname + "]" : this.hostname) + c + this.path + a
}, d.prototype.check = function() {
return !(!l || "__initialize" in l && this.name === d.prototype.name)
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"../transport": 4,
"component-inherit": 16,
debug: 17,
"engine.io-parser": 19,
parseqs: 27,
ws: void 0,
yeast: 30
}],
10: [function(a, b, c) {
var d = a("has-cors");
b.exports = function(a) {
var b = a.xdomain,
c = a.xscheme,
e = a.enablesXDR;
try {
if ("undefined" != typeof XMLHttpRequest && (!b || d)) return new XMLHttpRequest
} catch (f) {}
try {
if ("undefined" != typeof XDomainRequest && !c && e) return new XDomainRequest
} catch (f) {}
if (!b) try {
return new ActiveXObject("Microsoft.XMLHTTP")
} catch (f) {}
}
}, {
"has-cors": 22
}],
11: [function(a, b, c) {
function d(a, b, c) {
function d(a, e) {
if (d.count <= 0) throw new Error("after called too many times");
--d.count, a ? (f = !0, b(a), b = c) : 0 !== d.count || f || b(null, e)
}
var f = !1;
return c = c || e, d.count = a, 0 === a ? b() : d
}
function e() {}
b.exports = d
}, {}],
12: [function(a, b, c) {
b.exports = function(a, b, c) {
var d = a.byteLength;
if (b = b || 0, c = c || d, a.slice) return a.slice(b, c);
if (0 > b && (b += d), 0 > c && (c += d), c > d && (c = d), b >= d || b >= c || 0 === d) return new ArrayBuffer(0);
for (var e = new Uint8Array(a), f = new Uint8Array(c - b), g = b, h = 0; c > g; g++, h++) f[h] = e[g];
return f.buffer
}
}, {}],
13: [function(a, b, c) {
! function(a) {
"use strict";
c.encode = function(b) {
var c, d = new Uint8Array(b),
e = d.length,
f = "";
for (c = 0; e > c; c += 3) f += a[d[c] >> 2], f += a[(3 & d[c]) << 4 | d[c + 1] >> 4], f += a[(15 & d[c + 1]) << 2 | d[c + 2] >> 6], f += a[63 & d[c + 2]];
return e % 3 === 2 ? f = f.substring(0, f.length - 1) + "=" : e % 3 === 1 && (f = f.substring(0, f.length - 2) + "=="), f
}, c.decode = function(b) {
var c, d, e, f, g, h = .75 * b.length,
i = b.length,
j = 0;
"=" === b[b.length - 1] && (h--, "=" === b[b.length - 2] && h--);
var k = new ArrayBuffer(h),
l = new Uint8Array(k);
for (c = 0; i > c; c += 4) d = a.indexOf(b[c]), e = a.indexOf(b[c + 1]), f = a.indexOf(b[c + 2]), g = a.indexOf(b[c + 3]), l[j++] = d << 2 | e >> 4, l[j++] = (15 & e) << 4 | f >> 2, l[j++] = (3 & f) << 6 | 63 & g;
return k
}
}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
}, {}],
14: [function(a, b, c) {
(function(a) {
function c(a) {
for (var b = 0; b < a.length; b++) {
var c = a[b];
if (c.buffer instanceof ArrayBuffer) {
var d = c.buffer;
if (c.byteLength !== d.byteLength) {
var e = new Uint8Array(c.byteLength);
e.set(new Uint8Array(d, c.byteOffset, c.byteLength)), d = e.buffer
}
a[b] = d
}
}
}
function d(a, b) {
b = b || {};
var d = new f;
c(a);
for (var e = 0; e < a.length; e++) d.append(a[e]);
return b.type ? d.getBlob(b.type) : d.getBlob()
}
function e(a, b) {
return c(a), new Blob(a, b || {})
}
var f = a.BlobBuilder || a.WebKitBlobBuilder || a.MSBlobBuilder || a.MozBlobBuilder,
g = function() {
try {
var a = new Blob(["hi"]);
return 2 === a.size
} catch (b) {
return !1
}
}(),
h = g && function() {
try {
var a = new Blob([new Uint8Array([1, 2])]);
return 2 === a.size
} catch (b) {
return !1
}
}(),
i = f && f.prototype.append && f.prototype.getBlob;
b.exports = function() {
return g ? h ? a.Blob : e : i ? d : void 0
}()
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {}],
15: [function(a, b, c) {
function d(a) {
return a ? e(a) : void 0
}
function e(a) {
for (var b in d.prototype) a[b] = d.prototype[b];
return a
}
b.exports = d, d.prototype.on = d.prototype.addEventListener = function(a, b) {
return this._callbacks = this._callbacks || {}, (this._callbacks[a] = this._callbacks[a] || []).push(b), this
}, d.prototype.once = function(a, b) {
function c() {
d.off(a, c), b.apply(this, arguments)
}
var d = this;
return this._callbacks = this._callbacks || {}, c.fn = b, this.on(a, c), this
}, d.prototype.off = d.prototype.removeListener = d.prototype.removeAllListeners = d.prototype.removeEventListener = function(a, b) {
if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;
var c = this._callbacks[a];
if (!c) return this;
if (1 == arguments.length) return delete this._callbacks[a], this;
for (var d, e = 0; e < c.length; e++)
if (d = c[e], d === b || d.fn === b) {
c.splice(e, 1);
break
}
return this
}, d.prototype.emit = function(a) {
this._callbacks = this._callbacks || {};
var b = [].slice.call(arguments, 1),
c = this._callbacks[a];
if (c) {
c = c.slice(0);
for (var d = 0, e = c.length; e > d; ++d) c[d].apply(this, b)
}
return this
}, d.prototype.listeners = function(a) {
return this._callbacks = this._callbacks || {}, this._callbacks[a] || []
}, d.prototype.hasListeners = function(a) {
return !!this.listeners(a).length
}
}, {}],
16: [function(a, b, c) {
b.exports = function(a, b) {
var c = function() {};
c.prototype = b.prototype, a.prototype = new c, a.prototype.constructor = a
}
}, {}],
17: [function(a, b, c) {
function d() {
return "WebkitAppearance" in document.documentElement.style || window.console && (console.firebug || console.exception && console.table) || navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31
}
function e() {
var a = arguments,
b = this.useColors;
if (a[0] = (b ? "%c" : "") + this.namespace + (b ? " %c" : " ") + a[0] + (b ? "%c " : " ") + "+" + c.humanize(this.diff), !b) return a;
var d = "color: " + this.color;
a = [a[0], d, "color: inherit"].concat(Array.prototype.slice.call(a, 1));
var e = 0,
f = 0;
return a[0].replace(/%[a-z%]/g, function(a) {
"%%" !== a && (e++, "%c" === a && (f = e))
}), a.splice(f, 0, d), a
}
function f() {
return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments)
}
function g(a) {
try {
null == a ? c.storage.removeItem("debug") : c.storage.debug = a
} catch (b) {}
}
function h() {
var a;
try {
a = c.storage.debug
} catch (b) {}
return a
}
function i() {
try {
return window.localStorage
} catch (a) {}
}
c = b.exports = a("./debug"), c.log = f, c.formatArgs = e, c.save = g, c.load = h, c.useColors = d, c.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : i(), c.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"], c.formatters.j = function(a) {
return JSON.stringify(a)
}, c.enable(h())
}, {
"./debug": 18
}],
18: [function(a, b, c) {
function d() {
return c.colors[k++ % c.colors.length]
}
function e(a) {
function b() {}
function e() {
var a = e,
b = +new Date,
f = b - (j || b);
a.diff = f, a.prev = j, a.curr = b, j = b, null == a.useColors && (a.useColors = c.useColors()), null == a.color && a.useColors && (a.color = d());
var g = Array.prototype.slice.call(arguments);
g[0] = c.coerce(g[0]), "string" != typeof g[0] && (g = ["%o"].concat(g));
var h = 0;
g[0] = g[0].replace(/%([a-z%])/g, function(b, d) {
if ("%%" === b) return b;
h++;
var e = c.formatters[d];
if ("function" == typeof e) {
var f = g[h];
b = e.call(a, f), g.splice(h, 1), h--
}
return b
}), "function" == typeof c.formatArgs && (g = c.formatArgs.apply(a, g));
var i = e.log || c.log || void 0;
i.apply(a, g)
}
b.enabled = !1, e.enabled = !0;
var f = c.enabled(a) ? e : b;
return f.namespace = a, f
}
function f(a) {
c.save(a);
for (var b = (a || "").split(/[\s,]+/), d = b.length, e = 0; d > e; e++) b[e] && (a = b[e].replace(/\*/g, ".*?"), "-" === a[0] ? c.skips.push(new RegExp("^" + a.substr(1) + "$")) : c.names.push(new RegExp("^" + a + "$")))
}
function g() {
c.enable("")
}
function h(a) {
var b, d;
for (b = 0, d = c.skips.length; d > b; b++)
if (c.skips[b].test(a)) return !1;
for (b = 0, d = c.names.length; d > b; b++)
if (c.names[b].test(a)) return !0;
return !1
}
function i(a) {
return a instanceof Error ? a.stack || a.message : a
}
c = b.exports = e, c.coerce = i, c.disable = g, c.enable = f, c.enabled = h, c.humanize = a("ms"), c.names = [], c.skips = [], c.formatters = {};
var j, k = 0
}, {
ms: 25
}],
19: [function(a, b, c) {
(function(b) {
function d(a, b) {
var d = "b" + c.packets[a.type] + a.data.data;
return b(d)
}
function e(a, b, d) {
if (!b) return c.encodeBase64Packet(a, d);
var e = a.data,
f = new Uint8Array(e),
g = new Uint8Array(1 + e.byteLength);
g[0] = r[a.type];
for (var h = 0; h < f.length; h++) g[h + 1] = f[h];
return d(g.buffer)
}
function f(a, b, d) {
if (!b) return c.encodeBase64Packet(a, d);
var e = new FileReader;
return e.onload = function() {
a.data = e.result, c.encodePacket(a, b, !0, d)
}, e.readAsArrayBuffer(a.data)
}
function g(a, b, d) {
if (!b) return c.encodeBase64Packet(a, d);
if (q) return f(a, b, d);
var e = new Uint8Array(1);
e[0] = r[a.type];
var g = new u([e.buffer, a.data]);
return d(g)
}
function h(a, b, c) {
for (var d = new Array(a.length), e = m(a.length, c), f = function(a, c, e) {
b(c, function(b, c) {
d[a] = c, e(b, d)
})
}, g = 0; g < a.length; g++) f(g, a[g], e)
}
var i = a("./keys"),
j = a("has-binary"),
k = a("arraybuffer.slice"),
l = a("base64-arraybuffer"),
m = a("after"),
n = a("utf8"),
o = navigator.userAgent.match(/Android/i),
p = /PhantomJS/i.test(navigator.userAgent),
q = o || p;
c.protocol = 3;
var r = c.packets = {
open: 0,
close: 1,
ping: 2,
pong: 3,
message: 4,
upgrade: 5,
noop: 6
},
s = i(r),
t = {
type: "error",
data: "parser error"
},
u = a("blob");
c.encodePacket = function(a, c, f, h) {
"function" == typeof c && (h = c, c = !1), "function" == typeof f && (h = f, f = null);
var i = void 0 === a.data ? void 0 : a.data.buffer || a.data;
if (b.ArrayBuffer && i instanceof ArrayBuffer) return e(a, c, h);
if (u && i instanceof b.Blob) return g(a, c, h);
if (i && i.base64) return d(a, h);
var j = r[a.type];
return void 0 !== a.data && (j += f ? n.encode(String(a.data)) : String(a.data)), h("" + j)
}, c.encodeBase64Packet = function(a, d) {
var e = "b" + c.packets[a.type];
if (u && a.data instanceof b.Blob) {
var f = new FileReader;
return f.onload = function() {
var a = f.result.split(",")[1];
d(e + a)
}, f.readAsDataURL(a.data)
}
var g;
try {
g = String.fromCharCode.apply(null, new Uint8Array(a.data))
} catch (h) {
for (var i = new Uint8Array(a.data), j = new Array(i.length), k = 0; k < i.length; k++) j[k] = i[k];
g = String.fromCharCode.apply(null, j)
}
return e += b.btoa(g), d(e)
}, c.decodePacket = function(a, b, d) {
if ("string" == typeof a || void 0 === a) {
if ("b" == a.charAt(0)) return c.decodeBase64Packet(a.substr(1), b);
if (d) try {
a = n.decode(a)
} catch (e) {
return t
}
var f = a.charAt(0);
return Number(f) == f && s[f] ? a.length > 1 ? {
type: s[f],
data: a.substring(1)
} : {
type: s[f]
} : t
}
var g = new Uint8Array(a),
f = g[0],
h = k(a, 1);
return u && "blob" === b && (h = new u([h])), {
type: s[f],
data: h
}
}, c.decodeBase64Packet = function(a, c) {
var d = s[a.charAt(0)];
if (!b.ArrayBuffer) return {
type: d,
data: {
base64: !0,
data: a.substr(1)
}
};
var e = l.decode(a.substr(1));
return "blob" === c && u && (e = new u([e])), {
type: d,
data: e
}
}, c.encodePayload = function(a, b, d) {
function e(a) {
return a.length + ":" + a
}
function f(a, d) {
c.encodePacket(a, g ? b : !1, !0, function(a) {
d(null, e(a))
})
}
"function" == typeof b && (d = b, b = null);
var g = j(a);
return b && g ? u && !q ? c.encodePayloadAsBlob(a, d) : c.encodePayloadAsArrayBuffer(a, d) : a.length ? void h(a, f, function(a, b) {
return d(b.join(""))
}) : d("0:")
}, c.decodePayload = function(a, b, d) {
if ("string" != typeof a) return c.decodePayloadAsBinary(a, b, d);
"function" == typeof b && (d = b, b = null);
var e;
if ("" == a) return d(t, 0, 1);
for (var f, g, h = "", i = 0, j = a.length; j > i; i++) {
var k = a.charAt(i);
if (":" != k) h += k;
else {
if ("" == h || h != (f = Number(h))) return d(t, 0, 1);
if (g = a.substr(i + 1, f), h != g.length) return d(t, 0, 1);
if (g.length) {
if (e = c.decodePacket(g, b, !0), t.type == e.type && t.data == e.data) return d(t, 0, 1);
var l = d(e, i + f, j);
if (!1 === l) return
}
i += f, h = ""
}
}
return "" != h ? d(t, 0, 1) : void 0
}, c.encodePayloadAsArrayBuffer = function(a, b) {
function d(a, b) {
c.encodePacket(a, !0, !0, function(a) {
return b(null, a)
})
}
return a.length ? void h(a, d, function(a, c) {
var d = c.reduce(function(a, b) {
var c;
return c = "string" == typeof b ? b.length : b.byteLength, a + c.toString().length + c + 2
}, 0),
e = new Uint8Array(d),
f = 0;
return c.forEach(function(a) {
var b = "string" == typeof a,
c = a;
if (b) {
for (var d = new Uint8Array(a.length), g = 0; g < a.length; g++) d[g] = a.charCodeAt(g);
c = d.buffer
}
b ? e[f++] = 0 : e[f++] = 1;
for (var h = c.byteLength.toString(), g = 0; g < h.length; g++) e[f++] = parseInt(h[g]);
e[f++] = 255;
for (var d = new Uint8Array(c), g = 0; g < d.length; g++) e[f++] = d[g]
}), b(e.buffer)
}) : b(new ArrayBuffer(0))
}, c.encodePayloadAsBlob = function(a, b) {
function d(a, b) {
c.encodePacket(a, !0, !0, function(a) {
var c = new Uint8Array(1);
if (c[0] = 1, "string" == typeof a) {
for (var d = new Uint8Array(a.length), e = 0; e < a.length; e++) d[e] = a.charCodeAt(e);
a = d.buffer, c[0] = 0
}
for (var f = a instanceof ArrayBuffer ? a.byteLength : a.size, g = f.toString(), h = new Uint8Array(g.length + 1), e = 0; e < g.length; e++) h[e] = parseInt(g[e]);
if (h[g.length] = 255, u) {
var i = new u([c.buffer, h.buffer, a]);
b(null, i)
}
})
}
h(a, d, function(a, c) {
return b(new u(c))
})
}, c.decodePayloadAsBinary = function(a, b, d) {
"function" == typeof b && (d = b, b = null);
for (var e = a, f = [], g = !1; e.byteLength > 0;) {
for (var h = new Uint8Array(e), i = 0 === h[0], j = "", l = 1; 255 != h[l]; l++) {
if (j.length > 310) {
g = !0;
break
}
j += h[l]
}
if (g) return d(t, 0, 1);
e = k(e, 2 + j.length), j = parseInt(j);
var m = k(e, 0, j);
if (i) try {
m = String.fromCharCode.apply(null, new Uint8Array(m))
} catch (n) {
var o = new Uint8Array(m);
m = "";
for (var l = 0; l < o.length; l++) m += String.fromCharCode(o[l])
}
f.push(m), e = k(e, j)
}
var p = f.length;
f.forEach(function(a, e) {
d(c.decodePacket(a, b, !0), e, p)
})
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./keys": 20,
after: 11,
"arraybuffer.slice": 12,
"base64-arraybuffer": 13,
blob: 14,
"has-binary": 21,
utf8: 29
}],
20: [function(a, b, c) {
b.exports = Object.keys || function(a) {
var b = [],
c = Object.prototype.hasOwnProperty;
for (var d in a) c.call(a, d) && b.push(d);
return b
}
}, {}],
21: [function(a, b, c) {
(function(c) {
function d(a) {
function b(a) {
if (!a) return !1;
if (c.Buffer && c.Buffer.isBuffer(a) || c.ArrayBuffer && a instanceof ArrayBuffer || c.Blob && a instanceof Blob || c.File && a instanceof File) return !0;
if (e(a)) {
for (var d = 0; d < a.length; d++)
if (b(a[d])) return !0
} else if (a && "object" == typeof a) {
a.toJSON && (a = a.toJSON());
for (var f in a)
if (Object.prototype.hasOwnProperty.call(a, f) && b(a[f])) return !0
}
return !1
}
return b(a)
}
var e = a("isarray");
b.exports = d
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
isarray: 24
}],
22: [function(a, b, c) {
try {
b.exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in new XMLHttpRequest
} catch (d) {
b.exports = !1
}
}, {}],
23: [function(a, b, c) {
var d = [].indexOf;
b.exports = function(a, b) {
if (d) return a.indexOf(b);
for (var c = 0; c < a.length; ++c)
if (a[c] === b) return c;
return -1
}
}, {}],
24: [function(a, b, c) {
b.exports = Array.isArray || function(a) {
return "[object Array]" == Object.prototype.toString.call(a)
}
}, {}],
25: [function(a, b, c) {
function d(a) {
if (a = "" + a, !(a.length > 1e4)) {
var b = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(a);
if (b) {
var c = parseFloat(b[1]),
d = (b[2] || "ms").toLowerCase();
switch (d) {
case "years":
case "year":
case "yrs":
case "yr":
case "y":
return c * l;
case "days":
case "day":
case "d":
return c * k;
case "hours":
case "hour":
case "hrs":
case "hr":
case "h":
return c * j;
case "minutes":
case "minute":
case "mins":
case "min":
case "m":
return c * i;
case "seconds":
case "second":
case "secs":
case "sec":
case "s":
return c * h;
case "milliseconds":
case "millisecond":
case "msecs":
case "msec":
case "ms":
return c
}
}
}
}
function e(a) {
return a >= k ? Math.round(a / k) + "d" : a >= j ? Math.round(a / j) + "h" : a >= i ? Math.round(a / i) + "m" : a >= h ? Math.round(a / h) + "s" : a + "ms"
}
function f(a) {
return g(a, k, "day") || g(a, j, "hour") || g(a, i, "minute") || g(a, h, "second") || a + " ms"
}
function g(a, b, c) {
return b > a ? void 0 : 1.5 * b > a ? Math.floor(a / b) + " " + c : Math.ceil(a / b) + " " + c + "s"
}
var h = 1e3,
i = 60 * h,
j = 60 * i,
k = 24 * j,
l = 365.25 * k;
b.exports = function(a, b) {
return b = b || {}, "string" == typeof a ? d(a) : b["long"] ? f(a) : e(a)
}
}, {}],
26: [function(a, b, c) {
(function(a) {
var c = /^[\],:{}\s]*$/,
d = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
e = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
f = /(?:^|:|,)(?:\s*\[)+/g,
g = /^\s+/,
h = /\s+$/;
b.exports = function(b) {
return "string" == typeof b && b ? (b = b.replace(g, "").replace(h, ""), a.JSON && JSON.parse ? JSON.parse(b) : c.test(b.replace(d, "@").replace(e, "]").replace(f, "")) ? new Function("return " + b)() : void 0) : null
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {}],
27: [function(a, b, c) {
c.encode = function(a) {
var b = "";
for (var c in a) a.hasOwnProperty(c) && (b.length && (b += "&"), b += encodeURIComponent(c) + "=" + encodeURIComponent(a[c]));
return b
}, c.decode = function(a) {
for (var b = {}, c = a.split("&"), d = 0, e = c.length; e > d; d++) {
var f = c[d].split("=");
b[decodeURIComponent(f[0])] = decodeURIComponent(f[1])
}
return b
}
}, {}],
28: [function(a, b, c) {
var d = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
e = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
b.exports = function(a) {
var b = a,
c = a.indexOf("["),
f = a.indexOf("]"); - 1 != c && -1 != f && (a = a.substring(0, c) + a.substring(c, f).replace(/:/g, ";") + a.substring(f, a.length));
for (var g = d.exec(a || ""), h = {}, i = 14; i--;) h[e[i]] = g[i] || "";
return -1 != c && -1 != f && (h.source = b, h.host = h.host.substring(1, h.host.length - 1).replace(/;/g, ":"), h.authority = h.authority.replace("[", "").replace("]", "").replace(/;/g, ":"), h.ipv6uri = !0), h
}
}, {}],
29: [function(b, c, d) {
(function(b) {
! function(e) {
function f(a) {
for (var b, c, d = [], e = 0, f = a.length; f > e;) b = a.charCodeAt(e++), b >= 55296 && 56319 >= b && f > e ? (c = a.charCodeAt(e++), 56320 == (64512 & c) ? d.push(((1023 & b) << 10) + (1023 & c) + 65536) : (d.push(b), e--)) : d.push(b);
return d
}
function g(a) {
for (var b, c = a.length, d = -1, e = ""; ++d < c;) b = a[d], b > 65535 && (b -= 65536, e += u(b >>> 10 & 1023 | 55296), b = 56320 | 1023 & b), e += u(b);
return e
}
function h(a) {
if (a >= 55296 && 57343 >= a) throw Error("Lone surrogate U+" + a.toString(16).toUpperCase() + " is not a scalar value")
}
function i(a, b) {
return u(a >> b & 63 | 128)
}
function j(a) {
if (0 == (4294967168 & a)) return u(a);
var b = "";
return 0 == (4294965248 & a) ? b = u(a >> 6 & 31 | 192) : 0 == (4294901760 & a) ? (h(a), b = u(a >> 12 & 15 | 224), b += i(a, 6)) : 0 == (4292870144 & a) && (b = u(a >> 18 & 7 | 240), b += i(a, 12), b += i(a, 6)), b += u(63 & a | 128)
}
function k(a) {
for (var b, c = f(a), d = c.length, e = -1, g = ""; ++e < d;) b = c[e], g += j(b);
return g
}
function l() {
if (t >= s) throw Error("Invalid byte index");
var a = 255 & r[t];
if (t++, 128 == (192 & a)) return 63 & a;
throw Error("Invalid continuation byte")
}
function m() {
var a, b, c, d, e;
if (t > s) throw Error("Invalid byte index");
if (t == s) return !1;
if (a = 255 & r[t], t++, 0 == (128 & a)) return a;
if (192 == (224 & a)) {
var b = l();
if (e = (31 & a) << 6 | b, e >= 128) return e;
throw Error("Invalid continuation byte")
}
if (224 == (240 & a)) {
if (b = l(), c = l(), e = (15 & a) << 12 | b << 6 | c, e >= 2048) return h(e), e;
throw Error("Invalid continuation byte")
}
if (240 == (248 & a) && (b = l(), c = l(), d = l(), e = (15 & a) << 18 | b << 12 | c << 6 | d, e >= 65536 && 1114111 >= e)) return e;
throw Error("Invalid UTF-8 detected")
}
function n(a) {
r = f(a), s = r.length, t = 0;
for (var b, c = [];
(b = m()) !== !1;) c.push(b);
return g(c)
}
var o = "object" == typeof d && d,
p = "object" == typeof c && c && c.exports == o && c,
q = "object" == typeof b && b;
(q.global === q || q.window === q) && (e = q);
var r, s, t, u = String.fromCharCode,
v = {
version: "2.0.0",
encode: k,
decode: n
};
if ("function" == typeof a && "object" == typeof a.amd && a.amd) a(function() {
return v
});
else if (o && !o.nodeType)
if (p) p.exports = v;
else {
var w = {},
x = w.hasOwnProperty;
for (var y in v) x.call(v, y) && (o[y] = v[y])
}
else e.utf8 = v
}(this)
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {}],
30: [function(a, b, c) {
"use strict";
function d(a) {
var b = "";
do b = h[a % i] + b, a = Math.floor(a / i); while (a > 0);
return b
}
function e(a) {
var b = 0;
for (l = 0; l < a.length; l++) b = b * i + j[a.charAt(l)];
return b
}
function f() {
var a = d(+new Date);
return a !== g ? (k = 0, g = a) : a + "." + d(k++)
}
for (var g, h = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""), i = 64, j = {}, k = 0, l = 0; i > l; l++) j[h[l]] = l;
f.encode = d, f.decode = e, b.exports = f
}, {}],
31: [function(a, b, c) {
function d(a, b) {
"object" == typeof a && (b = a, a = void 0), b = b || {};
var c, d = e(a),
f = d.source,
j = d.id,
k = d.path,
l = i[j] && k in i[j].nsps,
m = b.forceNew || b["force new connection"] || !1 === b.multiplex || l;
return m ? (h("ignoring socket cache for %s", f), c = g(f, b)) : (i[j] || (h("new io instance for %s", f), i[j] = g(f, b)), c = i[j]), c.socket(d.path)
}
var e = a("./url"),
f = a("socket.io-parser"),
g = a("./manager"),
h = a("debug")("socket.io-client");
b.exports = c = d;
var i = c.managers = {};
c.protocol = f.protocol, c.connect = d, c.Manager = a("./manager"), c.Socket = a("./socket")
}, {
"./manager": 32,
"./socket": 34,
"./url": 35,
debug: 39,
"socket.io-parser": 47
}],
32: [function(a, b, c) {
function d(a, b) {
return this instanceof d ? (a && "object" == typeof a && (b = a, a = void 0), b = b || {}, b.path = b.path || "/socket.io", this.nsps = {}, this.subs = [], this.opts = b, this.reconnection(b.reconnection !== !1), this.reconnectionAttempts(b.reconnectionAttempts || 1 / 0), this.reconnectionDelay(b.reconnectionDelay || 1e3), this.reconnectionDelayMax(b.reconnectionDelayMax || 5e3), this.randomizationFactor(b.randomizationFactor || .5), this.backoff = new m({
min: this.reconnectionDelay(),
max: this.reconnectionDelayMax(),
jitter: this.randomizationFactor()
}), this.timeout(null == b.timeout ? 2e4 : b.timeout), this.readyState = "closed", this.uri = a, this.connecting = [], this.lastPing = null, this.encoding = !1, this.packetBuffer = [], this.encoder = new h.Encoder, this.decoder = new h.Decoder, this.autoConnect = b.autoConnect !== !1, void(this.autoConnect && this.open())) : new d(a, b)
}
var e = a("engine.io-client"),
f = a("./socket"),
g = a("component-emitter"),
h = a("socket.io-parser"),
i = a("./on"),
j = a("component-bind"),
k = a("debug")("socket.io-client:manager"),
l = a("indexof"),
m = a("backo2"),
n = Object.prototype.hasOwnProperty;
b.exports = d, d.prototype.emitAll = function() {
this.emit.apply(this, arguments);
for (var a in this.nsps) n.call(this.nsps, a) && this.nsps[a].emit.apply(this.nsps[a], arguments)
}, d.prototype.updateSocketIds = function() {
for (var a in this.nsps) n.call(this.nsps, a) && (this.nsps[a].id = this.engine.id)
}, g(d.prototype), d.prototype.reconnection = function(a) {
return arguments.length ? (this._reconnection = !!a, this) : this._reconnection
}, d.prototype.reconnectionAttempts = function(a) {
return arguments.length ? (this._reconnectionAttempts = a, this) : this._reconnectionAttempts
}, d.prototype.reconnectionDelay = function(a) {
return arguments.length ? (this._reconnectionDelay = a, this.backoff && this.backoff.setMin(a), this) : this._reconnectionDelay
}, d.prototype.randomizationFactor = function(a) {
return arguments.length ? (this._randomizationFactor = a, this.backoff && this.backoff.setJitter(a), this) : this._randomizationFactor
}, d.prototype.reconnectionDelayMax = function(a) {
return arguments.length ? (this._reconnectionDelayMax = a, this.backoff && this.backoff.setMax(a), this) : this._reconnectionDelayMax
}, d.prototype.timeout = function(a) {
return arguments.length ? (this._timeout = a, this) : this._timeout
}, d.prototype.maybeReconnectOnOpen = function() {
!this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect()
}, d.prototype.open = d.prototype.connect = function(a) {
if (k("readyState %s", this.readyState), ~this.readyState.indexOf("open")) return this;
k("opening %s", this.uri), this.engine = e(this.uri, this.opts);
var b = this.engine,
c = this;
this.readyState = "opening", this.skipReconnect = !1;
var d = i(b, "open", function() {
c.onopen(), a && a()
}),
f = i(b, "error", function(b) {
if (k("connect_error"), c.cleanup(), c.readyState = "closed", c.emitAll("connect_error", b), a) {
var d = new Error("Connection error");
d.data = b, a(d)
} else c.maybeReconnectOnOpen()
});
if (!1 !== this._timeout) {
var g = this._timeout;
k("connect attempt will timeout after %d", g);
var h = setTimeout(function() {
k("connect attempt timed out after %d", g), d.destroy(), b.close(), b.emit("error", "timeout"), c.emitAll("connect_timeout", g)
}, g);
this.subs.push({
destroy: function() {
clearTimeout(h)
}
})
}
return this.subs.push(d), this.subs.push(f), this
}, d.prototype.onopen = function() {
k("open"), this.cleanup(), this.readyState = "open", this.emit("open");
var a = this.engine;
this.subs.push(i(a, "data", j(this, "ondata"))), this.subs.push(i(a, "ping", j(this, "onping"))), this.subs.push(i(a, "pong", j(this, "onpong"))), this.subs.push(i(a, "error", j(this, "onerror"))), this.subs.push(i(a, "close", j(this, "onclose"))), this.subs.push(i(this.decoder, "decoded", j(this, "ondecoded")))
}, d.prototype.onping = function() {
this.lastPing = new Date, this.emitAll("ping")
}, d.prototype.onpong = function() {
this.emitAll("pong", new Date - this.lastPing)
}, d.prototype.ondata = function(a) {
this.decoder.add(a)
}, d.prototype.ondecoded = function(a) {
this.emit("packet", a)
}, d.prototype.onerror = function(a) {
k("error", a), this.emitAll("error", a)
}, d.prototype.socket = function(a) {
function b() {
~l(d.connecting, c) || d.connecting.push(c)
}
var c = this.nsps[a];
if (!c) {
c = new f(this, a), this.nsps[a] = c;
var d = this;
c.on("connecting", b), c.on("connect", function() {
c.id = d.engine.id
}), this.autoConnect && b()
}
return c
}, d.prototype.destroy = function(a) {
var b = l(this.connecting, a);
~b && this.connecting.splice(b, 1), this.connecting.length || this.close()
}, d.prototype.packet = function(a) {
k("writing packet %j", a);
var b = this;
b.encoding ? b.packetBuffer.push(a) : (b.encoding = !0, this.encoder.encode(a, function(c) {
for (var d = 0; d < c.length; d++) b.engine.write(c[d], a.options);
b.encoding = !1, b.processPacketQueue()
}))
}, d.prototype.processPacketQueue = function() {
if (this.packetBuffer.length > 0 && !this.encoding) {
var a = this.packetBuffer.shift();
this.packet(a)
}
}, d.prototype.cleanup = function() {
k("cleanup");
for (var a; a = this.subs.shift();) a.destroy();
this.packetBuffer = [], this.encoding = !1, this.lastPing = null, this.decoder.destroy()
}, d.prototype.close = d.prototype.disconnect = function() {
k("disconnect"), this.skipReconnect = !0, this.reconnecting = !1, "opening" == this.readyState && this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.engine && this.engine.close()
}, d.prototype.onclose = function(a) {
k("onclose"), this.cleanup(), this.backoff.reset(), this.readyState = "closed", this.emit("close", a), this._reconnection && !this.skipReconnect && this.reconnect()
}, d.prototype.reconnect = function() {
if (this.reconnecting || this.skipReconnect) return this;
var a = this;
if (this.backoff.attempts >= this._reconnectionAttempts) k("reconnect failed"), this.backoff.reset(), this.emitAll("reconnect_failed"), this.reconnecting = !1;
else {
var b = this.backoff.duration();
k("will wait %dms before reconnect attempt", b), this.reconnecting = !0;
var c = setTimeout(function() {
a.skipReconnect || (k("attempting reconnect"), a.emitAll("reconnect_attempt", a.backoff.attempts), a.emitAll("reconnecting", a.backoff.attempts), a.skipReconnect || a.open(function(b) {
b ? (k("reconnect attempt error"), a.reconnecting = !1, a.reconnect(), a.emitAll("reconnect_error", b.data)) : (k("reconnect success"), a.onreconnect())
}))
}, b);
this.subs.push({
destroy: function() {
clearTimeout(c)
}
})
}
}, d.prototype.onreconnect = function() {
var a = this.backoff.attempts;
this.reconnecting = !1, this.backoff.reset(), this.updateSocketIds(), this.emitAll("reconnect", a)
}
}, {
"./on": 33,
"./socket": 34,
backo2: 36,
"component-bind": 37,
"component-emitter": 38,
debug: 39,
"engine.io-client": 1,
indexof: 42,
"socket.io-parser": 47
}],
33: [function(a, b, c) {
function d(a, b, c) {
return a.on(b, c), {
destroy: function() {
a.removeListener(b, c)
}
}
}
b.exports = d
}, {}],
34: [function(a, b, c) {
function d(a, b) {
this.io = a, this.nsp = b, this.json = this, this.ids = 0, this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this.connected = !1, this.disconnected = !0, this.io.autoConnect && this.open()
}
var e = a("socket.io-parser"),
f = a("component-emitter"),
g = a("to-array"),
h = a("./on"),
i = a("component-bind"),
j = a("debug")("socket.io-client:socket"),
k = a("has-binary");
b.exports = c = d;
var l = {
connect: 1,
connect_error: 1,
connect_timeout: 1,
connecting: 1,
disconnect: 1,
error: 1,
reconnect: 1,
reconnect_attempt: 1,
reconnect_failed: 1,
reconnect_error: 1,
reconnecting: 1,
ping: 1,
pong: 1
},
m = f.prototype.emit;
f(d.prototype), d.prototype.subEvents = function() {
if (!this.subs) {
var a = this.io;
this.subs = [h(a, "open", i(this, "onopen")), h(a, "packet", i(this, "onpacket")), h(a, "close", i(this, "onclose"))]
}
}, d.prototype.open = d.prototype.connect = function() {
return this.connected ? this : (this.subEvents(), this.io.open(), "open" == this.io.readyState && this.onopen(), this.emit("connecting"), this)
}, d.prototype.send = function() {
var a = g(arguments);
return a.unshift("message"), this.emit.apply(this, a), this
}, d.prototype.emit = function(a) {
if (l.hasOwnProperty(a)) return m.apply(this, arguments), this;
var b = g(arguments),
c = e.EVENT;
k(b) && (c = e.BINARY_EVENT);
var d = {
type: c,
data: b
};
return d.options = {}, d.options.compress = !this.flags || !1 !== this.flags.compress, "function" == typeof b[b.length - 1] && (j("emitting packet with ack id %d", this.ids), this.acks[this.ids] = b.pop(), d.id = this.ids++), this.connected ? this.packet(d) : this.sendBuffer.push(d), delete this.flags, this
}, d.prototype.packet = function(a) {
a.nsp = this.nsp, this.io.packet(a)
}, d.prototype.onopen = function() {
j("transport is open - connecting"), "/" != this.nsp && this.packet({
type: e.CONNECT
})
}, d.prototype.onclose = function(a) {
j("close (%s)", a), this.connected = !1, this.disconnected = !0, delete this.id, this.emit("disconnect", a)
}, d.prototype.onpacket = function(a) {
if (a.nsp == this.nsp) switch (a.type) {
case e.CONNECT:
this.onconnect();
break;
case e.EVENT:
this.onevent(a);
break;
case e.BINARY_EVENT:
this.onevent(a);
break;
case e.ACK:
this.onack(a);
break;
case e.BINARY_ACK:
this.onack(a);
break;
case e.DISCONNECT:
this.ondisconnect();
break;
case e.ERROR:
this.emit("error", a.data)
}
}, d.prototype.onevent = function(a) {
var b = a.data || [];
j("emitting event %j", b), null != a.id && (j("attaching ack callback to event"), b.push(this.ack(a.id))), this.connected ? m.apply(this, b) : this.receiveBuffer.push(b)
}, d.prototype.ack = function(a) {
var b = this,
c = !1;
return function() {
if (!c) {
c = !0;
var d = g(arguments);
j("sending ack %j", d);
var f = k(d) ? e.BINARY_ACK : e.ACK;
b.packet({
type: f,
id: a,
data: d
})
}
}
}, d.prototype.onack = function(a) {
var b = this.acks[a.id];
"function" == typeof b ? (j("calling ack %s with %j", a.id, a.data), b.apply(this, a.data), delete this.acks[a.id]) : j("bad ack %s", a.id)
}, d.prototype.onconnect = function() {
this.connected = !0, this.disconnected = !1, this.emit("connect"), this.emitBuffered()
}, d.prototype.emitBuffered = function() {
var a;
for (a = 0; a < this.receiveBuffer.length; a++) m.apply(this, this.receiveBuffer[a]);
for (this.receiveBuffer = [], a = 0; a < this.sendBuffer.length; a++) this.packet(this.sendBuffer[a]);
this.sendBuffer = []
}, d.prototype.ondisconnect = function() {
j("server disconnect (%s)", this.nsp), this.destroy(), this.onclose("io server disconnect")
}, d.prototype.destroy = function() {
if (this.subs) {
for (var a = 0; a < this.subs.length; a++) this.subs[a].destroy();
this.subs = null
}
this.io.destroy(this)
}, d.prototype.close = d.prototype.disconnect = function() {
return this.connected && (j("performing disconnect (%s)", this.nsp), this.packet({
type: e.DISCONNECT
})), this.destroy(), this.connected && this.onclose("io client disconnect"), this
}, d.prototype.compress = function(a) {
return this.flags = this.flags || {}, this.flags.compress = a, this
}
}, {
"./on": 33,
"component-bind": 37,
"component-emitter": 38,
debug: 39,
"has-binary": 41,
"socket.io-parser": 47,
"to-array": 51
}],
35: [function(a, b, c) {
(function(c) {
function d(a, b) {
var d = a,
b = b || c.location;
null == a && (a = b.protocol + "//" + b.host), "string" == typeof a && ("/" == a.charAt(0) && (a = "/" == a.charAt(1) ? b.protocol + a : b.host + a), /^(https?|wss?):\/\//.test(a) || (f("protocol-less url %s", a), a = "undefined" != typeof b ? b.protocol + "//" + a : "https://" + a), f("parse %s", a), d = e(a)), d.port || (/^(http|ws)$/.test(d.protocol) ? d.port = "80" : /^(http|ws)s$/.test(d.protocol) && (d.port = "443")), d.path = d.path || "/";
var g = -1 !== d.host.indexOf(":"),
h = g ? "[" + d.host + "]" : d.host;
return d.id = d.protocol + "://" + h + ":" + d.port, d.href = d.protocol + "://" + h + (b && b.port == d.port ? "" : ":" + d.port), d
}
var e = a("parseuri"),
f = a("debug")("socket.io-client:url");
b.exports = d
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
debug: 39,
parseuri: 45
}],
36: [function(a, b, c) {
function d(a) {
a = a || {}, this.ms = a.min || 100, this.max = a.max || 1e4, this.factor = a.factor || 2, this.jitter = a.jitter > 0 && a.jitter <= 1 ? a.jitter : 0, this.attempts = 0
}
b.exports = d, d.prototype.duration = function() {
var a = this.ms * Math.pow(this.factor, this.attempts++);
if (this.jitter) {
var b = Math.random(),
c = Math.floor(b * this.jitter * a);
a = 0 == (1 & Math.floor(10 * b)) ? a - c : a + c
}
return 0 | Math.min(a, this.max)
}, d.prototype.reset = function() {
this.attempts = 0
}, d.prototype.setMin = function(a) {
this.ms = a
}, d.prototype.setMax = function(a) {
this.max = a
}, d.prototype.setJitter = function(a) {
this.jitter = a
}
}, {}],
37: [function(a, b, c) {
var d = [].slice;
b.exports = function(a, b) {
if ("string" == typeof b && (b = a[b]), "function" != typeof b) throw new Error("bind() requires a function");
var c = d.call(arguments, 2);
return function() {
return b.apply(a, c.concat(d.call(arguments)))
}
}
}, {}],
38: [function(a, b, c) {
function d(a) {
return a ? e(a) : void 0
}
function e(a) {
for (var b in d.prototype) a[b] = d.prototype[b];
return a
}
b.exports = d, d.prototype.on = d.prototype.addEventListener = function(a, b) {
return this._callbacks = this._callbacks || {}, (this._callbacks["$" + a] = this._callbacks["$" + a] || []).push(b), this
}, d.prototype.once = function(a, b) {
function c() {
this.off(a, c), b.apply(this, arguments)
}
return c.fn = b, this.on(a, c), this
}, d.prototype.off = d.prototype.removeListener = d.prototype.removeAllListeners = d.prototype.removeEventListener = function(a, b) {
if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;
var c = this._callbacks["$" + a];
if (!c) return this;
if (1 == arguments.length) return delete this._callbacks["$" + a], this;
for (var d, e = 0; e < c.length; e++)
if (d = c[e], d === b || d.fn === b) {
c.splice(e, 1);
break
}
return this
}, d.prototype.emit = function(a) {
this._callbacks = this._callbacks || {};
var b = [].slice.call(arguments, 1),
c = this._callbacks["$" + a];
if (c) {
c = c.slice(0);
for (var d = 0, e = c.length; e > d; ++d) c[d].apply(this, b)
}
return this
}, d.prototype.listeners = function(a) {
return this._callbacks = this._callbacks || {}, this._callbacks["$" + a] || []
}, d.prototype.hasListeners = function(a) {
return !!this.listeners(a).length
}
}, {}],
39: [function(a, b, c) {
arguments[4][17][0].apply(c, arguments)
}, {
"./debug": 40,
dup: 17
}],
40: [function(a, b, c) {
arguments[4][18][0].apply(c, arguments)
}, {
dup: 18,
ms: 44
}],
41: [function(a, b, c) {
(function(c) {
function d(a) {
function b(a) {
if (!a) return !1;
if (c.Buffer && c.Buffer.isBuffer && c.Buffer.isBuffer(a) || c.ArrayBuffer && a instanceof ArrayBuffer || c.Blob && a instanceof Blob || c.File && a instanceof File) return !0;
if (e(a)) {
for (var d = 0; d < a.length; d++)
if (b(a[d])) return !0
} else if (a && "object" == typeof a) {
a.toJSON && "function" == typeof a.toJSON && (a = a.toJSON());
for (var f in a)
if (Object.prototype.hasOwnProperty.call(a, f) && b(a[f])) return !0
}
return !1
}
return b(a)
}
var e = a("isarray");
b.exports = d
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
isarray: 43
}],
42: [function(a, b, c) {
arguments[4][23][0].apply(c, arguments)
}, {
dup: 23
}],
43: [function(a, b, c) {
arguments[4][24][0].apply(c, arguments)
}, {
dup: 24
}],
44: [function(a, b, c) {
arguments[4][25][0].apply(c, arguments)
}, {
dup: 25
}],
45: [function(a, b, c) {
arguments[4][28][0].apply(c, arguments)
}, {
dup: 28
}],
46: [function(a, b, c) {
(function(b) {
var d = a("isarray"),
e = a("./is-buffer");
c.deconstructPacket = function(a) {
function b(a) {
if (!a) return a;
if (e(a)) {
var f = {
_placeholder: !0,
num: c.length
};
return c.push(a), f
}
if (d(a)) {
for (var g = new Array(a.length), h = 0; h < a.length; h++) g[h] = b(a[h]);
return g
}
if ("object" == typeof a && !(a instanceof Date)) {
var g = {};
for (var i in a) g[i] = b(a[i]);
return g
}
return a
}
var c = [],
f = a.data,
g = a;
return g.data = b(f), g.attachments = c.length, {
packet: g,
buffers: c
}
}, c.reconstructPacket = function(a, b) {
function c(a) {
if (a && a._placeholder) {
var e = b[a.num];
return e
}
if (d(a)) {
for (var f = 0; f < a.length; f++) a[f] = c(a[f]);
return a
}
if (a && "object" == typeof a) {
for (var g in a) a[g] = c(a[g]);
return a
}
return a
}
return a.data = c(a.data), a.attachments = void 0, a
}, c.removeBlobs = function(a, c) {
function f(a, i, j) {
if (!a) return a;
if (b.Blob && a instanceof Blob || b.File && a instanceof File) {
g++;
var k = new FileReader;
k.onload = function() {
j ? j[i] = this.result : h = this.result, --g || c(h)
}, k.readAsArrayBuffer(a)
} else if (d(a))
for (var l = 0; l < a.length; l++) f(a[l], l, a);
else if (a && "object" == typeof a && !e(a))
for (var m in a) f(a[m], m, a)
}
var g = 0,
h = a;
f(h), g || c(h)
}
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {
"./is-buffer": 48,
isarray: 43
}],
47: [function(a, b, c) {
function d() {}
function e(a) {
var b = "",
d = !1;
return b += a.type, (c.BINARY_EVENT == a.type || c.BINARY_ACK == a.type) && (b += a.attachments, b += "-"), a.nsp && "/" != a.nsp && (d = !0, b += a.nsp), null != a.id && (d && (b += ",", d = !1), b += a.id), null != a.data && (d && (b += ","), b += l.stringify(a.data)), k("encoded %j as %s", a, b), b
}
function f(a, b) {
function c(a) {
var c = n.deconstructPacket(a),
d = e(c.packet),
f = c.buffers;
f.unshift(d), b(f)
}
n.removeBlobs(a, c)
}
function g() {
this.reconstructor = null
}
function h(a) {
var b = {},
d = 0;
if (b.type = Number(a.charAt(0)), null == c.types[b.type]) return j();
if (c.BINARY_EVENT == b.type || c.BINARY_ACK == b.type) {
for (var e = "";
"-" != a.charAt(++d) && (e += a.charAt(d), d != a.length););
if (e != Number(e) || "-" != a.charAt(d)) throw new Error("Illegal attachments");
b.attachments = Number(e)
}
if ("/" == a.charAt(d + 1))
for (b.nsp = ""; ++d;) {
var f = a.charAt(d);
if ("," == f) break;
if (b.nsp += f, d == a.length) break
} else b.nsp = "/";
var g = a.charAt(d + 1);
if ("" !== g && Number(g) == g) {
for (b.id = ""; ++d;) {
var f = a.charAt(d);
if (null == f || Number(f) != f) {
--d;
break
}
if (b.id += a.charAt(d), d == a.length) break
}
b.id = Number(b.id)
}
if (a.charAt(++d)) try {
b.data = l.parse(a.substr(d))
} catch (h) {
return j()
}
return k("decoded %s as %j", a, b), b
}
function i(a) {
this.reconPack = a, this.buffers = []
}
function j(a) {
return {
type: c.ERROR,
data: "parser error"
}
}
var k = a("debug")("socket.io-parser"),
l = a("json3"),
m = (a("isarray"), a("component-emitter")),
n = a("./binary"),
o = a("./is-buffer");
c.protocol = 4, c.types = ["CONNECT", "DISCONNECT", "EVENT", "BINARY_EVENT", "ACK", "BINARY_ACK", "ERROR"], c.CONNECT = 0, c.DISCONNECT = 1, c.EVENT = 2, c.ACK = 3, c.ERROR = 4, c.BINARY_EVENT = 5, c.BINARY_ACK = 6, c.Encoder = d, c.Decoder = g, d.prototype.encode = function(a, b) {
if (k("encoding packet %j", a), c.BINARY_EVENT == a.type || c.BINARY_ACK == a.type) f(a, b);
else {
var d = e(a);
b([d])
}
}, m(g.prototype), g.prototype.add = function(a) {
var b;
if ("string" == typeof a) b = h(a), c.BINARY_EVENT == b.type || c.BINARY_ACK == b.type ? (this.reconstructor = new i(b), 0 === this.reconstructor.reconPack.attachments && this.emit("decoded", b)) : this.emit("decoded", b);
else {
if (!o(a) && !a.base64) throw new Error("Unknown type: " + a);
if (!this.reconstructor) throw new Error("got binary data when not reconstructing a packet");
b = this.reconstructor.takeBinaryData(a), b && (this.reconstructor = null, this.emit("decoded", b))
}
}, g.prototype.destroy = function() {
this.reconstructor && this.reconstructor.finishedReconstruction()
}, i.prototype.takeBinaryData = function(a) {
if (this.buffers.push(a), this.buffers.length == this.reconPack.attachments) {
var b = n.reconstructPacket(this.reconPack, this.buffers);
return this.finishedReconstruction(), b
}
return null
}, i.prototype.finishedReconstruction = function() {
this.reconPack = null, this.buffers = []
}
}, {
"./binary": 46,
"./is-buffer": 48,
"component-emitter": 49,
debug: 39,
isarray: 43,
json3: 50
}],
48: [function(a, b, c) {
(function(a) {
function c(b) {
return a.Buffer && a.Buffer.isBuffer(b) || a.ArrayBuffer && b instanceof ArrayBuffer
}
b.exports = c
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {}],
49: [function(a, b, c) {
arguments[4][15][0].apply(c, arguments)
}, {
dup: 15
}],
50: [function(b, c, d) {
(function(b) {
(function() {
function e(a, b) {
function c(a) {
if (c[a] !== q) return c[a];
var e;
if ("bug-string-char-index" == a) e = "a" != "a" [0];
else if ("json" == a) e = c("json-stringify") && c("json-parse");
else {
var g, h = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
if ("json-stringify" == a) {
var i = b.stringify,
k = "function" == typeof i && t;
if (k) {
(g = function() {
return 1
}).toJSON = g;
try {
k = "0" === i(0) && "0" === i(new d) && '""' == i(new f) && i(s) === q && i(q) === q && i() === q && "1" === i(g) && "[1]" == i([g]) && "[null]" == i([q]) && "null" == i(null) && "[null,null,null]" == i([q, s, null]) && i({
a: [g, !0, !1, null, "\x00\b\n\f\r "]
}) == h && "1" === i(null, g) && "[\n 1,\n 2\n]" == i([1, 2], null, 1) && '"-271821-04-20T00:00:00.000Z"' == i(new j(-864e13)) && '"+275760-09-13T00:00:00.000Z"' == i(new j(864e13)) && '"-000001-01-01T00:00:00.000Z"' == i(new j(-621987552e5)) && '"1969-12-31T23:59:59.999Z"' == i(new j(-1))
} catch (l) {
k = !1
}
}
e = k
}
if ("json-parse" == a) {
var m = b.parse;
if ("function" == typeof m) try {
if (0 === m("0") && !m(!1)) {
g = m(h);
var n = 5 == g.a.length && 1 === g.a[0];
if (n) {
try {
n = !m('" "')
} catch (l) {}
if (n) try {
n = 1 !== m("01")
} catch (l) {}
if (n) try {
n = 1 !== m("1.")
} catch (l) {}
}
}
} catch (l) {
n = !1
}
e = n
}
}
return c[a] = !!e
}
a || (a = i.Object()), b || (b = i.Object());
var d = a.Number || i.Number,
f = a.String || i.String,
h = a.Object || i.Object,
j = a.Date || i.Date,
k = a.SyntaxError || i.SyntaxError,
l = a.TypeError || i.TypeError,
m = a.Math || i.Math,
n = a.JSON || i.JSON;
"object" == typeof n && n && (b.stringify = n.stringify, b.parse = n.parse);
var o, p, q, r = h.prototype,
s = r.toString,
t = new j(-0xc782b5b800cec);
try {
t = -109252 == t.getUTCFullYear() && 0 === t.getUTCMonth() && 1 === t.getUTCDate() && 10 == t.getUTCHours() && 37 == t.getUTCMinutes() && 6 == t.getUTCSeconds() && 708 == t.getUTCMilliseconds()
} catch (u) {}
if (!c("json")) {
var v = "[object Function]",
w = "[object Date]",
x = "[object Number]",
y = "[object String]",
z = "[object Array]",
A = "[object Boolean]",
B = c("bug-string-char-index");
if (!t) var C = m.floor,
D = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
E = function(a, b) {
return D[b] + 365 * (a - 1970) + C((a - 1969 + (b = +(b > 1))) / 4) - C((a - 1901 + b) / 100) + C((a - 1601 + b) / 400)
};
if ((o = r.hasOwnProperty) || (o = function(a) {
var b, c = {};
return (c.__proto__ = null, c.__proto__ = {
toString: 1
}, c).toString != s ? o = function(a) {
var b = this.__proto__,
c = a in (this.__proto__ = null, this);
return this.__proto__ = b, c
} : (b = c.constructor, o = function(a) {
var c = (this.constructor || b).prototype;
return a in this && !(a in c && this[a] === c[a])
}), c = null, o.call(this, a)
}), p = function(a, b) {
var c, d, e, f = 0;
(c = function() {
this.valueOf = 0
}).prototype.valueOf = 0, d = new c;
for (e in d) o.call(d, e) && f++;
return c = d = null, f ? p = 2 == f ? function(a, b) {
var c, d = {},
e = s.call(a) == v;
for (c in a) e && "prototype" == c || o.call(d, c) || !(d[c] = 1) || !o.call(a, c) || b(c)
} : function(a, b) {
var c, d, e = s.call(a) == v;
for (c in a) e && "prototype" == c || !o.call(a, c) || (d = "constructor" === c) || b(c);
(d || o.call(a, c = "constructor")) && b(c)
} : (d = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"], p = function(a, b) {
var c, e, f = s.call(a) == v,
h = !f && "function" != typeof a.constructor && g[typeof a.hasOwnProperty] && a.hasOwnProperty || o;
for (c in a) f && "prototype" == c || !h.call(a, c) || b(c);
for (e = d.length; c = d[--e]; h.call(a, c) && b(c));
}), p(a, b)
}, !c("json-stringify")) {
var F = {
92: "\\\\",
34: '\\"',
8: "\\b",
12: "\\f",
10: "\\n",
13: "\\r",
9: "\\t"
},
G = "000000",
H = function(a, b) {
return (G + (b || 0)).slice(-a)
},
I = "\\u00",
J = function(a) {
for (var b = '"', c = 0, d = a.length, e = !B || d > 10, f = e && (B ? a.split("") : a); d > c; c++) {
var g = a.charCodeAt(c);
switch (g) {
case 8:
case 9:
case 10:
case 12:
case 13:
case 34:
case 92:
b += F[g];
break;
default:
if (32 > g) {
b += I + H(2, g.toString(16));
break
}
b += e ? f[c] : a.charAt(c)
}
}
return b + '"'
},
K = function(a, b, c, d, e, f, g) {
var h, i, j, k, m, n, r, t, u, v, B, D, F, G, I, L;
try {
h = b[a]
} catch (M) {}
if ("object" == typeof h && h)
if (i = s.call(h), i != w || o.call(h, "toJSON")) "function" == typeof h.toJSON && (i != x && i != y && i != z || o.call(h, "toJSON")) && (h = h.toJSON(a));
else if (h > -1 / 0 && 1 / 0 > h) {
if (E) {
for (m = C(h / 864e5), j = C(m / 365.2425) + 1970 - 1; E(j + 1, 0) <= m; j++);
for (k = C((m - E(j, 0)) / 30.42); E(j, k + 1) <= m; k++);
m = 1 + m - E(j, k), n = (h % 864e5 + 864e5) % 864e5, r = C(n / 36e5) % 24, t = C(n / 6e4) % 60, u = C(n / 1e3) % 60, v = n % 1e3
} else j = h.getUTCFullYear(), k = h.getUTCMonth(), m = h.getUTCDate(), r = h.getUTCHours(), t = h.getUTCMinutes(), u = h.getUTCSeconds(), v = h.getUTCMilliseconds();
h = (0 >= j || j >= 1e4 ? (0 > j ? "-" : "+") + H(6, 0 > j ? -j : j) : H(4, j)) + "-" + H(2, k + 1) + "-" + H(2, m) + "T" + H(2, r) + ":" + H(2, t) + ":" + H(2, u) + "." + H(3, v) + "Z"
} else h = null;
if (c && (h = c.call(b, a, h)), null === h) return "null";
if (i = s.call(h), i == A) return "" + h;
if (i == x) return h > -1 / 0 && 1 / 0 > h ? "" + h : "null";
if (i == y) return J("" + h);
if ("object" == typeof h) {
for (G = g.length; G--;)
if (g[G] === h) throw l();
if (g.push(h), B = [], I = f, f += e, i == z) {
for (F = 0, G = h.length; G > F; F++) D = K(F, h, c, d, e, f, g), B.push(D === q ? "null" : D);
L = B.length ? e ? "[\n" + f + B.join(",\n" + f) + "\n" + I + "]" : "[" + B.join(",") + "]" : "[]"
} else p(d || h, function(a) {
var b = K(a, h, c, d, e, f, g);
b !== q && B.push(J(a) + ":" + (e ? " " : "") + b)
}), L = B.length ? e ? "{\n" + f + B.join(",\n" + f) + "\n" + I + "}" : "{" + B.join(",") + "}" : "{}";
return g.pop(), L
}
};
b.stringify = function(a, b, c) {
var d, e, f, h;
if (g[typeof b] && b)
if ((h = s.call(b)) == v) e = b;
else if (h == z) {
f = {};
for (var i, j = 0, k = b.length; k > j; i = b[j++], h = s.call(i), (h == y || h == x) && (f[i] = 1));
}
if (c)
if ((h = s.call(c)) == x) {
if ((c -= c % 1) > 0)
for (d = "", c > 10 && (c = 10); d.length < c; d += " ");
} else h == y && (d = c.length <= 10 ? c : c.slice(0, 10));
return K("", (i = {}, i[""] = a, i), e, f, d, "", [])
}
}
if (!c("json-parse")) {
var L, M, N = f.fromCharCode,
O = {
92: "\\",
34: '"',
47: "/",
98: "\b",
116: " ",
110: "\n",
102: "\f",
114: "\r"
},
P = function() {
throw L = M = null, k()
},
Q = function() {
for (var a, b, c, d, e, f = M, g = f.length; g > L;) switch (e = f.charCodeAt(L)) {
case 9:
case 10:
case 13:
case 32:
L++;
break;
case 123:
case 125:
case 91:
case 93:
case 58:
case 44:
return a = B ? f.charAt(L) : f[L], L++, a;
case 34:
for (a = "@", L++; g > L;)
if (e = f.charCodeAt(L), 32 > e) P();
else if (92 == e) switch (e = f.charCodeAt(++L)) {
case 92:
case 34:
case 47:
case 98:
case 116:
case 110:
case 102:
case 114:
a += O[e], L++;
break;
case 117:
for (b = ++L, c = L + 4; c > L; L++) e = f.charCodeAt(L), e >= 48 && 57 >= e || e >= 97 && 102 >= e || e >= 65 && 70 >= e || P();
a += N("0x" + f.slice(b, L));
break;
default:
P()
} else {
if (34 == e) break;
for (e = f.charCodeAt(L), b = L; e >= 32 && 92 != e && 34 != e;) e = f.charCodeAt(++L);
a += f.slice(b, L)
}
if (34 == f.charCodeAt(L)) return L++, a;
P();
default:
if (b = L, 45 == e && (d = !0, e = f.charCodeAt(++L)), e >= 48 && 57 >= e) {
for (48 == e && (e = f.charCodeAt(L + 1), e >= 48 && 57 >= e) && P(), d = !1; g > L && (e = f.charCodeAt(L), e >= 48 && 57 >= e); L++);
if (46 == f.charCodeAt(L)) {
for (c = ++L; g > c && (e = f.charCodeAt(c), e >= 48 && 57 >= e); c++);
c == L && P(), L = c
}
if (e = f.charCodeAt(L), 101 == e || 69 == e) {
for (e = f.charCodeAt(++L), (43 == e || 45 == e) && L++, c = L; g > c && (e = f.charCodeAt(c), e >= 48 && 57 >= e); c++);
c == L && P(), L = c
}
return +f.slice(b, L)
}
if (d && P(), "true" == f.slice(L, L + 4)) return L += 4, !0;
if ("false" == f.slice(L, L + 5)) return L += 5, !1;
if ("null" == f.slice(L, L + 4)) return L += 4, null;
P()
}
return "$"
},
R = function(a) {
var b, c;
if ("$" == a && P(), "string" == typeof a) {
if ("@" == (B ? a.charAt(0) : a[0])) return a.slice(1);
if ("[" == a) {
for (b = []; a = Q(), "]" != a; c || (c = !0)) c && ("," == a ? (a = Q(), "]" == a && P()) : P()), "," == a && P(), b.push(R(a));
return b
}
if ("{" == a) {
for (b = {}; a = Q(), "}" != a; c || (c = !0)) c && ("," == a ? (a = Q(), "}" == a && P()) : P()), ("," == a || "string" != typeof a || "@" != (B ? a.charAt(0) : a[0]) || ":" != Q()) && P(), b[a.slice(1)] = R(Q());
return b
}
P()
}
return a
},
S = function(a, b, c) {
var d = T(a, b, c);
d === q ? delete a[b] : a[b] = d
},
T = function(a, b, c) {
var d, e = a[b];
if ("object" == typeof e && e)
if (s.call(e) == z)
for (d = e.length; d--;) S(e, d, c);
else p(e, function(a) {
S(e, a, c)
});
return c.call(a, b, e)
};
b.parse = function(a, b) {
var c, d;
return L = 0, M = "" + a, c = R(Q()), "$" != Q() && P(), L = M = null, b && s.call(b) == v ? T((d = {}, d[""] = c, d), "", b) : c
}
}
}
return b.runInContext = e, b
}
var f = "function" == typeof a && a.amd,
g = {
"function": !0,
object: !0
},
h = g[typeof d] && d && !d.nodeType && d,
i = g[typeof window] && window || this,
j = h && g[typeof c] && c && !c.nodeType && "object" == typeof b && b;
if (!j || j.global !== j && j.window !== j && j.self !== j || (i = j), h && !f) e(i, h);
else {
var k = i.JSON,
l = i.JSON3,
m = !1,
n = e(i, i.JSON3 = {
noConflict: function() {
return m || (m = !0, i.JSON = k, i.JSON3 = l, k = l = null), n
}
});
i.JSON = {
parse: n.parse,
stringify: n.stringify
}
}
f && a(function() {
return n
})
}).call(this)
}).call(this, "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : {})
}, {}],
51: [function(a, b, c) {
function d(a, b) {
var c = [];
b = b || 0;
for (var d = b || 0; d < a.length; d++) c[d - b] = a[d];
return c
}
b.exports = d
}, {}]
}, {}, [31])(31)
}), this.Templates = this.Templates || {}, this.Templates["_movie-detail"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="fixed-header">\n <div class="title">{{ item.title }}</div>\n <div class="meta"><span class="meta-item cc"><i class="icon icon-cc-black black"></i><i class="icon icon-cc-white white"></i></span><span class="meta-item hd"><i class="icon icon-hd-black black"></i><i class="icon icon-hd-white white"></i></span></div><a ng-if="item.ppv &amp;&amp; !item._extra.subscribed" ng-click="buy(item)" class="price">{{ item.ppvPrice / 1000 }}.000<i class="icon icon-d-black black"></i><i class="icon icon-d-white white"></i></a>\n <div ng-if="item.ppv &amp;&amp; item._extra.subscribed" ng-show="item._extra.hourLeft &gt;= 0" class="price">{{ item._extra.hourLeft }}:{{ item._extra.minuteLeft }}</div>\n <div ng-click="buy(item)" class="btn-play"></div>\n</div>\n<div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n</div>\n<div ng-style="{\'background-image\': \'url(\' + item.backdrop + \')\'}" style="background-size: cover;" class="bn parallax-item"></div><i ng-click="buy(item)" class="icon icon-play-white play parallax-item"></i>\n<div bg-color="item.color.thumbnail" class="content">\n <div class="inner">\n <div class="blocker"></div>\n <div class="tab-info">\n <h2 class="main-title">{{ item.knownAs }}</h2><a ng-if="item.ppv &amp;&amp; !item._extra.subscribed" ng-click="buy(item)" class="price">{{ item.ppvPrice / 1000 }}.000<i class="icon icon-d-black black"></i><i class="icon icon-d-white white"></i></a>\n <div ng-if="item.ppv &amp;&amp; item._extra.subscribed" ng-show="item._extra.hourLeft &gt;= 0" class="price">{{ item._extra.hourLeft }}:{{ item._extra.minuteLeft }}</div>\n <div class="meta"><span class="meta-item cc"><i ng-class="item.color.thumbnail.contrast == 1 ? &quot;icon-cc-black&quot;:&quot;icon-cc-white&quot;" class="icon"></i></span><span class="meta-item hd"><i ng-class="item.color.thumbnail.contrast == 1 ? &quot;icon-hd-black&quot;:&quot;icon-hd-white&quot;" class="iconi icon"></i><i class="icon icon-hd-white white"></i></span><a ng-show="item._extra &amp;&amp; item._extra.id &amp;&amp; !item._extra.favorite" ng-if="user" ng-click="addFavorite(item)" class="meta-item add"><i ng-class="item.color.thumbnail.contrast == 1 ? &quot;icon-watchlater-black&quot;:&quot;icon-watchlater-white&quot;" class="iconi icon"></i></a><a ng-show="item._extra &amp;&amp; item._extra.id &amp;&amp; item._extra.favorite" ng-if="user" ng-click="removeFavorite(item)" class="meta-item remove"><i ng-class="item.color.thumbnail.contrast == 1 ? &quot;icon-removewatch-black&quot;:&quot;icon-removewatch-white&quot;" class="iconi icon"></i></a></div>\n <div class="clear"></div>\n <div class="description">{{ item.descriptionLong }}</div>\n <div ng-show="item._extra &amp;&amp; item._extra.trailer.length" class="trailer">\n <div class="title">Trailer</div>\n <div class="videos">\n <div ng-style="{\'background-image\': \'url(\' + video.thumbnail + \')\'}" style="background-size: cover;" ng-repeat="video in item._extra.trailer" ng-click="playTrailer(item._extra.trailer)" class="video"><i class="icon icon-play-white"></i></div>\n </div>\n </div>\n <div class="info">\n <div class="title">Đội ngũ sản xuất</div>\n <div class="row">\n <div class="label">Diễn viên</div>\n <div class="value"><span ng-repeat="info in item.topCast">{{ info.name }}<br/></span></div>\n </div>\n <div class="row">\n <div class="label">Đạo diễn</div>\n <div class="value"><span ng-repeat="info in item.director">{{ info.name }}<br/></span></div>\n </div>\n </div>\n <div class="info">\n <div class="title">Thông tin</div>\n <div class="row">\n <div class="label">Năm</div>\n <div class="value">{{ item.releaseYear }}</div>\n </div>\n <div class="row">\n <div class="label">Thời lượng</div>\n <div class="value">{{ item.runTime }} phút</div>\n </div>\n <div class="row">\n <div class="label">Thể loại</div>\n <div class="value"><span ng-repeat="info in item.genres">{{ info.name }}<br/></span></div>\n </div>\n </div>\n <div class="clear"></div>\n <div ng-show="item._extra &amp;&amp; item._extra.related.length" class="related">\n <div class="title">Phim liên quan</div>\n <div class="relates">\n <div ng-repeat="relate in item._extra.related" title="{{ relate.title }}" ng-click="viewRelated(item, relate)" class="relate"><img ng-src="{{ relate.poster }}" alt=""/></div>\n </div>\n </div>\n </div>\n <div style="display: none" class="tab-review">\n <div class="rating">\n <div class="main">7.8</div>\n <div class="on">/ 10</div>\n <div class="number">20000 người bình chọn</div>\n </div>\n <div class="text">\n <div class="title">Review của fim</div>\n <div class="description">Bộ phim là án văn hay</div>\n </div>\n <div class="reviews">\n <div class="review">\n <div class="avatar image-responsive"><img src="img/img-ava1.png" alt=""/></div>\n <div class="name">Dodge</div>\n <div class="description">Wow</div>\n </div>\n <div class="review">\n <div class="avatar image-responsive"><img src="img/img-ava2.png" alt=""/></div>\n <div class="name">Dodge</div>\n <div class="description">Dis movie</div>\n </div>\n </div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["_movie-list"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="dummy"></div><img ng-src="{{ item.poster }}" alt="" loading-image="" class="img"/>\n<div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n</div>\n<div style="background: url(\'{{ item.poster }}\'); background-size: cover;" class="overlay">\n <!-- <i class="icon icon-plus-white add"></i>--><i class="icon icon-play-white play"></i>\n <div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n </div>\n <div class="content">\n <div class="title">\n <div class="title-wrapper">\n <h2 class="inner">{{ item.knownAs }} ({{ item.releaseYear }})</h2>\n </div>\n </div>\n <div class="meta"><span class="cc"><i class="icon icon-cc-white"></i></span><span class="hd"><i class="icon icon-hd-white"></i></span></div>\n <div class="description">\n <div class="inner">{{ item.descriptionShort }}</div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates._package = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.package}" class="popup-wrapper popup-payment">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div loading-container="data.packageLoading" class="popup">\n <div class="main-title">CHỌN GÓI THUÊ BAO</div>\n <div class="items">\n <div ng-show="data.packageLoading &amp;&amp; data.packages.length === 0" class="popup-item">\n <div class="popup-title"> </div>\n <div class="popup-content">\n <div class="inner">\n <div class="main"> </div>\n </div>\n </div>\n </div>\n <div ng-show="!data.packageLoading &amp;&amp; data.packages.length !== 0" ng-repeat="item in data.packages" ng-click="buyPackage(item)" class="popup-item">\n <div class="popup-title">{{ item.packageName }}\n <p class="detail text-small">{{item.detail}}</p>\n </div>\n <div class="popup-content">\n <div class="inner">\n <div class="main">{{ item.price.default / 1000 }}</div>\n <div class="d">vnd</div>\n <div class="z">.000</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["_payment-add"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.method}" class="popup-wrapper popup-method">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div class="popup">\n <div class="main-title">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC THANH TOÁN}\n other {THAY ĐỔI PHƯƠNG THỨC THANH TOÁN}\n }}\n </div>\n <div ng-show="data.methods.length" class="items selectedItems">\n <div ng-repeat="item in data.methods" ng-hide="item.hidden" class="popup-item active pointer">\n <div ng-click="showModal(item.unsync); data.unsync = item;">\n <div class="icons"><img src="{{item.image}}" alt=""/></div>\n <div class="popup-title">\n <div class="inner">{{item.title}}<br/><span class="text">{{ item.detail.mobile }}</span></div>\n </div>\n </div><a ng-class="{active: settingModel.method === item.id}" title="Chọn mặc định" ng-click="settingModel.method = item.id" class="default"></a>\n </div>\n </div>\n <div class="items"><a ng-click="showModal(\'momo\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-momo.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo</div>\n </div></a>\n <!--a.popup-item(ng-click="showModal(\'creditcard\')", ng-if="!isAdded(\'CREDITCARD\')")-->\n <!-- //.icons-->\n <!-- // img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng quốc tế--><a ng-click="showModal(\'smartlink\')" ng-if="!isAdded(\'SMARTLINK\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-smartlink.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.momo}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMomo()" loading-container="data.formLoading" class="popup active">\n <div class="header"><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)" ng-if="data.step === 1">Trở lại</b><b ng-click="data.step = 1" ng-if="data.step === 2">Trở lại</b></a><i class="icon icon-momo"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số điện thoại bạn đã dùng để đăng kí MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.phoneNumber" placeholder="Nhập số điện thoại" focus-me="modal.momo &amp;&amp; data.step === 1"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số mã OTP bạn vừa nhận được trong app MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.otp" placeholder="Nhập OTP" focus-me="modal.momo &amp;&amp; data.step === 2"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <!--.half-->\n <!-- button.btn(type=\'button\', ng-click=\'data.step = 1\') Quay lại-->\n <!--.half-->\n <button type="submit" ng-class="{disabled: !momoModel.otp}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.creditcard}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitCreditcard()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.smartlink}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitSmartlink()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">{{ data.unsync.detail.mobile }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-danger">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.buying}" class="popup-wrapper popup-buying popup-white review">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="content clear">\n <div class="image image-responsive"><img ng-src="{{ data.buying.poster }}" alt="{{ data.buying.title }}"/></div>\n <div class="panel">\n <div class="main-title">{{ data.buying.title }}</div>\n <div class="title">{{ data.buying.knownAs }}</div>\n <div class="genre"><span ng-repeat="info in data.buying.genres">{{ info.name }}<br/></span></div>\n <div class="time">{{ data.buying.hour }} giờ {{ data.buying.minute }} phút</div>\n </div>\n </div><a ng-click="showModal(&quot;buyingConfirm&quot;)" class="action btn btn-danger"><strong>THUÊ ({{ data.buying.ppvPrice / 1000 }}.000đ)</strong></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.buyingConfirm}" class="popup-wrapper popup-buying popup-white confirm">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="main-title">XÁC NHẬN</div>\n <div class="description">Bạn muốn thuê phim "{{ data.buying.title }}" trong 48 giờ với giá&nbsp<strong>{{ data.buying.ppvPrice / 1000 }}.000đ</strong> và thanh toán qua tài khoản</div>\n <div class="method clear">\n <div ng-if="data.method.methodType === \'MOMO\'">\n <div class="icons"><img src="images/icon-momo.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo<br/><span class="text">{{ data.method.detail.mobile }}</span></div>\n </div>\n </div>\n <!--div(ng-if="data.method.methodType === \'CREDITCARD\'")-->\n <!-- .icons-->\n <!-- img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng-->\n <div ng-if="data.method.methodType === \'SMARTLINK\'">\n <div class="icons"><img src="images/icon-smartlink.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div>\n </div>\n </div>\n <div class="action"><a ng-click="closeModal()" class="btn">Huỷ</a><a ng-click="submitBuyItem(data.buying)" class="btn">Thanh Toán</a></div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["_profile-nav"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<!-- <div class="avatar image-responsive">-->\n<!-- <img src="images/img-ava1.png" alt=""/>-->\n<!-- </div>-->\n<div class="name">{{ user.name }}</div>\n<ul class="text">\n <li><a ui-sref="base.profile" ui-sref-active-eq="active">TÀI KHOẢN</a></li>\n <li><a ui-sref="base.profile.password" ui-sref-active-eq="active">ĐỔI MẬT KHẨU</a></li>\n <li><a ui-sref="base.profile.history" ui-sref-active-eq="active">LỊCH SỬ GIAO DỊCH</a></li>\n <li><a ng-click="logout()">ĐĂNG XUẤT</a></li>\n</ul>';
return __p
}, this.Templates.activate = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="center">\n <div class="center-wrapper">\n <form name="formLogin" ng-submit="submitCode(formLogin)" ng-show="activeModal.name ==&quot;inputCode&quot;" class="form-code center-content">\n <div class="header">Kết Nối Với Thiết Bị</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="activeModal.inputCode" placeholder="Nhập mã kích hoạt"/>\n </div>\n </div>\n <div class="footer">\n <div class="form-group">\n <button type="submit" class="btn">Xác nhận</button>\n </div>\n </div>\n </form>\n <form name="formLogin" ng-submit="submitPassword(formLogin)" ng-show="activeModal.name ==&quot;password&quot;" class="form-code center-content">\n <div class="header accuracy"><a><i class="icon icon-rectangle366"></i><span ng-click="activeModal.name = &quot;inputCode&quot; ">Trở lại</span></a>Xin Chào, {{activeModal.userName}}</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="activeModal.password" placeholder="Nhập mật khẩu" ng-if="activeModal.isLocalAcc"/>\n <p ng-if="activeModal.isFbAcc">Bạn cần xác thực để tiếp tục.</p>\n </div>\n </div>\n <div class="footer">\n <div class="form-group">\n <button type="submit" class="btn">Xác nhận</button>\n </div>\n </div>\n </form>\n <div ng-show="activeModal.name ==&quot;loading&quot;" class="center-content loading"><img src="/images/loading.gif"/></div>\n <form name="formLogin" ng-show="activeModal.name ==&quot;success&quot;" class="form-code center-content">\n <div class="header">Chúc Mừng!</div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <p>Kết nối thành công</p>\n </div>\n <div class="footer">\n <div class="form-group"><a href="/" class="btn">Đóng</a></div>\n </div>\n </form>\n </div>\n</div>';
return __p
}, this.Templates.archives = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="movie-list-area archives wrapper">\n <div class="container">\n <div ng-show="!data.hideTitle" class="block-title">{{ pageTitle }}</div>\n <div ng-show="data.tab" class="tabs"><a ui-sref="base.favorite" ng-class="{active: data.tab === \'favorite\'}">XEM SAU</a><a ui-sref="base.recent" ng-class="{active: data.tab === \'recent\'}">ĐÃ THUÊ</a></div>\n <hr/>\n <div loading-container="data.formLoading" class="items no-slider">\n <div ng-click="showModal(\'single\', {index: $index})" movie-hover="" ng-repeat="item in data.items" class="item">\n <div>\n <div class="dummy"></div><img ng-src="{{ item.poster }}" alt="" loading-image="" class="img"/>\n <div ng-if="item.badgeText" class="band">\n <div class="text">{{ item.badgeText }}</div>\n </div>\n </div>\n </div>\n <div ng-if="data.items.length === 0 &amp;&amp; !data.formLoading" class="item empty">KHÔNG CÓ KẾT QUẢ</div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.single}" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="data.items" class="items owl-carousel owl-theme">\n <div color-background="item.thumbnail" class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div ng-show="data.pagination.length &gt; 1" class="pagination">\n <hr/>\n <div class="items">\n <div ng-repeat="item in data.pagination" class="item"><span ng-if="item.current" class="current">{{ $index + 1 }}</span><a ui-sref="base.favorite(item.url)" ng-if="!item.current &amp;&amp; $state.is(\'base.favorite\')">{{ $index + 1 }}</a><a ui-sref="base.menu(item.url)" ng-if="!item.current &amp;&amp; $state.is(\'base.menu\')">{{ $index + 1 }}</a><a ui-sref="base.recent(item.url)" ng-if="!item.current &amp;&amp; $state.is(\'base.recent\')">{{ $index + 1 }}</a><a ui-sref="base.search(item.url)" ng-if="!item.current &amp;&amp; $state.is(\'base.search\')">{{ $index + 1 }}</a></div>\n </div>\n</div>\n<div ng-include="\'templates/_payment-add.html\'" ng-controller="PaymentCtrl"></div>';
return __p
}, this.Templates["header._auth"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="container">\n <div ng-click="closeModal()" class="bg"></div>\n <form name="formLogin" ng-submit="submitLogin(formLogin)" ng-class="{active: modal.login === \'login\'}" loading-container="data.formLoading" class="popup">\n <div class="header">ĐĂNG NHẬP<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.login.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'login\'"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.login.password" placeholder="Mật khẩu"/>\n </div>\n <div class="form-group text text-right"><a ng-click="showModal(\'register\', true)">Quên mật khẩu?</a></div>\n <div class="form-group">\n <button type="submit" class="btn">Đăng nhập</button>\n </div>\n <div class="form-group">\n <button type="button" ng-click="submitFacebook()" class="btn btn-facebook"><i class="icon icon-facebook"></i> Đăng nhập với Facebook</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'register\')">Chưa có tài khoản ?</a></div>\n </form>\n <form name="formRegister" ng-submit="submitRegister(formRegister)" ng-class="{active: modal.login === \'register\'}" loading-container="data.formLoading" class="popup">\n <div class="header"><span ng-show="!data.forgot">ĐĂNG KÝ</span><span ng-show="data.forgot">QUÊN MẬT KHẨU</span><i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'register\' &amp;&amp; data.step === 1"/>\n </div>\n <div ng-show="!data.refer &amp;&amp; !data.forgot" class="form-group refer">Bạn có mã ưu đãi&nbsp<a ng-click="data.refer = true">Nhấn vào đây</a></div>\n <div ng-show="data.refer" ng-if="!data.forgot" class="form-group">\n <input type="text" ng-model="model.register.referralCode" placeholder="Mã ưu đãi (có thể bỏ qua)"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp tục</button>\n </div><small class="text-grey">Tôi đồng ý với các&nbsp<a href="http://goo.gl/2472xb" target="_blank" class="text-white">Điều Khoản Sử Dụng&nbsp</a>của dịch vụ Fim+.</small>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.code" placeholder="Nhập OTP" focus-me="modal.login === \'register\' &amp;&amp; data.step === 2"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !model.register.code}" class="btn">Tiếp theo</button>\n </div>\n </div>\n </div>\n <div ng-class="{active: data.step === 3}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password" placeholder="Nhập mật khẩu" focus-me="modal.login === \'register\' &amp;&amp; data.step === 3"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password2" placeholder="Nhập lại mật khẩu"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Hoàn tất</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'login\'); data.forgot = false">Đã có tài khoản ?</a></div>\n </form>\n <div ng-class="{active: modal.login === \'success\'}" class="popup">\n <div class="header">CHÚC MỪNG<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body text-center">\n <div class="form-group"><i class="icon icon-check-white"></i></div>\n <div class="form-group text">Bạn đã đăng ký dịch vụ fim + thành công</div>\n <div class="form-group"><a ng-click="closeModal()" class="btn">Hoàn tất</a></div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["header._login"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<form name="formLogin" ng-submit="submitLogin(formLogin)" ng-class="{active: modal.login === \'login\'}" loading-container="data.formLoading" class="popup">\n <div class="header">ĐĂNG NHẬP<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.login.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'login\'"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.login.password" placeholder="Mật khẩu"/>\n </div>\n <div class="form-group text text-right"><a ng-click="showModal(\'register\', true)">Quên mật khẩu?</a></div>\n <div class="form-group">\n <button type="submit" class="btn">Đăng nhập</button>\n </div>\n <div class="form-group">\n <button type="button" ng-click="submitFacebook()" class="btn btn-facebook"><i class="icon icon-facebook"></i> Đăng nhập với Facebook</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'register\')">Chưa có tài khoản ?</a></div>\n</form>';
return __p
}, this.Templates["header._register"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<form name="formRegister" ng-submit="submitRegister(formRegister)" ng-class="{active: modal.login === \'register\'}" loading-container="data.formLoading" class="popup">\n <div class="header"><span ng-show="!data.forgot">ĐĂNG KÝ</span><span ng-show="data.forgot">QUÊN MẬT KHẨU</span><i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.mobile" placeholder="Số điện thoại" focus-me="modal.login === \'register\' &amp;&amp; data.step === 1"/>\n </div>\n <div ng-show="!data.refer &amp;&amp; !data.forgot" class="form-group refer">Bạn có mã ưu đãi&nbsp<a ng-click="data.refer = true">Nhấn vào đây</a></div>\n <div ng-show="data.refer" ng-if="!data.forgot" class="form-group">\n <input type="text" ng-model="model.register.referralCode" placeholder="Mã ưu đãi (có thể bỏ qua)"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp tục</button>\n </div><small class="text-grey">Tôi đồng ý với các&nbsp<a href="http://goo.gl/2472xb" target="_blank" class="text-white">Điều Khoản Sử Dụng&nbsp</a>của dịch vụ Fim+.</small>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="model.register.code" placeholder="Nhập OTP" focus-me="modal.login === \'register\' &amp;&amp; data.step === 2"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !model.register.code}" class="btn">Tiếp theo</button>\n </div>\n </div>\n </div>\n <div ng-class="{active: data.step === 3}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password" placeholder="Nhập mật khẩu" focus-me="modal.login === \'register\' &amp;&amp; data.step === 3"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.register.password2" placeholder="Nhập lại mật khẩu"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Hoàn tất</button>\n </div>\n </div>\n <div class="footer"><a ng-click="showModal(\'login\'); data.forgot = false">Đã có tài khoản ?</a></div>\n</form>';
return __p
}, this.Templates["header._success"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.login === \'success\'}" class="popup">\n <div class="header">CHÚC MỪNG<i ng-click="closeModal()" class="icon icon-x-dark close-btn"></i></div>\n <div class="body text-center">\n <div class="form-group"><i class="icon icon-check-white"></i></div>\n <div class="form-group text">Bạn đã đăng ký dịch vụ fim + thành công</div>\n <div class="form-group"><a ng-click="closeModal()" class="btn">Hoàn tất</a></div>\n </div>\n</div>';
return __p
}, this.Templates["header.header"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-controller="HeaderCtrl">\n <div ng-class="{active: modal.menu}" class="sidebar-menu-area">\n <div ng-click="closeModal()" class="bg"></div>\n <nav class="menu">\n <ul>\n <li ng-repeat="item in data.menu"><a ui-sref="base.index" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/home\'" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.favorite" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/user/favorites\' &amp;&amp; user" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.recent" ng-click="closeModal()" ng-if="item.url === \'/hd1/v1/user/recents\' &amp;&amp; user" ui-sref-active="active">{{ item.title }}</a><a ui-sref="base.category({category: item.title.split(\' \').join(\'-\').toLowerCase(), id: item.id})" ng-click="closeModal()" ng-if="item.url.startsWith(\'/hd1/v1/page\')" ui-sref-active="active">{{ item.title }}</a></li>\n </ul>\n </nav>\n </div>\n <div scroll-window="" ng-class="{scroll: data.search}" class="header-area">\n <div class="container">\n <div ng-click="showModal(\'menu\')" class="menu-icon">\n <div class="bar"></div>\n <div class="bar"></div>\n <div class="bar"></div>\n </div>\n <div class="logo"><a ui-sref="base.index"><i class="icon icon-logo"></i></a></div>\n <nav class="menu">\n <ul>\n <li><a ng-click="data.search = !data.search"><i class="icon icon-search-white"></i></a>\n <form ng-submit="search()" ng-class="{active: data.search}" class="search">\n <input type="text" ng-model="model.search" placeholder="Tên phim, diễn viên, tác giả" focus-me="data.search"/>\n </form>\n </li>\n <li ng-if="user"><a ng-click="showModal(\'invite\')"><i class="icon icon-gift-white"></i></a></li>\n <li ng-if="!user" class="login"><a ng-click="showModal(\'login\')">Đăng Nhập</a></li>\n <li ng-if="!user"><a ng-click="showModal(\'register\')">Đăng Ký</a></li>\n <li ng-if="user"><a ui-sref="base.profile"><span ng-show="user.fullName">{{ user.fullName }}</span><span ng-show="!user.fullName">Tài Khoản</span></a></li>\n <li ng-if="user" class="settings"><i class="icon icon-profile-white"></i>\n <div class="overlay">\n <div class="inner"><a ui-sref="base.profile">TÀI KHOẢN</a>\n <!-- <a href="#">DỊCH VỤ</a>--><a ng-click="logout()">ĐĂNG XUẤT</a>\n </div>\n </div>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n <div ng-class="{active: modal.invite}" class="popup-wrapper popup-invite">\n <div ng-click="closeModal()" class="bg"></div>\n <div class="popup">\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark"></i></div>\n <div class="main-title">MỜI BẠN BÈ</div><i class="icon icon-invite"></i>\n <div class="description">Hãy mời bạn bè cùng tham gia Fim+</div>\n <div class="send">GỬI CODE CỦA BẠN</div>\n <div class="code">{{ data.code }}</div><a ng-click="showModal(\'promo\')" class="btn action">Bạn đang có mã ưu đãi</a>\n </div>\n </div>\n <div ng-class="{active: modal.promo}" class="popup-wrapper popup-invite popup-promo">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitPromo()" loading-container="data.formLoading" class="popup">\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark"></i></div>\n <div class="main-title">NHẬP MÃ ƯU ĐÃI</div>\n <div class="description">Nhập mã ưu đãi để nhận phim miễn phí, ngày vip</div>\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <input type="text" ng-model="promoModel._codeVal" focus-me="modal.promo"/><br/>\n <button class="btn submit">Xác nhận</button><a ng-click="showModal(\'invite\')" class="btn action">Bạn đang có mã ưu đãi</a>\n </form>\n </div>\n <div ng-include="\'templates/header/_auth.html\'" ng-class="{active: modal.login}" class="popup-wrapper popup-login"></div>\n</div>';
return __p
}, this.Templates["home.home"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="movie-hover-bg"></div>\n<div class="bn-area wrapper">\n <div class="container">\n <div ng-style="{\'background-image\': data.mainBanner}" loading-container="!data.mainBanner" class="bn image-responsive"></div>\n <div owl-carousel="\'banner\'" ng-model="data.items" class="items owl-carousel owl-theme">\n <div ng-class="{focus: data.mainBannerFocus === index}" ng-mouseenter="hoverBanner(item, index)" ng-click="showModal(\'single\', {index: index})" class="item">\n <div class="item-wrapper">\n <div class="dummy"></div><img ng-src="{{ item.bannerPortrait }}" alt="" loading-image=""/>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.single}" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="data.items" owl-category="ribbon.categoryId" class="items owl-carousel owl-theme">\n <div class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div ng-repeat="ribbon in data.ribbons" class="movie-list-area wrapper">\n <div class="container">\n <div class="sub">{{ ribbon.subtitle }}</div>\n <div class="block-title"><a ui-sref="base.menu({category: ribbon.categoryType.split(\' \').join(\'-\').toLowerCase(), id: ribbon.categoryId})">{{ ribbon.categoryType }} ></a></div>\n <div owl-carousel="\'list\'" ng-model="ribbon.items" movie-hover-parent="" class="items owl-carousel owl-theme">\n <div ng-click="showModal(\'list\', {category: ribbon.categoryId, index: index})" movie-hover="" class="item">\n <div ng-include="\'templates/_movie-list.html\'" class="item-wrapper"></div>\n </div>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.list == ribbon.categoryId}" ng-repeat="ribbon in data.ribbons" class="movie-detail-area">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div owl-carousel="\'detail\'" owl-carousel-view="modal.listItem" ng-model="ribbon.items" owl-category="ribbon.categoryId" class="items owl-carousel owl-theme">\n <div color-background="item.thumbnail" class="item">\n <div ng-class="{active: data.relatedLoading === item.id}" class="movie-loading blocker"></div>\n <div ng-include="\'templates/_movie-detail.html\'" parallax="" scroll-parent="" class="item-wrapper"></div>\n </div>\n </div>\n</div>\n<div class="movie-hover-bg"></div>\n<div ng-controller="PaymentCtrl">\n <div ng-include="\'templates/_payment-add.html\'"></div>\n <div ng-include="\'templates/_package.html\'"></div>\n</div>';
return __p
}, this.Templates["payment._payment-buying"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.buying}" class="popup-wrapper popup-buying popup-white review">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="content clear">\n <div class="image image-responsive"><img ng-src="{{ data.buying.poster }}" alt="{{ data.buying.title }}"/></div>\n <div class="panel">\n <div class="main-title">{{ data.buying.title }}</div>\n <div class="title">{{ data.buying.knownAs }}</div>\n <div class="genre"><span ng-repeat="info in data.buying.genres">{{ info.name }}<br/></span></div>\n <div class="time">{{ data.buying.hour }} giờ {{ data.buying.minute }} phút</div>\n </div>\n </div><a ng-click="showModal(&quot;buyingConfirm&quot;)" class="action btn btn-danger"><strong>THUÊ ({{ data.buying.ppvPrice / 1000 }}.000đ)</strong></a>\n </div>\n </div>\n</div>\n<div ng-class="{active: modal.buyingConfirm}" class="popup-wrapper popup-buying popup-white confirm">\n <div ng-click="closeModal()" class="bg"></div>\n <div loading-container="data.formLoading" class="popup active">\n <div class="body steps active">\n <div class="main-title">XÁC NHẬN</div>\n <div class="description">Bạn muốn thuê phim "{{ data.buying.title }}" trong 48 giờ với giá&nbsp<strong>{{ data.buying.ppvPrice / 1000 }}.000đ</strong> và thanh toán qua tài khoản</div>\n <div class="method clear">\n <div ng-if="data.method.methodType === \'MOMO\'">\n <div class="icons"><img src="images/icon-momo.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo<br/><span class="text">{{ data.method.detail.mobile }}</span></div>\n </div>\n </div>\n <!--div(ng-if="data.method.methodType === \'CREDITCARD\'")-->\n <!-- .icons-->\n <!-- img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng-->\n <div ng-if="data.method.methodType === \'SMARTLINK\'">\n <div class="icons"><img src="images/icon-smartlink.png" alt=""/></div>\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div>\n </div>\n </div>\n <div class="action"><a ng-click="closeModal()" class="btn">Huỷ</a><a ng-click="submitBuyItem(data.buying)" class="btn">Thanh Toán</a></div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["payment._payment-creditcard-add"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.creditcard}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitCreditcard()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>';
return __p
}, this.Templates["payment._payment-list"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.method}" class="popup-wrapper popup-method">\n <div ng-click="closeModal()" class="bg"></div>\n <div ng-click="closeModal()" class="close-btn"><i class="icon icon-x-dark-big"></i></div>\n <div class="popup">\n <div class="main-title">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC THANH TOÁN}\n other {THAY ĐỔI PHƯƠNG THỨC THANH TOÁN}\n }}\n </div>\n <div ng-show="data.methods.length" class="items selectedItems">\n <div ng-repeat="item in data.methods" ng-hide="item.hidden" class="popup-item active pointer">\n <div ng-click="showModal(item.unsync); data.unsync = item;">\n <div class="icons"><img src="{{item.image}}" alt=""/></div>\n <div class="popup-title">\n <div class="inner">{{item.title}}<br/><span class="text">{{ item.detail.mobile }}</span></div>\n </div>\n </div><a ng-class="{active: settingModel.method === item.id}" title="Chọn mặc định" ng-click="settingModel.method = item.id" class="default"></a>\n </div>\n </div>\n <div class="items"><a ng-click="showModal(\'momo\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-momo.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Ví điện tử MoMo</div>\n </div></a>\n <!--a.popup-item(ng-click="showModal(\'creditcard\')", ng-if="!isAdded(\'CREDITCARD\')")-->\n <!-- //.icons-->\n <!-- // img(src=\'images/icon-atm.png\', alt=\'\')-->\n <!-- .popup-title-->\n <!-- .inner-->\n <!-- | Thẻ tín dụng quốc tế--><a ng-click="showModal(\'smartlink\')" ng-if="!isAdded(\'SMARTLINK\')" class="popup-item">\n <!--.icons-->\n <!-- img(src=\'images/icon-smartlink.png\', alt=\'\')-->\n <div class="popup-title">\n <div class="inner">Thẻ ngân hàng nội địa</div>\n </div></a>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["payment._payment-momo-add"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.momo}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMomo()" loading-container="data.formLoading" class="popup active">\n <div class="header"><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)" ng-if="data.step === 1">Trở lại</b><b ng-click="data.step = 1" ng-if="data.step === 2">Trở lại</b></a><i class="icon icon-momo"></i></div>\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số điện thoại bạn đã dùng để đăng kí MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.phoneNumber" placeholder="Nhập số điện thoại" focus-me="modal.momo &amp;&amp; data.step === 1"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div class="sub-body">\n <p class="text-grey-light text-center text-small">Nhập số mã OTP bạn vừa nhận được trong app MOMO</p>\n <div class="form-group">\n <input type="text" ng-model="momoModel.otp" placeholder="Nhập OTP" focus-me="modal.momo &amp;&amp; data.step === 2"/><small ng-show="errors.message" class="text-red"><i><b> {{ errors.message }}</b></i></small>\n </div>\n </div>\n <div class="form-group">\n <!--.half-->\n <!-- button.btn(type=\'button\', ng-click=\'data.step = 1\') Quay lại-->\n <!--.half-->\n <button type="submit" ng-class="{disabled: !momoModel.otp}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </form>\n</div>';
return __p
}, this.Templates["payment._payment-remove"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <p class="text-center">{{ data.unsync.detail.mobile }}</p>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.creditcardUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>\n<div ng-class="{active: modal.smartlinkUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group text-center">{{ momoModel.phoneNumber }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n</div>';
return __p
}, this.Templates["payment._payment-smartlink-add"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.smartlink}" class="popup-wrapper popup-login popup-white popup-method-single small-icons">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitSmartlink()" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn">Kết nối</button>\n </div>\n </div>\n </form>\n</div>';
return __p
}, this.Templates["profile-history"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-history">\n <div ng-repeat="item in data.items" class="block">\n <div class="title">\n <div class="year">{{ item.date.getFullYear() }}</div>\n <div class="date">ngày {{ item.day }}</div>\n </div>\n <div class="content text">\n <div class="month">Tháng {{ item.dategetMonth() + 1 }}</div>\n <hr/>\n <div class="row">\n <div class="meta">{{ item.hour }}:{{ item.minute }}</div>\n <div class="description">{{ item.message }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates["profile-password"] = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-form">\n <form ng-submit="submit()" class="form">\n <div class="main-title text">ĐỔI MẬT KHẨU</div>\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div ng-show="success.message" class="form-group form-success">{{ success.message }}</div>\n <div class="form-group">\n <input type="password" ng-model="model.oldPassword" placeholder="Mật khẩu cũ"/>\n </div><br/><br/>\n <div class="form-group">\n <input type="password" ng-model="model.newPassword" placeholder="Mật khẩu mới"/>\n </div>\n <div class="form-group">\n <input type="password" ng-model="model.newPassword2" placeholder="Nhập lại mật khẩu"/>\n </div><br/><br/>\n <button type="submit" loading-container="data.formLoading" class="btn">THAY ĐỔI</button>\n </form>\n </div>\n </div>\n </div>\n</div>';
return __p
}, this.Templates.profile = function(obj) {
obj || (obj = {});
var __p = "";
_.escape;
with(obj) __p += '\n<div ng-class="{active: modal.mobile}" class="popup-wrapper popup-login">\n <div class="container">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="submitMobile()" loading-container="data.formLoading" class="popup active">\n <div ng-class="{active: data.step === 1}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="mobileModel.mobile" placeholder="Số điện thoại mới"/>\n </div>\n <div class="form-group">\n <button type="submit" class="btn">Tiếp theo</button>\n </div>\n </div>\n <div ng-class="{active: data.step === 2}" class="body steps">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <input type="text" ng-model="mobileModel.code" placeholder="Nhập OTP"/>\n </div>\n <div class="form-group">\n <div class="half">\n <button type="button" ng-click="data.step = 1" class="btn">Quay lại</button>\n </div>\n <div class="half">\n <button type="submit" ng-class="{disabled: !mobileModel.code}" class="btn">Hoàn tất</button>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n<div class="profile-area">\n <div class="container"><a ui-sref="base.index" class="back"><i class="icon icon-arrow-left-dark"></i> QUAY LẠI XEM PHIM</a>\n <div class="panel clear">\n <nav ng-include="\'templates/_profile-nav.html\'" class="menu"></nav>\n <div class="details profile-details">\n <div class="block panel-info">\n <div class="title text">THÔNG TIN</div>\n <div class="content">{{ Object.keys(modal).length }}\n <div ng-show="errors.message &amp;&amp; !isModal()" class="row form-error">{{ errors.message }}</div>\n <div ng-show="success.message" class="row form-success">{{ success.message }}</div>\n <div ng-hide="data.editing === \'name\'" class="row has-action">\n <div ng-show="model.fullName" class="value name">{{ model.fullName }}</div>\n <div ng-show="!model.fullName" class="value name empty">Tên</div><a ng-click="edit(\'name\')" class="action text">sửa</a>\n </div>\n <div ng-show="data.editing === \'name\'" class="row">\n <input type="text" ng-model="model.fullName" ng-blur="submitProfile()" focus-me="data.editing === \'name\'" class="name"/>\n </div>\n <div ng-hide="data.editing === \'email\'" class="row has-action">\n <div ng-show="model.email" class="value">{{ model.email }}</div>\n <div ng-show="!model.email" class="value empty">Email</div><a ng-click="edit(\'email\')" class="action text">sửa</a>\n </div>\n <div ng-show="data.editing === \'email\'" class="row">\n <input type="email" ng-model="model.email" ng-blur="submitProfile()" focus-me="data.editing === \'email\'"/>\n </div>\n <hr/>\n <div class="row has-action">\n <div ng-show="model.mobile" class="value">{{ model.mobile }}</div>\n <div ng-show="!model.mobile" class="value empty">Điện thoại</div><a ng-click="showModal(\'mobile\')" class="action text">sửa</a>\n </div>\n </div>\n </div>\n <div ng-controller="PaymentCtrl" class="block panel-payment small-icons">\n <div class="title text">THANH TOÁN</div>\n <div class="content">\n <div class="row has-action"><a ng-click="showModal(\'method\')" ng-class="{&quot;action&quot;:data.methods.length !==0 }">\n {{data.methods.length,plural,\n =0 {THÊM PHƯƠNG THỨC}\n other {THAY ĐỔI}\n }}</a>{{ getDefault().methodType }}</div>\n <hr/>\n <div ng-class="{&quot;form-error&quot;: !data.valid,&quot;form-success&quot;:data.valid}" class="row">{{ !data.valid ? "Bạn chưa đăng ký gói Fim+" : "Bạn đang sử dụng gói Fim+"}}</div><a ng-click="showModal(\'package\',getDefault().methodType)">{{ !data.valid ? "ĐĂNG KÝ GÓI FIM+" : "THAY ĐỔI GÓI THUÊ BAO"}}</a>\n </div>\n <div ng-include="\'templates/_payment-add.html\'"></div>\n <div ng-class="{active: modal.momoUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-momo"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group">\n <p class="text-center">{{ data.unsync.detail.mobile }}</p>\n </div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-class="{active: modal.creditcardUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-atm"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div><br/>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-class="{active: modal.smartlinkUnsync}" class="popup-wrapper popup-login popup-white popup-method-single">\n <div ng-click="closeModal()" class="bg"></div>\n <form ng-submit="unsync(data.unsync)" loading-container="data.formLoading" class="popup active">\n <div class="header"><i class="icon icon-smartlink"></i><a class="return text-uppercase text-grey-light"><b ng-click="showModal(&quot;method&quot;)">Trở lại</b></a></div>\n <div class="body">\n <div ng-show="errors.message" class="form-group form-error">{{ errors.message }}</div>\n <div class="form-group text-center">{{ momoModel.phoneNumber }}</div>\n <div class="form-group">\n <button type="submit" class="btn btn-default">NGẮT KẾT NỐI</button>\n </div>\n </div>\n </form>\n </div>\n <div ng-include="\'templates/_package.html\'"></div>\n </div>\n <div class="block panel-setting">\n <div class="title text">THIẾT LẬP</div>\n <div class="content">\n <hr/>\n <div class="row">\n <div class="label text">Độ phân giải</div>\n <div class="input">\n <div class="radio-normal">\n <input id="resolution-1" type="radio" ng-model="settingModel.resolution" value="360" name="resolution"/>\n <label for="resolution-1">360</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-2" type="radio" ng-model="settingModel.resolution" value="480" name="resolution"/>\n <label for="resolution-2">480</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-3" type="radio" ng-model="settingModel.resolution" value="720" name="resolution"/>\n <label for="resolution-3">720</label>\n </div>\n <div class="radio-normal">\n <input id="resolution-4" type="radio" ng-model="settingModel.resolution" value="1080" name="resolution" checked=""/>\n <label for="resolution-4">1080</label>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="label text">Tên phim</div>\n <div class="input">\n <div class="radio-normal">\n <input id="name-1" type="radio" ng-model="settingModel.name" value="en" name="name"/>\n <label for="name-1">Anh</label>\n </div>\n <div class="radio-normal">\n <input id="name-2" type="radio" ng-model="settingModel.name" value="vi" name="name"/>\n <label for="name-2">Việt</label>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="label text">Phụ đề</div>\n <div class="input">\n <div class="checkbox-slide">\n <input id="subtitle" type="checkbox" ng-model="settingModel.subtitle" name="subtitle" checked=""/>\n <label for="subtitle"><span class="on">MỞ</span><span class="off">TẮT</span></label>\n </div>\n <!-- <a href="#" class="btn small text">Tuỳ chỉnh</a>-->\n </div>\n </div>\n <div class="row">\n <div class="label text">Quản lý trẻ em</div>\n <div class="input">\n <div class="checkbox-slide">\n <input id="parental" type="checkbox" ng-model="settingModel.parental" name="parental"/>\n <label for="parental"><span class="on">MỞ</span><span class="off">TẮT</span></label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>';
return __p
},
function() {
"use strict";
angular.module("Authentication", []).config(["$httpProvider", function(a) {
return a.interceptors.push("AuthInterceptor")
}]).run(["$rootScope", function(a) {
return a.user = window.localStorage.user ? JSON.parse(window.localStorage.user) : null
}]).factory("AuthInterceptor", ["$rootScope", "$q", "$window", "HttpBuffer", "GlobalConfig", function(a, b, c, d, e) {
return {
request: function(a) {
return a.headers = a.headers || {}, a.headers["Accept-Language"] = "vi", c.localStorage.content && (a.url.startsWith(e.auth) ? a.headers.Authorization = c.localStorage.auth : a.url.startsWith(e.content) ? a.headers.Authorization = c.localStorage.content : a.url.startsWith(e.payment) ? a.headers.Authorization = c.localStorage.payment : a.url.startsWith(e.billing) && (a.headers.Authorization = c.localStorage.billing)), a
},
responseError: function(a) {
return b.reject(a)
}
}
}]).factory("Authenticator", ["$rootScope", "$http", "$window", "$q", "HttpBuffer", "ContentLoginService", "PaymentLoginService", "BillingLoginService", function(a, b, c, d, e, f, g, h) {
return {
login: function(i, j, k, l) {
return "function" == typeof i ? i.save(j, function(b) {
var i, m, n, o, p;
for (p = [], c.localStorage.auth = b.cas_access_token, n = 0; n < b.tickets.length;) b.tickets[n].service === j.services[0] ? p[0] = b.tickets[n].ticket : b.tickets[n].service === j.services[1] ? p[1] = b.tickets[n].ticket : b.tickets[n].service === j.services[2] && (p[2] = b.tickets[n].ticket), n++;
return m = f.save({
ticket: p[0]
}), o = g.save({
ticket: p[1]
}), i = h.save({
ticket: p[2]
}), d.all([m.$promise, o.$promise, i.$promise]).then(function(b) {
return c.localStorage.content = b[0].access_token, c.localStorage.payment = b[1].access_token, c.localStorage.billing = b[2].access_token, c.localStorage.user = JSON.stringify(b[0].user_profile), a.user = b[0].user_profile, a.$emit("authorized"), e.retryAll(), k ? k(b) : void 0
}, l)
}, l) : b.post(i, j, {}).success(function(b, d, f) {
return c.localStorage.token = b.token, a.$emit("authorized"), e.retryAll(), k(b, d)
}).error(l)
},
logout: function(b) {
return c.localStorage.content && (delete c.localStorage.auth, delete c.localStorage.content, delete c.localStorage.payment, delete c.localStorage.billing, delete c.localStorage.user, delete c.localStorage.settingModel), a.user = null, a.$emit("loggedOut"), b ? b() : void 0
},
isLogged: function() {
return !!c.localStorage.content
}
}
}]).factory("HttpBuffer", ["$injector", function(a) {
var b, c, d;
return d = function(b, c) {
var d, e, f;
return f = function(a) {
return c.resolve(a)
}, e = function(a) {
return c.reject(a)
}, d = d || a.get("$http"), d(b).then(f, e)
}, c = [], b = void 0, {
append: function(a, b) {
return c.push({
config: a,
deferred: b
})
},
rejectAll: function(a) {
var b;
if (a)
for (b = 0; b < c.length;) c[b].deferred.reject(a), ++b;
return c = []
},
retryAll: function() {
var a;
for (a = 0; a < c.length;) d(c[a].config, c[a].deferred), ++a;
return c = []
}
}
}])
}.call(this),
function() {
"use strict";
var a, b, c, d;
switch (b = "https://api.fimplus.io/", d = {
cas: "cas/",
cm: "cm/",
payment: "payment/",
billing: "billing/"
}, ENV) {
case "prod":
c = "903378619781560";
break;
case "local":
c = "1674041496206658", b = "http://hdvietv3.cloudapp.net/", d = {
cas: "",
cm: "",
payment: "",
billing: ""
};
break;
case "dev":
b = "https://api.fimplus.io/", c = "925401937544383"
}
a = {
fBappId: c,
auth: "" + b + d.cas + "hd1cas/v1.1/",
content: "" + b + d.cm + "hd1/v1/",
payment: "" + b + d.payment + "hd1payment/v1/",
billing: "" + b + d.billing + "hd1billing/v1/",
socket: "http://fimplus-dev.cloudapp.net:21345",
services: ["hd1_cm", "hd1_payment", "hd1_billing"],
base: "/"
}, angular.module("app.configs", []).constant("AppName", "FIM+").constant("GlobalConfig", a)
}.call(this),
function() {
"use strict";
angular.module("app.controllers", ["app.controllers"]), angular.module("app.services", ["app.configs"]), angular.module("app.directives", []), angular.module("app", ["ngResource", "ngMessageFormat", "ui.router", "facebook", "app.configs", "app.directives", "app.controllers", "app.services", "Authentication"]), angular.element(document).ready(function() {
return angular.bootstrap(document, ["app"], {
strictDi: !0
})
})
}.call(this),
function() {
var a;
a = function(a, b, c, d, e, f) {
return a.html5Mode(!0).hashPrefix("!"), c.otherwise("/"), d.classNameFilter(new RegExp("ng-fade.+")), e.init(f.fBappId)
}, a.$inject = ["$locationProvider", "$stateProvider", "$urlRouterProvider", "$animateProvider", "FacebookProvider", "GlobalConfig"], angular.module("app").config(a)
}.call(this),
function() {
var a;
a = function(a, b, c, d) {
var e, f;
return a.$state = b, a.$stateParams = c, a.notify = {}, a.root = {}, a.root.appLoaded = !0, a.root.isModal = !1, a.root.shouldCloseModal = !0, $(document).keyup(function(b) {
return 27 === b.keyCode ? (a.$apply(function() {
return a.root.isModal = !1
}), a.$emit("closeModal")) : 37 === b.keyCode ? $(".movie-detail-area.active .owl-prev:not(.disabled)").click() : 39 === b.keyCode ? $(".movie-detail-area.active .owl-next:not(.disabled)").click() : void 0
}), a.$on("openModal", function() {
return a.root.isModal = !0
}), a.$on("closeModal", function() {
return a.root.isModal = !1
}), f = void 0, e = void 0, a.notifySuccess = function(b) {
return a.cancelNotify(), a.notify.success = b, f = d(function() {
return a.notify.success = !1
}, 5e3)
}, a.notifyError = function(b) {
return a.notify.error = b, e = d(function() {
return a.notify.error = !1
}, 5e3)
}, a.cancelNotify = function() {
return f && d.cancel(f), e && d.cancel(e), a.notify.success = !1, a.notify.error = !1
}
}, a.$inject = ["$rootScope", "$state", "$stateParams", "$timeout"], angular.module("app").run(a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a, b) {
return a.state("base", {
url: b.base,
"abstract": !0
})
}, b.$inject = ["$stateProvider", "GlobalConfig"], a = function(a, b, c, d, e, f, g, h, i, j) {
var k;
return b.model = {}, b.originModel = {}, b.data = {}, b.data.pagination = [], b.data.formLoading = !1, b.data.relatedLoading = !1, b.modal = {}, b.errors = {}, b.success = {}, b.data.items = [], b.data.ribbons = [], b.modal.single = !1, b.modal.list = !1, b.modal.listItem = 0, b.setTitle = function(a) {
return h.set(a)
}, b.buildData = function() {
return d.search().category && d.search().id ? c(function() {
return b.showModal("list", {
category: d.search().category,
index: d.search().id
})
}, 500) : d.search().id ? c(function() {
return b.showModal("single", {
index: d.search().id
})
}, 500) : void 0
}, a.$on("moveTo", function(a, c) {
var e, f;
if (b.modal.list || b.modal.single) {
if (d.search("id", c), f = void 0, b.modal.list && b.data.ribbons)
for (e = 0; e < b.data.ribbons.length;) {
if (b.data.ribbons[e].categoryId === b.modal.list) {
f = b.data.ribbons[e].items[c];
break
}
e++
} else b.modal.single && (f = b.data.items[c]);
return b.getDetail(f)
}
}), b.getDetail = function(a) {
return a && !a._extra ? (a._extra = {}, i.get({
id: a.id
}, function(c) {
var d;
return a._extra = c, d = (new Date(1e3 * parseInt(c.expiryDate, 10)) - new Date) / 1e3, a._extra.hourLeft = Math.floor(d / 3600), a._extra.minuteLeft = b.strPadLeft(Math.floor(d % 3600 / 60))
})) : void 0
}, b.addFavorite = function(a) {
return j.save({
movieId: a.id
}), a._extra.favorite = !0
}, b.removeFavorite = function(a) {
return j.remove({
movieId: a.id
}), a._extra.favorite = !1
}, b.viewRelated = function(a, d) {
return b.data.relatedLoading = a.id, i.get({
id: d.id
}, function(d) {
return angular.copy({
id: a.id
}, a), c(function() {
return angular.copy(d, a), a._extra = angular.copy(a), b.data.relatedLoading = !1
}, 200)
})
}, b.play = function(a) {
return a ? fpPlayer.show("#player", {
accessToken: e.localStorage.content,
movie: {
id: a.id,
title: a.title,
knownAs: a.knownAs,
backdrop: a.backdrop
}
}) : void 0
}, b.playTrailer = function(a) {
return a ? fpPlayer.show("#player", {
trailer: a
}) : void 0
}, b.showModal = function(c, e) {
var f, g;
if (b.modal = {}, b.modal[c] = !0, b.errors = {}, g = null, "list" === c) {
if (b.modal.list = e.category, b.modal.listItem = e.index, d.search("category", e.category), d.search("id", e.index), b.data.ribbons)
for (f = 0; f < b.data.ribbons.length;) {
if (b.data.ribbons[f].categoryId === e.category) {
g = b.data.ribbons[f].items[e.index];
break
}
f++
}
} else "single" === c && (b.modal.listItem = e.index, d.search("id", e.index), g = b.data.items[e.index]);
return b.getDetail(g), a.$emit("openModal"), b.doShowModal(c, e)
}, b.doShowModal = function(a, b) {}, b.closeModal = function(c, e, f) {
return a.root.shouldCloseModal ? (d.search("category", null), d.search("id", null), b.modal = {}, c || a.$emit("closeModal"), b.doCloseModal(c, e, f)) : void 0
}, b.doCloseModal = function(a, b, c) {}, k = a.$on("closeModal", function() {
return c(function() {
return b.closeModal(!0)
})
}), b.$on("$destroy", k), b.processError = function(a) {
return b.data.formLoading = !1, a.status < 500 ? b.errors = a.data : b.errors = "An error occurred!", b.doProcessError(a)
}, b.doProcessError = function(a) {}, b.buy = function(b) {
return b.play(b)
}, b.buildPagination = function(a) {
var c, d, e;
for (c = 0, d = []; c < (a.totalRecord || a.total) / a.limit;) e = {}, e.page = c > 0 ? c + 1 : null, f.is("base.search") && (e.keyword = g.query), f.is("base.menu") && (e.category = g.category, e.id = g.id), b.data.pagination.push({
current: !g.page && 0 === c || g.page && parseInt(g.page - 1, 10) === c,
url: e
}), d.push(c++);
return d
}, b.strPadLeft = function(a, b, c) {
return b || (b = "0"), c || (c = 2), (new Array(c + 1).join(b) + a).slice(-c)
}
}, a.$inject = ["$rootScope", "$scope", "$timeout", "$location", "$window", "$state", "$stateParams", "PageTitle", "MovieService", "UserFavoriteService"], angular.module("app.controllers").config(b).controller("BaseCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.category", {
url: "category/:category/:id/",
views: {
"main@": {
templateUrl: "/templates/home/home.html",
controller: "CategoryCtrl"
}
},
reloadOnSearch: !1
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) {
return a("BaseCtrl", {
$scope: b
}), b.setTitle(d.category.replace(/-/g, " ").toUpperCase()), b.data.mainBanner = "", b.data.mainBannerFocus = 0, b.modal.single = !1, b.modal.list = !1, b.modal.listItem = 0, e.get({
id: d.id,
imageSize: "3x",
platform: "website"
}, function(a) {
return a ? (b.data.items = a.banners, b.data.ribbons = a.ribbons, b.data.mainBanner = "url(" + a.banners[0].bannerLandscape + ")", b.buildData()) : void 0
}, b.processError), b.hoverBanner = function(a, c) {
return b.data.mainBannerFocus = c, b.data.mainBanner = "url(" + a.bannerLandscape + ")"
}
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "PageService"], angular.module("app.controllers").config(b).controller("CategoryCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.favorite", {
url: "favorite/:page",
views: {
"main@": {
templateUrl: "templates/archives.html",
controller: "FavoriteCtrl"
}
}
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) {
return a("BaseCtrl", {
$scope: b
}), b.setTitle("DANH SÁCH CỦA TÔI"), b.data.hideTitle = !0, b.data.tab = "favorite", b.data.formLoading = !0, d.get({
limit: 20,
page: c.page && parseInt(c.page - 1, 10)
}, function(a) {
return b.data.formLoading = !1, a ? (b.data.items = a.results || a.items, b.buildPagination(a.metadata), b.buildData()) : void 0
}, b.processError)
}, a.$inject = ["$controller", "$scope", "$stateParams", "UserFavoriteService"], angular.module("app.controllers").config(b).controller("FavoriteCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.menu", {
url: "menu/:category/:id/:page",
views: {
"main@": {
templateUrl: "templates/archives.html",
controller: "MenuCtrl"
}
},
reloadOnSearch: !1
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) {
return a("BaseCtrl", {
$scope: b
}), b.setTitle(d.category.replace(/-/g, " ").toUpperCase()), b.data.formLoading = !0, e.get({
id: d.id,
limit: 20,
page: d.page && parseInt(d.page - 1, 10),
imageSize: "3x",
platform: "website"
}, function(a) {
return b.data.formLoading = !1, a ? (b.data.items = a.items, b.buildPagination(a.metatada), b.buildData()) : void 0
}, b.processError)
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "MenuService"], angular.module("app.controllers").config(b).controller("MenuCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.profile.history", {
url: "history/",
views: {
"main@": {
templateUrl: "templates/profile-history.html",
controller: "ProfileHistoryCtrl"
}
}
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) {
return a("BaseCtrl", {
$scope: c
}), c.setTitle("LỊCH SỬ GIAO DỊCH"), b.user || b.$emit("unauthorized"), c.data.items = [], d.get(function(a) {
var b, d, e;
for (c.data.items = a.items, b = 0, d = []; b < a.items.length;) e = c.data.items[b], e.date = new Date(1e3 * e.createdAt), e.day = c.strPadLeft(e.date.getDate()), e.hour = c.strPadLeft(e.date.getHours()), e.minute = c.strPadLeft(e.date.getMinutes()), d.push(b++);
return d
})
}, a.$inject = ["$controller", "$rootScope", "$scope", "BillingHistoryService"], angular.module("app.controllers").config(b).controller("ProfileHistoryCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.profile.password", {
url: "password/",
views: {
"main@": {
templateUrl: "templates/profile-password.html",
controller: "ProfilePasswordCtrl"
}
}
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) {
return a("BaseCtrl", {
$scope: c
}), c.setTitle("ĐỔI MẬT KHẨU"), b.user || b.$emit("unauthorized"), c.submit = function() {
return c.errors = {}, c.success = {}, c.data.formLoading = !0, c.model.oldPassword && c.model.newPassword ? c.model.newPassword !== c.model.newPassword2 ? (c.errors.message = "Vui lòng điền lại mật khẩu", c.data.formLoading = !1) : e.save({
oldPassword: c.model.oldPassword,
newPassword: c.model.newPassword
}, function(a) {
return c.success.message = "Thành công", c.data.formLoading = !1
}, c.processError) : (c.errors.message = "Vui lòng điền mật khẩu", c.data.formLoading = !1)
}
}, a.$inject = ["$controller", "$rootScope", "$scope", "$window", "UserUpdateService"], angular.module("app.controllers").config(b).controller("ProfilePasswordCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.profile", {
url: "profile/",
views: {
"main@": {
templateUrl: "templates/profile.html",
controller: "ProfileCtrl"
}
},
reloadOnSearch: !1
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e, f, g, h, i, j) {
return a("BaseCtrl", {
$scope: c
}), b.user || b.$emit("unauthorized"), c.setTitle("HỒ SƠ"), c.data.editing = null, c.data.step = 1, b.$watch("user", function(a) {
var d;
return b.user ? (c.model.fullName = b.user.fullName, c.model.email = b.user.email, c.model.mobile = null != (d = b.user.localAcc) ? d.mobile : void 0) : void 0
}, !0), c.mobileModel = {}, c.settingModel = d.localStorage.settingModel ? JSON.parse(d.localStorage.settingModel) : {
resolution: 1080,
language: "vi",
name: "vi",
subtitle: !0
}, e.search().code && (1 === e.search().code ? c.errors.message = e.search().description : 0 === e.search().code && (c.success.message = "Thành công"), e.url(e.path())), c.isModal = function() {
return 0 !== Object.keys(c.modal).length
}, c.$watch("settingModel", function(a) {
return d.localStorage.settingModel = JSON.stringify(a)
}, !0), c.edit = function(a) {
return c.data.editing = a, c.data.step = 1, c.mobileModel = {}
}, c.submitProfile = function() {
var a;
return c.errors = {}, a = void 0, "name" === c.data.editing ? a = c.model.fullName && c.model.fullName !== b.user.fullName ? {
fullName: c.model.fullName
} : null : "email" === c.data.editing && (a = c.model.email && c.model.email !== b.user.email ? {
email: c.model.email
} : null), a && i.save(a, function(a) {
return a.email = a.pendingEmail || a.email, d.localStorage.user = JSON.stringify(a), b.user = a
}, c.processError), c.data.editing = null
}, c.submitMobile = function() {
return c.errors = {}, c.data.formLoading = !0, 1 === c.data.step ? j.save(c.mobileModel, function() {
return c.data.step = 2, c.data.formLoading = !1
}, c.processError) : 2 === c.data.step ? c.mobileModel.code ? i.save(c.mobileModel, function(a) {
return d.localStorage.user = JSON.stringify(a), b.user = a, c.model.mobile = b.user.localAcc.mobile, c.data.formLoading = !1, c.data.editing = null, c.mobileModel = {}
}, c.processError) : c.data.formLoading = !1 : void 0
}, c.logout = function() {
return g.logout(), f.go("base.index")
}, c.doShowModal = function(a, b) {
return c.data.step = 1
}, c.doCloseModal = function(a, b, d) {
return c.errors = {}, c.success = {}
}
}, a.$inject = ["$controller", "$rootScope", "$scope", "$window", "$location", "$state", "Authenticator", "GlobalConfig", "UserUpdateService", "UserMobileGetService"], angular.module("app.controllers").config(b).controller("ProfileCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.recent", {
url: "recent/:page",
views: {
"main@": {
templateUrl: "templates/archives.html",
controller: "RecentCtrl"
}
}
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d) {
return a("BaseCtrl", {
$scope: b
}), b.setTitle("PHIM ĐÃ THUÊ"), b.data.hideTitle = !0, b.data.tab = "recent", b.data.formLoading = !0, d.get({
limit: 20,
page: c.page && parseInt(c.page - 1, 10)
}, function(a) {
return b.data.formLoading = !1, a ? (b.data.items = a.results || a.items, b.buildPagination(a.metadata), b.buildData()) : void 0
}, b.processError)
}, a.$inject = ["$controller", "$scope", "$stateParams", "UserRecentService"], angular.module("app.controllers").config(b).controller("RecentCtrl", a)
}.call(this),
function() {
"use strict";
var a, b;
b = function(a) {
return a.state("base.search", {
url: "search/:query/:page",
views: {
"main@": {
templateUrl: "templates/archives.html",
controller: "SearchCtrl"
}
},
reloadOnSearch: !1
})
}, b.$inject = ["$stateProvider"], a = function(a, b, c, d, e) {
return a("BaseCtrl", {
$scope: b
}), b.setTitle("TÌM KIẾM: " + d.query), b.data.formLoading = !0, e.get({
keyword: d.query,
limit: 20,
page: d.page && parseInt(d.page - 1, 10),
imageSize: "3x",
platform: "website"
}, function(a) {
return b.data.formLoading = !1, a ? (b.data.items = a.results, b.buildPagination(a.metadata), b.buildData()) : void 0
}, b.processError)
}, a.$inject = ["$controller", "$scope", "$location", "$stateParams", "SearchService"], angular.module("app.controllers").config(b).controller("SearchCtrl", a)
}.call(this),
function() {
var a;
a = function() {
var a, b;
return b = function(a, b, c) {
return b.find(".inner").css({
background: "#" + a.color.color
}), b.find(".blocker").css({
"background-image": "-webkit-linear-gradient(transparent, #" + a.color.color + ")"
}).css({
"background-image": "linear-gradient(transparent, #" + a.color.color + ")"
}), a.color.contrast ? b.addClass("black") : b.addClass("white")
}, a = {
link: b,
scope: {
color: "=bgColor"
}
}
}, angular.module("app").directive("bgColor", a)
}.call(this),
function() {
"use strict";
var a;
a = function(a, b) {
var c, d;
return d = function(c, d, e) {
var f;
return f = b(e.focusMe), c.$watch(f, function(b) {
return b ? a(function() {
return d[0].focus()
}) : void 0
})
}, c = {
link: d
}
}, a.$inject = ["$timeout", "$parse"], angular.module("app.directives").directive("focusMe", a)
}.call(this),
function() {
"use strict";
var a, b;
a = function() {
return {
restrict: "A",
scope: !1,
link: function(a, b, c) {
var d;
return d = angular.element('<div class="loading"></div>'), b.append(d), b.addClass("loading-container"), a.$watch(c.loadingContainer, function(a) {
return d.toggleClass("ng-hide", !a)
})
}
}
}, b = function() {
return {
restrict: "A",
scope: !1,
link: function(a, b, c) {
var d;
return d = angular.element('<div class="loading"></div>'), b.parent().append(d), b.parent().addClass("loading-image"), b.load(function() {
return b.parent().removeClass("loading-image")
})
}
}
}, angular.module("app.directives").directive("loadingContainer", a).directive("loadingImage", b)
}.call(this),
function() {
"use strict";
var a;
a = function(a) {
return a.$on("closeModal", function() {
return $(".wrapper").removeClass("out move-up move-down")
}), {
link: function(a, b, c) {
return b.click(function() {
return $(this).parents(".wrapper").addClass("out")
})
}
}
}, a.$inject = ["$rootScope"], angular.module("app.directives").directive("movieDetail", a)
}.call(this),
function() {
"use strict";
var a, b;
a = function(a) {
var b, c, d;
return d = !1, c = !1, b = !1, {
link: function(e, f, g) {
var h;
return f.hover(function(a) {
var e;
return clearTimeout(c), e = $(this).parents(".owl-item"), d = setTimeout(function() {
return $(".movie-list-area .item").removeClass("focus focus-left focus-right move-left move-right far-left far-right"), e.is(e.parent().find("> .active:first")) ? (e.find(".item").addClass("focus focus-left"), e.nextAll(".active").find(".item").addClass("far-right"), e.nextUntil(":not(.active)").next().find(".item").addClass("far-right")) : e.is(e.parent().find("> .active:last")) ? (e.find(".item").addClass("focus focus-right"), e.prevAll(".active").find(".item").addClass("far-left"), e.prevUntil(":not(.active)").prev().find(".item").addClass("far-left")) : (e.find(".item").addClass("focus"), e.prevAll(".active").find(".item").addClass("move-left"), e.nextAll(".active").find(".item").addClass("move-right"), e.prevUntil(":not(.active)").prev().find(".item").addClass("move-left"), e.nextUntil(":not(.active)").next().find(".item").addClass("move-right")), b = !0
}, b ? 0 : 400)
}, function(a) {
return clearTimeout(d)
}), h = a.$on("movieHoverOut", function() {
return b = !1
}), e.$on("$destroy", h)
}
}
}, a.$inject = ["$rootScope"], b = function(a) {
return {
link: function(b, c, d) {
return c.hover(function() {
return a.$emit("movieHoverOut"), $(".movie-list-area .item").removeClass("focus focus-left focus-right move-left move-right far-left far-right"), $(".movie-hover-bg").removeClass("active")
})
}
}
}, b.$inject = ["$rootScope"], angular.module("app.directives").directive("movieHover", a).directive("movieHoverParent", b)
}.call(this),
function() {
"use strict";
var a;
a = function(a, b) {
return {
require: "ngModel",
restrict: "A",
transclude: !0,
link: function(c, d, e, f, g) {
var h, i, j;
return i = null, h = null, j = b(e.owlCarousel)(c), c.$watch(e.owlCarouselView, function(a) {
return void 0 !== a && a !== !1 ? d.trigger("to.owl.carousel", [a, 1]) : void 0
}), c.$watch(e.ngModel, function(f) {
var k, l;
if (f && f.length) {
for (i && i.destroy(), d.empty(), h = b(e.owlCategory)(c), k = 0; k < f.length;) g(function(a, b) {
return b.item = f[k], b.index = k, d.append(a[1])
}), k++;
return l = void 0, "list" === j ? l = {
margin: 10,
responsiveRefreshRate: 5,
nav: !0,
navText: ["", ""],
slideBy: "page",
dots: !1,
mouseDrag: !1,
smartSpeed: 100,
responsive: {
0: {
stagePadding: 50,
items: 5
},
991: {
stagePadding: 70,
items: 6
},
1101: {
stagePadding: 70,
items: 8
},
1441: {
stagePadding: 80,
items: 10
},
1921: {
stagePadding: 80,
items: 12
},
2561: {
stagePadding: 80,
items: 14
}
}
} : "banner" === j ? l = {
margin: 2,
responsiveRefreshRate: 5,
nav: !0,
navText: ["", ""],
slideBy: "page",
dots: !1,
mouseDrag: !1,
smartSpeed: 100,
responsive: {
0: {
stagePadding: 50,
items: 3
},
991: {
stagePadding: 70,
items: 4
},
1101: {
stagePadding: 70,
items: 6
},
1441: {
stagePadding: 80,
items: 8
},
1921: {
stagePadding: 80,
items: 10
},
2561: {
stagePadding: 80,
items: 12
}
}
} : "detail" === j && (l = {
margin: 20,
responsiveRefreshRate: 5,
nav: !0,
navText: ["", ""],
slideBy: "page",
dots: !1,
mouseDrag: !1,
items: 1,
responsive: {
0: {
stagePadding: 50
},
1101: {
stagePadding: 200
},
1441: {
stagePadding: 400
}
}
}), l.onChanged = function(b) {
return "position" !== b.property.name || (c.modal.list || h) && h !== c.modal.list ? void 0 : c.$$phase ? a.$emit("moveTo", b.property.value) : c.$apply(function() {
return a.$emit("moveTo", b.property.value)
})
}, d.owlCarousel(l), i = d.data("owlCarousel")
}
})
}
}
}, a.$inject = ["$rootScope", "$parse"], angular.module("app.directives").directive("owlCarousel", a)
}.call(this),
function() {
"use strict";
var a;
a = function() {
return {
link: function(a, b, c) {
return b.scroll(function(a) {
return b.find(".parallax-item").css("transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-webkit-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-moz-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-ms-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)").css("-o-transform", "translate3d(0, -" + b.scrollTop() / 2 + "px, 0)")
})
}
}
}, angular.module("app.directives").directive("parallax", a)
}.call(this),
function() {
"use strict";
var a;
a = function() {
return {
link: function(a, b, c) {
return b.scroll(function(a) {
return b.scrollTop() > .4 * b.height() ? b.parents(".item").find(".fixed-header").addClass("active") : b.parents(".item").find(".fixed-header").removeClass("active")
})
}
}
}, angular.module("app.directives").directive("scrollParent", a)
}.call(this),
function() {
"use strict";
var a;
a = function() {
return {
link: function(a, b, c) {
return $(window).scroll(function(a) {
return $(window).scrollTop() > 0 ? b.addClass("scroll") : b.removeClass("scroll")
})
}
}
}, angular.module("app.directives").directive("scrollWindow", a)
}.call(this),
function() {
var a;
a = function(a, b) {
return a.pageTitle = "", {
set: function(c) {
return window.document.title = c + " | " + b, a.pageTitle = c
},
reset: function() {
return window.document.title = b, a.pageTitle = ""
}
}
}, a.$inject = ["$rootScope", "AppName"], angular.module("app").factory("PageTitle", a)
}.call(this),
function() {
"use strict";
var a;
a = function(a, b) {
return b(a.billing + "code")
}, a.$inject = ["GlobalConfig", "$resource"], angular.module("app.services").factory("CodeService", a)
}.call(this),
function() {
var a;
a = function(a) {
return this.hexToRgb = function(a) {
var b, c, d, e;
return e = function(a) {
return parseInt(b(a).substring(0, 2), 16)
}, d = function(a) {
return parseInt(b(a).substring(2, 4), 16)
}, c = function(a) {
return parseInt(b(a).substring(4, 6), 16)
}, b = function(a) {
return "#" === a.charAt(0) ? a.substring(1, 7) : a
}, [e(a), d(a), c(a)]
}, this.getRgb = function(a, b) {
var c, d;
return d = new Image, d.crossOrigin = "Anonymous", d.src = a, c = new ColorThief, d.onload = function() {
return b(c.getColor(d))
}
}, this.rgbToHex = function(a) {
var b;
return null == a && (a = [255, 255, 255]), b = a[0].toString(16) + a[1].toString(16) + a[2].toString(16)
}, this.blackOrWhite = function(a) {
var b;
return b = parseInt(a, 16) > 8388607.5 ? "black" : "white"
}, this.background = function(a, b) {
var c, d;
return null == b && (b = !0), d = "rgba(" + a[0] + ", " + a[1] + ", " + a[2] + ", 1) 30%, rgba(229, 229, 229, 0) 100%)", c = {
background: "-moz-linear-gradient(left, " + d,
background: "-webkit-linear-gradient(left, " + d,
background: "linear-gradient(to right, " + d
}, b || (d = "rgba(0,0,0,0) 0%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",0) 30%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",0.8) 50%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",1) 65%,\nrgba(" + a[0] + ", " + a[1] + ", " + a[2] + ",1) 100%)", c = {
background: "-moz-linear-gradient(top, " + d,
background: "-webkit-linear-gradient(top, " + d,
background: "linear-gradient(to bottom, " + d
}), c
}, null
}, a.$inject = ["$rootScope"], angular.module("app").service("ColorService", a)
}.call(this),
function() {
"use strict";
var a;
a = function(a, b) {
return b(a.billing + "history")
}, a.$inject = ["GlobalConfig", "$resource"], angular.module("app.services").factory("BillingHistoryService", a)
}.call(this),
function() {
"use strict";
angular.module("app.services").factory("HomeService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.content + "home")
}])
}.call(this),
function() {
"use strict";
angular.module("app.services").factory("LoginService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.auth + "auth/login")
}]).factory("LoginFacebookService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.auth + "auth/facebook")
}]).factory("ContentLoginService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.content + "auth/login")
}]).factory("PaymentLoginService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.payment + "auth/login")
}]).factory("BillingLoginService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.billing + "auth/login")
}])
}.call(this),
function() {
"use strict";
angular.module("app.services").factory("MenuService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.content + "menu/:id", {
id: "@id"
})
}])
}.call(this),
function() {
"use strict";
angular.module("app.services").factory("MovieService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.content + "movie/:id", {
id: "@id"
}, {
update: {
method: "PUT"
}
})
}])
}.call(this),
function() {
"use strict";
angular.module("app.services").factory("PackageService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.billing + "packages/:id", {
id: "@id"
})
}]).factory("PackageItemService", ["GlobalConfig", "$resource", function(a, b) {
return b(a.billing + "packages/:id/items", {
id: "@id"
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment