var __spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r};
/**
* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes
* (c) 2010-2020 Google LLC. https://angular.io/
* License: MIT
*/!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */var e="\n",t={},n="STACKTRACE TRACKING",r="__SEP_TAG__",i=r+"@[native]",o=function o(){this.error=h(),this.timestamp=new Date};function s(){return new Error(n)}function a(){try{throw s()}catch(e){return e}}var c=s(),u=a(),h=c.stack?s:u.stack?a:s;function l(t){return t.stack?t.stack.split(e):[]}function p(e,n){for(var r=l(n),i=0;i<r.length;i++)t.hasOwnProperty(r[i])||e.push(r[i])}function f(t,n){var o=[n?n.trim():""];if(t)for(var s=(new Date).getTime(),a=0;a<t.length;a++){var c=t[a],u=c.timestamp,h="____________________Elapsed "+(s-u.getTime())+" ms; At: "+u;h=h.replace(/[^\w\d]/g,"_"),o.push(i.replace(r,h)),p(o,c.error),s=u.getTime()}return o.join(e)}function d(){return Error.stackTraceLimit>0}Zone.longStackTraceZoneSpec={name:"long-stack-trace",longStackTraceLimit:10,getLongStackTrace:function(e){if(e){var t=e[Zone.__symbol__("currentTaskTrace")];return t?f(t,e.stack):e.stack}},onScheduleTask:function(e,t,n,r){if(d()){var i=Zone.currentTask,s=i&&i.data&&i.data.__creationTrace__||[];(s=[new o].concat(s)).length>this.longStackTraceLimit&&(s.length=this.longStackTraceLimit),r.data||(r.data={}),"eventTask"===r.type&&(r.data=Object.assign({},r.data)),r.data.__creationTrace__=s}return e.scheduleTask(n,r)},onHandleError:function(e,t,n,r){if(d()){var i=Zone.currentTask||r.task;if(r instanceof Error&&i){var o=f(i.data&&i.data.__creationTrace__,r.stack);try{r.stack=r.longStack=o}catch(e){}}}return e.handleError(n,r)}},function _(){if(d()){var e=[];!function e(t,n){n>0&&(t.push(l((new o).error)),e(t,n-1))}(e,2);for(var s=e[0],a=e[1],c=0;c<s.length;c++)if(-1==(h=s[c]).indexOf(n)){var u=h.match(/^\s*at\s+/);if(u){i=u[0]+r+" (http://localhost)";break}}for(c=0;c<s.length;c++){var h;if((h=s[c])!==a[c])break;t[h]=!0}}}();
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
var y=function(){function e(e){void 0===e&&(e=null),this.defaultSpecDelegate=e,this.name="ProxyZone",this._delegateSpec=null,this.properties={ProxyZoneSpec:this},this.propertyKeys=null,this.lastTaskState=null,this.isNeedToTriggerHasTask=!1,this.tasks=[],this.setDelegate(e)}return e.get=function(){return Zone.current.get("ProxyZoneSpec")},e.isLoaded=function(){return e.get()instanceof e},e.assertPresent=function(){if(!e.isLoaded())throw new Error("Expected to be running in 'ProxyZone', but it was not found.");return e.get()},e.prototype.setDelegate=function(e){var t=this,n=this._delegateSpec!==e;this._delegateSpec=e,this.propertyKeys&&this.propertyKeys.forEach((function(e){return delete t.properties[e]})),this.propertyKeys=null,e&&e.properties&&(this.propertyKeys=Object.keys(e.properties),this.propertyKeys.forEach((function(n){return t.properties[n]=e.properties[n]}))),n&&this.lastTaskState&&(this.lastTaskState.macroTask||this.lastTaskState.microTask)&&(this.isNeedToTriggerHasTask=!0)},e.prototype.getDelegate=function(){return this._delegateSpec},e.prototype.resetDelegate=function(){this.getDelegate(),this.setDelegate(this.defaultSpecDelegate)},e.prototype.tryTriggerHasTask=function(e,t,n){this.isNeedToTriggerHasTask&&this.lastTaskState&&(this.isNeedToTriggerHasTask=!1,this.onHasTask(e,t,n,this.lastTaskState))},e.prototype.removeFromTasks=function(e){if(this.tasks)for(var t=0;t<this.tasks.length;t++)if(this.tasks[t]===e)return void this.tasks.splice(t,1)},e.prototype.getAndClearPendingTasksInfo=function(){if(0===this.tasks.length)return"";var e="--Pending async tasks are: ["+this.tasks.map((function(e){var t=e.data&&Object.keys(e.data).map((function(t){return t+":"+e.data[t]})).join(",");return"type: "+e.type+", source: "+e.source+", args: {"+t+"}"}))+"]";return this.tasks=[],e},e.prototype.onFork=function(e,t,n,r){return this._delegateSpec&&this._delegateSpec.onFork?this._delegateSpec.onFork(e,t,n,r):e.fork(n,r)},e.prototype.onIntercept=function(e,t,n,r,i){return this._delegateSpec&&this._delegateSpec.onIntercept?this._delegateSpec.onIntercept(e,t,n,r,i):e.intercept(n,r,i)},e.prototype.onInvoke=function(e,t,n,r,i,o,s){return this.tryTriggerHasTask(e,t,n),this._delegateSpec&&this._delegateSpec.onInvoke?this._delegateSpec.onInvoke(e,t,n,r,i,o,s):e.invoke(n,r,i,o,s)},e.prototype.onHandleError=function(e,t,n,r){return this._delegateSpec&&this._delegateSpec.onHandleError?this._delegateSpec.onHandleError(e,t,n,r):e.handleError(n,r)},e.prototype.onScheduleTask=function(e,t,n,r){return"eventTask"!==r.type&&this.tasks.push(r),this._delegateSpec&&this._delegateSpec.onScheduleTask?this._delegateSpec.onScheduleTask(e,t,n,r):e.scheduleTask(n,r)},e.prototype.onInvokeTask=function(e,t,n,r,i,o){return"eventTask"!==r.type&&this.removeFromTasks(r),this.tryTriggerHasTask(e,t,n),this._delegateSpec&&this._delegateSpec.onInvokeTask?this._delegateSpec.onInvokeTask(e,t,n,r,i,o):e.invokeTask(n,r,i,o)},e.prototype.onCancelTask=function(e,t,n,r){return"eventTask"!==r.type&&this.removeFromTasks(r),this.tryTriggerHasTask(e,t,n),this._delegateSpec&&this._delegateSpec.onCancelTask?this._delegateSpec.onCancelTask(e,t,n,r):e.cancelTask(n,r)},e.prototype.onHasTask=function(e,t,n,r){this.lastTaskState=r,this._delegateSpec&&this._delegateSpec.onHasTask?this._delegateSpec.onHasTask(e,t,n,r):e.hasTask(n,r)},e}();Zone.ProxyZoneSpec=y;
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
var m,T,k=function(){function e(e){this.runZone=Zone.current,this.name="syncTestZone for "+e}return e.prototype.onScheduleTask=function(e,t,n,r){switch(r.type){case"microTask":case"macroTask":throw new Error("Cannot call "+r.source+" from within a sync test.");case"eventTask":r=e.scheduleTask(n,r)}return r},e}();Zone.SyncTestZoneSpec=k,
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("jasmine",(function(e,t,n){if(!t)throw new Error("Missing: zone.js");if("undefined"==typeof jest&&"undefined"!=typeof jasmine&&!jasmine.__zone_patch__){jasmine.__zone_patch__=!0;var r=t.SyncTestZoneSpec,i=t.ProxyZoneSpec;if(!r)throw new Error("Missing: SyncTestZoneSpec");if(!i)throw new Error("Missing: ProxyZoneSpec");var o=t.current,s=o.fork(new r("jasmine.describe")),a=t.__symbol__,c=!0===e[a("fakeAsyncDisablePatchingClock")],u=!c&&(!0===e[a("fakeAsyncPatchLock")]||!0===e[a("fakeAsyncAutoFakeAsyncWhenClockPatched")]);if(!0!==e[a("ignoreUnhandledRejection")]){var h=jasmine.GlobalErrors;h&&!jasmine[a("GlobalErrors")]&&(jasmine[a("GlobalErrors")]=h,jasmine.GlobalErrors=function(){var e=new h,t=e.install;return t&&!e[a("install")]&&(e[a("install")]=t,e.install=function(){var e=process.listeners("unhandledRejection"),n=t.apply(this,arguments);return process.removeAllListeners("unhandledRejection"),e&&e.forEach((function(e){return process.on("unhandledRejection",e)})),n}),e})}var l=jasmine.getEnv();if(["describe","xdescribe","fdescribe"].forEach((function(e){var t=l[e];l[e]=function(e,n){return t.call(this,e,function r(e){return function(){return s.run(e,this,arguments)}}(n))}})),["it","xit","fit"].forEach((function(e){var t=l[e];l[a(e)]=t,l[e]=function(e,n,r){return arguments[1]=_(n),t.apply(this,arguments)}})),["beforeEach","afterEach","beforeAll","afterAll"].forEach((function(e){var t=l[e];l[a(e)]=t,l[e]=function(e,n){return arguments[0]=_(e),t.apply(this,arguments)}})),!c){var p=jasmine[a("clock")]=jasmine.clock;jasmine.clock=function(){var e=p.apply(this,arguments);if(!e[a("patched")]){e[a("patched")]=a("patched");var n=e[a("tick")]=e.tick;e.tick=function(){var e=t.current.get("FakeAsyncTestZoneSpec");return e?e.tick.apply(e,arguments):n.apply(this,arguments)};var r=e[a("mockDate")]=e.mockDate;e.mockDate=function(){var e=t.current.get("FakeAsyncTestZoneSpec");if(e){var n=arguments.length>0?arguments[0]:new Date;return e.setCurrentRealTime.apply(e,n&&"function"==typeof n.getTime?[n.getTime()]:arguments)}return r.apply(this,arguments)},u&&["install","uninstall"].forEach((function(n){var r=e[a(n)]=e[n];e[n]=function(){var e=t.FakeAsyncTestZoneSpec;if(!e)return r.apply(this,arguments);jasmine[a("clockInstalled")]="install"===n}}))}return e}}var f=jasmine.QueueRunner;jasmine.QueueRunner=function(n){function r(r){var i,s=this;r.onComplete&&(r.onComplete=(i=r.onComplete,function(){s.testProxyZone=null,s.testProxyZoneSpec=null,o.scheduleMicroTask("jasmine.onComplete",i)}));var a=e[t.__symbol__("setTimeout")],c=e[t.__symbol__("clearTimeout")];a&&(r.timeout={setTimeout:a||e.setTimeout,clearTimeout:c||e.clearTimeout}),jasmine.UserContext?(r.userContext||(r.userContext=new jasmine.UserContext),r.userContext.queueRunner=this):(r.userContext||(r.userContext={}),r.userContext.queueRunner=this);var u=r.onException;r.onException=function(e){if(e&&"Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL."===e.message){var t=this&&this.testProxyZoneSpec;if(t){var n=t.getAndClearPendingTasksInfo();try{e.message+=n}catch(e){}}}u&&u.call(this,e)},n.call(this,r)}return function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(r,n),r.prototype.execute=function(){for(var e=this,r=t.current,s=!1;r;){if(r===o){s=!0;break}r=r.parent}if(!s)throw new Error("Unexpected Zone: "+t.current.name);this.testProxyZoneSpec=new i,this.testProxyZone=o.fork(this.testProxyZoneSpec),t.currentTask?n.prototype.execute.call(this):t.current.scheduleMicroTask("jasmine.execute().forceTask",(function(){return f.prototype.execute.call(e)}))},r}(f)}function d(e,n,r,i){var o=!!jasmine[a("clockInstalled")],s=r.testProxyZone;if(o&&u){var c=t[t.__symbol__("fakeAsyncTest")];c&&"function"==typeof c.fakeAsync&&(e=c.fakeAsync(e))}return i?s.run(e,n,[i]):s.run(e,n)}function _(e){return e&&(e.length?function(t){return d(e,this,this.queueRunner,t)}:function(){return d(e,this,this.queueRunner)})}})),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("jest",(function(e,t){if("undefined"!=typeof jest&&!jest.__zone_patch__){if(jest.__zone_patch__=!0,void 0===t)throw new Error("Missing Zone.js");var n=t.ProxyZoneSpec,r=t.SyncTestZoneSpec;if(!n)throw new Error("Missing ProxyZoneSpec");var i=t.current,o=i.fork(new r("jest.describe")),s=i.fork(new n);["describe","xdescribe","fdescribe"].forEach((function(n){var r=e[n];e[t.__symbol__(n)]||(e[t.__symbol__(n)]=r,e[n]=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1]=a(e[1]),r.apply(this,e)},e[n].each=function i(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.apply(this,t);return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1]=a(e[1]),r.apply(this,e)}}}(r.each))})),e.describe.only=e.fdescribe,e.describe.skip=e.xdescribe,["it","xit","fit","test","xtest"].forEach((function(n){var r=e[n];e[t.__symbol__(n)]||(e[t.__symbol__(n)]=r,e[n]=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1]=c(e[1]),r.apply(this,e)},e[n].each=function i(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.apply(this,t);return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1]=c(e[1]),r.apply(this,e)}}}(r.each),e[n].todo=r.todo)})),e.it.only=e.fit,e.it.skip=e.xit,e.test.only=e.fit,e.test.skip=e.xit,["beforeEach","afterEach","beforeAll","afterAll"].forEach((function(n){var r=e[n];e[t.__symbol__(n)]||(e[t.__symbol__(n)]=r,e[n]=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[0]=c(e[0]),r.apply(this,e)})}))}function a(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return o.run(e,this,t)}}function c(e){return"function"!=typeof e?e:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return s.run(e,this,t)}}})),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("mocha",(function(e,t){var n=e.Mocha;if(void 0!==n){if(void 0===t)throw new Error("Missing Zone.js");var r=t.ProxyZoneSpec,i=t.SyncTestZoneSpec;if(!r)throw new Error("Missing ProxyZoneSpec");if(n.__zone_patch__)throw new Error('"Mocha" has already been patched with "Zone".');n.__zone_patch__=!0;var o,s,a=t.current,c=a.fork(new i("Mocha.describe")),u=null,h=a.fork(new r),l={after:n.after,afterEach:n.afterEach,before:n.before,beforeEach:n.beforeEach,describe:n.describe,it:n.it};e.describe=e.suite=n.describe=function(){return l.describe.apply(this,f(arguments))},e.xdescribe=e.suite.skip=n.describe.skip=function(){return l.describe.skip.apply(this,f(arguments))},e.describe.only=e.suite.only=n.describe.only=function(){return l.describe.only.apply(this,f(arguments))},e.it=e.specify=e.test=n.it=function(){return l.it.apply(this,d(arguments))},e.xit=e.xspecify=n.it.skip=function(){return l.it.skip.apply(this,d(arguments))},e.it.only=e.test.only=n.it.only=function(){return l.it.only.apply(this,d(arguments))},e.after=e.suiteTeardown=n.after=function(){return l.after.apply(this,_(arguments))},e.afterEach=e.teardown=n.afterEach=function(){return l.afterEach.apply(this,d(arguments))},e.before=e.suiteSetup=n.before=function(){return l.before.apply(this,_(arguments))},e.beforeEach=e.setup=n.beforeEach=function(){return l.beforeEach.apply(this,d(arguments))},o=n.Runner.prototype.runTest,s=n.Runner.prototype.run,n.Runner.prototype.runTest=function(e){var n=this;t.current.scheduleMicroTask("mocha.forceTask",(function(){o.call(n,e)}))},n.Runner.prototype.run=function(e){return this.on("test",(function(e){u=a.fork(new r)})),this.on("fail",(function(e,t){var n=u&&u.get("ProxyZoneSpec");if(n&&t)try{t.message+=n.getAndClearPendingTasksInfo()}catch(e){}})),s.call(this,e)}}function p(e,t,n){for(var r=function(r){var i=e[r];"function"==typeof i&&(e[r]=0===i.length?t(i):n(i),e[r].toString=function(){return i.toString()})},i=0;i<e.length;i++)r(i);return e}function f(e){return p(e,(function(e){return function(){return c.run(e,this,arguments)}}))}function d(e){return p(e,(function(e){return function(){return u.run(e,this)}}),(function(e){return function(t){return u.run(e,this,[t])}}))}function _(e){return p(e,(function(e){return function(){return h.run(e,this)}}),(function(e){return function(t){return h.run(e,this,[t])}}))}})),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
m="undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global,(T=function(){function e(e,t,n){this.finishCallback=e,this.failCallback=t,this._pendingMicroTasks=!1,this._pendingMacroTasks=!1,this._alreadyErrored=!1,this._isSync=!1,this.runZone=Zone.current,this.unresolvedChainedPromiseCount=0,this.supportWaitUnresolvedChainedPromise=!1,this.name="asyncTestZone for "+n,this.properties={AsyncTestZoneSpec:this},this.supportWaitUnresolvedChainedPromise=!0===m[Zone.__symbol__("supportWaitUnResolvedChainedPromise")]}return e.prototype.isUnresolvedChainedPromisePending=function(){return this.unresolvedChainedPromiseCount>0},e.prototype._finishCallbackIfDone=function(){var e=this;this._pendingMicroTasks||this._pendingMacroTasks||this.supportWaitUnresolvedChainedPromise&&this.isUnresolvedChainedPromisePending()||this.runZone.run((function(){setTimeout((function(){e._alreadyErrored||e._pendingMicroTasks||e._pendingMacroTasks||e.finishCallback()}),0)}))},e.prototype.patchPromiseForTest=function(){if(this.supportWaitUnresolvedChainedPromise){var e=Promise[Zone.__symbol__("patchPromiseForTest")];e&&e()}},e.prototype.unPatchPromiseForTest=function(){if(this.supportWaitUnresolvedChainedPromise){var e=Promise[Zone.__symbol__("unPatchPromiseForTest")];e&&e()}},e.prototype.onScheduleTask=function(t,n,r,i){return"eventTask"!==i.type&&(this._isSync=!1),"microTask"===i.type&&i.data&&i.data instanceof Promise&&!0===i.data[e.symbolParentUnresolved]&&this.unresolvedChainedPromiseCount--,t.scheduleTask(r,i)},e.prototype.onInvokeTask=function(e,t,n,r,i,o){return"eventTask"!==r.type&&(this._isSync=!1),e.invokeTask(n,r,i,o)},e.prototype.onCancelTask=function(e,t,n,r){return"eventTask"!==r.type&&(this._isSync=!1),e.cancelTask(n,r)},e.prototype.onInvoke=function(e,t,n,r,i,o,s){try{return this._isSync=!0,e.invoke(n,r,i,o,s)}finally{this._isSync&&this._finishCallbackIfDone()}},e.prototype.onHandleError=function(e,t,n,r){return e.handleError(n,r)&&(this.failCallback(r),this._alreadyErrored=!0),!1},e.prototype.onHasTask=function(e,t,n,r){e.hasTask(n,r),"microTask"==r.change?(this._pendingMicroTasks=r.microTask,this._finishCallbackIfDone()):"macroTask"==r.change&&(this._pendingMacroTasks=r.macroTask,this._finishCallbackIfDone())},e}()).symbolParentUnresolved=Zone.__symbol__("parentUnresolved"),Zone.AsyncTestZoneSpec=T,
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("asynctest",(function(e,t,n){function r(e,n,r,i){var o=t.current,s=t.AsyncTestZoneSpec;if(void 0===s)throw new Error("AsyncTestZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/async-test.js");var a=t.ProxyZoneSpec;if(void 0===a)throw new Error("ProxyZoneSpec is needed for the async() test helper but could not be found. Please make sure that your environment includes zone.js/dist/proxy.js");var c=a.get();a.assertPresent();var u=t.current.getZoneWith("ProxyZoneSpec"),h=c.getDelegate();return u.parent.run((function(){var e=new s((function(){c.getDelegate()==e&&c.setDelegate(h),e.unPatchPromiseForTest(),o.run((function(){r()}))}),(function(t){c.getDelegate()==e&&c.setDelegate(h),e.unPatchPromiseForTest(),o.run((function(){i(t)}))}),"test");c.setDelegate(e),e.patchPromiseForTest()})),t.current.runGuarded(e,n)}t[n.symbol("asyncTest")]=function t(n){return e.jasmine?function(e){e||((e=function(){}).fail=function(e){throw e}),r(n,this,e,(function(t){if("string"==typeof t)return e.fail(new Error(t));e.fail(t)}))}:function(){var e=this;return new Promise((function(t,i){r(n,e,t,i)}))}}})),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
function(e){var t=e.Date,n=function(){function e(){if(0===arguments.length){var n=new t;return n.setTime(e.now()),n}var r=Array.prototype.slice.call(arguments);return new(t.bind.apply(t,__spreadArrays([void 0],r)))}return e.now=function(){var e=Zone.current.get("FakeAsyncTestZoneSpec");return e?e.getCurrentRealTime()+e.getCurrentTime():t.now.apply(this,arguments)},e}();n.UTC=t.UTC,n.parse=t.parse;var r={setTimeout:e.setTimeout,setInterval:e.setInterval,clearTimeout:e.clearTimeout,clearInterval:e.clearInterval},i=function(){function n(){this._schedulerQueue=[],this._currentTime=0,this._currentRealTime=t.now(),this._currentTickRequeuePeriodicEntries=[]}return n.prototype.getCurrentTime=function(){return this._currentTime},n.prototype.getCurrentRealTime=function(){return this._currentRealTime},n.prototype.setCurrentRealTime=function(e){this._currentRealTime=e},n.prototype.scheduleFunction=function(e,t,r){var i=(r=Object.assign({args:[],isPeriodic:!1,isRequestAnimationFrame:!1,id:-1,isRequeuePeriodic:!1},r)).id<0?n.nextId++:r.id,o={endTime:this._currentTime+t,id:i,func:e,args:r.args,delay:t,isPeriodic:r.isPeriodic,isRequestAnimationFrame:r.isRequestAnimationFrame};r.isRequeuePeriodic&&this._currentTickRequeuePeriodicEntries.push(o);for(var s=0;s<this._schedulerQueue.length&&!(o.endTime<this._schedulerQueue[s].endTime);s++);return this._schedulerQueue.splice(s,0,o),i},n.prototype.removeScheduledFunctionWithId=function(e){for(var t=0;t<this._schedulerQueue.length;t++)if(this._schedulerQueue[t].id==e){this._schedulerQueue.splice(t,1);break}},n.prototype.tick=function(t,n,r){void 0===t&&(t=0);var i=this._currentTime+t,o=0,s=(r=Object.assign({processNewMacroTasksSynchronously:!0},r)).processNewMacroTasksSynchronously?this._schedulerQueue:this._schedulerQueue.slice();if(0===s.length&&n)n(t);else{for(;s.length>0&&(this._currentTickRequeuePeriodicEntries=[],!(i<s[0].endTime));){var a=s.shift();if(!r.processNewMacroTasksSynchronously){var c=this._schedulerQueue.indexOf(a);c>=0&&this._schedulerQueue.splice(c,1)}if(o=this._currentTime,this._currentTime=a.endTime,n&&n(this._currentTime-o),!a.func.apply(e,a.isRequestAnimationFrame?[this._currentTime]:a.args))break;r.processNewMacroTasksSynchronously||this._currentTickRequeuePeriodicEntries.forEach((function(e){for(var t=0;t<s.length&&!(e.endTime<s[t].endTime);t++);s.splice(t,0,e)}))}o=this._currentTime,this._currentTime=i,n&&n(this._currentTime-o)}},n.prototype.flush=function(e,t,n){return void 0===e&&(e=20),void 0===t&&(t=!1),t?this.flushPeriodic(n):this.flushNonPeriodic(e,n)},n.prototype.flushPeriodic=function(e){if(0===this._schedulerQueue.length)return 0;var t=this._currentTime;return this.tick(this._schedulerQueue[this._schedulerQueue.length-1].endTime-t,e),this._currentTime-t},n.prototype.flushNonPeriodic=function(t,n){for(var r=this._currentTime,i=0,o=0;this._schedulerQueue.length>0;){if(++o>t)throw new Error("flush failed after reaching the limit of "+t+" tasks. Does your code use a polling timeout?");if(0===this._schedulerQueue.filter((function(e){return!e.isPeriodic&&!e.isRequestAnimationFrame})).length)break;var s=this._schedulerQueue.shift();if(i=this._currentTime,this._currentTime=s.endTime,n&&n(this._currentTime-i),!s.func.apply(e,s.args))break}return this._currentTime-r},n}();i.nextId=1;var o=function(){function o(t,n,r){void 0===n&&(n=!1),this.trackPendingRequestAnimationFrame=n,this.macroTaskOptions=r,this._scheduler=new i,this._microtasks=[],this._lastError=null,this._uncaughtPromiseErrors=Promise[Zone.__symbol__("uncaughtPromiseErrors")],this.pendingPeriodicTimers=[],this.pendingTimers=[],this.patchDateLocked=!1,this.properties={FakeAsyncTestZoneSpec:this},this.name="fakeAsyncTestZone for "+t,this.macroTaskOptions||(this.macroTaskOptions=e[Zone.__symbol__("FakeAsyncTestMacroTask")])}return o.assertInZone=function(){if(null==Zone.current.get("FakeAsyncTestZoneSpec"))throw new Error("The code should be running in the fakeAsync zone to call this function")},o.prototype._fnAndFlush=function(t,n){var r=this;return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];return t.apply(e,i),null===r._lastError?(null!=n.onSuccess&&n.onSuccess.apply(e),r.flushMicrotasks()):null!=n.onError&&n.onError.apply(e),null===r._lastError}},o._removeTimer=function(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)},o.prototype._dequeueTimer=function(e){var t=this;return function(){o._removeTimer(t.pendingTimers,e)}},o.prototype._requeuePeriodicTimer=function(e,t,n,r){var i=this;return function(){-1!==i.pendingPeriodicTimers.indexOf(r)&&i._scheduler.scheduleFunction(e,t,{args:n,isPeriodic:!0,id:r,isRequeuePeriodic:!0})}},o.prototype._dequeuePeriodicTimer=function(e){var t=this;return function(){o._removeTimer(t.pendingPeriodicTimers,e)}},o.prototype._setTimeout=function(e,t,n,r){void 0===r&&(r=!0);var o=this._dequeueTimer(i.nextId),s=this._fnAndFlush(e,{onSuccess:o,onError:o}),a=this._scheduler.scheduleFunction(s,t,{args:n,isRequestAnimationFrame:!r});return r&&this.pendingTimers.push(a),a},o.prototype._clearTimeout=function(e){o._removeTimer(this.pendingTimers,e),this._scheduler.removeScheduledFunctionWithId(e)},o.prototype._setInterval=function(e,t,n){var r=i.nextId,o={onSuccess:null,onError:this._dequeuePeriodicTimer(r)},s=this._fnAndFlush(e,o);return o.onSuccess=this._requeuePeriodicTimer(s,t,n,r),this._scheduler.scheduleFunction(s,t,{args:n,isPeriodic:!0}),this.pendingPeriodicTimers.push(r),r},o.prototype._clearInterval=function(e){o._removeTimer(this.pendingPeriodicTimers,e),this._scheduler.removeScheduledFunctionWithId(e)},o.prototype._resetLastErrorAndThrow=function(){var e=this._lastError||this._uncaughtPromiseErrors[0];throw this._uncaughtPromiseErrors.length=0,this._lastError=null,e},o.prototype.getCurrentTime=function(){return this._scheduler.getCurrentTime()},o.prototype.getCurrentRealTime=function(){return this._scheduler.getCurrentRealTime()},o.prototype.setCurrentRealTime=function(e){this._scheduler.setCurrentRealTime(e)},o.patchDate=function(){e[Zone.__symbol__("disableDatePatching")]||e.Date!==n&&(e.Date=n,n.prototype=t.prototype,o.checkTimerPatch())},o.resetDate=function(){e.Date===n&&(e.Date=t)},o.checkTimerPatch=function(){e.setTimeout!==r.setTimeout&&(e.setTimeout=r.setTimeout,e.clearTimeout=r.clearTimeout),e.setInterval!==r.setInterval&&(e.setInterval=r.setInterval,e.clearInterval=r.clearInterval)},o.prototype.lockDatePatch=function(){this.patchDateLocked=!0,o.patchDate()},o.prototype.unlockDatePatch=function(){this.patchDateLocked=!1,o.resetDate()},o.prototype.tick=function(e,t,n){void 0===e&&(e=0),void 0===n&&(n={processNewMacroTasksSynchronously:!0}),o.assertInZone(),this.flushMicrotasks(),this._scheduler.tick(e,t,n),null!==this._lastError&&this._resetLastErrorAndThrow()},o.prototype.flushMicrotasks=function(){for(o.assertInZone();this._microtasks.length>0;){var e=this._microtasks.shift();e.func.apply(e.target,e.args)}(null!==this._lastError||this._uncaughtPromiseErrors.length)&&this._resetLastErrorAndThrow()},o.prototype.flush=function(e,t,n){o.assertInZone(),this.flushMicrotasks();var r=this._scheduler.flush(e,t,n);return null!==this._lastError&&this._resetLastErrorAndThrow(),r},o.prototype.onScheduleTask=function(e,t,n,r){switch(r.type){case"microTask":var i=r.data&&r.data.args,o=void 0;if(i){var s=r.data.cbIdx;"number"==typeof i.length&&i.length>s+1&&(o=Array.prototype.slice.call(i,s+1))}this._microtasks.push({func:r.invoke,args:o,target:r.data&&r.data.target});break;case"macroTask":switch(r.source){case"setTimeout":r.data.handleId=this._setTimeout(r.invoke,r.data.delay,Array.prototype.slice.call(r.data.args,2));break;case"setImmediate":r.data.handleId=this._setTimeout(r.invoke,0,Array.prototype.slice.call(r.data.args,1));break;case"setInterval":r.data.handleId=this._setInterval(r.invoke,r.data.delay,Array.prototype.slice.call(r.data.args,2));break;case"XMLHttpRequest.send":throw new Error("Cannot make XHRs from within a fake async test. Request URL: "+r.data.url);case"requestAnimationFrame":case"webkitRequestAnimationFrame":case"mozRequestAnimationFrame":r.data.handleId=this._setTimeout(r.invoke,16,r.data.args,this.trackPendingRequestAnimationFrame);break;default:var a=this.findMacroTaskOption(r);if(a){var c=r.data&&r.data.args,u=c&&c.length>1?c[1]:0,h=a.callbackArgs?a.callbackArgs:c;a.isPeriodic?(r.data.handleId=this._setInterval(r.invoke,u,h),r.data.isPeriodic=!0):r.data.handleId=this._setTimeout(r.invoke,u,h);break}throw new Error("Unknown macroTask scheduled in fake async test: "+r.source)}break;case"eventTask":r=e.scheduleTask(n,r)}return r},o.prototype.onCancelTask=function(e,t,n,r){switch(r.source){case"setTimeout":case"requestAnimationFrame":case"webkitRequestAnimationFrame":case"mozRequestAnimationFrame":return this._clearTimeout(r.data.handleId);case"setInterval":return this._clearInterval(r.data.handleId);default:var i=this.findMacroTaskOption(r);if(i){var o=r.data.handleId;return i.isPeriodic?this._clearInterval(o):this._clearTimeout(o)}return e.cancelTask(n,r)}},o.prototype.onInvoke=function(e,t,n,r,i,s,a){try{return o.patchDate(),e.invoke(n,r,i,s,a)}finally{this.patchDateLocked||o.resetDate()}},o.prototype.findMacroTaskOption=function(e){if(!this.macroTaskOptions)return null;for(var t=0;t<this.macroTaskOptions.length;t++){var n=this.macroTaskOptions[t];if(n.source===e.source)return n}return null},o.prototype.onHandleError=function(e,t,n,r){return this._lastError=r,!1},o}();Zone.FakeAsyncTestZoneSpec=o}("object"==typeof window&&window||"object"==typeof self&&self||global),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("fakeasync",(function(e,t,n){var r=t&&t.FakeAsyncTestZoneSpec,i=t&&t.ProxyZoneSpec,o=null;function s(){o&&o.unlockDatePatch(),o=null,i&&i.assertPresent().resetDelegate()}function a(){if(null==o&&null==(o=t.current.get("FakeAsyncTestZoneSpec")))throw new Error("The code should be running in the fakeAsync zone to call this function");return o}function c(){a().flushMicrotasks()}t[n.symbol("fakeAsyncTest")]={resetFakeAsyncZone:s,flushMicrotasks:c,discardPeriodicTasks:function u(){a().pendingPeriodicTimers.length=0},tick:function h(e,t){void 0===e&&(e=0),void 0===t&&(t=!1),a().tick(e,null,t)},flush:function l(e){return a().flush(e)},fakeAsync:function p(e){return function(){for(var n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];var u=i.assertPresent();if(t.current.get("FakeAsyncTestZoneSpec"))throw new Error("fakeAsync() calls can not be nested");try{if(!o){if(u.getDelegate()instanceof r)throw new Error("fakeAsync() calls can not be nested");o=new r}var h=void 0,l=u.getDelegate();u.setDelegate(o),o.lockDatePatch();try{h=e.apply(this,n),c()}finally{u.setDelegate(l)}if(o.pendingPeriodicTimers.length>0)throw new Error(o.pendingPeriodicTimers.length+" periodic timer(s) still in the queue.");if(o.pendingTimers.length>0)throw new Error(o.pendingTimers.length+" timer(s) still in the queue.");return h}finally{s()}}}}})),
/**
     * @license
     * Copyright Google Inc. All Rights Reserved.
     *
     * Use of this source code is governed by an MIT-style license that can be
     * found in the LICENSE file at https://angular.io/license
     */
Zone.__load_patch("promisefortest",(function(e,t,n){var r=n.symbol("state"),i=n.symbol("parentUnresolved");Promise[n.symbol("patchPromiseForTest")]=function e(){var n=Promise[t.__symbol__("ZonePromiseThen")];n||(n=Promise[t.__symbol__("ZonePromiseThen")]=Promise.prototype.then,Promise.prototype.then=function(){var e=n.apply(this,arguments);if(null===this[r]){var o=t.current.get("AsyncTestZoneSpec");o&&(o.unresolvedChainedPromiseCount++,e[i]=!0)}return e})},Promise[n.symbol("unPatchPromiseForTest")]=function e(){var n=Promise[t.__symbol__("ZonePromiseThen")];n&&(Promise.prototype.then=n,Promise[t.__symbol__("ZonePromiseThen")]=void 0)}}))}));