· 9 years ago · Nov 16, 2016, 07:04 PM
1window.onerror = function() {
2 var a = navigator.userAgent;
3 if (a.match(/MSIE/) && parseInt(a.match(/MSIE (\d+)/)[1], 10) < 10) return !1;
4 if (a.match(/Firefox/) && parseInt(a.match(/Firefox\/(\d+)/)[1], 10) < 29) return !1;
5 if (!a.match("Chrome") && a.match("Safari") && a.match(/Version\/(\d+.\d+)/)) {
6 var b = parseFloat(a.match(/Version\/(\d+.\d+)/)[1]);
7 if (5.1 > b) return !1
8 }
9 var c = !1,
10 d = ["doubleclick", "googleadservices", "googletagservices", "connect.facebook", "apis.google.com", "googlesyndication", "127.0.0.1", "www.google-analytics.com", "newrelic", "cloudfront", "nr-data"],
11 e = function(a, b) {
12 var c, d, e, f = new String,
13 g = b.length;
14 for (c = 0; c < a.length; c++) e = a.charAt(c), d = b.indexOf(e), d >= 0 && (e = b.charAt((d + g / 2) % g)), f += e;
15 return f
16 },
17 f = function(a) {
18 var b = new String;
19 return b = e(a, "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~")
20 },
21 g = function(a, b, c, d, e) {
22 "function" != typeof console.group && (console.group = console.warn), "function" != typeof console.groupEnd && (console.groupEnd = function() {}), console.groupEnd = console.groupEnd || function() {}, console.group("**** Typing.com Error Log ****"), console.warn("Please report this, in its entirety to Typing.com Support"), console.warn("Error Message:", a), console.warn("URL:", b), console.warn("Line Number:", c), console.warn("Column Number:", d), console.warn("Page:", location.href), console.warn("Browser:", navigator.userAgent), e && e.stack ? console.warn("Stack Trace:", e.stack) : console.warn("No Stack Trace Available"), console.groupEnd()
23 };
24 return function(a, b, e, h, i) {
25 if (a = a || "", b = b || "", a.match(/See almond README/)) return alert('Error: Typing.com has detected that you have an AdWare plugin installed called eShopComp. This AdWare is causing errors with Typing.com. You should remove this immediately. Google "remove eshopcomp" for information, or install an updated virus scanner.'), !0;
26 for (var j = 0; j < d.length; j++)
27 if (b.indexOf(d[j]) > -1) return !1;
28 if ("Error loading script" == a && 1 == e) return !0;
29 if ("Script error." == a && 0 == e) return !0;
30 if (a.indexOf("PropertiesImpl") > -1) return !0;
31 if (a.indexOf("The system cannot locate the resource specified.") > -1 && 36 == e) return !0;
32 if (g(a, b, e, h, i), location.hostname.match(/typing\.loc/) || location.hostname.match(/192\.168/)) throw i;
33 if (!b || c || -1 != document.cookie.indexOf("errorsent")) return !0;
34 var k = {};
35 Object.keys(localStorage).forEach(function(a) {
36 k[f(a)] = f(localStorage[a])
37 });
38 var l = {
39 message: a,
40 url: b,
41 href: location.href,
42 line: h ? e + ":" + h : e,
43 stack: "object" == typeof i && i.stack ? i.stack : "",
44 localStorage: JSON.stringify(k)
45 };
46 $ && $._lastXhr && (l.lastXhrUrl = $._lastXhr.url, l.lastXhrResponse = $._lastXhr.response);
47 var m = new XMLHttpRequest;
48 m.open("POST", "/apiv1/site/error", !0), m.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
49 var n = [];
50 for (var o in l) l.hasOwnProperty(o) && n.push(encodeURIComponent(o) + "=" + encodeURIComponent(l[o]));
51 return m.send(n.join("&")), c = !0, -1 != location.host.indexOf("typing.com") ? (console.log("Error Occurred"), console.dir(l), !0) : !1
52 }
53 }(),
54 function(a, b) {
55 "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
56 if (!a.document) throw new Error("jQuery requires a window with a document");
57 return b(a)
58 } : b(a)
59 }("undefined" != typeof window ? window : this, function(a, b) {
60 function c(a) {
61 var b = !!a && "length" in a && a.length,
62 c = fa.type(a);
63 return "function" === c || fa.isWindow(a) ? !1 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
64 }
65
66 function d(a, b, c) {
67 if (fa.isFunction(b)) return fa.grep(a, function(a, d) {
68 return !!b.call(a, d, a) !== c
69 });
70 if (b.nodeType) return fa.grep(a, function(a) {
71 return a === b !== c
72 });
73 if ("string" == typeof b) {
74 if (pa.test(b)) return fa.filter(b, a, c);
75 b = fa.filter(b, a)
76 }
77 return fa.grep(a, function(a) {
78 return _.call(b, a) > -1 !== c
79 })
80 }
81
82 function e(a, b) {
83 for (;
84 (a = a[b]) && 1 !== a.nodeType;);
85 return a
86 }
87
88 function f(a) {
89 var b = {};
90 return fa.each(a.match(va) || [], function(a, c) {
91 b[c] = !0
92 }), b
93 }
94
95 function g() {
96 X.removeEventListener("DOMContentLoaded", g), a.removeEventListener("load", g), fa.ready()
97 }
98
99 function h() {
100 this.expando = fa.expando + h.uid++
101 }
102
103 function i(a, b, c) {
104 var d;
105 if (void 0 === c && 1 === a.nodeType)
106 if (d = "data-" + b.replace(Ca, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) {
107 try {
108 c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : Ba.test(c) ? fa.parseJSON(c) : c
109 } catch (e) {}
110 Aa.set(a, b, c)
111 } else c = void 0;
112 return c
113 }
114
115 function j(a, b, c, d) {
116 var e, f = 1,
117 g = 20,
118 h = d ? function() {
119 return d.cur()
120 } : function() {
121 return fa.css(a, b, "")
122 },
123 i = h(),
124 j = c && c[3] || (fa.cssNumber[b] ? "" : "px"),
125 k = (fa.cssNumber[b] || "px" !== j && +i) && Ea.exec(fa.css(a, b));
126 if (k && k[3] !== j) {
127 j = j || k[3], c = c || [], k = +i || 1;
128 do f = f || ".5", k /= f, fa.style(a, b, k + j); while (f !== (f = h() / i) && 1 !== f && --g)
129 }
130 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
131 }
132
133 function k(a, b) {
134 var c = "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName(b || "*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll(b || "*") : [];
135 return void 0 === b || b && fa.nodeName(a, b) ? fa.merge([a], c) : c
136 }
137
138 function l(a, b) {
139 for (var c = 0, d = a.length; d > c; c++) za.set(a[c], "globalEval", !b || za.get(b[c], "globalEval"))
140 }
141
142 function m(a, b, c, d, e) {
143 for (var f, g, h, i, j, m, n = b.createDocumentFragment(), o = [], p = 0, q = a.length; q > p; p++)
144 if (f = a[p], f || 0 === f)
145 if ("object" === fa.type(f)) fa.merge(o, f.nodeType ? [f] : f);
146 else if (La.test(f)) {
147 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;
148 fa.merge(o, g.childNodes), g = n.firstChild, g.textContent = ""
149 } else o.push(b.createTextNode(f));
150 for (n.textContent = "", p = 0; f = o[p++];)
151 if (d && fa.inArray(f, d) > -1) e && e.push(f);
152 else if (j = fa.contains(f.ownerDocument, f), g = k(n.appendChild(f), "script"), j && l(g), c)
153 for (m = 0; f = g[m++];) Ja.test(f.type || "") && c.push(f);
154 return n
155 }
156
157 function n() {
158 return !0
159 }
160
161 function o() {
162 return !1
163 }
164
165 function p() {
166 try {
167 return X.activeElement
168 } catch (a) {}
169 }
170
171 function q(a, b, c, d, e, f) {
172 var g, h;
173 if ("object" == typeof b) {
174 "string" != typeof c && (d = d || c, c = void 0);
175 for (h in b) q(a, h, c, d, b[h], f);
176 return a
177 }
178 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;
179 else if (!e) return a;
180 return 1 === f && (g = e, e = function(a) {
181 return fa().off(a), g.apply(this, arguments)
182 }, e.guid = g.guid || (g.guid = fa.guid++)), a.each(function() {
183 fa.event.add(this, b, e, d, c)
184 })
185 }
186
187 function r(a, b) {
188 return fa.nodeName(a, "table") && fa.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
189 }
190
191 function s(a) {
192 return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a
193 }
194
195 function t(a) {
196 var b = Sa.exec(a.type);
197 return b ? a.type = b[1] : a.removeAttribute("type"), a
198 }
199
200 function u(a, b) {
201 var c, d, e, f, g, h, i, j;
202 if (1 === b.nodeType) {
203 if (za.hasData(a) && (f = za.access(a), g = za.set(b, f), j = f.events)) {
204 delete g.handle, g.events = {};
205 for (e in j)
206 for (c = 0, d = j[e].length; d > c; c++) fa.event.add(b, e, j[e][c])
207 }
208 Aa.hasData(a) && (h = Aa.access(a), i = fa.extend({}, h), Aa.set(b, i))
209 }
210 }
211
212 function v(a, b) {
213 var c = b.nodeName.toLowerCase();
214 "input" === c && Ha.test(a.type) ? b.checked = a.checked : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue)
215 }
216
217 function w(a, b, c, d) {
218 b = Z.apply([], b);
219 var e, f, g, h, i, j, l = 0,
220 n = a.length,
221 o = n - 1,
222 p = b[0],
223 q = fa.isFunction(p);
224 if (q || n > 1 && "string" == typeof p && !da.checkClone && Ra.test(p)) return a.each(function(e) {
225 var f = a.eq(e);
226 q && (b[0] = p.call(this, e, f.html())), w(f, b, c, d)
227 });
228 if (n && (e = m(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) {
229 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);
230 if (h)
231 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, "")))
232 }
233 return a
234 }
235
236 function x(a, b, c) {
237 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));
238 return a
239 }
240
241 function y(a, b) {
242 var c = fa(b.createElement(a)).appendTo(b.body),
243 d = fa.css(c[0], "display");
244 return c.detach(), d
245 }
246
247 function z(a) {
248 var b = X,
249 c = Va[a];
250 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
251 }
252
253 function A(a, b, c) {
254 var d, e, f, g, h = a.style;
255 return c = c || Ya(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, "" !== g && void 0 !== g || fa.contains(a.ownerDocument, a) || (g = fa.style(a, b)), c && !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
256 }
257
258 function B(a, b) {
259 return {
260 get: function() {
261 return a() ? void delete this.get : (this.get = b).apply(this, arguments)
262 }
263 }
264 }
265
266 function C(a) {
267 if (a in db) return a;
268 for (var b = a[0].toUpperCase() + a.slice(1), c = cb.length; c--;)
269 if (a = cb[c] + b, a in db) return a
270 }
271
272 function D(a, b, c) {
273 var d = Ea.exec(b);
274 return d ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") : b
275 }
276
277 function E(a, b, c, d, e) {
278 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)));
279 return g
280 }
281
282 function F(a, b, c) {
283 var d = !0,
284 e = "width" === b ? a.offsetWidth : a.offsetHeight,
285 f = Ya(a),
286 g = "border-box" === fa.css(a, "boxSizing", !1, f);
287 if (0 >= e || null == e) {
288 if (e = A(a, b, f), (0 > e || null == e) && (e = a.style[b]), Xa.test(e)) return e;
289 d = g && (da.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
290 }
291 return e + E(a, b, c || (g ? "border" : "content"), d, f) + "px"
292 }
293
294 function G(a, b) {
295 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"))));
296 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"));
297 return a
298 }
299
300 function H(a, b, c, d, e) {
301 return new H.prototype.init(a, b, c, d, e)
302 }
303
304 function I() {
305 return a.setTimeout(function() {
306 eb = void 0
307 }), eb = fa.now()
308 }
309
310 function J(a, b) {
311 var c, d = 0,
312 e = {
313 height: a
314 };
315 for (b = b ? 1 : 0; 4 > d; d += 2 - b) c = Fa[d], e["margin" + c] = e["padding" + c] = a;
316 return b && (e.opacity = e.width = a), e
317 }
318
319 function K(a, b, c) {
320 for (var d, e = (N.tweeners[b] || []).concat(N.tweeners["*"]), f = 0, g = e.length; g > f; f++)
321 if (d = e[f].call(c, b, a)) return d
322 }
323
324 function L(a, b, c) {
325 var d, e, f, g, h, i, j, k, l = this,
326 m = {},
327 n = a.style,
328 o = a.nodeType && Ga(a),
329 p = za.get(a, "fxshow");
330 c.queue || (h = fa._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
331 h.unqueued || i()
332 }), h.unqueued++, l.always(function() {
333 l.always(function() {
334 h.unqueued--, fa.queue(a, "fx").length || h.empty.fire()
335 })
336 })), 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() {
337 n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2]
338 }));
339 for (d in b)
340 if (e = b[d], gb.exec(e)) {
341 if (delete b[d], f = f || "toggle" === e, e === (o ? "hide" : "show")) {
342 if ("show" !== e || !p || void 0 === p[d]) continue;
343 o = !0
344 }
345 m[d] = p && p[d] || fa.style(a, d)
346 } else j = void 0;
347 if (fa.isEmptyObject(m)) "inline" === ("none" === j ? z(a.nodeName) : j) && (n.display = j);
348 else {
349 p ? "hidden" in p && (o = p.hidden) : p = za.access(a, "fxshow", {}), f && (p.hidden = !o), o ? fa(a).show() : l.done(function() {
350 fa(a).hide()
351 }), l.done(function() {
352 var b;
353 za.remove(a, "fxshow");
354 for (b in m) fa.style(a, b, m[b])
355 });
356 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))
357 }
358 }
359
360 function M(a, b) {
361 var c, d, e, f, g;
362 for (c in a)
363 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) {
364 f = g.expand(f), delete a[d];
365 for (c in f) c in a || (a[c] = f[c], b[c] = e)
366 } else b[d] = e
367 }
368
369 function N(a, b, c) {
370 var d, e, f = 0,
371 g = N.prefilters.length,
372 h = fa.Deferred().always(function() {
373 delete i.elem
374 }),
375 i = function() {
376 if (e) return !1;
377 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);
378 return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
379 },
380 j = h.promise({
381 elem: a,
382 props: fa.extend({}, b),
383 opts: fa.extend(!0, {
384 specialEasing: {},
385 easing: fa.easing._default
386 }, c),
387 originalProperties: b,
388 originalOptions: c,
389 startTime: eb || I(),
390 duration: c.duration,
391 tweens: [],
392 createTween: function(b, c) {
393 var d = fa.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
394 return j.tweens.push(d), d
395 },
396 stop: function(b) {
397 var c = 0,
398 d = b ? j.tweens.length : 0;
399 if (e) return this;
400 for (e = !0; d > c; c++) j.tweens[c].run(1);
401 return b ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) : h.rejectWith(a, [j, b]), this
402 }
403 }),
404 k = j.props;
405 for (M(k, j.opts.specialEasing); g > f; f++)
406 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;
407 return fa.map(k, K, j), fa.isFunction(j.opts.start) && j.opts.start.call(a, j), fa.fx.timer(fa.extend(i, {
408 elem: a,
409 anim: j,
410 queue: j.opts.queue
411 })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
412 }
413
414 function O(a) {
415 return a.getAttribute && a.getAttribute("class") || ""
416 }
417
418 function P(a) {
419 return function(b, c) {
420 "string" != typeof b && (c = b, b = "*");
421 var d, e = 0,
422 f = b.toLowerCase().match(va) || [];
423 if (fa.isFunction(c))
424 for (; d = f[e++];) "+" === d[0] ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
425 }
426 }
427
428 function Q(a, b, c, d) {
429 function e(h) {
430 var i;
431 return f[h] = !0, fa.each(a[h] || [], function(a, h) {
432 var j = h(b, c, d);
433 return "string" != typeof j || g || f[j] ? g ? !(i = j) : void 0 : (b.dataTypes.unshift(j), e(j), !1)
434 }), i
435 }
436 var f = {},
437 g = a === Ab;
438 return e(b.dataTypes[0]) || !f["*"] && e("*")
439 }
440
441 function R(a, b) {
442 var c, d, e = fa.ajaxSettings.flatOptions || {};
443 for (c in b) void 0 !== b[c] && ((e[c] ? a : d || (d = {}))[c] = b[c]);
444 return d && fa.extend(!0, a, d), a
445 }
446
447 function S(a, b, c) {
448 for (var d, e, f, g, h = a.contents, i = a.dataTypes;
449 "*" === i[0];) i.shift(), void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type"));
450 if (d)
451 for (e in h)
452 if (h[e] && h[e].test(d)) {
453 i.unshift(e);
454 break
455 }
456 if (i[0] in c) f = i[0];
457 else {
458 for (e in c) {
459 if (!i[0] || a.converters[e + " " + i[0]]) {
460 f = e;
461 break
462 }
463 g || (g = e)
464 }
465 f = f || g
466 }
467 return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
468 }
469
470 function T(a, b, c, d) {
471 var e, f, g, h, i, j = {},
472 k = a.dataTypes.slice();
473 if (k[1])
474 for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
475 for (f = k.shift(); f;)
476 if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
477 if ("*" === f) f = i;
478 else if ("*" !== i && i !== f) {
479 if (g = j[i + " " + f] || j["* " + f], !g)
480 for (e in j)
481 if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
482 g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
483 break
484 }
485 if (g !== !0)
486 if (g && a["throws"]) b = g(b);
487 else try {
488 b = g(b)
489 } catch (l) {
490 return {
491 state: "parsererror",
492 error: g ? l : "No conversion from " + i + " to " + f
493 }
494 }
495 }
496 return {
497 state: "success",
498 data: b
499 }
500 }
501
502 function U(a, b, c, d) {
503 var e;
504 if (fa.isArray(b)) fa.each(b, function(b, e) {
505 c || Eb.test(a) ? d(a, e) : U(a + "[" + ("object" == typeof e && null != e ? b : "") + "]", e, c, d)
506 });
507 else if (c || "object" !== fa.type(b)) d(a, b);
508 else
509 for (e in b) U(a + "[" + e + "]", b[e], c, d)
510 }
511
512 function V(a) {
513 return fa.isWindow(a) ? a : 9 === a.nodeType && a.defaultView
514 }
515 var W = [],
516 X = a.document,
517 Y = W.slice,
518 Z = W.concat,
519 $ = W.push,
520 _ = W.indexOf,
521 aa = {},
522 ba = aa.toString,
523 ca = aa.hasOwnProperty,
524 da = {},
525 ea = "2.2.4",
526 fa = function(a, b) {
527 return new fa.fn.init(a, b)
528 },
529 ga = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
530 ha = /^-ms-/,
531 ia = /-([\da-z])/gi,
532 ja = function(a, b) {
533 return b.toUpperCase()
534 };
535 fa.fn = fa.prototype = {
536 jquery: ea,
537 constructor: fa,
538 selector: "",
539 length: 0,
540 toArray: function() {
541 return Y.call(this)
542 },
543 get: function(a) {
544 return null != a ? 0 > a ? this[a + this.length] : this[a] : Y.call(this)
545 },
546 pushStack: function(a) {
547 var b = fa.merge(this.constructor(), a);
548 return b.prevObject = this, b.context = this.context, b
549 },
550 each: function(a) {
551 return fa.each(this, a)
552 },
553 map: function(a) {
554 return this.pushStack(fa.map(this, function(b, c) {
555 return a.call(b, c, b)
556 }))
557 },
558 slice: function() {
559 return this.pushStack(Y.apply(this, arguments))
560 },
561 first: function() {
562 return this.eq(0)
563 },
564 last: function() {
565 return this.eq(-1)
566 },
567 eq: function(a) {
568 var b = this.length,
569 c = +a + (0 > a ? b : 0);
570 return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
571 },
572 end: function() {
573 return this.prevObject || this.constructor()
574 },
575 push: $,
576 sort: W.sort,
577 splice: W.splice
578 }, fa.extend = fa.fn.extend = function() {
579 var a, b, c, d, e, f, g = arguments[0] || {},
580 h = 1,
581 i = arguments.length,
582 j = !1;
583 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++)
584 if (null != (a = arguments[h]))
585 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));
586 return g
587 }, fa.extend({
588 expando: "jQuery" + (ea + Math.random()).replace(/\D/g, ""),
589 isReady: !0,
590 error: function(a) {
591 throw new Error(a)
592 },
593 noop: function() {},
594 isFunction: function(a) {
595 return "function" === fa.type(a)
596 },
597 isArray: Array.isArray,
598 isWindow: function(a) {
599 return null != a && a === a.window
600 },
601 isNumeric: function(a) {
602 var b = a && a.toString();
603 return !fa.isArray(a) && b - parseFloat(b) + 1 >= 0
604 },
605 isPlainObject: function(a) {
606 var b;
607 if ("object" !== fa.type(a) || a.nodeType || fa.isWindow(a)) return !1;
608 if (a.constructor && !ca.call(a, "constructor") && !ca.call(a.constructor.prototype || {}, "isPrototypeOf")) return !1;
609 for (b in a);
610 return void 0 === b || ca.call(a, b)
611 },
612 isEmptyObject: function(a) {
613 var b;
614 for (b in a) return !1;
615 return !0
616 },
617 type: function(a) {
618 return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? aa[ba.call(a)] || "object" : typeof a
619 },
620 globalEval: function(a) {
621 var b, c = eval;
622 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))
623 },
624 camelCase: function(a) {
625 return a.replace(ha, "ms-").replace(ia, ja)
626 },
627 nodeName: function(a, b) {
628 return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
629 },
630 each: function(a, b) {
631 var d, e = 0;
632 if (c(a))
633 for (d = a.length; d > e && b.call(a[e], e, a[e]) !== !1; e++);
634 else
635 for (e in a)
636 if (b.call(a[e], e, a[e]) === !1) break; return a
637 },
638 trim: function(a) {
639 return null == a ? "" : (a + "").replace(ga, "")
640 },
641 makeArray: function(a, b) {
642 var d = b || [];
643 return null != a && (c(Object(a)) ? fa.merge(d, "string" == typeof a ? [a] : a) : $.call(d, a)), d
644 },
645 inArray: function(a, b, c) {
646 return null == b ? -1 : _.call(b, a, c)
647 },
648 merge: function(a, b) {
649 for (var c = +b.length, d = 0, e = a.length; c > d; d++) a[e++] = b[d];
650 return a.length = e, a
651 },
652 grep: function(a, b, c) {
653 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]);
654 return e
655 },
656 map: function(a, b, d) {
657 var e, f, g = 0,
658 h = [];
659 if (c(a))
660 for (e = a.length; e > g; g++) f = b(a[g], g, d), null != f && h.push(f);
661 else
662 for (g in a) f = b(a[g], g, d), null != f && h.push(f);
663 return Z.apply([], h)
664 },
665 guid: 1,
666 proxy: function(a, b) {
667 var c, d, e;
668 return "string" == typeof b && (c = a[b], b = a, a = c), fa.isFunction(a) ? (d = Y.call(arguments, 2), e = function() {
669 return a.apply(b || this, d.concat(Y.call(arguments)))
670 }, e.guid = a.guid = a.guid || fa.guid++, e) : void 0
671 },
672 now: Date.now,
673 support: da
674 }), "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) {
675 aa["[object " + b + "]"] = b.toLowerCase()
676 });
677 var ka = function(a) {
678 function b(a, b, c, d) {
679 var e, f, g, h, i, j, l, n, o = b && b.ownerDocument,
680 p = b ? b.nodeType : 9;
681 if (c = c || [], "string" != typeof a || !a || 1 !== p && 9 !== p && 11 !== p) return c;
682 if (!d && ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, I)) {
683 if (11 !== p && (j = ra.exec(a)))
684 if (e = j[1]) {
685 if (9 === p) {
686 if (!(g = b.getElementById(e))) return c;
687 if (g.id === e) return c.push(g), c
688 } else if (o && (g = o.getElementById(e)) && M(b, g) && g.id === e) return c.push(g), c
689 } else {
690 if (j[2]) return $.apply(c, b.getElementsByTagName(a)), c;
691 if ((e = j[3]) && v.getElementsByClassName && b.getElementsByClassName) return $.apply(c, b.getElementsByClassName(e)), c
692 }
693 if (v.qsa && !T[a + " "] && (!J || !J.test(a))) {
694 if (1 !== p) o = b, n = a;
695 else if ("object" !== b.nodeName.toLowerCase()) {
696 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]);
697 n = l.join(","), o = sa.test(a) && k(b.parentNode) || b
698 }
699 if (n) try {
700 return $.apply(c, o.querySelectorAll(n)), c
701 } catch (q) {} finally {
702 h === N && b.removeAttribute("id")
703 }
704 }
705 }
706 return B(a.replace(ha, "$1"), b, c, d)
707 }
708
709 function c() {
710 function a(c, d) {
711 return b.push(c + " ") > w.cacheLength && delete a[b.shift()], a[c + " "] = d
712 }
713 var b = [];
714 return a
715 }
716
717 function d(a) {
718 return a[N] = !0, a
719 }
720
721 function e(a) {
722 var b = G.createElement("div");
723 try {
724 return !!a(b)
725 } catch (c) {
726 return !1
727 } finally {
728 b.parentNode && b.parentNode.removeChild(b), b = null
729 }
730 }
731
732 function f(a, b) {
733 for (var c = a.split("|"), d = c.length; d--;) w.attrHandle[c[d]] = b
734 }
735
736 function g(a, b) {
737 var c = b && a,
738 d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || V) - (~a.sourceIndex || V);
739 if (d) return d;
740 if (c)
741 for (; c = c.nextSibling;)
742 if (c === b) return -1;
743 return a ? 1 : -1
744 }
745
746 function h(a) {
747 return function(b) {
748 var c = b.nodeName.toLowerCase();
749 return "input" === c && b.type === a
750 }
751 }
752
753 function i(a) {
754 return function(b) {
755 var c = b.nodeName.toLowerCase();
756 return ("input" === c || "button" === c) && b.type === a
757 }
758 }
759
760 function j(a) {
761 return d(function(b) {
762 return b = +b, d(function(c, d) {
763 for (var e, f = a([], c.length, b), g = f.length; g--;) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
764 })
765 })
766 }
767
768 function k(a) {
769 return a && "undefined" != typeof a.getElementsByTagName && a
770 }
771
772 function l() {}
773
774 function m(a) {
775 for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
776 return d
777 }
778
779 function n(a, b, c) {
780 var d = b.dir,
781 e = c && "parentNode" === d,
782 f = Q++;
783 return b.first ? function(b, c, f) {
784 for (; b = b[d];)
785 if (1 === b.nodeType || e) return a(b, c, f)
786 } : function(b, c, g) {
787 var h, i, j, k = [P, f];
788 if (g) {
789 for (; b = b[d];)
790 if ((1 === b.nodeType || e) && a(b, c, g)) return !0
791 } else
792 for (; b = b[d];)
793 if (1 === b.nodeType || e) {
794 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];
795 if (i[d] = k, k[2] = a(b, c, g)) return !0
796 }
797 }
798 }
799
800 function o(a) {
801 return a.length > 1 ? function(b, c, d) {
802 for (var e = a.length; e--;)
803 if (!a[e](b, c, d)) return !1;
804 return !0
805 } : a[0]
806 }
807
808 function p(a, c, d) {
809 for (var e = 0, f = c.length; f > e; e++) b(a, c[e], d);
810 return d
811 }
812
813 function q(a, b, c, d, e) {
814 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)));
815 return g
816 }
817
818 function r(a, b, c, e, f, g) {
819 return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function(d, g, h, i) {
820 var j, k, l, m = [],
821 n = [],
822 o = g.length,
823 r = d || p(b || "*", h.nodeType ? [h] : h, []),
824 s = !a || !d && b ? r : q(r, m, a, h, i),
825 t = c ? f || (d ? a : o || e) ? [] : g : s;
826 if (c && c(s, t, h, i), e)
827 for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l));
828 if (d) {
829 if (f || a) {
830 if (f) {
831 for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l);
832 f(null, t = [], j, i)
833 }
834 for (k = t.length; k--;)(l = t[k]) && (j = f ? aa(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l))
835 }
836 } else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : $.apply(g, t)
837 })
838 }
839
840 function s(a) {
841 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) {
842 return a === b
843 }, g, !0), j = n(function(a) {
844 return aa(b, a) > -1
845 }, g, !0), k = [function(a, c, d) {
846 var e = !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d));
847 return b = null, e
848 }]; e > h; h++)
849 if (c = w.relative[a[h].type]) k = [n(o(k), c)];
850 else {
851 if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) {
852 for (d = ++h; e > d && !w.relative[a[d].type]; d++);
853 return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({
854 value: " " === a[h - 2].type ? "*" : ""
855 })).replace(ha, "$1"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a))
856 }
857 k.push(c)
858 }
859 return o(k)
860 }
861
862 function t(a, c) {
863 var e = c.length > 0,
864 f = a.length > 0,
865 g = function(d, g, h, i, j) {
866 var k, l, m, n = 0,
867 o = "0",
868 p = d && [],
869 r = [],
870 s = C,
871 t = d || f && w.find.TAG("*", j),
872 u = P += null == s ? 1 : Math.random() || .1,
873 v = t.length;
874 for (j && (C = g === G || g || j); o !== v && null != (k = t[o]); o++) {
875 if (f && k) {
876 for (l = 0, g || k.ownerDocument === G || (F(k), h = !I); m = a[l++];)
877 if (m(k, g || G, h)) {
878 i.push(k);
879 break
880 }
881 j && (P = u)
882 }
883 e && ((k = !m && k) && n--, d && p.push(k))
884 }
885 if (n += o, e && o !== n) {
886 for (l = 0; m = c[l++];) m(p, r, g, h);
887 if (d) {
888 if (n > 0)
889 for (; o--;) p[o] || r[o] || (r[o] = Y.call(i));
890 r = q(r)
891 }
892 $.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i)
893 }
894 return j && (P = u, C = s), p
895 };
896 return e ? d(g) : g
897 }
898 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,
899 O = a.document,
900 P = 0,
901 Q = 0,
902 R = c(),
903 S = c(),
904 T = c(),
905 U = function(a, b) {
906 return a === b && (E = !0), 0
907 },
908 V = 1 << 31,
909 W = {}.hasOwnProperty,
910 X = [],
911 Y = X.pop,
912 Z = X.push,
913 $ = X.push,
914 _ = X.slice,
915 aa = function(a, b) {
916 for (var c = 0, d = a.length; d > c; c++)
917 if (a[c] === b) return c;
918 return -1
919 },
920 ba = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
921 ca = "[\\x20\\t\\r\\n\\f]",
922 da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
923 ea = "\\[" + ca + "*(" + da + ")(?:" + ca + "*([*^$|!~]?=)" + ca + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + ca + "*\\]",
924 fa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ea + ")*)|.*)\\)|)",
925 ga = new RegExp(ca + "+", "g"),
926 ha = new RegExp("^" + ca + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ca + "+$", "g"),
927 ia = new RegExp("^" + ca + "*," + ca + "*"),
928 ja = new RegExp("^" + ca + "*([>+~]|" + ca + ")" + ca + "*"),
929 ka = new RegExp("=" + ca + "*([^\\]'\"]*?)" + ca + "*\\]", "g"),
930 la = new RegExp(fa),
931 ma = new RegExp("^" + da + "$"),
932 na = {
933 ID: new RegExp("^#(" + da + ")"),
934 CLASS: new RegExp("^\\.(" + da + ")"),
935 TAG: new RegExp("^(" + da + "|[*])"),
936 ATTR: new RegExp("^" + ea),
937 PSEUDO: new RegExp("^" + fa),
938 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ca + "*(even|odd|(([+-]|)(\\d*)n|)" + ca + "*(?:([+-]|)" + ca + "*(\\d+)|))" + ca + "*\\)|)", "i"),
939 bool: new RegExp("^(?:" + ba + ")$", "i"),
940 needsContext: new RegExp("^" + ca + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ca + "*((?:-\\d)?\\d*)" + ca + "*\\)|)(?=[^-]|$)", "i")
941 },
942 oa = /^(?:input|select|textarea|button)$/i,
943 pa = /^h\d$/i,
944 qa = /^[^{]+\{\s*\[native \w/,
945 ra = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
946 sa = /[+~]/,
947 ta = /'|\\/g,
948 ua = new RegExp("\\\\([\\da-f]{1,6}" + ca + "?|(" + ca + ")|.)", "ig"),
949 va = function(a, b, c) {
950 var d = "0x" + b - 65536;
951 return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
952 },
953 wa = function() {
954 F()
955 };
956 try {
957 $.apply(X = _.call(O.childNodes), O.childNodes), X[O.childNodes.length].nodeType
958 } catch (xa) {
959 $ = {
960 apply: X.length ? function(a, b) {
961 Z.apply(a, _.call(b))
962 } : function(a, b) {
963 for (var c = a.length, d = 0; a[c++] = b[d++];);
964 a.length = c - 1
965 }
966 }
967 }
968 v = b.support = {}, y = b.isXML = function(a) {
969 var b = a && (a.ownerDocument || a).documentElement;
970 return b ? "HTML" !== b.nodeName : !1
971 }, F = b.setDocument = function(a) {
972 var b, c, d = a ? a.ownerDocument || a : O;
973 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) {
974 return a.className = "i", !a.getAttribute("className")
975 }), v.getElementsByTagName = e(function(a) {
976 return a.appendChild(G.createComment("")), !a.getElementsByTagName("*").length
977 }), v.getElementsByClassName = qa.test(G.getElementsByClassName), v.getById = e(function(a) {
978 return H.appendChild(a).id = N, !G.getElementsByName || !G.getElementsByName(N).length
979 }), v.getById ? (w.find.ID = function(a, b) {
980 if ("undefined" != typeof b.getElementById && I) {
981 var c = b.getElementById(a);
982 return c ? [c] : []
983 }
984 }, w.filter.ID = function(a) {
985 var b = a.replace(ua, va);
986 return function(a) {
987 return a.getAttribute("id") === b
988 }
989 }) : (delete w.find.ID, w.filter.ID = function(a) {
990 var b = a.replace(ua, va);
991 return function(a) {
992 var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id");
993 return c && c.value === b
994 }
995 }), w.find.TAG = v.getElementsByTagName ? function(a, b) {
996 return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : v.qsa ? b.querySelectorAll(a) : void 0
997 } : function(a, b) {
998 var c, d = [],
999 e = 0,
1000 f = b.getElementsByTagName(a);
1001 if ("*" === a) {
1002 for (; c = f[e++];) 1 === c.nodeType && d.push(c);
1003 return d
1004 }
1005 return f
1006 }, w.find.CLASS = v.getElementsByClassName && function(a, b) {
1007 return "undefined" != typeof b.getElementsByClassName && I ? b.getElementsByClassName(a) : void 0
1008 }, K = [], J = [], (v.qsa = qa.test(G.querySelectorAll)) && (e(function(a) {
1009 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(".#.+[+~]")
1010 }), e(function(a) {
1011 var b = G.createElement("input");
1012 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(",.*:")
1013 })), (v.matchesSelector = qa.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function(a) {
1014 v.disconnectedMatch = L.call(a, "div"), L.call(a, "[s!='']:x"), K.push("!=", fa)
1015 }), 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) {
1016 var c = 9 === a.nodeType ? a.documentElement : a,
1017 d = b && b.parentNode;
1018 return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
1019 } : function(a, b) {
1020 if (b)
1021 for (; b = b.parentNode;)
1022 if (b === a) return !0;
1023 return !1
1024 }, U = b ? function(a, b) {
1025 if (a === b) return E = !0, 0;
1026 var c = !a.compareDocumentPosition - !b.compareDocumentPosition;
1027 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)
1028 } : function(a, b) {
1029 if (a === b) return E = !0, 0;
1030 var c, d = 0,
1031 e = a.parentNode,
1032 f = b.parentNode,
1033 h = [a],
1034 i = [b];
1035 if (!e || !f) return a === G ? -1 : b === G ? 1 : e ? -1 : f ? 1 : D ? aa(D, a) - aa(D, b) : 0;
1036 if (e === f) return g(a, b);
1037 for (c = a; c = c.parentNode;) h.unshift(c);
1038 for (c = b; c = c.parentNode;) i.unshift(c);
1039 for (; h[d] === i[d];) d++;
1040 return d ? g(h[d], i[d]) : h[d] === O ? -1 : i[d] === O ? 1 : 0
1041 }, G) : G
1042 }, b.matches = function(a, c) {
1043 return b(a, null, null, c)
1044 }, b.matchesSelector = function(a, c) {
1045 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 {
1046 var d = L.call(a, c);
1047 if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
1048 } catch (e) {}
1049 return b(c, G, null, [a]).length > 0
1050 }, b.contains = function(a, b) {
1051 return (a.ownerDocument || a) !== G && F(a), M(a, b)
1052 }, b.attr = function(a, b) {
1053 (a.ownerDocument || a) !== G && F(a);
1054 var c = w.attrHandle[b.toLowerCase()],
1055 d = c && W.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0;
1056 return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
1057 }, b.error = function(a) {
1058 throw new Error("Syntax error, unrecognized expression: " + a)
1059 }, b.uniqueSort = function(a) {
1060 var b, c = [],
1061 d = 0,
1062 e = 0;
1063 if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) {
1064 for (; b = a[e++];) b === a[e] && (d = c.push(e));
1065 for (; d--;) a.splice(c[d], 1)
1066 }
1067 return D = null, a
1068 }, x = b.getText = function(a) {
1069 var b, c = "",
1070 d = 0,
1071 e = a.nodeType;
1072 if (e) {
1073 if (1 === e || 9 === e || 11 === e) {
1074 if ("string" == typeof a.textContent) return a.textContent;
1075 for (a = a.firstChild; a; a = a.nextSibling) c += x(a)
1076 } else if (3 === e || 4 === e) return a.nodeValue
1077 } else
1078 for (; b = a[d++];) c += x(b);
1079 return c
1080 }, w = b.selectors = {
1081 cacheLength: 50,
1082 createPseudo: d,
1083 match: na,
1084 attrHandle: {},
1085 find: {},
1086 relative: {
1087 ">": {
1088 dir: "parentNode",
1089 first: !0
1090 },
1091 " ": {
1092 dir: "parentNode"
1093 },
1094 "+": {
1095 dir: "previousSibling",
1096 first: !0
1097 },
1098 "~": {
1099 dir: "previousSibling"
1100 }
1101 },
1102 preFilter: {
1103 ATTR: function(a) {
1104 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)
1105 },
1106 CHILD: function(a) {
1107 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
1108 },
1109 PSEUDO: function(a) {
1110 var b, c = !a[6] && a[2];
1111 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))
1112 }
1113 },
1114 filter: {
1115 TAG: function(a) {
1116 var b = a.replace(ua, va).toLowerCase();
1117 return "*" === a ? function() {
1118 return !0
1119 } : function(a) {
1120 return a.nodeName && a.nodeName.toLowerCase() === b
1121 }
1122 },
1123 CLASS: function(a) {
1124 var b = R[a + " "];
1125 return b || (b = new RegExp("(^|" + ca + ")" + a + "(" + ca + "|$)")) && R(a, function(a) {
1126 return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
1127 })
1128 },
1129 ATTR: function(a, c, d) {
1130 return function(e) {
1131 var f = b.attr(e, a);
1132 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
1133 }
1134 },
1135 CHILD: function(a, b, c, d, e) {
1136 var f = "nth" !== a.slice(0, 3),
1137 g = "last" !== a.slice(-4),
1138 h = "of-type" === b;
1139 return 1 === d && 0 === e ? function(a) {
1140 return !!a.parentNode
1141 } : function(b, c, i) {
1142 var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
1143 q = b.parentNode,
1144 r = h && b.nodeName.toLowerCase(),
1145 s = !i && !h,
1146 t = !1;
1147 if (q) {
1148 if (f) {
1149 for (; p;) {
1150 for (m = b; m = m[p];)
1151 if (h ? m.nodeName.toLowerCase() === r : 1 === m.nodeType) return !1;
1152 o = p = "only" === a && !o && "nextSibling"
1153 }
1154 return !0
1155 }
1156 if (o = [g ? q.firstChild : q.lastChild], g && s) {
1157 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();)
1158 if (1 === m.nodeType && ++t && m === b) {
1159 k[a] = [P, n, t];
1160 break
1161 }
1162 } 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)
1163 for (;
1164 (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)););
1165 return t -= e, t === d || t % d === 0 && t / d >= 0
1166 }
1167 }
1168 },
1169 PSEUDO: function(a, c) {
1170 var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error("unsupported pseudo: " + a);
1171 return f[N] ? f(c) : f.length > 1 ? (e = [a, a, "", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function(a, b) {
1172 for (var d, e = f(a, c), g = e.length; g--;) d = aa(a, e[g]), a[d] = !(b[d] = e[g])
1173 }) : function(a) {
1174 return f(a, 0, e)
1175 }) : f
1176 }
1177 },
1178 pseudos: {
1179 not: d(function(a) {
1180 var b = [],
1181 c = [],
1182 e = A(a.replace(ha, "$1"));
1183 return e[N] ? d(function(a, b, c, d) {
1184 for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f))
1185 }) : function(a, d, f) {
1186 return b[0] = a, e(b, null, f, c), b[0] = null, !c.pop()
1187 }
1188 }),
1189 has: d(function(a) {
1190 return function(c) {
1191 return b(a, c).length > 0
1192 }
1193 }),
1194 contains: d(function(a) {
1195 return a = a.replace(ua, va),
1196 function(b) {
1197 return (b.textContent || b.innerText || x(b)).indexOf(a) > -1
1198 }
1199 }),
1200 lang: d(function(a) {
1201 return ma.test(a || "") || b.error("unsupported lang: " + a), a = a.replace(ua, va).toLowerCase(),
1202 function(b) {
1203 var c;
1204 do
1205 if (c = I ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-");
1206 while ((b = b.parentNode) && 1 === b.nodeType);
1207 return !1
1208 }
1209 }),
1210 target: function(b) {
1211 var c = a.location && a.location.hash;
1212 return c && c.slice(1) === b.id
1213 },
1214 root: function(a) {
1215 return a === H
1216 },
1217 focus: function(a) {
1218 return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
1219 },
1220 enabled: function(a) {
1221 return a.disabled === !1
1222 },
1223 disabled: function(a) {
1224 return a.disabled === !0
1225 },
1226 checked: function(a) {
1227 var b = a.nodeName.toLowerCase();
1228 return "input" === b && !!a.checked || "option" === b && !!a.selected
1229 },
1230 selected: function(a) {
1231 return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
1232 },
1233 empty: function(a) {
1234 for (a = a.firstChild; a; a = a.nextSibling)
1235 if (a.nodeType < 6) return !1;
1236 return !0
1237 },
1238 parent: function(a) {
1239 return !w.pseudos.empty(a)
1240 },
1241 header: function(a) {
1242 return pa.test(a.nodeName)
1243 },
1244 input: function(a) {
1245 return oa.test(a.nodeName)
1246 },
1247 button: function(a) {
1248 var b = a.nodeName.toLowerCase();
1249 return "input" === b && "button" === a.type || "button" === b
1250 },
1251 text: function(a) {
1252 var b;
1253 return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
1254 },
1255 first: j(function() {
1256 return [0]
1257 }),
1258 last: j(function(a, b) {
1259 return [b - 1]
1260 }),
1261 eq: j(function(a, b, c) {
1262 return [0 > c ? c + b : c]
1263 }),
1264 even: j(function(a, b) {
1265 for (var c = 0; b > c; c += 2) a.push(c);
1266 return a
1267 }),
1268 odd: j(function(a, b) {
1269 for (var c = 1; b > c; c += 2) a.push(c);
1270 return a
1271 }),
1272 lt: j(function(a, b, c) {
1273 for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
1274 return a
1275 }),
1276 gt: j(function(a, b, c) {
1277 for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
1278 return a
1279 })
1280 }
1281 }, w.pseudos.nth = w.pseudos.eq;
1282 for (u in {
1283 radio: !0,
1284 checkbox: !0,
1285 file: !0,
1286 password: !0,
1287 image: !0
1288 }) w.pseudos[u] = h(u);
1289 for (u in {
1290 submit: !0,
1291 reset: !0
1292 }) w.pseudos[u] = i(u);
1293 return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function(a, c) {
1294 var d, e, f, g, h, i, j, k = S[a + " "];
1295 if (k) return c ? 0 : k.slice(0);
1296 for (h = a, i = [], j = w.preFilter; h;) {
1297 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({
1298 value: d,
1299 type: e[0].replace(ha, " ")
1300 }), h = h.slice(d.length));
1301 for (g in w.filter) !(e = na[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({
1302 value: d,
1303 type: g,
1304 matches: e
1305 }), h = h.slice(d.length));
1306 if (!d) break
1307 }
1308 return c ? h.length : h ? b.error(a) : S(a, i).slice(0)
1309 }, A = b.compile = function(a, b) {
1310 var c, d = [],
1311 e = [],
1312 f = T[a + " "];
1313 if (!f) {
1314 for (b || (b = z(a)), c = b.length; c--;) f = s(b[c]), f[N] ? d.push(f) : e.push(f);
1315 f = T(a, t(e, d)), f.selector = a
1316 }
1317 return f
1318 }, B = b.select = function(a, b, c, d) {
1319 var e, f, g, h, i, j = "function" == typeof a && a,
1320 l = !d && z(a = j.selector || a);
1321 if (c = c || [], 1 === l.length) {
1322 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]) {
1323 if (b = (w.find.ID(g.matches[0].replace(ua, va), b) || [])[0], !b) return c;
1324 j && (b = b.parentNode), a = a.slice(f.shift().value.length)
1325 }
1326 for (e = na.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);)
1327 if ((i = w.find[h]) && (d = i(g.matches[0].replace(ua, va), sa.test(f[0].type) && k(b.parentNode) || b))) {
1328 if (f.splice(e, 1), a = d.length && m(f), !a) return $.apply(c, d), c;
1329 break
1330 }
1331 }
1332 return (j || A(a, l))(d, b, !I, c, !b || sa.test(a) && k(b.parentNode) || b), c
1333 }, v.sortStable = N.split("").sort(U).join("") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function(a) {
1334 return 1 & a.compareDocumentPosition(G.createElement("div"))
1335 }), e(function(a) {
1336 return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
1337 }) || f("type|href|height|width", function(a, b, c) {
1338 return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
1339 }), v.attributes && e(function(a) {
1340 return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
1341 }) || f("value", function(a, b, c) {
1342 return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
1343 }), e(function(a) {
1344 return null == a.getAttribute("disabled")
1345 }) || f(ba, function(a, b, c) {
1346 var d;
1347 return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
1348 }), b
1349 }(a);
1350 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;
1351 var la = function(a, b, c) {
1352 for (var d = [], e = void 0 !== c;
1353 (a = a[b]) && 9 !== a.nodeType;)
1354 if (1 === a.nodeType) {
1355 if (e && fa(a).is(c)) break;
1356 d.push(a)
1357 }
1358 return d
1359 },
1360 ma = function(a, b) {
1361 for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
1362 return c
1363 },
1364 na = fa.expr.match.needsContext,
1365 oa = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,
1366 pa = /^.[^:#\[\.,]*$/;
1367 fa.filter = function(a, b, c) {
1368 var d = b[0];
1369 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) {
1370 return 1 === a.nodeType
1371 }))
1372 }, fa.fn.extend({
1373 find: function(a) {
1374 var b, c = this.length,
1375 d = [],
1376 e = this;
1377 if ("string" != typeof a) return this.pushStack(fa(a).filter(function() {
1378 for (b = 0; c > b; b++)
1379 if (fa.contains(e[b], this)) return !0
1380 }));
1381 for (b = 0; c > b; b++) fa.find(a, e[b], d);
1382 return d = this.pushStack(c > 1 ? fa.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d
1383 },
1384 filter: function(a) {
1385 return this.pushStack(d(this, a || [], !1))
1386 },
1387 not: function(a) {
1388 return this.pushStack(d(this, a || [], !0))
1389 },
1390 is: function(a) {
1391 return !!d(this, "string" == typeof a && na.test(a) ? fa(a) : a || [], !1).length
1392 }
1393 });
1394 var qa, ra = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
1395 sa = fa.fn.init = function(a, b, c) {
1396 var d, e;
1397 if (!a) return this;
1398 if (c = c || qa, "string" == typeof a) {
1399 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);
1400 if (d[1]) {
1401 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))
1402 for (d in b) fa.isFunction(this[d]) ? this[d](b[d]) : this.attr(d, b[d]);
1403 return this
1404 }
1405 return e = X.getElementById(d[2]), e && e.parentNode && (this.length = 1, this[0] = e), this.context = X, this.selector = a, this
1406 }
1407 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))
1408 };
1409 sa.prototype = fa.fn, qa = fa(X);
1410 var ta = /^(?:parents|prev(?:Until|All))/,
1411 ua = {
1412 children: !0,
1413 contents: !0,
1414 next: !0,
1415 prev: !0
1416 };
1417 fa.fn.extend({
1418 has: function(a) {
1419 var b = fa(a, this),
1420 c = b.length;
1421 return this.filter(function() {
1422 for (var a = 0; c > a; a++)
1423 if (fa.contains(this, b[a])) return !0
1424 })
1425 },
1426 closest: function(a, b) {
1427 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++)
1428 for (c = this[d]; c && c !== b; c = c.parentNode)
1429 if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && fa.find.matchesSelector(c, a))) {
1430 f.push(c);
1431 break
1432 }
1433 return this.pushStack(f.length > 1 ? fa.uniqueSort(f) : f)
1434 },
1435 index: function(a) {
1436 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
1437 },
1438 add: function(a, b) {
1439 return this.pushStack(fa.uniqueSort(fa.merge(this.get(), fa(a, b))))
1440 },
1441 addBack: function(a) {
1442 return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
1443 }
1444 }), fa.each({
1445 parent: function(a) {
1446 var b = a.parentNode;
1447 return b && 11 !== b.nodeType ? b : null
1448 },
1449 parents: function(a) {
1450 return la(a, "parentNode")
1451 },
1452 parentsUntil: function(a, b, c) {
1453 return la(a, "parentNode", c)
1454 },
1455 next: function(a) {
1456 return e(a, "nextSibling")
1457 },
1458 prev: function(a) {
1459 return e(a, "previousSibling")
1460 },
1461 nextAll: function(a) {
1462 return la(a, "nextSibling")
1463 },
1464 prevAll: function(a) {
1465 return la(a, "previousSibling")
1466 },
1467 nextUntil: function(a, b, c) {
1468 return la(a, "nextSibling", c)
1469 },
1470 prevUntil: function(a, b, c) {
1471 return la(a, "previousSibling", c)
1472 },
1473 siblings: function(a) {
1474 return ma((a.parentNode || {}).firstChild, a)
1475 },
1476 children: function(a) {
1477 return ma(a.firstChild)
1478 },
1479 contents: function(a) {
1480 return a.contentDocument || fa.merge([], a.childNodes)
1481 }
1482 }, function(a, b) {
1483 fa.fn[a] = function(c, d) {
1484 var e = fa.map(this, b, c);
1485 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)
1486 }
1487 });
1488 var va = /\S+/g;
1489 fa.Callbacks = function(a) {
1490 a = "string" == typeof a ? f(a) : fa.extend({}, a);
1491 var b, c, d, e, g = [],
1492 h = [],
1493 i = -1,
1494 j = function() {
1495 for (e = a.once, d = b = !0; h.length; i = -1)
1496 for (c = h.shift(); ++i < g.length;) g[i].apply(c[0], c[1]) === !1 && a.stopOnFalse && (i = g.length, c = !1);
1497 a.memory || (c = !1), b = !1, e && (g = c ? [] : "")
1498 },
1499 k = {
1500 add: function() {
1501 return g && (c && !b && (i = g.length - 1, h.push(c)), function d(b) {
1502 fa.each(b, function(b, c) {
1503 fa.isFunction(c) ? a.unique && k.has(c) || g.push(c) : c && c.length && "string" !== fa.type(c) && d(c)
1504 })
1505 }(arguments), c && !b && j()), this
1506 },
1507 remove: function() {
1508 return fa.each(arguments, function(a, b) {
1509 for (var c;
1510 (c = fa.inArray(b, g, c)) > -1;) g.splice(c, 1), i >= c && i--
1511 }), this
1512 },
1513 has: function(a) {
1514 return a ? fa.inArray(a, g) > -1 : g.length > 0
1515 },
1516 empty: function() {
1517 return g && (g = []), this
1518 },
1519 disable: function() {
1520 return e = h = [], g = c = "", this
1521 },
1522 disabled: function() {
1523 return !g
1524 },
1525 lock: function() {
1526 return e = h = [], c || (g = c = ""), this
1527 },
1528 locked: function() {
1529 return !!e
1530 },
1531 fireWith: function(a, c) {
1532 return e || (c = c || [], c = [a, c.slice ? c.slice() : c], h.push(c), b || j()), this
1533 },
1534 fire: function() {
1535 return k.fireWith(this, arguments), this
1536 },
1537 fired: function() {
1538 return !!d
1539 }
1540 };
1541 return k
1542 }, fa.extend({
1543 Deferred: function(a) {
1544 var b = [
1545 ["resolve", "done", fa.Callbacks("once memory"), "resolved"],
1546 ["reject", "fail", fa.Callbacks("once memory"), "rejected"],
1547 ["notify", "progress", fa.Callbacks("memory")]
1548 ],
1549 c = "pending",
1550 d = {
1551 state: function() {
1552 return c
1553 },
1554 always: function() {
1555 return e.done(arguments).fail(arguments), this
1556 },
1557 then: function() {
1558 var a = arguments;
1559 return fa.Deferred(function(c) {
1560 fa.each(b, function(b, f) {
1561 var g = fa.isFunction(a[b]) && a[b];
1562 e[f[1]](function() {
1563 var a = g && g.apply(this, arguments);
1564 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)
1565 })
1566 }), a = null
1567 }).promise()
1568 },
1569 promise: function(a) {
1570 return null != a ? fa.extend(a, d) : d
1571 }
1572 },
1573 e = {};
1574 return d.pipe = d.then, fa.each(b, function(a, f) {
1575 var g = f[2],
1576 h = f[3];
1577 d[f[1]] = g.add, h && g.add(function() {
1578 c = h
1579 }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
1580 return e[f[0] + "With"](this === e ? d : this, arguments), this
1581 }, e[f[0] + "With"] = g.fireWith
1582 }), d.promise(e), a && a.call(e, e), e
1583 },
1584 when: function(a) {
1585 var b, c, d, e = 0,
1586 f = Y.call(arguments),
1587 g = f.length,
1588 h = 1 !== g || a && fa.isFunction(a.promise) ? g : 0,
1589 i = 1 === h ? a : fa.Deferred(),
1590 j = function(a, c, d) {
1591 return function(e) {
1592 c[a] = this, d[a] = arguments.length > 1 ? Y.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d)
1593 }
1594 };
1595 if (g > 1)
1596 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;
1597 return h || i.resolveWith(d, f), i.promise()
1598 }
1599 });
1600 var wa;
1601 fa.fn.ready = function(a) {
1602 return fa.ready.promise().done(a), this
1603 }, fa.extend({
1604 isReady: !1,
1605 readyWait: 1,
1606 holdReady: function(a) {
1607 a ? fa.readyWait++ : fa.ready(!0)
1608 },
1609 ready: function(a) {
1610 (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"))))
1611 }
1612 }), fa.ready.promise = function(b) {
1613 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)
1614 }, fa.ready.promise();
1615 var xa = function(a, b, c, d, e, f, g) {
1616 var h = 0,
1617 i = a.length,
1618 j = null == c;
1619 if ("object" === fa.type(c)) {
1620 e = !0;
1621 for (h in c) xa(a, b, h, c[h], !0, f, g)
1622 } 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) {
1623 return j.call(fa(a), c)
1624 })), b))
1625 for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
1626 return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
1627 },
1628 ya = function(a) {
1629 return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType
1630 };
1631 h.uid = 1, h.prototype = {
1632 register: function(a, b) {
1633 var c = b || {};
1634 return a.nodeType ? a[this.expando] = c : Object.defineProperty(a, this.expando, {
1635 value: c,
1636 writable: !0,
1637 configurable: !0
1638 }), a[this.expando]
1639 },
1640 cache: function(a) {
1641 if (!ya(a)) return {};
1642 var b = a[this.expando];
1643 return b || (b = {}, ya(a) && (a.nodeType ? a[this.expando] = b : Object.defineProperty(a, this.expando, {
1644 value: b,
1645 configurable: !0
1646 }))), b
1647 },
1648 set: function(a, b, c) {
1649 var d, e = this.cache(a);
1650 if ("string" == typeof b) e[b] = c;
1651 else
1652 for (d in b) e[d] = b[d];
1653 return e
1654 },
1655 get: function(a, b) {
1656 return void 0 === b ? this.cache(a) : a[this.expando] && a[this.expando][b]
1657 },
1658 access: function(a, b, c) {
1659 var d;
1660 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)
1661 },
1662 remove: function(a, b) {
1663 var c, d, e, f = a[this.expando];
1664 if (void 0 !== f) {
1665 if (void 0 === b) this.register(a);
1666 else {
1667 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;
1668 for (; c--;) delete f[d[c]]
1669 }(void 0 === b || fa.isEmptyObject(f)) && (a.nodeType ? a[this.expando] = void 0 : delete a[this.expando])
1670 }
1671 },
1672 hasData: function(a) {
1673 var b = a[this.expando];
1674 return void 0 !== b && !fa.isEmptyObject(b)
1675 }
1676 };
1677 var za = new h,
1678 Aa = new h,
1679 Ba = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
1680 Ca = /[A-Z]/g;
1681 fa.extend({
1682 hasData: function(a) {
1683 return Aa.hasData(a) || za.hasData(a)
1684 },
1685 data: function(a, b, c) {
1686 return Aa.access(a, b, c)
1687 },
1688 removeData: function(a, b) {
1689 Aa.remove(a, b)
1690 },
1691 _data: function(a, b, c) {
1692 return za.access(a, b, c)
1693 },
1694 _removeData: function(a, b) {
1695 za.remove(a, b)
1696 }
1697 }), fa.fn.extend({
1698 data: function(a, b) {
1699 var c, d, e, f = this[0],
1700 g = f && f.attributes;
1701 if (void 0 === a) {
1702 if (this.length && (e = Aa.get(f), 1 === f.nodeType && !za.get(f, "hasDataAttrs"))) {
1703 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])));
1704 za.set(f, "hasDataAttrs", !0)
1705 }
1706 return e
1707 }
1708 return "object" == typeof a ? this.each(function() {
1709 Aa.set(this, a)
1710 }) : xa(this, function(b) {
1711 var c, d;
1712 if (f && void 0 === b) {
1713 if (c = Aa.get(f, a) || Aa.get(f, a.replace(Ca, "-$&").toLowerCase()), void 0 !== c) return c;
1714 if (d = fa.camelCase(a), c = Aa.get(f, d), void 0 !== c) return c;
1715 if (c = i(f, d, void 0), void 0 !== c) return c
1716 } else d = fa.camelCase(a), this.each(function() {
1717 var c = Aa.get(this, d);
1718 Aa.set(this, d, b), a.indexOf("-") > -1 && void 0 !== c && Aa.set(this, a, b)
1719 })
1720 }, null, b, arguments.length > 1, null, !0)
1721 },
1722 removeData: function(a) {
1723 return this.each(function() {
1724 Aa.remove(this, a)
1725 })
1726 }
1727 }), fa.extend({
1728 queue: function(a, b, c) {
1729 var d;
1730 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
1731 },
1732 dequeue: function(a, b) {
1733 b = b || "fx";
1734 var c = fa.queue(a, b),
1735 d = c.length,
1736 e = c.shift(),
1737 f = fa._queueHooks(a, b),
1738 g = function() {
1739 fa.dequeue(a, b)
1740 };
1741 "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()
1742 },
1743 _queueHooks: function(a, b) {
1744 var c = b + "queueHooks";
1745 return za.get(a, c) || za.access(a, c, {
1746 empty: fa.Callbacks("once memory").add(function() {
1747 za.remove(a, [b + "queue", c])
1748 })
1749 })
1750 }
1751 }), fa.fn.extend({
1752 queue: function(a, b) {
1753 var c = 2;
1754 return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? fa.queue(this[0], a) : void 0 === b ? this : this.each(function() {
1755 var c = fa.queue(this, a, b);
1756 fa._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && fa.dequeue(this, a)
1757 })
1758 },
1759 dequeue: function(a) {
1760 return this.each(function() {
1761 fa.dequeue(this, a)
1762 })
1763 },
1764 clearQueue: function(a) {
1765 return this.queue(a || "fx", [])
1766 },
1767 promise: function(a, b) {
1768 var c, d = 1,
1769 e = fa.Deferred(),
1770 f = this,
1771 g = this.length,
1772 h = function() {
1773 --d || e.resolveWith(f, [f])
1774 };
1775 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));
1776 return h(), e.promise(b)
1777 }
1778 });
1779 var Da = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
1780 Ea = new RegExp("^(?:([+-])=|)(" + Da + ")([a-z%]*)$", "i"),
1781 Fa = ["Top", "Right", "Bottom", "Left"],
1782 Ga = function(a, b) {
1783 return a = b || a, "none" === fa.css(a, "display") || !fa.contains(a.ownerDocument, a)
1784 },
1785 Ha = /^(?:checkbox|radio)$/i,
1786 Ia = /<([\w:-]+)/,
1787 Ja = /^$|\/(?:java|ecma)script/i,
1788 Ka = {
1789 option: [1, "<select multiple='multiple'>", "</select>"],
1790 thead: [1, "<table>", "</table>"],
1791 col: [2, "<table><colgroup>", "</colgroup></table>"],
1792 tr: [2, "<table><tbody>", "</tbody></table>"],
1793 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
1794 _default: [0, "", ""]
1795 };
1796 Ka.optgroup = Ka.option, Ka.tbody = Ka.tfoot = Ka.colgroup = Ka.caption = Ka.thead, Ka.th = Ka.td;
1797 var La = /<|&#?\w+;/;
1798 ! function() {
1799 var a = X.createDocumentFragment(),
1800 b = a.appendChild(X.createElement("div")),
1801 c = X.createElement("input");
1802 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
1803 }();
1804 var Ma = /^key/,
1805 Na = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
1806 Oa = /^([^.]*)(?:\.(.+)|)/;
1807 fa.event = {
1808 global: {},
1809 add: function(a, b, c, d, e) {
1810 var f, g, h, i, j, k, l, m, n, o, p, q = za.get(a);
1811 if (q)
1812 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) {
1813 return "undefined" != typeof fa && fa.event.triggered !== b.type ? fa.event.dispatch.apply(a, arguments) : void 0
1814 }), 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({
1815 type: n,
1816 origType: p,
1817 data: d,
1818 handler: c,
1819 guid: c.guid,
1820 selector: e,
1821 needsContext: e && fa.expr.match.needsContext.test(e),
1822 namespace: o.join(".")
1823 }, 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)
1824 },
1825 remove: function(a, b, c, d, e) {
1826 var f, g, h, i, j, k, l, m, n, o, p, q = za.hasData(a) && za.get(a);
1827 if (q && (i = q.events)) {
1828 for (b = (b || "").match(va) || [""], j = b.length; j--;)
1829 if (h = Oa.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) {
1830 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));
1831 g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || fa.removeEvent(a, n, q.handle), delete i[n])
1832 } else
1833 for (n in i) fa.event.remove(a, n + b[j], c, d, !0);
1834 fa.isEmptyObject(i) && za.remove(a, "handle events")
1835 }
1836 },
1837 dispatch: function(a) {
1838 a = fa.event.fix(a);
1839 var b, c, d, e, f, g = [],
1840 h = Y.call(arguments),
1841 i = (za.get(this, "events") || {})[a.type] || [],
1842 j = fa.event.special[a.type] || {};
1843 if (h[0] = a, a.delegateTarget = this, !j.preDispatch || j.preDispatch.call(this, a) !== !1) {
1844 for (g = fa.event.handlers.call(this, a, i), b = 0;
1845 (e = g[b++]) && !a.isPropagationStopped();)
1846 for (a.currentTarget = e.elem, c = 0;
1847 (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()));
1848 return j.postDispatch && j.postDispatch.call(this, a), a.result
1849 }
1850 },
1851 handlers: function(a, b) {
1852 var c, d, e, f, g = [],
1853 h = b.delegateCount,
1854 i = a.target;
1855 if (h && i.nodeType && ("click" !== a.type || isNaN(a.button) || a.button < 1))
1856 for (; i !== this; i = i.parentNode || this)
1857 if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
1858 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);
1859 d.length && g.push({
1860 elem: i,
1861 handlers: d
1862 })
1863 }
1864 return h < b.length && g.push({
1865 elem: this,
1866 handlers: b.slice(h)
1867 }), g
1868 },
1869 props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
1870 fixHooks: {},
1871 keyHooks: {
1872 props: "char charCode key keyCode".split(" "),
1873 filter: function(a, b) {
1874 return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
1875 }
1876 },
1877 mouseHooks: {
1878 props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
1879 filter: function(a, b) {
1880 var c, d, e, f = b.button;
1881 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
1882 }
1883 },
1884 fix: function(a) {
1885 if (a[fa.expando]) return a;
1886 var b, c, d, e = a.type,
1887 f = a,
1888 g = this.fixHooks[e];
1889 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];
1890 return a.target || (a.target = X), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a
1891 },
1892 special: {
1893 load: {
1894 noBubble: !0
1895 },
1896 focus: {
1897 trigger: function() {
1898 return this !== p() && this.focus ? (this.focus(), !1) : void 0
1899 },
1900 delegateType: "focusin"
1901 },
1902 blur: {
1903 trigger: function() {
1904 return this === p() && this.blur ? (this.blur(), !1) : void 0
1905 },
1906 delegateType: "focusout"
1907 },
1908 click: {
1909 trigger: function() {
1910 return "checkbox" === this.type && this.click && fa.nodeName(this, "input") ? (this.click(), !1) : void 0
1911 },
1912 _default: function(a) {
1913 return fa.nodeName(a.target, "a")
1914 }
1915 },
1916 beforeunload: {
1917 postDispatch: function(a) {
1918 void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
1919 }
1920 }
1921 }
1922 }, fa.removeEvent = function(a, b, c) {
1923 a.removeEventListener && a.removeEventListener(b, c)
1924 }, fa.Event = function(a, b) {
1925 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)
1926 }, fa.Event.prototype = {
1927 constructor: fa.Event,
1928 isDefaultPrevented: o,
1929 isPropagationStopped: o,
1930 isImmediatePropagationStopped: o,
1931 isSimulated: !1,
1932 preventDefault: function() {
1933 var a = this.originalEvent;
1934 this.isDefaultPrevented = n, a && !this.isSimulated && a.preventDefault()
1935 },
1936 stopPropagation: function() {
1937 var a = this.originalEvent;
1938 this.isPropagationStopped = n, a && !this.isSimulated && a.stopPropagation()
1939 },
1940 stopImmediatePropagation: function() {
1941 var a = this.originalEvent;
1942 this.isImmediatePropagationStopped = n, a && !this.isSimulated && a.stopImmediatePropagation(), this.stopPropagation()
1943 }
1944 }, fa.each({
1945 mouseenter: "mouseover",
1946 mouseleave: "mouseout",
1947 pointerenter: "pointerover",
1948 pointerleave: "pointerout"
1949 }, function(a, b) {
1950 fa.event.special[a] = {
1951 delegateType: b,
1952 bindType: b,
1953 handle: function(a) {
1954 var c, d = this,
1955 e = a.relatedTarget,
1956 f = a.handleObj;
1957 return e && (e === d || fa.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
1958 }
1959 }
1960 }), fa.fn.extend({
1961 on: function(a, b, c, d) {
1962 return q(this, a, b, c, d)
1963 },
1964 one: function(a, b, c, d) {
1965 return q(this, a, b, c, d, 1)
1966 },
1967 off: function(a, b, c) {
1968 var d, e;
1969 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;
1970 if ("object" == typeof a) {
1971 for (e in a) this.off(e, b, a[e]);
1972 return this
1973 }
1974 return b !== !1 && "function" != typeof b || (c = b, b = void 0), c === !1 && (c = o), this.each(function() {
1975 fa.event.remove(this, a, c, b)
1976 })
1977 }
1978 });
1979 var Pa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
1980 Qa = /<script|<style|<link/i,
1981 Ra = /checked\s*(?:[^=]|=\s*.checked.)/i,
1982 Sa = /^true\/(.*)/,
1983 Ta = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
1984 fa.extend({
1985 htmlPrefilter: function(a) {
1986 return a.replace(Pa, "<$1></$2>")
1987 },
1988 clone: function(a, b, c) {
1989 var d, e, f, g, h = a.cloneNode(!0),
1990 i = fa.contains(a.ownerDocument, a);
1991 if (!(da.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || fa.isXMLDoc(a)))
1992 for (g = k(h), f = k(a), d = 0, e = f.length; e > d; d++) v(f[d], g[d]);
1993 if (b)
1994 if (c)
1995 for (f = f || k(a), g = g || k(h), d = 0, e = f.length; e > d; d++) u(f[d], g[d]);
1996 else u(a, h);
1997 return g = k(h, "script"), g.length > 0 && l(g, !i && k(a, "script")), h
1998 },
1999 cleanData: function(a) {
2000 for (var b, c, d, e = fa.event.special, f = 0; void 0 !== (c = a[f]); f++)
2001 if (ya(c)) {
2002 if (b = c[za.expando]) {
2003 if (b.events)
2004 for (d in b.events) e[d] ? fa.event.remove(c, d) : fa.removeEvent(c, d, b.handle);
2005 c[za.expando] = void 0
2006 }
2007 c[Aa.expando] && (c[Aa.expando] = void 0)
2008 }
2009 }
2010 }), fa.fn.extend({
2011 domManip: w,
2012 detach: function(a) {
2013 return x(this, a, !0)
2014 },
2015 remove: function(a) {
2016 return x(this, a)
2017 },
2018 text: function(a) {
2019 return xa(this, function(a) {
2020 return void 0 === a ? fa.text(this) : this.empty().each(function() {
2021 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a)
2022 })
2023 }, null, a, arguments.length)
2024 },
2025 append: function() {
2026 return w(this, arguments, function(a) {
2027 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2028 var b = r(this, a);
2029 b.appendChild(a)
2030 }
2031 })
2032 },
2033 prepend: function() {
2034 return w(this, arguments, function(a) {
2035 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
2036 var b = r(this, a);
2037 b.insertBefore(a, b.firstChild)
2038 }
2039 })
2040 },
2041 before: function() {
2042 return w(this, arguments, function(a) {
2043 this.parentNode && this.parentNode.insertBefore(a, this)
2044 })
2045 },
2046 after: function() {
2047 return w(this, arguments, function(a) {
2048 this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
2049 })
2050 },
2051 empty: function() {
2052 for (var a, b = 0; null != (a = this[b]); b++) 1 === a.nodeType && (fa.cleanData(k(a, !1)), a.textContent = "");
2053 return this
2054 },
2055 clone: function(a, b) {
2056 return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() {
2057 return fa.clone(this, a, b)
2058 })
2059 },
2060 html: function(a) {
2061 return xa(this, function(a) {
2062 var b = this[0] || {},
2063 c = 0,
2064 d = this.length;
2065 if (void 0 === a && 1 === b.nodeType) return b.innerHTML;
2066 if ("string" == typeof a && !Qa.test(a) && !Ka[(Ia.exec(a) || ["", ""])[1].toLowerCase()]) {
2067 a = fa.htmlPrefilter(a);
2068 try {
2069 for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (fa.cleanData(k(b, !1)), b.innerHTML = a);
2070 b = 0
2071 } catch (e) {}
2072 }
2073 b && this.empty().append(a)
2074 }, null, a, arguments.length)
2075 },
2076 replaceWith: function() {
2077 var a = [];
2078 return w(this, arguments, function(b) {
2079 var c = this.parentNode;
2080 fa.inArray(this, a) < 0 && (fa.cleanData(k(this)), c && c.replaceChild(b, this))
2081 }, a)
2082 }
2083 }), fa.each({
2084 appendTo: "append",
2085 prependTo: "prepend",
2086 insertBefore: "before",
2087 insertAfter: "after",
2088 replaceAll: "replaceWith"
2089 }, function(a, b) {
2090 fa.fn[a] = function(a) {
2091 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());
2092 return this.pushStack(d)
2093 }
2094 });
2095 var Ua, Va = {
2096 HTML: "block",
2097 BODY: "block"
2098 },
2099 Wa = /^margin/,
2100 Xa = new RegExp("^(" + Da + ")(?!px)[a-z%]+$", "i"),
2101 Ya = function(b) {
2102 var c = b.ownerDocument.defaultView;
2103 return c && c.opener || (c = a), c.getComputedStyle(b)
2104 },
2105 Za = function(a, b, c, d) {
2106 var e, f, g = {};
2107 for (f in b) g[f] = a.style[f], a.style[f] = b[f];
2108 e = c.apply(a, d || []);
2109 for (f in b) a.style[f] = g[f];
2110 return e
2111 },
2112 $a = X.documentElement;
2113 ! function() {
2114 function b() {
2115 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);
2116 var b = a.getComputedStyle(h);
2117 c = "1%" !== b.top, f = "2px" === b.marginLeft, d = "4px" === b.width, h.style.marginRight = "50%", e = "4px" === b.marginRight, $a.removeChild(g)
2118 }
2119 var c, d, e, f, g = X.createElement("div"),
2120 h = X.createElement("div");
2121 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, {
2122 pixelPosition: function() {
2123 return b(), c
2124 },
2125 boxSizingReliable: function() {
2126 return null == d && b(), d
2127 },
2128 pixelMarginRight: function() {
2129 return null == d && b(), e
2130 },
2131 reliableMarginLeft: function() {
2132 return null == d && b(), f
2133 },
2134 reliableMarginRight: function() {
2135 var b, c = h.appendChild(X.createElement("div"));
2136 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
2137 }
2138 }))
2139 }();
2140 var _a = /^(none|table(?!-c[ea]).+)/,
2141 ab = {
2142 position: "absolute",
2143 visibility: "hidden",
2144 display: "block"
2145 },
2146 bb = {
2147 letterSpacing: "0",
2148 fontWeight: "400"
2149 },
2150 cb = ["Webkit", "O", "Moz", "ms"],
2151 db = X.createElement("div").style;
2152 fa.extend({
2153 cssHooks: {
2154 opacity: {
2155 get: function(a, b) {
2156 if (b) {
2157 var c = A(a, "opacity");
2158 return "" === c ? "1" : c
2159 }
2160 }
2161 }
2162 },
2163 cssNumber: {
2164 animationIterationCount: !0,
2165 columnCount: !0,
2166 fillOpacity: !0,
2167 flexGrow: !0,
2168 flexShrink: !0,
2169 fontWeight: !0,
2170 lineHeight: !0,
2171 opacity: !0,
2172 order: !0,
2173 orphans: !0,
2174 widows: !0,
2175 zIndex: !0,
2176 zoom: !0
2177 },
2178 cssProps: {
2179 "float": "cssFloat"
2180 },
2181 style: function(a, b, c, d) {
2182 if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
2183 var e, f, g, h = fa.camelCase(b),
2184 i = a.style;
2185 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)
2186 }
2187 },
2188 css: function(a, b, c, d) {
2189 var e, f, g, h = fa.camelCase(b);
2190 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
2191 }
2192 }), fa.each(["height", "width"], function(a, b) {
2193 fa.cssHooks[b] = {
2194 get: function(a, c, d) {
2195 return c ? _a.test(fa.css(a, "display")) && 0 === a.offsetWidth ? Za(a, ab, function() {
2196 return F(a, b, d)
2197 }) : F(a, b, d) : void 0
2198 },
2199 set: function(a, c, d) {
2200 var e, f = d && Ya(a),
2201 g = d && E(a, b, d, "border-box" === fa.css(a, "boxSizing", !1, f), f);
2202 return g && (e = Ea.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = fa.css(a, b)), D(a, c, g)
2203 }
2204 }
2205 }), fa.cssHooks.marginLeft = B(da.reliableMarginLeft, function(a, b) {
2206 return b ? (parseFloat(A(a, "marginLeft")) || a.getBoundingClientRect().left - Za(a, {
2207 marginLeft: 0
2208 }, function() {
2209 return a.getBoundingClientRect().left
2210 })) + "px" : void 0
2211 }), fa.cssHooks.marginRight = B(da.reliableMarginRight, function(a, b) {
2212 return b ? Za(a, {
2213 display: "inline-block"
2214 }, A, [a, "marginRight"]) : void 0
2215 }), fa.each({
2216 margin: "",
2217 padding: "",
2218 border: "Width"
2219 }, function(a, b) {
2220 fa.cssHooks[a + b] = {
2221 expand: function(c) {
2222 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];
2223 return e
2224 }
2225 }, Wa.test(a) || (fa.cssHooks[a + b].set = D)
2226 }), fa.fn.extend({
2227 css: function(a, b) {
2228 return xa(this, function(a, b, c) {
2229 var d, e, f = {},
2230 g = 0;
2231 if (fa.isArray(b)) {
2232 for (d = Ya(a), e = b.length; e > g; g++) f[b[g]] = fa.css(a, b[g], !1, d);
2233 return f
2234 }
2235 return void 0 !== c ? fa.style(a, b, c) : fa.css(a, b)
2236 }, a, b, arguments.length > 1)
2237 },
2238 show: function() {
2239 return G(this, !0)
2240 },
2241 hide: function() {
2242 return G(this)
2243 },
2244 toggle: function(a) {
2245 return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
2246 Ga(this) ? fa(this).show() : fa(this).hide()
2247 })
2248 }
2249 }), fa.Tween = H, H.prototype = {
2250 constructor: H,
2251 init: function(a, b, c, d, e, f) {
2252 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")
2253 },
2254 cur: function() {
2255 var a = H.propHooks[this.prop];
2256 return a && a.get ? a.get(this) : H.propHooks._default.get(this)
2257 },
2258 run: function(a) {
2259 var b, c = H.propHooks[this.prop];
2260 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
2261 }
2262 }, H.prototype.init.prototype = H.prototype, H.propHooks = {
2263 _default: {
2264 get: function(a) {
2265 var b;
2266 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)
2267 },
2268 set: function(a) {
2269 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);
2270 }
2271 }
2272 }, H.propHooks.scrollTop = H.propHooks.scrollLeft = {
2273 set: function(a) {
2274 a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
2275 }
2276 }, fa.easing = {
2277 linear: function(a) {
2278 return a
2279 },
2280 swing: function(a) {
2281 return .5 - Math.cos(a * Math.PI) / 2
2282 },
2283 _default: "swing"
2284 }, fa.fx = H.prototype.init, fa.fx.step = {};
2285 var eb, fb, gb = /^(?:toggle|show|hide)$/,
2286 hb = /queueHooks$/;
2287 fa.Animation = fa.extend(N, {
2288 tweeners: {
2289 "*": [function(a, b) {
2290 var c = this.createTween(a, b);
2291 return j(c.elem, a, Ea.exec(b), c), c
2292 }]
2293 },
2294 tweener: function(a, b) {
2295 fa.isFunction(a) ? (b = a, a = ["*"]) : a = a.match(va);
2296 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)
2297 },
2298 prefilters: [L],
2299 prefilter: function(a, b) {
2300 b ? N.prefilters.unshift(a) : N.prefilters.push(a)
2301 }
2302 }), fa.speed = function(a, b, c) {
2303 var d = a && "object" == typeof a ? fa.extend({}, a) : {
2304 complete: c || !c && b || fa.isFunction(a) && a,
2305 duration: a,
2306 easing: c && b || b && !fa.isFunction(b) && b
2307 };
2308 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() {
2309 fa.isFunction(d.old) && d.old.call(this), d.queue && fa.dequeue(this, d.queue)
2310 }, d
2311 }, fa.fn.extend({
2312 fadeTo: function(a, b, c, d) {
2313 return this.filter(Ga).css("opacity", 0).show().end().animate({
2314 opacity: b
2315 }, a, c, d)
2316 },
2317 animate: function(a, b, c, d) {
2318 var e = fa.isEmptyObject(a),
2319 f = fa.speed(b, c, d),
2320 g = function() {
2321 var b = N(this, fa.extend({}, a), f);
2322 (e || za.get(this, "finish")) && b.stop(!0)
2323 };
2324 return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
2325 },
2326 stop: function(a, b, c) {
2327 var d = function(a) {
2328 var b = a.stop;
2329 delete a.stop, b(c)
2330 };
2331 return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
2332 var b = !0,
2333 e = null != a && a + "queueHooks",
2334 f = fa.timers,
2335 g = za.get(this);
2336 if (e) g[e] && g[e].stop && d(g[e]);
2337 else
2338 for (e in g) g[e] && g[e].stop && hb.test(e) && d(g[e]);
2339 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));
2340 !b && c || fa.dequeue(this, a)
2341 })
2342 },
2343 finish: function(a) {
2344 return a !== !1 && (a = a || "fx"), this.each(function() {
2345 var b, c = za.get(this),
2346 d = c[a + "queue"],
2347 e = c[a + "queueHooks"],
2348 f = fa.timers,
2349 g = d ? d.length : 0;
2350 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));
2351 for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
2352 delete c.finish
2353 })
2354 }
2355 }), fa.each(["toggle", "show", "hide"], function(a, b) {
2356 var c = fa.fn[b];
2357 fa.fn[b] = function(a, d, e) {
2358 return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(J(b, !0), a, d, e)
2359 }
2360 }), fa.each({
2361 slideDown: J("show"),
2362 slideUp: J("hide"),
2363 slideToggle: J("toggle"),
2364 fadeIn: {
2365 opacity: "show"
2366 },
2367 fadeOut: {
2368 opacity: "hide"
2369 },
2370 fadeToggle: {
2371 opacity: "toggle"
2372 }
2373 }, function(a, b) {
2374 fa.fn[a] = function(a, c, d) {
2375 return this.animate(b, a, c, d)
2376 }
2377 }), fa.timers = [], fa.fx.tick = function() {
2378 var a, b = 0,
2379 c = fa.timers;
2380 for (eb = fa.now(); b < c.length; b++) a = c[b], a() || c[b] !== a || c.splice(b--, 1);
2381 c.length || fa.fx.stop(), eb = void 0
2382 }, fa.fx.timer = function(a) {
2383 fa.timers.push(a), a() ? fa.fx.start() : fa.timers.pop()
2384 }, fa.fx.interval = 13, fa.fx.start = function() {
2385 fb || (fb = a.setInterval(fa.fx.tick, fa.fx.interval))
2386 }, fa.fx.stop = function() {
2387 a.clearInterval(fb), fb = null
2388 }, fa.fx.speeds = {
2389 slow: 600,
2390 fast: 200,
2391 _default: 400
2392 }, fa.fn.delay = function(b, c) {
2393 return b = fa.fx ? fa.fx.speeds[b] || b : b, c = c || "fx", this.queue(c, function(c, d) {
2394 var e = a.setTimeout(c, b);
2395 d.stop = function() {
2396 a.clearTimeout(e)
2397 }
2398 })
2399 },
2400 function() {
2401 var a = X.createElement("input"),
2402 b = X.createElement("select"),
2403 c = b.appendChild(X.createElement("option"));
2404 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
2405 }();
2406 var ib, jb = fa.expr.attrHandle;
2407 fa.fn.extend({
2408 attr: function(a, b) {
2409 return xa(this, fa.attr, a, b, arguments.length > 1)
2410 },
2411 removeAttr: function(a) {
2412 return this.each(function() {
2413 fa.removeAttr(this, a)
2414 })
2415 }
2416 }), fa.extend({
2417 attr: function(a, b, c) {
2418 var d, e, f = a.nodeType;
2419 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))
2420 },
2421 attrHooks: {
2422 type: {
2423 set: function(a, b) {
2424 if (!da.radioValue && "radio" === b && fa.nodeName(a, "input")) {
2425 var c = a.value;
2426 return a.setAttribute("type", b), c && (a.value = c), b
2427 }
2428 }
2429 }
2430 },
2431 removeAttr: function(a, b) {
2432 var c, d, e = 0,
2433 f = b && b.match(va);
2434 if (f && 1 === a.nodeType)
2435 for (; c = f[e++];) d = fa.propFix[c] || c, fa.expr.match.bool.test(c) && (a[d] = !1), a.removeAttribute(c)
2436 }
2437 }), ib = {
2438 set: function(a, b, c) {
2439 return b === !1 ? fa.removeAttr(a, c) : a.setAttribute(c, c), c
2440 }
2441 }, fa.each(fa.expr.match.bool.source.match(/\w+/g), function(a, b) {
2442 var c = jb[b] || fa.find.attr;
2443 jb[b] = function(a, b, d) {
2444 var e, f;
2445 return d || (f = jb[b], jb[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, jb[b] = f), e
2446 }
2447 });
2448 var kb = /^(?:input|select|textarea|button)$/i,
2449 lb = /^(?:a|area)$/i;
2450 fa.fn.extend({
2451 prop: function(a, b) {
2452 return xa(this, fa.prop, a, b, arguments.length > 1)
2453 },
2454 removeProp: function(a) {
2455 return this.each(function() {
2456 delete this[fa.propFix[a] || a]
2457 })
2458 }
2459 }), fa.extend({
2460 prop: function(a, b, c) {
2461 var d, e, f = a.nodeType;
2462 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]
2463 },
2464 propHooks: {
2465 tabIndex: {
2466 get: function(a) {
2467 var b = fa.find.attr(a, "tabindex");
2468 return b ? parseInt(b, 10) : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href ? 0 : -1
2469 }
2470 }
2471 },
2472 propFix: {
2473 "for": "htmlFor",
2474 "class": "className"
2475 }
2476 }), da.optSelected || (fa.propHooks.selected = {
2477 get: function(a) {
2478 var b = a.parentNode;
2479 return b && b.parentNode && b.parentNode.selectedIndex, null
2480 },
2481 set: function(a) {
2482 var b = a.parentNode;
2483 b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex)
2484 }
2485 }), fa.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
2486 fa.propFix[this.toLowerCase()] = this
2487 });
2488 var mb = /[\t\r\n\f]/g;
2489 fa.fn.extend({
2490 addClass: function(a) {
2491 var b, c, d, e, f, g, h, i = 0;
2492 if (fa.isFunction(a)) return this.each(function(b) {
2493 fa(this).addClass(a.call(this, b, O(this)))
2494 });
2495 if ("string" == typeof a && a)
2496 for (b = a.match(va) || []; c = this[i++];)
2497 if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) {
2498 for (g = 0; f = b[g++];) d.indexOf(" " + f + " ") < 0 && (d += f + " ");
2499 h = fa.trim(d), e !== h && c.setAttribute("class", h)
2500 }
2501 return this
2502 },
2503 removeClass: function(a) {
2504 var b, c, d, e, f, g, h, i = 0;
2505 if (fa.isFunction(a)) return this.each(function(b) {
2506 fa(this).removeClass(a.call(this, b, O(this)))
2507 });
2508 if (!arguments.length) return this.attr("class", "");
2509 if ("string" == typeof a && a)
2510 for (b = a.match(va) || []; c = this[i++];)
2511 if (e = O(c), d = 1 === c.nodeType && (" " + e + " ").replace(mb, " ")) {
2512 for (g = 0; f = b[g++];)
2513 for (; d.indexOf(" " + f + " ") > -1;) d = d.replace(" " + f + " ", " ");
2514 h = fa.trim(d), e !== h && c.setAttribute("class", h)
2515 }
2516 return this
2517 },
2518 toggleClass: function(a, b) {
2519 var c = typeof a;
2520 return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : fa.isFunction(a) ? this.each(function(c) {
2521 fa(this).toggleClass(a.call(this, c, O(this), b), b)
2522 }) : this.each(function() {
2523 var b, d, e, f;
2524 if ("string" === c)
2525 for (d = 0, e = fa(this), f = a.match(va) || []; b = f[d++];) e.hasClass(b) ? e.removeClass(b) : e.addClass(b);
2526 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__") || ""))
2527 })
2528 },
2529 hasClass: function(a) {
2530 var b, c, d = 0;
2531 for (b = " " + a + " "; c = this[d++];)
2532 if (1 === c.nodeType && (" " + O(c) + " ").replace(mb, " ").indexOf(b) > -1) return !0;
2533 return !1
2534 }
2535 });
2536 var nb = /\r/g,
2537 ob = /[\x20\t\r\n\f]+/g;
2538 fa.fn.extend({
2539 val: function(a) {
2540 var b, c, d, e = this[0]; {
2541 if (arguments.length) return d = fa.isFunction(a), this.each(function(c) {
2542 var e;
2543 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) {
2544 return null == a ? "" : a + ""
2545 })), b = fa.valHooks[this.type] || fa.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
2546 });
2547 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)
2548 }
2549 }
2550 }), fa.extend({
2551 valHooks: {
2552 option: {
2553 get: function(a) {
2554 var b = fa.find.attr(a, "value");
2555 return null != b ? b : fa.trim(fa.text(a)).replace(ob, " ")
2556 }
2557 },
2558 select: {
2559 get: function(a) {
2560 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++)
2561 if (c = d[i], (c.selected || i === e) && (da.optDisabled ? !c.disabled : null === c.getAttribute("disabled")) && (!c.parentNode.disabled || !fa.nodeName(c.parentNode, "optgroup"))) {
2562 if (b = fa(c).val(), f) return b;
2563 g.push(b)
2564 }
2565 return g
2566 },
2567 set: function(a, b) {
2568 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);
2569 return c || (a.selectedIndex = -1), f
2570 }
2571 }
2572 }
2573 }), fa.each(["radio", "checkbox"], function() {
2574 fa.valHooks[this] = {
2575 set: function(a, b) {
2576 return fa.isArray(b) ? a.checked = fa.inArray(fa(a).val(), b) > -1 : void 0
2577 }
2578 }, da.checkOn || (fa.valHooks[this].get = function(a) {
2579 return null === a.getAttribute("value") ? "on" : a.value
2580 })
2581 });
2582 var pb = /^(?:focusinfocus|focusoutblur)$/;
2583 fa.extend(fa.event, {
2584 trigger: function(b, c, d, e) {
2585 var f, g, h, i, j, k, l, m = [d || X],
2586 n = ca.call(b, "type") ? b.type : b,
2587 o = ca.call(b, "namespace") ? b.namespace.split(".") : [];
2588 if (g = h = d = d || X, 3 !== d.nodeType && 8 !== d.nodeType && !pb.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)) {
2589 if (!e && !l.noBubble && !fa.isWindow(d)) {
2590 for (i = l.delegateType || n, pb.test(i + n) || (g = g.parentNode); g; g = g.parentNode) m.push(g), h = g;
2591 h === (d.ownerDocument || X) && m.push(h.defaultView || h.parentWindow || a)
2592 }
2593 for (f = 0;
2594 (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());
2595 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
2596 }
2597 },
2598 simulate: function(a, b, c) {
2599 var d = fa.extend(new fa.Event, c, {
2600 type: a,
2601 isSimulated: !0
2602 });
2603 fa.event.trigger(d, null, b)
2604 }
2605 }), fa.fn.extend({
2606 trigger: function(a, b) {
2607 return this.each(function() {
2608 fa.event.trigger(a, b, this)
2609 })
2610 },
2611 triggerHandler: function(a, b) {
2612 var c = this[0];
2613 return c ? fa.event.trigger(a, b, c, !0) : void 0
2614 }
2615 }), 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) {
2616 fa.fn[b] = function(a, c) {
2617 return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
2618 }
2619 }), fa.fn.extend({
2620 hover: function(a, b) {
2621 return this.mouseenter(a).mouseleave(b || a)
2622 }
2623 }), da.focusin = "onfocusin" in a, da.focusin || fa.each({
2624 focus: "focusin",
2625 blur: "focusout"
2626 }, function(a, b) {
2627 var c = function(a) {
2628 fa.event.simulate(b, a.target, fa.event.fix(a))
2629 };
2630 fa.event.special[b] = {
2631 setup: function() {
2632 var d = this.ownerDocument || this,
2633 e = za.access(d, b);
2634 e || d.addEventListener(a, c, !0), za.access(d, b, (e || 0) + 1)
2635 },
2636 teardown: function() {
2637 var d = this.ownerDocument || this,
2638 e = za.access(d, b) - 1;
2639 e ? za.access(d, b, e) : (d.removeEventListener(a, c, !0), za.remove(d, b))
2640 }
2641 }
2642 });
2643 var qb = a.location,
2644 rb = fa.now(),
2645 sb = /\?/;
2646 fa.parseJSON = function(a) {
2647 return JSON.parse(a + "")
2648 }, fa.parseXML = function(b) {
2649 var c;
2650 if (!b || "string" != typeof b) return null;
2651 try {
2652 c = (new a.DOMParser).parseFromString(b, "text/xml")
2653 } catch (d) {
2654 c = void 0
2655 }
2656 return c && !c.getElementsByTagName("parsererror").length || fa.error("Invalid XML: " + b), c
2657 };
2658 var tb = /#.*$/,
2659 ub = /([?&])_=[^&]*/,
2660 vb = /^(.*?):[ \t]*([^\r\n]*)$/gm,
2661 wb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
2662 xb = /^(?:GET|HEAD)$/,
2663 yb = /^\/\//,
2664 zb = {},
2665 Ab = {},
2666 Bb = "*/".concat("*"),
2667 Cb = X.createElement("a");
2668 Cb.href = qb.href, fa.extend({
2669 active: 0,
2670 lastModified: {},
2671 etag: {},
2672 ajaxSettings: {
2673 url: qb.href,
2674 type: "GET",
2675 isLocal: wb.test(qb.protocol),
2676 global: !0,
2677 processData: !0,
2678 async: !0,
2679 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
2680 accepts: {
2681 "*": Bb,
2682 text: "text/plain",
2683 html: "text/html",
2684 xml: "application/xml, text/xml",
2685 json: "application/json, text/javascript"
2686 },
2687 contents: {
2688 xml: /\bxml\b/,
2689 html: /\bhtml/,
2690 json: /\bjson\b/
2691 },
2692 responseFields: {
2693 xml: "responseXML",
2694 text: "responseText",
2695 json: "responseJSON"
2696 },
2697 converters: {
2698 "* text": String,
2699 "text html": !0,
2700 "text json": fa.parseJSON,
2701 "text xml": fa.parseXML
2702 },
2703 flatOptions: {
2704 url: !0,
2705 context: !0
2706 }
2707 },
2708 ajaxSetup: function(a, b) {
2709 return b ? R(R(a, fa.ajaxSettings), b) : R(fa.ajaxSettings, a)
2710 },
2711 ajaxPrefilter: P(zb),
2712 ajaxTransport: P(Ab),
2713 ajax: function(b, c) {
2714 function d(b, c, d, h) {
2715 var j, l, s, t, v, x = c;
2716 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")))
2717 }
2718 "object" == typeof b && (c = b, b = void 0), c = c || {};
2719 var e, f, g, h, i, j, k, l, m = fa.ajaxSetup({}, c),
2720 n = m.context || m,
2721 o = m.context && (n.nodeType || n.jquery) ? fa(n) : fa.event,
2722 p = fa.Deferred(),
2723 q = fa.Callbacks("once memory"),
2724 r = m.statusCode || {},
2725 s = {},
2726 t = {},
2727 u = 0,
2728 v = "canceled",
2729 w = {
2730 readyState: 0,
2731 getResponseHeader: function(a) {
2732 var b;
2733 if (2 === u) {
2734 if (!h)
2735 for (h = {}; b = vb.exec(g);) h[b[1].toLowerCase()] = b[2];
2736 b = h[a.toLowerCase()]
2737 }
2738 return null == b ? null : b
2739 },
2740 getAllResponseHeaders: function() {
2741 return 2 === u ? g : null
2742 },
2743 setRequestHeader: function(a, b) {
2744 var c = a.toLowerCase();
2745 return u || (a = t[c] = t[c] || a, s[a] = b), this
2746 },
2747 overrideMimeType: function(a) {
2748 return u || (m.mimeType = a), this
2749 },
2750 statusCode: function(a) {
2751 var b;
2752 if (a)
2753 if (2 > u)
2754 for (b in a) r[b] = [r[b], a[b]];
2755 else w.always(a[w.status]);
2756 return this
2757 },
2758 abort: function(a) {
2759 var b = a || v;
2760 return e && e.abort(b), d(0, b), this
2761 }
2762 };
2763 if (p.promise(w).complete = q.add, w.success = w.done, w.error = w.fail, m.url = ((b || m.url || qb.href) + "").replace(tb, "").replace(yb, qb.protocol + "//"), m.type = c.method || c.type || m.method || m.type, m.dataTypes = fa.trim(m.dataType || "*").toLowerCase().match(va) || [""], null == m.crossDomain) {
2764 j = X.createElement("a");
2765 try {
2766 j.href = m.url, j.href = j.href, m.crossDomain = Cb.protocol + "//" + Cb.host != j.protocol + "//" + j.host
2767 } catch (x) {
2768 m.crossDomain = !0
2769 }
2770 }
2771 if (m.data && m.processData && "string" != typeof m.data && (m.data = fa.param(m.data, m.traditional)), Q(zb, m, c, w), 2 === u) return w;
2772 k = fa.event && m.global, k && 0 === fa.active++ && fa.event.trigger("ajaxStart"), m.type = m.type.toUpperCase(), m.hasContent = !xb.test(m.type), f = m.url, m.hasContent || (m.data && (f = m.url += (sb.test(f) ? "&" : "?") + m.data, delete m.data), m.cache === !1 && (m.url = ub.test(f) ? f.replace(ub, "$1_=" + rb++) : f + (sb.test(f) ? "&" : "?") + "_=" + rb++)), 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] ? ", " + Bb + "; q=0.01" : "") : m.accepts["*"]);
2773 for (l in m.headers) w.setRequestHeader(l, m.headers[l]);
2774 if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) return w.abort();
2775 v = "abort";
2776 for (l in {
2777 success: 1,
2778 error: 1,
2779 complete: 1
2780 }) w[l](m[l]);
2781 if (e = Q(Ab, m, c, w)) {
2782 if (w.readyState = 1, k && o.trigger("ajaxSend", [w, m]), 2 === u) return w;
2783 m.async && m.timeout > 0 && (i = a.setTimeout(function() {
2784 w.abort("timeout")
2785 }, m.timeout));
2786 try {
2787 u = 1, e.send(s, d)
2788 } catch (x) {
2789 if (!(2 > u)) throw x;
2790 d(-1, x)
2791 }
2792 } else d(-1, "No Transport");
2793 return w
2794 },
2795 getJSON: function(a, b, c) {
2796 return fa.get(a, b, c, "json")
2797 },
2798 getScript: function(a, b) {
2799 return fa.get(a, void 0, b, "script")
2800 }
2801 }), fa.each(["get", "post"], function(a, b) {
2802 fa[b] = function(a, c, d, e) {
2803 return fa.isFunction(c) && (e = e || d, d = c, c = void 0), fa.ajax(fa.extend({
2804 url: a,
2805 type: b,
2806 dataType: e,
2807 data: c,
2808 success: d
2809 }, fa.isPlainObject(a) && a))
2810 }
2811 }), fa._evalUrl = function(a) {
2812 return fa.ajax({
2813 url: a,
2814 type: "GET",
2815 dataType: "script",
2816 async: !1,
2817 global: !1,
2818 "throws": !0
2819 })
2820 }, fa.fn.extend({
2821 wrapAll: function(a) {
2822 var b;
2823 return fa.isFunction(a) ? this.each(function(b) {
2824 fa(this).wrapAll(a.call(this, b))
2825 }) : (this[0] && (b = fa(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
2826 for (var a = this; a.firstElementChild;) a = a.firstElementChild;
2827 return a
2828 }).append(this)), this)
2829 },
2830 wrapInner: function(a) {
2831 return fa.isFunction(a) ? this.each(function(b) {
2832 fa(this).wrapInner(a.call(this, b))
2833 }) : this.each(function() {
2834 var b = fa(this),
2835 c = b.contents();
2836 c.length ? c.wrapAll(a) : b.append(a)
2837 })
2838 },
2839 wrap: function(a) {
2840 var b = fa.isFunction(a);
2841 return this.each(function(c) {
2842 fa(this).wrapAll(b ? a.call(this, c) : a)
2843 })
2844 },
2845 unwrap: function() {
2846 return this.parent().each(function() {
2847 fa.nodeName(this, "body") || fa(this).replaceWith(this.childNodes)
2848 }).end()
2849 }
2850 }), fa.expr.filters.hidden = function(a) {
2851 return !fa.expr.filters.visible(a)
2852 }, fa.expr.filters.visible = function(a) {
2853 return a.offsetWidth > 0 || a.offsetHeight > 0 || a.getClientRects().length > 0
2854 };
2855 var Db = /%20/g,
2856 Eb = /\[\]$/,
2857 Fb = /\r?\n/g,
2858 Gb = /^(?:submit|button|image|reset|file)$/i,
2859 Hb = /^(?:input|select|textarea|keygen)/i;
2860 fa.param = function(a, b) {
2861 var c, d = [],
2862 e = function(a, b) {
2863 b = fa.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
2864 };
2865 if (void 0 === b && (b = fa.ajaxSettings && fa.ajaxSettings.traditional), fa.isArray(a) || a.jquery && !fa.isPlainObject(a)) fa.each(a, function() {
2866 e(this.name, this.value)
2867 });
2868 else
2869 for (c in a) U(c, a[c], b, e);
2870 return d.join("&").replace(Db, "+")
2871 }, fa.fn.extend({
2872 serialize: function() {
2873 return fa.param(this.serializeArray())
2874 },
2875 serializeArray: function() {
2876 return this.map(function() {
2877 var a = fa.prop(this, "elements");
2878 return a ? fa.makeArray(a) : this
2879 }).filter(function() {
2880 var a = this.type;
2881 return this.name && !fa(this).is(":disabled") && Hb.test(this.nodeName) && !Gb.test(a) && (this.checked || !Ha.test(a))
2882 }).map(function(a, b) {
2883 var c = fa(this).val();
2884 return null == c ? null : fa.isArray(c) ? fa.map(c, function(a) {
2885 return {
2886 name: b.name,
2887 value: a.replace(Fb, "\r\n")
2888 }
2889 }) : {
2890 name: b.name,
2891 value: c.replace(Fb, "\r\n")
2892 }
2893 }).get()
2894 }
2895 }), fa.ajaxSettings.xhr = function() {
2896 try {
2897 return new a.XMLHttpRequest
2898 } catch (b) {}
2899 };
2900 var Ib = {
2901 0: 200,
2902 1223: 204
2903 },
2904 Jb = fa.ajaxSettings.xhr();
2905 da.cors = !!Jb && "withCredentials" in Jb, da.ajax = Jb = !!Jb, fa.ajaxTransport(function(b) {
2906 var c, d;
2907 return da.cors || Jb && !b.crossDomain ? {
2908 send: function(e, f) {
2909 var g, h = b.xhr();
2910 if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields)
2911 for (g in b.xhrFields) h[g] = b.xhrFields[g];
2912 b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest");
2913 for (g in e) h.setRequestHeader(g, e[g]);
2914 c = function(a) {
2915 return function() {
2916 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(Ib[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText ? {
2917 binary: h.response
2918 } : {
2919 text: h.responseText
2920 }, h.getAllResponseHeaders()))
2921 }
2922 }, h.onload = c(), d = h.onerror = c("error"), void 0 !== h.onabort ? h.onabort = d : h.onreadystatechange = function() {
2923 4 === h.readyState && a.setTimeout(function() {
2924 c && d()
2925 })
2926 }, c = c("abort");
2927 try {
2928 h.send(b.hasContent && b.data || null)
2929 } catch (i) {
2930 if (c) throw i
2931 }
2932 },
2933 abort: function() {
2934 c && c()
2935 }
2936 } : void 0
2937 }), fa.ajaxSetup({
2938 accepts: {
2939 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
2940 },
2941 contents: {
2942 script: /\b(?:java|ecma)script\b/
2943 },
2944 converters: {
2945 "text script": function(a) {
2946 return fa.globalEval(a), a
2947 }
2948 }
2949 }), fa.ajaxPrefilter("script", function(a) {
2950 void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET")
2951 }), fa.ajaxTransport("script", function(a) {
2952 if (a.crossDomain) {
2953 var b, c;
2954 return {
2955 send: function(d, e) {
2956 b = fa("<script>").prop({
2957 charset: a.scriptCharset,
2958 src: a.url
2959 }).on("load error", c = function(a) {
2960 b.remove(), c = null, a && e("error" === a.type ? 404 : 200, a.type)
2961 }), X.head.appendChild(b[0])
2962 },
2963 abort: function() {
2964 c && c()
2965 }
2966 }
2967 }
2968 });
2969 var Kb = [],
2970 Lb = /(=)\?(?=&|$)|\?\?/;
2971 fa.ajaxSetup({
2972 jsonp: "callback",
2973 jsonpCallback: function() {
2974 var a = Kb.pop() || fa.expando + "_" + rb++;
2975 return this[a] = !0, a
2976 }
2977 }), fa.ajaxPrefilter("json jsonp", function(b, c, d) {
2978 var e, f, g, h = b.jsonp !== !1 && (Lb.test(b.url) ? "url" : "string" == typeof b.data && 0 === (b.contentType || "").indexOf("application/x-www-form-urlencoded") && Lb.test(b.data) && "data");
2979 return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = fa.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(Lb, "$1" + e) : b.jsonp !== !1 && (b.url += (sb.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
2980 return g || fa.error(e + " was not called"), g[0]
2981 }, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
2982 g = arguments
2983 }, d.always(function() {
2984 void 0 === f ? fa(a).removeProp(e) : a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, Kb.push(e)), g && fa.isFunction(f) && f(g[0]), g = f = void 0
2985 }), "script") : void 0
2986 }), fa.parseHTML = function(a, b, c) {
2987 if (!a || "string" != typeof a) return null;
2988 "boolean" == typeof b && (c = b, b = !1), b = b || X;
2989 var d = oa.exec(a),
2990 e = !c && [];
2991 return d ? [b.createElement(d[1])] : (d = m([a], b, e), e && e.length && fa(e).remove(), fa.merge([], d.childNodes))
2992 };
2993 var Mb = fa.fn.load;
2994 fa.fn.load = function(a, b, c) {
2995 if ("string" != typeof a && Mb) return Mb.apply(this, arguments);
2996 var d, e, f, g = this,
2997 h = a.indexOf(" ");
2998 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({
2999 url: a,
3000 type: e || "GET",
3001 dataType: "html",
3002 data: b
3003 }).done(function(a) {
3004 f = arguments, g.html(d ? fa("<div>").append(fa.parseHTML(a)).find(d) : a)
3005 }).always(c && function(a, b) {
3006 g.each(function() {
3007 c.apply(this, f || [a.responseText, b, a])
3008 })
3009 }), this
3010 }, fa.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
3011 fa.fn[b] = function(a) {
3012 return this.on(b, a)
3013 }
3014 }), fa.expr.filters.animated = function(a) {
3015 return fa.grep(fa.timers, function(b) {
3016 return a === b.elem
3017 }).length
3018 }, fa.offset = {
3019 setOffset: function(a, b, c) {
3020 var d, e, f, g, h, i, j, k = fa.css(a, "position"),
3021 l = fa(a),
3022 m = {};
3023 "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)
3024 }
3025 }, fa.fn.extend({
3026 offset: function(a) {
3027 if (arguments.length) return void 0 === a ? this : this.each(function(b) {
3028 fa.offset.setOffset(this, a, b)
3029 });
3030 var b, c, d = this[0],
3031 e = {
3032 top: 0,
3033 left: 0
3034 },
3035 f = d && d.ownerDocument;
3036 if (f) return b = f.documentElement, fa.contains(b, d) ? (e = d.getBoundingClientRect(), c = V(f), {
3037 top: e.top + c.pageYOffset - b.clientTop,
3038 left: e.left + c.pageXOffset - b.clientLeft
3039 }) : e
3040 },
3041 position: function() {
3042 if (this[0]) {
3043 var a, b, c = this[0],
3044 d = {
3045 top: 0,
3046 left: 0
3047 };
3048 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), d.left += fa.css(a[0], "borderLeftWidth", !0)), {
3049 top: b.top - d.top - fa.css(c, "marginTop", !0),
3050 left: b.left - d.left - fa.css(c, "marginLeft", !0)
3051 }
3052 }
3053 },
3054 offsetParent: function() {
3055 return this.map(function() {
3056 for (var a = this.offsetParent; a && "static" === fa.css(a, "position");) a = a.offsetParent;
3057 return a || $a
3058 })
3059 }
3060 }), fa.each({
3061 scrollLeft: "pageXOffset",
3062 scrollTop: "pageYOffset"
3063 }, function(a, b) {
3064 var c = "pageYOffset" === b;
3065 fa.fn[a] = function(d) {
3066 return xa(this, function(a, d, e) {
3067 var f = V(a);
3068 return void 0 === e ? f ? f[b] : a[d] : void(f ? f.scrollTo(c ? f.pageXOffset : e, c ? e : f.pageYOffset) : a[d] = e)
3069 }, a, d, arguments.length)
3070 }
3071 }), fa.each(["top", "left"], function(a, b) {
3072 fa.cssHooks[b] = B(da.pixelPosition, function(a, c) {
3073 return c ? (c = A(a, b), Xa.test(c) ? fa(a).position()[b] + "px" : c) : void 0
3074 })
3075 }), fa.each({
3076 Height: "height",
3077 Width: "width"
3078 }, function(a, b) {
3079 fa.each({
3080 padding: "inner" + a,
3081 content: b,
3082 "": "outer" + a
3083 }, function(c, d) {
3084 fa.fn[d] = function(d, e) {
3085 var f = arguments.length && (c || "boolean" != typeof d),
3086 g = c || (d === !0 || e === !0 ? "margin" : "border");
3087 return xa(this, function(b, c, d) {
3088 var e;
3089 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)
3090 }, b, f ? d : void 0, f, null)
3091 }
3092 })
3093 }), fa.fn.extend({
3094 bind: function(a, b, c) {
3095 return this.on(a, null, b, c)
3096 },
3097 unbind: function(a, b) {
3098 return this.off(a, null, b)
3099 },
3100 delegate: function(a, b, c, d) {
3101 return this.on(b, a, c, d)
3102 },
3103 undelegate: function(a, b, c) {
3104 return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
3105 },
3106 size: function() {
3107 return this.length
3108 }
3109 }), fa.fn.andSelf = fa.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
3110 return fa
3111 });
3112 var Nb = a.jQuery,
3113 Ob = a.$;
3114 return fa.noConflict = function(b) {
3115 return a.$ === fa && (a.$ = Ob), b && a.jQuery === fa && (a.jQuery = Nb), fa
3116 }, b || (a.jQuery = a.$ = fa), fa
3117 }),
3118 function(a) {
3119 function b(a) {
3120 var b = a.length,
3121 d = c.type(a);
3122 return "function" === d || c.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === d || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
3123 }
3124 if (!a.jQuery) {
3125 var c = function(a, b) {
3126 return new c.fn.init(a, b)
3127 };
3128 c.isWindow = function(a) {
3129 return null != a && a == a.window
3130 }, c.type = function(a) {
3131 return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? e[g.call(a)] || "object" : typeof a
3132 }, c.isArray = Array.isArray || function(a) {
3133 return "array" === c.type(a)
3134 }, c.isPlainObject = function(a) {
3135 var b;
3136 if (!a || "object" !== c.type(a) || a.nodeType || c.isWindow(a)) return !1;
3137 try {
3138 if (a.constructor && !f.call(a, "constructor") && !f.call(a.constructor.prototype, "isPrototypeOf")) return !1
3139 } catch (d) {
3140 return !1
3141 }
3142 for (b in a);
3143 return void 0 === b || f.call(a, b)
3144 }, c.each = function(a, c, d) {
3145 var e, f = 0,
3146 g = a.length,
3147 h = b(a);
3148 if (d) {
3149 if (h)
3150 for (; g > f && (e = c.apply(a[f], d), e !== !1); f++);
3151 else
3152 for (f in a)
3153 if (e = c.apply(a[f], d), e === !1) break
3154 } else if (h)
3155 for (; g > f && (e = c.call(a[f], f, a[f]), e !== !1); f++);
3156 else
3157 for (f in a)
3158 if (e = c.call(a[f], f, a[f]), e === !1) break; return a
3159 }, c.data = function(a, b, e) {
3160 if (void 0 === e) {
3161 var f = a[c.expando],
3162 g = f && d[f];
3163 if (void 0 === b) return g;
3164 if (g && b in g) return g[b]
3165 } else if (void 0 !== b) {
3166 var f = a[c.expando] || (a[c.expando] = ++c.uuid);
3167 return d[f] = d[f] || {}, d[f][b] = e, e
3168 }
3169 }, c.removeData = function(a, b) {
3170 var e = a[c.expando],
3171 f = e && d[e];
3172 f && c.each(b, function(a, b) {
3173 delete f[b]
3174 })
3175 }, c.extend = function() {
3176 var a, b, d, e, f, g, h = arguments[0] || {},
3177 i = 1,
3178 j = arguments.length,
3179 k = !1;
3180 for ("boolean" == typeof h && (k = h, h = arguments[i] || {}, i++), "object" != typeof h && "function" !== c.type(h) && (h = {}), i === j && (h = this, i--); j > i; i++)
3181 if (null != (f = arguments[i]))
3182 for (e in f) a = h[e], d = f[e], h !== d && (k && d && (c.isPlainObject(d) || (b = c.isArray(d))) ? (b ? (b = !1, g = a && c.isArray(a) ? a : []) : g = a && c.isPlainObject(a) ? a : {}, h[e] = c.extend(k, g, d)) : void 0 !== d && (h[e] = d));
3183 return h
3184 }, c.queue = function(a, d, e) {
3185 function f(a, c) {
3186 var d = c || [];
3187 return null != a && (b(Object(a)) ? ! function(a, b) {
3188 for (var c = +b.length, d = 0, e = a.length; c > d;) a[e++] = b[d++];
3189 if (c !== c)
3190 for (; void 0 !== b[d];) a[e++] = b[d++];
3191 return a.length = e, a
3192 }(d, "string" == typeof a ? [a] : a) : [].push.call(d, a)), d
3193 }
3194 if (a) {
3195 d = (d || "fx") + "queue";
3196 var g = c.data(a, d);
3197 return e ? (!g || c.isArray(e) ? g = c.data(a, d, f(e)) : g.push(e), g) : g || []
3198 }
3199 }, c.dequeue = function(a, b) {
3200 c.each(a.nodeType ? [a] : a, function(a, d) {
3201 b = b || "fx";
3202 var e = c.queue(d, b),
3203 f = e.shift();
3204 "inprogress" === f && (f = e.shift()), f && ("fx" === b && e.unshift("inprogress"), f.call(d, function() {
3205 c.dequeue(d, b)
3206 }))
3207 })
3208 }, c.fn = c.prototype = {
3209 init: function(a) {
3210 if (a.nodeType) return this[0] = a, this;
3211 throw new Error("Not a DOM node.")
3212 },
3213 offset: function() {
3214 var b = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {
3215 top: 0,
3216 left: 0
3217 };
3218 return {
3219 top: b.top + (a.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),
3220 left: b.left + (a.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)
3221 }
3222 },
3223 position: function() {
3224 function a() {
3225 for (var a = this.offsetParent || document; a && "html" === !a.nodeType.toLowerCase && "static" === a.style.position;) a = a.offsetParent;
3226 return a || document
3227 }
3228 var b = this[0],
3229 a = a.apply(b),
3230 d = this.offset(),
3231 e = /^(?:body|html)$/i.test(a.nodeName) ? {
3232 top: 0,
3233 left: 0
3234 } : c(a).offset();
3235 return d.top -= parseFloat(b.style.marginTop) || 0, d.left -= parseFloat(b.style.marginLeft) || 0, a.style && (e.top += parseFloat(a.style.borderTopWidth) || 0, e.left += parseFloat(a.style.borderLeftWidth) || 0), {
3236 top: d.top - e.top,
3237 left: d.left - e.left
3238 }
3239 }
3240 };
3241 var d = {};
3242 c.expando = "velocity" + (new Date).getTime(), c.uuid = 0;
3243 for (var e = {}, f = e.hasOwnProperty, g = e.toString, h = "Boolean Number String Function Array Date RegExp Object Error".split(" "), i = 0; i < h.length; i++) e["[object " + h[i] + "]"] = h[i].toLowerCase();
3244 c.fn.init.prototype = c.fn, a.Velocity = {
3245 Utilities: c
3246 }
3247 }
3248 }(window),
3249 function(a) {
3250 "object" == typeof module && "object" == typeof module.exports ? module.exports = a() : "function" == typeof define && define.amd ? define(a) : a()
3251 }(function() {
3252 return function(a, b, c, d) {
3253 function e(a) {
3254 for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) {
3255 var e = a[b];
3256 e && d.push(e)
3257 }
3258 return d
3259 }
3260
3261 function f(a) {
3262 return p.isWrapped(a) ? a = [].slice.call(a) : p.isNode(a) && (a = [a]), a
3263 }
3264
3265 function g(a) {
3266 var b = m.data(a, "velocity");
3267 return null === b ? d : b
3268 }
3269
3270 function h(a) {
3271 return function(b) {
3272 return Math.round(b * a) * (1 / a)
3273 }
3274 }
3275
3276 function i(a, c, d, e) {
3277 function f(a, b) {
3278 return 1 - 3 * b + 3 * a
3279 }
3280
3281 function g(a, b) {
3282 return 3 * b - 6 * a
3283 }
3284
3285 function h(a) {
3286 return 3 * a
3287 }
3288
3289 function i(a, b, c) {
3290 return ((f(b, c) * a + g(b, c)) * a + h(b)) * a
3291 }
3292
3293 function j(a, b, c) {
3294 return 3 * f(b, c) * a * a + 2 * g(b, c) * a + h(b)
3295 }
3296
3297 function k(b, c) {
3298 for (var e = 0; p > e; ++e) {
3299 var f = j(c, a, d);
3300 if (0 === f) return c;
3301 var g = i(c, a, d) - b;
3302 c -= g / f
3303 }
3304 return c
3305 }
3306
3307 function l() {
3308 for (var b = 0; t > b; ++b) x[b] = i(b * u, a, d)
3309 }
3310
3311 function m(b, c, e) {
3312 var f, g, h = 0;
3313 do g = c + (e - c) / 2, f = i(g, a, d) - b, f > 0 ? e = g : c = g; while (Math.abs(f) > r && ++h < s);
3314 return g
3315 }
3316
3317 function n(b) {
3318 for (var c = 0, e = 1, f = t - 1; e != f && x[e] <= b; ++e) c += u;
3319 --e;
3320 var g = (b - x[e]) / (x[e + 1] - x[e]),
3321 h = c + g * u,
3322 i = j(h, a, d);
3323 return i >= q ? k(b, h) : 0 == i ? h : m(b, c, c + u)
3324 }
3325
3326 function o() {
3327 y = !0, a == c && d == e || l()
3328 }
3329 var p = 4,
3330 q = .001,
3331 r = 1e-7,
3332 s = 10,
3333 t = 11,
3334 u = 1 / (t - 1),
3335 v = "Float32Array" in b;
3336 if (4 !== arguments.length) return !1;
3337 for (var w = 0; 4 > w; ++w)
3338 if ("number" != typeof arguments[w] || isNaN(arguments[w]) || !isFinite(arguments[w])) return !1;
3339 a = Math.min(a, 1), d = Math.min(d, 1), a = Math.max(a, 0), d = Math.max(d, 0);
3340 var x = v ? new Float32Array(t) : new Array(t),
3341 y = !1,
3342 z = function(b) {
3343 return y || o(), a === c && d === e ? b : 0 === b ? 0 : 1 === b ? 1 : i(n(b), c, e)
3344 };
3345 z.getControlPoints = function() {
3346 return [{
3347 x: a,
3348 y: c
3349 }, {
3350 x: d,
3351 y: e
3352 }]
3353 };
3354 var A = "generateBezier(" + [a, c, d, e] + ")";
3355 return z.toString = function() {
3356 return A
3357 }, z
3358 }
3359
3360 function j(a, b) {
3361 var c = a;
3362 return p.isString(a) ? t.Easings[a] || (c = !1) : c = p.isArray(a) && 1 === a.length ? h.apply(null, a) : p.isArray(a) && 2 === a.length ? u.apply(null, a.concat([b])) : p.isArray(a) && 4 === a.length ? i.apply(null, a) : !1, c === !1 && (c = t.Easings[t.defaults.easing] ? t.defaults.easing : s), c
3363 }
3364
3365 function k(a) {
3366 if (a) {
3367 var b = (new Date).getTime(),
3368 c = t.State.calls.length;
3369 c > 1e4 && (t.State.calls = e(t.State.calls));
3370 for (var f = 0; c > f; f++)
3371 if (t.State.calls[f]) {
3372 var h = t.State.calls[f],
3373 i = h[0],
3374 j = h[2],
3375 n = h[3],
3376 o = !!n,
3377 q = null;
3378 n || (n = t.State.calls[f][3] = b - 16);
3379 for (var r = Math.min((b - n) / j.duration, 1), s = 0, u = i.length; u > s; s++) {
3380 var w = i[s],
3381 y = w.element;
3382 if (g(y)) {
3383 var z = !1;
3384 if (j.display !== d && null !== j.display && "none" !== j.display) {
3385 if ("flex" === j.display) {
3386 var A = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];
3387 m.each(A, function(a, b) {
3388 v.setPropertyValue(y, "display", b)
3389 })
3390 }
3391 v.setPropertyValue(y, "display", j.display)
3392 }
3393 j.visibility !== d && "hidden" !== j.visibility && v.setPropertyValue(y, "visibility", j.visibility);
3394 for (var B in w)
3395 if ("element" !== B) {
3396 var C, D = w[B],
3397 E = p.isString(D.easing) ? t.Easings[D.easing] : D.easing;
3398 if (1 === r) C = D.endValue;
3399 else {
3400 var F = D.endValue - D.startValue;
3401 if (C = D.startValue + F * E(r, j, F), !o && C === D.currentValue) continue
3402 }
3403 if (D.currentValue = C, "tween" === B) q = C;
3404 else {
3405 if (v.Hooks.registered[B]) {
3406 var G = v.Hooks.getRoot(B),
3407 H = g(y).rootPropertyValueCache[G];
3408 H && (D.rootPropertyValue = H)
3409 }
3410 var I = v.setPropertyValue(y, B, D.currentValue + (0 === parseFloat(C) ? "" : D.unitType), D.rootPropertyValue, D.scrollData);
3411 v.Hooks.registered[B] && (v.Normalizations.registered[G] ? g(y).rootPropertyValueCache[G] = v.Normalizations.registered[G]("extract", null, I[1]) : g(y).rootPropertyValueCache[G] = I[1]), "transform" === I[0] && (z = !0)
3412 }
3413 }
3414 j.mobileHA && g(y).transformCache.translate3d === d && (g(y).transformCache.translate3d = "(0px, 0px, 0px)", z = !0), z && v.flushTransformCache(y)
3415 }
3416 }
3417 j.display !== d && "none" !== j.display && (t.State.calls[f][2].display = !1), j.visibility !== d && "hidden" !== j.visibility && (t.State.calls[f][2].visibility = !1), j.progress && j.progress.call(h[1], h[1], r, Math.max(0, n + j.duration - b), n, q),
3418 1 === r && l(f)
3419 }
3420 }
3421 t.State.isTicking && x(k)
3422 }
3423
3424 function l(a, b) {
3425 if (!t.State.calls[a]) return !1;
3426 for (var c = t.State.calls[a][0], e = t.State.calls[a][1], f = t.State.calls[a][2], h = t.State.calls[a][4], i = !1, j = 0, k = c.length; k > j; j++) {
3427 var l = c[j].element;
3428 if (b || f.loop || ("none" === f.display && v.setPropertyValue(l, "display", f.display), "hidden" === f.visibility && v.setPropertyValue(l, "visibility", f.visibility)), f.loop !== !0 && (m.queue(l)[1] === d || !/\.velocityQueueEntryFlag/i.test(m.queue(l)[1])) && g(l)) {
3429 g(l).isAnimating = !1, g(l).rootPropertyValueCache = {};
3430 var n = !1;
3431 m.each(v.Lists.transforms3D, function(a, b) {
3432 var c = /^scale/.test(b) ? 1 : 0,
3433 e = g(l).transformCache[b];
3434 g(l).transformCache[b] !== d && new RegExp("^\\(" + c + "[^.]").test(e) && (n = !0, delete g(l).transformCache[b])
3435 }), f.mobileHA && (n = !0, delete g(l).transformCache.translate3d), n && v.flushTransformCache(l), v.Values.removeClass(l, "velocity-animating")
3436 }
3437 if (!b && f.complete && !f.loop && j === k - 1) try {
3438 f.complete.call(e, e)
3439 } catch (o) {
3440 setTimeout(function() {
3441 throw o
3442 }, 1)
3443 }
3444 h && f.loop !== !0 && h(e), g(l) && f.loop === !0 && !b && (m.each(g(l).tweensContainer, function(a, b) {
3445 /^rotate/.test(a) && 360 === parseFloat(b.endValue) && (b.endValue = 0, b.startValue = 360), /^backgroundPosition/.test(a) && 100 === parseFloat(b.endValue) && "%" === b.unitType && (b.endValue = 0, b.startValue = 100)
3446 }), t(l, "reverse", {
3447 loop: !0,
3448 delay: f.delay
3449 })), f.queue !== !1 && m.dequeue(l, f.queue)
3450 }
3451 t.State.calls[a] = !1;
3452 for (var p = 0, q = t.State.calls.length; q > p; p++)
3453 if (t.State.calls[p] !== !1) {
3454 i = !0;
3455 break
3456 }
3457 i === !1 && (t.State.isTicking = !1, delete t.State.calls, t.State.calls = [])
3458 }
3459 var m, n = function() {
3460 if (c.documentMode) return c.documentMode;
3461 for (var a = 7; a > 4; a--) {
3462 var b = c.createElement("div");
3463 if (b.innerHTML = "<!--[if IE " + a + "]><span></span><![endif]-->", b.getElementsByTagName("span").length) return b = null, a
3464 }
3465 return d
3466 }(),
3467 o = function() {
3468 var a = 0;
3469 return b.webkitRequestAnimationFrame || b.mozRequestAnimationFrame || function(b) {
3470 var c, d = (new Date).getTime();
3471 return c = Math.max(0, 16 - (d - a)), a = d + c, setTimeout(function() {
3472 b(d + c)
3473 }, c)
3474 }
3475 }(),
3476 p = {
3477 isString: function(a) {
3478 return "string" == typeof a
3479 },
3480 isArray: Array.isArray || function(a) {
3481 return "[object Array]" === Object.prototype.toString.call(a)
3482 },
3483 isFunction: function(a) {
3484 return "[object Function]" === Object.prototype.toString.call(a)
3485 },
3486 isNode: function(a) {
3487 return a && a.nodeType
3488 },
3489 isNodeList: function(a) {
3490 return "object" == typeof a && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a)) && a.length !== d && (0 === a.length || "object" == typeof a[0] && a[0].nodeType > 0)
3491 },
3492 isWrapped: function(a) {
3493 return a && (a.jquery || b.Zepto && b.Zepto.zepto.isZ(a))
3494 },
3495 isSVG: function(a) {
3496 return b.SVGElement && a instanceof b.SVGElement
3497 },
3498 isEmptyObject: function(a) {
3499 for (var b in a) return !1;
3500 return !0
3501 }
3502 },
3503 q = !1;
3504 if (a.fn && a.fn.jquery ? (m = a, q = !0) : m = b.Velocity.Utilities, 8 >= n && !q) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");
3505 if (7 >= n) return void(jQuery.fn.velocity = jQuery.fn.animate);
3506 var r = 400,
3507 s = "swing",
3508 t = {
3509 State: {
3510 isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
3511 isAndroid: /Android/i.test(navigator.userAgent),
3512 isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent),
3513 isChrome: b.chrome,
3514 isFirefox: /Firefox/i.test(navigator.userAgent),
3515 prefixElement: c.createElement("div"),
3516 prefixMatches: {},
3517 scrollAnchor: null,
3518 scrollPropertyLeft: null,
3519 scrollPropertyTop: null,
3520 isTicking: !1,
3521 calls: []
3522 },
3523 CSS: {},
3524 Utilities: m,
3525 Redirects: {},
3526 Easings: {},
3527 Promise: b.Promise,
3528 defaults: {
3529 queue: "",
3530 duration: r,
3531 easing: s,
3532 begin: d,
3533 complete: d,
3534 progress: d,
3535 display: d,
3536 visibility: d,
3537 loop: !1,
3538 delay: !1,
3539 mobileHA: !0,
3540 _cacheValues: !0
3541 },
3542 init: function(a) {
3543 m.data(a, "velocity", {
3544 isSVG: p.isSVG(a),
3545 isAnimating: !1,
3546 computedStyle: null,
3547 tweensContainer: null,
3548 rootPropertyValueCache: {},
3549 transformCache: {}
3550 })
3551 },
3552 hook: null,
3553 mock: !1,
3554 version: {
3555 major: 1,
3556 minor: 2,
3557 patch: 2
3558 },
3559 debug: !1
3560 };
3561 b.pageYOffset !== d ? (t.State.scrollAnchor = b, t.State.scrollPropertyLeft = "pageXOffset", t.State.scrollPropertyTop = "pageYOffset") : (t.State.scrollAnchor = c.documentElement || c.body.parentNode || c.body, t.State.scrollPropertyLeft = "scrollLeft", t.State.scrollPropertyTop = "scrollTop");
3562 var u = function() {
3563 function a(a) {
3564 return -a.tension * a.x - a.friction * a.v
3565 }
3566
3567 function b(b, c, d) {
3568 var e = {
3569 x: b.x + d.dx * c,
3570 v: b.v + d.dv * c,
3571 tension: b.tension,
3572 friction: b.friction
3573 };
3574 return {
3575 dx: e.v,
3576 dv: a(e)
3577 }
3578 }
3579
3580 function c(c, d) {
3581 var e = {
3582 dx: c.v,
3583 dv: a(c)
3584 },
3585 f = b(c, .5 * d, e),
3586 g = b(c, .5 * d, f),
3587 h = b(c, d, g),
3588 i = 1 / 6 * (e.dx + 2 * (f.dx + g.dx) + h.dx),
3589 j = 1 / 6 * (e.dv + 2 * (f.dv + g.dv) + h.dv);
3590 return c.x = c.x + i * d, c.v = c.v + j * d, c
3591 }
3592 return function d(a, b, e) {
3593 var f, g, h, i = {
3594 x: -1,
3595 v: 0,
3596 tension: null,
3597 friction: null
3598 },
3599 j = [0],
3600 k = 0,
3601 l = 1e-4,
3602 m = .016;
3603 for (a = parseFloat(a) || 500, b = parseFloat(b) || 20, e = e || null, i.tension = a, i.friction = b, f = null !== e, f ? (k = d(a, b), g = k / e * m) : g = m;;)
3604 if (h = c(h || i, g), j.push(1 + h.x), k += 16, !(Math.abs(h.x) > l && Math.abs(h.v) > l)) break;
3605 return f ? function(a) {
3606 return j[a * (j.length - 1) | 0]
3607 } : k
3608 }
3609 }();
3610 t.Easings = {
3611 linear: function(a) {
3612 return a
3613 },
3614 swing: function(a) {
3615 return .5 - Math.cos(a * Math.PI) / 2
3616 },
3617 spring: function(a) {
3618 return 1 - Math.cos(4.5 * a * Math.PI) * Math.exp(6 * -a)
3619 }
3620 }, m.each([
3621 ["ease", [.25, .1, .25, 1]],
3622 ["ease-in", [.42, 0, 1, 1]],
3623 ["ease-out", [0, 0, .58, 1]],
3624 ["ease-in-out", [.42, 0, .58, 1]],
3625 ["easeInSine", [.47, 0, .745, .715]],
3626 ["easeOutSine", [.39, .575, .565, 1]],
3627 ["easeInOutSine", [.445, .05, .55, .95]],
3628 ["easeInQuad", [.55, .085, .68, .53]],
3629 ["easeOutQuad", [.25, .46, .45, .94]],
3630 ["easeInOutQuad", [.455, .03, .515, .955]],
3631 ["easeInCubic", [.55, .055, .675, .19]],
3632 ["easeOutCubic", [.215, .61, .355, 1]],
3633 ["easeInOutCubic", [.645, .045, .355, 1]],
3634 ["easeInQuart", [.895, .03, .685, .22]],
3635 ["easeOutQuart", [.165, .84, .44, 1]],
3636 ["easeInOutQuart", [.77, 0, .175, 1]],
3637 ["easeInQuint", [.755, .05, .855, .06]],
3638 ["easeOutQuint", [.23, 1, .32, 1]],
3639 ["easeInOutQuint", [.86, 0, .07, 1]],
3640 ["easeInExpo", [.95, .05, .795, .035]],
3641 ["easeOutExpo", [.19, 1, .22, 1]],
3642 ["easeInOutExpo", [1, 0, 0, 1]],
3643 ["easeInCirc", [.6, .04, .98, .335]],
3644 ["easeOutCirc", [.075, .82, .165, 1]],
3645 ["easeInOutCirc", [.785, .135, .15, .86]]
3646 ], function(a, b) {
3647 t.Easings[b[0]] = i.apply(null, b[1])
3648 });
3649 var v = t.CSS = {
3650 RegEx: {
3651 isHex: /^#([A-f\d]{3}){1,2}$/i,
3652 valueUnwrap: /^[A-z]+\((.*)\)$/i,
3653 wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,
3654 valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi
3655 },
3656 Lists: {
3657 colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"],
3658 transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"],
3659 transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"]
3660 },
3661 Hooks: {
3662 templates: {
3663 textShadow: ["Color X Y Blur", "black 0px 0px 0px"],
3664 boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"],
3665 clip: ["Top Right Bottom Left", "0px 0px 0px 0px"],
3666 backgroundPosition: ["X Y", "0% 0%"],
3667 transformOrigin: ["X Y Z", "50% 50% 0px"],
3668 perspectiveOrigin: ["X Y", "50% 50%"]
3669 },
3670 registered: {},
3671 register: function() {
3672 for (var a = 0; a < v.Lists.colors.length; a++) {
3673 var b = "color" === v.Lists.colors[a] ? "0 0 0 1" : "255 255 255 1";
3674 v.Hooks.templates[v.Lists.colors[a]] = ["Red Green Blue Alpha", b]
3675 }
3676 var c, d, e;
3677 if (n)
3678 for (c in v.Hooks.templates) {
3679 d = v.Hooks.templates[c], e = d[0].split(" ");
3680 var f = d[1].match(v.RegEx.valueSplit);
3681 "Color" === e[0] && (e.push(e.shift()), f.push(f.shift()), v.Hooks.templates[c] = [e.join(" "), f.join(" ")])
3682 }
3683 for (c in v.Hooks.templates) {
3684 d = v.Hooks.templates[c], e = d[0].split(" ");
3685 for (var a in e) {
3686 var g = c + e[a],
3687 h = a;
3688 v.Hooks.registered[g] = [c, h]
3689 }
3690 }
3691 },
3692 getRoot: function(a) {
3693 var b = v.Hooks.registered[a];
3694 return b ? b[0] : a
3695 },
3696 cleanRootPropertyValue: function(a, b) {
3697 return v.RegEx.valueUnwrap.test(b) && (b = b.match(v.RegEx.valueUnwrap)[1]), v.Values.isCSSNullValue(b) && (b = v.Hooks.templates[a][1]), b
3698 },
3699 extractValue: function(a, b) {
3700 var c = v.Hooks.registered[a];
3701 if (c) {
3702 var d = c[0],
3703 e = c[1];
3704 return b = v.Hooks.cleanRootPropertyValue(d, b), b.toString().match(v.RegEx.valueSplit)[e]
3705 }
3706 return b
3707 },
3708 injectValue: function(a, b, c) {
3709 var d = v.Hooks.registered[a];
3710 if (d) {
3711 var e, f, g = d[0],
3712 h = d[1];
3713 return c = v.Hooks.cleanRootPropertyValue(g, c), e = c.toString().match(v.RegEx.valueSplit), e[h] = b, f = e.join(" ")
3714 }
3715 return c
3716 }
3717 },
3718 Normalizations: {
3719 registered: {
3720 clip: function(a, b, c) {
3721 switch (a) {
3722 case "name":
3723 return "clip";
3724 case "extract":
3725 var d;
3726 return v.RegEx.wrappedValueAlreadyExtracted.test(c) ? d = c : (d = c.toString().match(v.RegEx.valueUnwrap), d = d ? d[1].replace(/,(\s+)?/g, " ") : c), d;
3727 case "inject":
3728 return "rect(" + c + ")"
3729 }
3730 },
3731 blur: function(a, b, c) {
3732 switch (a) {
3733 case "name":
3734 return t.State.isFirefox ? "filter" : "-webkit-filter";
3735 case "extract":
3736 var d = parseFloat(c);
3737 if (!d && 0 !== d) {
3738 var e = c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);
3739 d = e ? e[1] : 0
3740 }
3741 return d;
3742 case "inject":
3743 return parseFloat(c) ? "blur(" + c + ")" : "none"
3744 }
3745 },
3746 opacity: function(a, b, c) {
3747 if (8 >= n) switch (a) {
3748 case "name":
3749 return "filter";
3750 case "extract":
3751 var d = c.toString().match(/alpha\(opacity=(.*)\)/i);
3752 return c = d ? d[1] / 100 : 1;
3753 case "inject":
3754 return b.style.zoom = 1, parseFloat(c) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(c), 10) + ")"
3755 } else switch (a) {
3756 case "name":
3757 return "opacity";
3758 case "extract":
3759 return c;
3760 case "inject":
3761 return c
3762 }
3763 }
3764 },
3765 register: function() {
3766 9 >= n || t.State.isGingerbread || (v.Lists.transformsBase = v.Lists.transformsBase.concat(v.Lists.transforms3D));
3767 for (var a = 0; a < v.Lists.transformsBase.length; a++) ! function() {
3768 var b = v.Lists.transformsBase[a];
3769 v.Normalizations.registered[b] = function(a, c, e) {
3770 switch (a) {
3771 case "name":
3772 return "transform";
3773 case "extract":
3774 return g(c) === d || g(c).transformCache[b] === d ? /^scale/i.test(b) ? 1 : 0 : g(c).transformCache[b].replace(/[()]/g, "");
3775 case "inject":
3776 var f = !1;
3777 switch (b.substr(0, b.length - 1)) {
3778 case "translate":
3779 f = !/(%|px|em|rem|vw|vh|\d)$/i.test(e);
3780 break;
3781 case "scal":
3782 case "scale":
3783 t.State.isAndroid && g(c).transformCache[b] === d && 1 > e && (e = 1), f = !/(\d)$/i.test(e);
3784 break;
3785 case "skew":
3786 f = !/(deg|\d)$/i.test(e);
3787 break;
3788 case "rotate":
3789 f = !/(deg|\d)$/i.test(e)
3790 }
3791 return f || (g(c).transformCache[b] = "(" + e + ")"), g(c).transformCache[b]
3792 }
3793 }
3794 }();
3795 for (var a = 0; a < v.Lists.colors.length; a++) ! function() {
3796 var b = v.Lists.colors[a];
3797 v.Normalizations.registered[b] = function(a, c, e) {
3798 switch (a) {
3799 case "name":
3800 return b;
3801 case "extract":
3802 var f;
3803 if (v.RegEx.wrappedValueAlreadyExtracted.test(e)) f = e;
3804 else {
3805 var g, h = {
3806 black: "rgb(0, 0, 0)",
3807 blue: "rgb(0, 0, 255)",
3808 gray: "rgb(128, 128, 128)",
3809 green: "rgb(0, 128, 0)",
3810 red: "rgb(255, 0, 0)",
3811 white: "rgb(255, 255, 255)"
3812 };
3813 /^[A-z]+$/i.test(e) ? g = h[e] !== d ? h[e] : h.black : v.RegEx.isHex.test(e) ? g = "rgb(" + v.Values.hexToRgb(e).join(" ") + ")" : /^rgba?\(/i.test(e) || (g = h.black), f = (g || e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ")
3814 }
3815 return 8 >= n || 3 !== f.split(" ").length || (f += " 1"), f;
3816 case "inject":
3817 return 8 >= n ? 4 === e.split(" ").length && (e = e.split(/\s+/).slice(0, 3).join(" ")) : 3 === e.split(" ").length && (e += " 1"), (8 >= n ? "rgb" : "rgba") + "(" + e.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")"
3818 }
3819 }
3820 }()
3821 }
3822 },
3823 Names: {
3824 camelCase: function(a) {
3825 return a.replace(/-(\w)/g, function(a, b) {
3826 return b.toUpperCase()
3827 })
3828 },
3829 SVGAttribute: function(a) {
3830 var b = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";
3831 return (n || t.State.isAndroid && !t.State.isChrome) && (b += "|transform"), new RegExp("^(" + b + ")$", "i").test(a)
3832 },
3833 prefixCheck: function(a) {
3834 if (t.State.prefixMatches[a]) return [t.State.prefixMatches[a], !0];
3835 for (var b = ["", "Webkit", "Moz", "ms", "O"], c = 0, d = b.length; d > c; c++) {
3836 var e;
3837 if (e = 0 === c ? a : b[c] + a.replace(/^\w/, function(a) {
3838 return a.toUpperCase()
3839 }), p.isString(t.State.prefixElement.style[e])) return t.State.prefixMatches[a] = e, [e, !0]
3840 }
3841 return [a, !1]
3842 }
3843 },
3844 Values: {
3845 hexToRgb: function(a) {
3846 var b, c = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
3847 d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
3848 return a = a.replace(c, function(a, b, c, d) {
3849 return b + b + c + c + d + d
3850 }), b = d.exec(a), b ? [parseInt(b[1], 16), parseInt(b[2], 16), parseInt(b[3], 16)] : [0, 0, 0]
3851 },
3852 isCSSNullValue: function(a) {
3853 return 0 == a || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)
3854 },
3855 getUnitType: function(a) {
3856 return /^(rotate|skew)/i.test(a) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a) ? "" : "px"
3857 },
3858 getDisplayType: function(a) {
3859 var b = a && a.tagName.toString().toLowerCase();
3860 return /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b) ? "inline" : /^(li)$/i.test(b) ? "list-item" : /^(tr)$/i.test(b) ? "table-row" : /^(table)$/i.test(b) ? "table" : /^(tbody)$/i.test(b) ? "table-row-group" : "block"
3861 },
3862 addClass: function(a, b) {
3863 a.classList ? a.classList.add(b) : a.className += (a.className.length ? " " : "") + b
3864 },
3865 removeClass: function(a, b) {
3866 a.classList ? a.classList.remove(b) : a.className = a.className.toString().replace(new RegExp("(^|\\s)" + b.split(" ").join("|") + "(\\s|$)", "gi"), " ")
3867 }
3868 },
3869 getPropertyValue: function(a, c, e, f) {
3870 function h(a, c) {
3871 function e() {
3872 j && v.setPropertyValue(a, "display", "none")
3873 }
3874 var i = 0;
3875 if (8 >= n) i = m.css(a, c);
3876 else {
3877 var j = !1;
3878 if (/^(width|height)$/.test(c) && 0 === v.getPropertyValue(a, "display") && (j = !0, v.setPropertyValue(a, "display", v.Values.getDisplayType(a))), !f) {
3879 if ("height" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
3880 var k = a.offsetHeight - (parseFloat(v.getPropertyValue(a, "borderTopWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderBottomWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingTop")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingBottom")) || 0);
3881 return e(), k
3882 }
3883 if ("width" === c && "border-box" !== v.getPropertyValue(a, "boxSizing").toString().toLowerCase()) {
3884 var l = a.offsetWidth - (parseFloat(v.getPropertyValue(a, "borderLeftWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "borderRightWidth")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingLeft")) || 0) - (parseFloat(v.getPropertyValue(a, "paddingRight")) || 0);
3885 return e(), l
3886 }
3887 }
3888 var o;
3889 o = g(a) === d ? b.getComputedStyle(a, null) : g(a).computedStyle ? g(a).computedStyle : g(a).computedStyle = b.getComputedStyle(a, null), "borderColor" === c && (c = "borderTopColor"), i = 9 === n && "filter" === c ? o.getPropertyValue(c) : o[c], "" !== i && null !== i || (i = a.style[c]), e()
3890 }
3891 if ("auto" === i && /^(top|right|bottom|left)$/i.test(c)) {
3892 var p = h(a, "position");
3893 ("fixed" === p || "absolute" === p && /top|left/i.test(c)) && (i = m(a).position()[c] + "px")
3894 }
3895 return i
3896 }
3897 var i;
3898 if (v.Hooks.registered[c]) {
3899 var j = c,
3900 k = v.Hooks.getRoot(j);
3901 e === d && (e = v.getPropertyValue(a, v.Names.prefixCheck(k)[0])), v.Normalizations.registered[k] && (e = v.Normalizations.registered[k]("extract", a, e)), i = v.Hooks.extractValue(j, e)
3902 } else if (v.Normalizations.registered[c]) {
3903 var l, o;
3904 l = v.Normalizations.registered[c]("name", a), "transform" !== l && (o = h(a, v.Names.prefixCheck(l)[0]), v.Values.isCSSNullValue(o) && v.Hooks.templates[c] && (o = v.Hooks.templates[c][1])), i = v.Normalizations.registered[c]("extract", a, o)
3905 }
3906 if (!/^[\d-]/.test(i))
3907 if (g(a) && g(a).isSVG && v.Names.SVGAttribute(c))
3908 if (/^(height|width)$/i.test(c)) try {
3909 i = a.getBBox()[c]
3910 } catch (p) {
3911 i = 0
3912 } else i = a.getAttribute(c);
3913 else i = h(a, v.Names.prefixCheck(c)[0]);
3914 return v.Values.isCSSNullValue(i) && (i = 0), t.debug >= 2 && console.log("Get " + c + ": " + i), i
3915 },
3916 setPropertyValue: function(a, c, d, e, f) {
3917 var h = c;
3918 if ("scroll" === c) f.container ? f.container["scroll" + f.direction] = d : "Left" === f.direction ? b.scrollTo(d, f.alternateValue) : b.scrollTo(f.alternateValue, d);
3919 else if (v.Normalizations.registered[c] && "transform" === v.Normalizations.registered[c]("name", a)) v.Normalizations.registered[c]("inject", a, d), h = "transform", d = g(a).transformCache[c];
3920 else {
3921 if (v.Hooks.registered[c]) {
3922 var i = c,
3923 j = v.Hooks.getRoot(c);
3924 e = e || v.getPropertyValue(a, j), d = v.Hooks.injectValue(i, d, e), c = j
3925 }
3926 if (v.Normalizations.registered[c] && (d = v.Normalizations.registered[c]("inject", a, d), c = v.Normalizations.registered[c]("name", a)), h = v.Names.prefixCheck(c)[0], 8 >= n) try {
3927 a.style[h] = d
3928 } catch (k) {
3929 t.debug && console.log("Browser does not support [" + d + "] for [" + h + "]")
3930 } else g(a) && g(a).isSVG && v.Names.SVGAttribute(c) ? a.setAttribute(c, d) : a.style[h] = d;
3931 t.debug >= 2 && console.log("Set " + c + " (" + h + "): " + d)
3932 }
3933 return [h, d]
3934 },
3935 flushTransformCache: function(a) {
3936 function b(b) {
3937 return parseFloat(v.getPropertyValue(a, b))
3938 }
3939 var c = "";
3940 if ((n || t.State.isAndroid && !t.State.isChrome) && g(a).isSVG) {
3941 var d = {
3942 translate: [b("translateX"), b("translateY")],
3943 skewX: [b("skewX")],
3944 skewY: [b("skewY")],
3945 scale: 1 !== b("scale") ? [b("scale"), b("scale")] : [b("scaleX"), b("scaleY")],
3946 rotate: [b("rotateZ"), 0, 0]
3947 };
3948 m.each(g(a).transformCache, function(a) {
3949 /^translate/i.test(a) ? a = "translate" : /^scale/i.test(a) ? a = "scale" : /^rotate/i.test(a) && (a = "rotate"), d[a] && (c += a + "(" + d[a].join(" ") + ") ", delete d[a])
3950 })
3951 } else {
3952 var e, f;
3953 m.each(g(a).transformCache, function(b) {
3954 return e = g(a).transformCache[b], "transformPerspective" === b ? (f = e, !0) : (9 === n && "rotateZ" === b && (b = "rotate"), void(c += b + e + " "))
3955 }), f && (c = "perspective" + f + " " + c)
3956 }
3957 v.setPropertyValue(a, "transform", c)
3958 }
3959 };
3960 v.Hooks.register(), v.Normalizations.register(), t.hook = function(a, b, c) {
3961 var e = d;
3962 return a = f(a), m.each(a, function(a, f) {
3963 if (g(f) === d && t.init(f), c === d) e === d && (e = t.CSS.getPropertyValue(f, b));
3964 else {
3965 var h = t.CSS.setPropertyValue(f, b, c);
3966 "transform" === h[0] && t.CSS.flushTransformCache(f), e = h
3967 }
3968 }), e
3969 };
3970 var w = function() {
3971 function a() {
3972 return h ? B.promise || null : i
3973 }
3974
3975 function e() {
3976 function a(a) {
3977 function l(a, b) {
3978 var c = d,
3979 e = d,
3980 g = d;
3981 return p.isArray(a) ? (c = a[0], !p.isArray(a[1]) && /^[\d-]/.test(a[1]) || p.isFunction(a[1]) || v.RegEx.isHex.test(a[1]) ? g = a[1] : (p.isString(a[1]) && !v.RegEx.isHex.test(a[1]) || p.isArray(a[1])) && (e = b ? a[1] : j(a[1], h.duration), a[2] !== d && (g = a[2]))) : c = a, b || (e = e || h.easing), p.isFunction(c) && (c = c.call(f, y, x)), p.isFunction(g) && (g = g.call(f, y, x)), [c || 0, e, g]
3982 }
3983
3984 function n(a, b) {
3985 var c, d;
3986 return d = (b || "0").toString().toLowerCase().replace(/[%A-z]+$/, function(a) {
3987 return c = a, ""
3988 }), c || (c = v.Values.getUnitType(a)), [d, c]
3989 }
3990
3991 function r() {
3992 var a = {
3993 myParent: f.parentNode || c.body,
3994 position: v.getPropertyValue(f, "position"),
3995 fontSize: v.getPropertyValue(f, "fontSize")
3996 },
3997 d = a.position === I.lastPosition && a.myParent === I.lastParent,
3998 e = a.fontSize === I.lastFontSize;
3999 I.lastParent = a.myParent, I.lastPosition = a.position, I.lastFontSize = a.fontSize;
4000 var h = 100,
4001 i = {};
4002 if (e && d) i.emToPx = I.lastEmToPx, i.percentToPxWidth = I.lastPercentToPxWidth, i.percentToPxHeight = I.lastPercentToPxHeight;
4003 else {
4004 var j = g(f).isSVG ? c.createElementNS("http://www.w3.org/2000/svg", "rect") : c.createElement("div");
4005 t.init(j), a.myParent.appendChild(j), m.each(["overflow", "overflowX", "overflowY"], function(a, b) {
4006 t.CSS.setPropertyValue(j, b, "hidden")
4007 }), t.CSS.setPropertyValue(j, "position", a.position), t.CSS.setPropertyValue(j, "fontSize", a.fontSize), t.CSS.setPropertyValue(j, "boxSizing", "content-box"), m.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function(a, b) {
4008 t.CSS.setPropertyValue(j, b, h + "%")
4009 }), t.CSS.setPropertyValue(j, "paddingLeft", h + "em"), i.percentToPxWidth = I.lastPercentToPxWidth = (parseFloat(v.getPropertyValue(j, "width", null, !0)) || 1) / h, i.percentToPxHeight = I.lastPercentToPxHeight = (parseFloat(v.getPropertyValue(j, "height", null, !0)) || 1) / h, i.emToPx = I.lastEmToPx = (parseFloat(v.getPropertyValue(j, "paddingLeft")) || 1) / h, a.myParent.removeChild(j)
4010 }
4011 return null === I.remToPx && (I.remToPx = parseFloat(v.getPropertyValue(c.body, "fontSize")) || 16), null === I.vwToPx && (I.vwToPx = parseFloat(b.innerWidth) / 100, I.vhToPx = parseFloat(b.innerHeight) / 100), i.remToPx = I.remToPx, i.vwToPx = I.vwToPx, i.vhToPx = I.vhToPx, t.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(i), f), i
4012 }
4013 if (h.begin && 0 === y) try {
4014 h.begin.call(o, o)
4015 } catch (u) {
4016 setTimeout(function() {
4017 throw u
4018 }, 1)
4019 }
4020 if ("scroll" === C) {
4021 var w, z, A, D = /^x$/i.test(h.axis) ? "Left" : "Top",
4022 E = parseFloat(h.offset) || 0;
4023 h.container ? p.isWrapped(h.container) || p.isNode(h.container) ? (h.container = h.container[0] || h.container, w = h.container["scroll" + D], A = w + m(f).position()[D.toLowerCase()] + E) : h.container = null : (w = t.State.scrollAnchor[t.State["scrollProperty" + D]], z = t.State.scrollAnchor[t.State["scrollProperty" + ("Left" === D ? "Top" : "Left")]], A = m(f).offset()[D.toLowerCase()] + E), i = {
4024 scroll: {
4025 rootPropertyValue: !1,
4026 startValue: w,
4027 currentValue: w,
4028 endValue: A,
4029 unitType: "",
4030 easing: h.easing,
4031 scrollData: {
4032 container: h.container,
4033 direction: D,
4034 alternateValue: z
4035 }
4036 },
4037 element: f
4038 }, t.debug && console.log("tweensContainer (scroll): ", i.scroll, f)
4039 } else if ("reverse" === C) {
4040 if (!g(f).tweensContainer) return void m.dequeue(f, h.queue);
4041 "none" === g(f).opts.display && (g(f).opts.display = "auto"), "hidden" === g(f).opts.visibility && (g(f).opts.visibility = "visible"), g(f).opts.loop = !1, g(f).opts.begin = null, g(f).opts.complete = null, s.easing || delete h.easing, s.duration || delete h.duration, h = m.extend({}, g(f).opts, h);
4042 var F = m.extend(!0, {}, g(f).tweensContainer);
4043 for (var G in F)
4044 if ("element" !== G) {
4045 var H = F[G].startValue;
4046 F[G].startValue = F[G].currentValue = F[G].endValue, F[G].endValue = H, p.isEmptyObject(s) || (F[G].easing = h.easing), t.debug && console.log("reverse tweensContainer (" + G + "): " + JSON.stringify(F[G]), f)
4047 }
4048 i = F
4049 } else if ("start" === C) {
4050 var F;
4051 g(f).tweensContainer && g(f).isAnimating === !0 && (F = g(f).tweensContainer), m.each(q, function(a, b) {
4052 if (RegExp("^" + v.Lists.colors.join("$|^") + "$").test(a)) {
4053 var c = l(b, !0),
4054 e = c[0],
4055 f = c[1],
4056 g = c[2];
4057 if (v.RegEx.isHex.test(e)) {
4058 for (var h = ["Red", "Green", "Blue"], i = v.Values.hexToRgb(e), j = g ? v.Values.hexToRgb(g) : d, k = 0; k < h.length; k++) {
4059 var m = [i[k]];
4060 f && m.push(f), j !== d && m.push(j[k]), q[a + h[k]] = m
4061 }
4062 delete q[a]
4063 }
4064 }
4065 });
4066 for (var K in q) {
4067 var L = l(q[K]),
4068 M = L[0],
4069 N = L[1],
4070 O = L[2];
4071 K = v.Names.camelCase(K);
4072 var P = v.Hooks.getRoot(K),
4073 Q = !1;
4074 if (g(f).isSVG || "tween" === P || v.Names.prefixCheck(P)[1] !== !1 || v.Normalizations.registered[P] !== d) {
4075 (h.display !== d && null !== h.display && "none" !== h.display || h.visibility !== d && "hidden" !== h.visibility) && /opacity|filter/.test(K) && !O && 0 !== M && (O = 0), h._cacheValues && F && F[K] ? (O === d && (O = F[K].endValue + F[K].unitType), Q = g(f).rootPropertyValueCache[P]) : v.Hooks.registered[K] ? O === d ? (Q = v.getPropertyValue(f, P), O = v.getPropertyValue(f, K, Q)) : Q = v.Hooks.templates[P][1] : O === d && (O = v.getPropertyValue(f, K));
4076 var R, S, T, U = !1;
4077 if (R = n(K, O), O = R[0], T = R[1], R = n(K, M), M = R[0].replace(/^([+-\/*])=/, function(a, b) {
4078 return U = b, ""
4079 }), S = R[1], O = parseFloat(O) || 0, M = parseFloat(M) || 0, "%" === S && (/^(fontSize|lineHeight)$/.test(K) ? (M /= 100, S = "em") : /^scale/.test(K) ? (M /= 100, S = "") : /(Red|Green|Blue)$/i.test(K) && (M = M / 100 * 255, S = "")), /[\/*]/.test(U)) S = T;
4080 else if (T !== S && 0 !== O)
4081 if (0 === M) S = T;
4082 else {
4083 e = e || r();
4084 var V = /margin|padding|left|right|width|text|word|letter/i.test(K) || /X$/.test(K) || "x" === K ? "x" : "y";
4085 switch (T) {
4086 case "%":
4087 O *= "x" === V ? e.percentToPxWidth : e.percentToPxHeight;
4088 break;
4089 case "px":
4090 break;
4091 default:
4092 O *= e[T + "ToPx"]
4093 }
4094 switch (S) {
4095 case "%":
4096 O *= 1 / ("x" === V ? e.percentToPxWidth : e.percentToPxHeight);
4097 break;
4098 case "px":
4099 break;
4100 default:
4101 O *= 1 / e[S + "ToPx"]
4102 }
4103 }
4104 switch (U) {
4105 case "+":
4106 M = O + M;
4107 break;
4108 case "-":
4109 M = O - M;
4110 break;
4111 case "*":
4112 M = O * M;
4113 break;
4114 case "/":
4115 M = O / M
4116 }
4117 i[K] = {
4118 rootPropertyValue: Q,
4119 startValue: O,
4120 currentValue: O,
4121 endValue: M,
4122 unitType: S,
4123 easing: N
4124 }, t.debug && console.log("tweensContainer (" + K + "): " + JSON.stringify(i[K]), f)
4125 } else t.debug && console.log("Skipping [" + P + "] due to a lack of browser support.")
4126 }
4127 i.element = f
4128 }
4129 i.element && (v.Values.addClass(f, "velocity-animating"), J.push(i), "" === h.queue && (g(f).tweensContainer = i, g(f).opts = h), g(f).isAnimating = !0, y === x - 1 ? (t.State.calls.push([J, o, h, null, B.resolver]), t.State.isTicking === !1 && (t.State.isTicking = !0, k())) : y++)
4130 }
4131 var e, f = this,
4132 h = m.extend({}, t.defaults, s),
4133 i = {};
4134 switch (g(f) === d && t.init(f), parseFloat(h.delay) && h.queue !== !1 && m.queue(f, h.queue, function(a) {
4135 t.velocityQueueEntryFlag = !0, g(f).delayTimer = {
4136 setTimeout: setTimeout(a, parseFloat(h.delay)),
4137 next: a
4138 }
4139 }), h.duration.toString().toLowerCase()) {
4140 case "fast":
4141 h.duration = 200;
4142 break;
4143 case "normal":
4144 h.duration = r;
4145 break;
4146 case "slow":
4147 h.duration = 600;
4148 break;
4149 default:
4150 h.duration = parseFloat(h.duration) || 1
4151 }
4152 t.mock !== !1 && (t.mock === !0 ? h.duration = h.delay = 1 : (h.duration *= parseFloat(t.mock) || 1, h.delay *= parseFloat(t.mock) || 1)), h.easing = j(h.easing, h.duration), h.begin && !p.isFunction(h.begin) && (h.begin = null), h.progress && !p.isFunction(h.progress) && (h.progress = null), h.complete && !p.isFunction(h.complete) && (h.complete = null), h.display !== d && null !== h.display && (h.display = h.display.toString().toLowerCase(), "auto" === h.display && (h.display = t.CSS.Values.getDisplayType(f))), h.visibility !== d && null !== h.visibility && (h.visibility = h.visibility.toString().toLowerCase()), h.mobileHA = h.mobileHA && t.State.isMobile && !t.State.isGingerbread, h.queue === !1 ? h.delay ? setTimeout(a, h.delay) : a() : m.queue(f, h.queue, function(b, c) {
4153 return c === !0 ? (B.promise && B.resolver(o), !0) : (t.velocityQueueEntryFlag = !0, void a(b))
4154 }), "" !== h.queue && "fx" !== h.queue || "inprogress" === m.queue(f)[0] || m.dequeue(f)
4155 }
4156 var h, i, n, o, q, s, u = arguments[0] && (arguments[0].p || m.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || p.isString(arguments[0].properties));
4157 if (p.isWrapped(this) ? (h = !1, n = 0, o = this, i = this) : (h = !0, n = 1, o = u ? arguments[0].elements || arguments[0].e : arguments[0]), o = f(o)) {
4158 u ? (q = arguments[0].properties || arguments[0].p, s = arguments[0].options || arguments[0].o) : (q = arguments[n], s = arguments[n + 1]);
4159 var x = o.length,
4160 y = 0;
4161 if (!/^(stop|finish|finishAll)$/i.test(q) && !m.isPlainObject(s)) {
4162 var z = n + 1;
4163 s = {};
4164 for (var A = z; A < arguments.length; A++) p.isArray(arguments[A]) || !/^(fast|normal|slow)$/i.test(arguments[A]) && !/^\d/.test(arguments[A]) ? p.isString(arguments[A]) || p.isArray(arguments[A]) ? s.easing = arguments[A] : p.isFunction(arguments[A]) && (s.complete = arguments[A]) : s.duration = arguments[A]
4165 }
4166 var B = {
4167 promise: null,
4168 resolver: null,
4169 rejecter: null
4170 };
4171 h && t.Promise && (B.promise = new t.Promise(function(a, b) {
4172 B.resolver = a, B.rejecter = b
4173 }));
4174 var C;
4175 switch (q) {
4176 case "scroll":
4177 C = "scroll";
4178 break;
4179 case "reverse":
4180 C = "reverse";
4181 break;
4182 case "finish":
4183 case "finishAll":
4184 case "stop":
4185 m.each(o, function(a, b) {
4186 g(b) && g(b).delayTimer && (clearTimeout(g(b).delayTimer.setTimeout), g(b).delayTimer.next && g(b).delayTimer.next(), delete g(b).delayTimer), "finishAll" !== q || s !== !0 && !p.isString(s) || (m.each(m.queue(b, p.isString(s) ? s : ""), function(a, b) {
4187 p.isFunction(b) && b()
4188 }), m.queue(b, p.isString(s) ? s : "", []))
4189 });
4190 var D = [];
4191 return m.each(t.State.calls, function(a, b) {
4192 b && m.each(b[1], function(c, e) {
4193 var f = s === d ? "" : s;
4194 return f === !0 || b[2].queue === f || s === d && b[2].queue === !1 ? void m.each(o, function(c, d) {
4195 d === e && ((s === !0 || p.isString(s)) && (m.each(m.queue(d, p.isString(s) ? s : ""), function(a, b) {
4196 p.isFunction(b) && b(null, !0)
4197 }), m.queue(d, p.isString(s) ? s : "", [])), "stop" === q ? (g(d) && g(d).tweensContainer && f !== !1 && m.each(g(d).tweensContainer, function(a, b) {
4198 b.endValue = b.currentValue
4199 }), D.push(a)) : "finish" !== q && "finishAll" !== q || (b[2].duration = 1))
4200 }) : !0
4201 })
4202 }), "stop" === q && (m.each(D, function(a, b) {
4203 l(b, !0)
4204 }), B.promise && B.resolver(o)), a();
4205 default:
4206 if (!m.isPlainObject(q) || p.isEmptyObject(q)) {
4207 if (p.isString(q) && t.Redirects[q]) {
4208 var E = m.extend({}, s),
4209 F = E.duration,
4210 G = E.delay || 0;
4211 return E.backwards === !0 && (o = m.extend(!0, [], o).reverse()), m.each(o, function(a, b) {
4212 parseFloat(E.stagger) ? E.delay = G + parseFloat(E.stagger) * a : p.isFunction(E.stagger) && (E.delay = G + E.stagger.call(b, a, x)), E.drag && (E.duration = parseFloat(F) || (/^(callout|transition)/.test(q) ? 1e3 : r), E.duration = Math.max(E.duration * (E.backwards ? 1 - a / x : (a + 1) / x), .75 * E.duration, 200)), t.Redirects[q].call(b, b, E || {}, a, x, o, B.promise ? B : d)
4213 }), a()
4214 }
4215 var H = "Velocity: First argument (" + q + ") was not a property map, a known action, or a registered redirect. Aborting.";
4216 return B.promise ? B.rejecter(new Error(H)) : console.log(H), a()
4217 }
4218 C = "start"
4219 }
4220 var I = {
4221 lastParent: null,
4222 lastPosition: null,
4223 lastFontSize: null,
4224 lastPercentToPxWidth: null,
4225 lastPercentToPxHeight: null,
4226 lastEmToPx: null,
4227 remToPx: null,
4228 vwToPx: null,
4229 vhToPx: null
4230 },
4231 J = [];
4232 m.each(o, function(a, b) {
4233 p.isNode(b) && e.call(b)
4234 });
4235 var K, E = m.extend({}, t.defaults, s);
4236 if (E.loop = parseInt(E.loop), K = 2 * E.loop - 1, E.loop)
4237 for (var L = 0; K > L; L++) {
4238 var M = {
4239 delay: E.delay,
4240 progress: E.progress
4241 };
4242 L === K - 1 && (M.display = E.display, M.visibility = E.visibility, M.complete = E.complete), w(o, "reverse", M)
4243 }
4244 return a()
4245 }
4246 };
4247 t = m.extend(w, t), t.animate = w;
4248 var x = b.requestAnimationFrame || o;
4249 return t.State.isMobile || c.hidden === d || c.addEventListener("visibilitychange", function() {
4250 c.hidden ? (x = function(a) {
4251 return setTimeout(function() {
4252 a(!0)
4253 }, 16)
4254 }, k()) : x = b.requestAnimationFrame || o
4255 }), a.Velocity = t, a !== b && (a.fn.velocity = w, a.fn.velocity.defaults = t.defaults), m.each(["Down", "Up"], function(a, b) {
4256 t.Redirects["slide" + b] = function(a, c, e, f, g, h) {
4257 var i = m.extend({}, c),
4258 j = i.begin,
4259 k = i.complete,
4260 l = {
4261 height: "",
4262 marginTop: "",
4263 marginBottom: "",
4264 paddingTop: "",
4265 paddingBottom: ""
4266 },
4267 n = {};
4268 i.display === d && (i.display = "Down" === b ? "inline" === t.CSS.Values.getDisplayType(a) ? "inline-block" : "block" : "none"), i.begin = function() {
4269 j && j.call(g, g);
4270 for (var c in l) {
4271 n[c] = a.style[c];
4272 var d = t.CSS.getPropertyValue(a, c);
4273 l[c] = "Down" === b ? [d, 0] : [0, d]
4274 }
4275 n.overflow = a.style.overflow, a.style.overflow = "hidden"
4276 }, i.complete = function() {
4277 for (var b in n) a.style[b] = n[b];
4278 k && k.call(g, g), h && h.resolver(g)
4279 }, t(a, l, i)
4280 }
4281 }), m.each(["In", "Out"], function(a, b) {
4282 t.Redirects["fade" + b] = function(a, c, e, f, g, h) {
4283 var i = m.extend({}, c),
4284 j = {
4285 opacity: "In" === b ? 1 : 0
4286 },
4287 k = i.complete;
4288 e !== f - 1 ? i.complete = i.begin = null : i.complete = function() {
4289 k && k.call(g, g), h && h.resolver(g)
4290 }, i.display === d && (i.display = "In" === b ? "auto" : "none"), t(this, j, i)
4291 }
4292 }), t
4293 }(window.jQuery || window.Zepto || window, window, document)
4294 }),
4295 function(a) {
4296 "function" == typeof require && "object" == typeof exports ? module.exports = a() : "function" == typeof define && define.amd ? define(["velocity"], a) : a()
4297 }(function() {
4298 return function(a, b, c, d) {
4299 function e(a, b) {
4300 var c = [];
4301 return a && b ? (g.each([a, b], function(a, b) {
4302 var d = [];
4303 g.each(b, function(a, b) {
4304 for (; b.toString().length < 5;) b = "0" + b;
4305 d.push(b)
4306 }), c.push(d.join(""))
4307 }), parseFloat(c[0]) > parseFloat(c[1])) : !1
4308 }
4309 if (!a.Velocity || !a.Velocity.Utilities) return void(b.console && console.log("Velocity UI Pack: Velocity must be loaded first. Aborting."));
4310 var f = a.Velocity,
4311 g = f.Utilities,
4312 h = f.version,
4313 i = {
4314 major: 1,
4315 minor: 1,
4316 patch: 0
4317 };
4318 if (e(i, h)) {
4319 var j = "Velocity UI Pack: You need to update Velocity (jquery.velocity.js) to a newer version. Visit http://github.com/julianshapiro/velocity.";
4320 throw alert(j), new Error(j)
4321 }
4322 f.RegisterEffect = f.RegisterUI = function(a, b) {
4323 function c(a, b, c, d) {
4324 var e, h = 0;
4325 g.each(a.nodeType ? [a] : a, function(a, b) {
4326 d && (c += a * d), e = b.parentNode, g.each(["height", "paddingTop", "paddingBottom", "marginTop", "marginBottom"], function(a, c) {
4327 h += parseFloat(f.CSS.getPropertyValue(b, c))
4328 })
4329 }), f.animate(e, {
4330 height: ("In" === b ? "+" : "-") + "=" + h
4331 }, {
4332 queue: !1,
4333 easing: "ease-in-out",
4334 duration: c * ("In" === b ? .6 : 1)
4335 })
4336 }
4337 return f.Redirects[a] = function(e, h, i, j, k, l) {
4338 function m() {
4339 h.display !== d && "none" !== h.display || !/Out$/.test(a) || g.each(k.nodeType ? [k] : k, function(a, b) {
4340 f.CSS.setPropertyValue(b, "display", "none")
4341 }), h.complete && h.complete.call(k, k), l && l.resolver(k || e)
4342 }
4343 var n = i === j - 1;
4344 "function" == typeof b.defaultDuration ? b.defaultDuration = b.defaultDuration.call(k, k) : b.defaultDuration = parseFloat(b.defaultDuration);
4345 for (var o = 0; o < b.calls.length; o++) {
4346 var p = b.calls[o],
4347 q = p[0],
4348 r = h.duration || b.defaultDuration || 1e3,
4349 s = p[1],
4350 t = p[2] || {},
4351 u = {};
4352 if (u.duration = r * (s || 1), u.queue = h.queue || "", u.easing = t.easing || "ease", u.delay = parseFloat(t.delay) || 0, u._cacheValues = t._cacheValues || !0, 0 === o) {
4353 if (u.delay += parseFloat(h.delay) || 0, 0 === i && (u.begin = function() {
4354 h.begin && h.begin.call(k, k);
4355 var b = a.match(/(In|Out)$/);
4356 b && "In" === b[0] && q.opacity !== d && g.each(k.nodeType ? [k] : k, function(a, b) {
4357 f.CSS.setPropertyValue(b, "opacity", 0)
4358 }), h.animateParentHeight && b && c(k, b[0], r + u.delay, h.stagger)
4359 }), null !== h.display)
4360 if (h.display !== d && "none" !== h.display) u.display = h.display;
4361 else if (/In$/.test(a)) {
4362 var v = f.CSS.Values.getDisplayType(e);
4363 u.display = "inline" === v ? "inline-block" : v
4364 }
4365 h.visibility && "hidden" !== h.visibility && (u.visibility = h.visibility)
4366 }
4367 o === b.calls.length - 1 && (u.complete = function() {
4368 if (b.reset) {
4369 for (var a in b.reset) {
4370 var c = b.reset[a];
4371 f.CSS.Hooks.registered[a] !== d || "string" != typeof c && "number" != typeof c || (b.reset[a] = [b.reset[a], b.reset[a]])
4372 }
4373 var g = {
4374 duration: 0,
4375 queue: !1
4376 };
4377 n && (g.complete = m), f.animate(e, b.reset, g)
4378 } else n && m()
4379 }, "hidden" === h.visibility && (u.visibility = h.visibility)), f.animate(e, q, u)
4380 }
4381 }, f
4382 }, f.RegisterEffect.packagedEffects = {
4383 "callout.bounce": {
4384 defaultDuration: 550,
4385 calls: [
4386 [{
4387 translateY: -30
4388 }, .25],
4389 [{
4390 translateY: 0
4391 }, .125],
4392 [{
4393 translateY: -15
4394 }, .125],
4395 [{
4396 translateY: 0
4397 }, .25]
4398 ]
4399 },
4400 "callout.shake": {
4401 defaultDuration: 800,
4402 calls: [
4403 [{
4404 translateX: -11
4405 }, .125],
4406 [{
4407 translateX: 11
4408 }, .125],
4409 [{
4410 translateX: -11
4411 }, .125],
4412 [{
4413 translateX: 11
4414 }, .125],
4415 [{
4416 translateX: -11
4417 }, .125],
4418 [{
4419 translateX: 11
4420 }, .125],
4421 [{
4422 translateX: -11
4423 }, .125],
4424 [{
4425 translateX: 0
4426 }, .125]
4427 ]
4428 },
4429 "callout.flash": {
4430 defaultDuration: 1100,
4431 calls: [
4432 [{
4433 opacity: [0, "easeInOutQuad", 1]
4434 }, .25],
4435 [{
4436 opacity: [1, "easeInOutQuad"]
4437 }, .25],
4438 [{
4439 opacity: [0, "easeInOutQuad"]
4440 }, .25],
4441 [{
4442 opacity: [1, "easeInOutQuad"]
4443 }, .25]
4444 ]
4445 },
4446 "callout.pulse": {
4447 defaultDuration: 825,
4448 calls: [
4449 [{
4450 scaleX: 1.1,
4451 scaleY: 1.1
4452 }, .5, {
4453 easing: "easeInExpo"
4454 }],
4455 [{
4456 scaleX: 1,
4457 scaleY: 1
4458 }, .5]
4459 ]
4460 },
4461 "callout.swing": {
4462 defaultDuration: 950,
4463 calls: [
4464 [{
4465 rotateZ: 15
4466 }, .2],
4467 [{
4468 rotateZ: -10
4469 }, .2],
4470 [{
4471 rotateZ: 5
4472 }, .2],
4473 [{
4474 rotateZ: -5
4475 }, .2],
4476 [{
4477 rotateZ: 0
4478 }, .2]
4479 ]
4480 },
4481 "callout.tada": {
4482 defaultDuration: 1e3,
4483 calls: [
4484 [{
4485 scaleX: .9,
4486 scaleY: .9,
4487 rotateZ: -3
4488 }, .1],
4489 [{
4490 scaleX: 1.1,
4491 scaleY: 1.1,
4492 rotateZ: 3
4493 }, .1],
4494 [{
4495 scaleX: 1.1,
4496 scaleY: 1.1,
4497 rotateZ: -3
4498 }, .1],
4499 ["reverse", .125],
4500 ["reverse", .125],
4501 ["reverse", .125],
4502 ["reverse", .125],
4503 ["reverse", .125],
4504 [{
4505 scaleX: 1,
4506 scaleY: 1,
4507 rotateZ: 0
4508 }, .2]
4509 ]
4510 },
4511 "transition.fadeIn": {
4512 defaultDuration: 500,
4513 calls: [
4514 [{
4515 opacity: [1, 0]
4516 }]
4517 ]
4518 },
4519 "transition.fadeOut": {
4520 defaultDuration: 500,
4521 calls: [
4522 [{
4523 opacity: [0, 1]
4524 }]
4525 ]
4526 },
4527 "transition.flipXIn": {
4528 defaultDuration: 700,
4529 calls: [
4530 [{
4531 opacity: [1, 0],
4532 transformPerspective: [800, 800],
4533 rotateY: [0, -55]
4534 }]
4535 ],
4536 reset: {
4537 transformPerspective: 0
4538 }
4539 },
4540 "transition.flipXOut": {
4541 defaultDuration: 700,
4542 calls: [
4543 [{
4544 opacity: [0, 1],
4545 transformPerspective: [800, 800],
4546 rotateY: 55
4547 }]
4548 ],
4549 reset: {
4550 transformPerspective: 0,
4551 rotateY: 0
4552 }
4553 },
4554 "transition.flipYIn": {
4555 defaultDuration: 800,
4556 calls: [
4557 [{
4558 opacity: [1, 0],
4559 transformPerspective: [800, 800],
4560 rotateX: [0, -45]
4561 }]
4562 ],
4563 reset: {
4564 transformPerspective: 0
4565 }
4566 },
4567 "transition.flipYOut": {
4568 defaultDuration: 800,
4569 calls: [
4570 [{
4571 opacity: [0, 1],
4572 transformPerspective: [800, 800],
4573 rotateX: 25
4574 }]
4575 ],
4576 reset: {
4577 transformPerspective: 0,
4578 rotateX: 0
4579 }
4580 },
4581 "transition.flipBounceXIn": {
4582 defaultDuration: 900,
4583 calls: [
4584 [{
4585 opacity: [.725, 0],
4586 transformPerspective: [400, 400],
4587 rotateY: [-10, 90]
4588 }, .5],
4589 [{
4590 opacity: .8,
4591 rotateY: 10
4592 }, .25],
4593 [{
4594 opacity: 1,
4595 rotateY: 0
4596 }, .25]
4597 ],
4598 reset: {
4599 transformPerspective: 0
4600 }
4601 },
4602 "transition.flipBounceXOut": {
4603 defaultDuration: 800,
4604 calls: [
4605 [{
4606 opacity: [.9, 1],
4607 transformPerspective: [400, 400],
4608 rotateY: -10
4609 }, .5],
4610 [{
4611 opacity: 0,
4612 rotateY: 90
4613 }, .5]
4614 ],
4615 reset: {
4616 transformPerspective: 0,
4617 rotateY: 0
4618 }
4619 },
4620 "transition.flipBounceYIn": {
4621 defaultDuration: 850,
4622 calls: [
4623 [{
4624 opacity: [.725, 0],
4625 transformPerspective: [400, 400],
4626 rotateX: [-10, 90]
4627 }, .5],
4628 [{
4629 opacity: .8,
4630 rotateX: 10
4631 }, .25],
4632 [{
4633 opacity: 1,
4634 rotateX: 0
4635 }, .25]
4636 ],
4637 reset: {
4638 transformPerspective: 0
4639 }
4640 },
4641 "transition.flipBounceYOut": {
4642 defaultDuration: 800,
4643 calls: [
4644 [{
4645 opacity: [.9, 1],
4646 transformPerspective: [400, 400],
4647 rotateX: -15
4648 }, .5],
4649 [{
4650 opacity: 0,
4651 rotateX: 90
4652 }, .5]
4653 ],
4654 reset: {
4655 transformPerspective: 0,
4656 rotateX: 0
4657 }
4658 },
4659 "transition.swoopIn": {
4660 defaultDuration: 850,
4661 calls: [
4662 [{
4663 opacity: [1, 0],
4664 transformOriginX: ["100%", "50%"],
4665 transformOriginY: ["100%", "100%"],
4666 scaleX: [1, 0],
4667 scaleY: [1, 0],
4668 translateX: [0, -700],
4669 translateZ: 0
4670 }]
4671 ],
4672 reset: {
4673 transformOriginX: "50%",
4674 transformOriginY: "50%"
4675 }
4676 },
4677 "transition.swoopOut": {
4678 defaultDuration: 850,
4679 calls: [
4680 [{
4681 opacity: [0, 1],
4682 transformOriginX: ["50%", "100%"],
4683 transformOriginY: ["100%", "100%"],
4684 scaleX: 0,
4685 scaleY: 0,
4686 translateX: -700,
4687 translateZ: 0
4688 }]
4689 ],
4690 reset: {
4691 transformOriginX: "50%",
4692 transformOriginY: "50%",
4693 scaleX: 1,
4694 scaleY: 1,
4695 translateX: 0
4696 }
4697 },
4698 "transition.whirlIn": {
4699 defaultDuration: 850,
4700 calls: [
4701 [{
4702 opacity: [1, 0],
4703 transformOriginX: ["50%", "50%"],
4704 transformOriginY: ["50%", "50%"],
4705 scaleX: [1, 0],
4706 scaleY: [1, 0],
4707 rotateY: [0, 160]
4708 }, 1, {
4709 easing: "easeInOutSine"
4710 }]
4711 ]
4712 },
4713 "transition.whirlOut": {
4714 defaultDuration: 750,
4715 calls: [
4716 [{
4717 opacity: [0, "easeInOutQuint", 1],
4718 transformOriginX: ["50%", "50%"],
4719 transformOriginY: ["50%", "50%"],
4720 scaleX: 0,
4721 scaleY: 0,
4722 rotateY: 160
4723 }, 1, {
4724 easing: "swing"
4725 }]
4726 ],
4727 reset: {
4728 scaleX: 1,
4729 scaleY: 1,
4730 rotateY: 0
4731 }
4732 },
4733 "transition.shrinkIn": {
4734 defaultDuration: 750,
4735 calls: [
4736 [{
4737 opacity: [1, 0],
4738 transformOriginX: ["50%", "50%"],
4739 transformOriginY: ["50%", "50%"],
4740 scaleX: [1, 1.5],
4741 scaleY: [1, 1.5],
4742 translateZ: 0
4743 }]
4744 ]
4745 },
4746 "transition.shrinkOut": {
4747 defaultDuration: 600,
4748 calls: [
4749 [{
4750 opacity: [0, 1],
4751 transformOriginX: ["50%", "50%"],
4752 transformOriginY: ["50%", "50%"],
4753 scaleX: 1.3,
4754 scaleY: 1.3,
4755 translateZ: 0
4756 }]
4757 ],
4758 reset: {
4759 scaleX: 1,
4760 scaleY: 1
4761 }
4762 },
4763 "transition.expandIn": {
4764 defaultDuration: 700,
4765 calls: [
4766 [{
4767 opacity: [1, 0],
4768 transformOriginX: ["50%", "50%"],
4769 transformOriginY: ["50%", "50%"],
4770 scaleX: [1, .625],
4771 scaleY: [1, .625],
4772 translateZ: 0
4773 }]
4774 ]
4775 },
4776 "transition.expandOut": {
4777 defaultDuration: 700,
4778 calls: [
4779 [{
4780 opacity: [0, 1],
4781 transformOriginX: ["50%", "50%"],
4782 transformOriginY: ["50%", "50%"],
4783 scaleX: .5,
4784 scaleY: .5,
4785 translateZ: 0
4786 }]
4787 ],
4788 reset: {
4789 scaleX: 1,
4790 scaleY: 1
4791 }
4792 },
4793 "transition.bounceIn": {
4794 defaultDuration: 800,
4795 calls: [
4796 [{
4797 opacity: [1, 0],
4798 scaleX: [1.05, .3],
4799 scaleY: [1.05, .3]
4800 }, .4],
4801 [{
4802 scaleX: .9,
4803 scaleY: .9,
4804 translateZ: 0
4805 }, .2],
4806 [{
4807 scaleX: 1,
4808 scaleY: 1
4809 }, .5]
4810 ]
4811 },
4812 "transition.bounceOut": {
4813 defaultDuration: 800,
4814 calls: [
4815 [{
4816 scaleX: .95,
4817 scaleY: .95
4818 }, .35],
4819 [{
4820 scaleX: 1.1,
4821 scaleY: 1.1,
4822 translateZ: 0
4823 }, .35],
4824 [{
4825 opacity: [0, 1],
4826 scaleX: .3,
4827 scaleY: .3
4828 }, .3]
4829 ],
4830 reset: {
4831 scaleX: 1,
4832 scaleY: 1
4833 }
4834 },
4835 "transition.bounceUpIn": {
4836 defaultDuration: 800,
4837 calls: [
4838 [{
4839 opacity: [1, 0],
4840 translateY: [-30, 1e3]
4841 }, .6, {
4842 easing: "easeOutCirc"
4843 }],
4844 [{
4845 translateY: 10
4846 }, .2],
4847 [{
4848 translateY: 0
4849 }, .2]
4850 ]
4851 },
4852 "transition.bounceUpOut": {
4853 defaultDuration: 1e3,
4854 calls: [
4855 [{
4856 translateY: 20
4857 }, .2],
4858 [{
4859 opacity: [0, "easeInCirc", 1],
4860 translateY: -1e3
4861 }, .8]
4862 ],
4863 reset: {
4864 translateY: 0
4865 }
4866 },
4867 "transition.bounceDownIn": {
4868 defaultDuration: 800,
4869 calls: [
4870 [{
4871 opacity: [1, 0],
4872 translateY: [30, -1e3]
4873 }, .6, {
4874 easing: "easeOutCirc"
4875 }],
4876 [{
4877 translateY: -10
4878 }, .2],
4879 [{
4880 translateY: 0
4881 }, .2]
4882 ]
4883 },
4884 "transition.bounceDownOut": {
4885 defaultDuration: 1e3,
4886 calls: [
4887 [{
4888 translateY: -20
4889 }, .2],
4890 [{
4891 opacity: [0, "easeInCirc", 1],
4892 translateY: 1e3
4893 }, .8]
4894 ],
4895 reset: {
4896 translateY: 0
4897 }
4898 },
4899 "transition.bounceLeftIn": {
4900 defaultDuration: 750,
4901 calls: [
4902 [{
4903 opacity: [1, 0],
4904 translateX: [30, -1250]
4905 }, .6, {
4906 easing: "easeOutCirc"
4907 }],
4908 [{
4909 translateX: -10
4910 }, .2],
4911 [{
4912 translateX: 0
4913 }, .2]
4914 ]
4915 },
4916 "transition.bounceLeftOut": {
4917 defaultDuration: 750,
4918 calls: [
4919 [{
4920 translateX: 30
4921 }, .2],
4922 [{
4923 opacity: [0, "easeInCirc", 1],
4924 translateX: -1250
4925 }, .8]
4926 ],
4927 reset: {
4928 translateX: 0
4929 }
4930 },
4931 "transition.bounceRightIn": {
4932 defaultDuration: 750,
4933 calls: [
4934 [{
4935 opacity: [1, 0],
4936 translateX: [-30, 1250]
4937 }, .6, {
4938 easing: "easeOutCirc"
4939 }],
4940 [{
4941 translateX: 10
4942 }, .2],
4943 [{
4944 translateX: 0
4945 }, .2]
4946 ]
4947 },
4948 "transition.bounceRightOut": {
4949 defaultDuration: 750,
4950 calls: [
4951 [{
4952 translateX: -30
4953 }, .2],
4954 [{
4955 opacity: [0, "easeInCirc", 1],
4956 translateX: 1250
4957 }, .8]
4958 ],
4959 reset: {
4960 translateX: 0
4961 }
4962 },
4963 "transition.slideUpIn": {
4964 defaultDuration: 900,
4965 calls: [
4966 [{
4967 opacity: [1, 0],
4968 translateY: [0, 20],
4969 translateZ: 0
4970 }]
4971 ]
4972 },
4973 "transition.slideUpOut": {
4974 defaultDuration: 900,
4975 calls: [
4976 [{
4977 opacity: [0, 1],
4978 translateY: -20,
4979 translateZ: 0
4980 }]
4981 ],
4982 reset: {
4983 translateY: 0
4984 }
4985 },
4986 "transition.slideDownIn": {
4987 defaultDuration: 900,
4988 calls: [
4989 [{
4990 opacity: [1, 0],
4991 translateY: [0, -20],
4992 translateZ: 0
4993 }]
4994 ]
4995 },
4996 "transition.slideDownOut": {
4997 defaultDuration: 900,
4998 calls: [
4999 [{
5000 opacity: [0, 1],
5001 translateY: 20,
5002 translateZ: 0
5003 }]
5004 ],
5005 reset: {
5006 translateY: 0
5007 }
5008 },
5009 "transition.slideLeftIn": {
5010 defaultDuration: 1e3,
5011 calls: [
5012 [{
5013 opacity: [1, 0],
5014 translateX: [0, -20],
5015 translateZ: 0
5016 }]
5017 ]
5018 },
5019 "transition.slideLeftOut": {
5020 defaultDuration: 1050,
5021 calls: [
5022 [{
5023 opacity: [0, 1],
5024 translateX: -20,
5025 translateZ: 0
5026 }]
5027 ],
5028 reset: {
5029 translateX: 0
5030 }
5031 },
5032 "transition.slideRightIn": {
5033 defaultDuration: 1e3,
5034 calls: [
5035 [{
5036 opacity: [1, 0],
5037 translateX: [0, 20],
5038 translateZ: 0
5039 }]
5040 ]
5041 },
5042 "transition.slideRightOut": {
5043 defaultDuration: 1050,
5044 calls: [
5045 [{
5046 opacity: [0, 1],
5047 translateX: 20,
5048 translateZ: 0
5049 }]
5050 ],
5051 reset: {
5052 translateX: 0
5053 }
5054 },
5055 "transition.slideUpBigIn": {
5056 defaultDuration: 850,
5057 calls: [
5058 [{
5059 opacity: [1, 0],
5060 translateY: [0, 75],
5061 translateZ: 0
5062 }]
5063 ]
5064 },
5065 "transition.slideUpBigOut": {
5066 defaultDuration: 800,
5067 calls: [
5068 [{
5069 opacity: [0, 1],
5070 translateY: -75,
5071 translateZ: 0
5072 }]
5073 ],
5074 reset: {
5075 translateY: 0
5076 }
5077 },
5078 "transition.slideDownBigIn": {
5079 defaultDuration: 850,
5080 calls: [
5081 [{
5082 opacity: [1, 0],
5083 translateY: [0, -75],
5084 translateZ: 0
5085 }]
5086 ]
5087 },
5088 "transition.slideDownBigOut": {
5089 defaultDuration: 800,
5090 calls: [
5091 [{
5092 opacity: [0, 1],
5093 translateY: 75,
5094 translateZ: 0
5095 }]
5096 ],
5097 reset: {
5098 translateY: 0
5099 }
5100 },
5101 "transition.slideLeftBigIn": {
5102 defaultDuration: 800,
5103 calls: [
5104 [{
5105 opacity: [1, 0],
5106 translateX: [0, -75],
5107 translateZ: 0
5108 }]
5109 ]
5110 },
5111 "transition.slideLeftBigOut": {
5112 defaultDuration: 750,
5113 calls: [
5114 [{
5115 opacity: [0, 1],
5116 translateX: -75,
5117 translateZ: 0
5118 }]
5119 ],
5120 reset: {
5121 translateX: 0
5122 }
5123 },
5124 "transition.slideRightBigIn": {
5125 defaultDuration: 800,
5126 calls: [
5127 [{
5128 opacity: [1, 0],
5129 translateX: [0, 75],
5130 translateZ: 0
5131 }]
5132 ]
5133 },
5134 "transition.slideRightBigOut": {
5135 defaultDuration: 750,
5136 calls: [
5137 [{
5138 opacity: [0, 1],
5139 translateX: 75,
5140 translateZ: 0
5141 }]
5142 ],
5143 reset: {
5144 translateX: 0
5145 }
5146 },
5147 "transition.perspectiveUpIn": {
5148 defaultDuration: 800,
5149 calls: [
5150 [{
5151 opacity: [1, 0],
5152 transformPerspective: [800, 800],
5153 transformOriginX: [0, 0],
5154 transformOriginY: ["100%", "100%"],
5155 rotateX: [0, -180]
5156 }]
5157 ],
5158 reset: {
5159 transformPerspective: 0,
5160 transformOriginX: "50%",
5161 transformOriginY: "50%"
5162 }
5163 },
5164 "transition.perspectiveUpOut": {
5165 defaultDuration: 850,
5166 calls: [
5167 [{
5168 opacity: [0, 1],
5169 transformPerspective: [800, 800],
5170 transformOriginX: [0, 0],
5171 transformOriginY: ["100%", "100%"],
5172 rotateX: -180
5173 }]
5174 ],
5175 reset: {
5176 transformPerspective: 0,
5177 transformOriginX: "50%",
5178 transformOriginY: "50%",
5179 rotateX: 0
5180 }
5181 },
5182 "transition.perspectiveDownIn": {
5183 defaultDuration: 800,
5184 calls: [
5185 [{
5186 opacity: [1, 0],
5187 transformPerspective: [800, 800],
5188 transformOriginX: [0, 0],
5189 transformOriginY: [0, 0],
5190 rotateX: [0, 180]
5191 }]
5192 ],
5193 reset: {
5194 transformPerspective: 0,
5195 transformOriginX: "50%",
5196 transformOriginY: "50%"
5197 }
5198 },
5199 "transition.perspectiveDownOut": {
5200 defaultDuration: 850,
5201 calls: [
5202 [{
5203 opacity: [0, 1],
5204 transformPerspective: [800, 800],
5205 transformOriginX: [0, 0],
5206 transformOriginY: [0, 0],
5207 rotateX: 180
5208 }]
5209 ],
5210 reset: {
5211 transformPerspective: 0,
5212 transformOriginX: "50%",
5213 transformOriginY: "50%",
5214 rotateX: 0
5215 }
5216 },
5217 "transition.perspectiveLeftIn": {
5218 defaultDuration: 950,
5219 calls: [
5220 [{
5221 opacity: [1, 0],
5222 transformPerspective: [2e3, 2e3],
5223 transformOriginX: [0, 0],
5224 transformOriginY: [0, 0],
5225 rotateY: [0, -180]
5226 }]
5227 ],
5228 reset: {
5229 transformPerspective: 0,
5230 transformOriginX: "50%",
5231 transformOriginY: "50%"
5232 }
5233 },
5234 "transition.perspectiveLeftOut": {
5235 defaultDuration: 950,
5236 calls: [
5237 [{
5238 opacity: [0, 1],
5239 transformPerspective: [2e3, 2e3],
5240 transformOriginX: [0, 0],
5241 transformOriginY: [0, 0],
5242 rotateY: -180
5243 }]
5244 ],
5245 reset: {
5246 transformPerspective: 0,
5247 transformOriginX: "50%",
5248 transformOriginY: "50%",
5249 rotateY: 0
5250 }
5251 },
5252 "transition.perspectiveRightIn": {
5253 defaultDuration: 950,
5254 calls: [
5255 [{
5256 opacity: [1, 0],
5257 transformPerspective: [2e3, 2e3],
5258 transformOriginX: ["100%", "100%"],
5259 transformOriginY: [0, 0],
5260 rotateY: [0, 180]
5261 }]
5262 ],
5263 reset: {
5264 transformPerspective: 0,
5265 transformOriginX: "50%",
5266 transformOriginY: "50%"
5267 }
5268 },
5269 "transition.perspectiveRightOut": {
5270 defaultDuration: 950,
5271 calls: [
5272 [{
5273 opacity: [0, 1],
5274 transformPerspective: [2e3, 2e3],
5275 transformOriginX: ["100%", "100%"],
5276 transformOriginY: [0, 0],
5277 rotateY: 180
5278 }]
5279 ],
5280 reset: {
5281 transformPerspective: 0,
5282 transformOriginX: "50%",
5283 transformOriginY: "50%",
5284 rotateY: 0
5285 }
5286 }
5287 };
5288 for (var k in f.RegisterEffect.packagedEffects) f.RegisterEffect(k, f.RegisterEffect.packagedEffects[k]);
5289 f.RunSequence = function(a) {
5290 var b = g.extend(!0, [], a);
5291 b.length > 1 && (g.each(b.reverse(), function(a, c) {
5292 var d = b[a + 1];
5293 if (d) {
5294 var e = c.o || c.options,
5295 h = d.o || d.options,
5296 i = e && e.sequenceQueue === !1 ? "begin" : "complete",
5297 j = h && h[i],
5298 k = {};
5299 k[i] = function() {
5300 var a = d.e || d.elements,
5301 b = a.nodeType ? [a] : a;
5302 j && j.call(b, b), f(c)
5303 }, d.o ? d.o = g.extend({}, h, k) : d.options = g.extend({}, h, k)
5304 }
5305 }), b.reverse()), f(b[0])
5306 }
5307 }(window.jQuery || window.Zepto || window, window, document)
5308 }),
5309 function(a) {
5310 a.fn.countdown = function(a, b, c, d) {
5311 a = "string" == typeof a ? a.replace(/\W+/g, "") : a, b = b || {}, c = c || 1e3, b.prefix = b.prefix || "", b.suffix = b.suffix || "", b.formatter = b.formatter || function(a) {
5312 return a
5313 };
5314 var e, f, g = 50,
5315 h = Math.floor(c / g),
5316 i = parseInt(Array.isArray(a) ? a[0] : a, 10),
5317 j = parseInt(Array.isArray(a) ? a[1] : this.html().replace(/\W+/g, ""), 10),
5318 k = j,
5319 l = i,
5320 m = Math.floor((k - l) / h);
5321 if (h > Math.abs(k - l) && (h = Math.abs(Math.round(k - l)), m = Math.floor((k - l) / h), c = g * h), 0 == h) return this.html(b.prefix + b.formatter(l) + b.suffix), d && setTimeout(d, 0), this;
5322 var n = this;
5323 return f = function() {
5324 return k -= m, k = i > j ? Math.min(k, i) : Math.max(k, i), c -= g, n.html(b.prefix + b.formatter(k) + b.suffix), 0 >= c ? (clearTimeout(e), n.html(b.prefix + b.formatter(l) + b.suffix), void(d && d())) : void setTimeout(f, g)
5325 }, e = setTimeout(f, g), this
5326 }
5327 }(jQuery),
5328 function() {
5329 function a(a) {
5330 function b(b, c, d, e, f, g) {
5331 for (; f >= 0 && g > f; f += a) {
5332 var h = e ? e[f] : f;
5333 d = c(d, b[h], h, b)
5334 }
5335 return d
5336 }
5337 return function(c, d, e, f) {
5338 d = t(d, f, 4);
5339 var g = !A(c) && s.keys(c),
5340 h = (g || c).length,
5341 i = a > 0 ? 0 : h - 1;
5342 return arguments.length < 3 && (e = c[g ? g[i] : i], i += a), b(c, d, e, g, i, h)
5343 }
5344 }
5345
5346 function b(a) {
5347 return function(b, c, d) {
5348 c = u(c, d);
5349 for (var e = z(b), f = a > 0 ? 0 : e - 1; f >= 0 && e > f; f += a)
5350 if (c(b[f], f, b)) return f;
5351 return -1
5352 }
5353 }
5354
5355 function c(a, b, c) {
5356 return function(d, e, f) {
5357 var g = 0,
5358 h = z(d);
5359 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;
5360 else if (c && f && h) return f = c(d, e), d[f] === e ? f : -1;
5361 if (e !== e) return f = b(k.call(d, g, h), s.isNaN), f >= 0 ? f + g : -1;
5362 for (f = a > 0 ? g : h - 1; f >= 0 && h > f; f += a)
5363 if (d[f] === e) return f;
5364 return -1
5365 }
5366 }
5367
5368 function d(a, b) {
5369 var c = F.length,
5370 d = a.constructor,
5371 e = s.isFunction(d) && d.prototype || h,
5372 f = "constructor";
5373 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)
5374 }
5375 var e = this,
5376 f = e._,
5377 g = Array.prototype,
5378 h = Object.prototype,
5379 i = Function.prototype,
5380 j = g.push,
5381 k = g.slice,
5382 l = h.toString,
5383 m = h.hasOwnProperty,
5384 n = Array.isArray,
5385 o = Object.keys,
5386 p = i.bind,
5387 q = Object.create,
5388 r = function() {},
5389 s = function(a) {
5390 return a instanceof s ? a : this instanceof s ? void(this._wrapped = a) : new s(a)
5391 };
5392 "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = s), exports._ = s) : e._ = s, s.VERSION = "1.8.3";
5393 var t = function(a, b, c) {
5394 if (void 0 === b) return a;
5395 switch (null == c ? 3 : c) {
5396 case 1:
5397 return function(c) {
5398 return a.call(b, c)
5399 };
5400 case 2:
5401 return function(c, d) {
5402 return a.call(b, c, d)
5403 };
5404 case 3:
5405 return function(c, d, e) {
5406 return a.call(b, c, d, e)
5407 };
5408 case 4:
5409 return function(c, d, e, f) {
5410 return a.call(b, c, d, e, f)
5411 }
5412 }
5413 return function() {
5414 return a.apply(b, arguments)
5415 }
5416 },
5417 u = function(a, b, c) {
5418 return null == a ? s.identity : s.isFunction(a) ? t(a, b, c) : s.isObject(a) ? s.matcher(a) : s.property(a)
5419 };
5420 s.iteratee = function(a, b) {
5421 return u(a, b, 1 / 0)
5422 };
5423 var v = function(a, b) {
5424 return function(c) {
5425 var d = arguments.length;
5426 if (2 > d || null == c) return c;
5427 for (var e = 1; d > e; e++)
5428 for (var f = arguments[e], g = a(f), h = g.length, i = 0; h > i; i++) {
5429 var j = g[i];
5430 b && void 0 !== c[j] || (c[j] = f[j])
5431 }
5432 return c
5433 }
5434 },
5435 w = function(a) {
5436 if (!s.isObject(a)) return {};
5437 if (q) return q(a);
5438 r.prototype = a;
5439 var b = new r;
5440 return r.prototype = null, b
5441 },
5442 x = function(a) {
5443 return function(b) {
5444 return null == b ? void 0 : b[a]
5445 }
5446 },
5447 y = Math.pow(2, 53) - 1,
5448 z = x("length"),
5449 A = function(a) {
5450 var b = z(a);
5451 return "number" == typeof b && b >= 0 && y >= b
5452 };
5453 s.each = s.forEach = function(a, b, c) {
5454 b = t(b, c);
5455 var d, e;
5456 if (A(a))
5457 for (d = 0, e = a.length; e > d; d++) b(a[d], d, a);
5458 else {
5459 var f = s.keys(a);
5460 for (d = 0, e = f.length; e > d; d++) b(a[f[d]], f[d], a)
5461 }
5462 return a
5463 }, s.map = s.collect = function(a, b, c) {
5464 b = u(b, c);
5465 for (var d = !A(a) && s.keys(a), e = (d || a).length, f = Array(e), g = 0; e > g; g++) {
5466 var h = d ? d[g] : g;
5467 f[g] = b(a[h], h, a)
5468 }
5469 return f
5470 }, s.reduce = s.foldl = s.inject = a(1), s.reduceRight = s.foldr = a(-1), s.find = s.detect = function(a, b, c) {
5471 var d;
5472 return d = A(a) ? s.findIndex(a, b, c) : s.findKey(a, b, c), void 0 !== d && -1 !== d ? a[d] : void 0
5473 }, s.filter = s.select = function(a, b, c) {
5474 var d = [];
5475 return b = u(b, c), s.each(a, function(a, c, e) {
5476 b(a, c, e) && d.push(a)
5477 }), d
5478 }, s.reject = function(a, b, c) {
5479 return s.filter(a, s.negate(u(b)), c)
5480 }, s.every = s.all = function(a, b, c) {
5481 b = u(b, c);
5482 for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) {
5483 var g = d ? d[f] : f;
5484 if (!b(a[g], g, a)) return !1
5485 }
5486 return !0
5487 }, s.some = s.any = function(a, b, c) {
5488 b = u(b, c);
5489 for (var d = !A(a) && s.keys(a), e = (d || a).length, f = 0; e > f; f++) {
5490 var g = d ? d[f] : f;
5491 if (b(a[g], g, a)) return !0
5492 }
5493 return !1
5494 }, s.contains = s.includes = s.include = function(a, b, c, d) {
5495 return A(a) || (a = s.values(a)), ("number" != typeof c || d) && (c = 0), s.indexOf(a, b, c) >= 0
5496 }, s.invoke = function(a, b) {
5497 var c = k.call(arguments, 2),
5498 d = s.isFunction(b);
5499 return s.map(a, function(a) {
5500 var e = d ? b : a[b];
5501 return null == e ? e : e.apply(a, c)
5502 })
5503 }, s.pluck = function(a, b) {
5504 return s.map(a, s.property(b))
5505 }, s.where = function(a, b) {
5506 return s.filter(a, s.matcher(b))
5507 }, s.findWhere = function(a, b) {
5508 return s.find(a, s.matcher(b))
5509 }, s.max = function(a, b, c) {
5510 var d, e, f = -(1 / 0),
5511 g = -(1 / 0);
5512 if (null == b && null != a) {
5513 a = A(a) ? a : s.values(a);
5514 for (var h = 0, i = a.length; i > h; h++) d = a[h], d > f && (f = d)
5515 } else b = u(b, c), s.each(a, function(a, c, d) {
5516 e = b(a, c, d), (e > g || e === -(1 / 0) && f === -(1 / 0)) && (f = a, g = e)
5517 });
5518 return f
5519 }, s.min = function(a, b, c) {
5520 var d, e, f = 1 / 0,
5521 g = 1 / 0;
5522 if (null == b && null != a) {
5523 a = A(a) ? a : s.values(a);
5524 for (var h = 0, i = a.length; i > h; h++) d = a[h], f > d && (f = d)
5525 } else b = u(b, c), s.each(a, function(a, c, d) {
5526 e = b(a, c, d), (g > e || e === 1 / 0 && f === 1 / 0) && (f = a, g = e)
5527 });
5528 return f
5529 }, s.shuffle = function(a) {
5530 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];
5531 return e
5532 }, s.sample = function(a, b, c) {
5533 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))
5534 }, s.sortBy = function(a, b, c) {
5535 return b = u(b, c), s.pluck(s.map(a, function(a, c, d) {
5536 return {
5537 value: a,
5538 index: c,
5539 criteria: b(a, c, d)
5540 }
5541 }).sort(function(a, b) {
5542 var c = a.criteria,
5543 d = b.criteria;
5544 if (c !== d) {
5545 if (c > d || void 0 === c) return 1;
5546 if (d > c || void 0 === d) return -1
5547 }
5548 return a.index - b.index
5549 }), "value")
5550 };
5551 var B = function(a) {
5552 return function(b, c, d) {
5553 var e = {};
5554 return c = u(c, d), s.each(b, function(d, f) {
5555 var g = c(d, f, b);
5556 a(e, d, g)
5557 }), e
5558 }
5559 };
5560 s.groupBy = B(function(a, b, c) {
5561 s.has(a, c) ? a[c].push(b) : a[c] = [b]
5562 }), s.indexBy = B(function(a, b, c) {
5563 a[c] = b
5564 }), s.countBy = B(function(a, b, c) {
5565 s.has(a, c) ? a[c]++ : a[c] = 1
5566 }), s.toArray = function(a) {
5567 return a ? s.isArray(a) ? k.call(a) : A(a) ? s.map(a, s.identity) : s.values(a) : []
5568 }, s.size = function(a) {
5569 return null == a ? 0 : A(a) ? a.length : s.keys(a).length
5570 }, s.partition = function(a, b, c) {
5571 b = u(b, c);
5572 var d = [],
5573 e = [];
5574 return s.each(a, function(a, c, f) {
5575 (b(a, c, f) ? d : e).push(a)
5576 }), [d, e]
5577 }, s.first = s.head = s.take = function(a, b, c) {
5578 return null != a ? null == b || c ? a[0] : s.initial(a, a.length - b) : void 0
5579 }, s.initial = function(a, b, c) {
5580 return k.call(a, 0, Math.max(0, a.length - (null == b || c ? 1 : b)))
5581 }, s.last = function(a, b, c) {
5582 return null != a ? null == b || c ? a[a.length - 1] : s.rest(a, Math.max(0, a.length - b)) : void 0
5583 }, s.rest = s.tail = s.drop = function(a, b, c) {
5584 return k.call(a, null == b || c ? 1 : b)
5585 }, s.compact = function(a) {
5586 return s.filter(a, s.identity)
5587 };
5588 var C = function(a, b, c, d) {
5589 for (var e = [], f = 0, g = d || 0, h = z(a); h > g; g++) {
5590 var i = a[g];
5591 if (A(i) && (s.isArray(i) || s.isArguments(i))) {
5592 b || (i = C(i, b, c));
5593 var j = 0,
5594 k = i.length;
5595 for (e.length += k; k > j;) e[f++] = i[j++]
5596 } else c || (e[f++] = i)
5597 }
5598 return e
5599 };
5600 s.flatten = function(a, b) {
5601 return C(a, b, !1)
5602 }, s.without = function(a) {
5603 return s.difference(a, k.call(arguments, 1))
5604 }, s.uniq = s.unique = function(a, b, c, d) {
5605 s.isBoolean(b) || (d = c, c = b, b = !1), null != c && (c = u(c, d));
5606 for (var e = [], f = [], g = 0, h = z(a); h > g; g++) {
5607 var i = a[g],
5608 j = c ? c(i, g, a) : i;
5609 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)
5610 }
5611 return e
5612 }, s.union = function() {
5613 return s.uniq(C(arguments, !0, !0))
5614 }, s.intersection = function(a) {
5615 for (var b = [], c = arguments.length, d = 0, e = z(a); e > d; d++) {
5616 var f = a[d];
5617 if (!s.contains(b, f)) {
5618 for (var g = 1; c > g && s.contains(arguments[g], f); g++);
5619 g === c && b.push(f)
5620 }
5621 }
5622 return b
5623 }, s.difference = function(a) {
5624 var b = C(arguments, !0, !0, 1);
5625 return s.filter(a, function(a) {
5626 return !s.contains(b, a)
5627 })
5628 }, s.zip = function() {
5629 return s.unzip(arguments)
5630 }, s.unzip = function(a) {
5631 for (var b = a && s.max(a, z).length || 0, c = Array(b), d = 0; b > d; d++) c[d] = s.pluck(a, d);
5632 return c
5633 }, s.object = function(a, b) {
5634 for (var c = {}, d = 0, e = z(a); e > d; d++) b ? c[a[d]] = b[d] : c[a[d][0]] = a[d][1];
5635 return c
5636 }, s.findIndex = b(1), s.findLastIndex = b(-1), s.sortedIndex = function(a, b, c, d) {
5637 c = u(c, d, 1);
5638 for (var e = c(b), f = 0, g = z(a); g > f;) {
5639 var h = Math.floor((f + g) / 2);
5640 c(a[h]) < e ? f = h + 1 : g = h
5641 }
5642 return f
5643 }, s.indexOf = c(1, s.findIndex, s.sortedIndex), s.lastIndexOf = c(-1, s.findLastIndex), s.range = function(a, b, c) {
5644 null == b && (b = a || 0, a = 0), c = c || 1;
5645 for (var d = Math.max(Math.ceil((b - a) / c), 0), e = Array(d), f = 0; d > f; f++, a += c) e[f] = a;
5646 return e
5647 };
5648 var D = function(a, b, c, d, e) {
5649 if (!(d instanceof b)) return a.apply(c, e);
5650 var f = w(a.prototype),
5651 g = a.apply(f, e);
5652 return s.isObject(g) ? g : f
5653 };
5654 s.bind = function(a, b) {
5655 if (p && a.bind === p) return p.apply(a, k.call(arguments, 1));
5656 if (!s.isFunction(a)) throw new TypeError("Bind must be called on a function");
5657 var c = k.call(arguments, 2),
5658 d = function() {
5659 return D(a, d, b, this, c.concat(k.call(arguments)))
5660 };
5661 return d
5662 }, s.partial = function(a) {
5663 var b = k.call(arguments, 1),
5664 c = function() {
5665 for (var d = 0, e = b.length, f = Array(e), g = 0; e > g; g++) f[g] = b[g] === s ? arguments[d++] : b[g];
5666 for (; d < arguments.length;) f.push(arguments[d++]);
5667 return D(a, c, this, this, f)
5668 };
5669 return c
5670 }, s.bindAll = function(a) {
5671 var b, c, d = arguments.length;
5672 if (1 >= d) throw new Error("bindAll must be passed function names");
5673 for (b = 1; d > b; b++) c = arguments[b], a[c] = s.bind(a[c], a);
5674 return a
5675 }, s.memoize = function(a, b) {
5676 var c = function(d) {
5677 var e = c.cache,
5678 f = "" + (b ? b.apply(this, arguments) : d);
5679 return s.has(e, f) || (e[f] = a.apply(this, arguments)), e[f]
5680 };
5681 return c.cache = {}, c
5682 }, s.delay = function(a, b) {
5683 var c = k.call(arguments, 2);
5684 return setTimeout(function() {
5685 return a.apply(null, c)
5686 }, b)
5687 }, s.defer = s.partial(s.delay, s, 1), s.throttle = function(a, b, c) {
5688 var d, e, f, g = null,
5689 h = 0;
5690 c || (c = {});
5691 var i = function() {
5692 h = c.leading === !1 ? 0 : s.now(), g = null, f = a.apply(d, e), g || (d = e = null)
5693 };
5694 return function() {
5695 var j = s.now();
5696 h || c.leading !== !1 || (h = j);
5697 var k = b - (j - h);
5698 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
5699 }
5700 }, s.debounce = function(a, b, c) {
5701 var d, e, f, g, h, i = function() {
5702 var j = s.now() - g;
5703 b > j && j >= 0 ? d = setTimeout(i, b - j) : (d = null, c || (h = a.apply(f, e), d || (f = e = null)))
5704 };
5705 return function() {
5706 f = this, e = arguments, g = s.now();
5707 var j = c && !d;
5708 return d || (d = setTimeout(i, b)), j && (h = a.apply(f, e), f = e = null), h
5709 }
5710 }, s.wrap = function(a, b) {
5711 return s.partial(b, a)
5712 }, s.negate = function(a) {
5713 return function() {
5714 return !a.apply(this, arguments)
5715 }
5716 }, s.compose = function() {
5717 var a = arguments,
5718 b = a.length - 1;
5719 return function() {
5720 for (var c = b, d = a[b].apply(this, arguments); c--;) d = a[c].call(this, d);
5721 return d
5722 }
5723 }, s.after = function(a, b) {
5724 return function() {
5725 return --a < 1 ? b.apply(this, arguments) : void 0
5726 }
5727 }, s.before = function(a, b) {
5728 var c;
5729 return function() {
5730 return --a > 0 && (c = b.apply(this, arguments)), 1 >= a && (b = null), c
5731 }
5732 }, s.once = s.partial(s.before, 2);
5733 var E = !{
5734 toString: null
5735 }.propertyIsEnumerable("toString"),
5736 F = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];
5737 s.keys = function(a) {
5738 if (!s.isObject(a)) return [];
5739 if (o) return o(a);
5740 var b = [];
5741 for (var c in a) s.has(a, c) && b.push(c);
5742 return E && d(a, b), b
5743 }, s.allKeys = function(a) {
5744 if (!s.isObject(a)) return [];
5745 var b = [];
5746 for (var c in a) b.push(c);
5747 return E && d(a, b), b
5748 }, s.values = function(a) {
5749 for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = a[b[e]];
5750 return d
5751 }, s.mapObject = function(a, b, c) {
5752 b = u(b, c);
5753 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);
5754 return g
5755 }, s.pairs = function(a) {
5756 for (var b = s.keys(a), c = b.length, d = Array(c), e = 0; c > e; e++) d[e] = [b[e], a[b[e]]];
5757 return d
5758 }, s.invert = function(a) {
5759 for (var b = {}, c = s.keys(a), d = 0, e = c.length; e > d; d++) b[a[c[d]]] = c[d];
5760 return b
5761 }, s.functions = s.methods = function(a) {
5762 var b = [];
5763 for (var c in a) s.isFunction(a[c]) && b.push(c);
5764 return b.sort()
5765 }, s.extend = v(s.allKeys), s.extendOwn = s.assign = v(s.keys), s.findKey = function(a, b, c) {
5766 b = u(b, c);
5767 for (var d, e = s.keys(a), f = 0, g = e.length; g > f; f++)
5768 if (d = e[f], b(a[d], d, a)) return d
5769 }, s.pick = function(a, b, c) {
5770 var d, e, f = {},
5771 g = a;
5772 if (null == g) return f;
5773 s.isFunction(b) ? (e = s.allKeys(g), d = t(b, c)) : (e = C(arguments, !1, !1, 1), d = function(a, b, c) {
5774 return b in c
5775 }, g = Object(g));
5776 for (var h = 0, i = e.length; i > h; h++) {
5777 var j = e[h],
5778 k = g[j];
5779 d(k, j, g) && (f[j] = k)
5780 }
5781 return f
5782 }, s.omit = function(a, b, c) {
5783 if (s.isFunction(b)) b = s.negate(b);
5784 else {
5785 var d = s.map(C(arguments, !1, !1, 1), String);
5786 b = function(a, b) {
5787 return !s.contains(d, b)
5788 }
5789 }
5790 return s.pick(a, b, c)
5791 }, s.defaults = v(s.allKeys, !0), s.create = function(a, b) {
5792 var c = w(a);
5793 return b && s.extendOwn(c, b), c
5794 }, s.clone = function(a) {
5795 return s.isObject(a) ? s.isArray(a) ? a.slice() : s.extend({}, a) : a
5796 }, s.tap = function(a, b) {
5797 return b(a), a
5798 }, s.isMatch = function(a, b) {
5799 var c = s.keys(b),
5800 d = c.length;
5801 if (null == a) return !d;
5802 for (var e = Object(a), f = 0; d > f; f++) {
5803 var g = c[f];
5804 if (b[g] !== e[g] || !(g in e)) return !1
5805 }
5806 return !0
5807 };
5808 var G = function(a, b, c, d) {
5809 if (a === b) return 0 !== a || 1 / a === 1 / b;
5810 if (null == a || null == b) return a === b;
5811 a instanceof s && (a = a._wrapped), b instanceof s && (b = b._wrapped);
5812 var e = l.call(a);
5813 if (e !== l.call(b)) return !1;
5814 switch (e) {
5815 case "[object RegExp]":
5816 case "[object String]":
5817 return "" + a == "" + b;
5818 case "[object Number]":
5819 return +a !== +a ? +b !== +b : 0 === +a ? 1 / +a === 1 / b : +a === +b;
5820 case "[object Date]":
5821 case "[object Boolean]":
5822 return +a === +b
5823 }
5824 var f = "[object Array]" === e;
5825 if (!f) {
5826 if ("object" != typeof a || "object" != typeof b) return !1;
5827 var g = a.constructor,
5828 h = b.constructor;
5829 if (g !== h && !(s.isFunction(g) && g instanceof g && s.isFunction(h) && h instanceof h) && "constructor" in a && "constructor" in b) return !1
5830 }
5831 c = c || [], d = d || [];
5832 for (var i = c.length; i--;)
5833 if (c[i] === a) return d[i] === b;
5834 if (c.push(a), d.push(b), f) {
5835 if (i = a.length, i !== b.length) return !1;
5836 for (; i--;)
5837 if (!G(a[i], b[i], c, d)) return !1
5838 } else {
5839 var j, k = s.keys(a);
5840 if (i = k.length, s.keys(b).length !== i) return !1;
5841 for (; i--;)
5842 if (j = k[i], !s.has(b, j) || !G(a[j], b[j], c, d)) return !1
5843 }
5844 return c.pop(), d.pop(), !0
5845 };
5846 s.isEqual = function(a, b) {
5847 return G(a, b)
5848 }, s.isEmpty = function(a) {
5849 return null == a ? !0 : A(a) && (s.isArray(a) || s.isString(a) || s.isArguments(a)) ? 0 === a.length : 0 === s.keys(a).length
5850 }, s.isElement = function(a) {
5851 return !(!a || 1 !== a.nodeType)
5852 }, s.isArray = n || function(a) {
5853 return "[object Array]" === l.call(a)
5854 }, s.isObject = function(a) {
5855 var b = typeof a;
5856 return "function" === b || "object" === b && !!a
5857 }, s.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(a) {
5858 s["is" + a] = function(b) {
5859 return l.call(b) === "[object " + a + "]"
5860 }
5861 }), s.isArguments(arguments) || (s.isArguments = function(a) {
5862 return s.has(a, "callee")
5863 }), "function" != typeof /./ && "object" != typeof Int8Array && (s.isFunction = function(a) {
5864 return "function" == typeof a || !1
5865 }), s.isFinite = function(a) {
5866 return isFinite(a) && !isNaN(parseFloat(a))
5867 }, s.isNaN = function(a) {
5868 return s.isNumber(a) && a !== +a
5869 }, s.isBoolean = function(a) {
5870 return a === !0 || a === !1 || "[object Boolean]" === l.call(a)
5871 }, s.isNull = function(a) {
5872 return null === a
5873 }, s.isUndefined = function(a) {
5874 return void 0 === a
5875 }, s.has = function(a, b) {
5876 return null != a && m.call(a, b)
5877 }, s.noConflict = function() {
5878 return e._ = f, this
5879 }, s.identity = function(a) {
5880 return a
5881 }, s.constant = function(a) {
5882 return function() {
5883 return a
5884 }
5885 }, s.noop = function() {}, s.property = x, s.propertyOf = function(a) {
5886 return null == a ? function() {} : function(b) {
5887 return a[b]
5888 }
5889 }, s.matcher = s.matches = function(a) {
5890 return a = s.extendOwn({}, a),
5891 function(b) {
5892 return s.isMatch(b, a)
5893 }
5894 }, s.times = function(a, b, c) {
5895 var d = Array(Math.max(0, a));
5896 b = t(b, c, 1);
5897 for (var e = 0; a > e; e++) d[e] = b(e);
5898 return d
5899 }, s.random = function(a, b) {
5900 return null == b && (b = a, a = 0), a + Math.floor(Math.random() * (b - a + 1))
5901 }, s.now = Date.now || function() {
5902 return (new Date).getTime()
5903 };
5904 var H = {
5905 "&": "&",
5906 "<": "<",
5907 ">": ">",
5908 '"': """,
5909 "'": "'",
5910 "`": "`"
5911 },
5912 I = s.invert(H),
5913 J = function(a) {
5914 var b = function(b) {
5915 return a[b]
5916 },
5917 c = "(?:" + s.keys(a).join("|") + ")",
5918 d = RegExp(c),
5919 e = RegExp(c, "g");
5920 return function(a) {
5921 return a = null == a ? "" : "" + a, d.test(a) ? a.replace(e, b) : a
5922 }
5923 };
5924 s.escape = J(H), s.unescape = J(I), s.result = function(a, b, c) {
5925 var d = null == a ? void 0 : a[b];
5926 return void 0 === d && (d = c), s.isFunction(d) ? d.call(a) : d
5927 };
5928 var K = 0;
5929 s.uniqueId = function(a) {
5930 var b = ++K + "";
5931 return a ? a + b : b
5932 }, s.templateSettings = {
5933 evaluate: /<%([\s\S]+?)%>/g,
5934 interpolate: /<%=([\s\S]+?)%>/g,
5935 escape: /<%-([\s\S]+?)%>/g
5936 };
5937 var L = /(.)^/,
5938 M = {
5939 "'": "'",
5940 "\\": "\\",
5941 "\r": "r",
5942 "\n": "n",
5943 "\u2028": "u2028",
5944 "\u2029": "u2029"
5945 },
5946 N = /\\|'|\r|\n|\u2028|\u2029/g,
5947 O = function(a) {
5948 return "\\" + M[a]
5949 };
5950 s.template = function(a, b, c) {
5951 !b && c && (b = c), b = s.defaults({}, b, s.templateSettings);
5952 var d = RegExp([(b.escape || L).source, (b.interpolate || L).source, (b.evaluate || L).source].join("|") + "|$", "g"),
5953 e = 0,
5954 f = "__p+='";
5955 a.replace(d, function(b, c, d, g, h) {
5956 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
5957 }), 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";
5958 try {
5959 var g = new Function(b.variable || "obj", "_", f)
5960 } catch (h) {
5961 throw h.source = f, h
5962 }
5963 var i = function(a) {
5964 return g.call(this, a, s)
5965 },
5966 j = b.variable || "obj";
5967 return i.source = "function(" + j + "){\n" + f + "}", i
5968 }, s.chain = function(a) {
5969 var b = s(a);
5970 return b._chain = !0, b
5971 };
5972 var P = function(a, b) {
5973 return a._chain ? s(b).chain() : b
5974 };
5975 s.mixin = function(a) {
5976 s.each(s.functions(a), function(b) {
5977 var c = s[b] = a[b];
5978 s.prototype[b] = function() {
5979 var a = [this._wrapped];
5980 return j.apply(a, arguments), P(this, c.apply(s, a))
5981 }
5982 })
5983 }, s.mixin(s), s.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(a) {
5984 var b = g[a];
5985 s.prototype[a] = function() {
5986 var c = this._wrapped;
5987 return b.apply(c, arguments), "shift" !== a && "splice" !== a || 0 !== c.length || delete c[0], P(this, c)
5988 }
5989 }), s.each(["concat", "join", "slice"], function(a) {
5990 var b = g[a];
5991 s.prototype[a] = function() {
5992 return P(this, b.apply(this._wrapped, arguments))
5993 }
5994 }), s.prototype.value = function() {
5995 return this._wrapped
5996 }, s.prototype.valueOf = s.prototype.toJSON = s.prototype.value, s.prototype.toString = function() {
5997 return "" + this._wrapped
5998 }, "function" == typeof define && define.amd && define("underscore", [], function() {
5999 return s
6000 })
6001 }.call(this),
6002 function(a) {
6003 var b = "object" == typeof self && self.self === self && self || "object" == typeof global && global.global === global && global;
6004 if ("function" == typeof define && define.amd) define(["underscore", "jquery", "exports"], function(c, d, e) {
6005 b.Backbone = a(b, e, c, d)
6006 });
6007 else if ("undefined" != typeof exports) {
6008 var c, d = require("underscore");
6009 try {
6010 c = require("jquery")
6011 } catch (e) {}
6012 a(b, exports, d, c)
6013 } else b.Backbone = a(b, {}, b._, b.jQuery || b.Zepto || b.ender || b.$)
6014 }(function(a, b, c, d) {
6015 var e = a.Backbone,
6016 f = Array.prototype.slice;
6017 b.VERSION = "1.3.3", b.$ = d, b.noConflict = function() {
6018 return a.Backbone = e, this
6019 }, b.emulateHTTP = !1, b.emulateJSON = !1;
6020 var g = function(a, b, d) {
6021 switch (a) {
6022 case 1:
6023 return function() {
6024 return c[b](this[d])
6025 };
6026 case 2:
6027 return function(a) {
6028 return c[b](this[d], a)
6029 };
6030 case 3:
6031 return function(a, e) {
6032 return c[b](this[d], i(a, this), e)
6033 };
6034 case 4:
6035 return function(a, e, f) {
6036 return c[b](this[d], i(a, this), e, f)
6037 };
6038 default:
6039 return function() {
6040 var a = f.call(arguments);
6041 return a.unshift(this[d]), c[b].apply(c, a)
6042 }
6043 }
6044 },
6045 h = function(a, b, d) {
6046 c.each(b, function(b, e) {
6047 c[e] && (a.prototype[e] = g(b, e, d))
6048 })
6049 },
6050 i = function(a, b) {
6051 return c.isFunction(a) ? a : c.isObject(a) && !b._isModel(a) ? j(a) : c.isString(a) ? function(b) {
6052 return b.get(a)
6053 } : a
6054 },
6055 j = function(a) {
6056 var b = c.matches(a);
6057 return function(a) {
6058 return b(a.attributes)
6059 }
6060 },
6061 k = b.Events = {},
6062 l = /\s+/,
6063 m = function(a, b, d, e, f) {
6064 var g, h = 0;
6065 if (d && "object" == typeof d) {
6066 void 0 !== e && "context" in f && void 0 === f.context && (f.context = e);
6067 for (g = c.keys(d); h < g.length; h++) b = m(a, b, g[h], d[g[h]], f)
6068 } else if (d && l.test(d))
6069 for (g = d.split(l); h < g.length; h++) b = a(b, g[h], e, f);
6070 else b = a(b, d, e, f);
6071 return b
6072 };
6073 k.on = function(a, b, c) {
6074 return n(this, a, b, c)
6075 };
6076 var n = function(a, b, c, d, e) {
6077 if (a._events = m(o, a._events || {}, b, c, {
6078 context: d,
6079 ctx: a,
6080 listening: e
6081 }), e) {
6082 var f = a._listeners || (a._listeners = {});
6083 f[e.id] = e
6084 }
6085 return a
6086 };
6087 k.listenTo = function(a, b, d) {
6088 if (!a) return this;
6089 var e = a._listenId || (a._listenId = c.uniqueId("l")),
6090 f = this._listeningTo || (this._listeningTo = {}),
6091 g = f[e];
6092 if (!g) {
6093 var h = this._listenId || (this._listenId = c.uniqueId("l"));
6094 g = f[e] = {
6095 obj: a,
6096 objId: e,
6097 id: h,
6098 listeningTo: f,
6099 count: 0
6100 }
6101 }
6102 return n(a, b, d, this, g), this
6103 };
6104 var o = function(a, b, c, d) {
6105 if (c) {
6106 var e = a[b] || (a[b] = []),
6107 f = d.context,
6108 g = d.ctx,
6109 h = d.listening;
6110 h && h.count++, e.push({
6111 callback: c,
6112 context: f,
6113 ctx: f || g,
6114 listening: h
6115 })
6116 }
6117 return a
6118 };
6119 k.off = function(a, b, c) {
6120 return this._events ? (this._events = m(p, this._events, a, b, {
6121 context: c,
6122 listeners: this._listeners
6123 }), this) : this
6124 }, k.stopListening = function(a, b, d) {
6125 var e = this._listeningTo;
6126 if (!e) return this;
6127 for (var f = a ? [a._listenId] : c.keys(e), g = 0; g < f.length; g++) {
6128 var h = e[f[g]];
6129 if (!h) break;
6130 h.obj.off(b, d, this)
6131 }
6132 return this
6133 };
6134 var p = function(a, b, d, e) {
6135 if (a) {
6136 var f, g = 0,
6137 h = e.context,
6138 i = e.listeners;
6139 if (b || d || h) {
6140 for (var j = b ? [b] : c.keys(a); g < j.length; g++) {
6141 b = j[g];
6142 var k = a[b];
6143 if (!k) break;
6144 for (var l = [], m = 0; m < k.length; m++) {
6145 var n = k[m];
6146 d && d !== n.callback && d !== n.callback._callback || h && h !== n.context ? l.push(n) : (f = n.listening, f && 0 === --f.count && (delete i[f.id], delete f.listeningTo[f.objId]))
6147 }
6148 l.length ? a[b] = l : delete a[b]
6149 }
6150 return a
6151 }
6152 for (var o = c.keys(i); g < o.length; g++) f = i[o[g]], delete i[f.id], delete f.listeningTo[f.objId]
6153 }
6154 };
6155 k.once = function(a, b, d) {
6156 var e = m(q, {}, a, b, c.bind(this.off, this));
6157 return "string" == typeof a && null == d && (b = void 0), this.on(e, b, d)
6158 }, k.listenToOnce = function(a, b, d) {
6159 var e = m(q, {}, b, d, c.bind(this.stopListening, this, a));
6160 return this.listenTo(a, e)
6161 };
6162 var q = function(a, b, d, e) {
6163 if (d) {
6164 var f = a[b] = c.once(function() {
6165 e(b, f), d.apply(this, arguments)
6166 });
6167 f._callback = d
6168 }
6169 return a
6170 };
6171 k.trigger = function(a) {
6172 if (!this._events) return this;
6173 for (var b = Math.max(0, arguments.length - 1), c = Array(b), d = 0; b > d; d++) c[d] = arguments[d + 1];
6174 return m(r, this._events, a, void 0, c), this
6175 };
6176 var r = function(a, b, c, d) {
6177 if (a) {
6178 var e = a[b],
6179 f = a.all;
6180 e && f && (f = f.slice()), e && s(e, d), f && s(f, [b].concat(d))
6181 }
6182 return a
6183 },
6184 s = function(a, b) {
6185 var c, d = -1,
6186 e = a.length,
6187 f = b[0],
6188 g = b[1],
6189 h = b[2];
6190 switch (b.length) {
6191 case 0:
6192 for (; ++d < e;)(c = a[d]).callback.call(c.ctx);
6193 return;
6194 case 1:
6195 for (; ++d < e;)(c = a[d]).callback.call(c.ctx, f);
6196 return;
6197 case 2:
6198 for (; ++d < e;)(c = a[d]).callback.call(c.ctx, f, g);
6199 return;
6200 case 3:
6201 for (; ++d < e;)(c = a[d]).callback.call(c.ctx, f, g, h);
6202 return;
6203 default:
6204 for (; ++d < e;)(c = a[d]).callback.apply(c.ctx, b);
6205 return
6206 }
6207 };
6208 k.bind = k.on, k.unbind = k.off, c.extend(b, k);
6209 var t = b.Model = function(a, b) {
6210 var d = a || {};
6211 b || (b = {}), this.cid = c.uniqueId(this.cidPrefix), this.attributes = {}, b.collection && (this.collection = b.collection), b.parse && (d = this.parse(d, b) || {});
6212 var e = c.result(this, "defaults");
6213 d = c.defaults(c.extend({}, e, d), e), this.set(d, b), this.changed = {}, this.initialize.apply(this, arguments)
6214 };
6215 c.extend(t.prototype, k, {
6216 changed: null,
6217 validationError: null,
6218 idAttribute: "id",
6219 cidPrefix: "c",
6220 initialize: function() {},
6221 toJSON: function(a) {
6222 return c.clone(this.attributes)
6223 },
6224 sync: function() {
6225 return b.sync.apply(this, arguments)
6226 },
6227 get: function(a) {
6228 return this.attributes[a]
6229 },
6230 escape: function(a) {
6231 return c.escape(this.get(a))
6232 },
6233 has: function(a) {
6234 return null != this.get(a)
6235 },
6236 matches: function(a) {
6237 return !!c.iteratee(a, this)(this.attributes)
6238 },
6239 set: function(a, b, d) {
6240 if (null == a) return this;
6241 var e;
6242 if ("object" == typeof a ? (e = a, d = b) : (e = {})[a] = b, d || (d = {}), !this._validate(e, d)) return !1;
6243 var f = d.unset,
6244 g = d.silent,
6245 h = [],
6246 i = this._changing;
6247 this._changing = !0, i || (this._previousAttributes = c.clone(this.attributes), this.changed = {});
6248 var j = this.attributes,
6249 k = this.changed,
6250 l = this._previousAttributes;
6251 for (var m in e) b = e[m], c.isEqual(j[m], b) || h.push(m), c.isEqual(l[m], b) ? delete k[m] : k[m] = b, f ? delete j[m] : j[m] = b;
6252 if (this.idAttribute in e && (this.id = this.get(this.idAttribute)), !g) {
6253 h.length && (this._pending = d);
6254 for (var n = 0; n < h.length; n++) this.trigger("change:" + h[n], this, j[h[n]], d)
6255 }
6256 if (i) return this;
6257 if (!g)
6258 for (; this._pending;) d = this._pending, this._pending = !1, this.trigger("change", this, d);
6259 return this._pending = !1, this._changing = !1, this
6260 },
6261 unset: function(a, b) {
6262 return this.set(a, void 0, c.extend({}, b, {
6263 unset: !0
6264 }))
6265 },
6266 clear: function(a) {
6267 var b = {};
6268 for (var d in this.attributes) b[d] = void 0;
6269 return this.set(b, c.extend({}, a, {
6270 unset: !0
6271 }))
6272 },
6273 hasChanged: function(a) {
6274 return null == a ? !c.isEmpty(this.changed) : c.has(this.changed, a)
6275 },
6276 changedAttributes: function(a) {
6277 if (!a) return this.hasChanged() ? c.clone(this.changed) : !1;
6278 var b = this._changing ? this._previousAttributes : this.attributes,
6279 d = {};
6280 for (var e in a) {
6281 var f = a[e];
6282 c.isEqual(b[e], f) || (d[e] = f)
6283 }
6284 return c.size(d) ? d : !1
6285 },
6286 previous: function(a) {
6287 return null != a && this._previousAttributes ? this._previousAttributes[a] : null
6288 },
6289 previousAttributes: function() {
6290 return c.clone(this._previousAttributes)
6291 },
6292 fetch: function(a) {
6293 a = c.extend({
6294 parse: !0
6295 }, a);
6296 var b = this,
6297 d = a.success;
6298 return a.success = function(c) {
6299 var e = a.parse ? b.parse(c, a) : c;
6300 return b.set(e, a) ? (d && d.call(a.context, b, c, a), void b.trigger("sync", b, c, a)) : !1
6301 }, P(this, a), this.sync("read", this, a)
6302 },
6303 save: function(a, b, d) {
6304 var e;
6305 null == a || "object" == typeof a ? (e = a, d = b) : (e = {})[a] = b, d = c.extend({
6306 validate: !0,
6307 parse: !0
6308 }, d);
6309 var f = d.wait;
6310 if (e && !f) {
6311 if (!this.set(e, d)) return !1
6312 } else if (!this._validate(e, d)) return !1;
6313 var g = this,
6314 h = d.success,
6315 i = this.attributes;
6316 d.success = function(a) {
6317 g.attributes = i;
6318 var b = d.parse ? g.parse(a, d) : a;
6319 return f && (b = c.extend({}, e, b)), b && !g.set(b, d) ? !1 : (h && h.call(d.context, g, a, d), void g.trigger("sync", g, a, d))
6320 }, P(this, d), e && f && (this.attributes = c.extend({}, i, e));
6321 var j = this.isNew() ? "create" : d.patch ? "patch" : "update";
6322 "patch" !== j || d.attrs || (d.attrs = e);
6323 var k = this.sync(j, this, d);
6324 return this.attributes = i, k
6325 },
6326 destroy: function(a) {
6327 a = a ? c.clone(a) : {};
6328 var b = this,
6329 d = a.success,
6330 e = a.wait,
6331 f = function() {
6332 b.stopListening(), b.trigger("destroy", b, b.collection, a)
6333 };
6334 a.success = function(c) {
6335 e && f(), d && d.call(a.context, b, c, a), b.isNew() || b.trigger("sync", b, c, a)
6336 };
6337 var g = !1;
6338 return this.isNew() ? c.defer(a.success) : (P(this, a), g = this.sync("delete", this, a)), e || f(), g
6339 },
6340 url: function() {
6341 var a = c.result(this, "urlRoot") || c.result(this.collection, "url") || O();
6342 if (this.isNew()) return a;
6343 var b = this.get(this.idAttribute);
6344 return a.replace(/[^\/]$/, "$&/") + encodeURIComponent(b)
6345 },
6346 parse: function(a, b) {
6347 return a
6348 },
6349 clone: function() {
6350 return new this.constructor(this.attributes)
6351 },
6352 isNew: function() {
6353 return !this.has(this.idAttribute)
6354 },
6355 isValid: function(a) {
6356 return this._validate({}, c.extend({}, a, {
6357 validate: !0
6358 }))
6359 },
6360 _validate: function(a, b) {
6361 if (!b.validate || !this.validate) return !0;
6362 a = c.extend({}, this.attributes, a);
6363 var d = this.validationError = this.validate(a, b) || null;
6364 return d ? (this.trigger("invalid", this, d, c.extend(b, {
6365 validationError: d
6366 })), !1) : !0
6367 }
6368 });
6369 var u = {
6370 keys: 1,
6371 values: 1,
6372 pairs: 1,
6373 invert: 1,
6374 pick: 0,
6375 omit: 0,
6376 chain: 1,
6377 isEmpty: 1
6378 };
6379 h(t, u, "attributes");
6380 var v = b.Collection = function(a, b) {
6381 b || (b = {}), b.model && (this.model = b.model), void 0 !== b.comparator && (this.comparator = b.comparator), this._reset(), this.initialize.apply(this, arguments), a && this.reset(a, c.extend({
6382 silent: !0
6383 }, b))
6384 },
6385 w = {
6386 add: !0,
6387 remove: !0,
6388 merge: !0
6389 },
6390 x = {
6391 add: !0,
6392 remove: !1
6393 },
6394 y = function(a, b, c) {
6395 c = Math.min(Math.max(c, 0), a.length);
6396 var d, e = Array(a.length - c),
6397 f = b.length;
6398 for (d = 0; d < e.length; d++) e[d] = a[d + c];
6399 for (d = 0; f > d; d++) a[d + c] = b[d];
6400 for (d = 0; d < e.length; d++) a[d + f + c] = e[d]
6401 };
6402 c.extend(v.prototype, k, {
6403 model: t,
6404 initialize: function() {},
6405 toJSON: function(a) {
6406 return this.map(function(b) {
6407 return b.toJSON(a)
6408 })
6409 },
6410 sync: function() {
6411 return b.sync.apply(this, arguments)
6412 },
6413 add: function(a, b) {
6414 return this.set(a, c.extend({
6415 merge: !1
6416 }, b, x))
6417 },
6418 remove: function(a, b) {
6419 b = c.extend({}, b);
6420 var d = !c.isArray(a);
6421 a = d ? [a] : a.slice();
6422 var e = this._removeModels(a, b);
6423 return !b.silent && e.length && (b.changes = {
6424 added: [],
6425 merged: [],
6426 removed: e
6427 }, this.trigger("update", this, b)), d ? e[0] : e
6428 },
6429 set: function(a, b) {
6430 if (null != a) {
6431 b = c.extend({}, w, b), b.parse && !this._isModel(a) && (a = this.parse(a, b) || []);
6432 var d = !c.isArray(a);
6433 a = d ? [a] : a.slice();
6434 var e = b.at;
6435 null != e && (e = +e), e > this.length && (e = this.length), 0 > e && (e += this.length + 1);
6436 var f, g, h = [],
6437 i = [],
6438 j = [],
6439 k = [],
6440 l = {},
6441 m = b.add,
6442 n = b.merge,
6443 o = b.remove,
6444 p = !1,
6445 q = this.comparator && null == e && b.sort !== !1,
6446 r = c.isString(this.comparator) ? this.comparator : null;
6447 for (g = 0; g < a.length; g++) {
6448 f = a[g];
6449 var s = this.get(f);
6450 if (s) {
6451 if (n && f !== s) {
6452 var t = this._isModel(f) ? f.attributes : f;
6453 b.parse && (t = s.parse(t, b)), s.set(t, b), j.push(s), q && !p && (p = s.hasChanged(r))
6454 }
6455 l[s.cid] || (l[s.cid] = !0, h.push(s)), a[g] = s
6456 } else m && (f = a[g] = this._prepareModel(f, b), f && (i.push(f), this._addReference(f, b), l[f.cid] = !0, h.push(f)))
6457 }
6458 if (o) {
6459 for (g = 0; g < this.length; g++) f = this.models[g], l[f.cid] || k.push(f);
6460 k.length && this._removeModels(k, b)
6461 }
6462 var u = !1,
6463 v = !q && m && o;
6464 if (h.length && v ? (u = this.length !== h.length || c.some(this.models, function(a, b) {
6465 return a !== h[b]
6466 }), this.models.length = 0, y(this.models, h, 0), this.length = this.models.length) : i.length && (q && (p = !0), y(this.models, i, null == e ? this.length : e), this.length = this.models.length), p && this.sort({
6467 silent: !0
6468 }), !b.silent) {
6469 for (g = 0; g < i.length; g++) null != e && (b.index = e + g), f = i[g], f.trigger("add", f, this, b);
6470 (p || u) && this.trigger("sort", this, b), (i.length || k.length || j.length) && (b.changes = {
6471 added: i,
6472 removed: k,
6473 merged: j
6474 }, this.trigger("update", this, b))
6475 }
6476 return d ? a[0] : a
6477 }
6478 },
6479 reset: function(a, b) {
6480 b = b ? c.clone(b) : {};
6481 for (var d = 0; d < this.models.length; d++) this._removeReference(this.models[d], b);
6482 return b.previousModels = this.models, this._reset(), a = this.add(a, c.extend({
6483 silent: !0
6484 }, b)), b.silent || this.trigger("reset", this, b), a
6485 },
6486 push: function(a, b) {
6487 return this.add(a, c.extend({
6488 at: this.length
6489 }, b))
6490 },
6491 pop: function(a) {
6492 var b = this.at(this.length - 1);
6493 return this.remove(b, a)
6494 },
6495 unshift: function(a, b) {
6496 return this.add(a, c.extend({
6497 at: 0
6498 }, b))
6499 },
6500 shift: function(a) {
6501 var b = this.at(0);
6502 return this.remove(b, a)
6503 },
6504 slice: function() {
6505 return f.apply(this.models, arguments)
6506 },
6507 get: function(a) {
6508 return null != a ? this._byId[a] || this._byId[this.modelId(a.attributes || a)] || a.cid && this._byId[a.cid] : void 0
6509 },
6510 has: function(a) {
6511 return null != this.get(a)
6512 },
6513 at: function(a) {
6514 return 0 > a && (a += this.length), this.models[a]
6515 },
6516 where: function(a, b) {
6517 return this[b ? "find" : "filter"](a)
6518 },
6519 findWhere: function(a) {
6520 return this.where(a, !0)
6521 },
6522 sort: function(a) {
6523 var b = this.comparator;
6524 if (!b) throw new Error("Cannot sort a set without a comparator");
6525 a || (a = {});
6526 var d = b.length;
6527 return c.isFunction(b) && (b = c.bind(b, this)), 1 === d || c.isString(b) ? this.models = this.sortBy(b) : this.models.sort(b), a.silent || this.trigger("sort", this, a), this
6528 },
6529 pluck: function(a) {
6530 return this.map(a + "")
6531 },
6532 fetch: function(a) {
6533 a = c.extend({
6534 parse: !0
6535 }, a);
6536 var b = a.success,
6537 d = this;
6538 return a.success = function(c) {
6539 var e = a.reset ? "reset" : "set";
6540 d[e](c, a), b && b.call(a.context, d, c, a), d.trigger("sync", d, c, a)
6541 }, P(this, a), this.sync("read", this, a)
6542 },
6543 create: function(a, b) {
6544 b = b ? c.clone(b) : {};
6545 var d = b.wait;
6546 if (a = this._prepareModel(a, b), !a) return !1;
6547 d || this.add(a, b);
6548 var e = this,
6549 f = b.success;
6550 return b.success = function(a, b, c) {
6551 d && e.add(a, c), f && f.call(c.context, a, b, c)
6552 }, a.save(null, b), a
6553 },
6554 parse: function(a, b) {
6555 return a
6556 },
6557 clone: function() {
6558 return new this.constructor(this.models, {
6559 model: this.model,
6560 comparator: this.comparator
6561 })
6562 },
6563 modelId: function(a) {
6564 return a[this.model.prototype.idAttribute || "id"]
6565 },
6566 _reset: function() {
6567 this.length = 0, this.models = [], this._byId = {}
6568 },
6569 _prepareModel: function(a, b) {
6570 if (this._isModel(a)) return a.collection || (a.collection = this), a;
6571 b = b ? c.clone(b) : {}, b.collection = this;
6572 var d = new this.model(a, b);
6573 return d.validationError ? (this.trigger("invalid", this, d.validationError, b), !1) : d
6574 },
6575 _removeModels: function(a, b) {
6576 for (var c = [], d = 0; d < a.length; d++) {
6577 var e = this.get(a[d]);
6578 if (e) {
6579 var f = this.indexOf(e);
6580 this.models.splice(f, 1), this.length--, delete this._byId[e.cid];
6581 var g = this.modelId(e.attributes);
6582 null != g && delete this._byId[g], b.silent || (b.index = f, e.trigger("remove", e, this, b)), c.push(e), this._removeReference(e, b)
6583 }
6584 }
6585 return c
6586 },
6587 _isModel: function(a) {
6588 return a instanceof t
6589 },
6590 _addReference: function(a, b) {
6591 this._byId[a.cid] = a;
6592 var c = this.modelId(a.attributes);
6593 null != c && (this._byId[c] = a), a.on("all", this._onModelEvent, this)
6594 },
6595 _removeReference: function(a, b) {
6596 delete this._byId[a.cid];
6597 var c = this.modelId(a.attributes);
6598 null != c && delete this._byId[c], this === a.collection && delete a.collection, a.off("all", this._onModelEvent, this)
6599 },
6600 _onModelEvent: function(a, b, c, d) {
6601 if (b) {
6602 if (("add" === a || "remove" === a) && c !== this) return;
6603 if ("destroy" === a && this.remove(b, d), "change" === a) {
6604 var e = this.modelId(b.previousAttributes()),
6605 f = this.modelId(b.attributes);
6606 e !== f && (null != e && delete this._byId[e], null != f && (this._byId[f] = b))
6607 }
6608 }
6609 this.trigger.apply(this, arguments)
6610 }
6611 });
6612 var z = {
6613 forEach: 3,
6614 each: 3,
6615 map: 3,
6616 collect: 3,
6617 reduce: 0,
6618 foldl: 0,
6619 inject: 0,
6620 reduceRight: 0,
6621 foldr: 0,
6622 find: 3,
6623 detect: 3,
6624 filter: 3,
6625 select: 3,
6626 reject: 3,
6627 every: 3,
6628 all: 3,
6629 some: 3,
6630 any: 3,
6631 include: 3,
6632 includes: 3,
6633 contains: 3,
6634 invoke: 0,
6635 max: 3,
6636 min: 3,
6637 toArray: 1,
6638 size: 1,
6639 first: 3,
6640 head: 3,
6641 take: 3,
6642 initial: 3,
6643 rest: 3,
6644 tail: 3,
6645 drop: 3,
6646 last: 3,
6647 without: 0,
6648 difference: 0,
6649 indexOf: 3,
6650 shuffle: 1,
6651 lastIndexOf: 3,
6652 isEmpty: 1,
6653 chain: 1,
6654 sample: 3,
6655 partition: 3,
6656 groupBy: 3,
6657 countBy: 3,
6658 sortBy: 3,
6659 indexBy: 3,
6660 findIndex: 3,
6661 findLastIndex: 3
6662 };
6663 h(v, z, "models");
6664 var A = b.View = function(a) {
6665 this.cid = c.uniqueId("view"), c.extend(this, c.pick(a, C)), this._ensureElement(), this.initialize.apply(this, arguments)
6666 },
6667 B = /^(\S+)\s*(.*)$/,
6668 C = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"];
6669 c.extend(A.prototype, k, {
6670 tagName: "div",
6671 $: function(a) {
6672 return this.$el.find(a)
6673 },
6674 initialize: function() {},
6675 render: function() {
6676 return this
6677 },
6678 remove: function() {
6679 return this._removeElement(), this.stopListening(), this
6680 },
6681 _removeElement: function() {
6682 this.$el.remove()
6683 },
6684 setElement: function(a) {
6685 return this.undelegateEvents(), this._setElement(a), this.delegateEvents(), this
6686 },
6687 _setElement: function(a) {
6688 this.$el = a instanceof b.$ ? a : b.$(a), this.el = this.$el[0]
6689 },
6690 delegateEvents: function(a) {
6691 if (a || (a = c.result(this, "events")), !a) return this;
6692 this.undelegateEvents();
6693 for (var b in a) {
6694 var d = a[b];
6695 if (c.isFunction(d) || (d = this[d]), d) {
6696 var e = b.match(B);
6697 this.delegate(e[1], e[2], c.bind(d, this))
6698 }
6699 }
6700 return this
6701 },
6702 delegate: function(a, b, c) {
6703 return this.$el.on(a + ".delegateEvents" + this.cid, b, c), this
6704 },
6705 undelegateEvents: function() {
6706 return this.$el && this.$el.off(".delegateEvents" + this.cid), this
6707 },
6708 undelegate: function(a, b, c) {
6709 return this.$el.off(a + ".delegateEvents" + this.cid, b, c), this
6710 },
6711 _createElement: function(a) {
6712 return document.createElement(a)
6713 },
6714 _ensureElement: function() {
6715 if (this.el) this.setElement(c.result(this, "el"));
6716 else {
6717 var a = c.extend({}, c.result(this, "attributes"));
6718 this.id && (a.id = c.result(this, "id")), this.className && (a["class"] = c.result(this, "className")), this.setElement(this._createElement(c.result(this, "tagName"))), this._setAttributes(a)
6719 }
6720 },
6721 _setAttributes: function(a) {
6722 this.$el.attr(a)
6723 }
6724 }), b.sync = function(a, d, e) {
6725 var f = D[a];
6726 c.defaults(e || (e = {}), {
6727 emulateHTTP: b.emulateHTTP,
6728 emulateJSON: b.emulateJSON
6729 });
6730 var g = {
6731 type: f,
6732 dataType: "json"
6733 };
6734 if (e.url || (g.url = c.result(d, "url") || O()), null != e.data || !d || "create" !== a && "update" !== a && "patch" !== a || (g.contentType = "application/json", g.data = JSON.stringify(e.attrs || d.toJSON(e))), e.emulateJSON && (g.contentType = "application/x-www-form-urlencoded", g.data = g.data ? {
6735 model: g.data
6736 } : {}), e.emulateHTTP && ("PUT" === f || "DELETE" === f || "PATCH" === f)) {
6737 g.type = "POST", e.emulateJSON && (g.data._method = f);
6738 var h = e.beforeSend;
6739 e.beforeSend = function(a) {
6740 return a.setRequestHeader("X-HTTP-Method-Override", f), h ? h.apply(this, arguments) : void 0
6741 }
6742 }
6743 "GET" === g.type || e.emulateJSON || (g.processData = !1);
6744 var i = e.error;
6745 e.error = function(a, b, c) {
6746 e.textStatus = b, e.errorThrown = c, i && i.call(e.context, a, b, c)
6747 };
6748 var j = e.xhr = b.ajax(c.extend(g, e));
6749 return d.trigger("request", d, j, e), j
6750 };
6751 var D = {
6752 create: "POST",
6753 update: "PUT",
6754 patch: "PATCH",
6755 "delete": "DELETE",
6756 read: "GET"
6757 };
6758 b.ajax = function() {
6759 return b.$.ajax.apply(b.$, arguments)
6760 };
6761 var E = b.Router = function(a) {
6762 a || (a = {}), a.routes && (this.routes = a.routes), this._bindRoutes(), this.initialize.apply(this, arguments)
6763 },
6764 F = /\((.*?)\)/g,
6765 G = /(\(\?)?:\w+/g,
6766 H = /\*\w+/g,
6767 I = /[\-{}\[\]+?.,\\\^$|#\s]/g;
6768 c.extend(E.prototype, k, {
6769 initialize: function() {},
6770 route: function(a, d, e) {
6771 c.isRegExp(a) || (a = this._routeToRegExp(a)), c.isFunction(d) && (e = d, d = ""), e || (e = this[d]);
6772 var f = this;
6773 return b.history.route(a, function(c) {
6774 var g = f._extractParameters(a, c);
6775 f.execute(e, g, d) !== !1 && (f.trigger.apply(f, ["route:" + d].concat(g)), f.trigger("route", d, g), b.history.trigger("route", f, d, g))
6776 }), this
6777 },
6778 execute: function(a, b, c) {
6779 a && a.apply(this, b)
6780 },
6781 navigate: function(a, c) {
6782 return b.history.navigate(a, c), this
6783 },
6784 _bindRoutes: function() {
6785 if (this.routes) {
6786 this.routes = c.result(this, "routes");
6787 for (var a, b = c.keys(this.routes); null != (a = b.pop());) this.route(a, this.routes[a])
6788 }
6789 },
6790 _routeToRegExp: function(a) {
6791 return a = a.replace(I, "\\$&").replace(F, "(?:$1)?").replace(G, function(a, b) {
6792 return b ? a : "([^/?]+)"
6793 }).replace(H, "([^?]*?)"), new RegExp("^" + a + "(?:\\?([\\s\\S]*))?$")
6794 },
6795 _extractParameters: function(a, b) {
6796 var d = a.exec(b).slice(1);
6797 return c.map(d, function(a, b) {
6798 return b === d.length - 1 ? a || null : a ? decodeURIComponent(a) : null
6799 })
6800 }
6801 });
6802 var J = b.History = function() {
6803 this.handlers = [], this.checkUrl = c.bind(this.checkUrl, this), "undefined" != typeof window && (this.location = window.location, this.history = window.history)
6804 },
6805 K = /^[#\/]|\s+$/g,
6806 L = /^\/+|\/+$/g,
6807 M = /#.*$/;
6808 J.started = !1, c.extend(J.prototype, k, {
6809 interval: 50,
6810 atRoot: function() {
6811 var a = this.location.pathname.replace(/[^\/]$/, "$&/");
6812 return a === this.root && !this.getSearch()
6813 },
6814 matchRoot: function() {
6815 var a = this.decodeFragment(this.location.pathname),
6816 b = a.slice(0, this.root.length - 1) + "/";
6817 return b === this.root
6818 },
6819 decodeFragment: function(a) {
6820 return decodeURI(a.replace(/%25/g, "%2525"))
6821 },
6822 getSearch: function() {
6823 var a = this.location.href.replace(/#.*/, "").match(/\?.+/);
6824 return a ? a[0] : ""
6825 },
6826 getHash: function(a) {
6827 var b = (a || this).location.href.match(/#(.*)$/);
6828 return b ? b[1] : ""
6829 },
6830 getPath: function() {
6831 var a = this.decodeFragment(this.location.pathname + this.getSearch()).slice(this.root.length - 1);
6832 return "/" === a.charAt(0) ? a.slice(1) : a
6833 },
6834 getFragment: function(a) {
6835 return null == a && (a = this._usePushState || !this._wantsHashChange ? this.getPath() : this.getHash()), a.replace(K, "")
6836 },
6837 start: function(a) {
6838 if (J.started) throw new Error("Backbone.history has already been started");
6839 if (J.started = !0, this.options = c.extend({
6840 root: "/"
6841 }, this.options, a), this.root = this.options.root, this._wantsHashChange = this.options.hashChange !== !1, this._hasHashChange = "onhashchange" in window && (void 0 === document.documentMode || document.documentMode > 7), this._useHashChange = this._wantsHashChange && this._hasHashChange, this._wantsPushState = !!this.options.pushState, this._hasPushState = !(!this.history || !this.history.pushState), this._usePushState = this._wantsPushState && this._hasPushState, this.fragment = this.getFragment(), this.root = ("/" + this.root + "/").replace(L, "/"), this._wantsHashChange && this._wantsPushState) {
6842 if (!this._hasPushState && !this.atRoot()) {
6843 var b = this.root.slice(0, -1) || "/";
6844 return this.location.replace(b + "#" + this.getPath()), !0
6845 }
6846 this._hasPushState && this.atRoot() && this.navigate(this.getHash(), {
6847 replace: !0
6848 })
6849 }
6850 if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {
6851 this.iframe = document.createElement("iframe"), this.iframe.src = "javascript:0", this.iframe.style.display = "none", this.iframe.tabIndex = -1;
6852 var d = document.body,
6853 e = d.insertBefore(this.iframe, d.firstChild).contentWindow;
6854 e.document.open(), e.document.close(), e.location.hash = "#" + this.fragment
6855 }
6856 var f = window.addEventListener || function(a, b) {
6857 return attachEvent("on" + a, b)
6858 };
6859 return this._usePushState ? f("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe ? f("hashchange", this.checkUrl, !1) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), this.options.silent ? void 0 : this.loadUrl()
6860 },
6861 stop: function() {
6862 var a = window.removeEventListener || function(a, b) {
6863 return detachEvent("on" + a, b)
6864 };
6865 this._usePushState ? a("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe && a("hashchange", this.checkUrl, !1), this.iframe && (document.body.removeChild(this.iframe), this.iframe = null), this._checkUrlInterval && clearInterval(this._checkUrlInterval), J.started = !1
6866 },
6867 route: function(a, b) {
6868 this.handlers.unshift({
6869 route: a,
6870 callback: b
6871 })
6872 },
6873 checkUrl: function(a) {
6874 var b = this.getFragment();
6875 return b === this.fragment && this.iframe && (b = this.getHash(this.iframe.contentWindow)), b === this.fragment ? !1 : (this.iframe && this.navigate(b), void this.loadUrl())
6876 },
6877 loadUrl: function(a) {
6878 return this.matchRoot() ? (a = this.fragment = this.getFragment(a), c.some(this.handlers, function(b) {
6879 return b.route.test(a) ? (b.callback(a), !0) : void 0
6880 })) : !1
6881 },
6882 navigate: function(a, b) {
6883 if (!J.started) return !1;
6884 b && b !== !0 || (b = {
6885 trigger: !!b
6886 }), a = this.getFragment(a || "");
6887 var c = this.root;
6888 "" !== a && "?" !== a.charAt(0) || (c = c.slice(0, -1) || "/");
6889 var d = c + a;
6890 if (a = this.decodeFragment(a.replace(M, "")), this.fragment !== a) {
6891 if (this.fragment = a, this._usePushState) this.history[b.replace ? "replaceState" : "pushState"]({}, document.title, d);
6892 else {
6893 if (!this._wantsHashChange) return this.location.assign(d);
6894 if (this._updateHash(this.location, a, b.replace), this.iframe && a !== this.getHash(this.iframe.contentWindow)) {
6895 var e = this.iframe.contentWindow;
6896 b.replace || (e.document.open(), e.document.close()), this._updateHash(e.location, a, b.replace)
6897 }
6898 }
6899 return b.trigger ? this.loadUrl(a) : void 0
6900 }
6901 },
6902 _updateHash: function(a, b, c) {
6903 if (c) {
6904 var d = a.href.replace(/(javascript:|#).*$/, "");
6905 a.replace(d + "#" + b)
6906 } else a.hash = "#" + b
6907 }
6908 }), b.history = new J;
6909 var N = function(a, b) {
6910 var d, e = this;
6911 return d = a && c.has(a, "constructor") ? a.constructor : function() {
6912 return e.apply(this, arguments)
6913 }, c.extend(d, e, b), d.prototype = c.create(e.prototype, a), d.prototype.constructor = d, d.__super__ = e.prototype, d
6914 };
6915 t.extend = v.extend = E.extend = A.extend = J.extend = N;
6916 var O = function() {
6917 throw new Error('A "url" property or function must be specified')
6918 },
6919 P = function(a, b) {
6920 var c = b.error;
6921 b.error = function(d) {
6922 c && c.call(b.context, a, d, b), a.trigger("error", a, d, b)
6923 }
6924 };
6925 return b
6926 }),
6927 function(a) {
6928 "function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : jQuery)
6929 }(function(a) {
6930 function b(a) {
6931 return h.raw ? a : encodeURIComponent(a)
6932 }
6933
6934 function c(a) {
6935 return h.raw ? a : decodeURIComponent(a)
6936 }
6937
6938 function d(a) {
6939 return b(h.json ? JSON.stringify(a) : String(a))
6940 }
6941
6942 function e(a) {
6943 0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
6944 try {
6945 return a = decodeURIComponent(a.replace(g, " ")), h.json ? JSON.parse(a) : a
6946 } catch (b) {}
6947 }
6948
6949 function f(b, c) {
6950 var d = h.raw ? b : e(b);
6951 return a.isFunction(c) ? c(d) : d
6952 }
6953 var g = /\+/g,
6954 h = a.cookie = function(e, g, i) {
6955 if (void 0 !== g && !a.isFunction(g)) {
6956 if (i = a.extend({}, h.defaults, i), "number" == typeof i.expires) {
6957 var j = i.expires,
6958 k = i.expires = new Date;
6959 k.setTime(+k + 864e5 * j)
6960 }
6961 return document.cookie = [b(e), "=", d(g), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("")
6962 }
6963 for (var l = e ? void 0 : {}, m = document.cookie ? document.cookie.split("; ") : [], n = 0, o = m.length; o > n; n++) {
6964 var p = m[n].split("="),
6965 q = c(p.shift()),
6966 r = p.join("=");
6967 if (e && e === q) {
6968 l = f(r, g);
6969 break
6970 }
6971 e || void 0 === (r = f(r)) || (l[q] = r)
6972 }
6973 return l
6974 };
6975 h.defaults = {}, a.removeCookie = function(b, c) {
6976 return void 0 === a.cookie(b) ? !1 : (a.cookie(b, "", a.extend({}, c, {
6977 expires: -1
6978 })), !a.cookie(b))
6979 }
6980 }),
6981 function(a) {
6982 "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = a(require("jquery")) : a(jQuery)
6983 }(function(a) {
6984 a.extend(a.fn, {
6985 validate: function(b) {
6986 if (!this.length) return void(b && b.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing."));
6987 var c = a.data(this[0], "validator");
6988 return c ? c : (this.attr("novalidate", "novalidate"), c = new a.validator(b, this[0]), a.data(this[0], "validator", c), c.settings.onsubmit && (this.on("click.validate", ":submit", function(b) {
6989 c.settings.submitHandler && (c.submitButton = b.target), a(this).hasClass("cancel") && (c.cancelSubmit = !0), void 0 !== a(this).attr("formnovalidate") && (c.cancelSubmit = !0)
6990 }), this.on("submit.validate", function(b) {
6991 function d() {
6992 var d, e;
6993 return c.settings.submitHandler ? (c.submitButton && (d = a("<input type='hidden'/>").attr("name", c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)), e = c.settings.submitHandler.call(c, c.currentForm, b), c.submitButton && d.remove(), void 0 !== e ? e : !1) : !0
6994 }
6995 return c.settings.debug && b.preventDefault(), c.cancelSubmit ? (c.cancelSubmit = !1, d()) : c.form() ? c.pendingRequest ? (c.formSubmitted = !0, !1) : d() : (c.focusInvalid(), !1)
6996 })), c)
6997 },
6998 valid: function() {
6999 var b, c, d;
7000 return a(this[0]).is("form") ? b = this.validate().form() : (d = [], b = !0, c = a(this[0].form).validate(), this.each(function() {
7001 b = c.element(this) && b, b || (d = d.concat(c.errorList))
7002 }), c.errorList = d), b
7003 },
7004 rules: function(b, c) {
7005 var d, e, f, g, h, i, j = this[0];
7006 if (null != j && null != j.form) {
7007 if (b) switch (d = a.data(j.form, "validator").settings, e = d.rules, f = a.validator.staticRules(j), b) {
7008 case "add":
7009 a.extend(f, a.validator.normalizeRule(c)), delete f.messages, e[j.name] = f, c.messages && (d.messages[j.name] = a.extend(d.messages[j.name], c.messages));
7010 break;
7011 case "remove":
7012 return c ? (i = {}, a.each(c.split(/\s/), function(b, c) {
7013 i[c] = f[c], delete f[c], "required" === c && a(j).removeAttr("aria-required")
7014 }), i) : (delete e[j.name], f)
7015 }
7016 return g = a.validator.normalizeRules(a.extend({}, a.validator.classRules(j), a.validator.attributeRules(j), a.validator.dataRules(j), a.validator.staticRules(j)), j), g.required && (h = g.required, delete g.required, g = a.extend({
7017 required: h
7018 }, g), a(j).attr("aria-required", "true")), g.remote && (h = g.remote, delete g.remote, g = a.extend(g, {
7019 remote: h
7020 })), g
7021 }
7022 }
7023 }), a.extend(a.expr[":"], {
7024 blank: function(b) {
7025 return !a.trim("" + a(b).val())
7026 },
7027 filled: function(b) {
7028 var c = a(b).val();
7029 return null !== c && !!a.trim("" + c)
7030 },
7031 unchecked: function(b) {
7032 return !a(b).prop("checked")
7033 }
7034 }), a.validator = function(b, c) {
7035 this.settings = a.extend(!0, {}, a.validator.defaults, b), this.currentForm = c, this.init()
7036 }, a.validator.format = function(b, c) {
7037 return 1 === arguments.length ? function() {
7038 var c = a.makeArray(arguments);
7039 return c.unshift(b), a.validator.format.apply(this, c)
7040 } : void 0 === c ? b : (arguments.length > 2 && c.constructor !== Array && (c = a.makeArray(arguments).slice(1)), c.constructor !== Array && (c = [c]), a.each(c, function(a, c) {
7041 b = b.replace(new RegExp("\\{" + a + "\\}", "g"), function() {
7042 return c
7043 })
7044 }), b)
7045 }, a.extend(a.validator, {
7046 defaults: {
7047 messages: {},
7048 groups: {},
7049 rules: {},
7050 errorClass: "error",
7051 pendingClass: "pending",
7052 validClass: "valid",
7053 errorElement: "label",
7054 focusCleanup: !1,
7055 focusInvalid: !0,
7056 errorContainer: a([]),
7057 errorLabelContainer: a([]),
7058 onsubmit: !0,
7059 ignore: ":hidden",
7060 ignoreTitle: !1,
7061 onfocusin: function(a) {
7062 this.lastActive = a, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, a, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(a)))
7063 },
7064 onfocusout: function(a) {
7065 this.checkable(a) || !(a.name in this.submitted) && this.optional(a) || this.element(a)
7066 },
7067 onkeyup: function(b, c) {
7068 var d = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];
7069 9 === c.which && "" === this.elementValue(b) || -1 !== a.inArray(c.keyCode, d) || (b.name in this.submitted || b.name in this.invalid) && this.element(b)
7070 },
7071 onclick: function(a) {
7072 a.name in this.submitted ? this.element(a) : a.parentNode.name in this.submitted && this.element(a.parentNode)
7073 },
7074 highlight: function(b, c, d) {
7075 "radio" === b.type ? this.findByName(b.name).addClass(c).removeClass(d) : a(b).addClass(c).removeClass(d)
7076 },
7077 unhighlight: function(b, c, d) {
7078 "radio" === b.type ? this.findByName(b.name).removeClass(c).addClass(d) : a(b).removeClass(c).addClass(d)
7079 }
7080 },
7081 setDefaults: function(b) {
7082 a.extend(a.validator.defaults, b)
7083 },
7084 messages: {
7085 required: "This field is required.",
7086 remote: "Please fix this field.",
7087 email: "Please enter a valid email address.",
7088 url: "Please enter a valid URL.",
7089 date: "Please enter a valid date.",
7090 dateISO: "Please enter a valid date (ISO).",
7091 number: "Please enter a valid number.",
7092 digits: "Please enter only digits.",
7093 equalTo: "Please enter the same value again.",
7094 maxlength: a.validator.format("Please enter no more than {0} characters."),
7095 minlength: a.validator.format("Please enter at least {0} characters."),
7096 rangelength: a.validator.format("Please enter a value between {0} and {1} characters long."),
7097 range: a.validator.format("Please enter a value between {0} and {1}."),
7098 max: a.validator.format("Please enter a value less than or equal to {0}."),
7099 min: a.validator.format("Please enter a value greater than or equal to {0}."),
7100 step: a.validator.format("Please enter a multiple of {0}.")
7101 },
7102 autoCreateRanges: !1,
7103 prototype: {
7104 init: function() {
7105 function b(b) {
7106 !this.form && this.hasAttribute("contenteditable") && (this.form = a(this).closest("form")[0]);
7107 var c = a.data(this.form, "validator"),
7108 d = "on" + b.type.replace(/^validate/, ""),
7109 e = c.settings;
7110 e[d] && !a(this).is(e.ignore) && e[d].call(c, this, b)
7111 }
7112 this.labelContainer = a(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || a(this.currentForm), this.containers = a(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset();
7113 var c, d = this.groups = {};
7114 a.each(this.settings.groups, function(b, c) {
7115 "string" == typeof c && (c = c.split(/\s/)), a.each(c, function(a, c) {
7116 d[c] = b
7117 })
7118 }), c = this.settings.rules, a.each(c, function(b, d) {
7119 c[b] = a.validator.normalizeRule(d)
7120 }), a(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]", b).on("click.validate", "select, option, [type='radio'], [type='checkbox']", b), this.settings.invalidHandler && a(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler), a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true")
7121 },
7122 form: function() {
7123 return this.checkForm(), a.extend(this.submitted, this.errorMap), this.invalid = a.extend({}, this.errorMap), this.valid() || a(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
7124 },
7125 checkForm: function() {
7126 this.prepareForm();
7127 for (var a = 0, b = this.currentElements = this.elements(); b[a]; a++) this.check(b[a]);
7128 return this.valid()
7129 },
7130 element: function(b) {
7131 var c, d, e = this.clean(b),
7132 f = this.validationTargetFor(e),
7133 g = this,
7134 h = !0;
7135 return void 0 === f ? delete this.invalid[e.name] : (this.prepareElement(f), this.currentElements = a(f), d = this.groups[f.name], d && a.each(this.groups, function(a, b) {
7136 b === d && a !== f.name && (e = g.validationTargetFor(g.clean(g.findByName(a))), e && e.name in g.invalid && (g.currentElements.push(e), h = g.check(e) && h))
7137 }), c = this.check(f) !== !1, h = h && c, c ? this.invalid[f.name] = !1 : this.invalid[f.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), a(b).attr("aria-invalid", !c)), h
7138 },
7139 showErrors: function(b) {
7140 if (b) {
7141 var c = this;
7142 a.extend(this.errorMap, b), this.errorList = a.map(this.errorMap, function(a, b) {
7143 return {
7144 message: a,
7145 element: c.findByName(b)[0]
7146 }
7147 }), this.successList = a.grep(this.successList, function(a) {
7148 return !(a.name in b)
7149 })
7150 }
7151 this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
7152 },
7153 resetForm: function() {
7154 a.fn.resetForm && a(this.currentForm).resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors();
7155 var b = this.elements().removeData("previousValue").removeAttr("aria-invalid");
7156 this.resetElements(b)
7157 },
7158 resetElements: function(a) {
7159 var b;
7160 if (this.settings.unhighlight)
7161 for (b = 0; a[b]; b++) this.settings.unhighlight.call(this, a[b], this.settings.errorClass, ""), this.findByName(a[b].name).removeClass(this.settings.validClass);
7162 else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)
7163 },
7164 numberOfInvalids: function() {
7165 return this.objectLength(this.invalid)
7166 },
7167 objectLength: function(a) {
7168 var b, c = 0;
7169 for (b in a) a[b] && c++;
7170 return c
7171 },
7172 hideErrors: function() {
7173 this.hideThese(this.toHide)
7174 },
7175 hideThese: function(a) {
7176 a.not(this.containers).text(""), this.addWrapper(a).hide()
7177 },
7178 valid: function() {
7179 return 0 === this.size()
7180 },
7181 size: function() {
7182 return this.errorList.length
7183 },
7184 focusInvalid: function() {
7185 if (this.settings.focusInvalid) try {
7186 a(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin")
7187 } catch (b) {}
7188 },
7189 findLastActive: function() {
7190 var b = this.lastActive;
7191 return b && 1 === a.grep(this.errorList, function(a) {
7192 return a.element.name === b.name
7193 }).length && b
7194 },
7195 elements: function() {
7196 var b = this,
7197 c = {};
7198 return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function() {
7199 var d = this.name || a(this).attr("name");
7200 return !d && b.settings.debug && window.console && console.error("%o has no name assigned", this), this.hasAttribute("contenteditable") && (this.form = a(this).closest("form")[0]), d in c || !b.objectLength(a(this).rules()) ? !1 : (c[d] = !0, !0)
7201 })
7202 },
7203 clean: function(b) {
7204 return a(b)[0]
7205 },
7206 errors: function() {
7207 var b = this.settings.errorClass.split(" ").join(".");
7208 return a(this.settings.errorElement + "." + b, this.errorContext)
7209 },
7210 resetInternals: function() {
7211 this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = a([]), this.toHide = a([])
7212 },
7213 reset: function() {
7214 this.resetInternals(), this.currentElements = a([])
7215 },
7216 prepareForm: function() {
7217 this.reset(), this.toHide = this.errors().add(this.containers)
7218 },
7219 prepareElement: function(a) {
7220 this.reset(), this.toHide = this.errorsFor(a)
7221 },
7222 elementValue: function(b) {
7223 var c, d, e = a(b),
7224 f = b.type;
7225 return "radio" === f || "checkbox" === f ? this.findByName(b.name).filter(":checked").val() : "number" === f && "undefined" != typeof b.validity ? b.validity.badInput ? "NaN" : e.val() : (c = b.hasAttribute("contenteditable") ? e.text() : e.val(), "file" === f ? "C:\\fakepath\\" === c.substr(0, 12) ? c.substr(12) : (d = c.lastIndexOf("/"), d >= 0 ? c.substr(d + 1) : (d = c.lastIndexOf("\\"), d >= 0 ? c.substr(d + 1) : c)) : "string" == typeof c ? c.replace(/\r/g, "") : c)
7226 },
7227 check: function(b) {
7228 b = this.validationTargetFor(this.clean(b));
7229 var c, d, e, f = a(b).rules(),
7230 g = a.map(f, function(a, b) {
7231 return b
7232 }).length,
7233 h = !1,
7234 i = this.elementValue(b);
7235 if ("function" == typeof f.normalizer) {
7236 if (i = f.normalizer.call(b, i), "string" != typeof i) throw new TypeError("The normalizer should return a string value.");
7237 delete f.normalizer
7238 }
7239 for (d in f) {
7240 e = {
7241 method: d,
7242 parameters: f[d]
7243 };
7244 try {
7245 if (c = a.validator.methods[d].call(this, i, b, e.parameters), "dependency-mismatch" === c && 1 === g) {
7246 h = !0;
7247 continue
7248 }
7249 if (h = !1, "pending" === c) return void(this.toHide = this.toHide.not(this.errorsFor(b)));
7250 if (!c) return this.formatAndAdd(b, e), !1
7251 } catch (j) {
7252 throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + b.id + ", check the '" + e.method + "' method.", j), j instanceof TypeError && (j.message += ". Exception occurred when checking element " + b.id + ", check the '" + e.method + "' method."), j
7253 }
7254 }
7255 if (!h) return this.objectLength(f) && this.successList.push(b), !0
7256 },
7257 customDataMessage: function(b, c) {
7258 return a(b).data("msg" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()) || a(b).data("msg")
7259 },
7260 customMessage: function(a, b) {
7261 var c = this.settings.messages[a];
7262 return c && (c.constructor === String ? c : c[b])
7263 },
7264 findDefined: function() {
7265 for (var a = 0; a < arguments.length; a++)
7266 if (void 0 !== arguments[a]) return arguments[a]
7267 },
7268 defaultMessage: function(b, c) {
7269 "string" == typeof c && (c = {
7270 method: c
7271 });
7272 var d = this.findDefined(this.customMessage(b.name, c.method), this.customDataMessage(b, c.method), !this.settings.ignoreTitle && b.title || void 0, a.validator.messages[c.method], "<strong>Warning: No message defined for " + b.name + "</strong>"),
7273 e = /\$?\{(\d+)\}/g;
7274 return "function" == typeof d ? d = d.call(this, c.parameters, b) : e.test(d) && (d = a.validator.format(d.replace(e, "{$1}"), c.parameters)), d
7275 },
7276 formatAndAdd: function(a, b) {
7277 var c = this.defaultMessage(a, b);
7278 this.errorList.push({
7279 message: c,
7280 element: a,
7281 method: b.method
7282 }), this.errorMap[a.name] = c, this.submitted[a.name] = c
7283 },
7284 addWrapper: function(a) {
7285 return this.settings.wrapper && (a = a.add(a.parent(this.settings.wrapper))), a
7286 },
7287 defaultShowErrors: function() {
7288 var a, b, c;
7289 for (a = 0; this.errorList[a]; a++) c = this.errorList[a], this.settings.highlight && this.settings.highlight.call(this, c.element, this.settings.errorClass, this.settings.validClass), this.showLabel(c.element, c.message);
7290 if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)
7291 for (a = 0; this.successList[a]; a++) this.showLabel(this.successList[a]);
7292 if (this.settings.unhighlight)
7293 for (a = 0, b = this.validElements(); b[a]; a++) this.settings.unhighlight.call(this, b[a], this.settings.errorClass, this.settings.validClass);
7294 this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show()
7295 },
7296 validElements: function() {
7297 return this.currentElements.not(this.invalidElements())
7298 },
7299 invalidElements: function() {
7300 return a(this.errorList).map(function() {
7301 return this.element
7302 })
7303 },
7304 showLabel: function(b, c) {
7305 var d, e, f, g, h = this.errorsFor(b),
7306 i = this.idOrName(b),
7307 j = a(b).attr("aria-describedby");
7308 h.length ? (h.removeClass(this.settings.validClass).addClass(this.settings.errorClass), h.html(c)) : (h = a("<" + this.settings.errorElement + ">").attr("id", i + "-error").addClass(this.settings.errorClass).html(c || ""), d = h, this.settings.wrapper && (d = h.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(d) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, d, a(b)) : d.insertAfter(b), h.is("label") ? h.attr("for", i) : 0 === h.parents("label[for='" + this.escapeCssMeta(i) + "']").length && (f = h.attr("id"), j ? j.match(new RegExp("\\b" + this.escapeCssMeta(f) + "\\b")) || (j += " " + f) : j = f, a(b).attr("aria-describedby", j), e = this.groups[b.name], e && (g = this, a.each(g.groups, function(b, c) {
7309 c === e && a("[name='" + g.escapeCssMeta(b) + "']", g.currentForm).attr("aria-describedby", h.attr("id"))
7310 })))), !c && this.settings.success && (h.text(""), "string" == typeof this.settings.success ? h.addClass(this.settings.success) : this.settings.success(h, b)), this.toShow = this.toShow.add(h)
7311 },
7312 errorsFor: function(b) {
7313 var c = this.escapeCssMeta(this.idOrName(b)),
7314 d = a(b).attr("aria-describedby"),
7315 e = "label[for='" + c + "'], label[for='" + c + "'] *";
7316 return d && (e = e + ", #" + this.escapeCssMeta(d).replace(/\s+/g, ", #")), this.errors().filter(e)
7317 },
7318 escapeCssMeta: function(a) {
7319 return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g, "\\$1")
7320 },
7321 idOrName: function(a) {
7322 return this.groups[a.name] || (this.checkable(a) ? a.name : a.id || a.name)
7323 },
7324 validationTargetFor: function(b) {
7325 return this.checkable(b) && (b = this.findByName(b.name)), a(b).not(this.settings.ignore)[0]
7326 },
7327 checkable: function(a) {
7328 return /radio|checkbox/i.test(a.type)
7329 },
7330 findByName: function(b) {
7331 return a(this.currentForm).find("[name='" + this.escapeCssMeta(b) + "']")
7332 },
7333 getLength: function(b, c) {
7334 switch (c.nodeName.toLowerCase()) {
7335 case "select":
7336 return a("option:selected", c).length;
7337 case "input":
7338 if (this.checkable(c)) return this.findByName(c.name).filter(":checked").length
7339 }
7340 return b.length
7341 },
7342 depend: function(a, b) {
7343 return this.dependTypes[typeof a] ? this.dependTypes[typeof a](a, b) : !0
7344 },
7345 dependTypes: {
7346 "boolean": function(a) {
7347 return a
7348 },
7349 string: function(b, c) {
7350 return !!a(b, c.form).length
7351 },
7352 "function": function(a, b) {
7353 return a(b)
7354 }
7355 },
7356 optional: function(b) {
7357 var c = this.elementValue(b);
7358 return !a.validator.methods.required.call(this, c, b) && "dependency-mismatch"
7359 },
7360 startRequest: function(b) {
7361 this.pending[b.name] || (this.pendingRequest++, a(b).addClass(this.settings.pendingClass), this.pending[b.name] = !0)
7362 },
7363 stopRequest: function(b, c) {
7364 this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[b.name], a(b).removeClass(this.settings.pendingClass), c && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (a(this.currentForm).submit(), this.formSubmitted = !1) : !c && 0 === this.pendingRequest && this.formSubmitted && (a(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
7365 },
7366 previousValue: function(b, c) {
7367 return c = "string" == typeof c && c || "remote", a.data(b, "previousValue") || a.data(b, "previousValue", {
7368 old: null,
7369 valid: !0,
7370 message: this.defaultMessage(b, {
7371 method: c
7372 })
7373 })
7374 },
7375 destroy: function() {
7376 this.resetForm(), a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")
7377 }
7378 },
7379 classRuleSettings: {
7380 required: {
7381 required: !0
7382 },
7383 email: {
7384 email: !0
7385 },
7386 url: {
7387 url: !0
7388 },
7389 date: {
7390 date: !0
7391 },
7392 dateISO: {
7393 dateISO: !0
7394 },
7395 number: {
7396 number: !0
7397 },
7398 digits: {
7399 digits: !0
7400 },
7401 creditcard: {
7402 creditcard: !0
7403 }
7404 },
7405 addClassRules: function(b, c) {
7406 b.constructor === String ? this.classRuleSettings[b] = c : a.extend(this.classRuleSettings, b)
7407 },
7408 classRules: function(b) {
7409 var c = {},
7410 d = a(b).attr("class");
7411 return d && a.each(d.split(" "), function() {
7412 this in a.validator.classRuleSettings && a.extend(c, a.validator.classRuleSettings[this])
7413 }), c
7414 },
7415 normalizeAttributeRule: function(a, b, c, d) {
7416 /min|max|step/.test(c) && (null === b || /number|range|text/.test(b)) && (d = Number(d), isNaN(d) && (d = void 0)), d || 0 === d ? a[c] = d : b === c && "range" !== b && (a[c] = !0)
7417 },
7418 attributeRules: function(b) {
7419 var c, d, e = {},
7420 f = a(b),
7421 g = b.getAttribute("type");
7422 for (c in a.validator.methods) "required" === c ? (d = b.getAttribute(c), "" === d && (d = !0), d = !!d) : d = f.attr(c), this.normalizeAttributeRule(e, g, c, d);
7423 return e.maxlength && /-1|2147483647|524288/.test(e.maxlength) && delete e.maxlength, e
7424 },
7425 dataRules: function(b) {
7426 var c, d, e = {},
7427 f = a(b),
7428 g = b.getAttribute("type");
7429 for (c in a.validator.methods) d = f.data("rule" + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()), this.normalizeAttributeRule(e, g, c, d);
7430 return e
7431 },
7432 staticRules: function(b) {
7433 var c = {},
7434 d = a.data(b.form, "validator");
7435 return d.settings.rules && (c = a.validator.normalizeRule(d.settings.rules[b.name]) || {}), c
7436 },
7437 normalizeRules: function(b, c) {
7438 return a.each(b, function(d, e) {
7439 if (e === !1) return void delete b[d];
7440 if (e.param || e.depends) {
7441 var f = !0;
7442 switch (typeof e.depends) {
7443 case "string":
7444 f = !!a(e.depends, c.form).length;
7445 break;
7446 case "function":
7447 f = e.depends.call(c, c)
7448 }
7449 f ? b[d] = void 0 !== e.param ? e.param : !0 : (a.data(c.form, "validator").resetElements(a(c)), delete b[d])
7450 }
7451 }), a.each(b, function(d, e) {
7452 b[d] = a.isFunction(e) && "normalizer" !== d ? e(c) : e
7453 }), a.each(["minlength", "maxlength"], function() {
7454 b[this] && (b[this] = Number(b[this]))
7455 }), a.each(["rangelength", "range"], function() {
7456 var c;
7457 b[this] && (a.isArray(b[this]) ? b[this] = [Number(b[this][0]), Number(b[this][1])] : "string" == typeof b[this] && (c = b[this].replace(/[\[\]]/g, "").split(/[\s,]+/), b[this] = [Number(c[0]), Number(c[1])]))
7458 }), a.validator.autoCreateRanges && (null != b.min && null != b.max && (b.range = [b.min, b.max], delete b.min, delete b.max), null != b.minlength && null != b.maxlength && (b.rangelength = [b.minlength, b.maxlength], delete b.minlength, delete b.maxlength)), b
7459 },
7460 normalizeRule: function(b) {
7461 if ("string" == typeof b) {
7462 var c = {};
7463 a.each(b.split(/\s/), function() {
7464 c[this] = !0
7465 }), b = c
7466 }
7467 return b
7468 },
7469 addMethod: function(b, c, d) {
7470 a.validator.methods[b] = c, a.validator.messages[b] = void 0 !== d ? d : a.validator.messages[b], c.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b))
7471 },
7472 methods: {
7473 required: function(b, c, d) {
7474 if (!this.depend(d, c)) return "dependency-mismatch";
7475 if ("select" === c.nodeName.toLowerCase()) {
7476 var e = a(c).val();
7477 return e && e.length > 0
7478 }
7479 return this.checkable(c) ? this.getLength(b, c) > 0 : b.length > 0
7480 },
7481 email: function(a, b) {
7482 return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)
7483 },
7484 url: function(a, b) {
7485 return this.optional(b) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)
7486 },
7487 date: function(a, b) {
7488 return this.optional(b) || !/Invalid|NaN/.test(new Date(a).toString())
7489 },
7490 dateISO: function(a, b) {
7491 return this.optional(b) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)
7492 },
7493 number: function(a, b) {
7494 return this.optional(b) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)
7495 },
7496 digits: function(a, b) {
7497 return this.optional(b) || /^\d+$/.test(a)
7498 },
7499 minlength: function(b, c, d) {
7500 var e = a.isArray(b) ? b.length : this.getLength(b, c);
7501 return this.optional(c) || e >= d
7502 },
7503 maxlength: function(b, c, d) {
7504 var e = a.isArray(b) ? b.length : this.getLength(b, c);
7505 return this.optional(c) || d >= e
7506 },
7507 rangelength: function(b, c, d) {
7508 var e = a.isArray(b) ? b.length : this.getLength(b, c);
7509 return this.optional(c) || e >= d[0] && e <= d[1]
7510 },
7511 min: function(a, b, c) {
7512 return this.optional(b) || a >= c
7513 },
7514 max: function(a, b, c) {
7515 return this.optional(b) || c >= a
7516 },
7517 range: function(a, b, c) {
7518 return this.optional(b) || a >= c[0] && a <= c[1]
7519 },
7520 step: function(b, c, d) {
7521 var e, f = a(c).attr("type"),
7522 g = "Step attribute on input type " + f + " is not supported.",
7523 h = ["text", "number", "range"],
7524 i = new RegExp("\\b" + f + "\\b"),
7525 j = f && !i.test(h.join()),
7526 k = function(a) {
7527 var b = ("" + a).match(/(?:\.(\d+))?$/);
7528 return b && b[1] ? b[1].length : 0
7529 },
7530 l = function(a) {
7531 return Math.round(a * Math.pow(10, e))
7532 },
7533 m = !0;
7534 if (j) throw new Error(g);
7535 return e = k(d), (k(b) > e || l(b) % l(d) !== 0) && (m = !1), this.optional(c) || m
7536 },
7537 equalTo: function(b, c, d) {
7538 var e = a(d);
7539 return this.settings.onfocusout && e.not(".validate-equalTo-blur").length && e.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function() {
7540 a(c).valid()
7541 }), b === e.val()
7542 },
7543 remote: function(b, c, d, e) {
7544 if (this.optional(c)) return "dependency-mismatch";
7545 e = "string" == typeof e && e || "remote";
7546 var f, g, h, i = this.previousValue(c, e);
7547 return this.settings.messages[c.name] || (this.settings.messages[c.name] = {}), i.originalMessage = i.originalMessage || this.settings.messages[c.name][e], this.settings.messages[c.name][e] = i.message, d = "string" == typeof d && {
7548 url: d
7549 } || d, h = a.param(a.extend({
7550 data: b
7551 }, d.data)), i.old === h ? i.valid : (i.old = h, f = this, this.startRequest(c), g = {}, g[c.name] = b, a.ajax(a.extend(!0, {
7552 mode: "abort",
7553 port: "validate" + c.name,
7554 dataType: "json",
7555 data: g,
7556 context: f.currentForm,
7557 success: function(a) {
7558 var d, g, h, j = a === !0 || "true" === a;
7559 f.settings.messages[c.name][e] = i.originalMessage, j ? (h = f.formSubmitted, f.resetInternals(), f.toHide = f.errorsFor(c), f.formSubmitted = h, f.successList.push(c), f.invalid[c.name] = !1, f.showErrors()) : (d = {}, g = a || f.defaultMessage(c, {
7560 method: e,
7561 parameters: b
7562 }), d[c.name] = i.message = g, f.invalid[c.name] = !0, f.showErrors(d)), i.valid = j, f.stopRequest(c, j)
7563 }
7564 }, d)), "pending")
7565 }
7566 }
7567 });
7568 var b, c = {};
7569 a.ajaxPrefilter ? a.ajaxPrefilter(function(a, b, d) {
7570 var e = a.port;
7571 "abort" === a.mode && (c[e] && c[e].abort(), c[e] = d)
7572 }) : (b = a.ajax, a.ajax = function(d) {
7573 var e = ("mode" in d ? d : a.ajaxSettings).mode,
7574 f = ("port" in d ? d : a.ajaxSettings).port;
7575 return "abort" === e ? (c[f] && c[f].abort(), c[f] = b.apply(this, arguments), c[f]) : b.apply(this, arguments)
7576 })
7577 }),
7578 function(a) {
7579 var b = function() {
7580 "use strict";
7581 var a = "s",
7582 c = function(a) {
7583 var b = -a.getTimezoneOffset();
7584 return null !== b ? b : 0
7585 },
7586 d = function(a, b, c) {
7587 var d = new Date;
7588 return void 0 !== a && d.setFullYear(a), d.setMonth(b), d.setDate(c), d
7589 },
7590 e = function(a) {
7591 return c(d(a, 0, 2))
7592 },
7593 f = function(a) {
7594 return c(d(a, 5, 2))
7595 },
7596 g = function(a) {
7597 var b = a.getMonth() > 7,
7598 d = b ? f(a.getFullYear()) : e(a.getFullYear()),
7599 g = c(a),
7600 h = 0 > d,
7601 i = d - g;
7602 return h || b ? 0 !== i : 0 > i
7603 },
7604 h = function() {
7605 var b = e(),
7606 c = f(),
7607 d = b - c;
7608 return 0 > d ? b + ",1" : d > 0 ? c + ",1," + a : b + ",0"
7609 },
7610 i = function() {
7611 var a = h();
7612 return new b.TimeZone(b.olson.timezones[a])
7613 },
7614 j = function(a) {
7615 var b = new Date(2010, 6, 15, 1, 0, 0, 0),
7616 c = {
7617 "America/Denver": new Date(2011, 2, 13, 3, 0, 0, 0),
7618 "America/Mazatlan": new Date(2011, 3, 3, 3, 0, 0, 0),
7619 "America/Chicago": new Date(2011, 2, 13, 3, 0, 0, 0),
7620 "America/Mexico_City": new Date(2011, 3, 3, 3, 0, 0, 0),
7621 "America/Asuncion": new Date(2012, 9, 7, 3, 0, 0, 0),
7622 "America/Santiago": new Date(2012, 9, 3, 3, 0, 0, 0),
7623 "America/Campo_Grande": new Date(2012, 9, 21, 5, 0, 0, 0),
7624 "America/Montevideo": new Date(2011, 9, 2, 3, 0, 0, 0),
7625 "America/Sao_Paulo": new Date(2011, 9, 16, 5, 0, 0, 0),
7626 "America/Los_Angeles": new Date(2011, 2, 13, 8, 0, 0, 0),
7627 "America/Santa_Isabel": new Date(2011, 3, 5, 8, 0, 0, 0),
7628 "America/Havana": new Date(2012, 2, 10, 2, 0, 0, 0),
7629 "America/New_York": new Date(2012, 2, 10, 7, 0, 0, 0),
7630 "Europe/Helsinki": new Date(2013, 2, 31, 5, 0, 0, 0),
7631 "Pacific/Auckland": new Date(2011, 8, 26, 7, 0, 0, 0),
7632 "America/Halifax": new Date(2011, 2, 13, 6, 0, 0, 0),
7633 "America/Goose_Bay": new Date(2011, 2, 13, 2, 1, 0, 0),
7634 "America/Miquelon": new Date(2011, 2, 13, 5, 0, 0, 0),
7635 "America/Godthab": new Date(2011, 2, 27, 1, 0, 0, 0),
7636 "Europe/Moscow": b,
7637 "Asia/Amman": new Date(2013, 2, 29, 1, 0, 0, 0),
7638 "Asia/Beirut": new Date(2013, 2, 31, 2, 0, 0, 0),
7639 "Asia/Damascus": new Date(2013, 3, 6, 2, 0, 0, 0),
7640 "Asia/Jerusalem": new Date(2013, 2, 29, 5, 0, 0, 0),
7641 "Asia/Yekaterinburg": b,
7642 "Asia/Omsk": b,
7643 "Asia/Krasnoyarsk": b,
7644 "Asia/Irkutsk": b,
7645 "Asia/Yakutsk": b,
7646 "Asia/Vladivostok": b,
7647 "Asia/Baku": new Date(2013, 2, 31, 4, 0, 0),
7648 "Asia/Yerevan": new Date(2013, 2, 31, 3, 0, 0),
7649 "Asia/Kamchatka": b,
7650 "Asia/Gaza": new Date(2010, 2, 27, 4, 0, 0),
7651 "Africa/Cairo": new Date(2010, 4, 1, 3, 0, 0),
7652 "Europe/Minsk": b,
7653 "Pacific/Apia": new Date(2010, 10, 1, 1, 0, 0, 0),
7654 "Pacific/Fiji": new Date(2010, 11, 1, 0, 0, 0),
7655 "Australia/Perth": new Date(2008, 10, 1, 1, 0, 0, 0)
7656 };
7657 return c[a]
7658 };
7659 return {
7660 determine: i,
7661 date_is_dst: g,
7662 dst_start_for: j
7663 }
7664 }();
7665 b.TimeZone = function(a) {
7666 "use strict";
7667 var c = {
7668 "America/Denver": ["America/Denver", "America/Mazatlan"],
7669 "America/Chicago": ["America/Chicago", "America/Mexico_City"],
7670 "America/Santiago": ["America/Santiago", "America/Asuncion", "America/Campo_Grande"],
7671 "America/Montevideo": ["America/Montevideo", "America/Sao_Paulo"],
7672 "Asia/Beirut": ["Asia/Amman", "Asia/Jerusalem", "Asia/Beirut", "Europe/Helsinki", "Asia/Damascus"],
7673 "Pacific/Auckland": ["Pacific/Auckland", "Pacific/Fiji"],
7674 "America/Los_Angeles": ["America/Los_Angeles", "America/Santa_Isabel"],
7675 "America/New_York": ["America/Havana", "America/New_York"],
7676 "America/Halifax": ["America/Goose_Bay", "America/Halifax"],
7677 "America/Godthab": ["America/Miquelon", "America/Godthab"],
7678 "Asia/Dubai": ["Europe/Moscow"],
7679 "Asia/Dhaka": ["Asia/Yekaterinburg"],
7680 "Asia/Jakarta": ["Asia/Omsk"],
7681 "Asia/Shanghai": ["Asia/Krasnoyarsk", "Australia/Perth"],
7682 "Asia/Tokyo": ["Asia/Irkutsk"],
7683 "Australia/Brisbane": ["Asia/Yakutsk"],
7684 "Pacific/Noumea": ["Asia/Vladivostok"],
7685 "Pacific/Tarawa": ["Asia/Kamchatka", "Pacific/Fiji"],
7686 "Pacific/Tongatapu": ["Pacific/Apia"],
7687 "Asia/Baghdad": ["Europe/Minsk"],
7688 "Asia/Baku": ["Asia/Yerevan", "Asia/Baku"],
7689 "Africa/Johannesburg": ["Asia/Gaza", "Africa/Cairo"]
7690 },
7691 d = a,
7692 e = function() {
7693 for (var a = c[d], e = a.length, f = 0, g = a[0]; e > f; f += 1)
7694 if (g = a[f], b.date_is_dst(b.dst_start_for(g))) return void(d = g)
7695 },
7696 f = function() {
7697 return "undefined" != typeof c[d]
7698 };
7699 return f() && e(), {
7700 name: function() {
7701 return d
7702 }
7703 }
7704 }, b.olson = {}, b.olson.timezones = {
7705 "-720,0": "Pacific/Majuro",
7706 "-660,0": "Pacific/Pago_Pago",
7707 "-600,1": "America/Adak",
7708 "-600,0": "Pacific/Honolulu",
7709 "-570,0": "Pacific/Marquesas",
7710 "-540,0": "Pacific/Gambier",
7711 "-540,1": "America/Anchorage",
7712 "-480,1": "America/Los_Angeles",
7713 "-480,0": "Pacific/Pitcairn",
7714 "-420,0": "America/Phoenix",
7715 "-420,1": "America/Denver",
7716 "-360,0": "America/Guatemala",
7717 "-360,1": "America/Chicago",
7718 "-360,1,s": "Pacific/Easter",
7719 "-300,0": "America/Bogota",
7720 "-300,1": "America/New_York",
7721 "-270,0": "America/Caracas",
7722 "-240,1": "America/Halifax",
7723 "-240,0": "America/Santo_Domingo",
7724 "-240,1,s": "America/Santiago",
7725 "-210,1": "America/St_Johns",
7726 "-180,1": "America/Godthab",
7727 "-180,0": "America/Argentina/Buenos_Aires",
7728 "-180,1,s": "America/Montevideo",
7729 "-120,0": "America/Noronha",
7730 "-120,1": "America/Noronha",
7731 "-60,1": "Atlantic/Azores",
7732 "-60,0": "Atlantic/Cape_Verde",
7733 "0,0": "Etc/UTC",
7734 "0,1": "Europe/London",
7735 "60,1": "Europe/Berlin",
7736 "60,0": "Africa/Lagos",
7737 "60,1,s": "Africa/Windhoek",
7738 "120,1": "Asia/Beirut",
7739 "120,0": "Africa/Johannesburg",
7740 "180,0": "Asia/Baghdad",
7741 "180,1": "Europe/Moscow",
7742 "210,1": "Asia/Tehran",
7743 "240,0": "Asia/Dubai",
7744 "240,1": "Asia/Baku",
7745 "270,0": "Asia/Kabul",
7746 "300,1": "Asia/Yekaterinburg",
7747 "300,0": "Asia/Karachi",
7748 "330,0": "Asia/Kolkata",
7749 "345,0": "Asia/Kathmandu",
7750 "360,0": "Asia/Dhaka",
7751 "360,1": "Asia/Omsk",
7752 "390,0": "Asia/Rangoon",
7753 "420,1": "Asia/Krasnoyarsk",
7754 "420,0": "Asia/Jakarta",
7755 "480,0": "Asia/Shanghai",
7756 "480,1": "Asia/Irkutsk",
7757 "525,0": "Australia/Eucla",
7758 "525,1,s": "Australia/Eucla",
7759 "540,1": "Asia/Yakutsk",
7760 "540,0": "Asia/Tokyo",
7761 "570,0": "Australia/Darwin",
7762 "570,1,s": "Australia/Adelaide",
7763 "600,0": "Australia/Brisbane",
7764 "600,1": "Asia/Vladivostok",
7765 "600,1,s": "Australia/Sydney",
7766 "630,1,s": "Australia/Lord_Howe",
7767 "660,1": "Asia/Kamchatka",
7768 "660,0": "Pacific/Noumea",
7769 "690,0": "Pacific/Norfolk",
7770 "720,1,s": "Pacific/Auckland",
7771 "720,0": "Pacific/Tarawa",
7772 "765,1,s": "Pacific/Chatham",
7773 "780,0": "Pacific/Tongatapu",
7774 "780,1,s": "Pacific/Apia",
7775 "840,0": "Pacific/Kiritimati"
7776 }, "undefined" != typeof exports ? exports.jstz = b : a.jstz = b
7777 }(this),
7778 function(a, b) {
7779 "object" == typeof exports && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.moment = b()
7780 }(this, function() {
7781 "use strict";
7782
7783 function a() {
7784 return fd.apply(null, arguments)
7785 }
7786
7787 function b(a) {
7788 fd = a
7789 }
7790
7791 function c(a) {
7792 return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a)
7793 }
7794
7795 function d(a) {
7796 return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a)
7797 }
7798
7799 function e(a, b) {
7800 var c, d = [];
7801 for (c = 0; c < a.length; ++c) d.push(b(a[c], c));
7802 return d
7803 }
7804
7805 function f(a, b) {
7806 return Object.prototype.hasOwnProperty.call(a, b)
7807 }
7808
7809 function g(a, b) {
7810 for (var c in b) f(b, c) && (a[c] = b[c]);
7811 return f(b, "toString") && (a.toString = b.toString), f(b, "valueOf") && (a.valueOf = b.valueOf), a
7812 }
7813
7814 function h(a, b, c, d) {
7815 return Ja(a, b, c, d, !0).utc()
7816 }
7817
7818 function i() {
7819 return {
7820 empty: !1,
7821 unusedTokens: [],
7822 unusedInput: [],
7823 overflow: -2,
7824 charsLeftOver: 0,
7825 nullInput: !1,
7826 invalidMonth: null,
7827 invalidFormat: !1,
7828 userInvalidated: !1,
7829 iso: !1,
7830 parsedDateParts: [],
7831 meridiem: null
7832 }
7833 }
7834
7835 function j(a) {
7836 return null == a._pf && (a._pf = i()), a._pf
7837 }
7838
7839 function k(a) {
7840 if (null == a._isValid) {
7841 var b = j(a),
7842 c = gd.call(b.parsedDateParts, function(a) {
7843 return null != a
7844 });
7845 a._isValid = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || b.meridiem && c), a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour)
7846 }
7847 return a._isValid
7848 }
7849
7850 function l(a) {
7851 var b = h(NaN);
7852 return null != a ? g(j(b), a) : j(b).userInvalidated = !0, b
7853 }
7854
7855 function m(a) {
7856 return void 0 === a
7857 }
7858
7859 function n(a, b) {
7860 var c, d, e;
7861 if (m(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), m(b._i) || (a._i = b._i), m(b._f) || (a._f = b._f), m(b._l) || (a._l = b._l), m(b._strict) || (a._strict = b._strict), m(b._tzm) || (a._tzm = b._tzm), m(b._isUTC) || (a._isUTC = b._isUTC), m(b._offset) || (a._offset = b._offset), m(b._pf) || (a._pf = j(b)), m(b._locale) || (a._locale = b._locale), hd.length > 0)
7862 for (c in hd) d = hd[c], e = b[d], m(e) || (a[d] = e);
7863 return a
7864 }
7865
7866 function o(b) {
7867 n(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), id === !1 && (id = !0, a.updateOffset(this), id = !1)
7868 }
7869
7870 function p(a) {
7871 return a instanceof o || null != a && null != a._isAMomentObject
7872 }
7873
7874 function q(a) {
7875 return 0 > a ? Math.ceil(a) : Math.floor(a)
7876 }
7877
7878 function r(a) {
7879 var b = +a,
7880 c = 0;
7881 return 0 !== b && isFinite(b) && (c = q(b)), c
7882 }
7883
7884 function s(a, b, c) {
7885 var d, e = Math.min(a.length, b.length),
7886 f = Math.abs(a.length - b.length),
7887 g = 0;
7888 for (d = 0; e > d; d++)(c && a[d] !== b[d] || !c && r(a[d]) !== r(b[d])) && g++;
7889 return g + f
7890 }
7891
7892 function t(b) {
7893 a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b)
7894 }
7895
7896 function u(b, c) {
7897 var d = !0;
7898 return g(function() {
7899 return null != a.deprecationHandler && a.deprecationHandler(null, b), d && (t(b + "\nArguments: " + Array.prototype.slice.call(arguments).join(", ") + "\n" + (new Error).stack), d = !1), c.apply(this, arguments)
7900 }, c)
7901 }
7902
7903 function v(b, c) {
7904 null != a.deprecationHandler && a.deprecationHandler(b, c), jd[b] || (t(c), jd[b] = !0)
7905 }
7906
7907 function w(a) {
7908 return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a)
7909 }
7910
7911 function x(a) {
7912 return "[object Object]" === Object.prototype.toString.call(a)
7913 }
7914
7915 function y(a) {
7916 var b, c;
7917 for (c in a) b = a[c], w(b) ? this[c] = b : this["_" + c] = b;
7918 this._config = a, this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source)
7919 }
7920
7921 function z(a, b) {
7922 var c, d = g({}, a);
7923 for (c in b) f(b, c) && (x(a[c]) && x(b[c]) ? (d[c] = {}, g(d[c], a[c]), g(d[c], b[c])) : null != b[c] ? d[c] = b[c] : delete d[c]);
7924 return d
7925 }
7926
7927 function A(a) {
7928 null != a && this.set(a)
7929 }
7930
7931 function B(a) {
7932 return a ? a.toLowerCase().replace("_", "-") : a
7933 }
7934
7935 function C(a) {
7936 for (var b, c, d, e, f = 0; f < a.length;) {
7937 for (e = B(a[f]).split("-"), b = e.length, c = B(a[f + 1]), c = c ? c.split("-") : null; b > 0;) {
7938 if (d = D(e.slice(0, b).join("-"))) return d;
7939 if (c && c.length >= b && s(e, c, !0) >= b - 1) break;
7940 b--
7941 }
7942 f++
7943 }
7944 return null
7945 }
7946
7947 function D(a) {
7948 var b = null;
7949 if (!nd[a] && "undefined" != typeof module && module && module.exports) try {
7950 b = ld._abbr, require("./locale/" + a), E(b)
7951 } catch (c) {}
7952 return nd[a]
7953 }
7954
7955 function E(a, b) {
7956 var c;
7957 return a && (c = m(b) ? H(a) : F(a, b), c && (ld = c)), ld._abbr
7958 }
7959
7960 function F(a, b) {
7961 return null !== b ? (b.abbr = a, null != nd[a] ? (v("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"), b = z(nd[a]._config, b)) : null != b.parentLocale && (null != nd[b.parentLocale] ? b = z(nd[b.parentLocale]._config, b) : v("parentLocaleUndefined", "specified parentLocale is not defined yet")), nd[a] = new A(b), E(a), nd[a]) : (delete nd[a], null)
7962 }
7963
7964 function G(a, b) {
7965 if (null != b) {
7966 var c;
7967 null != nd[a] && (b = z(nd[a]._config, b)), c = new A(b), c.parentLocale = nd[a], nd[a] = c, E(a)
7968 } else null != nd[a] && (null != nd[a].parentLocale ? nd[a] = nd[a].parentLocale : null != nd[a] && delete nd[a]);
7969 return nd[a]
7970 }
7971
7972 function H(a) {
7973 var b;
7974 if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return ld;
7975 if (!c(a)) {
7976 if (b = D(a)) return b;
7977 a = [a]
7978 }
7979 return C(a)
7980 }
7981
7982 function I() {
7983 return kd(nd)
7984 }
7985
7986 function J(a, b) {
7987 var c = a.toLowerCase();
7988 od[c] = od[c + "s"] = od[b] = a
7989 }
7990
7991 function K(a) {
7992 return "string" == typeof a ? od[a] || od[a.toLowerCase()] : void 0
7993 }
7994
7995 function L(a) {
7996 var b, c, d = {};
7997 for (c in a) f(a, c) && (b = K(c), b && (d[b] = a[c]));
7998 return d
7999 }
8000
8001 function M(b, c) {
8002 return function(d) {
8003 return null != d ? (O(this, b, d), a.updateOffset(this, c), this) : N(this, b)
8004 }
8005 }
8006
8007 function N(a, b) {
8008 return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + b]() : NaN
8009 }
8010
8011 function O(a, b, c) {
8012 a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + b](c)
8013 }
8014
8015 function P(a, b) {
8016 var c;
8017 if ("object" == typeof a)
8018 for (c in a) this.set(c, a[c]);
8019 else if (a = K(a), w(this[a])) return this[a](b);
8020 return this
8021 }
8022
8023 function Q(a, b, c) {
8024 var d = "" + Math.abs(a),
8025 e = b - d.length,
8026 f = a >= 0;
8027 return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d
8028 }
8029
8030 function R(a, b, c, d) {
8031 var e = d;
8032 "string" == typeof d && (e = function() {
8033 return this[d]()
8034 }), a && (sd[a] = e), b && (sd[b[0]] = function() {
8035 return Q(e.apply(this, arguments), b[1], b[2])
8036 }), c && (sd[c] = function() {
8037 return this.localeData().ordinal(e.apply(this, arguments), a)
8038 })
8039 }
8040
8041 function S(a) {
8042 return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "")
8043 }
8044
8045 function T(a) {
8046 var b, c, d = a.match(pd);
8047 for (b = 0, c = d.length; c > b; b++) sd[d[b]] ? d[b] = sd[d[b]] : d[b] = S(d[b]);
8048 return function(b) {
8049 var e, f = "";
8050 for (e = 0; c > e; e++) f += d[e] instanceof Function ? d[e].call(b, a) : d[e];
8051 return f
8052 }
8053 }
8054
8055 function U(a, b) {
8056 return a.isValid() ? (b = V(b, a.localeData()), rd[b] = rd[b] || T(b), rd[b](a)) : a.localeData().invalidDate()
8057 }
8058
8059 function V(a, b) {
8060 function c(a) {
8061 return b.longDateFormat(a) || a
8062 }
8063 var d = 5;
8064 for (qd.lastIndex = 0; d >= 0 && qd.test(a);) a = a.replace(qd, c), qd.lastIndex = 0, d -= 1;
8065 return a
8066 }
8067
8068 function W(a, b, c) {
8069 Kd[a] = w(b) ? b : function(a, d) {
8070 return a && c ? c : b
8071 }
8072 }
8073
8074 function X(a, b) {
8075 return f(Kd, a) ? Kd[a](b._strict, b._locale) : new RegExp(Y(a))
8076 }
8077
8078 function Y(a) {
8079 return Z(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, b, c, d, e) {
8080 return b || c || d || e
8081 }))
8082 }
8083
8084 function Z(a) {
8085 return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
8086 }
8087
8088 function $(a, b) {
8089 var c, d = b;
8090 for ("string" == typeof a && (a = [a]), "number" == typeof b && (d = function(a, c) {
8091 c[b] = r(a)
8092 }), c = 0; c < a.length; c++) Ld[a[c]] = d
8093 }
8094
8095 function _(a, b) {
8096 $(a, function(a, c, d, e) {
8097 d._w = d._w || {}, b(a, d._w, d, e)
8098 })
8099 }
8100
8101 function aa(a, b, c) {
8102 null != b && f(Ld, a) && Ld[a](b, c._a, c, a)
8103 }
8104
8105 function ba(a, b) {
8106 return new Date(Date.UTC(a, b + 1, 0)).getUTCDate()
8107 }
8108
8109 function ca(a, b) {
8110 return c(this._months) ? this._months[a.month()] : this._months[Vd.test(b) ? "format" : "standalone"][a.month()]
8111 }
8112
8113 function da(a, b) {
8114 return c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[Vd.test(b) ? "format" : "standalone"][a.month()]
8115 }
8116
8117 function ea(a, b, c) {
8118 var d, e, f, g = a.toLocaleLowerCase();
8119 if (!this._monthsParse)
8120 for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; 12 > d; ++d) f = h([2e3, d]), this._shortMonthsParse[d] = this.monthsShort(f, "").toLocaleLowerCase(), this._longMonthsParse[d] = this.months(f, "").toLocaleLowerCase();
8121 return c ? "MMM" === b ? (e = md.call(this._shortMonthsParse, g), -1 !== e ? e : null) : (e = md.call(this._longMonthsParse, g), -1 !== e ? e : null) : "MMM" === b ? (e = md.call(this._shortMonthsParse, g), -1 !== e ? e : (e = md.call(this._longMonthsParse, g), -1 !== e ? e : null)) : (e = md.call(this._longMonthsParse, g), -1 !== e ? e : (e = md.call(this._shortMonthsParse, g), -1 !== e ? e : null))
8122 }
8123
8124 function fa(a, b, c) {
8125 var d, e, f;
8126 if (this._monthsParseExact) return ea.call(this, a, b, c);
8127 for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; 12 > d; d++) {
8128 if (e = h([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) return d;
8129 if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) return d;
8130 if (!c && this._monthsParse[d].test(a)) return d
8131 }
8132 }
8133
8134 function ga(a, b) {
8135 var c;
8136 if (!a.isValid()) return a;
8137 if ("string" == typeof b)
8138 if (/^\d+$/.test(b)) b = r(b);
8139 else if (b = a.localeData().monthsParse(b), "number" != typeof b) return a;
8140 return c = Math.min(a.date(), ba(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a
8141 }
8142
8143 function ha(b) {
8144 return null != b ? (ga(this, b), a.updateOffset(this, !0), this) : N(this, "Month")
8145 }
8146
8147 function ia() {
8148 return ba(this.year(), this.month())
8149 }
8150
8151 function ja(a) {
8152 return this._monthsParseExact ? (f(this, "_monthsRegex") || la.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex
8153 }
8154
8155 function ka(a) {
8156 return this._monthsParseExact ? (f(this, "_monthsRegex") || la.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex
8157 }
8158
8159 function la() {
8160 function a(a, b) {
8161 return b.length - a.length
8162 }
8163 var b, c, d = [],
8164 e = [],
8165 f = [];
8166 for (b = 0; 12 > b; b++) c = h([2e3, b]), d.push(this.monthsShort(c, "")), e.push(this.months(c, "")), f.push(this.months(c, "")), f.push(this.monthsShort(c, ""));
8167 for (d.sort(a), e.sort(a), f.sort(a), b = 0; 12 > b; b++) d[b] = Z(d[b]), e[b] = Z(e[b]), f[b] = Z(f[b]);
8168 this._monthsRegex = new RegExp("^(" + f.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + e.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + d.join("|") + ")", "i")
8169 }
8170
8171 function ma(a) {
8172 var b, c = a._a;
8173 return c && -2 === j(a).overflow && (b = c[Nd] < 0 || c[Nd] > 11 ? Nd : c[Od] < 1 || c[Od] > ba(c[Md], c[Nd]) ? Od : c[Pd] < 0 || c[Pd] > 24 || 24 === c[Pd] && (0 !== c[Qd] || 0 !== c[Rd] || 0 !== c[Sd]) ? Pd : c[Qd] < 0 || c[Qd] > 59 ? Qd : c[Rd] < 0 || c[Rd] > 59 ? Rd : c[Sd] < 0 || c[Sd] > 999 ? Sd : -1, j(a)._overflowDayOfYear && (Md > b || b > Od) && (b = Od), j(a)._overflowWeeks && -1 === b && (b = Td), j(a)._overflowWeekday && -1 === b && (b = Ud), j(a).overflow = b), a
8174 }
8175
8176 function na(a) {
8177 var b, c, d, e, f, g, h = a._i,
8178 i = $d.exec(h) || _d.exec(h);
8179 if (i) {
8180 for (j(a).iso = !0, b = 0, c = be.length; c > b; b++)
8181 if (be[b][1].exec(i[1])) {
8182 e = be[b][0], d = be[b][2] !== !1;
8183 break
8184 }
8185 if (null == e) return void(a._isValid = !1);
8186 if (i[3]) {
8187 for (b = 0, c = ce.length; c > b; b++)
8188 if (ce[b][1].exec(i[3])) {
8189 f = (i[2] || " ") + ce[b][0];
8190 break
8191 }
8192 if (null == f) return void(a._isValid = !1)
8193 }
8194 if (!d && null != f) return void(a._isValid = !1);
8195 if (i[4]) {
8196 if (!ae.exec(i[4])) return void(a._isValid = !1);
8197 g = "Z"
8198 }
8199 a._f = e + (f || "") + (g || ""), Ca(a)
8200 } else a._isValid = !1
8201 }
8202
8203 function oa(b) {
8204 var c = de.exec(b._i);
8205 return null !== c ? void(b._d = new Date(+c[1])) : (na(b), void(b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))
8206 }
8207
8208 function pa(a, b, c, d, e, f, g) {
8209 var h = new Date(a, b, c, d, e, f, g);
8210 return 100 > a && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h
8211 }
8212
8213 function qa(a) {
8214 var b = new Date(Date.UTC.apply(null, arguments));
8215 return 100 > a && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b
8216 }
8217
8218 function ra(a) {
8219 return sa(a) ? 366 : 365
8220 }
8221
8222 function sa(a) {
8223 return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0
8224 }
8225
8226 function ta() {
8227 return sa(this.year())
8228 }
8229
8230 function ua(a, b, c) {
8231 var d = 7 + b - c,
8232 e = (7 + qa(a, 0, d).getUTCDay() - b) % 7;
8233 return -e + d - 1
8234 }
8235
8236 function va(a, b, c, d, e) {
8237 var f, g, h = (7 + c - d) % 7,
8238 i = ua(a, d, e),
8239 j = 1 + 7 * (b - 1) + h + i;
8240 return 0 >= j ? (f = a - 1, g = ra(f) + j) : j > ra(a) ? (f = a + 1, g = j - ra(a)) : (f = a, g = j), {
8241 year: f,
8242 dayOfYear: g
8243 }
8244 }
8245
8246 function wa(a, b, c) {
8247 var d, e, f = ua(a.year(), b, c),
8248 g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1;
8249 return 1 > g ? (e = a.year() - 1, d = g + xa(e, b, c)) : g > xa(a.year(), b, c) ? (d = g - xa(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g), {
8250 week: d,
8251 year: e
8252 }
8253 }
8254
8255 function xa(a, b, c) {
8256 var d = ua(a, b, c),
8257 e = ua(a + 1, b, c);
8258 return (ra(a) - d + e) / 7
8259 }
8260
8261 function ya(a, b, c) {
8262 return null != a ? a : null != b ? b : c
8263 }
8264
8265 function za(b) {
8266 var c = new Date(a.now());
8267 return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]
8268 }
8269
8270 function Aa(a) {
8271 var b, c, d, e, f = [];
8272 if (!a._d) {
8273 for (d = za(a), a._w && null == a._a[Od] && null == a._a[Nd] && Ba(a), a._dayOfYear && (e = ya(a._a[Md], d[Md]), a._dayOfYear > ra(e) && (j(a)._overflowDayOfYear = !0), c = qa(e, 0, a._dayOfYear), a._a[Nd] = c.getUTCMonth(), a._a[Od] = c.getUTCDate()), b = 0; 3 > b && null == a._a[b]; ++b) a._a[b] = f[b] = d[b];
8274 for (; 7 > b; b++) a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b];
8275 24 === a._a[Pd] && 0 === a._a[Qd] && 0 === a._a[Rd] && 0 === a._a[Sd] && (a._nextDay = !0, a._a[Pd] = 0), a._d = (a._useUTC ? qa : pa).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[Pd] = 24)
8276 }
8277 }
8278
8279 function Ba(a) {
8280 var b, c, d, e, f, g, h, i;
8281 b = a._w, null != b.GG || null != b.W || null != b.E ? (f = 1, g = 4, c = ya(b.GG, a._a[Md], wa(Ka(), 1, 4).year), d = ya(b.W, 1), e = ya(b.E, 1), (1 > e || e > 7) && (i = !0)) : (f = a._locale._week.dow, g = a._locale._week.doy, c = ya(b.gg, a._a[Md], wa(Ka(), f, g).year), d = ya(b.w, 1), null != b.d ? (e = b.d, (0 > e || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f), 1 > d || d > xa(c, f, g) ? j(a)._overflowWeeks = !0 : null != i ? j(a)._overflowWeekday = !0 : (h = va(c, d, e, f, g), a._a[Md] = h.year, a._dayOfYear = h.dayOfYear)
8282 }
8283
8284 function Ca(b) {
8285 if (b._f === a.ISO_8601) return void na(b);
8286 b._a = [], j(b).empty = !0;
8287 var c, d, e, f, g, h = "" + b._i,
8288 i = h.length,
8289 k = 0;
8290 for (e = V(b._f, b._locale).match(pd) || [], c = 0; c < e.length; c++) f = e[c], d = (h.match(X(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && j(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), k += d.length), sd[f] ? (d ? j(b).empty = !1 : j(b).unusedTokens.push(f), aa(f, d, b)) : b._strict && !d && j(b).unusedTokens.push(f);
8291 j(b).charsLeftOver = i - k, h.length > 0 && j(b).unusedInput.push(h), j(b).bigHour === !0 && b._a[Pd] <= 12 && b._a[Pd] > 0 && (j(b).bigHour = void 0), j(b).parsedDateParts = b._a.slice(0), j(b).meridiem = b._meridiem, b._a[Pd] = Da(b._locale, b._a[Pd], b._meridiem), Aa(b), ma(b)
8292 }
8293
8294 function Da(a, b, c) {
8295 var d;
8296 return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b) : b
8297 }
8298
8299 function Ea(a) {
8300 var b, c, d, e, f;
8301 if (0 === a._f.length) return j(a).invalidFormat = !0, void(a._d = new Date(NaN));
8302 for (e = 0; e < a._f.length; e++) f = 0, b = n({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], Ca(b), k(b) && (f += j(b).charsLeftOver, f += 10 * j(b).unusedTokens.length, j(b).score = f, (null == d || d > f) && (d = f, c = b));
8303 g(a, c || b)
8304 }
8305
8306 function Fa(a) {
8307 if (!a._d) {
8308 var b = L(a._i);
8309 a._a = e([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function(a) {
8310 return a && parseInt(a, 10)
8311 }), Aa(a)
8312 }
8313 }
8314
8315 function Ga(a) {
8316 var b = new o(ma(Ha(a)));
8317 return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b
8318 }
8319
8320 function Ha(a) {
8321 var b = a._i,
8322 e = a._f;
8323 return a._locale = a._locale || H(a._l), null === b || void 0 === e && "" === b ? l({
8324 nullInput: !0
8325 }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), p(b) ? new o(ma(b)) : (c(e) ? Ea(a) : e ? Ca(a) : d(b) ? a._d = b : Ia(a), k(a) || (a._d = null), a))
8326 }
8327
8328 function Ia(b) {
8329 var f = b._i;
8330 void 0 === f ? b._d = new Date(a.now()) : d(f) ? b._d = new Date(f.valueOf()) : "string" == typeof f ? oa(b) : c(f) ? (b._a = e(f.slice(0), function(a) {
8331 return parseInt(a, 10)
8332 }), Aa(b)) : "object" == typeof f ? Fa(b) : "number" == typeof f ? b._d = new Date(f) : a.createFromInputFallback(b)
8333 }
8334
8335 function Ja(a, b, c, d, e) {
8336 var f = {};
8337 return "boolean" == typeof c && (d = c, c = void 0), f._isAMomentObject = !0, f._useUTC = f._isUTC = e, f._l = c, f._i = a, f._f = b, f._strict = d, Ga(f)
8338 }
8339
8340 function Ka(a, b, c, d) {
8341 return Ja(a, b, c, d, !1)
8342 }
8343
8344 function La(a, b) {
8345 var d, e;
8346 if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) return Ka();
8347 for (d = b[0], e = 1; e < b.length; ++e) b[e].isValid() && !b[e][a](d) || (d = b[e]);
8348 return d
8349 }
8350
8351 function Ma() {
8352 var a = [].slice.call(arguments, 0);
8353 return La("isBefore", a)
8354 }
8355
8356 function Na() {
8357 var a = [].slice.call(arguments, 0);
8358 return La("isAfter", a)
8359 }
8360
8361 function Oa(a) {
8362 var b = L(a),
8363 c = b.year || 0,
8364 d = b.quarter || 0,
8365 e = b.month || 0,
8366 f = b.week || 0,
8367 g = b.day || 0,
8368 h = b.hour || 0,
8369 i = b.minute || 0,
8370 j = b.second || 0,
8371 k = b.millisecond || 0;
8372 this._milliseconds = +k + 1e3 * j + 6e4 * i + 1e3 * h * 60 * 60, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = H(), this._bubble()
8373 }
8374
8375 function Pa(a) {
8376 return a instanceof Oa
8377 }
8378
8379 function Qa(a, b) {
8380 R(a, 0, 0, function() {
8381 var a = this.utcOffset(),
8382 c = "+";
8383 return 0 > a && (a = -a, c = "-"), c + Q(~~(a / 60), 2) + b + Q(~~a % 60, 2)
8384 })
8385 }
8386
8387 function Ra(a, b) {
8388 var c = (b || "").match(a) || [],
8389 d = c[c.length - 1] || [],
8390 e = (d + "").match(ie) || ["-", 0, 0],
8391 f = +(60 * e[1]) + r(e[2]);
8392 return "+" === e[0] ? f : -f
8393 }
8394
8395 function Sa(b, c) {
8396 var e, f;
8397 return c._isUTC ? (e = c.clone(), f = (p(b) || d(b) ? b.valueOf() : Ka(b).valueOf()) - e.valueOf(), e._d.setTime(e._d.valueOf() + f), a.updateOffset(e, !1), e) : Ka(b).local()
8398 }
8399
8400 function Ta(a) {
8401 return 15 * -Math.round(a._d.getTimezoneOffset() / 15)
8402 }
8403
8404 function Ua(b, c) {
8405 var d, e = this._offset || 0;
8406 return this.isValid() ? null != b ? ("string" == typeof b ? b = Ra(Hd, b) : Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Ta(this)), this._offset = b, this._isUTC = !0, null != d && this.add(d, "m"), e !== b && (!c || this._changeInProgress ? jb(this, db(b - e, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this) : this._isUTC ? e : Ta(this) : null != b ? this : NaN
8407 }
8408
8409 function Va(a, b) {
8410 return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset()
8411 }
8412
8413 function Wa(a) {
8414 return this.utcOffset(0, a)
8415 }
8416
8417 function Xa(a) {
8418 return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Ta(this), "m")), this
8419 }
8420
8421 function Ya() {
8422 return this._tzm ? this.utcOffset(this._tzm) : "string" == typeof this._i && this.utcOffset(Ra(Gd, this._i)), this
8423 }
8424
8425 function Za(a) {
8426 return this.isValid() ? (a = a ? Ka(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0) : !1
8427 }
8428
8429 function $a() {
8430 return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
8431 }
8432
8433 function _a() {
8434 if (!m(this._isDSTShifted)) return this._isDSTShifted;
8435 var a = {};
8436 if (n(a, this), a = Ha(a), a._a) {
8437 var b = a._isUTC ? h(a._a) : Ka(a._a);
8438 this._isDSTShifted = this.isValid() && s(a._a, b.toArray()) > 0
8439 } else this._isDSTShifted = !1;
8440 return this._isDSTShifted
8441 }
8442
8443 function ab() {
8444 return this.isValid() ? !this._isUTC : !1
8445 }
8446
8447 function bb() {
8448 return this.isValid() ? this._isUTC : !1
8449 }
8450
8451 function cb() {
8452 return this.isValid() ? this._isUTC && 0 === this._offset : !1
8453 }
8454
8455 function db(a, b) {
8456 var c, d, e, g = a,
8457 h = null;
8458 return Pa(a) ? g = {
8459 ms: a._milliseconds,
8460 d: a._days,
8461 M: a._months
8462 } : "number" == typeof a ? (g = {}, b ? g[b] = a : g.milliseconds = a) : (h = je.exec(a)) ? (c = "-" === h[1] ? -1 : 1, g = {
8463 y: 0,
8464 d: r(h[Od]) * c,
8465 h: r(h[Pd]) * c,
8466 m: r(h[Qd]) * c,
8467 s: r(h[Rd]) * c,
8468 ms: r(h[Sd]) * c
8469 }) : (h = ke.exec(a)) ? (c = "-" === h[1] ? -1 : 1, g = {
8470 y: eb(h[2], c),
8471 M: eb(h[3], c),
8472 w: eb(h[4], c),
8473 d: eb(h[5], c),
8474 h: eb(h[6], c),
8475 m: eb(h[7], c),
8476 s: eb(h[8], c)
8477 }) : null == g ? g = {} : "object" == typeof g && ("from" in g || "to" in g) && (e = gb(Ka(g.from), Ka(g.to)),
8478 g = {}, g.ms = e.milliseconds, g.M = e.months), d = new Oa(g), Pa(a) && f(a, "_locale") && (d._locale = a._locale), d
8479 }
8480
8481 function eb(a, b) {
8482 var c = a && parseFloat(a.replace(",", "."));
8483 return (isNaN(c) ? 0 : c) * b
8484 }
8485
8486 function fb(a, b) {
8487 var c = {
8488 milliseconds: 0,
8489 months: 0
8490 };
8491 return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c
8492 }
8493
8494 function gb(a, b) {
8495 var c;
8496 return a.isValid() && b.isValid() ? (b = Sa(b, a), a.isBefore(b) ? c = fb(a, b) : (c = fb(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c) : {
8497 milliseconds: 0,
8498 months: 0
8499 }
8500 }
8501
8502 function hb(a) {
8503 return 0 > a ? -1 * Math.round(-1 * a) : Math.round(a)
8504 }
8505
8506 function ib(a, b) {
8507 return function(c, d) {
8508 var e, f;
8509 return null === d || isNaN(+d) || (v(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period)."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = db(c, d), jb(this, e, a), this
8510 }
8511 }
8512
8513 function jb(b, c, d, e) {
8514 var f = c._milliseconds,
8515 g = hb(c._days),
8516 h = hb(c._months);
8517 b.isValid() && (e = null == e ? !0 : e, f && b._d.setTime(b._d.valueOf() + f * d), g && O(b, "Date", N(b, "Date") + g * d), h && ga(b, N(b, "Month") + h * d), e && a.updateOffset(b, g || h))
8518 }
8519
8520 function kb(a, b) {
8521 var c = a || Ka(),
8522 d = Sa(c, this).startOf("day"),
8523 e = this.diff(d, "days", !0),
8524 f = -6 > e ? "sameElse" : -1 > e ? "lastWeek" : 0 > e ? "lastDay" : 1 > e ? "sameDay" : 2 > e ? "nextDay" : 7 > e ? "nextWeek" : "sameElse",
8525 g = b && (w(b[f]) ? b[f]() : b[f]);
8526 return this.format(g || this.localeData().calendar(f, this, Ka(c)))
8527 }
8528
8529 function lb() {
8530 return new o(this)
8531 }
8532
8533 function mb(a, b) {
8534 var c = p(a) ? a : Ka(a);
8535 return this.isValid() && c.isValid() ? (b = K(m(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf()) : !1
8536 }
8537
8538 function nb(a, b) {
8539 var c = p(a) ? a : Ka(a);
8540 return this.isValid() && c.isValid() ? (b = K(m(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf()) : !1
8541 }
8542
8543 function ob(a, b, c, d) {
8544 return d = d || "()", ("(" === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (")" === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c))
8545 }
8546
8547 function pb(a, b) {
8548 var c, d = p(a) ? a : Ka(a);
8549 return this.isValid() && d.isValid() ? (b = K(b || "millisecond"), "millisecond" === b ? this.valueOf() === d.valueOf() : (c = d.valueOf(), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf())) : !1
8550 }
8551
8552 function qb(a, b) {
8553 return this.isSame(a, b) || this.isAfter(a, b)
8554 }
8555
8556 function rb(a, b) {
8557 return this.isSame(a, b) || this.isBefore(a, b)
8558 }
8559
8560 function sb(a, b, c) {
8561 var d, e, f, g;
8562 return this.isValid() ? (d = Sa(a, this), d.isValid() ? (e = 6e4 * (d.utcOffset() - this.utcOffset()), b = K(b), "year" === b || "month" === b || "quarter" === b ? (g = tb(this, d), "quarter" === b ? g /= 3 : "year" === b && (g /= 12)) : (f = this - d, g = "second" === b ? f / 1e3 : "minute" === b ? f / 6e4 : "hour" === b ? f / 36e5 : "day" === b ? (f - e) / 864e5 : "week" === b ? (f - e) / 6048e5 : f), c ? g : q(g)) : NaN) : NaN
8563 }
8564
8565 function tb(a, b) {
8566 var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()),
8567 f = a.clone().add(e, "months");
8568 return 0 > b - f ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d) || 0
8569 }
8570
8571 function ub() {
8572 return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
8573 }
8574
8575 function vb() {
8576 var a = this.clone().utc();
8577 return 0 < a.year() && a.year() <= 9999 ? w(Date.prototype.toISOString) ? this.toDate().toISOString() : U(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : U(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
8578 }
8579
8580 function wb(b) {
8581 b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat);
8582 var c = U(this, b);
8583 return this.localeData().postformat(c)
8584 }
8585
8586 function xb(a, b) {
8587 return this.isValid() && (p(a) && a.isValid() || Ka(a).isValid()) ? db({
8588 to: this,
8589 from: a
8590 }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
8591 }
8592
8593 function yb(a) {
8594 return this.from(Ka(), a)
8595 }
8596
8597 function zb(a, b) {
8598 return this.isValid() && (p(a) && a.isValid() || Ka(a).isValid()) ? db({
8599 from: this,
8600 to: a
8601 }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate()
8602 }
8603
8604 function Ab(a) {
8605 return this.to(Ka(), a)
8606 }
8607
8608 function Bb(a) {
8609 var b;
8610 return void 0 === a ? this._locale._abbr : (b = H(a), null != b && (this._locale = b), this)
8611 }
8612
8613 function Cb() {
8614 return this._locale
8615 }
8616
8617 function Db(a) {
8618 switch (a = K(a)) {
8619 case "year":
8620 this.month(0);
8621 case "quarter":
8622 case "month":
8623 this.date(1);
8624 case "week":
8625 case "isoWeek":
8626 case "day":
8627 case "date":
8628 this.hours(0);
8629 case "hour":
8630 this.minutes(0);
8631 case "minute":
8632 this.seconds(0);
8633 case "second":
8634 this.milliseconds(0)
8635 }
8636 return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this
8637 }
8638
8639 function Eb(a) {
8640 return a = K(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms"))
8641 }
8642
8643 function Fb() {
8644 return this._d.valueOf() - 6e4 * (this._offset || 0)
8645 }
8646
8647 function Gb() {
8648 return Math.floor(this.valueOf() / 1e3)
8649 }
8650
8651 function Hb() {
8652 return this._offset ? new Date(this.valueOf()) : this._d
8653 }
8654
8655 function Ib() {
8656 var a = this;
8657 return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]
8658 }
8659
8660 function Jb() {
8661 var a = this;
8662 return {
8663 years: a.year(),
8664 months: a.month(),
8665 date: a.date(),
8666 hours: a.hours(),
8667 minutes: a.minutes(),
8668 seconds: a.seconds(),
8669 milliseconds: a.milliseconds()
8670 }
8671 }
8672
8673 function Kb() {
8674 return this.isValid() ? this.toISOString() : null
8675 }
8676
8677 function Lb() {
8678 return k(this)
8679 }
8680
8681 function Mb() {
8682 return g({}, j(this))
8683 }
8684
8685 function Nb() {
8686 return j(this).overflow
8687 }
8688
8689 function Ob() {
8690 return {
8691 input: this._i,
8692 format: this._f,
8693 locale: this._locale,
8694 isUTC: this._isUTC,
8695 strict: this._strict
8696 }
8697 }
8698
8699 function Pb(a, b) {
8700 R(0, [a, a.length], 0, b)
8701 }
8702
8703 function Qb(a) {
8704 return Ub.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
8705 }
8706
8707 function Rb(a) {
8708 return Ub.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4)
8709 }
8710
8711 function Sb() {
8712 return xa(this.year(), 1, 4)
8713 }
8714
8715 function Tb() {
8716 var a = this.localeData()._week;
8717 return xa(this.year(), a.dow, a.doy)
8718 }
8719
8720 function Ub(a, b, c, d, e) {
8721 var f;
8722 return null == a ? wa(this, d, e).year : (f = xa(a, d, e), b > f && (b = f), Vb.call(this, a, b, c, d, e))
8723 }
8724
8725 function Vb(a, b, c, d, e) {
8726 var f = va(a, b, c, d, e),
8727 g = qa(f.year, 0, f.dayOfYear);
8728 return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this
8729 }
8730
8731 function Wb(a) {
8732 return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
8733 }
8734
8735 function Xb(a) {
8736 return wa(a, this._week.dow, this._week.doy).week
8737 }
8738
8739 function Yb() {
8740 return this._week.dow
8741 }
8742
8743 function Zb() {
8744 return this._week.doy
8745 }
8746
8747 function $b(a) {
8748 var b = this.localeData().week(this);
8749 return null == a ? b : this.add(7 * (a - b), "d")
8750 }
8751
8752 function _b(a) {
8753 var b = wa(this, 1, 4).week;
8754 return null == a ? b : this.add(7 * (a - b), "d")
8755 }
8756
8757 function ac(a, b) {
8758 return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10)
8759 }
8760
8761 function bc(a, b) {
8762 return c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? "format" : "standalone"][a.day()]
8763 }
8764
8765 function cc(a) {
8766 return this._weekdaysShort[a.day()]
8767 }
8768
8769 function dc(a) {
8770 return this._weekdaysMin[a.day()]
8771 }
8772
8773 function ec(a, b, c) {
8774 var d, e, f, g = a.toLocaleLowerCase();
8775 if (!this._weekdaysParse)
8776 for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; 7 > d; ++d) f = h([2e3, 1]).day(d), this._minWeekdaysParse[d] = this.weekdaysMin(f, "").toLocaleLowerCase(), this._shortWeekdaysParse[d] = this.weekdaysShort(f, "").toLocaleLowerCase(), this._weekdaysParse[d] = this.weekdays(f, "").toLocaleLowerCase();
8777 return c ? "dddd" === b ? (e = md.call(this._weekdaysParse, g), -1 !== e ? e : null) : "ddd" === b ? (e = md.call(this._shortWeekdaysParse, g), -1 !== e ? e : null) : (e = md.call(this._minWeekdaysParse, g), -1 !== e ? e : null) : "dddd" === b ? (e = md.call(this._weekdaysParse, g), -1 !== e ? e : (e = md.call(this._shortWeekdaysParse, g), -1 !== e ? e : (e = md.call(this._minWeekdaysParse, g), -1 !== e ? e : null))) : "ddd" === b ? (e = md.call(this._shortWeekdaysParse, g), -1 !== e ? e : (e = md.call(this._weekdaysParse, g), -1 !== e ? e : (e = md.call(this._minWeekdaysParse, g), -1 !== e ? e : null))) : (e = md.call(this._minWeekdaysParse, g), -1 !== e ? e : (e = md.call(this._weekdaysParse, g), -1 !== e ? e : (e = md.call(this._shortWeekdaysParse, g), -1 !== e ? e : null)))
8778 }
8779
8780 function fc(a, b, c) {
8781 var d, e, f;
8782 if (this._weekdaysParseExact) return ec.call(this, a, b, c);
8783 for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), d = 0; 7 > d; d++) {
8784 if (e = h([2e3, 1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp("^" + this.weekdays(e, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[d] = new RegExp("^" + this.weekdaysShort(e, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[d] = new RegExp("^" + this.weekdaysMin(e, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[d] || (f = "^" + this.weekdays(e, "") + "|^" + this.weekdaysShort(e, "") + "|^" + this.weekdaysMin(e, ""), this._weekdaysParse[d] = new RegExp(f.replace(".", ""), "i")), c && "dddd" === b && this._fullWeekdaysParse[d].test(a)) return d;
8785 if (c && "ddd" === b && this._shortWeekdaysParse[d].test(a)) return d;
8786 if (c && "dd" === b && this._minWeekdaysParse[d].test(a)) return d;
8787 if (!c && this._weekdaysParse[d].test(a)) return d
8788 }
8789 }
8790
8791 function gc(a) {
8792 if (!this.isValid()) return null != a ? this : NaN;
8793 var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
8794 return null != a ? (a = ac(a, this.localeData()), this.add(a - b, "d")) : b
8795 }
8796
8797 function hc(a) {
8798 if (!this.isValid()) return null != a ? this : NaN;
8799 var b = (this.day() + 7 - this.localeData()._week.dow) % 7;
8800 return null == a ? b : this.add(a - b, "d")
8801 }
8802
8803 function ic(a) {
8804 return this.isValid() ? null == a ? this.day() || 7 : this.day(this.day() % 7 ? a : a - 7) : null != a ? this : NaN
8805 }
8806
8807 function jc(a) {
8808 return this._weekdaysParseExact ? (f(this, "_weekdaysRegex") || mc.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex
8809 }
8810
8811 function kc(a) {
8812 return this._weekdaysParseExact ? (f(this, "_weekdaysRegex") || mc.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex
8813 }
8814
8815 function lc(a) {
8816 return this._weekdaysParseExact ? (f(this, "_weekdaysRegex") || mc.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex
8817 }
8818
8819 function mc() {
8820 function a(a, b) {
8821 return b.length - a.length
8822 }
8823 var b, c, d, e, f, g = [],
8824 i = [],
8825 j = [],
8826 k = [];
8827 for (b = 0; 7 > b; b++) c = h([2e3, 1]).day(b), d = this.weekdaysMin(c, ""), e = this.weekdaysShort(c, ""), f = this.weekdays(c, ""), g.push(d), i.push(e), j.push(f), k.push(d), k.push(e), k.push(f);
8828 for (g.sort(a), i.sort(a), j.sort(a), k.sort(a), b = 0; 7 > b; b++) i[b] = Z(i[b]), j[b] = Z(j[b]), k[b] = Z(k[b]);
8829 this._weekdaysRegex = new RegExp("^(" + k.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + j.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + g.join("|") + ")", "i")
8830 }
8831
8832 function nc(a) {
8833 var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
8834 return null == a ? b : this.add(a - b, "d")
8835 }
8836
8837 function oc() {
8838 return this.hours() % 12 || 12
8839 }
8840
8841 function pc() {
8842 return this.hours() || 24
8843 }
8844
8845 function qc(a, b) {
8846 R(a, 0, 0, function() {
8847 return this.localeData().meridiem(this.hours(), this.minutes(), b)
8848 })
8849 }
8850
8851 function rc(a, b) {
8852 return b._meridiemParse
8853 }
8854
8855 function sc(a) {
8856 return "p" === (a + "").toLowerCase().charAt(0)
8857 }
8858
8859 function tc(a, b, c) {
8860 return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"
8861 }
8862
8863 function uc(a, b) {
8864 b[Sd] = r(1e3 * ("0." + a))
8865 }
8866
8867 function vc() {
8868 return this._isUTC ? "UTC" : ""
8869 }
8870
8871 function wc() {
8872 return this._isUTC ? "Coordinated Universal Time" : ""
8873 }
8874
8875 function xc(a) {
8876 return Ka(1e3 * a)
8877 }
8878
8879 function yc() {
8880 return Ka.apply(null, arguments).parseZone()
8881 }
8882
8883 function zc(a, b, c) {
8884 var d = this._calendar[a];
8885 return w(d) ? d.call(b, c) : d
8886 }
8887
8888 function Ac(a) {
8889 var b = this._longDateFormat[a],
8890 c = this._longDateFormat[a.toUpperCase()];
8891 return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function(a) {
8892 return a.slice(1)
8893 }), this._longDateFormat[a])
8894 }
8895
8896 function Bc() {
8897 return this._invalidDate
8898 }
8899
8900 function Cc(a) {
8901 return this._ordinal.replace("%d", a)
8902 }
8903
8904 function Dc(a) {
8905 return a
8906 }
8907
8908 function Ec(a, b, c, d) {
8909 var e = this._relativeTime[c];
8910 return w(e) ? e(a, b, c, d) : e.replace(/%d/i, a)
8911 }
8912
8913 function Fc(a, b) {
8914 var c = this._relativeTime[a > 0 ? "future" : "past"];
8915 return w(c) ? c(b) : c.replace(/%s/i, b)
8916 }
8917
8918 function Gc(a, b, c, d) {
8919 var e = H(),
8920 f = h().set(d, b);
8921 return e[c](f, a)
8922 }
8923
8924 function Hc(a, b, c) {
8925 if ("number" == typeof a && (b = a, a = void 0), a = a || "", null != b) return Gc(a, b, c, "month");
8926 var d, e = [];
8927 for (d = 0; 12 > d; d++) e[d] = Gc(a, d, c, "month");
8928 return e
8929 }
8930
8931 function Ic(a, b, c, d) {
8932 "boolean" == typeof a ? ("number" == typeof b && (c = b, b = void 0), b = b || "") : (b = a, c = b, a = !1, "number" == typeof b && (c = b, b = void 0), b = b || "");
8933 var e = H(),
8934 f = a ? e._week.dow : 0;
8935 if (null != c) return Gc(b, (c + f) % 7, d, "day");
8936 var g, h = [];
8937 for (g = 0; 7 > g; g++) h[g] = Gc(b, (g + f) % 7, d, "day");
8938 return h
8939 }
8940
8941 function Jc(a, b) {
8942 return Hc(a, b, "months")
8943 }
8944
8945 function Kc(a, b) {
8946 return Hc(a, b, "monthsShort")
8947 }
8948
8949 function Lc(a, b, c) {
8950 return Ic(a, b, c, "weekdays")
8951 }
8952
8953 function Mc(a, b, c) {
8954 return Ic(a, b, c, "weekdaysShort")
8955 }
8956
8957 function Nc(a, b, c) {
8958 return Ic(a, b, c, "weekdaysMin")
8959 }
8960
8961 function Oc() {
8962 var a = this._data;
8963 return this._milliseconds = Le(this._milliseconds), this._days = Le(this._days), this._months = Le(this._months), a.milliseconds = Le(a.milliseconds), a.seconds = Le(a.seconds), a.minutes = Le(a.minutes), a.hours = Le(a.hours), a.months = Le(a.months), a.years = Le(a.years), this
8964 }
8965
8966 function Pc(a, b, c, d) {
8967 var e = db(b, c);
8968 return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble()
8969 }
8970
8971 function Qc(a, b) {
8972 return Pc(this, a, b, 1)
8973 }
8974
8975 function Rc(a, b) {
8976 return Pc(this, a, b, -1)
8977 }
8978
8979 function Sc(a) {
8980 return 0 > a ? Math.floor(a) : Math.ceil(a)
8981 }
8982
8983 function Tc() {
8984 var a, b, c, d, e, f = this._milliseconds,
8985 g = this._days,
8986 h = this._months,
8987 i = this._data;
8988 return f >= 0 && g >= 0 && h >= 0 || 0 >= f && 0 >= g && 0 >= h || (f += 864e5 * Sc(Vc(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = q(f / 1e3), i.seconds = a % 60, b = q(a / 60), i.minutes = b % 60, c = q(b / 60), i.hours = c % 24, g += q(c / 24), e = q(Uc(g)), h += e, g -= Sc(Vc(e)), d = q(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this
8989 }
8990
8991 function Uc(a) {
8992 return 4800 * a / 146097
8993 }
8994
8995 function Vc(a) {
8996 return 146097 * a / 4800
8997 }
8998
8999 function Wc(a) {
9000 var b, c, d = this._milliseconds;
9001 if (a = K(a), "month" === a || "year" === a) return b = this._days + d / 864e5, c = this._months + Uc(b), "month" === a ? c : c / 12;
9002 switch (b = this._days + Math.round(Vc(this._months)), a) {
9003 case "week":
9004 return b / 7 + d / 6048e5;
9005 case "day":
9006 return b + d / 864e5;
9007 case "hour":
9008 return 24 * b + d / 36e5;
9009 case "minute":
9010 return 1440 * b + d / 6e4;
9011 case "second":
9012 return 86400 * b + d / 1e3;
9013 case "millisecond":
9014 return Math.floor(864e5 * b) + d;
9015 default:
9016 throw new Error("Unknown unit " + a)
9017 }
9018 }
9019
9020 function Xc() {
9021 return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * r(this._months / 12)
9022 }
9023
9024 function Yc(a) {
9025 return function() {
9026 return this.as(a)
9027 }
9028 }
9029
9030 function Zc(a) {
9031 return a = K(a), this[a + "s"]()
9032 }
9033
9034 function $c(a) {
9035 return function() {
9036 return this._data[a]
9037 }
9038 }
9039
9040 function _c() {
9041 return q(this.days() / 7)
9042 }
9043
9044 function ad(a, b, c, d, e) {
9045 return e.relativeTime(b || 1, !!c, a, d)
9046 }
9047
9048 function bd(a, b, c) {
9049 var d = db(a).abs(),
9050 e = _e(d.as("s")),
9051 f = _e(d.as("m")),
9052 g = _e(d.as("h")),
9053 h = _e(d.as("d")),
9054 i = _e(d.as("M")),
9055 j = _e(d.as("y")),
9056 k = e < af.s && ["s", e] || 1 >= f && ["m"] || f < af.m && ["mm", f] || 1 >= g && ["h"] || g < af.h && ["hh", g] || 1 >= h && ["d"] || h < af.d && ["dd", h] || 1 >= i && ["M"] || i < af.M && ["MM", i] || 1 >= j && ["y"] || ["yy", j];
9057 return k[2] = b, k[3] = +a > 0, k[4] = c, ad.apply(null, k)
9058 }
9059
9060 function cd(a, b) {
9061 return void 0 === af[a] ? !1 : void 0 === b ? af[a] : (af[a] = b, !0)
9062 }
9063
9064 function dd(a) {
9065 var b = this.localeData(),
9066 c = bd(this, !a, b);
9067 return a && (c = b.pastFuture(+this, c)), b.postformat(c)
9068 }
9069
9070 function ed() {
9071 var a, b, c, d = bf(this._milliseconds) / 1e3,
9072 e = bf(this._days),
9073 f = bf(this._months);
9074 a = q(d / 60), b = q(a / 60), d %= 60, a %= 60, c = q(f / 12), f %= 12;
9075 var g = c,
9076 h = f,
9077 i = e,
9078 j = b,
9079 k = a,
9080 l = d,
9081 m = this.asSeconds();
9082 return m ? (0 > m ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"
9083 }
9084 var fd, gd;
9085 gd = Array.prototype.some ? Array.prototype.some : function(a) {
9086 for (var b = Object(this), c = b.length >>> 0, d = 0; c > d; d++)
9087 if (d in b && a.call(this, b[d], d, b)) return !0;
9088 return !1
9089 };
9090 var hd = a.momentProperties = [],
9091 id = !1,
9092 jd = {};
9093 a.suppressDeprecationWarnings = !1, a.deprecationHandler = null;
9094 var kd;
9095 kd = Object.keys ? Object.keys : function(a) {
9096 var b, c = [];
9097 for (b in a) f(a, b) && c.push(b);
9098 return c
9099 };
9100 var ld, md, nd = {},
9101 od = {},
9102 pd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
9103 qd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
9104 rd = {},
9105 sd = {},
9106 td = /\d/,
9107 ud = /\d\d/,
9108 vd = /\d{3}/,
9109 wd = /\d{4}/,
9110 xd = /[+-]?\d{6}/,
9111 yd = /\d\d?/,
9112 zd = /\d\d\d\d?/,
9113 Ad = /\d\d\d\d\d\d?/,
9114 Bd = /\d{1,3}/,
9115 Cd = /\d{1,4}/,
9116 Dd = /[+-]?\d{1,6}/,
9117 Ed = /\d+/,
9118 Fd = /[+-]?\d+/,
9119 Gd = /Z|[+-]\d\d:?\d\d/gi,
9120 Hd = /Z|[+-]\d\d(?::?\d\d)?/gi,
9121 Id = /[+-]?\d+(\.\d{1,3})?/,
9122 Jd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
9123 Kd = {},
9124 Ld = {},
9125 Md = 0,
9126 Nd = 1,
9127 Od = 2,
9128 Pd = 3,
9129 Qd = 4,
9130 Rd = 5,
9131 Sd = 6,
9132 Td = 7,
9133 Ud = 8;
9134 md = Array.prototype.indexOf ? Array.prototype.indexOf : function(a) {
9135 var b;
9136 for (b = 0; b < this.length; ++b)
9137 if (this[b] === a) return b;
9138 return -1
9139 }, R("M", ["MM", 2], "Mo", function() {
9140 return this.month() + 1
9141 }), R("MMM", 0, 0, function(a) {
9142 return this.localeData().monthsShort(this, a)
9143 }), R("MMMM", 0, 0, function(a) {
9144 return this.localeData().months(this, a)
9145 }), J("month", "M"), W("M", yd), W("MM", yd, ud), W("MMM", function(a, b) {
9146 return b.monthsShortRegex(a)
9147 }), W("MMMM", function(a, b) {
9148 return b.monthsRegex(a)
9149 }), $(["M", "MM"], function(a, b) {
9150 b[Nd] = r(a) - 1
9151 }), $(["MMM", "MMMM"], function(a, b, c, d) {
9152 var e = c._locale.monthsParse(a, d, c._strict);
9153 null != e ? b[Nd] = e : j(c).invalidMonth = a
9154 });
9155 var Vd = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,
9156 Wd = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
9157 Xd = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
9158 Yd = Jd,
9159 Zd = Jd,
9160 $d = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
9161 _d = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,
9162 ae = /Z|[+-]\d\d(?::?\d\d)?/,
9163 be = [
9164 ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/],
9165 ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/],
9166 ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/],
9167 ["GGGG-[W]WW", /\d{4}-W\d\d/, !1],
9168 ["YYYY-DDD", /\d{4}-\d{3}/],
9169 ["YYYY-MM", /\d{4}-\d\d/, !1],
9170 ["YYYYYYMMDD", /[+-]\d{10}/],
9171 ["YYYYMMDD", /\d{8}/],
9172 ["GGGG[W]WWE", /\d{4}W\d{3}/],
9173 ["GGGG[W]WW", /\d{4}W\d{2}/, !1],
9174 ["YYYYDDD", /\d{7}/]
9175 ],
9176 ce = [
9177 ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/],
9178 ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/],
9179 ["HH:mm:ss", /\d\d:\d\d:\d\d/],
9180 ["HH:mm", /\d\d:\d\d/],
9181 ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/],
9182 ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/],
9183 ["HHmmss", /\d\d\d\d\d\d/],
9184 ["HHmm", /\d\d\d\d/],
9185 ["HH", /\d\d/]
9186 ],
9187 de = /^\/?Date\((\-?\d+)/i;
9188 a.createFromInputFallback = u("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.", function(a) {
9189 a._d = new Date(a._i + (a._useUTC ? " UTC" : ""))
9190 }), R("Y", 0, 0, function() {
9191 var a = this.year();
9192 return 9999 >= a ? "" + a : "+" + a
9193 }), R(0, ["YY", 2], 0, function() {
9194 return this.year() % 100
9195 }), R(0, ["YYYY", 4], 0, "year"), R(0, ["YYYYY", 5], 0, "year"), R(0, ["YYYYYY", 6, !0], 0, "year"), J("year", "y"), W("Y", Fd), W("YY", yd, ud), W("YYYY", Cd, wd), W("YYYYY", Dd, xd), W("YYYYYY", Dd, xd), $(["YYYYY", "YYYYYY"], Md), $("YYYY", function(b, c) {
9196 c[Md] = 2 === b.length ? a.parseTwoDigitYear(b) : r(b)
9197 }), $("YY", function(b, c) {
9198 c[Md] = a.parseTwoDigitYear(b)
9199 }), $("Y", function(a, b) {
9200 b[Md] = parseInt(a, 10)
9201 }), a.parseTwoDigitYear = function(a) {
9202 return r(a) + (r(a) > 68 ? 1900 : 2e3)
9203 };
9204 var ee = M("FullYear", !0);
9205 a.ISO_8601 = function() {};
9206 var fe = u("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548", function() {
9207 var a = Ka.apply(null, arguments);
9208 return this.isValid() && a.isValid() ? this > a ? this : a : l()
9209 }),
9210 ge = u("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548", function() {
9211 var a = Ka.apply(null, arguments);
9212 return this.isValid() && a.isValid() ? a > this ? this : a : l()
9213 }),
9214 he = function() {
9215 return Date.now ? Date.now() : +new Date
9216 };
9217 Qa("Z", ":"), Qa("ZZ", ""), W("Z", Hd), W("ZZ", Hd), $(["Z", "ZZ"], function(a, b, c) {
9218 c._useUTC = !0, c._tzm = Ra(Hd, a)
9219 });
9220 var ie = /([\+\-]|\d\d)/gi;
9221 a.updateOffset = function() {};
9222 var je = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,
9223 ke = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
9224 db.fn = Oa.prototype;
9225 var le = ib(1, "add"),
9226 me = ib(-1, "subtract");
9227 a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
9228 var ne = u("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) {
9229 return void 0 === a ? this.localeData() : this.locale(a)
9230 });
9231 R(0, ["gg", 2], 0, function() {
9232 return this.weekYear() % 100
9233 }), R(0, ["GG", 2], 0, function() {
9234 return this.isoWeekYear() % 100
9235 }), Pb("gggg", "weekYear"), Pb("ggggg", "weekYear"), Pb("GGGG", "isoWeekYear"), Pb("GGGGG", "isoWeekYear"), J("weekYear", "gg"), J("isoWeekYear", "GG"), W("G", Fd), W("g", Fd), W("GG", yd, ud), W("gg", yd, ud), W("GGGG", Cd, wd), W("gggg", Cd, wd), W("GGGGG", Dd, xd), W("ggggg", Dd, xd), _(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, b, c, d) {
9236 b[d.substr(0, 2)] = r(a)
9237 }), _(["gg", "GG"], function(b, c, d, e) {
9238 c[e] = a.parseTwoDigitYear(b)
9239 }), R("Q", 0, "Qo", "quarter"), J("quarter", "Q"), W("Q", td), $("Q", function(a, b) {
9240 b[Nd] = 3 * (r(a) - 1)
9241 }), R("w", ["ww", 2], "wo", "week"), R("W", ["WW", 2], "Wo", "isoWeek"), J("week", "w"), J("isoWeek", "W"), W("w", yd), W("ww", yd, ud), W("W", yd), W("WW", yd, ud), _(["w", "ww", "W", "WW"], function(a, b, c, d) {
9242 b[d.substr(0, 1)] = r(a)
9243 });
9244 var oe = {
9245 dow: 0,
9246 doy: 6
9247 };
9248 R("D", ["DD", 2], "Do", "date"), J("date", "D"), W("D", yd), W("DD", yd, ud), W("Do", function(a, b) {
9249 return a ? b._ordinalParse : b._ordinalParseLenient
9250 }), $(["D", "DD"], Od), $("Do", function(a, b) {
9251 b[Od] = r(a.match(yd)[0], 10)
9252 });
9253 var pe = M("Date", !0);
9254 R("d", 0, "do", "day"), R("dd", 0, 0, function(a) {
9255 return this.localeData().weekdaysMin(this, a)
9256 }), R("ddd", 0, 0, function(a) {
9257 return this.localeData().weekdaysShort(this, a)
9258 }), R("dddd", 0, 0, function(a) {
9259 return this.localeData().weekdays(this, a)
9260 }), R("e", 0, 0, "weekday"), R("E", 0, 0, "isoWeekday"), J("day", "d"), J("weekday", "e"), J("isoWeekday", "E"), W("d", yd), W("e", yd), W("E", yd), W("dd", function(a, b) {
9261 return b.weekdaysMinRegex(a)
9262 }), W("ddd", function(a, b) {
9263 return b.weekdaysShortRegex(a)
9264 }), W("dddd", function(a, b) {
9265 return b.weekdaysRegex(a)
9266 }), _(["dd", "ddd", "dddd"], function(a, b, c, d) {
9267 var e = c._locale.weekdaysParse(a, d, c._strict);
9268 null != e ? b.d = e : j(c).invalidWeekday = a
9269 }), _(["d", "e", "E"], function(a, b, c, d) {
9270 b[d] = r(a)
9271 });
9272 var qe = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
9273 re = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
9274 se = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
9275 te = Jd,
9276 ue = Jd,
9277 ve = Jd;
9278 R("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), J("dayOfYear", "DDD"), W("DDD", Bd), W("DDDD", vd), $(["DDD", "DDDD"], function(a, b, c) {
9279 c._dayOfYear = r(a)
9280 }), R("H", ["HH", 2], 0, "hour"), R("h", ["hh", 2], 0, oc), R("k", ["kk", 2], 0, pc), R("hmm", 0, 0, function() {
9281 return "" + oc.apply(this) + Q(this.minutes(), 2)
9282 }), R("hmmss", 0, 0, function() {
9283 return "" + oc.apply(this) + Q(this.minutes(), 2) + Q(this.seconds(), 2)
9284 }), R("Hmm", 0, 0, function() {
9285 return "" + this.hours() + Q(this.minutes(), 2)
9286 }), R("Hmmss", 0, 0, function() {
9287 return "" + this.hours() + Q(this.minutes(), 2) + Q(this.seconds(), 2)
9288 }), qc("a", !0), qc("A", !1), J("hour", "h"), W("a", rc), W("A", rc), W("H", yd), W("h", yd), W("HH", yd, ud), W("hh", yd, ud), W("hmm", zd), W("hmmss", Ad), W("Hmm", zd), W("Hmmss", Ad), $(["H", "HH"], Pd), $(["a", "A"], function(a, b, c) {
9289 c._isPm = c._locale.isPM(a), c._meridiem = a
9290 }), $(["h", "hh"], function(a, b, c) {
9291 b[Pd] = r(a), j(c).bigHour = !0
9292 }), $("hmm", function(a, b, c) {
9293 var d = a.length - 2;
9294 b[Pd] = r(a.substr(0, d)), b[Qd] = r(a.substr(d)), j(c).bigHour = !0
9295 }), $("hmmss", function(a, b, c) {
9296 var d = a.length - 4,
9297 e = a.length - 2;
9298 b[Pd] = r(a.substr(0, d)), b[Qd] = r(a.substr(d, 2)), b[Rd] = r(a.substr(e)), j(c).bigHour = !0
9299 }), $("Hmm", function(a, b, c) {
9300 var d = a.length - 2;
9301 b[Pd] = r(a.substr(0, d)), b[Qd] = r(a.substr(d))
9302 }), $("Hmmss", function(a, b, c) {
9303 var d = a.length - 4,
9304 e = a.length - 2;
9305 b[Pd] = r(a.substr(0, d)), b[Qd] = r(a.substr(d, 2)), b[Rd] = r(a.substr(e))
9306 });
9307 var we = /[ap]\.?m?\.?/i,
9308 xe = M("Hours", !0);
9309 R("m", ["mm", 2], 0, "minute"), J("minute", "m"), W("m", yd), W("mm", yd, ud), $(["m", "mm"], Qd);
9310 var ye = M("Minutes", !1);
9311 R("s", ["ss", 2], 0, "second"), J("second", "s"), W("s", yd), W("ss", yd, ud), $(["s", "ss"], Rd);
9312 var ze = M("Seconds", !1);
9313 R("S", 0, 0, function() {
9314 return ~~(this.millisecond() / 100)
9315 }), R(0, ["SS", 2], 0, function() {
9316 return ~~(this.millisecond() / 10)
9317 }), R(0, ["SSS", 3], 0, "millisecond"), R(0, ["SSSS", 4], 0, function() {
9318 return 10 * this.millisecond()
9319 }), R(0, ["SSSSS", 5], 0, function() {
9320 return 100 * this.millisecond()
9321 }), R(0, ["SSSSSS", 6], 0, function() {
9322 return 1e3 * this.millisecond()
9323 }), R(0, ["SSSSSSS", 7], 0, function() {
9324 return 1e4 * this.millisecond()
9325 }), R(0, ["SSSSSSSS", 8], 0, function() {
9326 return 1e5 * this.millisecond()
9327 }), R(0, ["SSSSSSSSS", 9], 0, function() {
9328 return 1e6 * this.millisecond()
9329 }), J("millisecond", "ms"), W("S", Bd, td), W("SS", Bd, ud), W("SSS", Bd, vd);
9330 var Ae;
9331 for (Ae = "SSSS"; Ae.length <= 9; Ae += "S") W(Ae, Ed);
9332 for (Ae = "S"; Ae.length <= 9; Ae += "S") $(Ae, uc);
9333 var Be = M("Milliseconds", !1);
9334 R("z", 0, 0, "zoneAbbr"), R("zz", 0, 0, "zoneName");
9335 var Ce = o.prototype;
9336 Ce.add = le, Ce.calendar = kb, Ce.clone = lb, Ce.diff = sb, Ce.endOf = Eb, Ce.format = wb, Ce.from = xb, Ce.fromNow = yb, Ce.to = zb, Ce.toNow = Ab, Ce.get = P, Ce.invalidAt = Nb, Ce.isAfter = mb, Ce.isBefore = nb, Ce.isBetween = ob, Ce.isSame = pb, Ce.isSameOrAfter = qb, Ce.isSameOrBefore = rb, Ce.isValid = Lb, Ce.lang = ne, Ce.locale = Bb, Ce.localeData = Cb, Ce.max = ge, Ce.min = fe, Ce.parsingFlags = Mb, Ce.set = P, Ce.startOf = Db, Ce.subtract = me, Ce.toArray = Ib, Ce.toObject = Jb, Ce.toDate = Hb, Ce.toISOString = vb, Ce.toJSON = Kb, Ce.toString = ub, Ce.unix = Gb, Ce.valueOf = Fb, Ce.creationData = Ob, Ce.year = ee, Ce.isLeapYear = ta, Ce.weekYear = Qb, Ce.isoWeekYear = Rb, Ce.quarter = Ce.quarters = Wb, Ce.month = ha, Ce.daysInMonth = ia, Ce.week = Ce.weeks = $b, Ce.isoWeek = Ce.isoWeeks = _b, Ce.weeksInYear = Tb, Ce.isoWeeksInYear = Sb, Ce.date = pe, Ce.day = Ce.days = gc, Ce.weekday = hc, Ce.isoWeekday = ic, Ce.dayOfYear = nc, Ce.hour = Ce.hours = xe, Ce.minute = Ce.minutes = ye, Ce.second = Ce.seconds = ze, Ce.millisecond = Ce.milliseconds = Be, Ce.utcOffset = Ua, Ce.utc = Wa, Ce.local = Xa, Ce.parseZone = Ya, Ce.hasAlignedHourOffset = Za, Ce.isDST = $a, Ce.isDSTShifted = _a, Ce.isLocal = ab, Ce.isUtcOffset = bb, Ce.isUtc = cb, Ce.isUTC = cb, Ce.zoneAbbr = vc, Ce.zoneName = wc, Ce.dates = u("dates accessor is deprecated. Use date instead.", pe), Ce.months = u("months accessor is deprecated. Use month instead", ha), Ce.years = u("years accessor is deprecated. Use year instead", ee), Ce.zone = u("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779", Va);
9337 var De = Ce,
9338 Ee = {
9339 sameDay: "[Today at] LT",
9340 nextDay: "[Tomorrow at] LT",
9341 nextWeek: "dddd [at] LT",
9342 lastDay: "[Yesterday at] LT",
9343 lastWeek: "[Last] dddd [at] LT",
9344 sameElse: "L"
9345 },
9346 Fe = {
9347 LTS: "h:mm:ss A",
9348 LT: "h:mm A",
9349 L: "MM/DD/YYYY",
9350 LL: "MMMM D, YYYY",
9351 LLL: "MMMM D, YYYY h:mm A",
9352 LLLL: "dddd, MMMM D, YYYY h:mm A"
9353 },
9354 Ge = "Invalid date",
9355 He = "%d",
9356 Ie = /\d{1,2}/,
9357 Je = {
9358 future: "in %s",
9359 past: "%s ago",
9360 s: "a few seconds",
9361 m: "a minute",
9362 mm: "%d minutes",
9363 h: "an hour",
9364 hh: "%d hours",
9365 d: "a day",
9366 dd: "%d days",
9367 M: "a month",
9368 MM: "%d months",
9369 y: "a year",
9370 yy: "%d years"
9371 },
9372 Ke = A.prototype;
9373 Ke._calendar = Ee, Ke.calendar = zc, Ke._longDateFormat = Fe, Ke.longDateFormat = Ac, Ke._invalidDate = Ge, Ke.invalidDate = Bc, Ke._ordinal = He, Ke.ordinal = Cc, Ke._ordinalParse = Ie, Ke.preparse = Dc, Ke.postformat = Dc, Ke._relativeTime = Je, Ke.relativeTime = Ec, Ke.pastFuture = Fc, Ke.set = y, Ke.months = ca, Ke._months = Wd, Ke.monthsShort = da, Ke._monthsShort = Xd, Ke.monthsParse = fa, Ke._monthsRegex = Zd, Ke.monthsRegex = ka, Ke._monthsShortRegex = Yd, Ke.monthsShortRegex = ja, Ke.week = Xb, Ke._week = oe, Ke.firstDayOfYear = Zb, Ke.firstDayOfWeek = Yb, Ke.weekdays = bc, Ke._weekdays = qe, Ke.weekdaysMin = dc, Ke._weekdaysMin = se, Ke.weekdaysShort = cc, Ke._weekdaysShort = re, Ke.weekdaysParse = fc, Ke._weekdaysRegex = te, Ke.weekdaysRegex = jc, Ke._weekdaysShortRegex = ue, Ke.weekdaysShortRegex = kc, Ke._weekdaysMinRegex = ve, Ke.weekdaysMinRegex = lc, Ke.isPM = sc, Ke._meridiemParse = we, Ke.meridiem = tc, E("en", {
9374 ordinalParse: /\d{1,2}(th|st|nd|rd)/,
9375 ordinal: function(a) {
9376 var b = a % 10,
9377 c = 1 === r(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
9378 return a + c
9379 }
9380 }), a.lang = u("moment.lang is deprecated. Use moment.locale instead.", E), a.langData = u("moment.langData is deprecated. Use moment.localeData instead.", H);
9381 var Le = Math.abs,
9382 Me = Yc("ms"),
9383 Ne = Yc("s"),
9384 Oe = Yc("m"),
9385 Pe = Yc("h"),
9386 Qe = Yc("d"),
9387 Re = Yc("w"),
9388 Se = Yc("M"),
9389 Te = Yc("y"),
9390 Ue = $c("milliseconds"),
9391 Ve = $c("seconds"),
9392 We = $c("minutes"),
9393 Xe = $c("hours"),
9394 Ye = $c("days"),
9395 Ze = $c("months"),
9396 $e = $c("years"),
9397 _e = Math.round,
9398 af = {
9399 s: 45,
9400 m: 45,
9401 h: 22,
9402 d: 26,
9403 M: 11
9404 },
9405 bf = Math.abs,
9406 cf = Oa.prototype;
9407 cf.abs = Oc, cf.add = Qc, cf.subtract = Rc, cf.as = Wc, cf.asMilliseconds = Me, cf.asSeconds = Ne, cf.asMinutes = Oe, cf.asHours = Pe, cf.asDays = Qe, cf.asWeeks = Re, cf.asMonths = Se, cf.asYears = Te, cf.valueOf = Xc, cf._bubble = Tc, cf.get = Zc, cf.milliseconds = Ue, cf.seconds = Ve, cf.minutes = We, cf.hours = Xe, cf.days = Ye, cf.weeks = _c, cf.months = Ze, cf.years = $e, cf.humanize = dd, cf.toISOString = ed, cf.toString = ed, cf.toJSON = ed, cf.locale = Bb, cf.localeData = Cb, cf.toIsoString = u("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", ed), cf.lang = ne, R("X", 0, 0, "unix"), R("x", 0, 0, "valueOf"), W("x", Fd), W("X", Id), $("X", function(a, b, c) {
9408 c._d = new Date(1e3 * parseFloat(a, 10))
9409 }), $("x", function(a, b, c) {
9410 c._d = new Date(r(a))
9411 }), a.version = "2.13.0", b(Ka), a.fn = De, a.min = Ma, a.max = Na, a.now = he, a.utc = h, a.unix = xc, a.months = Jc, a.isDate = d, a.locale = E, a.invalid = l, a.duration = db, a.isMoment = p, a.weekdays = Lc, a.parseZone = yc, a.localeData = H, a.isDuration = Pa, a.monthsShort = Kc, a.weekdaysMin = Nc, a.defineLocale = F, a.updateLocale = G, a.locales = I, a.weekdaysShort = Mc, a.normalizeUnits = K, a.relativeTimeThreshold = cd, a.prototype = De;
9412 var df = a;
9413 return df
9414 });
9415var Mailcheck = {
9416 domainThreshold: 2,
9417 secondLevelThreshold: 2,
9418 topLevelThreshold: 2,
9419 defaultDomains: ["msn.com", "bellsouth.net", "telus.net", "comcast.net", "optusnet.com.au", "earthlink.net", "qq.com", "sky.com", "icloud.com", "mac.com", "sympatico.ca", "googlemail.com", "att.net", "xtra.co.nz", "web.de", "cox.net", "gmail.com", "ymail.com", "aim.com", "rogers.com", "verizon.net", "rocketmail.com", "google.com", "optonline.net", "sbcglobal.net", "aol.com", "me.com", "btinternet.com", "charter.net", "shaw.ca"],
9420 defaultSecondLevelDomains: ["yahoo", "hotmail", "mail", "live", "outlook", "gmx"],
9421 defaultTopLevelDomains: ["com", "com.au", "com.tw", "ca", "co.nz", "co.uk", "de", "fr", "it", "ru", "net", "org", "edu", "gov", "jp", "nl", "kr", "se", "eu", "ie", "co.il", "us", "at", "be", "dk", "hk", "es", "gr", "ch", "no", "cz", "in", "net", "net.au", "info", "biz", "mil", "co.jp", "sg", "hu", "uk"],
9422 run: function(a) {
9423 a.domains = a.domains || Mailcheck.defaultDomains, a.secondLevelDomains = a.secondLevelDomains || Mailcheck.defaultSecondLevelDomains, a.topLevelDomains = a.topLevelDomains || Mailcheck.defaultTopLevelDomains, a.distanceFunction = a.distanceFunction || Mailcheck.sift3Distance;
9424 var b = function(a) {
9425 return a
9426 },
9427 c = a.suggested || b,
9428 d = a.empty || b,
9429 e = Mailcheck.suggest(Mailcheck.encodeEmail(a.email), a.domains, a.secondLevelDomains, a.topLevelDomains, a.distanceFunction);
9430 return e ? c(e) : d()
9431 },
9432 suggest: function(a, b, c, d, e) {
9433 a = a.toLowerCase();
9434 var f = this.splitEmail(a);
9435 if (c && d && -1 !== c.indexOf(f.secondLevelDomain) && -1 !== d.indexOf(f.topLevelDomain)) return !1;
9436 var g = this.findClosestDomain(f.domain, b, e, this.domainThreshold);
9437 if (g) return g == f.domain ? !1 : {
9438 address: f.address,
9439 domain: g,
9440 full: f.address + "@" + g
9441 };
9442 var h = this.findClosestDomain(f.secondLevelDomain, c, e, this.secondLevelThreshold),
9443 i = this.findClosestDomain(f.topLevelDomain, d, e, this.topLevelThreshold);
9444 if (f.domain) {
9445 var g = f.domain,
9446 j = !1;
9447 if (h && h != f.secondLevelDomain && (g = g.replace(f.secondLevelDomain, h), j = !0), i && i != f.topLevelDomain && (g = g.replace(new RegExp(f.topLevelDomain + "$"), i), j = !0), 1 == j) return {
9448 address: f.address,
9449 domain: g,
9450 full: f.address + "@" + g
9451 }
9452 }
9453 return !1
9454 },
9455 findClosestDomain: function(a, b, c, d) {
9456 d = d || this.topLevelThreshold;
9457 var e, f = 1 / 0,
9458 g = null;
9459 if (!a || !b) return !1;
9460 c || (c = this.sift3Distance);
9461 for (var h = 0; h < b.length; h++) {
9462 if (a === b[h]) return a;
9463 e = c(a, b[h]), f > e && (f = e, g = b[h])
9464 }
9465 return d >= f && null !== g ? g : !1
9466 },
9467 sift3Distance: function(a, b) {
9468 if (null == a || 0 === a.length) return null == b || 0 === b.length ? 0 : b.length;
9469 if (null == b || 0 === b.length) return a.length;
9470 for (var c = 0, d = 0, e = 0, f = 0, g = 5; c + d < a.length && c + e < b.length;) {
9471 if (a.charAt(c + d) == b.charAt(c + e)) f++;
9472 else {
9473 d = 0, e = 0;
9474 for (var h = 0; g > h; h++) {
9475 if (c + h < a.length && a.charAt(c + h) == b.charAt(c)) {
9476 d = h;
9477 break
9478 }
9479 if (c + h < b.length && a.charAt(c) == b.charAt(c + h)) {
9480 e = h;
9481 break
9482 }
9483 }
9484 }
9485 c++
9486 }
9487 return (a.length + b.length) / 2 - f
9488 },
9489 splitEmail: function(a) {
9490 var b = a.trim().split("@");
9491 if (b.length < 2) return !1;
9492 for (var c = 0; c < b.length; c++)
9493 if ("" === b[c]) return !1;
9494 var d = b.pop(),
9495 e = d.split("."),
9496 f = "",
9497 g = "";
9498 if (0 == e.length) return !1;
9499 if (1 == e.length) g = e[0];
9500 else {
9501 f = e[0];
9502 for (var c = 1; c < e.length; c++) g += e[c] + ".";
9503 g = g.substring(0, g.length - 1)
9504 }
9505 return {
9506 topLevelDomain: g,
9507 secondLevelDomain: f,
9508 domain: d,
9509 address: b.join("@")
9510 }
9511 },
9512 encodeEmail: function(a) {
9513 var b = encodeURI(a);
9514 return b = b.replace("%20", " ").replace("%25", "%").replace("%5E", "^").replace("%60", "`").replace("%7B", "{").replace("%7C", "|").replace("%7D", "}")
9515 }
9516};
9517"undefined" != typeof module && module.exports && (module.exports = Mailcheck), "function" == typeof define && define.amd && define("mailcheck", [], function() {
9518 return Mailcheck
9519}), "undefined" != typeof window && window.jQuery && ! function(a) {
9520 a.fn.mailcheck = function(a) {
9521 var b = this;
9522 if (a.suggested) {
9523 var c = a.suggested;
9524 a.suggested = function(a) {
9525 c(b, a)
9526 }
9527 }
9528 if (a.empty) {
9529 var d = a.empty;
9530 a.empty = function() {
9531 d.call(null, b)
9532 }
9533 }
9534 a.email = this.val(), Mailcheck.run(a)
9535 }
9536}(jQuery);