Basic JSON object properties revival now handled by AbstractModel

This will be better for future use of JSON.stringify() and JSON.parse()
For now the difference between the PHP JSON being PascalCase and the JS object properties being camelCase is handled by AbstractModel
This commit is contained in:
djmaze 2020-10-20 17:39:00 +02:00
parent 53bf7c1d60
commit 188a40b196
17 changed files with 131 additions and 185 deletions

View file

@ -27,7 +27,7 @@ module.exports = {
'Squire': "readonly",
'SquireUI': "readonly",
// node_modules/knockout but dev/External/ko.js is used
// 'ko': "readonly",
'ko': "readonly",
// vendors/routes/
'hasher': "readonly",
'signals': "readonly",

View file

@ -71,7 +71,7 @@ The result is faster and smaller download code (good for mobile networks).
Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill for array.flat().
* Added dev/prototype-*.js for some additional features
* Added dev/prototype*.js for some additional features
* boot.js without webpack overhead
* Modified Jua.js to be without jQuery
* Replaced ProgressJS with simple native dropin
@ -107,22 +107,22 @@ RainLoop 1.14 vs SnappyMail
|js/* |RainLoop |Snappy |
|----------- |--------: |--------: |
|admin.js |2.130.942 | 666.175 |
|app.js |4.184.455 |2.412.164 |
|admin.js |2.130.942 | 665.605 |
|app.js |4.184.455 |2.402.380 |
|boot.js | 671.522 | 5.285 |
|libs.js | 647.614 | 238.674 |
|libs.js | 647.614 | 238.766 |
|polyfills.js | 325.834 | 0 |
|TOTAL |7.960.367 |3.322.298 |
|TOTAL |7.960.367 |3.312.036 |
|js/min/* |RainLoop |Snappy |Rain gzip |gzip |brotli |
|--------------- |--------: |--------: |--------: |--------: |--------: |
|admin.min.js | 252.147 | 91.598 | 73.657 | 23.547 | 20.518 |
|app.min.js | 511.202 | 325.187 |140.462 | 83.936 | 68.135 |
|admin.min.js | 252.147 | 91.510 | 73.657 | 23.529 | 20.480 |
|app.min.js | 511.202 | 322.449 |140.462 | 83.183 | 67.656 |
|boot.min.js | 66.007 | 2.918 | 22.567 | 1.500 | 1.275 |
|libs.min.js | 572.545 | 134.223 |176.720 | 48.183 | 42.816 |
|libs.min.js | 572.545 | 134.315 |176.720 | 48.216 | 42.855 |
|polyfills.min.js | 32.452 | 0 | 11.312 | 0 | 0 |
|TOTAL |1.434.353 | 553.926 |424.718 |157.166 |132.744 |
|TOTAL (no admin) |1.182.206 | 462.328 |351.061 |133.619 |112.226 |
|TOTAL |1.434.353 | 551.192 |424.718 |156.428 |132.266 |
|TOTAL (no admin) |1.182.206 | 459.682 |351.061 |132.899 |111.786 |
For a user its around 61% smaller and faster than traditional RainLoop.
@ -156,7 +156,7 @@ For a user its around 61% smaller and faster than traditional RainLoop.
### Squire vs CKEditor
The [Squire](https://github.com/neilj/Squire) implementation is not 100% compatible yet, but is shows the massive overhead of CKEditor.
The [Squire](https://github.com/neilj/Squire) implementation is not 100% compatible yet, but it shows the massive overhead of CKEditor.
Still TODO:

View file

@ -5,6 +5,18 @@ function disposeOne(disposable) {
}
}
function typeCast(current, value) {
switch (typeof current)
{
case 'boolean': return !!value;
case 'string': return null != value ? '' + value : '';
case 'number':
value = parseInt(value, 10);
return (isNaN(value) || !isFinite(value)) ? 0 : value;
}
return value;
}
export class AbstractModel {
disposables = [];
@ -13,7 +25,7 @@ export class AbstractModel {
*/
constructor() {
/*
if (new.target === Parent) {
if (new.target === AbstractModel) {
throw new Error("Can't instantiate abstract class!");
}
this.sModelName = new.target.name;
@ -50,15 +62,35 @@ export class AbstractModel {
* @returns {*Model}
*/
static reviveFromJson(json) {
// Object/Attachment
// Object/Contact
// Object/Email
// Object/Filter
// Object/Folder
// Object/Message
// Object/Template
return this.validJson(json) ? new this() : null;
// json && Object.entries(json).forEach(([key, value]) => '@' !== key[0] && (this[key] = value));
let obj = this.validJson(json) ? new this() : null;
try {
obj && Object.entries(json).forEach(([key, value]) => {
if ('@' !== key[0]) {
key = key[0].toLowerCase() + key.substr(1);
switch (typeof obj[key])
{
case 'function':
if (ko.isObservable(obj[key]) && !ko.isObservableArray(obj[key])) {
obj[key](typeCast(obj[key](), value));
}
// else { console.log('('+(typeof obj[key])+') '+key+' not revived'); }
break;
case 'boolean':
case 'string':
case 'number':
obj[key] = typeCast(obj[key], value);
break;
// case 'undefined':
// default:
// console.log('('+(typeof obj[key])+') '+key+' not revived');
}
}
});
} catch (e) {
console.log(this.name);
console.error(e);
}
return obj;
}
}

View file

@ -47,23 +47,6 @@ class AttachmentModel extends AbstractModel {
static reviveFromJson(json) {
const attachment = super.reviveFromJson(json);
if (attachment) {
attachment.mimeType = ((json.MimeType || '').toLowerCase()).trim();
attachment.fileName = json.FileName.trim();
// if it is inline
attachment.isInline = !!json.IsInline;
// if inline image is linked with CID in html
// and 'src="cid:' or background-image:url(cid:)
attachment.isLinked = !!json.IsLinked;
attachment.isThumbnail = !!json.IsThumbnail;
attachment.cid = json.CID;
attachment.contentLocation = json.ContentLocation;
attachment.download = json.Download;
attachment.folder = json.Folder;
attachment.uid = json.Uid;
attachment.mimeIndex = json.MimeIndex;
attachment.framed = !!json.Framed;
attachment.friendlySize = File.friendlySize(json.EstimatedSize);
attachment.cidWithoutTags = attachment.cid.replace(/^<+/, '').replace(/>+$/, '');

View file

@ -2,7 +2,6 @@ import ko from 'ko';
import { ContactPropertyModel } from 'Model/ContactProperty';
import { ContactPropertyType } from 'Common/Enums';
import { pInt, pString } from 'Common/Utils';
import { AbstractModel } from 'Knoin/AbstractModel';
@ -53,10 +52,6 @@ class ContactModel extends AbstractModel {
static reviveFromJson(json) {
const contact = super.reviveFromJson(json);
if (contact) {
contact.id = pInt(json.id);
contact.display = pString(json.display);
contact.readOnly = !!json.readOnly;
let list = [];
if (Array.isNotEmpty(json.properties)) {
json.properties.forEach(property => {
@ -103,7 +98,7 @@ class ContactModel extends AbstractModel {
* @returns {string}
*/
generateUid() {
return pString(this.id);
return ''+this.id;
}
/**

View file

@ -42,16 +42,7 @@ class ContactPropertyModel extends AbstractModel {
};
}
static reviveFromJson(json) {
const property = super.reviveFromJson(json);
if (property) {
property.type(pInt(json.type));
property.typeStr(pString(json.typeStr));
property.value(pString(json.value));
return property;
}
return null;
}
// static reviveFromJson(json) {}
}
export { ContactPropertyModel, ContactPropertyModel as default };

View file

@ -289,13 +289,7 @@ class EmailModel extends AbstractModel {
*/
static reviveFromJson(json) {
const email = super.reviveFromJson(json);
if (email) {
email.name = json.Name;
email.email = json.Email;
email.dkimStatus = (json.DkimStatus || '');
email.dkimValue = (json.DkimValue || '');
email.clearDuplicateName();
}
email && email.clearDuplicateName();
return email;
}

View file

@ -216,10 +216,6 @@ class FilterModel extends AbstractModel {
const filter = super.reviveFromJson(json);
if (filter) {
filter.id = pString(json.ID);
filter.name(pString(json.Name));
filter.enabled(!!json.Enabled);
filter.conditionsType(pString(json.ConditionsType));
filter.conditions([]);
@ -229,13 +225,6 @@ class FilterModel extends AbstractModel {
);
}
filter.actionType(pString(json.ActionType));
filter.actionValue(pString(json.ActionValue));
filter.actionValueSecond(pString(json.ActionValueSecond));
filter.actionValueThird(pString(json.ActionValueThird));
filter.actionValueFourth(pString(json.ActionValueFourth));
filter.actionNoStop(!json.Stop);
filter.actionKeep(!!json.Keep);
filter.actionMarkAsRead(!!json.MarkAsRead);

View file

@ -1,7 +1,6 @@
import ko from 'ko';
import { FilterConditionField, FilterConditionType } from 'Common/Enums';
import { pString } from 'Common/Utils';
import { AbstractModel } from 'Knoin/AbstractModel';
@ -56,16 +55,7 @@ class FilterConditionModel extends AbstractModel {
return true;
}
static reviveFromJson(json) {
const filter = super.reviveFromJson(json);
if (filter) {
this.field(pString(json.field));
this.type(pString(json.type));
this.value(pString(json.value));
this.valueSecond(pString(json.valueSecond));
}
return filter;
}
// static reviveFromJson(json) {}
toJson() {
return {

View file

@ -49,17 +49,11 @@ class FolderModel extends AbstractModel {
static reviveFromJson(json) {
const folder = super.reviveFromJson(json);
if (folder) {
folder.name(json.Name);
folder.delimiter = json.Delimiter;
folder.fullName = json.FullName;
folder.fullNameRaw = json.FullNameRaw;
folder.fullNameHash = json.FullNameHash;
folder.deep = json.FullNameRaw.split(folder.delimiter).length - 1;
folder.selectable = !!json.IsSelectable;
folder.existen = !!json.IsExists;
folder.subScribed(!!json.IsSubscribed);
folder.checkable(!!json.Checkable);
folder.isInbox = ko.computed(() => FolderType.Inbox === folder.type());

View file

@ -100,11 +100,6 @@ class MessageModel extends AbstractModel {
const oMessageModel = super.reviveFromJson(json);
if (oMessageModel) {
oMessageModel.folderFullNameRaw = json.Folder;
oMessageModel.uid = json.Uid;
oMessageModel.hash = json.Hash;
oMessageModel.requestHash = json.RequestHash;
oMessageModel.size(pInt(json.Size));
oMessageModel.from = EmailCollectionModel.reviveFromJson(json.From);
oMessageModel.to = EmailCollectionModel.reviveFromJson(json.To);
@ -114,7 +109,6 @@ class MessageModel extends AbstractModel {
oMessageModel.deliveredTo = EmailCollectionModel.reviveFromJson(json.DeliveredTo);
oMessageModel.unsubsribeLinks = Array.isNotEmpty(json.UnsubsribeLinks) ? json.UnsubsribeLinks : [];
oMessageModel.subject(json.Subject);
if (isArray(json.SubjectParts)) {
oMessageModel.subjectPrefix(json.SubjectParts[0]);
oMessageModel.subjectSuffix(json.SubjectParts[1]);
@ -123,8 +117,6 @@ class MessageModel extends AbstractModel {
oMessageModel.subjectSuffix(oMessageModel.subject());
}
oMessageModel.dateTimeStampInUTC(pInt(json.DateTimeStampInUTC));
oMessageModel.fromEmailString(oMessageModel.from.toString(true));
oMessageModel.fromClearEmailString(oMessageModel.from.toStringClear());
oMessageModel.toEmailsString(oMessageModel.to.toString(true));

View file

@ -1,7 +1,5 @@
import ko from 'ko';
import { pString } from 'Common/Utils';
import { AbstractModel } from 'Knoin/AbstractModel';
class TemplateModel extends AbstractModel {
@ -10,7 +8,7 @@ class TemplateModel extends AbstractModel {
* @param {string} name
* @param {string} body
*/
constructor(id, name, body) {
constructor(id = '', name = '', body = '') {
super();
this.id = id;
@ -21,21 +19,7 @@ class TemplateModel extends AbstractModel {
this.deleteAccess = ko.observable(false);
}
/**
* @static
* @param {FetchJsonTemplate} json
* @returns {?TemplateModel}
*/
static reviveFromJson(json) {
const template = super.reviveFromJson(json);
if (template) {
template.id = pString(json.ID);
template.name = pString(json.Name);
template.body = pString(json.Body);
template.populated = !!json.Populated;
}
return template;
}
// static reviveFromJson(json) {}
}
export { TemplateModel, TemplateModel as default };

View file

@ -431,7 +431,7 @@ trait Response
'FileName' => \MailSo\Base\Utils::ClearFileName(
\MailSo\Base\Utils::ClearXss($mResponse->FileName(true))),
'EstimatedSize' => $mResponse->EstimatedSize(),
'CID' => $mResponse->Cid(),
'Cid' => $mResponse->Cid(),
'ContentLocation' => $mResponse->ContentLocation(),
'IsInline' => $mResponse->IsInline(),
'IsThumbnail' => $this->GetCapa(false, false, Capa::ATTACHMENT_THUMBNAILS),

View file

@ -86,11 +86,11 @@ class Template implements \JsonSerializable
}
}
return array(
// '@Object' => 'Object/Template',
'ID' => $this->Id(),
'Name' => $this->Name(),
'Body' => $sBody,
'Populated' => $bPopulated
'@Object' => 'Object/Template',
'id' => $this->Id(),
'name' => $this->Name(),
'body' => $sBody,
'populated' => $bPopulated
);
}

View file

@ -1046,6 +1046,7 @@ ko.isObservableArray = instance => {
};
ko.exportSymbol('observableArray', ko.observableArray);
ko.exportSymbol('isObservableArray', ko.isObservableArray);
var arrayChangeEventName = 'arrayChange';
ko.extenders['trackArrayChanges'] = (target, options) => {
// Use the provided options--each call to trackArrayChanges overwrites the previously set options

View file

@ -4,92 +4,92 @@
* License: MIT (http://www.opensource.org/licenses/mit-license.php)
*/
(E=>{function I(b,c){return null===b||typeof b in ha?b===c:!1}function G(b,c){var e;return()=>{e||(e=a.a.setTimeout(()=>{e=void 0;b()},c))}}function J(b,c){var e;return()=>{clearTimeout(e);e=a.a.setTimeout(b,c)}}function U(b,c){null!==c&&c.o&&c.o()}function Y(b,c){var e=this.Fc,f=e[F];f.ia||(this.lb&&this.Qa[c]?(e.Sb(c,b,this.Qa[c]),this.Qa[c]=null,--this.lb):f.u[c]||e.Sb(c,b,f.A?{Y:b}:e.sc(b)),b.ta&&b.wc())}var V=E.document,Z={},a="undefined"!==typeof Z?Z:{};a.s=(b,c)=>{b=b.split(".");for(var e=
a,f=0;f<b.length-1;f++)e=e[b[f]];e[b[b.length-1]]=c};a.ba=(b,c,e)=>{b[c]=e};a.version="3.5.1-sm";a.s("version",a.version);a.a=(()=>{const b=(h,l,d,g)=>Array.prototype[h].call(l,d,g),c=(h,l)=>{l&&Object.entries(l).forEach(d=>h[d[0]]=d[1]);return h},e=(h,l)=>{h.__proto__=l;return h};var f={__proto__:[]}instanceof Array;return{Z:(h,l,d)=>Array.prototype.forEach.call(h,l,d),$:(h,l)=>Array.prototype.indexOf.call(h,l,void 0),Vb:(h,l,d)=>b("find",h,(g,k,m)=>l.call(d,g,k,m)),Ma:(h,l)=>{l=a.a.$(h,l);0<l?h.splice(l,
1):0===l&&h.shift()},Ac:(h,l)=>{if(l instanceof Array)h.push.apply(h,l);else for(var d=0,g=l.length;d<g;d++)h.push(l[d]);return h},na:f,extend:c,setPrototypeOf:e,Za:f?e:c,J:(h,l)=>h&&Object.entries(h).forEach(d=>l(d[0],d[1])),Ea:(h,l,d)=>{if(!h)return h;var g={};Object.entries(h).forEach(k=>g[k[0]]=l.call(d,k[1],k[0],h));return g},ob:h=>{for(;h.firstChild;)a.removeNode(h.firstChild)},wb:h=>{var l=a.a.qa(h),d=(l[0]&&l[0].ownerDocument||V).createElement("div");h.forEach(g=>d.append(a.oa(g)));return d},
(E=>{function I(b,c){return null===b||typeof b in ha?b===c:!1}function G(b,c){var e;return()=>{e||(e=a.a.setTimeout(()=>{e=void 0;b()},c))}}function J(b,c){var e;return()=>{clearTimeout(e);e=a.a.setTimeout(b,c)}}function U(b,c){null!==c&&c.s&&c.s()}function Y(b,c){var e=this.Gc,f=e[F];f.ia||(this.lb&&this.Qa[c]?(e.Sb(c,b,this.Qa[c]),this.Qa[c]=null,--this.lb):f.u[c]||e.Sb(c,b,f.A?{Y:b}:e.tc(b)),b.ta&&b.xc())}var V=E.document,Z={},a="undefined"!==typeof Z?Z:{};a.m=(b,c)=>{b=b.split(".");for(var e=
a,f=0;f<b.length-1;f++)e=e[b[f]];e[b[b.length-1]]=c};a.ba=(b,c,e)=>{b[c]=e};a.version="3.5.1-sm";a.m("version",a.version);a.a=(()=>{const b=(h,l,d,g)=>Array.prototype[h].call(l,d,g),c=(h,l)=>{l&&Object.entries(l).forEach(d=>h[d[0]]=d[1]);return h},e=(h,l)=>{h.__proto__=l;return h};var f={__proto__:[]}instanceof Array;return{Z:(h,l,d)=>Array.prototype.forEach.call(h,l,d),$:(h,l)=>Array.prototype.indexOf.call(h,l,void 0),Vb:(h,l,d)=>b("find",h,(g,k,m)=>l.call(d,g,k,m)),Ma:(h,l)=>{l=a.a.$(h,l);0<l?h.splice(l,
1):0===l&&h.shift()},Bc:(h,l)=>{if(l instanceof Array)h.push.apply(h,l);else for(var d=0,g=l.length;d<g;d++)h.push(l[d]);return h},na:f,extend:c,setPrototypeOf:e,Za:f?e:c,J:(h,l)=>h&&Object.entries(h).forEach(d=>l(d[0],d[1])),Ea:(h,l,d)=>{if(!h)return h;var g={};Object.entries(h).forEach(k=>g[k[0]]=l.call(d,k[1],k[0],h));return g},ob:h=>{for(;h.firstChild;)a.removeNode(h.firstChild)},wb:h=>{var l=a.a.qa(h),d=(l[0]&&l[0].ownerDocument||V).createElement("div");h.forEach(g=>d.append(a.oa(g)));return d},
Oa:(h,l)=>b("map",h,l?d=>a.oa(d.cloneNode(!0)):d=>d.cloneNode(!0)),Fa:(h,l)=>{a.a.ob(h);l&&h.append.apply(h,l)},Ba:(h,l)=>{if(h.length){for(l=8===l.nodeType&&l.parentNode||l;h.length&&h[0].parentNode!==l;)h.splice(0,1);for(;1<h.length&&h[h.length-1].parentNode!==l;)h.length--;if(1<h.length){l=h[0];var d=h[h.length-1];for(h.length=0;l!==d;)h.push(l),l=l.nextSibling;h.push(d)}}return h},Db:h=>null==h?"":h.trim?h.trim():h.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,""),cd:(h,l)=>{h=h||"";return l.length>
h.length?!1:h.substring(0,l.length)===l},Ic:(h,l)=>l.contains(1!==h.nodeType?h.parentNode:h),nb:h=>a.a.Ic(h,h.ownerDocument.documentElement),da:h=>h&&h.tagName&&h.tagName.toLowerCase(),Zb:h=>a.onError?function(){try{return h.apply(this,arguments)}catch(l){throw a.onError&&a.onError(l),l;}}:h,setTimeout:(h,l)=>setTimeout(a.a.Zb(h),l),cc:h=>setTimeout(()=>{a.onError&&a.onError(h);throw h;},0),K:(h,l,d)=>{h.addEventListener(l,a.a.Zb(d),!1)},tc:(h,l)=>{if(!h||!h.nodeType)throw Error("element must be a DOM node when calling triggerEvent");
h.dispatchEvent(new Event(l))},g:h=>a.O(h)?h():h,Wc:h=>a.O(h)?h.D():h,Hb:(h,l,d)=>{if(l){var g=d?"add":"remove";l.split(/\s+/).forEach(k=>h.classList[g](k))}},Bb:(h,l)=>h.textContent=a.a.g(l)||"",qa:h=>Array.from(h)}})();a.s("utils",a.a);a.s("unwrap",a.a.g);a.a.b=new function(){var b=0,c="__ko__"+Date.now(),e=(f,h)=>{var l=f[c];!l&&h&&(l=f[c]={});return l};return{get:(f,h)=>(f=e(f,!1))&&f[h],set:(f,h,l)=>{(f=e(f,void 0!==l))&&(f[h]=l)},rb:(f,h,l)=>{f=e(f,!0);return f[h]||(f[h]=l)},clear:f=>f[c]?(delete f[c],
h.length?!1:h.substring(0,l.length)===l},Jc:(h,l)=>l.contains(1!==h.nodeType?h.parentNode:h),nb:h=>a.a.Jc(h,h.ownerDocument.documentElement),da:h=>h&&h.tagName&&h.tagName.toLowerCase(),Zb:h=>a.onError?function(){try{return h.apply(this,arguments)}catch(l){throw a.onError&&a.onError(l),l;}}:h,setTimeout:(h,l)=>setTimeout(a.a.Zb(h),l),cc:h=>setTimeout(()=>{a.onError&&a.onError(h);throw h;},0),K:(h,l,d)=>{h.addEventListener(l,a.a.Zb(d),!1)},uc:(h,l)=>{if(!h||!h.nodeType)throw Error("element must be a DOM node when calling triggerEvent");
h.dispatchEvent(new Event(l))},g:h=>a.O(h)?h():h,Wc:h=>a.O(h)?h.D():h,Hb:(h,l,d)=>{if(l){var g=d?"add":"remove";l.split(/\s+/).forEach(k=>h.classList[g](k))}},Bb:(h,l)=>h.textContent=a.a.g(l)||"",qa:h=>Array.from(h)}})();a.m("utils",a.a);a.m("unwrap",a.a.g);a.a.b=new function(){var b=0,c="__ko__"+Date.now(),e=(f,h)=>{var l=f[c];!l&&h&&(l=f[c]={});return l};return{get:(f,h)=>(f=e(f,!1))&&f[h],set:(f,h,l)=>{(f=e(f,void 0!==l))&&(f[h]=l)},rb:(f,h,l)=>{f=e(f,!0);return f[h]||(f[h]=l)},clear:f=>f[c]?(delete f[c],
!0):!1,X:()=>b++ +c}};a.a.N=new function(){function b(d,g){var k=a.a.b.get(d,f);void 0===k&&g&&(k=[],a.a.b.set(d,f,k));return k}function c(d){var g=b(d,!1);if(g){g=g.slice(0);for(var k=0;k<g.length;k++)g[k](d)}a.a.b.clear(d);l[d.nodeType]&&e(d.childNodes,!0)}function e(d,g){for(var k=[],m,p=0;p<d.length;p++)if(!g||8===d[p].nodeType)if(c(k[k.length]=m=d[p]),d[p]!==m)for(;p--&&-1==a.a.$(k,d[p]););}var f=a.a.b.X(),h={1:!0,8:!0,9:!0},l={1:!0,9:!0};return{wa:(d,g)=>{if("function"!=typeof g)throw Error("Callback must be a function");
b(d,!0).push(g)},Ab:(d,g)=>{var k=b(d,!1);k&&(a.a.Ma(k,g),0==k.length&&a.a.b.set(d,f,void 0))},oa:d=>{a.m.I(()=>{h[d.nodeType]&&(c(d),l[d.nodeType]&&e(d.getElementsByTagName("*")))});return d},removeNode:d=>{a.oa(d);d.parentNode&&d.parentNode.removeChild(d)}}};a.oa=a.a.N.oa;a.removeNode=a.a.N.removeNode;a.s("utils.domNodeDisposal",a.a.N);a.s("utils.domNodeDisposal.addDisposeCallback",a.a.N.wa);(()=>{var b=[0,"",""],c=[1,"<table>","</table>"],e=[3,"<table><tbody><tr>","</tr></tbody></table>"],f=[1,
b(d,!0).push(g)},Ab:(d,g)=>{var k=b(d,!1);k&&(a.a.Ma(k,g),0==k.length&&a.a.b.set(d,f,void 0))},oa:d=>{a.o.I(()=>{h[d.nodeType]&&(c(d),l[d.nodeType]&&e(d.getElementsByTagName("*")))});return d},removeNode:d=>{a.oa(d);d.parentNode&&d.parentNode.removeChild(d)}}};a.oa=a.a.N.oa;a.removeNode=a.a.N.removeNode;a.m("utils.domNodeDisposal",a.a.N);a.m("utils.domNodeDisposal.addDisposeCallback",a.a.N.wa);(()=>{var b=[0,"",""],c=[1,"<table>","</table>"],e=[3,"<table><tbody><tr>","</tr></tbody></table>"],f=[1,
"<select multiple='multiple'>","</select>"],h={thead:c,tbody:c,tfoot:c,tr:[2,"<table><tbody>","</tbody></table>"],td:e,th:e,option:f,optgroup:f};a.a.Ya=(l,d)=>{var g=d;g||(g=V);d=g.parentWindow||g.defaultView||E;var k=a.a.Db(l).toLowerCase();g=g.createElement("div");var m=(k=k.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&h[k[1]]||b;k=m[0];l="ignored<div>"+m[1]+l+m[2]+"</div>";for("function"==typeof d.innerShiv?g.append(d.innerShiv(l)):g.innerHTML=l;k--;)g=g.lastChild;return a.a.qa(g.lastChild.childNodes)};
a.a.Uc=(l,d)=>{l=a.a.Ya(l,d);return l.length&&l[0].parentElement||a.a.wb(l)};a.a.rc=(l,d)=>{a.a.ob(l);d=a.a.g(d);if(null!==d&&void 0!==d){"string"!=typeof d&&(d=d.toString());d=a.a.Ya(d,l.ownerDocument);for(var g=0;g<d.length;g++)l.appendChild(d[g])}}})();a.Gb=(()=>{function b(){if(e)for(var d=e,g=0,k;h<e;)if(k=c[h++]){if(h>d){if(5E3<=++g){h=e;a.a.cc(Error("'Too much recursion' after processing "+g+" task groups."));break}d=e}try{k()}catch(m){a.a.cc(m)}}h=e=c.length=0}var c=[],e=0,f=1,h=0,l=(d=>{var g=
V.createElement("div");(new MutationObserver(d)).observe(g,{attributes:!0});return()=>g.classList.toggle("foo")})(b);return{pc:d=>{e||l(b);c[e++]=d;return f++},cancel:d=>{d-=f-e;d>=h&&d<e&&(c[d]=null)}}})();a.s("tasks",a.Gb);a.pb={throttle:(b,c)=>{b.throttleEvaluation=c;var e=null;return a.i({read:b,write:f=>{clearTimeout(e);e=a.a.setTimeout(()=>b(f),c)}})},rateLimit:(b,c)=>{if("number"==typeof c)var e=c;else{e=c.timeout;var f=c.method}var h="function"==typeof f?f:"notifyWhenChangesStop"==f?J:G;b.vb(l=>
h(l,e,c))},notify:(b,c)=>{b.equalityComparer="always"==c?null:I}};var ha={undefined:1,"boolean":1,number:1,string:1};a.s("extenders",a.pb);a.Eb=function(b,c,e){this.Y=b;this.Jb=c;this.Kb=e;this.eb=!1;this.Ja=this.fb=null;a.ba(this,"dispose",this.o);a.ba(this,"disposeWhenNodeIsRemoved",this.j)};a.Eb.prototype.o=function(){this.eb||(this.Ja&&a.a.N.Ab(this.fb,this.Ja),this.eb=!0,this.Kb(),this.Y=this.Jb=this.Kb=this.fb=this.Ja=null)};a.Eb.prototype.j=function(b){this.fb=b;a.a.N.wa(b,this.Ja=this.o.bind(this))};
a.T=function(){a.a.Za(this,O);O.Va(this)};var O={Va:b=>{b.L={change:[]};b.Qb=1},subscribe:function(b,c,e){var f=this;e=e||"change";var h=new a.Eb(f,c?b.bind(c):b,()=>{a.a.Ma(f.L[e],h);f.La&&f.La(e)});f.xa&&f.xa(e);f.L[e]||(f.L[e]=[]);f.L[e].push(h);return h},notifySubscribers:function(b,c){c=c||"change";"change"===c&&this.ab();if(this.Ca(c)){c="change"===c&&this.uc||this.L[c].slice(0);try{a.m.Wb();for(var e=0,f;f=c[e];++e)f.eb||f.Jb(b)}finally{a.m.end()}}},Ta:function(){return this.Qb},Nc:function(b){return this.Ta()!==
b},ab:function(){++this.Qb},vb:function(b){var c=this,e=a.O(c),f,h,l,d,g;c.Ka||(c.Ka=c.notifySubscribers,c.notifySubscribers=function(m,p){p&&"change"!==p?"beforeChange"===p?this.Nb(m):this.Ka(m,p):this.Ob(m)});var k=b(()=>{c.ta=!1;e&&d===c&&(d=c.Lb?c.Lb():c());var m=h||g&&c.Xa(l,d);g=h=f=!1;m&&c.Ka(l=d)});c.Ob=(m,p)=>{p&&c.ta||(g=!p);c.uc=c.L.change.slice(0);c.ta=f=!0;d=m;k()};c.Nb=m=>{f||(l=m,c.Ka(m,"beforeChange"))};c.Pb=()=>{g=!0};c.wc=()=>{c.Xa(l,c.D(!0))&&(h=!0)}},Ca:function(b){return this.L[b]&&
this.L[b].length},Lc:function(b){if(b)return this.L[b]&&this.L[b].length||0;var c=0;a.a.J(this.L,(e,f)=>c+=f.length);return c},Xa:function(b,c){return!this.equalityComparer||!this.equalityComparer(b,c)},toString:()=>"[object Object]",extend:function(b){var c=this;b&&a.a.J(b,(e,f)=>{e=a.pb[e];"function"==typeof e&&(c=e(c,f)||c)});return c}};a.ba(O,"init",O.Va);a.ba(O,"subscribe",O.subscribe);a.ba(O,"extend",O.extend);a.ba(O,"getSubscriptionsCount",O.Lc);a.a.na&&a.a.setPrototypeOf(O,Function.prototype);
a.T.fn=O;a.Qc=b=>null!=b&&"function"==typeof b.subscribe&&"function"==typeof b.notifySubscribers;a.ya=a.m=(()=>{function b(l){e.push(f);f=l}function c(){f=e.pop()}var e=[],f,h=0;return{Wb:b,end:c,oc:l=>{if(f){if(!a.Qc(l))throw Error("Only subscribable things can act as dependencies");f.Cc.call(f.Dc,l,l.vc||(l.vc=++h))}},I:(l,d,g)=>{try{return b(),l.apply(d,g||[])}finally{c()}},Sa:()=>{if(f)return f.i.Sa()},qb:()=>{if(f)return f.i.qb()},tb:()=>{if(f)return f.tb},i:()=>{if(f)return f.i}}})();var P=
Symbol("_latestValue");a.ka=b=>{function c(){if(0<arguments.length)return c.Xa(c[P],arguments[0])&&(c.bb(),c[P]=arguments[0],c.Ia()),this;a.m.oc(c);return c[P]}c[P]=b;a.a.na||a.a.extend(c,a.T.fn);a.T.fn.Va(c);a.a.Za(c,Q);return c};var Q={toJSON:function(){let b=this[P];return b.toJSON?b.toJSON():b},equalityComparer:I,D:function(){return this[P]},Ia:function(){this.notifySubscribers(this[P],"spectate");this.notifySubscribers(this[P])},bb:function(){this.notifySubscribers(this[P],"beforeChange")}};
a.a.na&&a.a.setPrototypeOf(Q,a.T.fn);var R=a.ka.xc="__ko_proto__";Q[R]=a.ka;a.O=b=>{if((b="function"==typeof b&&b[R])&&b!==Q[R]&&b!==a.i.fn[R])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b};a.kc=b=>"function"==typeof b&&(b[R]===Q[R]||b[R]===a.i.fn[R]&&b.ic);a.s("observable",a.ka);a.s("isObservable",a.O);a.s("observable.fn",Q);a.ba(Q,"valueHasMutated",Q.Ia);a.ra=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.");
a.a.Uc=(l,d)=>{l=a.a.Ya(l,d);return l.length&&l[0].parentElement||a.a.wb(l)};a.a.sc=(l,d)=>{a.a.ob(l);d=a.a.g(d);if(null!==d&&void 0!==d){"string"!=typeof d&&(d=d.toString());d=a.a.Ya(d,l.ownerDocument);for(var g=0;g<d.length;g++)l.appendChild(d[g])}}})();a.Gb=(()=>{function b(){if(e)for(var d=e,g=0,k;h<e;)if(k=c[h++]){if(h>d){if(5E3<=++g){h=e;a.a.cc(Error("'Too much recursion' after processing "+g+" task groups."));break}d=e}try{k()}catch(m){a.a.cc(m)}}h=e=c.length=0}var c=[],e=0,f=1,h=0,l=(d=>{var g=
V.createElement("div");(new MutationObserver(d)).observe(g,{attributes:!0});return()=>g.classList.toggle("foo")})(b);return{qc:d=>{e||l(b);c[e++]=d;return f++},cancel:d=>{d-=f-e;d>=h&&d<e&&(c[d]=null)}}})();a.m("tasks",a.Gb);a.pb={throttle:(b,c)=>{b.throttleEvaluation=c;var e=null;return a.i({read:b,write:f=>{clearTimeout(e);e=a.a.setTimeout(()=>b(f),c)}})},rateLimit:(b,c)=>{if("number"==typeof c)var e=c;else{e=c.timeout;var f=c.method}var h="function"==typeof f?f:"notifyWhenChangesStop"==f?J:G;b.vb(l=>
h(l,e,c))},notify:(b,c)=>{b.equalityComparer="always"==c?null:I}};var ha={undefined:1,"boolean":1,number:1,string:1};a.m("extenders",a.pb);a.Eb=function(b,c,e){this.Y=b;this.Jb=c;this.Kb=e;this.eb=!1;this.Ja=this.fb=null;a.ba(this,"dispose",this.s);a.ba(this,"disposeWhenNodeIsRemoved",this.j)};a.Eb.prototype.s=function(){this.eb||(this.Ja&&a.a.N.Ab(this.fb,this.Ja),this.eb=!0,this.Kb(),this.Y=this.Jb=this.Kb=this.fb=this.Ja=null)};a.Eb.prototype.j=function(b){this.fb=b;a.a.N.wa(b,this.Ja=this.s.bind(this))};
a.T=function(){a.a.Za(this,O);O.Va(this)};var O={Va:b=>{b.L={change:[]};b.Qb=1},subscribe:function(b,c,e){var f=this;e=e||"change";var h=new a.Eb(f,c?b.bind(c):b,()=>{a.a.Ma(f.L[e],h);f.La&&f.La(e)});f.xa&&f.xa(e);f.L[e]||(f.L[e]=[]);f.L[e].push(h);return h},notifySubscribers:function(b,c){c=c||"change";"change"===c&&this.ab();if(this.Ca(c)){c="change"===c&&this.vc||this.L[c].slice(0);try{a.o.Wb();for(var e=0,f;f=c[e];++e)f.eb||f.Jb(b)}finally{a.o.end()}}},Ta:function(){return this.Qb},Oc:function(b){return this.Ta()!==
b},ab:function(){++this.Qb},vb:function(b){var c=this,e=a.O(c),f,h,l,d,g;c.Ka||(c.Ka=c.notifySubscribers,c.notifySubscribers=function(m,p){p&&"change"!==p?"beforeChange"===p?this.Nb(m):this.Ka(m,p):this.Ob(m)});var k=b(()=>{c.ta=!1;e&&d===c&&(d=c.Lb?c.Lb():c());var m=h||g&&c.Xa(l,d);g=h=f=!1;m&&c.Ka(l=d)});c.Ob=(m,p)=>{p&&c.ta||(g=!p);c.vc=c.L.change.slice(0);c.ta=f=!0;d=m;k()};c.Nb=m=>{f||(l=m,c.Ka(m,"beforeChange"))};c.Pb=()=>{g=!0};c.xc=()=>{c.Xa(l,c.D(!0))&&(h=!0)}},Ca:function(b){return this.L[b]&&
this.L[b].length},Mc:function(b){if(b)return this.L[b]&&this.L[b].length||0;var c=0;a.a.J(this.L,(e,f)=>c+=f.length);return c},Xa:function(b,c){return!this.equalityComparer||!this.equalityComparer(b,c)},toString:()=>"[object Object]",extend:function(b){var c=this;b&&a.a.J(b,(e,f)=>{e=a.pb[e];"function"==typeof e&&(c=e(c,f)||c)});return c}};a.ba(O,"init",O.Va);a.ba(O,"subscribe",O.subscribe);a.ba(O,"extend",O.extend);a.ba(O,"getSubscriptionsCount",O.Mc);a.a.na&&a.a.setPrototypeOf(O,Function.prototype);
a.T.fn=O;a.Qc=b=>null!=b&&"function"==typeof b.subscribe&&"function"==typeof b.notifySubscribers;a.ya=a.o=(()=>{function b(l){e.push(f);f=l}function c(){f=e.pop()}var e=[],f,h=0;return{Wb:b,end:c,pc:l=>{if(f){if(!a.Qc(l))throw Error("Only subscribable things can act as dependencies");f.Dc.call(f.Ec,l,l.wc||(l.wc=++h))}},I:(l,d,g)=>{try{return b(),l.apply(d,g||[])}finally{c()}},Sa:()=>{if(f)return f.i.Sa()},qb:()=>{if(f)return f.i.qb()},tb:()=>{if(f)return f.tb},i:()=>{if(f)return f.i}}})();var P=
Symbol("_latestValue");a.ka=b=>{function c(){if(0<arguments.length)return c.Xa(c[P],arguments[0])&&(c.bb(),c[P]=arguments[0],c.Ia()),this;a.o.pc(c);return c[P]}c[P]=b;a.a.na||a.a.extend(c,a.T.fn);a.T.fn.Va(c);a.a.Za(c,Q);return c};var Q={toJSON:function(){let b=this[P];return b.toJSON?b.toJSON():b},equalityComparer:I,D:function(){return this[P]},Ia:function(){this.notifySubscribers(this[P],"spectate");this.notifySubscribers(this[P])},bb:function(){this.notifySubscribers(this[P],"beforeChange")}};
a.a.na&&a.a.setPrototypeOf(Q,a.T.fn);var R=a.ka.yc="__ko_proto__";Q[R]=a.ka;a.O=b=>{if((b="function"==typeof b&&b[R])&&b!==Q[R]&&b!==a.i.fn[R])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b};a.lc=b=>"function"==typeof b&&(b[R]===Q[R]||b[R]===a.i.fn[R]&&b.ic);a.m("observable",a.ka);a.m("isObservable",a.O);a.m("observable.fn",Q);a.ba(Q,"valueHasMutated",Q.Ia);a.ra=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.ka(b);a.a.Za(b,a.ra.fn);return b.extend({trackArrayChanges:!0})};a.ra.fn={remove:function(b){for(var c=this.D(),e=[],f="function"!=typeof b||a.O(b)?function(d){return d===b}:b,h=0;h<c.length;h++){var l=c[h];if(f(l)){0===e.length&&this.bb();if(c[h]!==l)throw Error("Array modified during remove; cannot remove item");e.push(l);c.splice(h,1);h--}}e.length&&this.Ia();return e},removeAll:function(b){if(void 0===b){var c=this.D(),e=c.slice(0);this.bb();c.splice(0,c.length);this.Ia();return e}return b?
this.remove(function(f){return 0<=a.a.$(b,f)}):[]},indexOf:function(b){return a.a.$(this(),b)}};a.a.na&&a.a.setPrototypeOf(a.ra.fn,a.ka.fn);"pop push reverse shift sort splice unshift".split(" ").forEach(b=>{a.ra.fn[b]=function(){var c=this.D();this.bb();this.Yb(c,b,arguments);var e=c[b].apply(c,arguments);this.Ia();return e===c?this:e}});["slice"].forEach(b=>{a.ra.fn[b]=function(){var c=this();return c[b].apply(c,arguments)}});a.Pc=b=>a.O(b)&&"function"==typeof b.remove&&"function"==typeof b.push;
a.s("observableArray",a.ra);a.pb.trackArrayChanges=(b,c)=>{function e(){function q(){if(g){var u=[].concat(b.D()||[]);if(b.Ca("arrayChange")){if(!h||1<g)h=a.a.$b(k,u,b.jb);var y=h}k=u;h=null;g=0;y&&y.length&&b.notifySubscribers(y,"arrayChange")}}f?q():(f=!0,d=b.subscribe(()=>++g,null,"spectate"),k=[].concat(b.D()||[]),h=null,l=b.subscribe(q))}b.jb={};c&&"object"==typeof c&&a.a.extend(b.jb,c);b.jb.sparse=!0;if(!b.Yb){var f=!1,h=null,l,d,g=0,k,m=b.xa,p=b.La;b.xa=q=>{m&&m.call(b,q);"arrayChange"===q&&
e()};b.La=q=>{p&&p.call(b,q);"arrayChange"!==q||b.Ca("arrayChange")||(l&&l.o(),d&&d.o(),d=l=null,f=!1,k=void 0)};b.Yb=(q,u,y)=>{function t(C,A,H){return x[x.length]={status:C,value:A,index:H}}if(f&&!g){var x=[],n=q.length,r=y.length,v=0;switch(u){case "push":v=n;case "unshift":for(u=0;u<r;u++)t("added",y[u],v+u);break;case "pop":v=n-1;case "shift":n&&t("deleted",q[v],v);break;case "splice":u=Math.min(Math.max(0,0>y[0]?n+y[0]:y[0]),n);n=1===r?n:Math.min(u+(y[1]||0),n);r=u+r-2;v=Math.max(n,r);for(var w=
[],B=[],z=2;u<v;++u,++z)u<n&&B.push(t("deleted",q[u],u)),u<r&&w.push(t("added",y[z],u));a.a.fc(B,w);break;default:return}h=x}}}};var F=Symbol("_state");a.i=function(b,c,e){function f(){if(0<arguments.length){if("function"===typeof h)h.apply(l.Ra,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}l.ia||a.m.oc(f);(l.ca||l.A&&f.Da())&&f.V();return l.P}"object"===typeof b?
e=b:(e=e||{},b&&(e.read=b));if("function"!=typeof e.read)throw Error("Pass a function that returns the value of the ko.computed");var h=e.write,l={P:void 0,ja:!0,ca:!0,Wa:!1,Fb:!1,ia:!1,zb:!1,A:!1,nc:e.read,Ra:c||e.owner,j:e.disposeWhenNodeIsRemoved||e.j||null,za:e.disposeWhen||e.za,mb:null,u:{},M:0,ec:null};f[F]=l;f.ic="function"===typeof h;a.a.na||a.a.extend(f,a.T.fn);a.T.fn.Va(f);a.a.Za(f,W);e.pure?(l.zb=!0,l.A=!0,a.a.extend(f,ia)):e.deferEvaluation&&a.a.extend(f,ja);l.j&&(l.Fb=!0,l.j.nodeType||
(l.j=null));l.A||e.deferEvaluation||f.V();l.j&&f.ha()&&a.a.N.wa(l.j,l.mb=function(){f.o()});return f};var W={equalityComparer:I,Sa:function(){return this[F].M},qb:function(){var b=[];a.a.J(this[F].u,(c,e)=>b[e.ua]=e.Y);return b},sb:function(b){if(!this[F].M)return!1;var c=this.qb();return-1!==a.a.$(c,b)?!0:!!a.a.Vb(c,e=>e.sb&&e.sb(b))},Sb:function(b,c,e){if(this[F].zb&&c===this)throw Error("A 'pure' computed must not be called recursively");this[F].u[b]=e;e.ua=this[F].M++;e.va=c.Ta()},Da:function(){var b,
c=this[F].u;for(b in c)if(Object.prototype.hasOwnProperty.call(c,b)){var e=c[b];if(this.sa&&e.Y.ta||e.Y.Nc(e.va))return!0}},fd:function(){this.sa&&!this[F].Wa&&this.sa(!1)},ha:function(){var b=this[F];return b.ca||0<b.M},gd:function(){this.ta?this[F].ca&&(this[F].ja=!0):this.dc()},sc:function(b){return b.subscribe(this.dc,this)},dc:function(){var b=this,c=b.throttleEvaluation;c&&0<=c?(clearTimeout(this[F].ec),this[F].ec=a.a.setTimeout(()=>b.V(!0),c)):b.sa?b.sa(!0):b.V(!0)},V:function(b){var c=this[F],
e=c.za,f=!1;if(!c.Wa&&!c.ia){if(c.j&&!a.a.nb(c.j)||e&&e()){if(!c.Fb){this.o();return}}else c.Fb=!1;c.Wa=!0;try{f=this.Kc(b)}finally{c.Wa=!1}return f}},Kc:function(b){var c=this[F],e=c.zb?void 0:!c.M;var f={Fc:this,Qa:c.u,lb:c.M};a.m.Wb({Dc:f,Cc:Y,i:this,tb:e});c.u={};c.M=0;var h=this.Jc(c,f);c.M?f=this.Xa(c.P,h):(this.o(),f=!0);f&&(c.A?this.ab():this.notifySubscribers(c.P,"beforeChange"),c.P=h,this.notifySubscribers(c.P,"spectate"),!c.A&&b&&this.notifySubscribers(c.P),this.Pb&&this.Pb());e&&this.notifySubscribers(c.P,
"awake");return f},Jc:(b,c)=>{try{var e=b.nc;return b.Ra?e.call(b.Ra):e()}finally{a.m.end(),c.lb&&!b.A&&a.a.J(c.Qa,U),b.ja=b.ca=!1}},D:function(b){var c=this[F];(c.ca&&(b||!c.M)||c.A&&this.Da())&&this.V();return c.P},vb:function(b){a.T.fn.vb.call(this,b);this.Lb=function(){this[F].A||(this[F].ja?this.V():this[F].ca=!1);return this[F].P};this.sa=function(c){this.Nb(this[F].P);this[F].ca=!0;c&&(this[F].ja=!0);this.Ob(this,!c)}},o:function(){var b=this[F];!b.A&&b.u&&a.a.J(b.u,(c,e)=>e.o&&e.o());b.j&&
b.mb&&a.a.N.Ab(b.j,b.mb);b.u=void 0;b.M=0;b.ia=!0;b.ja=!1;b.ca=!1;b.A=!1;b.j=void 0;b.za=void 0;b.nc=void 0;this.ic||(b.Ra=void 0)}},ia={xa:function(b){var c=this,e=c[F];if(!e.ia&&e.A&&"change"==b){e.A=!1;if(e.ja||c.Da())e.u=null,e.M=0,c.V()&&c.ab();else{var f=[];a.a.J(e.u,(h,l)=>f[l.ua]=h);a.a.Z(f,(h,l)=>{var d=e.u[h],g=c.sc(d.Y);g.ua=l;g.va=d.va;e.u[h]=g});c.Da()&&c.V()&&c.ab()}e.ia||c.notifySubscribers(e.P,"awake")}},La:function(b){var c=this[F];c.ia||"change"!=b||this.Ca("change")||(a.a.J(c.u,
(e,f)=>{f.o&&(c.u[e]={Y:f.Y,ua:f.ua,va:f.va},f.o())}),c.A=!0,this.notifySubscribers(void 0,"asleep"))},Ta:function(){var b=this[F];b.A&&(b.ja||this.Da())&&this.V();return a.T.fn.Ta.call(this)}},ja={xa:function(b){"change"!=b&&"beforeChange"!=b||this.D()}};a.a.na&&a.a.setPrototypeOf(W,a.T.fn);W[a.ka.xc]=a.i;a.s("computed",a.i);a.s("computed.fn",W);a.ba(W,"dispose",W.o);a.Yc=b=>{if("function"===typeof b)return a.i(b,void 0,{pure:!0});b=a.a.extend({},b);b.pure=!0;return a.i(b,void 0)};(()=>{a.B={S:b=>
{switch(a.a.da(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.b.get(b,a.c.options.yb):b.value;case "select":return 0<=b.selectedIndex?a.B.S(b.options[b.selectedIndex]):void 0;default:return b.value}},cb:(b,c,e)=>{switch(a.a.da(b)){case "option":"string"===typeof c?(a.a.b.set(b,a.c.options.yb,void 0),delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.b.set(b,a.c.options.yb,c),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof c?c:"");break;case "select":if(""===c||null===
c)c=void 0;for(var f=-1,h=0,l=b.options.length,d;h<l;++h)if(d=a.B.S(b.options[h]),d==c||""===d&&void 0===c){f=h;break}if(e||0<=f||void 0===c&&1<b.size)b.selectedIndex=f;break;default:if(null===c||void 0===c)c="";b.value=c}}}})();a.H=(()=>{function b(g){g=a.a.Db(g);123===g.charCodeAt(0)&&(g=g.slice(1,-1));g+="\n,";var k=[],m=g.match(f),p=[],q=0;if(1<m.length){for(var u=0,y;y=m[u];++u){var t=y.charCodeAt(0);if(44===t){if(0>=q){k.push(x&&p.length?{key:x,value:p.join("")}:{unknown:x||p.join("")});var x=
q=0;p=[];continue}}else if(58===t){if(!q&&!x&&1===p.length){x=p.pop();continue}}else if(47===t&&1<y.length&&(47===y.charCodeAt(1)||42===y.charCodeAt(1)))continue;else 47===t&&u&&1<y.length?(t=m[u-1].match(h))&&!l[t[0]]&&(g=g.substr(g.indexOf(y)+1),m=g.match(f),u=-1,y="/"):40===t||123===t||91===t?++q:41===t||125===t||93===t?--q:x||p.length||34!==t&&39!==t||(y=y.slice(1,-1));p.push(y)}if(0<q)throw Error("Unbalanced parentheses, braces, or brackets");}return k}var c=["true","false","null","undefined"],
e=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,f=/"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|`(?:\\.|[^`])*`|\/\*(?:[^*]|\*+[^*/])*\*+\/|\/\/.*\n|\/(?:\\.|[^/])+\/w*|[^\s:,/][^,"'`{}()/:[\]]*[^\s,"'`{}()/:[\]]|[^\s]/g,h=/[\])"'A-Za-z0-9_$]+$/,l={"in":1,"return":1,"typeof":1},d={};return{ib:[],$a:d,Vc:b,Xc:function(g,k){function m(t,x){if(!y){var n=a.getBindingHandler(t);if(n&&n.preprocess&&!(x=n.preprocess(x,t,m)))return;if(n=d[t]){var r=x;0<=a.a.$(c,r)?r=!1:(n=r.match(e),r=null===n?!1:n[1]?"Object("+
n[1]+")"+n[2]:r);n=r}n&&q.push("'"+("string"==typeof d[t]?d[t]:t)+"':function(_z){"+r+"=_z}")}u&&(x="function(){return "+x+" }");p.push("'"+t+"':"+x)}k=k||{};var p=[],q=[],u=k.valueAccessors,y=k.bindingParams;g="string"===typeof g?b(g):g;a.a.Z(g,t=>m(t.key||t.unknown,t.value));q.length&&m("_ko_property_writers","{"+q.join(",")+" }");return p.join(",")},Sc:(g,k)=>{for(var m=0;m<g.length;m++)if(g[m].key==k)return!0;return!1},Ib:(g,k,m,p,q)=>{if(g&&a.O(g))!a.kc(g)||q&&g.D()===p||g(p);else if((g=k.get("_ko_property_writers"))&&
g[m])g[m](p)}}})();(()=>{function b(d){return 8==d.nodeType&&f.test(d.nodeValue)}function c(d){return 8==d.nodeType&&h.test(d.nodeValue)}function e(d,g){for(var k=d,m=1,p=[];k=k.nextSibling;){if(c(k)&&(a.a.b.set(k,l,!0),m--,0===m))return p;p.push(k);b(k)&&m++}if(!g)throw Error("Cannot find closing comment tag to match: "+d.nodeValue);return null}var f=/^\s*ko(?:\s+([\s\S]+))?\s*$/,h=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";a.h={la:{},childNodes:d=>b(d)?e(d):d.childNodes,Aa:d=>{if(b(d)){d=a.h.childNodes(d);
for(var g=0,k=d.length;g<k;g++)a.removeNode(d[g])}else a.a.ob(d)},Fa:(d,g)=>{if(b(d)){a.h.Aa(d);d=d.nextSibling;for(var k=0,m=g.length;k<m;k++)d.parentNode.insertBefore(g[k],d)}else a.a.Fa(d,g)},prepend:(d,g)=>{if(b(d)){var k=d.nextSibling;d=d.parentNode}else k=d.firstChild;d.insertBefore(g,k)},jc:(d,g,k)=>{k?(k=k.nextSibling,b(d)&&(d=d.parentNode),d.insertBefore(g,k)):a.h.prepend(d,g)},firstChild:d=>{if(!b(d)){if(d.firstChild&&c(d.firstChild))throw Error("Found invalid end comment, as the first child of "+
d);return d.firstChild}return!d.nextSibling||c(d.nextSibling)?null:d.nextSibling},nextSibling:d=>{if(b(d)){var g=e(d,void 0);d=g?0<g.length?g[g.length-1].nextSibling:d.nextSibling:null}if(d.nextSibling&&c(d.nextSibling)){g=d.nextSibling;if(c(g)&&!a.a.b.get(g,l))throw Error("Found end comment without a matching opening comment, as child of "+d);return null}return d.nextSibling},Mc:b,dd:d=>(d=d.nodeValue.match(f))?d[1]:null}})();(function(){a.aa=function(){this.Bc={}};a.a.extend(a.aa.prototype,{nodeHasBindings:b=>
{switch(b.nodeType){case 1:return null!=b.getAttribute("data-bind")||a.l.getComponentNameForNode(b);case 8:return a.h.Mc(b);default:return!1}},getBindings:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b):null;return a.l.Rb(e,b,c,!1)},getBindingAccessors:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b,{valueAccessors:!0}):null;return a.l.Rb(e,b,c,!0)},getBindingsString:b=>{switch(b.nodeType){case 1:return b.getAttribute("data-bind");
case 8:return a.h.dd(b)}return null},parseBindingsString:function(b,c,e,f){try{var h=this.Bc,l=b+(f&&f.valueAccessors||""),d;if(!(d=h[l])){var g="with($context){with($data||{}){return{"+a.H.Xc(b,f)+"}}}";var k=new Function("$context","$element",g);d=h[l]=k}return d(c,e)}catch(m){throw m.message="Unable to parse bindings.\nBindings value: "+b+"\nMessage: "+m.message,m;}}});a.aa.instance=new a.aa})();(()=>{function b(n){var r=(n=a.a.b.get(n,x))&&n.G;r&&(n.G=null,r.mc())}function c(n,r,v){this.node=
n;this.Xb=r;this.Na=[];this.C=!1;r.G||a.a.N.wa(n,b);v&&v.G&&(v.G.Na.push(n),this.gb=v)}function e(n){return a.a.Ea(a.m.I(n),(r,v)=>()=>n()[v])}function f(n,r,v){return"function"===typeof n?e(n.bind(null,r,v)):a.a.Ea(n,w=>()=>w)}function h(n,r){return e(this.getBindings.bind(this,n,r))}function l(n,r){var v=a.h.firstChild(r);if(v){var w,B=a.aa.instance,z=B.preprocessNode;if(z){for(;w=v;)v=a.h.nextSibling(w),z.call(B,w);v=a.h.firstChild(r)}for(;w=v;)v=a.h.nextSibling(w),d(n,w)}a.f.notify(r,a.f.C)}function d(n,
this.remove(function(f){return 0<=a.a.$(b,f)}):[]},indexOf:function(b){return a.a.$(this(),b)}};a.a.na&&a.a.setPrototypeOf(a.ra.fn,a.ka.fn);"pop push reverse shift sort splice unshift".split(" ").forEach(b=>{a.ra.fn[b]=function(){var c=this.D();this.bb();this.Yb(c,b,arguments);var e=c[b].apply(c,arguments);this.Ia();return e===c?this:e}});["slice"].forEach(b=>{a.ra.fn[b]=function(){var c=this();return c[b].apply(c,arguments)}});a.kc=b=>a.O(b)&&"function"==typeof b.remove&&"function"==typeof b.push;
a.m("observableArray",a.ra);a.m("isObservableArray",a.kc);a.pb.trackArrayChanges=(b,c)=>{function e(){function q(){if(g){var u=[].concat(b.D()||[]);if(b.Ca("arrayChange")){if(!h||1<g)h=a.a.$b(k,u,b.jb);var y=h}k=u;h=null;g=0;y&&y.length&&b.notifySubscribers(y,"arrayChange")}}f?q():(f=!0,d=b.subscribe(()=>++g,null,"spectate"),k=[].concat(b.D()||[]),h=null,l=b.subscribe(q))}b.jb={};c&&"object"==typeof c&&a.a.extend(b.jb,c);b.jb.sparse=!0;if(!b.Yb){var f=!1,h=null,l,d,g=0,k,m=b.xa,p=b.La;b.xa=q=>{m&&
m.call(b,q);"arrayChange"===q&&e()};b.La=q=>{p&&p.call(b,q);"arrayChange"!==q||b.Ca("arrayChange")||(l&&l.s(),d&&d.s(),d=l=null,f=!1,k=void 0)};b.Yb=(q,u,y)=>{function t(C,A,H){return x[x.length]={status:C,value:A,index:H}}if(f&&!g){var x=[],n=q.length,r=y.length,v=0;switch(u){case "push":v=n;case "unshift":for(u=0;u<r;u++)t("added",y[u],v+u);break;case "pop":v=n-1;case "shift":n&&t("deleted",q[v],v);break;case "splice":u=Math.min(Math.max(0,0>y[0]?n+y[0]:y[0]),n);n=1===r?n:Math.min(u+(y[1]||0),n);
r=u+r-2;v=Math.max(n,r);for(var w=[],B=[],z=2;u<v;++u,++z)u<n&&B.push(t("deleted",q[u],u)),u<r&&w.push(t("added",y[z],u));a.a.fc(B,w);break;default:return}h=x}}}};var F=Symbol("_state");a.i=function(b,c,e){function f(){if(0<arguments.length){if("function"===typeof h)h.apply(l.Ra,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}l.ia||a.o.pc(f);(l.ca||l.A&&f.Da())&&
f.V();return l.P}"object"===typeof b?e=b:(e=e||{},b&&(e.read=b));if("function"!=typeof e.read)throw Error("Pass a function that returns the value of the ko.computed");var h=e.write,l={P:void 0,ja:!0,ca:!0,Wa:!1,Fb:!1,ia:!1,zb:!1,A:!1,oc:e.read,Ra:c||e.owner,j:e.disposeWhenNodeIsRemoved||e.j||null,za:e.disposeWhen||e.za,mb:null,u:{},M:0,ec:null};f[F]=l;f.ic="function"===typeof h;a.a.na||a.a.extend(f,a.T.fn);a.T.fn.Va(f);a.a.Za(f,W);e.pure?(l.zb=!0,l.A=!0,a.a.extend(f,ia)):e.deferEvaluation&&a.a.extend(f,
ja);l.j&&(l.Fb=!0,l.j.nodeType||(l.j=null));l.A||e.deferEvaluation||f.V();l.j&&f.ha()&&a.a.N.wa(l.j,l.mb=function(){f.s()});return f};var W={equalityComparer:I,Sa:function(){return this[F].M},qb:function(){var b=[];a.a.J(this[F].u,(c,e)=>b[e.ua]=e.Y);return b},sb:function(b){if(!this[F].M)return!1;var c=this.qb();return-1!==a.a.$(c,b)?!0:!!a.a.Vb(c,e=>e.sb&&e.sb(b))},Sb:function(b,c,e){if(this[F].zb&&c===this)throw Error("A 'pure' computed must not be called recursively");this[F].u[b]=e;e.ua=this[F].M++;
e.va=c.Ta()},Da:function(){var b,c=this[F].u;for(b in c)if(Object.prototype.hasOwnProperty.call(c,b)){var e=c[b];if(this.sa&&e.Y.ta||e.Y.Oc(e.va))return!0}},fd:function(){this.sa&&!this[F].Wa&&this.sa(!1)},ha:function(){var b=this[F];return b.ca||0<b.M},gd:function(){this.ta?this[F].ca&&(this[F].ja=!0):this.dc()},tc:function(b){return b.subscribe(this.dc,this)},dc:function(){var b=this,c=b.throttleEvaluation;c&&0<=c?(clearTimeout(this[F].ec),this[F].ec=a.a.setTimeout(()=>b.V(!0),c)):b.sa?b.sa(!0):
b.V(!0)},V:function(b){var c=this[F],e=c.za,f=!1;if(!c.Wa&&!c.ia){if(c.j&&!a.a.nb(c.j)||e&&e()){if(!c.Fb){this.s();return}}else c.Fb=!1;c.Wa=!0;try{f=this.Lc(b)}finally{c.Wa=!1}return f}},Lc:function(b){var c=this[F],e=c.zb?void 0:!c.M;var f={Gc:this,Qa:c.u,lb:c.M};a.o.Wb({Ec:f,Dc:Y,i:this,tb:e});c.u={};c.M=0;var h=this.Kc(c,f);c.M?f=this.Xa(c.P,h):(this.s(),f=!0);f&&(c.A?this.ab():this.notifySubscribers(c.P,"beforeChange"),c.P=h,this.notifySubscribers(c.P,"spectate"),!c.A&&b&&this.notifySubscribers(c.P),
this.Pb&&this.Pb());e&&this.notifySubscribers(c.P,"awake");return f},Kc:(b,c)=>{try{var e=b.oc;return b.Ra?e.call(b.Ra):e()}finally{a.o.end(),c.lb&&!b.A&&a.a.J(c.Qa,U),b.ja=b.ca=!1}},D:function(b){var c=this[F];(c.ca&&(b||!c.M)||c.A&&this.Da())&&this.V();return c.P},vb:function(b){a.T.fn.vb.call(this,b);this.Lb=function(){this[F].A||(this[F].ja?this.V():this[F].ca=!1);return this[F].P};this.sa=function(c){this.Nb(this[F].P);this[F].ca=!0;c&&(this[F].ja=!0);this.Ob(this,!c)}},s:function(){var b=this[F];
!b.A&&b.u&&a.a.J(b.u,(c,e)=>e.s&&e.s());b.j&&b.mb&&a.a.N.Ab(b.j,b.mb);b.u=void 0;b.M=0;b.ia=!0;b.ja=!1;b.ca=!1;b.A=!1;b.j=void 0;b.za=void 0;b.oc=void 0;this.ic||(b.Ra=void 0)}},ia={xa:function(b){var c=this,e=c[F];if(!e.ia&&e.A&&"change"==b){e.A=!1;if(e.ja||c.Da())e.u=null,e.M=0,c.V()&&c.ab();else{var f=[];a.a.J(e.u,(h,l)=>f[l.ua]=h);a.a.Z(f,(h,l)=>{var d=e.u[h],g=c.tc(d.Y);g.ua=l;g.va=d.va;e.u[h]=g});c.Da()&&c.V()&&c.ab()}e.ia||c.notifySubscribers(e.P,"awake")}},La:function(b){var c=this[F];c.ia||
"change"!=b||this.Ca("change")||(a.a.J(c.u,(e,f)=>{f.s&&(c.u[e]={Y:f.Y,ua:f.ua,va:f.va},f.s())}),c.A=!0,this.notifySubscribers(void 0,"asleep"))},Ta:function(){var b=this[F];b.A&&(b.ja||this.Da())&&this.V();return a.T.fn.Ta.call(this)}},ja={xa:function(b){"change"!=b&&"beforeChange"!=b||this.D()}};a.a.na&&a.a.setPrototypeOf(W,a.T.fn);W[a.ka.yc]=a.i;a.m("computed",a.i);a.m("computed.fn",W);a.ba(W,"dispose",W.s);a.Yc=b=>{if("function"===typeof b)return a.i(b,void 0,{pure:!0});b=a.a.extend({},b);b.pure=
!0;return a.i(b,void 0)};(()=>{a.B={S:b=>{switch(a.a.da(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.b.get(b,a.c.options.yb):b.value;case "select":return 0<=b.selectedIndex?a.B.S(b.options[b.selectedIndex]):void 0;default:return b.value}},cb:(b,c,e)=>{switch(a.a.da(b)){case "option":"string"===typeof c?(a.a.b.set(b,a.c.options.yb,void 0),delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.b.set(b,a.c.options.yb,c),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof c?
c:"");break;case "select":if(""===c||null===c)c=void 0;for(var f=-1,h=0,l=b.options.length,d;h<l;++h)if(d=a.B.S(b.options[h]),d==c||""===d&&void 0===c){f=h;break}if(e||0<=f||void 0===c&&1<b.size)b.selectedIndex=f;break;default:if(null===c||void 0===c)c="";b.value=c}}}})();a.H=(()=>{function b(g){g=a.a.Db(g);123===g.charCodeAt(0)&&(g=g.slice(1,-1));g+="\n,";var k=[],m=g.match(f),p=[],q=0;if(1<m.length){for(var u=0,y;y=m[u];++u){var t=y.charCodeAt(0);if(44===t){if(0>=q){k.push(x&&p.length?{key:x,value:p.join("")}:
{unknown:x||p.join("")});var x=q=0;p=[];continue}}else if(58===t){if(!q&&!x&&1===p.length){x=p.pop();continue}}else if(47===t&&1<y.length&&(47===y.charCodeAt(1)||42===y.charCodeAt(1)))continue;else 47===t&&u&&1<y.length?(t=m[u-1].match(h))&&!l[t[0]]&&(g=g.substr(g.indexOf(y)+1),m=g.match(f),u=-1,y="/"):40===t||123===t||91===t?++q:41===t||125===t||93===t?--q:x||p.length||34!==t&&39!==t||(y=y.slice(1,-1));p.push(y)}if(0<q)throw Error("Unbalanced parentheses, braces, or brackets");}return k}var c=["true",
"false","null","undefined"],e=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,f=/"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|`(?:\\.|[^`])*`|\/\*(?:[^*]|\*+[^*/])*\*+\/|\/\/.*\n|\/(?:\\.|[^/])+\/w*|[^\s:,/][^,"'`{}()/:[\]]*[^\s,"'`{}()/:[\]]|[^\s]/g,h=/[\])"'A-Za-z0-9_$]+$/,l={"in":1,"return":1,"typeof":1},d={};return{ib:[],$a:d,Vc:b,Xc:function(g,k){function m(t,x){if(!y){var n=a.getBindingHandler(t);if(n&&n.preprocess&&!(x=n.preprocess(x,t,m)))return;if(n=d[t]){var r=x;0<=a.a.$(c,r)?r=!1:(n=r.match(e),
r=null===n?!1:n[1]?"Object("+n[1]+")"+n[2]:r);n=r}n&&q.push("'"+("string"==typeof d[t]?d[t]:t)+"':function(_z){"+r+"=_z}")}u&&(x="function(){return "+x+" }");p.push("'"+t+"':"+x)}k=k||{};var p=[],q=[],u=k.valueAccessors,y=k.bindingParams;g="string"===typeof g?b(g):g;a.a.Z(g,t=>m(t.key||t.unknown,t.value));q.length&&m("_ko_property_writers","{"+q.join(",")+" }");return p.join(",")},Sc:(g,k)=>{for(var m=0;m<g.length;m++)if(g[m].key==k)return!0;return!1},Ib:(g,k,m,p,q)=>{if(g&&a.O(g))!a.lc(g)||q&&g.D()===
p||g(p);else if((g=k.get("_ko_property_writers"))&&g[m])g[m](p)}}})();(()=>{function b(d){return 8==d.nodeType&&f.test(d.nodeValue)}function c(d){return 8==d.nodeType&&h.test(d.nodeValue)}function e(d,g){for(var k=d,m=1,p=[];k=k.nextSibling;){if(c(k)&&(a.a.b.set(k,l,!0),m--,0===m))return p;p.push(k);b(k)&&m++}if(!g)throw Error("Cannot find closing comment tag to match: "+d.nodeValue);return null}var f=/^\s*ko(?:\s+([\s\S]+))?\s*$/,h=/^\s*\/ko\s*$/,l="__ko_matchedEndComment__";a.h={la:{},childNodes:d=>
b(d)?e(d):d.childNodes,Aa:d=>{if(b(d)){d=a.h.childNodes(d);for(var g=0,k=d.length;g<k;g++)a.removeNode(d[g])}else a.a.ob(d)},Fa:(d,g)=>{if(b(d)){a.h.Aa(d);d=d.nextSibling;for(var k=0,m=g.length;k<m;k++)d.parentNode.insertBefore(g[k],d)}else a.a.Fa(d,g)},prepend:(d,g)=>{if(b(d)){var k=d.nextSibling;d=d.parentNode}else k=d.firstChild;d.insertBefore(g,k)},jc:(d,g,k)=>{k?(k=k.nextSibling,b(d)&&(d=d.parentNode),d.insertBefore(g,k)):a.h.prepend(d,g)},firstChild:d=>{if(!b(d)){if(d.firstChild&&c(d.firstChild))throw Error("Found invalid end comment, as the first child of "+
d);return d.firstChild}return!d.nextSibling||c(d.nextSibling)?null:d.nextSibling},nextSibling:d=>{if(b(d)){var g=e(d,void 0);d=g?0<g.length?g[g.length-1].nextSibling:d.nextSibling:null}if(d.nextSibling&&c(d.nextSibling)){g=d.nextSibling;if(c(g)&&!a.a.b.get(g,l))throw Error("Found end comment without a matching opening comment, as child of "+d);return null}return d.nextSibling},Nc:b,dd:d=>(d=d.nodeValue.match(f))?d[1]:null}})();(function(){a.aa=function(){this.Cc={}};a.a.extend(a.aa.prototype,{nodeHasBindings:b=>
{switch(b.nodeType){case 1:return null!=b.getAttribute("data-bind")||a.l.getComponentNameForNode(b);case 8:return a.h.Nc(b);default:return!1}},getBindings:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b):null;return a.l.Rb(e,b,c,!1)},getBindingAccessors:function(b,c){var e=this.getBindingsString(b,c);e=e?this.parseBindingsString(e,c,b,{valueAccessors:!0}):null;return a.l.Rb(e,b,c,!0)},getBindingsString:b=>{switch(b.nodeType){case 1:return b.getAttribute("data-bind");
case 8:return a.h.dd(b)}return null},parseBindingsString:function(b,c,e,f){try{var h=this.Cc,l=b+(f&&f.valueAccessors||""),d;if(!(d=h[l])){var g="with($context){with($data||{}){return{"+a.H.Xc(b,f)+"}}}";var k=new Function("$context","$element",g);d=h[l]=k}return d(c,e)}catch(m){throw m.message="Unable to parse bindings.\nBindings value: "+b+"\nMessage: "+m.message,m;}}});a.aa.instance=new a.aa})();(()=>{function b(n){var r=(n=a.a.b.get(n,x))&&n.G;r&&(n.G=null,r.nc())}function c(n,r,v){this.node=
n;this.Xb=r;this.Na=[];this.C=!1;r.G||a.a.N.wa(n,b);v&&v.G&&(v.G.Na.push(n),this.gb=v)}function e(n){return a.a.Ea(a.o.I(n),(r,v)=>()=>n()[v])}function f(n,r,v){return"function"===typeof n?e(n.bind(null,r,v)):a.a.Ea(n,w=>()=>w)}function h(n,r){return e(this.getBindings.bind(this,n,r))}function l(n,r){var v=a.h.firstChild(r);if(v){var w,B=a.aa.instance,z=B.preprocessNode;if(z){for(;w=v;)v=a.h.nextSibling(w),z.call(B,w);v=a.h.firstChild(r)}for(;w=v;)v=a.h.nextSibling(w),d(n,w)}a.f.notify(r,a.f.C)}function d(n,
r){var v=n;if(1===r.nodeType||a.aa.instance.nodeHasBindings(r))v=k(r,null,n).bindingContextForDescendants;v&&!y[a.a.da(r)]&&l(v,r)}function g(n){var r=[],v={},w=[];a.a.J(n,function C(z){if(!v[z]){var A=a.getBindingHandler(z);A&&(A.after&&(w.push(z),a.a.Z(A.after,H=>{if(n[H]){if(-1!==a.a.$(w,H))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+w.join(", "));C(H)}}),w.length--),r.push({key:z,hc:A}));v[z]=!0}});return r}function k(n,r,v){var w=a.a.b.rb(n,x,
{}),B=w.yc;if(!r){if(B)throw Error("You cannot apply bindings multiple times to the same element.");w.yc=!0}B||(w.context=v);w.xb||(w.xb={});if(r&&"function"!==typeof r)var z=r;else{var C=a.aa.instance,A=C.getBindingAccessors||h,H=a.i(()=>{if(z=r?r(v,n):A.call(C,n,v)){if(v[p])v[p]();if(v[u])v[u]()}return z},null,{j:n});z&&H.ha()||(H=null)}var N=v,K;if(z){var L=H?D=>()=>H()[D]():D=>z[D];function M(){return a.a.Ea(H?H():z,D=>D())}M.get=D=>z[D]&&L(D)();M.has=D=>D in z;a.f.C in z&&a.f.subscribe(n,a.f.C,
()=>{var D=z[a.f.C]();if(D){var S=a.h.childNodes(n);S.length&&D(S,a.bc(S[0]))}});a.f.ga in z&&(N=a.f.Cb(n,v),a.f.subscribe(n,a.f.ga,()=>{var D=z[a.f.ga]();D&&a.h.firstChild(n)&&D(n)}));w=g(z);a.a.Z(w,D=>{var S=D.hc.init,ca=D.hc.update,T=D.key;if(8===n.nodeType&&!a.h.la[T])throw Error("The binding '"+T+"' cannot be used with virtual elements");try{"function"==typeof S&&a.m.I(()=>{var X=S(n,L(T),M,N.$data,N);if(X&&X.controlsDescendantBindings){if(void 0!==K)throw Error("Multiple bindings ("+K+" and "+
{}),B=w.zc;if(!r){if(B)throw Error("You cannot apply bindings multiple times to the same element.");w.zc=!0}B||(w.context=v);w.xb||(w.xb={});if(r&&"function"!==typeof r)var z=r;else{var C=a.aa.instance,A=C.getBindingAccessors||h,H=a.i(()=>{if(z=r?r(v,n):A.call(C,n,v)){if(v[p])v[p]();if(v[u])v[u]()}return z},null,{j:n});z&&H.ha()||(H=null)}var N=v,K;if(z){var L=H?D=>()=>H()[D]():D=>z[D];function M(){return a.a.Ea(H?H():z,D=>D())}M.get=D=>z[D]&&L(D)();M.has=D=>D in z;a.f.C in z&&a.f.subscribe(n,a.f.C,
()=>{var D=z[a.f.C]();if(D){var S=a.h.childNodes(n);S.length&&D(S,a.bc(S[0]))}});a.f.ga in z&&(N=a.f.Cb(n,v),a.f.subscribe(n,a.f.ga,()=>{var D=z[a.f.ga]();D&&a.h.firstChild(n)&&D(n)}));w=g(z);a.a.Z(w,D=>{var S=D.hc.init,ca=D.hc.update,T=D.key;if(8===n.nodeType&&!a.h.la[T])throw Error("The binding '"+T+"' cannot be used with virtual elements");try{"function"==typeof S&&a.o.I(()=>{var X=S(n,L(T),M,N.$data,N);if(X&&X.controlsDescendantBindings){if(void 0!==K)throw Error("Multiple bindings ("+K+" and "+
T+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");K=T}}),"function"==typeof ca&&a.i(()=>ca(n,L(T),M,N.$data,N),null,{j:n})}catch(X){throw X.message='Unable to process binding "'+T+": "+z[T]+'"\nMessage: '+X.message,X;}})}w=void 0===K;return{shouldBindDescendants:w,bindingContextForDescendants:w&&N}}function m(n,r){return n&&n instanceof a.U?n:new a.U(n,void 0,void 0,r)}var p=Symbol("_subscribable"),q=Symbol("_ancestorBindingInfo"),
u=Symbol("_dataDependency");a.c={};var y={script:!0,textarea:!0,template:!0};a.getBindingHandler=n=>a.c[n];var t={};a.U=function(n,r,v,w,B){function z(){var M=N?H():H,D=a.a.g(M);r?(a.a.extend(C,r),q in r&&(C[q]=r[q])):(C.$parents=[],C.$root=D,C.ko=a);C[p]=L;A?D=C.$data:(C.$rawData=M,C.$data=D);v&&(C[v]=D);w&&w(C,r,D);if(r&&r[p]&&!a.ya.i().sb(r[p]))r[p]();K&&(C[u]=K);return C.$data}var C=this,A=n===t,H=A?void 0:n,N="function"==typeof H&&!a.O(H),K=B&&B.dataDependency;if(B&&B.exportDependencies)z();
else{var L=a.Yc(z);L.D();L.ha()?L.equalityComparer=null:C[p]=void 0}};a.U.prototype.createChildContext=function(n,r,v,w){!w&&r&&"object"==typeof r&&(w=r,r=w.as,v=w.extend);if(r&&w&&w.noChildContext){var B="function"==typeof n&&!a.O(n);return new a.U(t,this,null,z=>{v&&v(z);z[r]=B?n():n},w)}return new a.U(n,this,r,(z,C)=>{z.$parentContext=C;z.$parent=C.$data;z.$parents=(C.$parents||[]).slice(0);z.$parents.unshift(z.$parent);v&&v(z)},w)};a.U.prototype.extend=function(n,r){return new a.U(t,this,null,
v=>a.a.extend(v,"function"==typeof n?n(v):n),r)};var x=a.a.b.X();c.prototype.mc=function(){this.gb&&this.gb.G&&this.gb.G.Hc(this.node)};c.prototype.Hc=function(n){a.a.Ma(this.Na,n);!this.Na.length&&this.C&&this.ac()};c.prototype.ac=function(){this.C=!0;this.Xb.G&&!this.Na.length&&(this.Xb.G=null,a.a.N.Ab(this.node,b),a.f.notify(this.node,a.f.ga),this.mc())};a.f={C:"childrenComplete",ga:"descendantsComplete",subscribe:(n,r,v,w,B)=>{var z=a.a.b.rb(n,x,{});z.pa||(z.pa=new a.T);B&&B.notifyImmediately&&
z.xb[r]&&a.m.I(v,w,[n]);return z.pa.subscribe(v,w,r)},notify:(n,r)=>{var v=a.a.b.get(n,x);if(v&&(v.xb[r]=!0,v.pa&&v.pa.notifySubscribers(n,r),r==a.f.C))if(v.G)v.G.ac();else if(void 0===v.G&&v.pa&&v.pa.Ca(a.f.ga))throw Error("descendantsComplete event not supported for bindings on this node");},Cb:(n,r)=>{var v=a.a.b.rb(n,x,{});v.G||(v.G=new c(n,v,r[q]));return r[q]==v?r:r.extend(w=>{w[q]=v})}};a.bd=n=>(n=a.a.b.get(n,x))&&n.context;a.hb=(n,r,v)=>k(n,r,m(v));a.ed=(n,r,v)=>{v=m(v);return a.hb(n,f(r,
v,n),v)};a.Ub=(n,r)=>{1!==r.nodeType&&8!==r.nodeType||l(m(n),r)};a.Tb=function(n,r,v){if(2>arguments.length){if(r=V.body,!r)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!r||1!==r.nodeType&&8!==r.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");d(m(n,v),r)};a.bc=n=>(n=n&&[1,8].includes(n.nodeType)&&a.bd(n))?n.$data:void 0;a.s("bindingHandlers",a.c);a.s("applyBindings",
a.Tb);a.s("applyBindingAccessorsToNode",a.hb);a.s("dataFor",a.bc)})();(()=>{function b(d,g){return Object.prototype.hasOwnProperty.call(d,g)?d[g]:void 0}function c(d,g){var k=b(h,d);if(k)k.subscribe(g);else{k=h[d]=new a.T;k.subscribe(g);e(d,(p,q)=>{q=!(!q||!q.synchronous);l[d]={definition:p,Rc:q};delete h[d];m||q?k.notifySubscribers(p):a.Gb.pc(()=>k.notifySubscribers(p))});var m=!0}}function e(d,g){f("getConfig",[d],k=>{k?f("loadComponent",[d,k],m=>g(m,k)):g(null,null)})}function f(d,g,k,m){m||(m=
a.l.loaders.slice(0));var p=m.shift();if(p){var q=p[d];if(q){var u=!1;if(void 0!==q.apply(p,g.concat(function(y){u?k(null):null!==y?k(y):f(d,g,k,m)}))&&(u=!0,!p.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else f(d,g,k,m)}else k(null)}var h={},l={};a.l={get:(d,g)=>{var k=b(l,d);k?k.Rc?a.m.I(()=>g(k.definition)):a.Gb.pc(()=>g(k.definition)):c(d,g)},Ec:d=>delete l[d],Mb:f};a.l.loaders=[];a.s("components",
v=>a.a.extend(v,"function"==typeof n?n(v):n),r)};var x=a.a.b.X();c.prototype.nc=function(){this.gb&&this.gb.G&&this.gb.G.Ic(this.node)};c.prototype.Ic=function(n){a.a.Ma(this.Na,n);!this.Na.length&&this.C&&this.ac()};c.prototype.ac=function(){this.C=!0;this.Xb.G&&!this.Na.length&&(this.Xb.G=null,a.a.N.Ab(this.node,b),a.f.notify(this.node,a.f.ga),this.nc())};a.f={C:"childrenComplete",ga:"descendantsComplete",subscribe:(n,r,v,w,B)=>{var z=a.a.b.rb(n,x,{});z.pa||(z.pa=new a.T);B&&B.notifyImmediately&&
z.xb[r]&&a.o.I(v,w,[n]);return z.pa.subscribe(v,w,r)},notify:(n,r)=>{var v=a.a.b.get(n,x);if(v&&(v.xb[r]=!0,v.pa&&v.pa.notifySubscribers(n,r),r==a.f.C))if(v.G)v.G.ac();else if(void 0===v.G&&v.pa&&v.pa.Ca(a.f.ga))throw Error("descendantsComplete event not supported for bindings on this node");},Cb:(n,r)=>{var v=a.a.b.rb(n,x,{});v.G||(v.G=new c(n,v,r[q]));return r[q]==v?r:r.extend(w=>{w[q]=v})}};a.bd=n=>(n=a.a.b.get(n,x))&&n.context;a.hb=(n,r,v)=>k(n,r,m(v));a.ed=(n,r,v)=>{v=m(v);return a.hb(n,f(r,
v,n),v)};a.Ub=(n,r)=>{1!==r.nodeType&&8!==r.nodeType||l(m(n),r)};a.Tb=function(n,r,v){if(2>arguments.length){if(r=V.body,!r)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?");}else if(!r||1!==r.nodeType&&8!==r.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");d(m(n,v),r)};a.bc=n=>(n=n&&[1,8].includes(n.nodeType)&&a.bd(n))?n.$data:void 0;a.m("bindingHandlers",a.c);a.m("applyBindings",
a.Tb);a.m("applyBindingAccessorsToNode",a.hb);a.m("dataFor",a.bc)})();(()=>{function b(d,g){return Object.prototype.hasOwnProperty.call(d,g)?d[g]:void 0}function c(d,g){var k=b(h,d);if(k)k.subscribe(g);else{k=h[d]=new a.T;k.subscribe(g);e(d,(p,q)=>{q=!(!q||!q.synchronous);l[d]={definition:p,Rc:q};delete h[d];m||q?k.notifySubscribers(p):a.Gb.qc(()=>k.notifySubscribers(p))});var m=!0}}function e(d,g){f("getConfig",[d],k=>{k?f("loadComponent",[d,k],m=>g(m,k)):g(null,null)})}function f(d,g,k,m){m||(m=
a.l.loaders.slice(0));var p=m.shift();if(p){var q=p[d];if(q){var u=!1;if(void 0!==q.apply(p,g.concat(function(y){u?k(null):null!==y?k(y):f(d,g,k,m)}))&&(u=!0,!p.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else f(d,g,k,m)}else k(null)}var h={},l={};a.l={get:(d,g)=>{var k=b(l,d);k?k.Rc?a.o.I(()=>g(k.definition)):a.Gb.qc(()=>g(k.definition)):c(d,g)},Fc:d=>delete l[d],Mb:f};a.l.loaders=[];a.m("components",
a.l)})();(()=>{function b(d,g,k,m){var p={},q=2;g=k.template;k=k.viewModel;g?a.l.Mb("loadTemplate",[d,g],u=>{p.template=u;0===--q&&m(p)}):0===--q&&m(p);k?a.l.Mb("loadViewModel",[d,k],u=>{p[l]=u;0===--q&&m(p)}):0===--q&&m(p)}function c(d,g,k){if("function"===typeof g)k(p=>new g(p));else if("function"===typeof g[l])k(g[l]);else if("instance"in g){var m=g.instance;k(()=>m)}else"viewModel"in g?c(d,g.viewModel,k):d("Unknown viewModel value: "+g)}function e(d){if("template"==a.a.da(d)&&d.content instanceof
DocumentFragment)return a.a.Oa(d.content.childNodes);throw"Template Source Element not a <template>";}function f(d){return g=>{throw Error("Component '"+d+"': "+g);}}var h={};a.l.register=(d,g)=>{if(!g)throw Error("Invalid configuration for "+d);if(a.l.ub(d))throw Error("Component "+d+" is already registered");h[d]=g};a.l.ub=d=>Object.prototype.hasOwnProperty.call(h,d);a.l.unregister=d=>{delete h[d];a.l.Ec(d)};a.l.Gc={getConfig:(d,g)=>{d=a.l.ub(d)?h[d]:null;g(d)},loadComponent:(d,g,k)=>{var m=f(d);
b(d,m,g,k)},loadTemplate:(d,g,k)=>{d=f(d);if("string"===typeof g)k(a.a.Ya(g));else if(g instanceof Array)k(g);else if(g instanceof DocumentFragment)k(a.a.qa(g.childNodes));else if(g.element)if(g=g.element,g instanceof HTMLElement)k(e(g));else if("string"===typeof g){var m=V.getElementById(g);m?k(e(m)):d("Cannot find element with ID "+g)}else d("Unknown element type: "+g);else d("Unknown template value: "+g)},loadViewModel:(d,g,k)=>c(f(d),g,k)};var l="createViewModel";a.s("components.register",a.l.register);
a.l.loaders.push(a.l.Gc)})();(()=>{function b(e,f){var h=e.getAttribute("params");return h?(f=c.parseBindingsString(h,f,e,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ea(f,l=>a.i(l,null,{j:e})),h=a.a.Ea(f,l=>{var d=l.D();return l.ha()?a.i({read:()=>a.a.g(l()),write:a.kc(d)&&(g=>l()(g)),j:e}):d}),Object.prototype.hasOwnProperty.call(h,"$raw")||(h.$raw=f),h):{$raw:{}}}a.l.getComponentNameForNode=e=>{var f=a.a.da(e);if(a.l.ub(f)&&(-1!=f.indexOf("-")||"[object HTMLUnknownElement]"==""+e))return f};a.l.Rb=
DocumentFragment)return a.a.Oa(d.content.childNodes);throw"Template Source Element not a <template>";}function f(d){return g=>{throw Error("Component '"+d+"': "+g);}}var h={};a.l.register=(d,g)=>{if(!g)throw Error("Invalid configuration for "+d);if(a.l.ub(d))throw Error("Component "+d+" is already registered");h[d]=g};a.l.ub=d=>Object.prototype.hasOwnProperty.call(h,d);a.l.unregister=d=>{delete h[d];a.l.Fc(d)};a.l.Hc={getConfig:(d,g)=>{d=a.l.ub(d)?h[d]:null;g(d)},loadComponent:(d,g,k)=>{var m=f(d);
b(d,m,g,k)},loadTemplate:(d,g,k)=>{d=f(d);if("string"===typeof g)k(a.a.Ya(g));else if(g instanceof Array)k(g);else if(g instanceof DocumentFragment)k(a.a.qa(g.childNodes));else if(g.element)if(g=g.element,g instanceof HTMLElement)k(e(g));else if("string"===typeof g){var m=V.getElementById(g);m?k(e(m)):d("Cannot find element with ID "+g)}else d("Unknown element type: "+g);else d("Unknown template value: "+g)},loadViewModel:(d,g,k)=>c(f(d),g,k)};var l="createViewModel";a.m("components.register",a.l.register);
a.l.loaders.push(a.l.Hc)})();(()=>{function b(e,f){var h=e.getAttribute("params");return h?(f=c.parseBindingsString(h,f,e,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ea(f,l=>a.i(l,null,{j:e})),h=a.a.Ea(f,l=>{var d=l.D();return l.ha()?a.i({read:()=>a.a.g(l()),write:a.lc(d)&&(g=>l()(g)),j:e}):d}),Object.prototype.hasOwnProperty.call(h,"$raw")||(h.$raw=f),h):{$raw:{}}}a.l.getComponentNameForNode=e=>{var f=a.a.da(e);if(a.l.ub(f)&&(-1!=f.indexOf("-")||"[object HTMLUnknownElement]"==""+e))return f};a.l.Rb=
(e,f,h,l)=>{if(1===f.nodeType){var d=a.l.getComponentNameForNode(f);if(d){e=e||{};if(e.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var g={name:d,params:b(f,h)};e.component=l?()=>g:g}}return e};var c=new a.aa})();(()=>{function b(f,h,l){h=h.template;if(!h)throw Error("Component '"+f+"' has no template");f=a.a.Oa(h);a.h.Fa(l,f)}function c(f,h,l){var d=f.createViewModel;return d?d.call(f,h,l):h}var e=0;a.c.component={init:(f,h,l,d,g)=>{var k,m,
p,q=()=>{var y=k&&k.dispose;"function"===typeof y&&y.call(k);p&&p.o();m=k=p=null},u=a.a.qa(a.h.childNodes(f));a.h.Aa(f);a.a.N.wa(f,q);a.i(()=>{var y=a.a.g(h());if("string"===typeof y)var t=y;else{t=a.a.g(y.name);var x=a.a.g(y.params)}if(!t)throw Error("No component name specified");var n=a.f.Cb(f,g),r=m=++e;a.l.get(t,v=>{if(m===r){q();if(!v)throw Error("Unknown component '"+t+"'");b(t,v,f);var w=c(v,x,{element:f,templateNodes:u});v=n.createChildContext(w,{extend:B=>{B.$component=w;B.$componentTemplateNodes=
p,q=()=>{var y=k&&k.dispose;"function"===typeof y&&y.call(k);p&&p.s();m=k=p=null},u=a.a.qa(a.h.childNodes(f));a.h.Aa(f);a.a.N.wa(f,q);a.i(()=>{var y=a.a.g(h());if("string"===typeof y)var t=y;else{t=a.a.g(y.name);var x=a.a.g(y.params)}if(!t)throw Error("No component name specified");var n=a.f.Cb(f,g),r=m=++e;a.l.get(t,v=>{if(m===r){q();if(!v)throw Error("Unknown component '"+t+"'");b(t,v,f);var w=c(v,x,{element:f,templateNodes:u});v=n.createChildContext(w,{extend:B=>{B.$component=w;B.$componentTemplateNodes=
u}});w&&w.koDescendantsComplete&&(p=a.f.subscribe(f,a.f.ga,w.koDescendantsComplete,w));k=w;a.Ub(v,f)}})},null,{j:f});return{controlsDescendantBindings:!0}}};a.h.la.component=!0})();a.c.attr={update:(b,c)=>{c=a.a.g(c())||{};a.a.J(c,function(e,f){f=a.a.g(f);var h=e.indexOf(":");h="lookupNamespaceURI"in b&&0<h&&b.lookupNamespaceURI(e.substr(0,h));var l=!1===f||null===f||void 0===f;l?h?b.removeAttributeNS(h,e):b.removeAttribute(e):f=f.toString();l||(h?b.setAttributeNS(h,e,f):b.setAttribute(e,f));"name"===
e&&(b.name=l?"":f)})}};a.c.css={update:(b,c)=>{c=a.a.g(c());null!==c&&"object"==typeof c?a.a.J(c,(e,f)=>{f=a.a.g(f);a.a.Hb(b,e,f)}):(c=a.a.Db(c),a.a.Hb(b,b.__ko__cssValue,!1),b.__ko__cssValue=c,a.a.Hb(b,c,!0))}};a.c.enable={update:(b,c)=>{(c=a.a.g(c()))&&b.disabled?b.removeAttribute("disabled"):c||b.disabled||(b.disabled=!0)}};a.c.disable={update:(b,c)=>a.c.enable.update(b,()=>!a.a.g(c()))};a.c.event={init:(b,c,e,f,h)=>{var l=c()||{};a.a.J(l,d=>{"string"==typeof d&&a.a.K(b,d,function(g){var k=c()[d];
if(k){try{var m=a.a.qa(arguments);f=h.$data;m.unshift(f);var p=k.apply(f,m)}finally{!0!==p&&(g.preventDefault?g.preventDefault():g.returnValue=!1)}!1===e.get(d+"Bubble")&&(g.cancelBubble=!0,g.stopPropagation&&g.stopPropagation())}})})}};a.c.foreach={lc:b=>()=>{var c=b(),e=a.a.Wc(c);if(!e||"number"==typeof e.length)return{foreach:c,templateEngine:a.W.instance};a.a.g(c);return{foreach:e.data,as:e.as,noChildContext:e.noChildContext,includeDestroyed:e.includeDestroyed,afterAdd:e.afterAdd,beforeRemove:e.beforeRemove,
afterRender:e.afterRender,beforeMove:e.beforeMove,afterMove:e.afterMove,templateEngine:a.W.instance}},init:(b,c)=>a.c.template.init(b,a.c.foreach.lc(c)),update:(b,c,e,f,h)=>a.c.template.update(b,a.c.foreach.lc(c),e,f,h)};a.H.ib.foreach=!1;a.h.la.foreach=!0;a.c.hasfocus={init:(b,c,e)=>{var f=l=>{b.__ko_hasfocusUpdating=!0;l=b.ownerDocument.activeElement===b;var d=c();a.H.Ib(d,e,"hasfocus",l,!0);b.__ko_hasfocusLastValue=l;b.__ko_hasfocusUpdating=!1},h=f.bind(null,!0);f=f.bind(null,!1);a.a.K(b,"focus",
h);a.a.K(b,"focusin",h);a.a.K(b,"blur",f);a.a.K(b,"focusout",f);b.__ko_hasfocusLastValue=!1},update:(b,c)=>{c=!!a.a.g(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===c||(c?b.focus():b.blur())}};a.H.$a.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.H.$a.hasFocus="hasfocus";a.c.html={init:()=>({controlsDescendantBindings:!0}),update:(b,c)=>a.a.rc(b,c())};(function(){function b(c,e,f){a.c[c]={init:(h,l,d,g,k)=>{var m,p,q={},u;if(e){g=d.get("as");var y=d.get("noChildContext");var t=!(g&&y);q={as:g,
if(k){try{var m=a.a.qa(arguments);f=h.$data;m.unshift(f);var p=k.apply(f,m)}finally{!0!==p&&(g.preventDefault?g.preventDefault():g.returnValue=!1)}!1===e.get(d+"Bubble")&&(g.cancelBubble=!0,g.stopPropagation&&g.stopPropagation())}})})}};a.c.foreach={mc:b=>()=>{var c=b(),e=a.a.Wc(c);if(!e||"number"==typeof e.length)return{foreach:c,templateEngine:a.W.instance};a.a.g(c);return{foreach:e.data,as:e.as,noChildContext:e.noChildContext,includeDestroyed:e.includeDestroyed,afterAdd:e.afterAdd,beforeRemove:e.beforeRemove,
afterRender:e.afterRender,beforeMove:e.beforeMove,afterMove:e.afterMove,templateEngine:a.W.instance}},init:(b,c)=>a.c.template.init(b,a.c.foreach.mc(c)),update:(b,c,e,f,h)=>a.c.template.update(b,a.c.foreach.mc(c),e,f,h)};a.H.ib.foreach=!1;a.h.la.foreach=!0;a.c.hasfocus={init:(b,c,e)=>{var f=l=>{b.__ko_hasfocusUpdating=!0;l=b.ownerDocument.activeElement===b;var d=c();a.H.Ib(d,e,"hasfocus",l,!0);b.__ko_hasfocusLastValue=l;b.__ko_hasfocusUpdating=!1},h=f.bind(null,!0);f=f.bind(null,!1);a.a.K(b,"focus",
h);a.a.K(b,"focusin",h);a.a.K(b,"blur",f);a.a.K(b,"focusout",f);b.__ko_hasfocusLastValue=!1},update:(b,c)=>{c=!!a.a.g(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===c||(c?b.focus():b.blur())}};a.H.$a.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.H.$a.hasFocus="hasfocus";a.c.html={init:()=>({controlsDescendantBindings:!0}),update:(b,c)=>a.a.sc(b,c())};(function(){function b(c,e,f){a.c[c]={init:(h,l,d,g,k)=>{var m,p,q={},u;if(e){g=d.get("as");var y=d.get("noChildContext");var t=!(g&&y);q={as:g,
noChildContext:y,exportDependencies:t}}var x=(u="render"==d.get("completeOn"))||d.has(a.f.ga);a.i(()=>{var n=a.a.g(l()),r=!f!==!n,v=!p;if(t||r!==m){x&&(k=a.f.Cb(h,k));if(r){if(!e||t)q.dataDependency=a.ya.i();var w=e?k.createChildContext("function"==typeof n?n:l,q):a.ya.Sa()?k.extend(null,q):k}v&&a.ya.Sa()&&(p=a.a.Oa(a.h.childNodes(h),!0));r?(v||a.h.Fa(h,a.a.Oa(p)),a.Ub(w,h)):(a.h.Aa(h),u||a.f.notify(h,a.f.C));m=r}},null,{j:h});return{controlsDescendantBindings:!0}}};a.H.ib[c]=!1;a.h.la[c]=!0}b("if");
b("ifnot",!1,!0);b("with",!0)})();var aa={};a.c.options={init:b=>{if("select"!==a.a.da(b))throw Error("options binding applies only to SELECT elements");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:(b,c,e)=>{function f(){return Array.from(b.options).filter(t=>t.selected)}function h(t,x,n){var r=typeof x;return"function"==r?x(t):"string"==r?t[x]:n}function l(t,x){u&&m?a.f.notify(b,a.f.C):p.length&&(t=0<=a.a.$(p,a.B.S(x[0])),x[0].selected=t,u&&!t&&a.m.I(a.a.tc,null,[b,
b("ifnot",!1,!0);b("with",!0)})();var aa={};a.c.options={init:b=>{if("select"!==a.a.da(b))throw Error("options binding applies only to SELECT elements");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:(b,c,e)=>{function f(){return Array.from(b.options).filter(t=>t.selected)}function h(t,x,n){var r=typeof x;return"function"==r?x(t):"string"==r?t[x]:n}function l(t,x){u&&m?a.f.notify(b,a.f.C):p.length&&(t=0<=a.a.$(p,a.B.S(x[0])),x[0].selected=t,u&&!t&&a.o.I(a.a.uc,null,[b,
"change"]))}var d=b.multiple,g=0!=b.length&&d?b.scrollTop:null,k=a.a.g(c()),m=e.get("valueAllowUnset")&&e.has("value");c={};var p=[];m||(d?p=f().map(a.B.S):0<=b.selectedIndex&&p.push(a.B.S(b.options[b.selectedIndex])));if(k){"undefined"==typeof k.length&&(k=[k]);var q=k.filter(t=>t||null==t);e.has("optionsCaption")&&(k=a.a.g(e.get("optionsCaption")),null!==k&&void 0!==k&&q.unshift(aa))}var u=!1;c.beforeRemove=t=>b.removeChild(t);k=l;e.has("optionsAfterRender")&&"function"==typeof e.get("optionsAfterRender")&&
(k=(t,x)=>{l(t,x);a.m.I(e.get("optionsAfterRender"),null,[x[0],t!==aa?t:void 0])});a.a.qc(b,q,function(t,x,n){n.length&&(p=!m&&n[0].selected?[a.B.S(n[0])]:[],u=!0);x=b.ownerDocument.createElement("option");t===aa?(a.a.Bb(x,e.get("optionsCaption")),a.B.cb(x,void 0)):(n=h(t,e.get("optionsValue"),t),a.B.cb(x,a.a.g(n)),t=h(t,e.get("optionsText"),n),a.a.Bb(x,t));return[x]},c,k);if(!m){var y;d?y=p.length&&f().length<p.length:y=p.length&&0<=b.selectedIndex?a.B.S(b.options[b.selectedIndex])!==p[0]:p.length||
0<=b.selectedIndex;y&&a.m.I(a.a.tc,null,[b,"change"])}(m||a.ya.tb())&&a.f.notify(b,a.f.C);g&&20<Math.abs(g-b.scrollTop)&&(b.scrollTop=g)}};a.c.options.yb=a.a.b.X();a.c.style={update:(b,c)=>{c=a.a.g(c()||{});a.a.J(c,(e,f)=>{f=a.a.g(f);if(null===f||void 0===f||!1===f)f="";if(/^--/.test(e))b.style.setProperty(e,f);else{e=e.replace(/-(\w)/g,(l,d)=>d.toUpperCase());var h=b.style[e];b.style[e]=f;f===h||b.style[e]!=h||isNaN(f)||(b.style[e]=f+"px")}})}};a.c.submit={init:(b,c,e,f,h)=>{if("function"!=typeof c())throw Error("The value for a submit binding must be a function");
(k=(t,x)=>{l(t,x);a.o.I(e.get("optionsAfterRender"),null,[x[0],t!==aa?t:void 0])});a.a.rc(b,q,function(t,x,n){n.length&&(p=!m&&n[0].selected?[a.B.S(n[0])]:[],u=!0);x=b.ownerDocument.createElement("option");t===aa?(a.a.Bb(x,e.get("optionsCaption")),a.B.cb(x,void 0)):(n=h(t,e.get("optionsValue"),t),a.B.cb(x,a.a.g(n)),t=h(t,e.get("optionsText"),n),a.a.Bb(x,t));return[x]},c,k);if(!m){var y;d?y=p.length&&f().length<p.length:y=p.length&&0<=b.selectedIndex?a.B.S(b.options[b.selectedIndex])!==p[0]:p.length||
0<=b.selectedIndex;y&&a.o.I(a.a.uc,null,[b,"change"])}(m||a.ya.tb())&&a.f.notify(b,a.f.C);g&&20<Math.abs(g-b.scrollTop)&&(b.scrollTop=g)}};a.c.options.yb=a.a.b.X();a.c.style={update:(b,c)=>{c=a.a.g(c()||{});a.a.J(c,(e,f)=>{f=a.a.g(f);if(null===f||void 0===f||!1===f)f="";if(/^--/.test(e))b.style.setProperty(e,f);else{e=e.replace(/-(\w)/g,(l,d)=>d.toUpperCase());var h=b.style[e];b.style[e]=f;f===h||b.style[e]!=h||isNaN(f)||(b.style[e]=f+"px")}})}};a.c.submit={init:(b,c,e,f,h)=>{if("function"!=typeof c())throw Error("The value for a submit binding must be a function");
a.a.K(b,"submit",l=>{var d=c();try{var g=d.call(h.$data,b)}finally{!0!==g&&(l.preventDefault?l.preventDefault():l.returnValue=!1)}})}};a.c.text={init:()=>({controlsDescendantBindings:!0}),update:(b,c)=>a.a.Bb(b,c())};a.h.la.text=!0;a.c.textInput={init:(b,c,e)=>{var f=b.value,h,l,d=()=>{clearTimeout(h);l=h=void 0;var k=b.value;f!==k&&(f=k,a.H.Ib(c(),e,"textInput",k))},g=()=>{var k=a.a.g(c());if(null===k||void 0===k)k="";void 0!==l&&k===l?a.a.setTimeout(g,4):b.value!==k&&(b.value=k,f=b.value)};a.a.K(b,
"input",d);a.a.K(b,"change",d);a.a.K(b,"blur",d);a.i(g,null,{j:b})}};a.H.$a.textInput=!0;a.c.textinput={preprocess:(b,c,e)=>e("textInput",b)};a.c.value={init:(b,c,e)=>{var f=a.a.da(b),h="input"==f;if(!h||"checkbox"!=b.type&&"radio"!=b.type){var l=[],d=e.get("valueUpdate"),g=null;d&&("string"==typeof d?l=[d]:l=d?d.filter((q,u)=>d.indexOf(q)===u):[],a.a.Ma(l,"change"));var k=()=>{g=null;var q=c(),u=a.B.S(b);a.H.Ib(q,e,"value",u)};a.a.Z(l,q=>{var u=k;a.a.cd(q,"after")&&(u=()=>{g=a.B.S(b);a.a.setTimeout(k,
0)},q=q.substring(5));a.a.K(b,q,u)});var m=h&&"file"==b.type?()=>{var q=a.a.g(c());null===q||void 0===q||""===q?b.value="":a.m.I(k)}:()=>{var q=a.a.g(c()),u=a.B.S(b);if(null!==g&&q===g)a.a.setTimeout(m,0);else if(q!==u||void 0===u)"select"===f?(u=e.get("valueAllowUnset"),a.B.cb(b,q,u),u||q===a.B.S(b)||a.m.I(k)):a.B.cb(b,q)};if("select"===f){var p;a.f.subscribe(b,a.f.C,()=>{p?e.get("valueAllowUnset")?m():k():(a.a.K(b,"change",k),p=a.i(m,null,{j:b}))},null,{notifyImmediately:!0})}else a.a.K(b,"change",
0)},q=q.substring(5));a.a.K(b,q,u)});var m=h&&"file"==b.type?()=>{var q=a.a.g(c());null===q||void 0===q||""===q?b.value="":a.o.I(k)}:()=>{var q=a.a.g(c()),u=a.B.S(b);if(null!==g&&q===g)a.a.setTimeout(m,0);else if(q!==u||void 0===u)"select"===f?(u=e.get("valueAllowUnset"),a.B.cb(b,q,u),u||q===a.B.S(b)||a.o.I(k)):a.B.cb(b,q)};if("select"===f){var p;a.f.subscribe(b,a.f.C,()=>{p?e.get("valueAllowUnset")?m():k():(a.a.K(b,"change",k),p=a.i(m,null,{j:b}))},null,{notifyImmediately:!0})}else a.a.K(b,"change",
k),a.i(m,null,{j:b})}else a.hb(b,{checkedValue:c})},update:()=>{}};a.H.$a.value=!0;a.c.visible={update:(b,c)=>{c=a.a.g(c());var e="none"!=b.style.display;c&&!e?b.style.display="":e&&!c&&(b.style.display="none")}};a.c.hidden={update:(b,c)=>b.hidden=!!a.a.g(c())};(function(b){a.c[b]={init:function(c,e,f,h,l){return a.c.event.init.call(this,c,()=>{var d={};d[b]=e();return d},f,h,l)}}})("click");a.ea=function(){};a.ea.prototype.renderTemplateSource=()=>{throw Error("Override renderTemplateSource");};
a.ea.prototype.createJavaScriptEvaluatorBlock=()=>{throw Error("Override createJavaScriptEvaluatorBlock");};a.ea.prototype.makeTemplateSource=(b,c)=>{if("string"==typeof b){c=c||V;c=c.getElementById(b);if(!c)throw Error("Cannot find template with ID "+b);return new a.F.v(c)}if(1==b.nodeType||8==b.nodeType)return new a.F.fa(b);throw Error("Unknown template type: "+b);};a.ea.prototype.renderTemplate=function(b,c,e,f){b=this.makeTemplateSource(b,f);return this.renderTemplateSource(b,c,e,f)};a.ea.prototype.isTemplateRewritten=
function(b,c){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(b,c).data("isRewritten")};a.ea.prototype.rewriteTemplate=function(b,c,e){b=this.makeTemplateSource(b,e);c=c(b.text());b.text(c);b.data("isRewritten",!0)};(()=>{a.F={};a.F.v=function(e){if(this.v=e){var f=a.a.da(e);this.Ga="script"===f?1:"textarea"===f?2:"template"==f&&e.content&&11===e.content.nodeType?3:4}};a.F.v.prototype.text=function(){var e=1===this.Ga?"text":2===this.Ga?"value":"innerHTML";if(0==arguments.length)return this.v[e];
var f=arguments[0];"innerHTML"===e?a.a.rc(this.v,f):this.v[e]=f};var b=a.a.b.X()+"_";a.F.v.prototype.data=function(e){if(1===arguments.length)return a.a.b.get(this.v,b+e);a.a.b.set(this.v,b+e,arguments[1])};var c=a.a.b.X();a.F.v.prototype.nodes=function(){var e=this.v;if(0==arguments.length){var f=a.a.b.get(e,c)||{},h=f.Pa||(3===this.Ga?e.content:4===this.Ga?e:void 0);if(!h||f.zc){var l=this.text();l&&l!==f.Ha&&(h=a.a.Uc(l,e.ownerDocument),a.a.b.set(e,c,{Pa:h,Ha:l,zc:!0}))}return h}f=arguments[0];
var f=arguments[0];"innerHTML"===e?a.a.sc(this.v,f):this.v[e]=f};var b=a.a.b.X()+"_";a.F.v.prototype.data=function(e){if(1===arguments.length)return a.a.b.get(this.v,b+e);a.a.b.set(this.v,b+e,arguments[1])};var c=a.a.b.X();a.F.v.prototype.nodes=function(){var e=this.v;if(0==arguments.length){var f=a.a.b.get(e,c)||{},h=f.Pa||(3===this.Ga?e.content:4===this.Ga?e:void 0);if(!h||f.Ac){var l=this.text();l&&l!==f.Ha&&(h=a.a.Uc(l,e.ownerDocument),a.a.b.set(e,c,{Pa:h,Ha:l,Ac:!0}))}return h}f=arguments[0];
void 0!==this.Ga&&this.text("");a.a.b.set(e,c,{Pa:f})};a.F.fa=function(e){this.v=e};a.F.fa.prototype=new a.F.v;a.F.fa.prototype.constructor=a.F.fa;a.F.fa.prototype.text=function(){if(0==arguments.length){var e=a.a.b.get(this.v,c)||{};void 0===e.Ha&&e.Pa&&(e.Ha=e.Pa.innerHTML);return e.Ha}a.a.b.set(this.v,c,{Ha:arguments[0]})}})();(function(){function b(g,k,m){var p;for(k=a.h.nextSibling(k);g&&(p=g)!==k;)g=a.h.nextSibling(p),m(p,g)}function c(g,k){if(g.length){var m=g[0],p=g[g.length-1],q=m.parentNode,
u=a.aa.instance,y=u.preprocessNode;if(y){b(m,p,(t,x)=>{var n=t.previousSibling,r=y.call(u,t);r&&(t===m&&(m=r[0]||x),t===p&&(p=r[r.length-1]||n))});g.length=0;if(!m)return;m===p?g.push(m):(g.push(m,p),a.a.Ba(g,q))}b(m,p,t=>{1!==t.nodeType&&8!==t.nodeType||a.Tb(k,t)});a.a.Ba(g,q)}}function e(g,k,m,p,q){q=q||{};var u=(g&&(g.nodeType?g:0<g.length?g[0]:null)||m||{}).ownerDocument,y=q.templateEngine||h;y.isTemplateRewritten(m,u)||y.rewriteTemplate(m,t=>t,u);m=y.renderTemplate(m,p,q,u);if("number"!=typeof m.length||
0<m.length&&"number"!=typeof m[0].nodeType)throw Error("Template engine must return an array of DOM nodes");u=!1;switch(k){case "replaceChildren":a.h.Fa(g,m);u=!0;break;case "ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k);}u&&(c(m,p),q.afterRender&&a.m.I(q.afterRender,null,[m,p[q.as||"$data"]]),"replaceChildren"==k&&a.f.notify(g,a.f.C));return m}function f(g,k,m){return a.O(g)?g():"function"===typeof g?g(k,m):g}var h;a.ad=g=>{if(void 0!=g&&!(g instanceof a.ea))throw Error("templateEngine must inherit from ko.templateEngine");
h=g};a.Zc=function(g,k,m,p){m=m||{};if(void 0==(m.templateEngine||h))throw Error("Set a template engine before calling renderTemplate");var q=q||"replaceChildren";if(p){var u=p.nodeType?p:0<p.length?p[0]:null;return a.i(()=>{var y=k&&k instanceof a.U?k:new a.U(k,null,null,null,{exportDependencies:!0}),t=f(g,y.$data,y);e(p,q,t,y,m)},null,{za:()=>!u||!a.a.nb(u),j:u})}console.log("no targetNodeOrNodeArray")};a.$c=(g,k,m,p,q)=>{function u(w,B){a.m.I(a.a.qc,null,[p,w,x,m,n,B]);a.f.notify(p,a.f.C)}var y,
t=m.as,x=(w,B)=>{y=q.createChildContext(w,{as:t,noChildContext:m.noChildContext,extend:z=>{z.$index=B;t&&(z[t+"Index"]=B)}});w=f(g,w,y);return e(p,"ignoreTargetNode",w,y,m)},n=(w,B)=>{c(B,y);m.afterRender&&m.afterRender(B,w);y=null},r=!1===m.includeDestroyed;if(r||m.beforeRemove||!a.Pc(k))return a.i(()=>{var w=a.a.g(k)||[];"undefined"==typeof w.length&&(w=[w]);r&&(w=w.filter(B=>B||null==B));u(w)},null,{j:p});u(k.D());var v=k.subscribe(w=>{u(k(),w)},null,"arrayChange");v.j(p);return v};var l=a.a.b.X(),
0<m.length&&"number"!=typeof m[0].nodeType)throw Error("Template engine must return an array of DOM nodes");u=!1;switch(k){case "replaceChildren":a.h.Fa(g,m);u=!0;break;case "ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k);}u&&(c(m,p),q.afterRender&&a.o.I(q.afterRender,null,[m,p[q.as||"$data"]]),"replaceChildren"==k&&a.f.notify(g,a.f.C));return m}function f(g,k,m){return a.O(g)?g():"function"===typeof g?g(k,m):g}var h;a.ad=g=>{if(void 0!=g&&!(g instanceof a.ea))throw Error("templateEngine must inherit from ko.templateEngine");
h=g};a.Zc=function(g,k,m,p){m=m||{};if(void 0==(m.templateEngine||h))throw Error("Set a template engine before calling renderTemplate");var q=q||"replaceChildren";if(p){var u=p.nodeType?p:0<p.length?p[0]:null;return a.i(()=>{var y=k&&k instanceof a.U?k:new a.U(k,null,null,null,{exportDependencies:!0}),t=f(g,y.$data,y);e(p,q,t,y,m)},null,{za:()=>!u||!a.a.nb(u),j:u})}console.log("no targetNodeOrNodeArray")};a.$c=(g,k,m,p,q)=>{function u(w,B){a.o.I(a.a.rc,null,[p,w,x,m,n,B]);a.f.notify(p,a.f.C)}var y,
t=m.as,x=(w,B)=>{y=q.createChildContext(w,{as:t,noChildContext:m.noChildContext,extend:z=>{z.$index=B;t&&(z[t+"Index"]=B)}});w=f(g,w,y);return e(p,"ignoreTargetNode",w,y,m)},n=(w,B)=>{c(B,y);m.afterRender&&m.afterRender(B,w);y=null},r=!1===m.includeDestroyed;if(r||m.beforeRemove||!a.kc(k))return a.i(()=>{var w=a.a.g(k)||[];"undefined"==typeof w.length&&(w=[w]);r&&(w=w.filter(B=>B||null==B));u(w)},null,{j:p});u(k.D());var v=k.subscribe(w=>{u(k(),w)},null,"arrayChange");v.j(p);return v};var l=a.a.b.X(),
d=a.a.b.X();a.c.template={init:(g,k)=>{k=a.a.g(k());if("string"==typeof k||"name"in k)a.h.Aa(g);else if("nodes"in k){k=k.nodes||[];if(a.O(k))throw Error('The "nodes" option must be a plain, non-observable array.');let m=k[0]&&k[0].parentNode;m&&a.a.b.get(m,d)||(m=a.a.wb(k),a.a.b.set(m,d,!0));(new a.F.fa(g)).nodes(m)}else if(k=a.h.childNodes(g),0<k.length)k=a.a.wb(k),(new a.F.fa(g)).nodes(k);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},
update:(g,k,m,p,q)=>{var u=k();k=a.a.g(u);m=!0;p=null;"string"==typeof k?k={}:(u="name"in k?k.name:g,"if"in k&&(m=a.a.g(k["if"])),m&&"ifnot"in k&&(m=!a.a.g(k.ifnot)),m&&!u&&(m=!1));"foreach"in k?p=a.$c(u,m&&k.foreach||[],k,g,q):m?(m=q,"data"in k&&(m=q.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),p=a.Zc(u,m,k,g)):a.h.Aa(g);q=p;(k=a.a.b.get(g,l))&&"function"==typeof k.o&&k.o();a.a.b.set(g,l,!q||q.ha&&!q.ha()?void 0:q)}};a.H.ib.template=g=>{g=a.H.Vc(g);
update:(g,k,m,p,q)=>{var u=k();k=a.a.g(u);m=!0;p=null;"string"==typeof k?k={}:(u="name"in k?k.name:g,"if"in k&&(m=a.a.g(k["if"])),m&&"ifnot"in k&&(m=!a.a.g(k.ifnot)),m&&!u&&(m=!1));"foreach"in k?p=a.$c(u,m&&k.foreach||[],k,g,q):m?(m=q,"data"in k&&(m=q.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),p=a.Zc(u,m,k,g)):a.h.Aa(g);q=p;(k=a.a.b.get(g,l))&&"function"==typeof k.s&&k.s();a.a.b.set(g,l,!q||q.ha&&!q.ha()?void 0:q)}};a.H.ib.template=g=>{g=a.H.Vc(g);
return 1==g.length&&g[0].unknown||a.H.Sc(g,"name")?null:"This template engine does not support anonymous templates nested within its templates"};a.h.la.template=!0})();a.a.fc=(b,c,e)=>{if(b.length&&c.length){var f,h,l,d,g;for(f=h=0;(!e||f<e)&&(d=b[h]);++h){for(l=0;g=c[l];++l)if(d.value===g.value){d.moved=g.index;g.moved=d.index;c.splice(l,1);f=l=0;break}f+=l}}};a.a.$b=(()=>{function b(c,e,f,h,l){var d=Math.min,g=Math.max,k=[],m,p=c.length,q,u=e.length,y=u-p||1,t=p+u+1,x;for(m=0;m<=p;m++){var n=x;
k.push(x=[]);var r=d(u,m+y);for(q=g(0,m-1);q<=r;q++)x[q]=q?m?c[m-1]===e[q-1]?n[q-1]:d(n[q]||t,x[q-1]||t)+1:q+1:m+1}d=[];g=[];y=[];m=p;for(q=u;m||q;)u=k[m][q]-1,q&&u===k[m][q-1]?g.push(d[d.length]={status:f,value:e[--q],index:q}):m&&u===k[m-1][q]?y.push(d[d.length]={status:h,value:c[--m],index:m}):(--q,--m,l.sparse||d.push({status:"retained",value:e[q]}));a.a.fc(y,g,!l.dontLimitMoves&&10*p);return d.reverse()}return function(c,e,f){f="boolean"===typeof f?{dontLimitMoves:f}:f||{};c=c||[];e=e||[];return c.length<
e.length?b(c,e,"added","deleted",f):b(e,c,"deleted","added",f)}})();(()=>{function b(f,h,l,d,g){var k=[],m=a.i(()=>{var p=h(l,g,a.a.Ba(k,f))||[];if(0<k.length){var q=k.nodeType?[k]:k;if(0<q.length){var u=q[0],y=u.parentNode,t;var x=0;for(t=p.length;x<t;x++)y.insertBefore(p[x],u);x=0;for(t=q.length;x<t;x++)a.removeNode(q[x])}d&&a.m.I(d,null,[l,p,g])}k.length=0;a.a.Ac(k,p)},null,{j:f,za:()=>!!a.a.Vb(k,a.a.nb)});return{R:k,kb:m.ha()?m:void 0}}var c=a.a.b.X(),e=a.a.b.X();a.a.qc=(f,h,l,d,g,k)=>{function m(K){A=
e.length?b(c,e,"added","deleted",f):b(e,c,"deleted","added",f)}})();(()=>{function b(f,h,l,d,g){var k=[],m=a.i(()=>{var p=h(l,g,a.a.Ba(k,f))||[];if(0<k.length){var q=k.nodeType?[k]:k;if(0<q.length){var u=q[0],y=u.parentNode,t;var x=0;for(t=p.length;x<t;x++)y.insertBefore(p[x],u);x=0;for(t=q.length;x<t;x++)a.removeNode(q[x])}d&&a.o.I(d,null,[l,p,g])}k.length=0;a.a.Bc(k,p)},null,{j:f,za:()=>!!a.a.Vb(k,a.a.nb)});return{R:k,kb:m.ha()?m:void 0}}var c=a.a.b.X(),e=a.a.b.X();a.a.rc=(f,h,l,d,g,k)=>{function m(K){A=
{ma:K,Ua:a.ka(n++)};t.push(A);y||z.push(A)}function p(K){A=u[K];n!==A.Ua.D()&&B.push(A);A.Ua(n++);a.a.Ba(A.R,f);t.push(A)}function q(K,L){if(K)for(var M=0,D=L.length;M<D;M++)a.a.Z(L[M].R,function(S){K(S,M,L[M].ma)})}h=h||[];"undefined"==typeof h.length&&(h=[h]);d=d||{};var u=a.a.b.get(f,c),y=!u,t=[],x=0,n=0,r=[],v=[],w=[],B=[],z=[],C=0;if(y)a.a.Z(h,m);else{if(!k||u&&u._countWaitingForRemove)k=Array.prototype.map.call(u,K=>K.ma),k=a.a.$b(k,h,{dontLimitMoves:d.dontLimitMoves,sparse:!0});for(let K=0,
L,M,D;L=k[K];K++)switch(M=L.moved,D=L.index,L.status){case "deleted":for(;x<D;)p(x++);if(void 0===M){var A=u[x];A.kb&&(A.kb.o(),A.kb=void 0);a.a.Ba(A.R,f).length&&(d.beforeRemove&&(t.push(A),C++,A.ma===e?A=null:w.push(A)),A&&r.push.apply(r,A.R))}x++;break;case "added":for(;n<D;)p(x++);void 0!==M?(v.push(t.length),p(M)):m(L.value)}for(;n<h.length;)p(x++);t._countWaitingForRemove=C}a.a.b.set(f,c,t);q(d.beforeMove,B);a.a.Z(r,d.beforeRemove?a.oa:a.removeNode);var H,N;C=f.ownerDocument.activeElement;if(v.length)for(;void 0!=
(h=v.shift());){A=t[h];for(H=void 0;h;)if((N=t[--h].R)&&N.length){H=N[N.length-1];break}for(x=0;r=A.R[x];H=r,x++)a.h.jc(f,r,H)}for(h=0;A=t[h];h++){A.R||a.a.extend(A,b(f,l,A.ma,g,A.Ua));for(x=0;r=A.R[x];H=r,x++)a.h.jc(f,r,H);!A.Oc&&g&&(g(A.ma,A.R,A.Ua),A.Oc=!0,H=A.R[A.R.length-1])}C&&f.ownerDocument.activeElement!=C&&C.focus();q(d.beforeRemove,w);for(h=0;h<w.length;++h)w[h].ma=e;q(d.afterMove,B);q(d.afterAdd,z)}})();a.W=function(){this.allowTemplateRewriting=!1};a.W.prototype=new a.ea;a.W.prototype.constructor=
L,M,D;L=k[K];K++)switch(M=L.moved,D=L.index,L.status){case "deleted":for(;x<D;)p(x++);if(void 0===M){var A=u[x];A.kb&&(A.kb.s(),A.kb=void 0);a.a.Ba(A.R,f).length&&(d.beforeRemove&&(t.push(A),C++,A.ma===e?A=null:w.push(A)),A&&r.push.apply(r,A.R))}x++;break;case "added":for(;n<D;)p(x++);void 0!==M?(v.push(t.length),p(M)):m(L.value)}for(;n<h.length;)p(x++);t._countWaitingForRemove=C}a.a.b.set(f,c,t);q(d.beforeMove,B);a.a.Z(r,d.beforeRemove?a.oa:a.removeNode);var H,N;C=f.ownerDocument.activeElement;if(v.length)for(;void 0!=
(h=v.shift());){A=t[h];for(H=void 0;h;)if((N=t[--h].R)&&N.length){H=N[N.length-1];break}for(x=0;r=A.R[x];H=r,x++)a.h.jc(f,r,H)}for(h=0;A=t[h];h++){A.R||a.a.extend(A,b(f,l,A.ma,g,A.Ua));for(x=0;r=A.R[x];H=r,x++)a.h.jc(f,r,H);!A.Pc&&g&&(g(A.ma,A.R,A.Ua),A.Pc=!0,H=A.R[A.R.length-1])}C&&f.ownerDocument.activeElement!=C&&C.focus();q(d.beforeRemove,w);for(h=0;h<w.length;++h)w[h].ma=e;q(d.afterMove,B);q(d.afterAdd,z)}})();a.W=function(){this.allowTemplateRewriting=!1};a.W.prototype=new a.ea;a.W.prototype.constructor=
a.W;a.W.prototype.renderTemplateSource=(b,c,e,f)=>{if(c=b.Tc?b.Tc():null)return a.a.qa(c.cloneNode(!0).childNodes);b=b.text();return a.a.Ya(b,f)};a.W.instance=new a.W;a.ad(a.W.instance);E.ko=Z})(this);

View file

@ -95,3 +95,4 @@ ko.isObservableArray = instance => {
};
ko.exportSymbol('observableArray', ko.observableArray);
ko.exportSymbol('isObservableArray', ko.isObservableArray);