diff --git a/knockout-3.5.1.js b/knockout-3.5.1.js new file mode 100644 index 0000000..a5e3c63 --- /dev/null +++ b/knockout-3.5.1.js @@ -0,0 +1,3598 @@ +/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */ +(function() { + (function(n) { + var A = this || (0, eval)("this"), + w = A.document, + R = A.navigator, + v = A.jQuery, + H = A.JSON; + v || "undefined" === typeof jQuery || (v = jQuery); + (function(n) { + "function" === typeof define && define.amd ? define(["exports", "require"], n) : "object" === typeof exports && "object" === typeof module ? n(module.exports || exports) : n(A.ko = {}) + })(function(S, T) { + function K(a, c) { + return null === a || typeof a in W ? a === c : !1 + } + + function X(b, c) { + var d; + return function() { + d || (d = a.a.setTimeout(function() { + d = n; + b() + }, c)) + } + } + + function Y(b, c) { + var d; + return function() { + clearTimeout(d); + d = a.a.setTimeout(b, c) + } + } + + function Z(a, c) { + c && "change" !== c ? "beforeChange" === c ? this.pc(a) : this.gb(a, c) : this.qc(a) + } + + function aa(a, c) { + null !== c && c.s && c.s() + } + + function ba(a, c) { + var d = this.qd, + e = d[r]; + e.ra || (this.Qb && this.mb[c] ? (d.uc(c, a, this.mb[c]), this.mb[c] = null, --this.Qb) : e.I[c] || d.uc(c, a, e.J ? { + da: a + } : d.$c(a)), a.Ja && a.gd()) + } + var a = "undefined" !== typeof S ? S : {}; + a.b = function(b, c) { + for (var d = b.split("."), e = a, f = 0; f < d.length - 1; f++) e = e[d[f]]; + e[d[d.length - 1]] = c + }; + a.L = function(a, c, d) { + a[c] = d + }; + a.version = "3.5.1"; + a.b("version", + a.version); + a.options = { + deferUpdates: !1, + useOnlyNativeEvents: !1, + foreachHidesDestroyed: !1 + }; + a.a = function() { + function b(a, b) { + for (var c in a) f.call(a, c) && b(c, a[c]) + } + + function c(a, b) { + if (b) + for (var c in b) f.call(b, c) && (a[c] = b[c]); + return a + } + + function d(a, b) { + a.__proto__ = b; + return a + } + + function e(b, c, d, e) { + var l = b[c].match(q) || []; + a.a.D(d.match(q), function(b) { + a.a.Na(l, b, e) + }); + b[c] = l.join(" ") + } + var f = Object.prototype.hasOwnProperty, + g = { + __proto__: [] + } + instanceof Array, h = "function" === typeof Symbol, m = {}, k = {}; + m[R && /Firefox\/2/i.test(R.userAgent) ? + "KeyboardEvent" : "UIEvents"] = ["keyup", "keydown", "keypress"]; + m.MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "); + b(m, function(a, b) { + if (b.length) + for (var c = 0, d = b.length; c < d; c++) k[b[c]] = a + }); + var l = { + propertychange: !0 + }, + p = w && function() { + for (var a = 3, b = w.createElement("div"), c = b.getElementsByTagName("i"); b.innerHTML = "\x3c!--[if gt IE " + ++a + "]> a.a.A(c, b) && c.push(b) + }); + return c + }, + Mb: function(a, + b, c) { + var d = []; + if (a) + for (var e = 0, l = a.length; e < l; e++) d.push(b.call(c, a[e], e)); + return d + }, + jb: function(a, b, c) { + var d = []; + if (a) + for (var e = 0, l = a.length; e < l; e++) b.call(c, a[e], e) && d.push(a[e]); + return d + }, + Nb: function(a, b) { + if (b instanceof Array) a.push.apply(a, b); + else + for (var c = 0, d = b.length; c < d; c++) a.push(b[c]); + return a + }, + Na: function(b, c, d) { + var e = a.a.A(a.a.bc(b), c); + 0 > e ? d && b.push(c) : d || b.splice(e, 1) + }, + Ba: g, + extend: c, + setPrototypeOf: d, + Ab: g ? d : c, + P: b, + Ga: function(a, b, c) { + if (!a) return a; + var d = {}, + e; + for (e in a) f.call(a, e) && (d[e] = + b.call(c, a[e], e, a)); + return d + }, + Tb: function(b) { + for (; b.firstChild;) a.removeNode(b.firstChild) + }, + Yb: function(b) { + b = a.a.la(b); + for (var c = (b[0] && b[0].ownerDocument || w).createElement("div"), d = 0, e = b.length; d < e; d++) c.appendChild(a.oa(b[d])); + return c + }, + Ca: function(b, c) { + for (var d = 0, e = b.length, l = []; d < e; d++) { + var k = b[d].cloneNode(!0); + l.push(c ? a.oa(k) : k) + } + return l + }, + va: function(b, c) { + a.a.Tb(b); + if (c) + for (var d = 0, e = c.length; d < e; d++) b.appendChild(c[d]) + }, + Xc: function(b, c) { + var d = b.nodeType ? [b] : b; + if (0 < d.length) { + for (var e = d[0], + l = e.parentNode, k = 0, f = c.length; k < f; k++) l.insertBefore(c[k], e); + k = 0; + for (f = d.length; k < f; k++) a.removeNode(d[k]) + } + }, + Ua: function(a, b) { + if (a.length) { + for (b = 8 === b.nodeType && b.parentNode || b; a.length && a[0].parentNode !== b;) a.splice(0, 1); + for (; 1 < a.length && a[a.length - 1].parentNode !== b;) a.length--; + if (1 < a.length) { + var c = a[0], + d = a[a.length - 1]; + for (a.length = 0; c !== d;) a.push(c), c = c.nextSibling; + a.push(d) + } + } + return a + }, + Zc: function(a, b) { + 7 > p ? a.setAttribute("selected", b) : a.selected = b + }, + Db: function(a) { + return null === a || a === n ? "" : a.trim ? + a.trim() : a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g, "") + }, + Ud: function(a, b) { + a = a || ""; + return b.length > a.length ? !1 : a.substring(0, b.length) === b + }, + vd: function(a, b) { + if (a === b) return !0; + if (11 === a.nodeType) return !1; + if (b.contains) return b.contains(1 !== a.nodeType ? a.parentNode : a); + if (b.compareDocumentPosition) return 16 == (b.compareDocumentPosition(a) & 16); + for (; a && a != b;) a = a.parentNode; + return !!a + }, + Sb: function(b) { + return a.a.vd(b, b.ownerDocument.documentElement) + }, + kd: function(b) { + return !!a.a.Lb(b, a.a.Sb) + }, + R: function(a) { + return a && + a.tagName && a.tagName.toLowerCase() + }, + Ac: function(b) { + return a.onError ? function() { + try { + return b.apply(this, arguments) + } catch (c) { + throw a.onError && a.onError(c), c; + } + } : b + }, + setTimeout: function(b, c) { + return setTimeout(a.a.Ac(b), c) + }, + Gc: function(b) { + setTimeout(function() { + a.onError && a.onError(b); + throw b; + }, 0) + }, + B: function(b, c, d) { + var e = a.a.Ac(d); + d = l[c]; + if (a.options.useOnlyNativeEvents || d || !v) + if (d || "function" != typeof b.addEventListener) + if ("undefined" != typeof b.attachEvent) { + var k = function(a) { + e.call(b, a) + }, + f = "on" + c; + b.attachEvent(f, + k); + a.a.K.za(b, function() { + b.detachEvent(f, k) + }) + } else throw Error("Browser doesn't support addEventListener or attachEvent"); + else b.addEventListener(c, e, !1); + else t || (t = "function" == typeof v(b).on ? "on" : "bind"), v(b)[t](c, e) + }, + Fb: function(b, c) { + if (!b || !b.nodeType) throw Error("element must be a DOM node when calling triggerEvent"); + var d; + "input" === a.a.R(b) && b.type && "click" == c.toLowerCase() ? (d = b.type, d = "checkbox" == d || "radio" == d) : d = !1; + if (a.options.useOnlyNativeEvents || !v || d) + if ("function" == typeof w.createEvent) + if ("function" == + typeof b.dispatchEvent) d = w.createEvent(k[c] || "HTMLEvents"), d.initEvent(c, !0, !0, A, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, b), b.dispatchEvent(d); + else throw Error("The supplied element doesn't support dispatchEvent"); + else if (d && b.click) b.click(); + else if ("undefined" != typeof b.fireEvent) b.fireEvent("on" + c); + else throw Error("Browser doesn't support triggering events"); + else v(b).trigger(c) + }, + f: function(b) { + return a.O(b) ? b() : b + }, + bc: function(b) { + return a.O(b) ? b.v() : b + }, + Eb: function(b, c, d) { + var l; + c && ("object" === typeof b.classList ? + (l = b.classList[d ? "add" : "remove"], a.a.D(c.match(q), function(a) { + l.call(b.classList, a) + })) : "string" === typeof b.className.baseVal ? e(b.className, "baseVal", c, d) : e(b, "className", c, d)) + }, + Bb: function(b, c) { + var d = a.a.f(c); + if (null === d || d === n) d = ""; + var e = a.h.firstChild(b); + !e || 3 != e.nodeType || a.h.nextSibling(e) ? a.h.va(b, [b.ownerDocument.createTextNode(d)]) : e.data = d; + a.a.Ad(b) + }, + Yc: function(a, b) { + a.name = b; + if (7 >= p) try { + var c = a.name.replace(/[&<>'"]/g, function(a) { + return "&#" + a.charCodeAt(0) + ";" + }); + a.mergeAttributes(w.createElement(""), !1) + } catch (d) {} + }, + Ad: function(a) { + 9 <= p && (a = 1 == a.nodeType ? a : a.parentNode, a.style && (a.style.zoom = a.style.zoom)) + }, + wd: function(a) { + if (p) { + var b = a.style.width; + a.style.width = 0; + a.style.width = b + } + }, + Pd: function(b, c) { + b = a.a.f(b); + c = a.a.f(c); + for (var d = [], e = b; e <= c; e++) d.push(e); + return d + }, + la: function(a) { + for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c]); + return b + }, + Da: function(a) { + return h ? Symbol(a) : a + }, + Zd: 6 === p, + $d: 7 === p, + W: p, + Lc: function(b, c) { + for (var d = a.a.la(b.getElementsByTagName("input")).concat(a.a.la(b.getElementsByTagName("textarea"))), + e = "string" == typeof c ? function(a) { + return a.name === c + } : function(a) { + return c.test(a.name) + }, l = [], k = d.length - 1; 0 <= k; k--) e(d[k]) && l.push(d[k]); + return l + }, + Nd: function(b) { + return "string" == typeof b && (b = a.a.Db(b)) ? H && H.parse ? H.parse(b) : (new Function("return " + b))() : null + }, + hc: function(b, c, d) { + if (!H || !H.stringify) throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"); + return H.stringify(a.a.f(b), c, d) + }, + Od: function(c, d, e) { + e = e || {}; + var l = e.params || {}, + k = e.includeFields || this.Jc, + f = c; + if ("object" == typeof c && "form" === a.a.R(c)) + for (var f = c.action, h = k.length - 1; 0 <= h; h--) + for (var g = a.a.Lc(c, k[h]), m = g.length - 1; 0 <= m; m--) l[g[m].name] = g[m].value; + d = a.a.f(d); + var p = w.createElement("form"); + p.style.display = "none"; + p.action = f; + p.method = "post"; + for (var q in d) c = w.createElement("input"), c.type = "hidden", c.name = q, c.value = a.a.hc(a.a.f(d[q])), p.appendChild(c); + b(l, function(a, b) { + var c = w.createElement("input"); + c.type = "hidden"; + c.name = a; + c.value = b; + p.appendChild(c) + }); + w.body.appendChild(p); + e.submitter ? e.submitter(p) : p.submit(); + setTimeout(function() { + p.parentNode.removeChild(p) + }, 0) + } + } + }(); + a.b("utils", a.a); + a.b("utils.arrayForEach", a.a.D); + a.b("utils.arrayFirst", a.a.Lb); + a.b("utils.arrayFilter", a.a.jb); + a.b("utils.arrayGetDistinctValues", a.a.wc); + a.b("utils.arrayIndexOf", a.a.A); + a.b("utils.arrayMap", a.a.Mb); + a.b("utils.arrayPushAll", a.a.Nb); + a.b("utils.arrayRemoveItem", a.a.Pa); + a.b("utils.cloneNodes", a.a.Ca); + a.b("utils.createSymbolOrString", + a.a.Da); + a.b("utils.extend", a.a.extend); + a.b("utils.fieldsIncludedWithJsonPost", a.a.Jc); + a.b("utils.getFormFields", a.a.Lc); + a.b("utils.objectMap", a.a.Ga); + a.b("utils.peekObservable", a.a.bc); + a.b("utils.postJson", a.a.Od); + a.b("utils.parseJson", a.a.Nd); + a.b("utils.registerEventHandler", a.a.B); + a.b("utils.stringifyJson", a.a.hc); + a.b("utils.range", a.a.Pd); + a.b("utils.toggleDomNodeCssClass", a.a.Eb); + a.b("utils.triggerEvent", a.a.Fb); + a.b("utils.unwrapObservable", a.a.f); + a.b("utils.objectForEach", a.a.P); + a.b("utils.addOrRemoveItem", + a.a.Na); + a.b("utils.setTextContent", a.a.Bb); + a.b("unwrap", a.a.f); + Function.prototype.bind || (Function.prototype.bind = function(a) { + var c = this; + if (1 === arguments.length) return function() { + return c.apply(a, arguments) + }; + var d = Array.prototype.slice.call(arguments, 1); + return function() { + var e = d.slice(0); + e.push.apply(e, arguments); + return c.apply(a, e) + } + }); + a.a.g = new function() { + var b = 0, + c = "__ko__" + (new Date).getTime(), + d = {}, + e, f; + a.a.W ? (e = function(a, e) { + var f = a[c]; + if (!f || "null" === f || !d[f]) { + if (!e) return n; + f = a[c] = "ko" + b++; + d[f] = {} + } + return d[f] + }, f = function(a) { + var b = a[c]; + return b ? (delete d[b], a[c] = null, !0) : !1 + }) : (e = function(a, b) { + var d = a[c]; + !d && b && (d = a[c] = {}); + return d + }, f = function(a) { + return a[c] ? (delete a[c], !0) : !1 + }); + return { + get: function(a, b) { + var c = e(a, !1); + return c && c[b] + }, + set: function(a, b, c) { + (a = e(a, c !== n)) && (a[b] = c) + }, + Ub: function(a, b, c) { + a = e(a, !0); + return a[b] || (a[b] = c) + }, + clear: f, + Z: function() { + return b++ + c + } + } + }; + a.b("utils.domData", a.a.g); + a.b("utils.domData.clear", a.a.g.clear); + a.a.K = new function() { + function b(b, c) { + var d = a.a.g.get(b, e); + d === n && c && (d = [], a.a.g.set(b, e, d)); + return d + } + + function c(c) { + var e = b(c, !1); + if (e) + for (var e = e.slice(0), k = 0; k < e.length; k++) e[k](c); + a.a.g.clear(c); + a.a.K.cleanExternalData(c); + g[c.nodeType] && d(c.childNodes, !0) + } + + function d(b, d) { + for (var e = [], l, f = 0; f < b.length; f++) + if (!d || 8 === b[f].nodeType) + if (c(e[e.length] = l = b[f]), b[f] !== l) + for (; f-- && -1 == a.a.A(e, b[f]);); + } + var e = a.a.g.Z(), + f = { + 1: !0, + 8: !0, + 9: !0 + }, + g = { + 1: !0, + 9: !0 + }; + return { + za: function(a, c) { + if ("function" != typeof c) throw Error("Callback must be a function"); + b(a, !0).push(c) + }, + yb: function(c, + d) { + var f = b(c, !1); + f && (a.a.Pa(f, d), 0 == f.length && a.a.g.set(c, e, n)) + }, + oa: function(b) { + a.u.G(function() { + f[b.nodeType] && (c(b), g[b.nodeType] && d(b.getElementsByTagName("*"))) + }); + return b + }, + removeNode: function(b) { + a.oa(b); + b.parentNode && b.parentNode.removeChild(b) + }, + cleanExternalData: function(a) { + v && "function" == typeof v.cleanData && v.cleanData([a]) + } + } + }; + a.oa = a.a.K.oa; + a.removeNode = a.a.K.removeNode; + a.b("cleanNode", a.oa); + a.b("removeNode", a.removeNode); + a.b("utils.domNodeDisposal", a.a.K); + a.b("utils.domNodeDisposal.addDisposeCallback", + a.a.K.za); + a.b("utils.domNodeDisposal.removeDisposeCallback", a.a.K.yb); + (function() { + var b = [0, "", ""], + c = [1, "", "
"], + d = [3, "", "
"], + e = [1, ""], + f = { + thead: c, + tbody: c, + tfoot: c, + tr: [2, "", "
"], + td: d, + th: d, + option: e, + optgroup: e + }, + g = 8 >= a.a.W; + a.a.ua = function(c, d) { + var e; + if (v) + if (v.parseHTML) e = v.parseHTML(c, d) || []; + else { + if ((e = v.clean([c], d)) && e[0]) { + for (var l = e[0]; l.parentNode && 11 !== l.parentNode.nodeType;) l = l.parentNode; + l.parentNode && l.parentNode.removeChild(l) + } + } + else { + (e = d) || (e = w); + var l = e.parentWindow || e.defaultView || A, + p = a.a.Db(c).toLowerCase(), + q = e.createElement("div"), + t; + t = (p = p.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/)) && f[p[1]] || b; + p = t[0]; + t = "ignored
" + t[1] + c + t[2] + "
"; + "function" == typeof l.innerShiv ? q.appendChild(l.innerShiv(t)) : (g && e.body.appendChild(q), q.innerHTML = t, g && q.parentNode.removeChild(q)); + for (; p--;) q = q.lastChild; + e = a.a.la(q.lastChild.childNodes) + } + return e + }; + a.a.Md = function(b, c) { + var d = a.a.ua(b, + c); + return d.length && d[0].parentElement || a.a.Yb(d) + }; + a.a.fc = function(b, c) { + a.a.Tb(b); + c = a.a.f(c); + if (null !== c && c !== n) + if ("string" != typeof c && (c = c.toString()), v) v(b).html(c); + else + for (var d = a.a.ua(c, b.ownerDocument), e = 0; e < d.length; e++) b.appendChild(d[e]) + } + })(); + a.b("utils.parseHtmlFragment", a.a.ua); + a.b("utils.setHtml", a.a.fc); + a.aa = function() { + function b(c, e) { + if (c) + if (8 == c.nodeType) { + var f = a.aa.Uc(c.nodeValue); + null != f && e.push({ + ud: c, + Kd: f + }) + } else if (1 == c.nodeType) + for (var f = 0, g = c.childNodes, h = g.length; f < h; f++) b(g[f], + e) + } + var c = {}; + return { + Xb: function(a) { + if ("function" != typeof a) throw Error("You can only pass a function to ko.memoization.memoize()"); + var b = (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1) + (4294967296 * (1 + Math.random()) | 0).toString(16).substring(1); + c[b] = a; + return "\x3c!--[ko_memo:" + b + "]--\x3e" + }, + bd: function(a, b) { + var f = c[a]; + if (f === n) throw Error("Couldn't find any memo with ID " + a + ". Perhaps it's already been unmemoized."); + try { + return f.apply(null, b || []), !0 + } finally { + delete c[a] + } + }, + cd: function(c, e) { + var f = []; + b(c, f); + for (var g = 0, h = f.length; g < h; g++) { + var m = f[g].ud, + k = [m]; + e && a.a.Nb(k, e); + a.aa.bd(f[g].Kd, k); + m.nodeValue = ""; + m.parentNode && m.parentNode.removeChild(m) + } + }, + Uc: function(a) { + return (a = a.match(/^\[ko_memo\:(.*?)\]$/)) ? a[1] : null + } + } + }(); + a.b("memoization", a.aa); + a.b("memoization.memoize", a.aa.Xb); + a.b("memoization.unmemoize", a.aa.bd); + a.b("memoization.parseMemoText", a.aa.Uc); + a.b("memoization.unmemoizeDomNodeAndDescendants", a.aa.cd); + a.na = function() { + function b() { + if (f) + for (var b = f, c = 0, d; h < f;) + if (d = e[h++]) { + if (h > b) { + if (5E3 <= + ++c) { + h = f; + a.a.Gc(Error("'Too much recursion' after processing " + c + " task groups.")); + break + } + b = f + } + try { + d() + } catch (p) { + a.a.Gc(p) + } + } + } + + function c() { + b(); + h = f = e.length = 0 + } + var d, e = [], + f = 0, + g = 1, + h = 0; + A.MutationObserver ? d = function(a) { + var b = w.createElement("div"); + (new MutationObserver(a)).observe(b, { + attributes: !0 + }); + return function() { + b.classList.toggle("foo") + } + }(c) : d = w && "onreadystatechange" in w.createElement("script") ? function(a) { + var b = w.createElement("script"); + b.onreadystatechange = function() { + b.onreadystatechange = null; + w.documentElement.removeChild(b); + b = null; + a() + }; + w.documentElement.appendChild(b) + } : function(a) { + setTimeout(a, 0) + }; + return { + scheduler: d, + zb: function(b) { + f || a.na.scheduler(c); + e[f++] = b; + return g++ + }, + cancel: function(a) { + a = a - (g - f); + a >= h && a < f && (e[a] = null) + }, + resetForTesting: function() { + var a = f - h; + h = f = e.length = 0; + return a + }, + Sd: b + } + }(); + a.b("tasks", a.na); + a.b("tasks.schedule", a.na.zb); + a.b("tasks.runEarly", a.na.Sd); + a.Ta = { + throttle: function(b, c) { + b.throttleEvaluation = c; + var d = null; + return a.$({ + read: b, + write: function(e) { + clearTimeout(d); + d = a.a.setTimeout(function() { + b(e) + }, + c) + } + }) + }, + rateLimit: function(a, c) { + var d, e, f; + "number" == typeof c ? d = c : (d = c.timeout, e = c.method); + a.Hb = !1; + f = "function" == typeof e ? e : "notifyWhenChangesStop" == e ? Y : X; + a.ub(function(a) { + return f(a, d, c) + }) + }, + deferred: function(b, c) { + if (!0 !== c) throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled."); + b.Hb || (b.Hb = !0, b.ub(function(c) { + var e, f = !1; + return function() { + if (!f) { + a.na.cancel(e); + e = a.na.zb(c); + try { + f = !0, b.notifySubscribers(n, "dirty") + } finally { + f = !1 + } + } + } + })) + }, + notify: function(a, c) { + a.equalityComparer = "always" == c ? null : K + } + }; + var W = { + undefined: 1, + "boolean": 1, + number: 1, + string: 1 + }; + a.b("extenders", a.Ta); + a.ic = function(b, c, d) { + this.da = b; + this.lc = c; + this.mc = d; + this.Ib = !1; + this.fb = this.Jb = null; + a.L(this, "dispose", this.s); + a.L(this, "disposeWhenNodeIsRemoved", this.l) + }; + a.ic.prototype.s = function() { + this.Ib || (this.fb && a.a.K.yb(this.Jb, this.fb), this.Ib = !0, this.mc(), this.da = this.lc = this.mc = this.Jb = this.fb = null) + }; + a.ic.prototype.l = function(b) { + this.Jb = b; + a.a.K.za(b, this.fb = this.s.bind(this)) + }; + a.T = function() { + a.a.Ab(this, D); + D.qb(this) + }; + var D = { + qb: function(a) { + a.U = { + change: [] + }; + a.sc = 1 + }, + subscribe: function(b, c, d) { + var e = this; + d = d || "change"; + var f = new a.ic(e, c ? b.bind(c) : b, function() { + a.a.Pa(e.U[d], f); + e.hb && e.hb(d) + }); + e.Qa && e.Qa(d); + e.U[d] || (e.U[d] = []); + e.U[d].push(f); + return f + }, + notifySubscribers: function(b, c) { + c = c || "change"; + "change" === c && this.Gb(); + if (this.Wa(c)) { + var d = "change" === c && this.ed || this.U[c].slice(0); + try { + a.u.xc(); + for (var e = 0, f; f = d[e]; ++e) f.Ib || f.lc(b) + } finally { + a.u.end() + } + } + }, + ob: function() { + return this.sc + }, + Dd: function(a) { + return this.ob() !== a + }, + Gb: function() { + ++this.sc + }, + ub: function(b) { + var c = this, + d = a.O(c), + e, f, g, h, m; + c.gb || (c.gb = c.notifySubscribers, c.notifySubscribers = Z); + var k = b(function() { + c.Ja = !1; + d && h === c && (h = c.nc ? c.nc() : c()); + var a = f || m && c.sb(g, h); + m = f = e = !1; + a && c.gb(g = h) + }); + c.qc = function(a, b) { + b && c.Ja || (m = !b); + c.ed = c.U.change.slice(0); + c.Ja = e = !0; + h = a; + k() + }; + c.pc = function(a) { + e || (g = a, c.gb(a, "beforeChange")) + }; + c.rc = function() { + m = !0 + }; + c.gd = function() { + c.sb(g, c.v(!0)) && (f = !0) + } + }, + Wa: function(a) { + return this.U[a] && this.U[a].length + }, + Bd: function(b) { + if (b) return this.U[b] && this.U[b].length || 0; + var c = 0; + a.a.P(this.U, function(a, b) { + "dirty" !== a && (c += b.length) + }); + return c + }, + sb: function(a, c) { + return !this.equalityComparer || !this.equalityComparer(a, c) + }, + toString: function() { + return "[object Object]" + }, + extend: function(b) { + var c = this; + b && a.a.P(b, function(b, e) { + var f = a.Ta[b]; + "function" == typeof f && (c = f(c, e) || c) + }); + return c + } + }; + a.L(D, "init", D.qb); + a.L(D, "subscribe", D.subscribe); + a.L(D, "extend", D.extend); + a.L(D, "getSubscriptionsCount", D.Bd); + a.a.Ba && a.a.setPrototypeOf(D, + Function.prototype); + a.T.fn = D; + a.Qc = function(a) { + return null != a && "function" == typeof a.subscribe && "function" == typeof a.notifySubscribers + }; + a.b("subscribable", a.T); + a.b("isSubscribable", a.Qc); + a.S = a.u = function() { + function b(a) { + d.push(e); + e = a + } + + function c() { + e = d.pop() + } + var d = [], + e, f = 0; + return { + xc: b, + end: c, + cc: function(b) { + if (e) { + if (!a.Qc(b)) throw Error("Only subscribable things can act as dependencies"); + e.od.call(e.pd, b, b.fd || (b.fd = ++f)) + } + }, + G: function(a, d, e) { + try { + return b(), a.apply(d, e || []) + } finally { + c() + } + }, + qa: function() { + if (e) return e.o.qa() + }, + Va: function() { + if (e) return e.o.Va() + }, + Ya: function() { + if (e) return e.Ya + }, + o: function() { + if (e) return e.o + } + } + }(); + a.b("computedContext", a.S); + a.b("computedContext.getDependenciesCount", a.S.qa); + a.b("computedContext.getDependencies", a.S.Va); + a.b("computedContext.isInitial", a.S.Ya); + a.b("computedContext.registerDependency", a.S.cc); + a.b("ignoreDependencies", a.Yd = a.u.G); + var I = a.a.Da("_latestValue"); + a.ta = function(b) { + function c() { + if (0 < arguments.length) return c.sb(c[I], arguments[0]) && (c.ya(), c[I] = arguments[0], c.xa()), this; + a.u.cc(c); + return c[I] + } + c[I] = b; + a.a.Ba || a.a.extend(c, a.T.fn); + a.T.fn.qb(c); + a.a.Ab(c, F); + a.options.deferUpdates && a.Ta.deferred(c, !0); + return c + }; + var F = { + equalityComparer: K, + v: function() { + return this[I] + }, + xa: function() { + this.notifySubscribers(this[I], "spectate"); + this.notifySubscribers(this[I]) + }, + ya: function() { + this.notifySubscribers(this[I], "beforeChange") + } + }; + a.a.Ba && a.a.setPrototypeOf(F, a.T.fn); + var G = a.ta.Ma = "__ko_proto__"; + F[G] = a.ta; + a.O = function(b) { + if ((b = "function" == typeof b && b[G]) && b !== F[G] && b !== a.o.fn[G]) throw Error("Invalid object that looks like an observable; possibly from another Knockout instance"); + return !!b + }; + a.Za = function(b) { + return "function" == typeof b && (b[G] === F[G] || b[G] === a.o.fn[G] && b.Nc) + }; + a.b("observable", a.ta); + a.b("isObservable", a.O); + a.b("isWriteableObservable", a.Za); + a.b("isWritableObservable", a.Za); + a.b("observable.fn", F); + a.L(F, "peek", F.v); + a.L(F, "valueHasMutated", F.xa); + a.L(F, "valueWillMutate", F.ya); + a.Ha = function(b) { + b = b || []; + if ("object" != typeof b || !("length" in b)) throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined."); + b = a.ta(b); + a.a.Ab(b, + a.Ha.fn); + return b.extend({ + trackArrayChanges: !0 + }) + }; + a.Ha.fn = { + remove: function(b) { + for (var c = this.v(), d = [], e = "function" != typeof b || a.O(b) ? function(a) { + return a === b + } : b, f = 0; f < c.length; f++) { + var g = c[f]; + if (e(g)) { + 0 === d.length && this.ya(); + if (c[f] !== g) throw Error("Array modified during remove; cannot remove item"); + d.push(g); + c.splice(f, 1); + f-- + } + } + d.length && this.xa(); + return d + }, + removeAll: function(b) { + if (b === n) { + var c = this.v(), + d = c.slice(0); + this.ya(); + c.splice(0, c.length); + this.xa(); + return d + } + return b ? this.remove(function(c) { + return 0 <= + a.a.A(b, c) + }) : [] + }, + destroy: function(b) { + var c = this.v(), + d = "function" != typeof b || a.O(b) ? function(a) { + return a === b + } : b; + this.ya(); + for (var e = c.length - 1; 0 <= e; e--) { + var f = c[e]; + d(f) && (f._destroy = !0) + } + this.xa() + }, + destroyAll: function(b) { + return b === n ? this.destroy(function() { + return !0 + }) : b ? this.destroy(function(c) { + return 0 <= a.a.A(b, c) + }) : [] + }, + indexOf: function(b) { + var c = this(); + return a.a.A(c, b) + }, + replace: function(a, c) { + var d = this.indexOf(a); + 0 <= d && (this.ya(), this.v()[d] = c, this.xa()) + }, + sorted: function(a) { + var c = this().slice(0); + return a ? c.sort(a) : c.sort() + }, + reversed: function() { + return this().slice(0).reverse() + } + }; + a.a.Ba && a.a.setPrototypeOf(a.Ha.fn, a.ta.fn); + a.a.D("pop push reverse shift sort splice unshift".split(" "), function(b) { + a.Ha.fn[b] = function() { + var a = this.v(); + this.ya(); + this.zc(a, b, arguments); + var d = a[b].apply(a, arguments); + this.xa(); + return d === a ? this : d + } + }); + a.a.D(["slice"], function(b) { + a.Ha.fn[b] = function() { + var a = this(); + return a[b].apply(a, arguments) + } + }); + a.Pc = function(b) { + return a.O(b) && "function" == typeof b.remove && "function" == + typeof b.push + }; + a.b("observableArray", a.Ha); + a.b("isObservableArray", a.Pc); + a.Ta.trackArrayChanges = function(b, c) { + function d() { + function c() { + if (m) { + var d = [].concat(b.v() || []), + e; + if (b.Wa("arrayChange")) { + if (!f || 1 < m) f = a.a.Pb(k, d, b.Ob); + e = f + } + k = d; + f = null; + m = 0; + e && e.length && b.notifySubscribers(e, "arrayChange") + } + } + e ? c() : (e = !0, h = b.subscribe(function() { + ++m + }, null, "spectate"), k = [].concat(b.v() || []), f = null, g = b.subscribe(c)) + } + b.Ob = {}; + c && "object" == typeof c && a.a.extend(b.Ob, c); + b.Ob.sparse = !0; + if (!b.zc) { + var e = !1, + f = null, + g, h, m = 0, + k, l = b.Qa, + p = b.hb; + b.Qa = function(a) { + l && l.call(b, a); + "arrayChange" === a && d() + }; + b.hb = function(a) { + p && p.call(b, a); + "arrayChange" !== a || b.Wa("arrayChange") || (g && g.s(), h && h.s(), h = g = null, e = !1, k = n) + }; + b.zc = function(b, c, d) { + function l(a, b, c) { + return k[k.length] = { + status: a, + value: b, + index: c + } + } + if (e && !m) { + var k = [], + p = b.length, + g = d.length, + h = 0; + switch (c) { + case "push": + h = p; + case "unshift": + for (c = 0; c < g; c++) l("added", d[c], h + c); + break; + case "pop": + h = p - 1; + case "shift": + p && l("deleted", b[h], h); + break; + case "splice": + c = Math.min(Math.max(0, 0 > d[0] ? p + d[0] : + d[0]), p); + for (var p = 1 === g ? p : Math.min(c + (d[1] || 0), p), g = c + g - 2, h = Math.max(p, g), U = [], L = [], n = 2; c < h; ++c, ++n) c < p && L.push(l("deleted", b[c], c)), c < g && U.push(l("added", d[n], c)); + a.a.Kc(L, U); + break; + default: + return + } + f = k + } + } + } + }; + var r = a.a.Da("_state"); + a.o = a.$ = function(b, c, d) { + function e() { + if (0 < arguments.length) { + if ("function" === typeof f) f.apply(g.nb, arguments); + else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters."); + return this + } + g.ra || + a.u.cc(e); + (g.ka || g.J && e.Xa()) && e.ha(); + return g.X + } + "object" === typeof b ? d = b : (d = d || {}, b && (d.read = b)); + if ("function" != typeof d.read) throw Error("Pass a function that returns the value of the ko.computed"); + var f = d.write, + g = { + X: n, + sa: !0, + ka: !0, + rb: !1, + jc: !1, + ra: !1, + wb: !1, + J: !1, + Wc: d.read, + nb: c || d.owner, + l: d.disposeWhenNodeIsRemoved || d.l || null, + Sa: d.disposeWhen || d.Sa, + Rb: null, + I: {}, + V: 0, + Ic: null + }; + e[r] = g; + e.Nc = "function" === typeof f; + a.a.Ba || a.a.extend(e, a.T.fn); + a.T.fn.qb(e); + a.a.Ab(e, C); + d.pure ? (g.wb = !0, g.J = !0, a.a.extend(e, da)) : + d.deferEvaluation && a.a.extend(e, ea); + a.options.deferUpdates && a.Ta.deferred(e, !0); + g.l && (g.jc = !0, g.l.nodeType || (g.l = null)); + g.J || d.deferEvaluation || e.ha(); + g.l && e.ja() && a.a.K.za(g.l, g.Rb = function() { + e.s() + }); + return e + }; + var C = { + equalityComparer: K, + qa: function() { + return this[r].V + }, + Va: function() { + var b = []; + a.a.P(this[r].I, function(a, d) { + b[d.Ka] = d.da + }); + return b + }, + Vb: function(b) { + if (!this[r].V) return !1; + var c = this.Va(); + return -1 !== a.a.A(c, b) ? !0 : !!a.a.Lb(c, function(a) { + return a.Vb && a.Vb(b) + }) + }, + uc: function(a, c, d) { + if (this[r].wb && + c === this) throw Error("A 'pure' computed must not be called recursively"); + this[r].I[a] = d; + d.Ka = this[r].V++; + d.La = c.ob() + }, + Xa: function() { + var a, c, d = this[r].I; + for (a in d) + if (Object.prototype.hasOwnProperty.call(d, a) && (c = d[a], this.Ia && c.da.Ja || c.da.Dd(c.La))) return !0 + }, + Jd: function() { + this.Ia && !this[r].rb && this.Ia(!1) + }, + ja: function() { + var a = this[r]; + return a.ka || 0 < a.V + }, + Rd: function() { + this.Ja ? this[r].ka && (this[r].sa = !0) : this.Hc() + }, + $c: function(a) { + if (a.Hb) { + var c = a.subscribe(this.Jd, this, "dirty"), + d = a.subscribe(this.Rd, + this); + return { + da: a, + s: function() { + c.s(); + d.s() + } + } + } + return a.subscribe(this.Hc, this) + }, + Hc: function() { + var b = this, + c = b.throttleEvaluation; + c && 0 <= c ? (clearTimeout(this[r].Ic), this[r].Ic = a.a.setTimeout(function() { + b.ha(!0) + }, c)) : b.Ia ? b.Ia(!0) : b.ha(!0) + }, + ha: function(b) { + var c = this[r], + d = c.Sa, + e = !1; + if (!c.rb && !c.ra) { + if (c.l && !a.a.Sb(c.l) || d && d()) { + if (!c.jc) { + this.s(); + return + } + } else c.jc = !1; + c.rb = !0; + try { + e = this.zd(b) + } finally { + c.rb = !1 + } + return e + } + }, + zd: function(b) { + var c = this[r], + d = !1, + e = c.wb ? n : !c.V, + d = { + qd: this, + mb: c.I, + Qb: c.V + }; + a.u.xc({ + pd: d, + od: ba, + o: this, + Ya: e + }); + c.I = {}; + c.V = 0; + var f = this.yd(c, d); + c.V ? d = this.sb(c.X, f) : (this.s(), d = !0); + d && (c.J ? this.Gb() : this.notifySubscribers(c.X, "beforeChange"), c.X = f, this.notifySubscribers(c.X, "spectate"), !c.J && b && this.notifySubscribers(c.X), this.rc && this.rc()); + e && this.notifySubscribers(c.X, "awake"); + return d + }, + yd: function(b, c) { + try { + var d = b.Wc; + return b.nb ? d.call(b.nb) : d() + } finally { + a.u.end(), c.Qb && !b.J && a.a.P(c.mb, aa), b.sa = b.ka = !1 + } + }, + v: function(a) { + var c = this[r]; + (c.ka && (a || !c.V) || c.J && this.Xa()) && this.ha(); + return c.X + }, + ub: function(b) { + a.T.fn.ub.call(this, b); + this.nc = function() { + this[r].J || (this[r].sa ? this.ha() : this[r].ka = !1); + return this[r].X + }; + this.Ia = function(a) { + this.pc(this[r].X); + this[r].ka = !0; + a && (this[r].sa = !0); + this.qc(this, !a) + } + }, + s: function() { + var b = this[r]; + !b.J && b.I && a.a.P(b.I, function(a, b) { + b.s && b.s() + }); + b.l && b.Rb && a.a.K.yb(b.l, b.Rb); + b.I = n; + b.V = 0; + b.ra = !0; + b.sa = !1; + b.ka = !1; + b.J = !1; + b.l = n; + b.Sa = n; + b.Wc = n; + this.Nc || (b.nb = n) + } + }, + da = { + Qa: function(b) { + var c = this, + d = c[r]; + if (!d.ra && d.J && "change" == b) { + d.J = !1; + if (d.sa || c.Xa()) d.I = null, d.V = + 0, c.ha() && c.Gb(); + else { + var e = []; + a.a.P(d.I, function(a, b) { + e[b.Ka] = a + }); + a.a.D(e, function(a, b) { + var e = d.I[a], + m = c.$c(e.da); + m.Ka = b; + m.La = e.La; + d.I[a] = m + }); + c.Xa() && c.ha() && c.Gb() + } + d.ra || c.notifySubscribers(d.X, "awake") + } + }, + hb: function(b) { + var c = this[r]; + c.ra || "change" != b || this.Wa("change") || (a.a.P(c.I, function(a, b) { + b.s && (c.I[a] = { + da: b.da, + Ka: b.Ka, + La: b.La + }, b.s()) + }), c.J = !0, this.notifySubscribers(n, "asleep")) + }, + ob: function() { + var b = this[r]; + b.J && (b.sa || this.Xa()) && this.ha(); + return a.T.fn.ob.call(this) + } + }, + ea = { + Qa: function(a) { + "change" != + a && "beforeChange" != a || this.v() + } + }; + a.a.Ba && a.a.setPrototypeOf(C, a.T.fn); + var N = a.ta.Ma; + C[N] = a.o; + a.Oc = function(a) { + return "function" == typeof a && a[N] === C[N] + }; + a.Fd = function(b) { + return a.Oc(b) && b[r] && b[r].wb + }; + a.b("computed", a.o); + a.b("dependentObservable", a.o); + a.b("isComputed", a.Oc); + a.b("isPureComputed", a.Fd); + a.b("computed.fn", C); + a.L(C, "peek", C.v); + a.L(C, "dispose", C.s); + a.L(C, "isActive", C.ja); + a.L(C, "getDependenciesCount", C.qa); + a.L(C, "getDependencies", C.Va); + a.xb = function(b, c) { + if ("function" === typeof b) return a.o(b, + c, { + pure: !0 + }); + b = a.a.extend({}, b); + b.pure = !0; + return a.o(b, c) + }; + a.b("pureComputed", a.xb); + (function() { + function b(a, f, g) { + g = g || new d; + a = f(a); + if ("object" != typeof a || null === a || a === n || a instanceof RegExp || a instanceof Date || a instanceof String || a instanceof Number || a instanceof Boolean) return a; + var h = a instanceof Array ? [] : {}; + g.save(a, h); + c(a, function(c) { + var d = f(a[c]); + switch (typeof d) { + case "boolean": + case "number": + case "string": + case "function": + h[c] = d; + break; + case "object": + case "undefined": + var l = g.get(d); + h[c] = l !== + n ? l : b(d, f, g) + } + }); + return h + } + + function c(a, b) { + if (a instanceof Array) { + for (var c = 0; c < a.length; c++) b(c); + "function" == typeof a.toJSON && b("toJSON") + } else + for (c in a) b(c) + } + + function d() { + this.keys = []; + this.values = [] + } + a.ad = function(c) { + if (0 == arguments.length) throw Error("When calling ko.toJS, pass the object you want to convert."); + return b(c, function(b) { + for (var c = 0; a.O(b) && 10 > c; c++) b = b(); + return b + }) + }; + a.toJSON = function(b, c, d) { + b = a.ad(b); + return a.a.hc(b, c, d) + }; + d.prototype = { + constructor: d, + save: function(b, c) { + var d = a.a.A(this.keys, + b); + 0 <= d ? this.values[d] = c : (this.keys.push(b), this.values.push(c)) + }, + get: function(b) { + b = a.a.A(this.keys, b); + return 0 <= b ? this.values[b] : n + } + } + })(); + a.b("toJS", a.ad); + a.b("toJSON", a.toJSON); + a.Wd = function(b, c, d) { + function e(c) { + var e = a.xb(b, d).extend({ + ma: "always" + }), + h = e.subscribe(function(a) { + a && (h.s(), c(a)) + }); + e.notifySubscribers(e.v()); + return h + } + return "function" !== typeof Promise || c ? e(c.bind(d)) : new Promise(e) + }; + a.b("when", a.Wd); + (function() { + a.w = { + M: function(b) { + switch (a.a.R(b)) { + case "option": + return !0 === b.__ko__hasDomDataOptionValue__ ? + a.a.g.get(b, a.c.options.$b) : 7 >= a.a.W ? b.getAttributeNode("value") && b.getAttributeNode("value").specified ? b.value : b.text : b.value; + case "select": + return 0 <= b.selectedIndex ? a.w.M(b.options[b.selectedIndex]) : n; + default: + return b.value + } + }, + cb: function(b, c, d) { + switch (a.a.R(b)) { + case "option": + "string" === typeof c ? (a.a.g.set(b, a.c.options.$b, n), "__ko__hasDomDataOptionValue__" in b && delete b.__ko__hasDomDataOptionValue__, b.value = c) : (a.a.g.set(b, a.c.options.$b, c), b.__ko__hasDomDataOptionValue__ = !0, b.value = "number" === + typeof c ? c : ""); + break; + case "select": + if ("" === c || null === c) c = n; + for (var e = -1, f = 0, g = b.options.length, h; f < g; ++f) + if (h = a.w.M(b.options[f]), h == c || "" === h && c === n) { + e = f; + break + } if (d || 0 <= e || c === n && 1 < b.size) b.selectedIndex = e, 6 === a.a.W && a.a.setTimeout(function() { + b.selectedIndex = e + }, 0); + break; + default: + if (null === c || c === n) c = ""; + b.value = c + } + } + } + })(); + a.b("selectExtensions", a.w); + a.b("selectExtensions.readValue", a.w.M); + a.b("selectExtensions.writeValue", a.w.cb); + a.m = function() { + function b(b) { + b = a.a.Db(b); + 123 === b.charCodeAt(0) && (b = b.slice(1, + -1)); + b += "\n,"; + var c = [], + d = b.match(e), + p, q = [], + h = 0; + if (1 < d.length) { + for (var x = 0, B; B = d[x]; ++x) { + var u = B.charCodeAt(0); + if (44 === u) { + if (0 >= h) { + c.push(p && q.length ? { + key: p, + value: q.join("") + } : { + unknown: p || q.join("") + }); + p = h = 0; + q = []; + continue + } + } else if (58 === u) { + if (!h && !p && 1 === q.length) { + p = q.pop(); + continue + } + } else if (47 === u && 1 < B.length && (47 === B.charCodeAt(1) || 42 === B.charCodeAt(1))) continue; + else 47 === u && x && 1 < B.length ? (u = d[x - 1].match(f)) && !g[u[0]] && (b = b.substr(b.indexOf(B) + 1), d = b.match(e), x = -1, B = "/") : 40 === u || 123 === u || 91 === u ? ++h : + 41 === u || 125 === u || 93 === u ? --h : p || q.length || 34 !== u && 39 !== u || (B = B.slice(1, -1)); + q.push(B) + } + if (0 < h) throw Error("Unbalanced parentheses, braces, or brackets"); + } + return c + } + var c = ["true", "false", "null", "undefined"], + d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i, + e = RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]", "g"), + f = /[\])"'A-Za-z0-9_$]+$/, + g = { + "in": 1, + "return": 1, + "typeof": 1 + }, + h = {}; + return { + Ra: [], + wa: h, + ac: b, + vb: function(e, f) { + function l(b, e) { + var f; + if (!x) { + var k = a.getBindingHandler(b); + if (k && k.preprocess && !(e = k.preprocess(e, b, l))) return; + if (k = h[b]) f = e, 0 <= a.a.A(c, f) ? f = !1 : (k = f.match(d), f = null === k ? !1 : k[1] ? "Object(" + k[1] + ")" + k[2] : f), k = f; + k && q.push("'" + ("string" == typeof h[b] ? h[b] : b) + "':function(_z){" + f + "=_z}") + } + g && (e = "function(){return " + e + " }"); + p.push("'" + b + "':" + e) + } + f = f || {}; + var p = [], + q = [], + g = f.valueAccessors, + x = f.bindingParams, + B = "string" === typeof e ? b(e) : e; + a.a.D(B, function(a) { + l(a.key || a.unknown, + a.value) + }); + q.length && l("_ko_property_writers", "{" + q.join(",") + " }"); + return p.join(",") + }, + Id: function(a, b) { + for (var c = 0; c < a.length; c++) + if (a[c].key == b) return !0; + return !1 + }, + eb: function(b, c, d, e, f) { + if (b && a.O(b)) !a.Za(b) || f && b.v() === e || b(e); + else if ((b = c.get("_ko_property_writers")) && b[d]) b[d](e) + } + } + }(); + a.b("expressionRewriting", a.m); + a.b("expressionRewriting.bindingRewriteValidators", a.m.Ra); + a.b("expressionRewriting.parseObjectLiteral", a.m.ac); + a.b("expressionRewriting.preProcessBindings", a.m.vb); + a.b("expressionRewriting._twoWayBindings", + a.m.wa); + a.b("jsonExpressionRewriting", a.m); + a.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson", a.m.vb); + (function() { + function b(a) { + return 8 == a.nodeType && g.test(f ? a.text : a.nodeValue) + } + + function c(a) { + return 8 == a.nodeType && h.test(f ? a.text : a.nodeValue) + } + + function d(d, e) { + for (var f = d, h = 1, g = []; f = f.nextSibling;) { + if (c(f) && (a.a.g.set(f, k, !0), h--, 0 === h)) return g; + g.push(f); + b(f) && h++ + } + if (!e) throw Error("Cannot find closing comment tag to match: " + d.nodeValue); + return null + } + + function e(a, b) { + var c = d(a, b); + return c ? + 0 < c.length ? c[c.length - 1].nextSibling : a.nextSibling : null + } + var f = w && "\x3c!--test--\x3e" === w.createComment("test").text, + g = f ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/ : /^\s*ko(?:\s+([\s\S]+))?\s*$/, + h = f ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/, + m = { + ul: !0, + ol: !0 + }, + k = "__ko_matchedEndComment__"; + a.h = { + ea: {}, + childNodes: function(a) { + return b(a) ? d(a) : a.childNodes + }, + Ea: function(c) { + if (b(c)) { + c = a.h.childNodes(c); + for (var d = 0, e = c.length; d < e; d++) a.removeNode(c[d]) + } else a.a.Tb(c) + }, + va: function(c, d) { + if (b(c)) { + a.h.Ea(c); + for (var e = + c.nextSibling, f = 0, k = d.length; f < k; f++) e.parentNode.insertBefore(d[f], e) + } else a.a.va(c, d) + }, + Vc: function(a, c) { + var d; + b(a) ? (d = a.nextSibling, a = a.parentNode) : d = a.firstChild; + d ? c !== d && a.insertBefore(c, d) : a.appendChild(c) + }, + Wb: function(c, d, e) { + e ? (e = e.nextSibling, b(c) && (c = c.parentNode), e ? d !== e && c.insertBefore(d, e) : c.appendChild(d)) : a.h.Vc(c, d) + }, + firstChild: function(a) { + if (b(a)) return !a.nextSibling || c(a.nextSibling) ? null : a.nextSibling; + if (a.firstChild && c(a.firstChild)) throw Error("Found invalid end comment, as the first child of " + + a); + return a.firstChild + }, + nextSibling: function(d) { + b(d) && (d = e(d)); + if (d.nextSibling && c(d.nextSibling)) { + var f = d.nextSibling; + if (c(f) && !a.a.g.get(f, k)) throw Error("Found end comment without a matching opening comment, as child of " + d); + return null + } + return d.nextSibling + }, + Cd: b, + Vd: function(a) { + return (a = (f ? a.text : a.nodeValue).match(g)) ? a[1] : null + }, + Sc: function(d) { + if (m[a.a.R(d)]) { + var f = d.firstChild; + if (f) { + do + if (1 === f.nodeType) { + var k; + k = f.firstChild; + var h = null; + if (k) { + do + if (h) h.push(k); + else if (b(k)) { + var g = e(k, !0); + g ? k = + g : h = [k] + } else c(k) && (h = [k]); + while (k = k.nextSibling) + } + if (k = h) + for (h = f.nextSibling, g = 0; g < k.length; g++) h ? d.insertBefore(k[g], h) : d.appendChild(k[g]) + } while (f = f.nextSibling) + } + } + } + } + })(); + a.b("virtualElements", a.h); + a.b("virtualElements.allowedBindings", a.h.ea); + a.b("virtualElements.emptyNode", a.h.Ea); + a.b("virtualElements.insertAfter", a.h.Wb); + a.b("virtualElements.prepend", a.h.Vc); + a.b("virtualElements.setDomNodeChildren", a.h.va); + (function() { + a.ga = function() { + this.nd = {} + }; + a.a.extend(a.ga.prototype, { + nodeHasBindings: function(b) { + switch (b.nodeType) { + case 1: + return null != + b.getAttribute("data-bind") || a.j.getComponentNameForNode(b); + case 8: + return a.h.Cd(b); + default: + return !1 + } + }, + getBindings: function(b, c) { + var d = this.getBindingsString(b, c), + d = d ? this.parseBindingsString(d, c, b) : null; + return a.j.tc(d, b, c, !1) + }, + getBindingAccessors: function(b, c) { + var d = this.getBindingsString(b, c), + d = d ? this.parseBindingsString(d, c, b, { + valueAccessors: !0 + }) : null; + return a.j.tc(d, b, c, !0) + }, + getBindingsString: function(b) { + switch (b.nodeType) { + case 1: + return b.getAttribute("data-bind"); + case 8: + return a.h.Vd(b); + default: + return null + } + }, + parseBindingsString: function(b, c, d, e) { + try { + var f = this.nd, + g = b + (e && e.valueAccessors || ""), + h; + if (!(h = f[g])) { + var m, k = "with($context){with($data||{}){return{" + a.m.vb(b, e) + "}}}"; + m = new Function("$context", "$element", k); + h = f[g] = m + } + return h(c, d) + } catch (l) { + throw l.message = "Unable to parse bindings.\nBindings value: " + b + "\nMessage: " + l.message, l; + } + } + }); + a.ga.instance = new a.ga + })(); + a.b("bindingProvider", a.ga); + (function() { + function b(b) { + var c = (b = a.a.g.get(b, z)) && b.N; + c && (b.N = null, c.Tc()) + } + + function c(c, d, e) { + this.node = c; + this.yc = + d; + this.kb = []; + this.H = !1; + d.N || a.a.K.za(c, b); + e && e.N && (e.N.kb.push(c), this.Kb = e) + } + + function d(a) { + return function() { + return a + } + } + + function e(a) { + return a() + } + + function f(b) { + return a.a.Ga(a.u.G(b), function(a, c) { + return function() { + return b()[c] + } + }) + } + + function g(b, c, e) { + return "function" === typeof b ? f(b.bind(null, c, e)) : a.a.Ga(b, d) + } + + function h(a, b) { + return f(this.getBindings.bind(this, a, b)) + } + + function m(b, c) { + var d = a.h.firstChild(c); + if (d) { + var e, f = a.ga.instance, + l = f.preprocessNode; + if (l) { + for (; e = d;) d = a.h.nextSibling(e), l.call(f, e); + d = a.h.firstChild(c) + } + for (; e = d;) d = a.h.nextSibling(e), k(b, e) + } + a.i.ma(c, a.i.H) + } + + function k(b, c) { + var d = b, + e = 1 === c.nodeType; + e && a.h.Sc(c); + if (e || a.ga.instance.nodeHasBindings(c)) d = p(c, null, b).bindingContextForDescendants; + d && !u[a.a.R(c)] && m(d, c) + } + + function l(b) { + var c = [], + d = {}, + e = []; + a.a.P(b, function ca(f) { + if (!d[f]) { + var k = a.getBindingHandler(f); + k && (k.after && (e.push(f), a.a.D(k.after, function(c) { + if (b[c]) { + if (-1 !== a.a.A(e, c)) throw Error("Cannot combine the following bindings, because they have a cyclic dependency: " + e.join(", ")); + ca(c) + } + }), e.length--), c.push({ + key: f, + Mc: k + })); + d[f] = !0 + } + }); + return c + } + + function p(b, c, d) { + var f = a.a.g.Ub(b, z, {}), + k = f.hd; + if (!c) { + if (k) throw Error("You cannot apply bindings multiple times to the same element."); + f.hd = !0 + } + k || (f.context = d); + f.Zb || (f.Zb = {}); + var g; + if (c && "function" !== typeof c) g = c; + else { + var p = a.ga.instance, + q = p.getBindingAccessors || h, + m = a.$(function() { + if (g = c ? c(d, b) : q.call(p, b, d)) { + if (d[t]) d[t](); + if (d[B]) d[B]() + } + return g + }, null, { + l: b + }); + g && m.ja() || (m = null) + } + var x = d, + u; + if (g) { + var J = function() { + return a.a.Ga(m ? m() : + g, e) + }, + r = m ? function(a) { + return function() { + return e(m()[a]) + } + } : function(a) { + return g[a] + }; + J.get = function(a) { + return g[a] && e(r(a)) + }; + J.has = function(a) { + return a in g + }; + a.i.H in g && a.i.subscribe(b, a.i.H, function() { + var c = (0, g[a.i.H])(); + if (c) { + var d = a.h.childNodes(b); + d.length && c(d, a.Ec(d[0])) + } + }); + a.i.pa in g && (x = a.i.Cb(b, d), a.i.subscribe(b, a.i.pa, function() { + var c = (0, g[a.i.pa])(); + c && a.h.firstChild(b) && c(b) + })); + f = l(g); + a.a.D(f, function(c) { + var d = c.Mc.init, + e = c.Mc.update, + f = c.key; + if (8 === b.nodeType && !a.h.ea[f]) throw Error("The binding '" + + f + "' cannot be used with virtual elements"); + try { + "function" == typeof d && a.u.G(function() { + var a = d(b, r(f), J, x.$data, x); + if (a && a.controlsDescendantBindings) { + if (u !== n) throw Error("Multiple bindings (" + u + " and " + f + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element."); + u = f + } + }), "function" == typeof e && a.$(function() { + e(b, r(f), J, x.$data, x) + }, null, { + l: b + }) + } catch (k) { + throw k.message = 'Unable to process binding "' + f + ": " + g[f] + '"\nMessage: ' + k.message, + k; + } + }) + } + f = u === n; + return { + shouldBindDescendants: f, + bindingContextForDescendants: f && x + } + } + + function q(b, c) { + return b && b instanceof a.fa ? b : new a.fa(b, n, n, c) + } + var t = a.a.Da("_subscribable"), + x = a.a.Da("_ancestorBindingInfo"), + B = a.a.Da("_dataDependency"); + a.c = {}; + var u = { + script: !0, + textarea: !0, + template: !0 + }; + a.getBindingHandler = function(b) { + return a.c[b] + }; + var J = {}; + a.fa = function(b, c, d, e, f) { + function k() { + var b = p ? h() : h, + f = a.a.f(b); + c ? (a.a.extend(l, c), x in c && (l[x] = c[x])) : (l.$parents = [], l.$root = f, l.ko = a); + l[t] = q; + g ? f = l.$data : (l.$rawData = + b, l.$data = f); + d && (l[d] = f); + e && e(l, c, f); + if (c && c[t] && !a.S.o().Vb(c[t])) c[t](); + m && (l[B] = m); + return l.$data + } + var l = this, + g = b === J, + h = g ? n : b, + p = "function" == typeof h && !a.O(h), + q, m = f && f.dataDependency; + f && f.exportDependencies ? k() : (q = a.xb(k), q.v(), q.ja() ? q.equalityComparer = null : l[t] = n) + }; + a.fa.prototype.createChildContext = function(b, c, d, e) { + !e && c && "object" == typeof c && (e = c, c = e.as, d = e.extend); + if (c && e && e.noChildContext) { + var f = "function" == typeof b && !a.O(b); + return new a.fa(J, this, null, function(a) { + d && d(a); + a[c] = f ? b() : b + }, e) + } + return new a.fa(b, + this, c, + function(a, b) { + a.$parentContext = b; + a.$parent = b.$data; + a.$parents = (b.$parents || []).slice(0); + a.$parents.unshift(a.$parent); + d && d(a) + }, e) + }; + a.fa.prototype.extend = function(b, c) { + return new a.fa(J, this, null, function(c) { + a.a.extend(c, "function" == typeof b ? b(c) : b) + }, c) + }; + var z = a.a.g.Z(); + c.prototype.Tc = function() { + this.Kb && this.Kb.N && this.Kb.N.sd(this.node) + }; + c.prototype.sd = function(b) { + a.a.Pa(this.kb, b); + !this.kb.length && this.H && this.Cc() + }; + c.prototype.Cc = function() { + this.H = !0; + this.yc.N && !this.kb.length && (this.yc.N = + null, a.a.K.yb(this.node, b), a.i.ma(this.node, a.i.pa), this.Tc()) + }; + a.i = { + H: "childrenComplete", + pa: "descendantsComplete", + subscribe: function(b, c, d, e, f) { + var k = a.a.g.Ub(b, z, {}); + k.Fa || (k.Fa = new a.T); + f && f.notifyImmediately && k.Zb[c] && a.u.G(d, e, [b]); + return k.Fa.subscribe(d, e, c) + }, + ma: function(b, c) { + var d = a.a.g.get(b, z); + if (d && (d.Zb[c] = !0, d.Fa && d.Fa.notifySubscribers(b, c), c == a.i.H)) + if (d.N) d.N.Cc(); + else if (d.N === n && d.Fa && d.Fa.Wa(a.i.pa)) throw Error("descendantsComplete event not supported for bindings on this node"); + }, + Cb: function(b, d) { + var e = a.a.g.Ub(b, z, {}); + e.N || (e.N = new c(b, e, d[x])); + return d[x] == e ? d : d.extend(function(a) { + a[x] = e + }) + } + }; + a.Td = function(b) { + return (b = a.a.g.get(b, z)) && b.context + }; + a.ib = function(b, c, d) { + 1 === b.nodeType && a.h.Sc(b); + return p(b, c, q(d)) + }; + a.ld = function(b, c, d) { + d = q(d); + return a.ib(b, g(c, d, b), d) + }; + a.Oa = function(a, b) { + 1 !== b.nodeType && 8 !== b.nodeType || m(q(a), b) + }; + a.vc = function(a, b, c) { + !v && A.jQuery && (v = A.jQuery); + if (2 > arguments.length) { + if (b = w.body, !b) throw Error("ko.applyBindings: could not find document.body; has the document been loaded?"); + } else if (!b || 1 !== b.nodeType && 8 !== b.nodeType) throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"); + k(q(a, c), b) + }; + a.Dc = function(b) { + return !b || 1 !== b.nodeType && 8 !== b.nodeType ? n : a.Td(b) + }; + a.Ec = function(b) { + return (b = a.Dc(b)) ? b.$data : n + }; + a.b("bindingHandlers", a.c); + a.b("bindingEvent", a.i); + a.b("bindingEvent.subscribe", a.i.subscribe); + a.b("bindingEvent.startPossiblyAsyncContentBinding", a.i.Cb); + a.b("applyBindings", a.vc); + a.b("applyBindingsToDescendants", a.Oa); + a.b("applyBindingAccessorsToNode", a.ib); + a.b("applyBindingsToNode", a.ld); + a.b("contextFor", a.Dc); + a.b("dataFor", a.Ec) + })(); + (function(b) { + function c(c, e) { + var k = Object.prototype.hasOwnProperty.call(f, c) ? f[c] : b, + l; + k ? k.subscribe(e) : (k = f[c] = new a.T, k.subscribe(e), d(c, function(b, d) { + var e = !(!d || !d.synchronous); + g[c] = { + definition: b, + Gd: e + }; + delete f[c]; + l || e ? k.notifySubscribers(b) : a.na.zb(function() { + k.notifySubscribers(b) + }) + }), l = !0) + } + + function d(a, b) { + e("getConfig", [a], function(c) { + c ? e("loadComponent", [a, c], function(a) { + b(a, + c) + }) : b(null, null) + }) + } + + function e(c, d, f, l) { + l || (l = a.j.loaders.slice(0)); + var g = l.shift(); + if (g) { + var q = g[c]; + if (q) { + var t = !1; + if (q.apply(g, d.concat(function(a) { + t ? f(null) : null !== a ? f(a) : e(c, d, f, l) + })) !== b && (t = !0, !g.suppressLoaderExceptions)) throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously."); + } else e(c, d, f, l) + } else f(null) + } + var f = {}, + g = {}; + a.j = { + get: function(d, e) { + var f = Object.prototype.hasOwnProperty.call(g, d) ? g[d] : b; + f ? f.Gd ? a.u.G(function() { + e(f.definition) + }) : + a.na.zb(function() { + e(f.definition) + }) : c(d, e) + }, + Bc: function(a) { + delete g[a] + }, + oc: e + }; + a.j.loaders = []; + a.b("components", a.j); + a.b("components.get", a.j.get); + a.b("components.clearCachedDefinition", a.j.Bc) + })(); + (function() { + function b(b, c, d, e) { + function g() { + 0 === --B && e(h) + } + var h = {}, + B = 2, + u = d.template; + d = d.viewModel; + u ? f(c, u, function(c) { + a.j.oc("loadTemplate", [b, c], function(a) { + h.template = a; + g() + }) + }) : g(); + d ? f(c, d, function(c) { + a.j.oc("loadViewModel", [b, c], function(a) { + h[m] = a; + g() + }) + }) : g() + } + + function c(a, b, d) { + if ("function" === typeof b) d(function(a) { + return new b(a) + }); + else if ("function" === typeof b[m]) d(b[m]); + else if ("instance" in b) { + var e = b.instance; + d(function() { + return e + }) + } else "viewModel" in b ? c(a, b.viewModel, d) : a("Unknown viewModel value: " + b) + } + + function d(b) { + switch (a.a.R(b)) { + case "script": + return a.a.ua(b.text); + case "textarea": + return a.a.ua(b.value); + case "template": + if (e(b.content)) return a.a.Ca(b.content.childNodes) + } + return a.a.Ca(b.childNodes) + } + + function e(a) { + return A.DocumentFragment ? a instanceof DocumentFragment : a && 11 === a.nodeType + } + + function f(a, b, c) { + "string" === typeof b.require ? + T || A.require ? (T || A.require)([b.require], function(a) { + a && "object" === typeof a && a.Xd && a["default"] && (a = a["default"]); + c(a) + }) : a("Uses require, but no AMD loader is present") : c(b) + } + + function g(a) { + return function(b) { + throw Error("Component '" + a + "': " + b); + } + } + var h = {}; + a.j.register = function(b, c) { + if (!c) throw Error("Invalid configuration for " + b); + if (a.j.tb(b)) throw Error("Component " + b + " is already registered"); + h[b] = c + }; + a.j.tb = function(a) { + return Object.prototype.hasOwnProperty.call(h, a) + }; + a.j.unregister = function(b) { + delete h[b]; + a.j.Bc(b) + }; + a.j.Fc = { + getConfig: function(b, c) { + c(a.j.tb(b) ? h[b] : null) + }, + loadComponent: function(a, c, d) { + var e = g(a); + f(e, c, function(c) { + b(a, e, c, d) + }) + }, + loadTemplate: function(b, c, f) { + b = g(b); + if ("string" === typeof c) f(a.a.ua(c)); + else if (c instanceof Array) f(c); + else if (e(c)) f(a.a.la(c.childNodes)); + else if (c.element) + if (c = c.element, A.HTMLElement ? c instanceof HTMLElement : c && c.tagName && 1 === c.nodeType) f(d(c)); + else if ("string" === typeof c) { + var h = w.getElementById(c); + h ? f(d(h)) : b("Cannot find element with ID " + c) + } else b("Unknown element type: " + + c); + else b("Unknown template value: " + c) + }, + loadViewModel: function(a, b, d) { + c(g(a), b, d) + } + }; + var m = "createViewModel"; + a.b("components.register", a.j.register); + a.b("components.isRegistered", a.j.tb); + a.b("components.unregister", a.j.unregister); + a.b("components.defaultLoader", a.j.Fc); + a.j.loaders.push(a.j.Fc); + a.j.dd = h + })(); + (function() { + function b(b, e) { + var f = b.getAttribute("params"); + if (f) { + var f = c.parseBindingsString(f, e, b, { + valueAccessors: !0, + bindingParams: !0 + }), + f = a.a.Ga(f, function(c) { + return a.o(c, null, { + l: b + }) + }), + g = a.a.Ga(f, + function(c) { + var e = c.v(); + return c.ja() ? a.o({ + read: function() { + return a.a.f(c()) + }, + write: a.Za(e) && function(a) { + c()(a) + }, + l: b + }) : e + }); + Object.prototype.hasOwnProperty.call(g, "$raw") || (g.$raw = f); + return g + } + return { + $raw: {} + } + } + a.j.getComponentNameForNode = function(b) { + var c = a.a.R(b); + if (a.j.tb(c) && (-1 != c.indexOf("-") || "[object HTMLUnknownElement]" == "" + b || 8 >= a.a.W && b.tagName === c)) return c + }; + a.j.tc = function(c, e, f, g) { + if (1 === e.nodeType) { + var h = a.j.getComponentNameForNode(e); + if (h) { + c = c || {}; + if (c.component) throw Error('Cannot use the "component" binding on a custom element matching a component'); + var m = { + name: h, + params: b(e, f) + }; + c.component = g ? function() { + return m + } : m + } + } + return c + }; + var c = new a.ga; + 9 > a.a.W && (a.j.register = function(a) { + return function(b) { + return a.apply(this, arguments) + } + }(a.j.register), w.createDocumentFragment = function(b) { + return function() { + var c = b(), + f = a.j.dd, + g; + for (g in f); + return c + } + }(w.createDocumentFragment)) + })(); + (function() { + function b(b, c, d) { + c = c.template; + if (!c) throw Error("Component '" + b + "' has no template"); + b = a.a.Ca(c); + a.h.va(d, b) + } + + function c(a, b, c) { + var d = a.createViewModel; + return d ? d.call(a, + b, c) : b + } + var d = 0; + a.c.component = { + init: function(e, f, g, h, m) { + function k() { + var a = l && l.dispose; + "function" === typeof a && a.call(l); + q && q.s(); + p = l = q = null + } + var l, p, q, t = a.a.la(a.h.childNodes(e)); + a.h.Ea(e); + a.a.K.za(e, k); + a.o(function() { + var g = a.a.f(f()), + h, u; + "string" === typeof g ? h = g : (h = a.a.f(g.name), u = a.a.f(g.params)); + if (!h) throw Error("No component name specified"); + var n = a.i.Cb(e, m), + z = p = ++d; + a.j.get(h, function(d) { + if (p === z) { + k(); + if (!d) throw Error("Unknown component '" + h + "'"); + b(h, d, e); + var f = c(d, u, { + element: e, + templateNodes: t + }); + d = n.createChildContext(f, { + extend: function(a) { + a.$component = f; + a.$componentTemplateNodes = t + } + }); + f && f.koDescendantsComplete && (q = a.i.subscribe(e, a.i.pa, f.koDescendantsComplete, f)); + l = f; + a.Oa(d, e) + } + }) + }, null, { + l: e + }); + return { + controlsDescendantBindings: !0 + } + } + }; + a.h.ea.component = !0 + })(); + var V = { + "class": "className", + "for": "htmlFor" + }; + a.c.attr = { + update: function(b, c) { + var d = a.a.f(c()) || {}; + a.a.P(d, function(c, d) { + d = a.a.f(d); + var g = c.indexOf(":"), + g = "lookupNamespaceURI" in b && 0 < g && b.lookupNamespaceURI(c.substr(0, g)), + h = !1 === d || null === + d || d === n; + h ? g ? b.removeAttributeNS(g, c) : b.removeAttribute(c) : d = d.toString(); + 8 >= a.a.W && c in V ? (c = V[c], h ? b.removeAttribute(c) : b[c] = d) : h || (g ? b.setAttributeNS(g, c, d) : b.setAttribute(c, d)); + "name" === c && a.a.Yc(b, h ? "" : d) + }) + } + }; + (function() { + a.c.checked = { + after: ["value", "attr"], + init: function(b, c, d) { + function e() { + var e = b.checked, + f = g(); + if (!a.S.Ya() && (e || !m && !a.S.qa())) { + var k = a.u.G(c); + if (l) { + var q = p ? k.v() : k, + z = t; + t = f; + z !== f ? e && (a.a.Na(q, f, !0), a.a.Na(q, z, !1)) : a.a.Na(q, f, e); + p && a.Za(k) && k(q) + } else h && (f === n ? f = e : e || (f = n)), a.m.eb(k, + d, "checked", f, !0) + } + } + + function f() { + var d = a.a.f(c()), + e = g(); + l ? (b.checked = 0 <= a.a.A(d, e), t = e) : b.checked = h && e === n ? !!d : g() === d + } + var g = a.xb(function() { + if (d.has("checkedValue")) return a.a.f(d.get("checkedValue")); + if (q) return d.has("value") ? a.a.f(d.get("value")) : b.value + }), + h = "checkbox" == b.type, + m = "radio" == b.type; + if (h || m) { + var k = c(), + l = h && a.a.f(k) instanceof Array, + p = !(l && k.push && k.splice), + q = m || l, + t = l ? g() : n; + m && !b.name && a.c.uniqueName.init(b, function() { + return !0 + }); + a.o(e, null, { + l: b + }); + a.a.B(b, "click", e); + a.o(f, null, { + l: b + }); + k = n + } + } + }; + a.m.wa.checked = !0; + a.c.checkedValue = { + update: function(b, c) { + b.value = a.a.f(c()) + } + } + })(); + a.c["class"] = { + update: function(b, c) { + var d = a.a.Db(a.a.f(c())); + a.a.Eb(b, b.__ko__cssValue, !1); + b.__ko__cssValue = d; + a.a.Eb(b, d, !0) + } + }; + a.c.css = { + update: function(b, c) { + var d = a.a.f(c()); + null !== d && "object" == typeof d ? a.a.P(d, function(c, d) { + d = a.a.f(d); + a.a.Eb(b, c, d) + }) : a.c["class"].update(b, c) + } + }; + a.c.enable = { + update: function(b, c) { + var d = a.a.f(c()); + d && b.disabled ? b.removeAttribute("disabled") : d || b.disabled || (b.disabled = !0) + } + }; + a.c.disable = { + update: function(b, c) { + a.c.enable.update(b, function() { + return !a.a.f(c()) + }) + } + }; + a.c.event = { + init: function(b, c, d, e, f) { + var g = c() || {}; + a.a.P(g, function(g) { + "string" == typeof g && a.a.B(b, g, function(b) { + var k, l = c()[g]; + if (l) { + try { + var p = a.a.la(arguments); + e = f.$data; + p.unshift(e); + k = l.apply(e, p) + } finally { + !0 !== k && (b.preventDefault ? b.preventDefault() : b.returnValue = !1) + }!1 === d.get(g + "Bubble") && (b.cancelBubble = !0, b.stopPropagation && b.stopPropagation()) + } + }) + }) + } + }; + a.c.foreach = { + Rc: function(b) { + return function() { + var c = b(), + d = a.a.bc(c); + if (!d || "number" == typeof d.length) return { + foreach: c, + templateEngine: a.ba.Ma + }; + a.a.f(c); + return { + foreach: d.data, + as: d.as, + noChildContext: d.noChildContext, + includeDestroyed: d.includeDestroyed, + afterAdd: d.afterAdd, + beforeRemove: d.beforeRemove, + afterRender: d.afterRender, + beforeMove: d.beforeMove, + afterMove: d.afterMove, + templateEngine: a.ba.Ma + } + } + }, + init: function(b, c) { + return a.c.template.init(b, a.c.foreach.Rc(c)) + }, + update: function(b, c, d, e, f) { + return a.c.template.update(b, a.c.foreach.Rc(c), d, e, f) + } + }; + a.m.Ra.foreach = !1; + a.h.ea.foreach = !0; + a.c.hasfocus = { + init: function(b, c, d) { + function e(e) { + b.__ko_hasfocusUpdating = !0; + var f = b.ownerDocument; + if ("activeElement" in f) { + var g; + try { + g = f.activeElement + } catch (l) { + g = f.body + } + e = g === b + } + f = c(); + a.m.eb(f, d, "hasfocus", e, !0); + b.__ko_hasfocusLastValue = e; + b.__ko_hasfocusUpdating = !1 + } + var f = e.bind(null, !0), + g = e.bind(null, !1); + a.a.B(b, "focus", f); + a.a.B(b, "focusin", f); + a.a.B(b, "blur", g); + a.a.B(b, "focusout", g); + b.__ko_hasfocusLastValue = !1 + }, + update: function(b, c) { + var d = !!a.a.f(c()); + b.__ko_hasfocusUpdating || b.__ko_hasfocusLastValue === + d || (d ? b.focus() : b.blur(), !d && b.__ko_hasfocusLastValue && b.ownerDocument.body.focus(), a.u.G(a.a.Fb, null, [b, d ? "focusin" : "focusout"])) + } + }; + a.m.wa.hasfocus = !0; + a.c.hasFocus = a.c.hasfocus; + a.m.wa.hasFocus = "hasfocus"; + a.c.html = { + init: function() { + return { + controlsDescendantBindings: !0 + } + }, + update: function(b, c) { + a.a.fc(b, c()) + } + }; + (function() { + function b(b, d, e) { + a.c[b] = { + init: function(b, c, h, m, k) { + var l, p, q = {}, + t, x, n; + if (d) { + m = h.get("as"); + var u = h.get("noChildContext"); + n = !(m && u); + q = { + as: m, + noChildContext: u, + exportDependencies: n + } + } + x = (t = + "render" == h.get("completeOn")) || h.has(a.i.pa); + a.o(function() { + var h = a.a.f(c()), + m = !e !== !h, + u = !p, + r; + if (n || m !== l) { + x && (k = a.i.Cb(b, k)); + if (m) { + if (!d || n) q.dataDependency = a.S.o(); + r = d ? k.createChildContext("function" == typeof h ? h : c, q) : a.S.qa() ? k.extend(null, q) : k + } + u && a.S.qa() && (p = a.a.Ca(a.h.childNodes(b), !0)); + m ? (u || a.h.va(b, a.a.Ca(p)), a.Oa(r, b)) : (a.h.Ea(b), t || a.i.ma(b, a.i.H)); + l = m + } + }, null, { + l: b + }); + return { + controlsDescendantBindings: !0 + } + } + }; + a.m.Ra[b] = !1; + a.h.ea[b] = !0 + } + b("if"); + b("ifnot", !1, !0); + b("with", !0) + })(); + a.c.let = { + init: function(b, + c, d, e, f) { + c = f.extend(c); + a.Oa(c, b); + return { + controlsDescendantBindings: !0 + } + } + }; + a.h.ea.let = !0; + var Q = {}; + a.c.options = { + init: function(b) { + if ("select" !== a.a.R(b)) throw Error("options binding applies only to SELECT elements"); + for (; 0 < b.length;) b.remove(0); + return { + controlsDescendantBindings: !0 + } + }, + update: function(b, c, d) { + function e() { + return a.a.jb(b.options, function(a) { + return a.selected + }) + } + + function f(a, b, c) { + var d = typeof b; + return "function" == d ? b(a) : "string" == d ? a[b] : c + } + + function g(c, d) { + if (x && l) a.i.ma(b, a.i.H); + else if (t.length) { + var e = + 0 <= a.a.A(t, a.w.M(d[0])); + a.a.Zc(d[0], e); + x && !e && a.u.G(a.a.Fb, null, [b, "change"]) + } + } + var h = b.multiple, + m = 0 != b.length && h ? b.scrollTop : null, + k = a.a.f(c()), + l = d.get("valueAllowUnset") && d.has("value"), + p = d.get("optionsIncludeDestroyed"); + c = {}; + var q, t = []; + l || (h ? t = a.a.Mb(e(), a.w.M) : 0 <= b.selectedIndex && t.push(a.w.M(b.options[b.selectedIndex]))); + k && ("undefined" == typeof k.length && (k = [k]), q = a.a.jb(k, function(b) { + return p || b === n || null === b || !a.a.f(b._destroy) + }), d.has("optionsCaption") && (k = a.a.f(d.get("optionsCaption")), null !== + k && k !== n && q.unshift(Q))); + var x = !1; + c.beforeRemove = function(a) { + b.removeChild(a) + }; + k = g; + d.has("optionsAfterRender") && "function" == typeof d.get("optionsAfterRender") && (k = function(b, c) { + g(0, c); + a.u.G(d.get("optionsAfterRender"), null, [c[0], b !== Q ? b : n]) + }); + a.a.ec(b, q, function(c, e, g) { + g.length && (t = !l && g[0].selected ? [a.w.M(g[0])] : [], x = !0); + e = b.ownerDocument.createElement("option"); + c === Q ? (a.a.Bb(e, d.get("optionsCaption")), a.w.cb(e, n)) : (g = f(c, d.get("optionsValue"), c), a.w.cb(e, a.a.f(g)), c = f(c, d.get("optionsText"), g), + a.a.Bb(e, c)); + return [e] + }, c, k); + if (!l) { + var B; + h ? B = t.length && e().length < t.length : B = t.length && 0 <= b.selectedIndex ? a.w.M(b.options[b.selectedIndex]) !== t[0] : t.length || 0 <= b.selectedIndex; + B && a.u.G(a.a.Fb, null, [b, "change"]) + }(l || a.S.Ya()) && a.i.ma(b, a.i.H); + a.a.wd(b); + m && 20 < Math.abs(m - b.scrollTop) && (b.scrollTop = m) + } + }; + a.c.options.$b = a.a.g.Z(); + a.c.selectedOptions = { + init: function(b, c, d) { + function e() { + var e = c(), + f = []; + a.a.D(b.getElementsByTagName("option"), function(b) { + b.selected && f.push(a.w.M(b)) + }); + a.m.eb(e, d, "selectedOptions", + f) + } + + function f() { + var d = a.a.f(c()), + e = b.scrollTop; + d && "number" == typeof d.length && a.a.D(b.getElementsByTagName("option"), function(b) { + var c = 0 <= a.a.A(d, a.w.M(b)); + b.selected != c && a.a.Zc(b, c) + }); + b.scrollTop = e + } + if ("select" != a.a.R(b)) throw Error("selectedOptions binding applies only to SELECT elements"); + var g; + a.i.subscribe(b, a.i.H, function() { + g ? e() : (a.a.B(b, "change", e), g = a.o(f, null, { + l: b + })) + }, null, { + notifyImmediately: !0 + }) + }, + update: function() {} + }; + a.m.wa.selectedOptions = !0; + a.c.style = { + update: function(b, c) { + var d = a.a.f(c() || {}); + a.a.P(d, function(c, d) { + d = a.a.f(d); + if (null === d || d === n || !1 === d) d = ""; + if (v) v(b).css(c, d); + else if (/^--/.test(c)) b.style.setProperty(c, d); + else { + c = c.replace(/-(\w)/g, function(a, b) { + return b.toUpperCase() + }); + var g = b.style[c]; + b.style[c] = d; + d === g || b.style[c] != g || isNaN(d) || (b.style[c] = d + "px") + } + }) + } + }; + a.c.submit = { + init: function(b, c, d, e, f) { + if ("function" != typeof c()) throw Error("The value for a submit binding must be a function"); + a.a.B(b, "submit", function(a) { + var d, e = c(); + try { + d = e.call(f.$data, b) + } finally { + !0 !== d && (a.preventDefault ? + a.preventDefault() : a.returnValue = !1) + } + }) + } + }; + a.c.text = { + init: function() { + return { + controlsDescendantBindings: !0 + } + }, + update: function(b, c) { + a.a.Bb(b, c()) + } + }; + a.h.ea.text = !0; + (function() { + if (A && A.navigator) { + var b = function(a) { + if (a) return parseFloat(a[1]) + }, + c = A.navigator.userAgent, + d, e, f, g, h; + (d = A.opera && A.opera.version && parseInt(A.opera.version())) || (h = b(c.match(/Edge\/([^ ]+)$/))) || b(c.match(/Chrome\/([^ ]+)/)) || (e = b(c.match(/Version\/([^ ]+) Safari/))) || (f = b(c.match(/Firefox\/([^ ]+)/))) || (g = a.a.W || b(c.match(/MSIE ([^ ]+)/))) || + (g = b(c.match(/rv:([^ )]+)/))) + } + if (8 <= g && 10 > g) var m = a.a.g.Z(), + k = a.a.g.Z(), + l = function(b) { + var c = this.activeElement; + (c = c && a.a.g.get(c, k)) && c(b) + }, + p = function(b, c) { + var d = b.ownerDocument; + a.a.g.get(d, m) || (a.a.g.set(d, m, !0), a.a.B(d, "selectionchange", l)); + a.a.g.set(b, k, c) + }; + a.c.textInput = { + init: function(b, c, k) { + function l(c, d) { + a.a.B(b, c, d) + } + + function m() { + var d = a.a.f(c()); + if (null === d || d === n) d = ""; + L !== n && d === L ? a.a.setTimeout(m, 4) : b.value !== d && (y = !0, b.value = d, y = !1, v = b.value) + } + + function r() { + w || (L = b.value, w = a.a.setTimeout(z, + 4)) + } + + function z() { + clearTimeout(w); + L = w = n; + var d = b.value; + v !== d && (v = d, a.m.eb(c(), k, "textInput", d)) + } + var v = b.value, + w, L, A = 9 == a.a.W ? r : z, + y = !1; + g && l("keypress", z); + 11 > g && l("propertychange", function(a) { + y || "value" !== a.propertyName || A(a) + }); + 8 == g && (l("keyup", z), l("keydown", z)); + p && (p(b, A), l("dragend", r)); + (!g || 9 <= g) && l("input", A); + 5 > e && "textarea" === a.a.R(b) ? (l("keydown", r), l("paste", r), l("cut", r)) : 11 > d ? l("keydown", r) : 4 > f ? (l("DOMAutoComplete", z), l("dragdrop", z), l("drop", z)) : h && "number" === b.type && l("keydown", r); + l("change", + z); + l("blur", z); + a.o(m, null, { + l: b + }) + } + }; + a.m.wa.textInput = !0; + a.c.textinput = { + preprocess: function(a, b, c) { + c("textInput", a) + } + } + })(); + a.c.uniqueName = { + init: function(b, c) { + if (c()) { + var d = "ko_unique_" + ++a.c.uniqueName.rd; + a.a.Yc(b, d) + } + } + }; + a.c.uniqueName.rd = 0; + a.c.using = { + init: function(b, c, d, e, f) { + var g; + d.has("as") && (g = { + as: d.get("as"), + noChildContext: d.get("noChildContext") + }); + c = f.createChildContext(c, g); + a.Oa(c, b); + return { + controlsDescendantBindings: !0 + } + } + }; + a.h.ea.using = !0; + a.c.value = { + init: function(b, c, d) { + var e = a.a.R(b), + f = "input" == + e; + if (!f || "checkbox" != b.type && "radio" != b.type) { + var g = [], + h = d.get("valueUpdate"), + m = !1, + k = null; + h && ("string" == typeof h ? g = [h] : g = a.a.wc(h), a.a.Pa(g, "change")); + var l = function() { + k = null; + m = !1; + var e = c(), + f = a.w.M(b); + a.m.eb(e, d, "value", f) + }; + !a.a.W || !f || "text" != b.type || "off" == b.autocomplete || b.form && "off" == b.form.autocomplete || -1 != a.a.A(g, "propertychange") || (a.a.B(b, "propertychange", function() { + m = !0 + }), a.a.B(b, "focus", function() { + m = !1 + }), a.a.B(b, "blur", function() { + m && l() + })); + a.a.D(g, function(c) { + var d = l; + a.a.Ud(c, "after") && + (d = function() { + k = a.w.M(b); + a.a.setTimeout(l, 0) + }, c = c.substring(5)); + a.a.B(b, c, d) + }); + var p; + p = f && "file" == b.type ? function() { + var d = a.a.f(c()); + null === d || d === n || "" === d ? b.value = "" : a.u.G(l) + } : function() { + var f = a.a.f(c()), + g = a.w.M(b); + if (null !== k && f === k) a.a.setTimeout(p, 0); + else if (f !== g || g === n) "select" === e ? (g = d.get("valueAllowUnset"), a.w.cb(b, f, g), g || f === a.w.M(b) || a.u.G(l)) : a.w.cb(b, f) + }; + if ("select" === e) { + var q; + a.i.subscribe(b, a.i.H, function() { + q ? d.get("valueAllowUnset") ? p() : l() : (a.a.B(b, "change", l), q = a.o(p, null, { + l: b + })) + }, + null, { + notifyImmediately: !0 + }) + } else a.a.B(b, "change", l), a.o(p, null, { + l: b + }) + } else a.ib(b, { + checkedValue: c + }) + }, + update: function() {} + }; + a.m.wa.value = !0; + a.c.visible = { + update: function(b, c) { + var d = a.a.f(c()), + e = "none" != b.style.display; + d && !e ? b.style.display = "" : !d && e && (b.style.display = "none") + } + }; + a.c.hidden = { + update: function(b, c) { + a.c.visible.update(b, function() { + return !a.a.f(c()) + }) + } + }; + (function(b) { + a.c[b] = { + init: function(c, d, e, f, g) { + return a.c.event.init.call(this, c, function() { + var a = {}; + a[b] = d(); + return a + }, e, f, g) + } + } + })("click"); + a.ca = function() {}; + a.ca.prototype.renderTemplateSource = function() { + throw Error("Override renderTemplateSource"); + }; + a.ca.prototype.createJavaScriptEvaluatorBlock = function() { + throw Error("Override createJavaScriptEvaluatorBlock"); + }; + a.ca.prototype.makeTemplateSource = function(b, c) { + if ("string" == typeof b) { + c = c || w; + var d = c.getElementById(b); + if (!d) throw Error("Cannot find template with ID " + b); + return new a.C.F(d) + } + if (1 == b.nodeType || 8 == b.nodeType) return new a.C.ia(b); + throw Error("Unknown template type: " + b); + }; + a.ca.prototype.renderTemplate = + function(a, c, d, e) { + a = this.makeTemplateSource(a, e); + return this.renderTemplateSource(a, c, d, e) + }; + a.ca.prototype.isTemplateRewritten = function(a, c) { + return !1 === this.allowTemplateRewriting ? !0 : this.makeTemplateSource(a, c).data("isRewritten") + }; + a.ca.prototype.rewriteTemplate = function(a, c, d) { + a = this.makeTemplateSource(a, d); + c = c(a.text()); + a.text(c); + a.data("isRewritten", !0) + }; + a.b("templateEngine", a.ca); + a.kc = function() { + function b(b, c, d, h) { + b = a.m.ac(b); + for (var m = a.m.Ra, k = 0; k < b.length; k++) { + var l = b[k].key; + if (Object.prototype.hasOwnProperty.call(m, + l)) { + var p = m[l]; + if ("function" === typeof p) { + if (l = p(b[k].value)) throw Error(l); + } else if (!p) throw Error("This template engine does not support the '" + l + "' binding within its templates"); + } + } + d = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + a.m.vb(b, { + valueAccessors: !0 + }) + " } })()},'" + d.toLowerCase() + "')"; + return h.createJavaScriptEvaluatorBlock(d) + c + } + var c = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi, + d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g; + return { + xd: function(b, c, d) { + c.isTemplateRewritten(b, d) || c.rewriteTemplate(b, function(b) { + return a.kc.Ld(b, c) + }, d) + }, + Ld: function(a, f) { + return a.replace(c, function(a, c, d, e, l) { + return b(l, c, d, f) + }).replace(d, function(a, c) { + return b(c, "\x3c!-- ko --\x3e", "#comment", f) + }) + }, + md: function(b, c) { + return a.aa.Xb(function(d, h) { + var m = d.nextSibling; + m && m.nodeName.toLowerCase() === c && a.ib(m, b, h) + }) + } + } + }(); + a.b("__tr_ambtns", a.kc.md); + (function() { + a.C = {}; + a.C.F = function(b) { + if (this.F = b) { + var c = + a.a.R(b); + this.ab = "script" === c ? 1 : "textarea" === c ? 2 : "template" == c && b.content && 11 === b.content.nodeType ? 3 : 4 + } + }; + a.C.F.prototype.text = function() { + var b = 1 === this.ab ? "text" : 2 === this.ab ? "value" : "innerHTML"; + if (0 == arguments.length) return this.F[b]; + var c = arguments[0]; + "innerHTML" === b ? a.a.fc(this.F, c) : this.F[b] = c + }; + var b = a.a.g.Z() + "_"; + a.C.F.prototype.data = function(c) { + if (1 === arguments.length) return a.a.g.get(this.F, b + c); + a.a.g.set(this.F, b + c, arguments[1]) + }; + var c = a.a.g.Z(); + a.C.F.prototype.nodes = function() { + var b = this.F; + if (0 == arguments.length) { + var e = a.a.g.get(b, c) || {}, + f = e.lb || (3 === this.ab ? b.content : 4 === this.ab ? b : n); + if (!f || e.jd) { + var g = this.text(); + g && g !== e.bb && (f = a.a.Md(g, b.ownerDocument), a.a.g.set(b, c, { + lb: f, + bb: g, + jd: !0 + })) + } + return f + } + e = arguments[0]; + this.ab !== n && this.text(""); + a.a.g.set(b, c, { + lb: e + }) + }; + a.C.ia = function(a) { + this.F = a + }; + a.C.ia.prototype = new a.C.F; + a.C.ia.prototype.constructor = a.C.ia; + a.C.ia.prototype.text = function() { + if (0 == arguments.length) { + var b = a.a.g.get(this.F, c) || {}; + b.bb === n && b.lb && (b.bb = b.lb.innerHTML); + return b.bb + } + a.a.g.set(this.F, + c, { + bb: arguments[0] + }) + }; + a.b("templateSources", a.C); + a.b("templateSources.domElement", a.C.F); + a.b("templateSources.anonymousTemplate", a.C.ia) + })(); + (function() { + function b(b, c, d) { + var e; + for (c = a.h.nextSibling(c); b && (e = b) !== c;) b = a.h.nextSibling(e), d(e, b) + } + + function c(c, d) { + if (c.length) { + var e = c[0], + f = c[c.length - 1], + g = e.parentNode, + h = a.ga.instance, + m = h.preprocessNode; + if (m) { + b(e, f, function(a, b) { + var c = a.previousSibling, + d = m.call(h, a); + d && (a === e && (e = d[0] || b), a === f && (f = d[d.length - 1] || c)) + }); + c.length = 0; + if (!e) return; + e === f ? c.push(e) : + (c.push(e, f), a.a.Ua(c, g)) + } + b(e, f, function(b) { + 1 !== b.nodeType && 8 !== b.nodeType || a.vc(d, b) + }); + b(e, f, function(b) { + 1 !== b.nodeType && 8 !== b.nodeType || a.aa.cd(b, [d]) + }); + a.a.Ua(c, g) + } + } + + function d(a) { + return a.nodeType ? a : 0 < a.length ? a[0] : null + } + + function e(b, e, f, h, m) { + m = m || {}; + var n = (b && d(b) || f || {}).ownerDocument, + B = m.templateEngine || g; + a.kc.xd(f, B, n); + f = B.renderTemplate(f, h, m, n); + if ("number" != typeof f.length || 0 < f.length && "number" != typeof f[0].nodeType) throw Error("Template engine must return an array of DOM nodes"); + n = !1; + switch (e) { + case "replaceChildren": + a.h.va(b, + f); + n = !0; + break; + case "replaceNode": + a.a.Xc(b, f); + n = !0; + break; + case "ignoreTargetNode": + break; + default: + throw Error("Unknown renderMode: " + e); + } + n && (c(f, h), m.afterRender && a.u.G(m.afterRender, null, [f, h[m.as || "$data"]]), "replaceChildren" == e && a.i.ma(b, a.i.H)); + return f + } + + function f(b, c, d) { + return a.O(b) ? b() : "function" === typeof b ? b(c, d) : b + } + var g; + a.gc = function(b) { + if (b != n && !(b instanceof a.ca)) throw Error("templateEngine must inherit from ko.templateEngine"); + g = b + }; + a.dc = function(b, c, h, m, t) { + h = h || {}; + if ((h.templateEngine || g) == + n) throw Error("Set a template engine before calling renderTemplate"); + t = t || "replaceChildren"; + if (m) { + var x = d(m); + return a.$(function() { + var g = c && c instanceof a.fa ? c : new a.fa(c, null, null, null, { + exportDependencies: !0 + }), + n = f(b, g.$data, g), + g = e(m, t, n, g, h); + "replaceNode" == t && (m = g, x = d(m)) + }, null, { + Sa: function() { + return !x || !a.a.Sb(x) + }, + l: x && "replaceNode" == t ? x.parentNode : x + }) + } + return a.aa.Xb(function(d) { + a.dc(b, c, h, d, "replaceNode") + }) + }; + a.Qd = function(b, d, g, h, m) { + function x(b, c) { + a.u.G(a.a.ec, null, [h, b, u, g, r, c]); + a.i.ma(h, a.i.H) + } + + function r(a, b) { + c(b, v); + g.afterRender && g.afterRender(b, a); + v = null + } + + function u(a, c) { + v = m.createChildContext(a, { + as: z, + noChildContext: g.noChildContext, + extend: function(a) { + a.$index = c; + z && (a[z + "Index"] = c) + } + }); + var d = f(b, a, v); + return e(h, "ignoreTargetNode", d, v, g) + } + var v, z = g.as, + w = !1 === g.includeDestroyed || a.options.foreachHidesDestroyed && !g.includeDestroyed; + if (w || g.beforeRemove || !a.Pc(d)) return a.$(function() { + var b = a.a.f(d) || []; + "undefined" == typeof b.length && (b = [b]); + w && (b = a.a.jb(b, function(b) { + return b === n || null === b || + !a.a.f(b._destroy) + })); + x(b) + }, null, { + l: h + }); + x(d.v()); + var A = d.subscribe(function(a) { + x(d(), a) + }, null, "arrayChange"); + A.l(h); + return A + }; + var h = a.a.g.Z(), + m = a.a.g.Z(); + a.c.template = { + init: function(b, c) { + var d = a.a.f(c()); + if ("string" == typeof d || "name" in d) a.h.Ea(b); + else if ("nodes" in d) { + d = d.nodes || []; + if (a.O(d)) throw Error('The "nodes" option must be a plain, non-observable array.'); + var e = d[0] && d[0].parentNode; + e && a.a.g.get(e, m) || (e = a.a.Yb(d), a.a.g.set(e, m, !0)); + (new a.C.ia(b)).nodes(e) + } else if (d = a.h.childNodes(b), 0 < d.length) e = + a.a.Yb(d), (new a.C.ia(b)).nodes(e); + else throw Error("Anonymous template defined, but no template content was provided"); + return { + controlsDescendantBindings: !0 + } + }, + update: function(b, c, d, e, f) { + var g = c(); + c = a.a.f(g); + d = !0; + e = null; + "string" == typeof c ? c = {} : (g = "name" in c ? c.name : b, "if" in c && (d = a.a.f(c["if"])), d && "ifnot" in c && (d = !a.a.f(c.ifnot)), d && !g && (d = !1)); + "foreach" in c ? e = a.Qd(g, d && c.foreach || [], c, b, f) : d ? (d = f, "data" in c && (d = f.createChildContext(c.data, { + as: c.as, + noChildContext: c.noChildContext, + exportDependencies: !0 + })), + e = a.dc(g, d, c, b)) : a.h.Ea(b); + f = e; + (c = a.a.g.get(b, h)) && "function" == typeof c.s && c.s(); + a.a.g.set(b, h, !f || f.ja && !f.ja() ? n : f) + } + }; + a.m.Ra.template = function(b) { + b = a.m.ac(b); + return 1 == b.length && b[0].unknown || a.m.Id(b, "name") ? null : "This template engine does not support anonymous templates nested within its templates" + }; + a.h.ea.template = !0 + })(); + a.b("setTemplateEngine", a.gc); + a.b("renderTemplate", a.dc); + a.a.Kc = function(a, c, d) { + if (a.length && c.length) { + var e, f, g, h, m; + for (e = f = 0; + (!d || e < d) && (h = a[f]); ++f) { + for (g = 0; m = c[g]; ++g) + if (h.value === + m.value) { + h.moved = m.index; + m.moved = h.index; + c.splice(g, 1); + e = g = 0; + break + } e += g + } + } + }; + a.a.Pb = function() { + function b(b, d, e, f, g) { + var h = Math.min, + m = Math.max, + k = [], + l, p = b.length, + q, n = d.length, + r = n - p || 1, + v = p + n + 1, + u, w, z; + for (l = 0; l <= p; l++) + for (w = u, k.push(u = []), z = h(n, l + r), q = m(0, l - 1); q <= z; q++) u[q] = q ? l ? b[l - 1] === d[q - 1] ? w[q - 1] : h(w[q] || v, u[q - 1] || v) + 1 : q + 1 : l + 1; + h = []; + m = []; + r = []; + l = p; + for (q = n; l || q;) n = k[l][q] - 1, q && n === k[l][q - 1] ? m.push(h[h.length] = { + status: e, + value: d[--q], + index: q + }) : l && n === k[l - 1][q] ? r.push(h[h.length] = { + status: f, + value: b[--l], + index: l + }) : + (--q, --l, g.sparse || h.push({ + status: "retained", + value: d[q] + })); + a.a.Kc(r, m, !g.dontLimitMoves && 10 * p); + return h.reverse() + } + return function(a, d, e) { + e = "boolean" === typeof e ? { + dontLimitMoves: e + } : e || {}; + a = a || []; + d = d || []; + return a.length < d.length ? b(a, d, "added", "deleted", e) : b(d, a, "deleted", "added", e) + } + }(); + a.b("utils.compareArrays", a.a.Pb); + (function() { + function b(b, c, d, h, m) { + var k = [], + l = a.$(function() { + var l = c(d, m, a.a.Ua(k, b)) || []; + 0 < k.length && (a.a.Xc(k, l), h && a.u.G(h, null, [d, l, m])); + k.length = 0; + a.a.Nb(k, l) + }, null, { + l: b, + Sa: function() { + return !a.a.kd(k) + } + }); + return { + Y: k, + $: l.ja() ? l : n + } + } + var c = a.a.g.Z(), + d = a.a.g.Z(); + a.a.ec = function(e, f, g, h, m, k) { + function l(b) { + y = { + Aa: b, + pb: a.ta(w++) + }; + v.push(y); + r || F.push(y) + } + + function p(b) { + y = t[b]; + w !== y.pb.v() && D.push(y); + y.pb(w++); + a.a.Ua(y.Y, e); + v.push(y) + } + + function q(b, c) { + if (b) + for (var d = 0, e = c.length; d < e; d++) a.a.D(c[d].Y, function(a) { + b(a, d, c[d].Aa) + }) + } + f = f || []; + "undefined" == typeof f.length && (f = [f]); + h = h || {}; + var t = a.a.g.get(e, c), + r = !t, + v = [], + u = 0, + w = 0, + z = [], + A = [], + C = [], + D = [], + F = [], + y, I = 0; + if (r) a.a.D(f, l); + else { + if (!k || t && t._countWaitingForRemove) { + var E = + a.a.Mb(t, function(a) { + return a.Aa + }); + k = a.a.Pb(E, f, { + dontLimitMoves: h.dontLimitMoves, + sparse: !0 + }) + } + for (var E = 0, G, H, K; G = k[E]; E++) switch (H = G.moved, K = G.index, G.status) { + case "deleted": + for (; u < K;) p(u++); + H === n && (y = t[u], y.$ && (y.$.s(), y.$ = n), a.a.Ua(y.Y, e).length && (h.beforeRemove && (v.push(y), I++, y.Aa === d ? y = null : C.push(y)), y && z.push.apply(z, y.Y))); + u++; + break; + case "added": + for (; w < K;) p(u++); + H !== n ? (A.push(v.length), p(H)) : l(G.value) + } + for (; w < f.length;) p(u++); + v._countWaitingForRemove = I + } + a.a.g.set(e, c, v); + q(h.beforeMove, D); + a.a.D(z, + h.beforeRemove ? a.oa : a.removeNode); + var M, O, P; + try { + P = e.ownerDocument.activeElement + } catch (N) {} + if (A.length) + for (; + (E = A.shift()) != n;) { + y = v[E]; + for (M = n; E;) + if ((O = v[--E].Y) && O.length) { + M = O[O.length - 1]; + break + } for (f = 0; u = y.Y[f]; M = u, f++) a.h.Wb(e, u, M) + } + for (E = 0; y = v[E]; E++) { + y.Y || a.a.extend(y, b(e, g, y.Aa, m, y.pb)); + for (f = 0; u = y.Y[f]; M = u, f++) a.h.Wb(e, u, M); + !y.Ed && m && (m(y.Aa, y.Y, y.pb), y.Ed = !0, M = y.Y[y.Y.length - 1]) + } + P && e.ownerDocument.activeElement != P && P.focus(); + q(h.beforeRemove, C); + for (E = 0; E < C.length; ++E) C[E].Aa = d; + q(h.afterMove, D); + q(h.afterAdd, F) + } + })(); + a.b("utils.setDomNodeChildrenFromArrayMapping", a.a.ec); + a.ba = function() { + this.allowTemplateRewriting = !1 + }; + a.ba.prototype = new a.ca; + a.ba.prototype.constructor = a.ba; + a.ba.prototype.renderTemplateSource = function(b, c, d, e) { + if (c = (9 > a.a.W ? 0 : b.nodes) ? b.nodes() : null) return a.a.la(c.cloneNode(!0).childNodes); + b = b.text(); + return a.a.ua(b, e) + }; + a.ba.Ma = new a.ba; + a.gc(a.ba.Ma); + a.b("nativeTemplateEngine", a.ba); + (function() { + a.$a = function() { + var a = this.Hd = function() { + if (!v || !v.tmpl) return 0; + try { + if (0 <= v.tmpl.tag.tmpl.open.toString().indexOf("__")) return 2 + } catch (a) {} + return 1 + }(); + this.renderTemplateSource = function(b, e, f, g) { + g = g || w; + f = f || {}; + if (2 > a) throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."); + var h = b.data("precompiled"); + h || (h = b.text() || "", h = v.template(null, "{{ko_with $item.koBindingContext}}" + h + "{{/ko_with}}"), b.data("precompiled", h)); + b = [e.$data]; + e = v.extend({ + koBindingContext: e + }, f.templateOptions); + e = v.tmpl(h, b, e); + e.appendTo(g.createElement("div")); + v.fragments = {}; + return e + }; + this.createJavaScriptEvaluatorBlock = function(a) { + return "{{ko_code ((function() { return " + + a + " })()) }}" + }; + this.addTemplate = function(a, b) { + w.write("