/* Deferred Updates plugin for Knockout http://knockoutjs.com/ (c) Michael Best, Steven Sanderson License: MIT (http://www.opensource.org/licenses/mit-license.php) Version 3.3.1 */ (function(b){"function"===typeof require&&"object"===typeof exports&&"object"===typeof module?module.exports=b(require("knockout")):"function"===typeof define&&define.amd?define(["knockout"],b):b(ko)})(function(b){function h(a,A){for(var c in a)if(a.hasOwnProperty(c)&&a[c]&&0<=a[c].toString().indexOf(A))return c}function m(a,A){for(var c in a)if(a.hasOwnProperty(c)&&a[c]===A)return c}function ja(a,A,c,b){var e=a.subscribe(A,null,"dirty",!1,b),f=a.subscribe(c,null,"change",!1,b);return{dispose:function(){e.dispose(); f.dispose()},_target:a}}var F="object"===typeof global&&global?global:window;if(!b)throw Error("Deferred Updates requires Knockout");if("3.4.0"<=b.version)throw Error("This version of Deferred Updates supports Knockout version 3.3 and lower.");b.tasks=function(){function a(a){var d=0,c=0;l=l._next={_mark:!0};try{for(var b=a;b=b._next;)if(h=b,b._mark){if(b._next){if(5E3<=++c)throw Error("'Too much recursion' after processing "+d+" tasks.");l=l._next={_mark:!0}}}else b._done||(b._done=!0,b._func.apply(b.object, b.args||[]),++d)}finally{if(a!==B)a._next=null,l=a;else{g=[];B._next=null;p=l=B;if(f)F[e](f);f=void 0}h=void 0}return d}function A(){if(!h)return a(B)}var c,e;F.setImmediate?(c="setImmediate",e="clearImmediate"):(c="setTimeout",e="clearTimeout");var f,B={},l=B,g=[],h,p=B,m={processImmediate:function(c,d,b){g.push(p);p=l;try{return c.apply(d,b||[])}finally{try{p._next&&a(p)}finally{p=g.pop()||B}}},processDelayed:function(a,d,b){2==arguments.length&&"object"==typeof d&&(b=d,d=b.distinct);var e;if(e= d||void 0===d)a:{e=h||p;for(var k;k=e._next;e=k)if(k._func===a&&!k._done){e._next=k._next;e._next||(l=e);e=!0;break a}e=!1}k=b||{};k._func=a;l=l._next=k;g.length||f||(f=F[c](A));return!e},makeProcessedCallback:function(a){return function(){return m.processImmediate(a,this,arguments)}}};b.processDeferredBindingUpdatesForNode=b.processAllDeferredBindingUpdates=function(){for(var a=B;a=a._next;)a.node&&!a._done&&(a._done=!0,a._func.call())};b.processAllDeferredUpdates=A;b.evaluateAsynchronously=function(a, d){return setTimeout(m.makeProcessedCallback(a),d)};return m}();var x=b.utils,M=x.objectForEach||function(a,b){for(var c in a)a.hasOwnProperty(c)&&b(c,a[c])},$=x.arrayForEach,ka={__proto__:[]}instanceof Array?function(a,b){a.__proto__=b;return a}:x.extend,f=function(a,b){for(var c in a)if(a.hasOwnProperty(c)&&a[c]&&a[c][b])return a[c]}(b,"end"),la=h(f,".apply(")||"ignore",U=h(f,".push"),aa=h(f,"Only subscribable"),ma=f.isInitial?m(f,f.isInitial):"isInitial",t=b.computed,na=function(a,b){var c=[], e;for(e in a)a.hasOwnProperty(e)&&a[e]===b&&c.push(e);return c}(b,t),N=m(t.fn,t),e=b.computed(function(){}),oa=m(e,e.peek)||"peek",pa=m(e,e.isActive)||"isActive",ba=m(e,e.getDependenciesCount),ca=m(e,!1),qa=m(e,e.dispose),da="disposeWhenNodeIsRemoved",ea="disposeWhen";if("hasWriteFunction"!=ca){var e=t.toString(),C;if(C=e.match(/.\.disposeWhenNodeIsRemoved\s*\|\|\s*.\.([^|\s,]+)/))da=C[1];if(e=e.match(/.\.disposeWhen\s*\|\|\s*.\.([^|\s,]+)/))ea=e[1]}var ra=h(x,"documentElement)")||h(x,"ocument)"), e=b.subscribable.fn;C=h(e,".bind(");var O=h(e,"notifySubscribers"),g=(new b.subscribable).subscribe(),G=g.constructor.prototype,Q=m(G,g.dispose);g.dispose();var g=null,fa,ga;O&&b.extenders.rateLimit&&(g=(new b.subscribable).extend({rateLimit:1}),g[O]=null,ga=h(g,"=!0")||"_rateLimitedChange",fa=h(g,'"beforeChange")')||"_rateLimitedBeforeChange",g=null);var y=new b.subscribable,g=m(y,1),D,V,ha;g&&(D=h(e,"return this."+g),V=h(e,"++this."+g),ha=h(e,"return this."+D+"()"));var y=null,R,ia;b.pureComputed&& (y=b.pureComputed(function(){}),y[N]=null,R=h(y,g?'"awake"':"!1,")||"beforeSubscriptionAdd",ia=h(y,g?'"asleep"':"()||")||"afterSubscriptionRemove",y=null);var S=[],s,sa=0;f[U]=function(a){S.push(s);s=a};f.end=function(){s=S.pop()};f[aa]=function(a){if(s){if(!b.isSubscribable(a))throw Error("Only subscribable things can act as dependencies");s.callback(a,a._id||(a._id=++sa))}};b.ignoreDependencies=f[la]=function(a,b,c){try{return f[U](),a.apply(b,c||[])}finally{f.end()}};f[ba]=f.getDependenciesCount= function(){if(s)return s.computed.getDependenciesCount()};f[ma]=f.isInitial=function(){if(s)return s.isInitial};var ta=e[C];e[C]=e.subscribe=function(a,e,c,f,g){c=c||"change";if(g)"change"==c&&(this.dependents=this.dependents||[],this.dependents.push(g));else{var h=e?a.bind(e):a;a="change"==c&&b.isObservable(this)?function(a){p.deferUpdates&&!1!==l.deferUpdates||l.deferUpdates?b.tasks.processDelayed(h,{args:[a]}):h(a)}:h}var l=ta.call(this,a,null,c);l._target=this;l.event=c;l.dependent=g;l.deferUpdates= f;return l};var H=e.notifySubscribers,u;e.notifySubscribers=function(a,b){if("change"===b||"dirty"===b||void 0===b)if(u)u.push([this,a,b]);else try{if(u=[],H.call(this,a,b),u.length)for(var c=0,e;e=u[c];c++)Function.prototype.call.apply(H,e)}finally{u=null}else H.call(this,a,b)};e.getDependents=function(){return this.dependents?[].concat(this.dependents):[]};var ua=G[Q];G[Q]=G.dispose=function(){ua.call(this);this.dependent&&"change"==this.event&&x.arrayRemoveItem(this._target.dependents,this.dependent)}; var p=function(a,e,c){function g(a){return a[N]===p?ja(a,y,t,d):a.subscribe(t,null,"change",!1,d)}function h(a,b,e){if(H&&b===d)throw Error("A 'pure' computed must not be called recursively");q[a]=e;e._order=v++;e._version=D&&b[D]()}function m(){if(!D)return!0;var a,b;for(a in q)if(q.hasOwnProperty(a)&&(b=q[a],b._target[ha](b._version)))return!0}function l(){!r&&q&&M(q,function(a,b){b.dispose&&b.dispose()});q=null;v=0;J=!0;r=w=n=!1}function s(a,e){var c="dirty"==e,f=c&&!w&&!n;c?w=!0:n=!0;(c=d.throttleEvaluation)&& 0<=c?(clearTimeout(W),W=b.evaluateAsynchronously(u,c)):d._evalRateLimited?d._evalRateLimited():p.deferUpdates&&!1!==d.deferUpdates||d.deferUpdates?f=b.tasks.processDelayed(u,{node:E}):n&&(u(),f=!1);f&&d.notifySubscribers&&(d.notifySubscribers(k,"dirty"),!w&&c&&clearTimeout(W))}function t(a){w||n?n=!0:s(a,"change")}function y(a){s(a,"dirty")}function u(){I(!0)}function I(a){if(!P)if(!n&&a)w=n,d.equalityComparer&&d.equalityComparer(k,K)||(K=k,d.notifySubscribers(k,void 0));else{var b;a:if(J)b=!0;else{if(X&& X()){if(!F){L();n=!1;b=!0;break a}}else F=!1;b=void 0}if(!b){P=!0;try{var c=q,l=v;b=H?void 0:!v;f[U]({callback:function(a,b){J||(l&&c[b]?(h(b,a,c[b]),delete c[b],--l):q[b]||h(b,a,r?{_target:a}:g(a)))},computed:d,isInitial:b});q={};v=0;try{var m=e?z.call(e):z()}finally{f.end(),l&&!r&&M(c,function(a,b){b.dispose&&b.dispose()}),w=n=!1}if(!d.equalityComparer||!d.equalityComparer(k,m))if(r||d.notifySubscribers(k,"beforeChange"),k=m,d._latestValue=k,r){if(V)d[V]()}else a&&(K=k,d.notifySubscribers(k,void 0)); b&&(K=k,d.notifySubscribers(k,"awake"))}finally{P=!1}v||L()}}}function d(){if(0