afd
Version:
Accrual Failure Detector
1,029 lines • 373 kB
JavaScript
(function(t, e) {
function n(t) {
var e = de[t] = {};
return J.each(t.split(ee), function(t, n) {
e[n] = !0;
}), e;
}
function r(t, n, r) {
if (r === e && 1 === t.nodeType) {
var i = "data-" + n.replace(ve, "-$1").toLowerCase();
if (r = t.getAttribute(i), "string" == typeof r) {
try {
r = "true" === r ? !0 : "false" === r ? !1 : "null" === r ? null : +r + "" === r ? +r : ge.test(r) ? J.parseJSON(r) : r;
} catch (o) {}
J.data(t, n, r);
} else r = e;
}
return r;
}
function i(t) {
var e;
for (e in t) if (("data" !== e || !J.isEmptyObject(t[e])) && "toJSON" !== e) return !1;
return !0;
}
function o() {
return !1;
}
function s() {
return !0;
}
function a(t) {
return !t || !t.parentNode || 11 === t.parentNode.nodeType;
}
function l(t, e) {
do t = t[e]; while (t && 1 !== t.nodeType);
return t;
}
function u(t, e, n) {
if (e = e || 0, J.isFunction(e)) return J.grep(t, function(t, r) {
var i = !!e.call(t, r, t);
return i === n;
});
if (e.nodeType) return J.grep(t, function(t) {
return t === e === n;
});
if ("string" == typeof e) {
var r = J.grep(t, function(t) {
return 1 === t.nodeType;
});
if (De.test(e)) return J.filter(e, r, !n);
e = J.filter(e, r);
}
return J.grep(t, function(t) {
return J.inArray(t, e) >= 0 === n;
});
}
function h(t) {
var e = Oe.split("|"), n = t.createDocumentFragment();
if (n.createElement) for (;e.length; ) n.createElement(e.pop());
return n;
}
function c(t, e) {
return t.getElementsByTagName(e)[0] || t.appendChild(t.ownerDocument.createElement(e));
}
function f(t, e) {
if (1 === e.nodeType && J.hasData(t)) {
var n, r, i, o = J._data(t), s = J._data(e, o), a = o.events;
if (a) {
delete s.handle, s.events = {};
for (n in a) for (r = 0, i = a[n].length; i > r; r++) J.event.add(e, n, a[n][r]);
}
s.data && (s.data = J.extend({}, s.data));
}
}
function p(t, e) {
var n;
1 === e.nodeType && (e.clearAttributes && e.clearAttributes(), e.mergeAttributes && e.mergeAttributes(t),
n = e.nodeName.toLowerCase(), "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML),
J.support.html5Clone && t.innerHTML && !J.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && Ue.test(t.type) ? (e.defaultChecked = e.checked = t.checked,
e.value !== t.value && (e.value = t.value)) : "option" === n ? e.selected = t.defaultSelected : "input" === n || "textarea" === n ? e.defaultValue = t.defaultValue : "script" === n && e.text !== t.text && (e.text = t.text),
e.removeAttribute(J.expando));
}
function d(t) {
return t.getElementsByTagName !== void 0 ? t.getElementsByTagName("*") : t.querySelectorAll !== void 0 ? t.querySelectorAll("*") : [];
}
function g(t) {
Ue.test(t.type) && (t.defaultChecked = t.checked);
}
function v(t, e) {
if (e in t) return e;
for (var n = e.charAt(0).toUpperCase() + e.slice(1), r = e, i = yn.length; i--; ) if (e = yn[i] + n,
e in t) return e;
return r;
}
function m(t, e) {
return t = e || t, "none" === J.css(t, "display") || !J.contains(t.ownerDocument, t);
}
function y(t, e) {
for (var n, r, i = [], o = 0, s = t.length; s > o; o++) n = t[o], n.style && (i[o] = J._data(n, "olddisplay"),
e ? (!i[o] && "none" === n.style.display && (n.style.display = ""), "" === n.style.display && m(n) && (i[o] = J._data(n, "olddisplay", _(n.nodeName)))) : (r = nn(n, "display"),
!i[o] && "none" !== r && J._data(n, "olddisplay", r)));
for (o = 0; s > o; o++) n = t[o], n.style && (e && "none" !== n.style.display && "" !== n.style.display || (n.style.display = e ? i[o] || "" : "none"));
return t;
}
function x(t, e, n) {
var r = cn.exec(e);
return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : e;
}
function b(t, e, n, r) {
for (var i = n === (r ? "border" : "content") ? 4 : "width" === e ? 1 : 0, o = 0; 4 > i; i += 2) "margin" === n && (o += J.css(t, n + mn[i], !0)),
r ? ("content" === n && (o -= parseFloat(nn(t, "padding" + mn[i])) || 0), "margin" !== n && (o -= parseFloat(nn(t, "border" + mn[i] + "Width")) || 0)) : (o += parseFloat(nn(t, "padding" + mn[i])) || 0,
"padding" !== n && (o += parseFloat(nn(t, "border" + mn[i] + "Width")) || 0));
return o;
}
function w(t, e, n) {
var r = "width" === e ? t.offsetWidth : t.offsetHeight, i = !0, o = J.support.boxSizing && "border-box" === J.css(t, "boxSizing");
if (0 >= r || null == r) {
if (r = nn(t, e), (0 > r || null == r) && (r = t.style[e]), fn.test(r)) return r;
i = o && (J.support.boxSizingReliable || r === t.style[e]), r = parseFloat(r) || 0;
}
return r + b(t, e, n || (o ? "border" : "content"), i) + "px";
}
function _(t) {
if (dn[t]) return dn[t];
var e = J("<" + t + ">").appendTo(R.body), n = e.css("display");
return e.remove(), ("none" === n || "" === n) && (rn = R.body.appendChild(rn || J.extend(R.createElement("iframe"), {
frameBorder: 0,
width: 0,
height: 0
})), on && rn.createElement || (on = (rn.contentWindow || rn.contentDocument).document,
on.write("<!doctype html><html><body>"), on.close()), e = on.body.appendChild(on.createElement(t)),
n = nn(e, "display"), R.body.removeChild(rn)), dn[t] = n, n;
}
function k(t, e, n, r) {
var i;
if (J.isArray(e)) J.each(e, function(e, i) {
n || wn.test(t) ? r(t, i) : k(t + "[" + ("object" == typeof i ? e : "") + "]", i, n, r);
}); else if (n || "object" !== J.type(e)) r(t, e); else for (i in e) k(t + "[" + i + "]", e[i], n, r);
}
function C(t) {
return function(e, n) {
"string" != typeof e && (n = e, e = "*");
var r, i, o, s = e.toLowerCase().split(ee), a = 0, l = s.length;
if (J.isFunction(n)) for (;l > a; a++) r = s[a], o = /^\+/.test(r), o && (r = r.substr(1) || "*"),
i = t[r] = t[r] || [], i[o ? "unshift" : "push"](n);
};
}
function T(t, n, r, i, o, s) {
o = o || n.dataTypes[0], s = s || {}, s[o] = !0;
for (var a, l = t[o], u = 0, h = l ? l.length : 0, c = t === Pn; h > u && (c || !a); u++) a = l[u](n, r, i),
"string" == typeof a && (!c || s[a] ? a = e : (n.dataTypes.unshift(a), a = T(t, n, r, i, a, s)));
return (c || !a) && !s["*"] && (a = T(t, n, r, i, "*", s)), a;
}
function S(t, n) {
var r, i, o = J.ajaxSettings.flatOptions || {};
for (r in n) n[r] !== e && ((o[r] ? t : i || (i = {}))[r] = n[r]);
i && J.extend(!0, t, i);
}
function N(t, n, r) {
var i, o, s, a, l = t.contents, u = t.dataTypes, h = t.responseFields;
for (o in h) o in r && (n[h[o]] = r[o]);
for (;"*" === u[0]; ) u.shift(), i === e && (i = t.mimeType || n.getResponseHeader("content-type"));
if (i) for (o in l) if (l[o] && l[o].test(i)) {
u.unshift(o);
break;
}
if (u[0] in r) s = u[0]; else {
for (o in r) {
if (!u[0] || t.converters[o + " " + u[0]]) {
s = o;
break;
}
a || (a = o);
}
s = s || a;
}
return s ? (s !== u[0] && u.unshift(s), r[s]) : void 0;
}
function E(t, e) {
var n, r, i, o, s = t.dataTypes.slice(), a = s[0], l = {}, u = 0;
if (t.dataFilter && (e = t.dataFilter(e, t.dataType)), s[1]) for (n in t.converters) l[n.toLowerCase()] = t.converters[n];
for (;i = s[++u]; ) if ("*" !== i) {
if ("*" !== a && a !== i) {
if (n = l[a + " " + i] || l["* " + i], !n) for (r in l) if (o = r.split(" "), o[1] === i && (n = l[a + " " + o[0]] || l["* " + o[0]])) {
n === !0 ? n = l[r] : l[r] !== !0 && (i = o[0], s.splice(u--, 0, i));
break;
}
if (n !== !0) if (n && t["throws"]) e = n(e); else try {
e = n(e);
} catch (h) {
return {
state: "parsererror",
error: n ? h : "No conversion from " + a + " to " + i
};
}
}
a = i;
}
return {
state: "success",
data: e
};
}
function A() {
try {
return new t.XMLHttpRequest();
} catch (e) {}
}
function B() {
try {
return new t.ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
function L() {
return setTimeout(function() {
Gn = e;
}, 0), Gn = J.now();
}
function M(t, e) {
J.each(e, function(e, n) {
for (var r = (tr[e] || []).concat(tr["*"]), i = 0, o = r.length; o > i; i++) if (r[i].call(t, e, n)) return;
});
}
function F(t, e, n) {
var r, i = 0, o = Kn.length, s = J.Deferred().always(function() {
delete a.elem;
}), a = function() {
for (var e = Gn || L(), n = Math.max(0, l.startTime + l.duration - e), r = n / l.duration || 0, i = 1 - r, o = 0, a = l.tweens.length; a > o; o++) l.tweens[o].run(i);
return s.notifyWith(t, [ l, i, n ]), 1 > i && a ? n : (s.resolveWith(t, [ l ]),
!1);
}, l = s.promise({
elem: t,
props: J.extend({}, e),
opts: J.extend(!0, {
specialEasing: {}
}, n),
originalProperties: e,
originalOptions: n,
startTime: Gn || L(),
duration: n.duration,
tweens: [],
createTween: function(e, n) {
var r = J.Tween(t, l.opts, e, n, l.opts.specialEasing[e] || l.opts.easing);
return l.tweens.push(r), r;
},
stop: function(e) {
for (var n = 0, r = e ? l.tweens.length : 0; r > n; n++) l.tweens[n].run(1);
return e ? s.resolveWith(t, [ l, e ]) : s.rejectWith(t, [ l, e ]), this;
}
}), u = l.props;
for (j(u, l.opts.specialEasing); o > i; i++) if (r = Kn[i].call(l, t, u, l.opts)) return r;
return M(l, u), J.isFunction(l.opts.start) && l.opts.start.call(t, l), J.fx.timer(J.extend(a, {
anim: l,
queue: l.opts.queue,
elem: t
})), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always);
}
function j(t, e) {
var n, r, i, o, s;
for (n in t) if (r = J.camelCase(n), i = e[r], o = t[n], J.isArray(o) && (i = o[1],
o = t[n] = o[0]), n !== r && (t[r] = o, delete t[n]), s = J.cssHooks[r], s && "expand" in s) {
o = s.expand(o), delete t[r];
for (n in o) n in t || (t[n] = o[n], e[n] = i);
} else e[r] = i;
}
function H(t, e, n) {
var r, i, o, s, a, l, u, h, c, f = this, p = t.style, d = {}, g = [], v = t.nodeType && m(t);
n.queue || (h = J._queueHooks(t, "fx"), null == h.unqueued && (h.unqueued = 0, c = h.empty.fire,
h.empty.fire = function() {
h.unqueued || c();
}), h.unqueued++, f.always(function() {
f.always(function() {
h.unqueued--, J.queue(t, "fx").length || h.empty.fire();
});
})), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [ p.overflow, p.overflowX, p.overflowY ],
"inline" === J.css(t, "display") && "none" === J.css(t, "float") && (J.support.inlineBlockNeedsLayout && "inline" !== _(t.nodeName) ? p.zoom = 1 : p.display = "inline-block")),
n.overflow && (p.overflow = "hidden", J.support.shrinkWrapBlocks || f.done(function() {
p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2];
}));
for (r in e) if (o = e[r], Qn.exec(o)) {
if (delete e[r], l = l || "toggle" === o, o === (v ? "hide" : "show")) continue;
g.push(r);
}
if (s = g.length) {
a = J._data(t, "fxshow") || J._data(t, "fxshow", {}), "hidden" in a && (v = a.hidden),
l && (a.hidden = !v), v ? J(t).show() : f.done(function() {
J(t).hide();
}), f.done(function() {
var e;
J.removeData(t, "fxshow", !0);
for (e in d) J.style(t, e, d[e]);
});
for (r = 0; s > r; r++) i = g[r], u = f.createTween(i, v ? a[i] : 0), d[i] = a[i] || J.style(t, i),
i in a || (a[i] = u.start, v && (u.end = u.start, u.start = "width" === i || "height" === i ? 1 : 0));
}
}
function D(t, e, n, r, i) {
return new D.prototype.init(t, e, n, r, i);
}
function P(t, e) {
var n, r = {
height: t
}, i = 0;
for (e = e ? 1 : 0; 4 > i; i += 2 - e) n = mn[i], r["margin" + n] = r["padding" + n] = t;
return e && (r.opacity = r.width = t), r;
}
function I(t) {
return J.isWindow(t) ? t : 9 === t.nodeType ? t.defaultView || t.parentWindow : !1;
}
var O, z, R = t.document, q = t.location, W = t.navigator, $ = t.jQuery, X = t.$, Y = Array.prototype.push, V = Array.prototype.slice, G = Array.prototype.indexOf, U = Object.prototype.toString, Q = Object.prototype.hasOwnProperty, Z = String.prototype.trim, J = function(t, e) {
return new J.fn.init(t, e, O);
}, K = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, te = /\S/, ee = /\s+/, ne = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, re = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, ie = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, oe = /^[\],:{}\s]*$/, se = /(?:^|:|,)(?:\s*\[)+/g, ae = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, le = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, ue = /^-ms-/, he = /-([\da-z])/gi, ce = function(t, e) {
return (e + "").toUpperCase();
}, fe = function() {
R.addEventListener ? (R.removeEventListener("DOMContentLoaded", fe, !1), J.ready()) : "complete" === R.readyState && (R.detachEvent("onreadystatechange", fe),
J.ready());
}, pe = {};
J.fn = J.prototype = {
constructor: J,
init: function(t, n, r) {
var i, o, s;
if (!t) return this;
if (t.nodeType) return this.context = this[0] = t, this.length = 1, this;
if ("string" == typeof t) {
if (i = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [ null, t, null ] : re.exec(t),
i && (i[1] || !n)) {
if (i[1]) return n = n instanceof J ? n[0] : n, s = n && n.nodeType ? n.ownerDocument || n : R,
t = J.parseHTML(i[1], s, !0), ie.test(i[1]) && J.isPlainObject(n) && this.attr.call(t, n, !0),
J.merge(this, t);
if (o = R.getElementById(i[2]), o && o.parentNode) {
if (o.id !== i[2]) return r.find(t);
this.length = 1, this[0] = o;
}
return this.context = R, this.selector = t, this;
}
return !n || n.jquery ? (n || r).find(t) : this.constructor(n).find(t);
}
return J.isFunction(t) ? r.ready(t) : (t.selector !== e && (this.selector = t.selector,
this.context = t.context), J.makeArray(t, this));
},
selector: "",
jquery: "1.8.3",
length: 0,
size: function() {
return this.length;
},
toArray: function() {
return V.call(this);
},
get: function(t) {
return null == t ? this.toArray() : 0 > t ? this[this.length + t] : this[t];
},
pushStack: function(t, e, n) {
var r = J.merge(this.constructor(), t);
return r.prevObject = this, r.context = this.context, "find" === e ? r.selector = this.selector + (this.selector ? " " : "") + n : e && (r.selector = this.selector + "." + e + "(" + n + ")"),
r;
},
each: function(t, e) {
return J.each(this, t, e);
},
ready: function(t) {
return J.ready.promise().done(t), this;
},
eq: function(t) {
return t = +t, -1 === t ? this.slice(t) : this.slice(t, t + 1);
},
first: function() {
return this.eq(0);
},
last: function() {
return this.eq(-1);
},
slice: function() {
return this.pushStack(V.apply(this, arguments), "slice", V.call(arguments).join(","));
},
map: function(t) {
return this.pushStack(J.map(this, function(e, n) {
return t.call(e, n, e);
}));
},
end: function() {
return this.prevObject || this.constructor(null);
},
push: Y,
sort: [].sort,
splice: [].splice
}, J.fn.init.prototype = J.fn, J.extend = J.fn.extend = function() {
var t, n, r, i, o, s, a = arguments[0] || {}, l = 1, u = arguments.length, h = !1;
for ("boolean" == typeof a && (h = a, a = arguments[1] || {}, l = 2), "object" != typeof a && !J.isFunction(a) && (a = {}),
u === l && (a = this, --l); u > l; l++) if (null != (t = arguments[l])) for (n in t) r = a[n],
i = t[n], a !== i && (h && i && (J.isPlainObject(i) || (o = J.isArray(i))) ? (o ? (o = !1,
s = r && J.isArray(r) ? r : []) : s = r && J.isPlainObject(r) ? r : {}, a[n] = J.extend(h, s, i)) : i !== e && (a[n] = i));
return a;
}, J.extend({
noConflict: function(e) {
return t.$ === J && (t.$ = X), e && t.jQuery === J && (t.jQuery = $), J;
},
isReady: !1,
readyWait: 1,
holdReady: function(t) {
t ? J.readyWait++ : J.ready(!0);
},
ready: function(t) {
if (t === !0 ? !--J.readyWait : !J.isReady) {
if (!R.body) return setTimeout(J.ready, 1);
J.isReady = !0, t !== !0 && --J.readyWait > 0 || (z.resolveWith(R, [ J ]), J.fn.trigger && J(R).trigger("ready").off("ready"));
}
},
isFunction: function(t) {
return "function" === J.type(t);
},
isArray: Array.isArray || function(t) {
return "array" === J.type(t);
},
isWindow: function(t) {
return null != t && t == t.window;
},
isNumeric: function(t) {
return !isNaN(parseFloat(t)) && isFinite(t);
},
type: function(t) {
return null == t ? t + "" : pe[U.call(t)] || "object";
},
isPlainObject: function(t) {
if (!t || "object" !== J.type(t) || t.nodeType || J.isWindow(t)) return !1;
try {
if (t.constructor && !Q.call(t, "constructor") && !Q.call(t.constructor.prototype, "isPrototypeOf")) return !1;
} catch (n) {
return !1;
}
var r;
for (r in t) ;
return r === e || Q.call(t, r);
},
isEmptyObject: function(t) {
var e;
for (e in t) return !1;
return !0;
},
error: function(t) {
throw Error(t);
},
parseHTML: function(t, e, n) {
var r;
return t && "string" == typeof t ? ("boolean" == typeof e && (n = e, e = 0), e = e || R,
(r = ie.exec(t)) ? [ e.createElement(r[1]) ] : (r = J.buildFragment([ t ], e, n ? null : []),
J.merge([], (r.cacheable ? J.clone(r.fragment) : r.fragment).childNodes))) : null;
},
parseJSON: function(e) {
return e && "string" == typeof e ? (e = J.trim(e), t.JSON && t.JSON.parse ? t.JSON.parse(e) : oe.test(e.replace(ae, "@").replace(le, "]").replace(se, "")) ? Function("return " + e)() : (J.error("Invalid JSON: " + e),
void 0)) : null;
},
parseXML: function(n) {
var r, i;
if (!n || "string" != typeof n) return null;
try {
t.DOMParser ? (i = new DOMParser(), r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"),
r.async = "false", r.loadXML(n));
} catch (o) {
r = e;
}
return (!r || !r.documentElement || r.getElementsByTagName("parsererror").length) && J.error("Invalid XML: " + n),
r;
},
noop: function() {},
globalEval: function(e) {
e && te.test(e) && (t.execScript || function(e) {
t.eval.call(t, e);
})(e);
},
camelCase: function(t) {
return t.replace(ue, "ms-").replace(he, ce);
},
nodeName: function(t, e) {
return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase();
},
each: function(t, n, r) {
var i, o = 0, s = t.length, a = s === e || J.isFunction(t);
if (r) if (a) {
for (i in t) if (n.apply(t[i], r) === !1) break;
} else for (;s > o && n.apply(t[o++], r) !== !1; ) ; else if (a) {
for (i in t) if (n.call(t[i], i, t[i]) === !1) break;
} else for (;s > o && n.call(t[o], o, t[o++]) !== !1; ) ;
return t;
},
trim: Z && !Z.call(" ") ? function(t) {
return null == t ? "" : Z.call(t);
} : function(t) {
return null == t ? "" : (t + "").replace(ne, "");
},
makeArray: function(t, e) {
var n, r = e || [];
return null != t && (n = J.type(t), null == t.length || "string" === n || "function" === n || "regexp" === n || J.isWindow(t) ? Y.call(r, t) : J.merge(r, t)),
r;
},
inArray: function(t, e, n) {
var r;
if (e) {
if (G) return G.call(e, t, n);
for (r = e.length, n = n ? 0 > n ? Math.max(0, r + n) : n : 0; r > n; n++) if (n in e && e[n] === t) return n;
}
return -1;
},
merge: function(t, n) {
var r = n.length, i = t.length, o = 0;
if ("number" == typeof r) for (;r > o; o++) t[i++] = n[o]; else for (;n[o] !== e; ) t[i++] = n[o++];
return t.length = i, t;
},
grep: function(t, e, n) {
var r, i = [], o = 0, s = t.length;
for (n = !!n; s > o; o++) r = !!e(t[o], o), n !== r && i.push(t[o]);
return i;
},
map: function(t, n, r) {
var i, o, s = [], a = 0, l = t.length, u = t instanceof J || l !== e && "number" == typeof l && (l > 0 && t[0] && t[l - 1] || 0 === l || J.isArray(t));
if (u) for (;l > a; a++) i = n(t[a], a, r), null != i && (s[s.length] = i); else for (o in t) i = n(t[o], o, r),
null != i && (s[s.length] = i);
return s.concat.apply([], s);
},
guid: 1,
proxy: function(t, n) {
var r, i, o;
return "string" == typeof n && (r = t[n], n = t, t = r), J.isFunction(t) ? (i = V.call(arguments, 2),
o = function() {
return t.apply(n, i.concat(V.call(arguments)));
}, o.guid = t.guid = t.guid || J.guid++, o) : e;
},
access: function(t, n, r, i, o, s, a) {
var l, u = null == r, h = 0, c = t.length;
if (r && "object" == typeof r) {
for (h in r) J.access(t, n, h, r[h], 1, s, i);
o = 1;
} else if (i !== e) {
if (l = a === e && J.isFunction(i), u && (l ? (l = n, n = function(t, e, n) {
return l.call(J(t), n);
}) : (n.call(t, i), n = null)), n) for (;c > h; h++) n(t[h], r, l ? i.call(t[h], h, n(t[h], r)) : i, a);
o = 1;
}
return o ? t : u ? n.call(t) : c ? n(t[0], r) : s;
},
now: function() {
return new Date().getTime();
}
}), J.ready.promise = function(e) {
if (!z) if (z = J.Deferred(), "complete" === R.readyState) setTimeout(J.ready, 1); else if (R.addEventListener) R.addEventListener("DOMContentLoaded", fe, !1),
t.addEventListener("load", J.ready, !1); else {
R.attachEvent("onreadystatechange", fe), t.attachEvent("onload", J.ready);
var n = !1;
try {
n = null == t.frameElement && R.documentElement;
} catch (r) {}
n && n.doScroll && function i() {
if (!J.isReady) {
try {
n.doScroll("left");
} catch (t) {
return setTimeout(i, 50);
}
J.ready();
}
}();
}
return z.promise(e);
}, J.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(t, e) {
pe["[object " + e + "]"] = e.toLowerCase();
}), O = J(R);
var de = {};
J.Callbacks = function(t) {
t = "string" == typeof t ? de[t] || n(t) : J.extend({}, t);
var r, i, o, s, a, l, u = [], h = !t.once && [], c = function(e) {
for (r = t.memory && e, i = !0, l = s || 0, s = 0, a = u.length, o = !0; u && a > l; l++) if (u[l].apply(e[0], e[1]) === !1 && t.stopOnFalse) {
r = !1;
break;
}
o = !1, u && (h ? h.length && c(h.shift()) : r ? u = [] : f.disable());
}, f = {
add: function() {
if (u) {
var e = u.length;
(function n(e) {
J.each(e, function(e, r) {
var i = J.type(r);
"function" === i ? (!t.unique || !f.has(r)) && u.push(r) : r && r.length && "string" !== i && n(r);
});
})(arguments), o ? a = u.length : r && (s = e, c(r));
}
return this;
},
remove: function() {
return u && J.each(arguments, function(t, e) {
for (var n; (n = J.inArray(e, u, n)) > -1; ) u.splice(n, 1), o && (a >= n && a--,
l >= n && l--);
}), this;
},
has: function(t) {
return J.inArray(t, u) > -1;
},
empty: function() {
return u = [], this;
},
disable: function() {
return u = h = r = e, this;
},
disabled: function() {
return !u;
},
lock: function() {
return h = e, r || f.disable(), this;
},
locked: function() {
return !h;
},
fireWith: function(t, e) {
return e = e || [], e = [ t, e.slice ? e.slice() : e ], u && (!i || h) && (o ? h.push(e) : c(e)),
this;
},
fire: function() {
return f.fireWith(this, arguments), this;
},
fired: function() {
return !!i;
}
};
return f;
}, J.extend({
Deferred: function(t) {
var e = [ [ "resolve", "done", J.Callbacks("once memory"), "resolved" ], [ "reject", "fail", J.Callbacks("once memory"), "rejected" ], [ "notify", "progress", J.Callbacks("memory") ] ], n = "pending", r = {
state: function() {
return n;
},
always: function() {
return i.done(arguments).fail(arguments), this;
},
then: function() {
var t = arguments;
return J.Deferred(function(n) {
J.each(e, function(e, r) {
var o = r[0], s = t[e];
i[r[1]](J.isFunction(s) ? function() {
var t = s.apply(this, arguments);
t && J.isFunction(t.promise) ? t.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o + "With"](this === i ? n : this, [ t ]);
} : n[o]);
}), t = null;
}).promise();
},
promise: function(t) {
return null != t ? J.extend(t, r) : r;
}
}, i = {};
return r.pipe = r.then, J.each(e, function(t, o) {
var s = o[2], a = o[3];
r[o[1]] = s.add, a && s.add(function() {
n = a;
}, e[1 ^ t][2].disable, e[2][2].lock), i[o[0]] = s.fire, i[o[0] + "With"] = s.fireWith;
}), r.promise(i), t && t.call(i, i), i;
},
when: function(t) {
var e, n, r, i = 0, o = V.call(arguments), s = o.length, a = 1 !== s || t && J.isFunction(t.promise) ? s : 0, l = 1 === a ? t : J.Deferred(), u = function(t, n, r) {
return function(i) {
n[t] = this, r[t] = arguments.length > 1 ? V.call(arguments) : i, r === e ? l.notifyWith(n, r) : --a || l.resolveWith(n, r);
};
};
if (s > 1) for (e = Array(s), n = Array(s), r = Array(s); s > i; i++) o[i] && J.isFunction(o[i].promise) ? o[i].promise().done(u(i, r, o)).fail(l.reject).progress(u(i, n, e)) : --a;
return a || l.resolveWith(r, o), l.promise();
}
}), J.support = function() {
var e, n, r, i, o, s, a, l, u, h, c, f = R.createElement("div");
if (f.setAttribute("className", "t"), f.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",
n = f.getElementsByTagName("*"), r = f.getElementsByTagName("a")[0], !n || !r || !n.length) return {};
i = R.createElement("select"), o = i.appendChild(R.createElement("option")), s = f.getElementsByTagName("input")[0],
r.style.cssText = "top:1px;float:left;opacity:.5", e = {
leadingWhitespace: 3 === f.firstChild.nodeType,
tbody: !f.getElementsByTagName("tbody").length,
htmlSerialize: !!f.getElementsByTagName("link").length,
style: /top/.test(r.getAttribute("style")),
hrefNormalized: "/a" === r.getAttribute("href"),
opacity: /^0.5/.test(r.style.opacity),
cssFloat: !!r.style.cssFloat,
checkOn: "on" === s.value,
optSelected: o.selected,
getSetAttribute: "t" !== f.className,
enctype: !!R.createElement("form").enctype,
html5Clone: "<:nav></:nav>" !== R.createElement("nav").cloneNode(!0).outerHTML,
boxModel: "CSS1Compat" === R.compatMode,
submitBubbles: !0,
changeBubbles: !0,
focusinBubbles: !1,
deleteExpando: !0,
noCloneEvent: !0,
inlineBlockNeedsLayout: !1,
shrinkWrapBlocks: !1,
reliableMarginRight: !0,
boxSizingReliable: !0,
pixelPosition: !1
}, s.checked = !0, e.noCloneChecked = s.cloneNode(!0).checked, i.disabled = !0,
e.optDisabled = !o.disabled;
try {
delete f.test;
} catch (p) {
e.deleteExpando = !1;
}
if (!f.addEventListener && f.attachEvent && f.fireEvent && (f.attachEvent("onclick", c = function() {
e.noCloneEvent = !1;
}), f.cloneNode(!0).fireEvent("onclick"), f.detachEvent("onclick", c)), s = R.createElement("input"),
s.value = "t", s.setAttribute("type", "radio"), e.radioValue = "t" === s.value,
s.setAttribute("checked", "checked"), s.setAttribute("name", "t"), f.appendChild(s),
a = R.createDocumentFragment(), a.appendChild(f.lastChild), e.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked,
e.appendChecked = s.checked, a.removeChild(s), a.appendChild(f), f.attachEvent) for (u in {
submit: !0,
change: !0,
focusin: !0
}) l = "on" + u, h = l in f, h || (f.setAttribute(l, "return;"), h = "function" == typeof f[l]),
e[u + "Bubbles"] = h;
return J(function() {
var n, r, i, o, s = "padding:0;margin:0;border:0;display:block;overflow:hidden;", a = R.getElementsByTagName("body")[0];
a && (n = R.createElement("div"), n.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",
a.insertBefore(n, a.firstChild), r = R.createElement("div"), n.appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>",
i = r.getElementsByTagName("td"), i[0].style.cssText = "padding:0;margin:0;border:0;display:none",
h = 0 === i[0].offsetHeight, i[0].style.display = "", i[1].style.display = "none",
e.reliableHiddenOffsets = h && 0 === i[0].offsetHeight, r.innerHTML = "", r.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",
e.boxSizing = 4 === r.offsetWidth, e.doesNotIncludeMarginInBodyOffset = 1 !== a.offsetTop,
t.getComputedStyle && (e.pixelPosition = "1%" !== (t.getComputedStyle(r, null) || {}).top,
e.boxSizingReliable = "4px" === (t.getComputedStyle(r, null) || {
width: "4px"
}).width, o = R.createElement("div"), o.style.cssText = r.style.cssText = s, o.style.marginRight = o.style.width = "0",
r.style.width = "1px", r.appendChild(o), e.reliableMarginRight = !parseFloat((t.getComputedStyle(o, null) || {}).marginRight)),
r.style.zoom !== void 0 && (r.innerHTML = "", r.style.cssText = s + "width:1px;padding:1px;display:inline;zoom:1",
e.inlineBlockNeedsLayout = 3 === r.offsetWidth, r.style.display = "block", r.style.overflow = "visible",
r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", e.shrinkWrapBlocks = 3 !== r.offsetWidth,
n.style.zoom = 1), a.removeChild(n), n = r = i = o = null);
}), a.removeChild(f), n = r = i = o = s = a = f = null, e;
}();
var ge = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, ve = /([A-Z])/g;
J.extend({
cache: {},
deletedIds: [],
uuid: 0,
expando: "jQuery" + (J.fn.jquery + Math.random()).replace(/\D/g, ""),
noData: {
embed: !0,
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
applet: !0
},
hasData: function(t) {
return t = t.nodeType ? J.cache[t[J.expando]] : t[J.expando], !!t && !i(t);
},
data: function(t, n, r, i) {
if (J.acceptData(t)) {
var o, s, a = J.expando, l = "string" == typeof n, u = t.nodeType, h = u ? J.cache : t, c = u ? t[a] : t[a] && a;
if (c && h[c] && (i || h[c].data) || !l || r !== e) return c || (u ? t[a] = c = J.deletedIds.pop() || J.guid++ : c = a),
h[c] || (h[c] = {}, u || (h[c].toJSON = J.noop)), ("object" == typeof n || "function" == typeof n) && (i ? h[c] = J.extend(h[c], n) : h[c].data = J.extend(h[c].data, n)),
o = h[c], i || (o.data || (o.data = {}), o = o.data), r !== e && (o[J.camelCase(n)] = r),
l ? (s = o[n], null == s && (s = o[J.camelCase(n)])) : s = o, s;
}
},
removeData: function(t, e, n) {
if (J.acceptData(t)) {
var r, o, s, a = t.nodeType, l = a ? J.cache : t, u = a ? t[J.expando] : J.expando;
if (l[u]) {
if (e && (r = n ? l[u] : l[u].data)) {
J.isArray(e) || (e in r ? e = [ e ] : (e = J.camelCase(e), e = e in r ? [ e ] : e.split(" ")));
for (o = 0, s = e.length; s > o; o++) delete r[e[o]];
if (!(n ? i : J.isEmptyObject)(r)) return;
}
(n || (delete l[u].data, i(l[u]))) && (a ? J.cleanData([ t ], !0) : J.support.deleteExpando || l != l.window ? delete l[u] : l[u] = null);
}
}
},
_data: function(t, e, n) {
return J.data(t, e, n, !0);
},
acceptData: function(t) {
var e = t.nodeName && J.noData[t.nodeName.toLowerCase()];
return !e || e !== !0 && t.getAttribute("classid") === e;
}
}), J.fn.extend({
data: function(t, n) {
var i, o, s, a, l, u = this[0], h = 0, c = null;
if (t === e) {
if (this.length && (c = J.data(u), 1 === u.nodeType && !J._data(u, "parsedAttrs"))) {
for (s = u.attributes, l = s.length; l > h; h++) a = s[h].name, a.indexOf("data-") || (a = J.camelCase(a.substring(5)),
r(u, a, c[a]));
J._data(u, "parsedAttrs", !0);
}
return c;
}
return "object" == typeof t ? this.each(function() {
J.data(this, t);
}) : (i = t.split(".", 2), i[1] = i[1] ? "." + i[1] : "", o = i[1] + "!", J.access(this, function(n) {
return n === e ? (c = this.triggerHandler("getData" + o, [ i[0] ]), c === e && u && (c = J.data(u, t),
c = r(u, t, c)), c === e && i[1] ? this.data(i[0]) : c) : (i[1] = n, this.each(function() {
var e = J(this);
e.triggerHandler("setData" + o, i), J.data(this, t, n), e.triggerHandler("changeData" + o, i);
}), void 0);
}, null, n, arguments.length > 1, null, !1));
},
removeData: function(t) {
return this.each(function() {
J.removeData(this, t);
});
}
}), J.extend({
queue: function(t, e, n) {
var r;
return t ? (e = (e || "fx") + "queue", r = J._data(t, e), n && (!r || J.isArray(n) ? r = J._data(t, e, J.makeArray(n)) : r.push(n)),
r || []) : void 0;
},
dequeue: function(t, e) {
e = e || "fx";
var n = J.queue(t, e), r = n.length, i = n.shift(), o = J._queueHooks(t, e), s = function() {
J.dequeue(t, e);
};
"inprogress" === i && (i = n.shift(), r--), i && ("fx" === e && n.unshift("inprogress"),
delete o.stop, i.call(t, s, o)), !r && o && o.empty.fire();
},
_queueHooks: function(t, e) {
var n = e + "queueHooks";
return J._data(t, n) || J._data(t, n, {
empty: J.Callbacks("once memory").add(function() {
J.removeData(t, e + "queue", !0), J.removeData(t, n, !0);
})
});
}
}), J.fn.extend({
queue: function(t, n) {
var r = 2;
return "string" != typeof t && (n = t, t = "fx", r--), r > arguments.length ? J.queue(this[0], t) : n === e ? this : this.each(function() {
var e = J.queue(this, t, n);
J._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && J.dequeue(this, t);
});
},
dequeue: function(t) {
return this.each(function() {
J.dequeue(this, t);
});
},
delay: function(t, e) {
return t = J.fx ? J.fx.speeds[t] || t : t, e = e || "fx", this.queue(e, function(e, n) {
var r = setTimeout(e, t);
n.stop = function() {
clearTimeout(r);
};
});
},
clearQueue: function(t) {
return this.queue(t || "fx", []);
},
promise: function(t, n) {
var r, i = 1, o = J.Deferred(), s = this, a = this.length, l = function() {
--i || o.resolveWith(s, [ s ]);
};
for ("string" != typeof t && (n = t, t = e), t = t || "fx"; a--; ) r = J._data(s[a], t + "queueHooks"),
r && r.empty && (i++, r.empty.add(l));
return l(), o.promise(n);
}
});
var me, ye, xe, be = /[\t\r\n]/g, we = /\r/g, _e = /^(?:button|input)$/i, ke = /^(?:button|input|object|select|textarea)$/i, Ce = /^a(?:rea|)$/i, Te = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, Se = J.support.getSetAttribute;
J.fn.extend({
attr: function(t, e) {
return J.access(this, J.attr, t, e, arguments.length > 1);
},
removeAttr: function(t) {
return this.each(function() {
J.removeAttr(this, t);
});
},
prop: function(t, e) {
return J.access(this, J.prop, t, e, arguments.length > 1);
},
removeProp: function(t) {
return t = J.propFix[t] || t, this.each(function() {
try {
this[t] = e, delete this[t];
} catch (n) {}
});
},
addClass: function(t) {
var e, n, r, i, o, s, a;
if (J.isFunction(t)) return this.each(function(e) {
J(this).addClass(t.call(this, e, this.className));
});
if (t && "string" == typeof t) for (e = t.split(ee), n = 0, r = this.length; r > n; n++) if (i = this[n],
1 === i.nodeType) if (i.className || 1 !== e.length) {
for (o = " " + i.className + " ", s = 0, a = e.length; a > s; s++) 0 > o.indexOf(" " + e[s] + " ") && (o += e[s] + " ");
i.className = J.trim(o);
} else i.className = t;
return this;
},
removeClass: function(t) {
var n, r, i, o, s, a, l;
if (J.isFunction(t)) return this.each(function(e) {
J(this).removeClass(t.call(this, e, this.className));
});
if (t && "string" == typeof t || t === e) for (n = (t || "").split(ee), a = 0, l = this.length; l > a; a++) if (i = this[a],
1 === i.nodeType && i.className) {
for (r = (" " + i.className + " ").replace(be, " "), o = 0, s = n.length; s > o; o++) for (;r.indexOf(" " + n[o] + " ") >= 0; ) r = r.replace(" " + n[o] + " ", " ");
i.className = t ? J.trim(r) : "";
}
return this;
},
toggleClass: function(t, e) {
var n = typeof t, r = "boolean" == typeof e;
return J.isFunction(t) ? this.each(function(n) {
J(this).toggleClass(t.call(this, n, this.className, e), e);
}) : this.each(function() {
if ("string" === n) for (var i, o = 0, s = J(this), a = e, l = t.split(ee); i = l[o++]; ) a = r ? a : !s.hasClass(i),
s[a ? "addClass" : "removeClass"](i); else ("undefined" === n || "boolean" === n) && (this.className && J._data(this, "__className__", this.className),
this.className = this.className || t === !1 ? "" : J._data(this, "__className__") || "");
});
},
hasClass: function(t) {
for (var e = " " + t + " ", n = 0, r = this.length; r > n; n++) if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(be, " ").indexOf(e) >= 0) return !0;
return !1;
},
val: function(t) {
var n, r, i, o = this[0];
{
if (arguments.length) return i = J.isFunction(t), this.each(function(r) {
var o, s = J(this);
1 === this.nodeType && (o = i ? t.call(this, r, s.val()) : t, null == o ? o = "" : "number" == typeof o ? o += "" : J.isArray(o) && (o = J.map(o, function(t) {
return null == t ? "" : t + "";
})), n = J.valHooks[this.type] || J.valHooks[this.nodeName.toLowerCase()], n && "set" in n && n.set(this, o, "value") !== e || (this.value = o));
});
if (o) return n = J.valHooks[o.type] || J.valHooks[o.nodeName.toLowerCase()], n && "get" in n && (r = n.get(o, "value")) !== e ? r : (r = o.value,
"string" == typeof r ? r.replace(we, "") : null == r ? "" : r);
}
}
}), J.extend({
valHooks: {
option: {
get: function(t) {
var e = t.attributes.value;
return !e || e.specified ? t.value : t.text;
}
},
select: {
get: function(t) {
for (var e, n, r = t.options, i = t.selectedIndex, o = "select-one" === t.type || 0 > i, s = o ? null : [], a = o ? i + 1 : r.length, l = 0 > i ? a : o ? i : 0; a > l; l++) if (n = r[l],
!(!n.selected && l !== i || (J.support.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && J.nodeName(n.parentNode, "optgroup"))) {
if (e = J(n).val(), o) return e;
s.push(e);
}
return s;
},
set: function(t, e) {
var n = J.makeArray(e);
return J(t).find("option").each(function() {
this.selected = J.inArray(J(this).val(), n) >= 0;
}), n.length || (t.selectedIndex = -1), n;
}
}
},
attrFn: {},
attr: function(t, n, r, i) {
var o, s, a, l = t.nodeType;
if (t && 3 !== l && 8 !== l && 2 !== l) return i && J.isFunction(J.fn[n]) ? J(t)[n](r) : t.getAttribute === void 0 ? J.prop(t, n, r) : (a = 1 !== l || !J.isXMLDoc(t),
a && (n = n.toLowerCase(), s = J.attrHooks[n] || (Te.test(n) ? ye : me)), r !== e ? null === r ? (J.removeAttr(t, n),
void 0) : s && "set" in s && a && (o = s.set(t, r, n)) !== e ? o : (t.setAttribute(n, r + ""),
r) : s && "get" in s && a && null !== (o = s.get(t, n)) ? o : (o = t.getAttribute(n),
null === o ? e : o));
},
removeAttr: function(t, e) {
var n, r, i, o, s = 0;
if (e && 1 === t.nodeType) for (r = e.split(ee); r.length > s; s++) i = r[s], i && (n = J.propFix[i] || i,
o = Te.test(i), o || J.attr(t, i, ""), t.removeAttribute(Se ? i : n), o && n in t && (t[n] = !1));
},
attrHooks: {
type: {
set: function(t, e) {
if (_e.test(t.nodeName) && t.parentNode) J.error("type property can't be changed"); else if (!J.support.radioValue && "radio" === e && J.nodeName(t, "input")) {
var n = t.value;
return t.setAttribute("type", e), n && (t.value = n), e;
}
}
},
value: {
get: function(t, e) {
return me && J.nodeName(t, "button") ? me.get(t, e) : e in t ? t.value : null;
},
set: function(t, e, n) {
return me && J.nodeName(t, "button") ? me.set(t, e, n) : (t.value = e, void 0);
}
}
},
propFix: {
tabindex: "tabIndex",
readonly: "readOnly",
"for": "htmlFor",
"class": "className",
maxlength: "maxLength",
cellspacing: "cellSpacing",
cellpadding: "cellPadding",
rowspan: "rowSpan",
colspan: "colSpan",
usemap: "useMap",
frameborder: "frameBorder",
contenteditable: "contentEditable"
},
prop: function(t, n, r) {
var i, o, s, a = t.nodeType;
if (t && 3 !== a && 8 !== a && 2 !== a) return s = 1 !== a || !J.isXMLDoc(t), s && (n = J.propFix[n] || n,
o = J.propHooks[n]), r !== e ? o && "set" in o && (i = o.set(t, r, n)) !== e ? i : t[n] = r : o && "get" in o && null !== (i = o.get(t, n)) ? i : t[n];
},
propHooks: {
tabIndex: {
get: function(t) {
var n = t.getAttributeNode("tabindex");
return n && n.specified ? parseInt(n.value, 10) : ke.test(t.nodeName) || Ce.test(t.nodeName) && t.href ? 0 : e;
}
}
}
}), ye = {
get: function(t, n) {
var r, i = J.prop(t, n);
return i === !0 || "boolean" != typeof i && (r = t.getAttributeNode(n)) && r.nodeValue !== !1 ? n.toLowerCase() : e;
},
set: function(t, e, n) {
var r;
return e === !1 ? J.removeAttr(t, n) : (r = J.propFix[n] || n, r in t && (t[r] = !0),
t.setAttribute(n, n.toLowerCase())), n;
}
}, Se || (xe = {
name: !0,
id: !0,
coords: !0
}, me = J.valHooks.button = {
get: function(t, n) {
var r;
return r = t.getAttributeNode(n), r && (xe[n] ? "" !== r.value : r.specified) ? r.value :