diff --git a/268.c6f3b055cd7fa08f.js b/268.c6f3b055cd7fa08f.js deleted file mode 100644 index 1b18323..0000000 --- a/268.c6f3b055cd7fa08f.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{"use strict";var e,o={},p={};function r(e){var u=p[e];if(void 0!==u)return u.exports;var n=p[e]={exports:{}};return o[e](n,n.exports,r),n.exports}r.m=o,r.x=()=>{var e=r.O(void 0,[889],()=>r(889));return r.O(e)},r.amdO={},e=[],r.O=(u,n,c,t)=>{if(!n){var s=1/0;for(a=0;a=t)&&Object.keys(r.O).every(l=>r.O[l](n[i]))?n.splice(i--,1):(f=!1,t0&&e[a-1][2]>t;a--)e[a]=e[a-1];e[a]=[n,c,t]},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((u,n)=>(r.f[n](e,u),u),[])),r.u=e=>e+".45d9b5ec7aeb4a2f.js",r.miniCssF=e=>{},r.o=(e,u)=>Object.prototype.hasOwnProperty.call(e,u),(()=>{var e;r.tu=u=>(void 0===e&&(e={createScriptURL:n=>n},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(u))})(),r.p="",(()=>{var e={268:1};r.f.i=(t,a)=>{e[t]||importScripts(r.tu(r.p+r.u(t)))};var n=self.webpackChunkobservable_webworker_demo=self.webpackChunkobservable_webworker_demo||[],c=n.push.bind(n);n.push=t=>{var[a,s,f]=t;for(var i in s)r.o(s,i)&&(r.m[i]=s[i]);for(f&&f(r);a.length;)e[a.pop()]=1;c(t)}})(),(()=>{var e=r.x;r.x=()=>r.e(889).then(e)})(),r.x()})(); -//# sourceMappingURL=268.c6f3b055cd7fa08f.js.map \ No newline at end of file diff --git a/268.c6f3b055cd7fa08f.js.map b/268.c6f3b055cd7fa08f.js.map deleted file mode 100644 index b578bca..0000000 --- a/268.c6f3b055cd7fa08f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"uBAAAA,OCCAC,KAGA,cAEA,WACA,cACA,iBAGA,YAGAC,YAIA,2BAGAC,UAIAC,MAGAA,SAGA,mCACA,eChCAA,UFAAJ,KACAI,gBACA,OAOA,IADAC,MACA,QAAiBC,WAAqBA,KAGtC,QAFAH,YACAI,KACAC,IAAkBA,WAAqBA,MACvC,oDACAL,iBAEAI,KACAE,YAGA,MACAT,gBACA,eACA,cAGA,SAvBAS,OACA,mBAA+BH,iBAAwCA,gBACvEN,cGLAI,OAGAA,OACAM,4CACAN,YACAO,GACE,KCNFP,OAEAJ,yBCFAI,iBCDAA,2DCAA,MACAA,cAEA,QACAJ,GACAY,sBAEA,8DACAZ,mDAGAA,0BCXAI,aCIA,OACA,OAgBAA,cAEAJ,MAEAa,iCAKA,gGACAC,iBACAX,OAvBAM,IACA,aACA,eACAL,WACAA,aAIA,IADAG,QACAD,UACAN,aACAc,gBCnBA,UACAV,QACAA,qBCDAA","names":["e","p","exports","n","r","s","a","f","i","t","Promise","u","createScriptURL","importScripts","c"],"sources":["webpack/runtime/chunk%20loaded","webpack/bootstrap","webpack/runtime/amd%20options","webpack/runtime/ensure%20chunk","webpack/runtime/get%20javascript%20chunk%20filename","webpack/runtime/get%20mini-css%20chunk%20filename","webpack/runtime/hasOwnProperty%20shorthand","webpack/runtime/trusted%20types","webpack/runtime/publicPath","webpack/runtime/importScripts%20chunk%20loading","webpack/runtime/startup%20chunk%20dependencies","webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [889], () => (__webpack_require__(889)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","__webpack_require__.amdO = {};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + \"45d9b5ec7aeb4a2f\" + \".js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var policy;\n__webpack_require__.tu = (url) => {\n\t// Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.\n\tif (policy === undefined) {\n\t\tpolicy = {\n\t\t\tcreateScriptURL: (url) => (url)\n\t\t};\n\t\tif (typeof trustedTypes !== \"undefined\" && trustedTypes.createPolicy) {\n\t\t\tpolicy = trustedTypes.createPolicy(\"angular#bundler\", policy);\n\t\t}\n\t}\n\treturn policy.createScriptURL(url);\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t268: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.tu(__webpack_require__.p + __webpack_require__.u(chunkId)));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkobservable_webworker_demo\"] = self[\"webpackChunkobservable_webworker_demo\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn __webpack_require__.e(889).then(next);\n};","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"sourceRoot":"webpack:///","file":"268.c6f3b055cd7fa08f.js"} \ No newline at end of file diff --git a/268.f3dcfe5d0ce6d424.js b/268.f3dcfe5d0ce6d424.js new file mode 100644 index 0000000..578d064 --- /dev/null +++ b/268.f3dcfe5d0ce6d424.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var e,o={},p={};function r(e){var u=p[e];if(void 0!==u)return u.exports;var t=p[e]={exports:{}};return o[e](t,t.exports,r),t.exports}r.m=o,r.x=()=>{var e=r.O(void 0,[870],()=>r(870));return r.O(e)},r.amdO={},e=[],r.O=(u,t,c,n)=>{if(!t){var s=1/0;for(a=0;a=n)&&Object.keys(r.O).every(l=>r.O[l](t[i]))?t.splice(i--,1):(f=!1,n0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[t,c,n]},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((u,t)=>(r.f[t](e,u),u),[])),r.u=e=>e+".361752bafce9783e.js",r.miniCssF=e=>{},r.o=(e,u)=>Object.prototype.hasOwnProperty.call(e,u),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:u=>u},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={268:1};r.f.i=(n,a)=>{e[n]||importScripts(r.tu(r.p+r.u(n)))};var t=self.webpackChunkobservable_webworker_demo=self.webpackChunkobservable_webworker_demo||[],c=t.push.bind(t);t.push=n=>{var[a,s,f]=n;for(var i in s)r.o(s,i)&&(r.m[i]=s[i]);for(f&&f(r);a.length;)e[a.pop()]=1;c(n)}})(),(()=>{var e=r.x;r.x=()=>r.e(870).then(e)})(),r.x()})(); +//# sourceMappingURL=268.f3dcfe5d0ce6d424.js.map \ No newline at end of file diff --git a/268.f3dcfe5d0ce6d424.js.map b/268.f3dcfe5d0ce6d424.js.map new file mode 100644 index 0000000..9babe89 --- /dev/null +++ b/268.f3dcfe5d0ce6d424.js.map @@ -0,0 +1 @@ +{"version":3,"file":"268.f3dcfe5d0ce6d424.js","mappings":"uBAAAA,OCCAC,KAGA,cAEA,WACA,cACA,iBAGA,YAGAC,YAIA,2BAGAC,SACA,CAGAC,MAGAA,SAGA,mCACA,aACAC,ECjCAD,UFAAJ,KACAI,gBACA,OAOA,IADAE,MACA,QAAiBC,WAAqBA,KAGtC,QAFAC,YACAC,KACAC,IAAkBA,WAAqBA,MACvC,oDACAF,iBAEAC,KACAE,YAGA,MACAX,gBACA,eACA,YACA,CACA,CACA,QAnBA,CAJAW,OACA,mBAA+BJ,iBAAwCA,gBACvEP,YAqBAY,EG1BAR,OAGAA,OACAS,4CACAT,YACAU,GACE,KCNFV,OAEAW,yBCFAX,iBCDAA,2DCAA,MACAA,eAEA,QACAY,GACAC,6BAEAC,8CACAF,mDAGAA,IDXA,GEAAZ,kCCAAA,aCIA,OACA,OAgBAA,cAEAe,MAEAC,iCAKA,gGACAC,iBACAC,OAvBAC,IACA,aACA,eACAnB,WACAA,aAIA,IADAoB,QACAhB,UACAW,aACAE,ODnBA,SEAA,UACAjB,QACAA,qBCDAA","names":["deferred","__webpack_module_cache__","exports","module","__webpack_require__","__webpack_exports__","notFulfilled","i","chunkIds","fulfilled","j","priority","result","Promise","promises","chunkId","policy","createScriptURL","trustedTypes","installedChunks","importScripts","parentChunkLoadingFunction","chunkLoadingGlobal","data","runtime"],"sourceRoot":"webpack:///","sources":["webpack/runtime/chunk loaded","webpack/bootstrap","webpack/runtime/amd options","webpack/runtime/ensure chunk","webpack/runtime/get javascript chunk filename","webpack/runtime/get mini-css chunk filename","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/trusted types policy","webpack/runtime/trusted types script url","webpack/runtime/publicPath","webpack/runtime/importScripts chunk loading","webpack/runtime/startup chunk dependencies","webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [870], () => (__webpack_require__(870)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","__webpack_require__.amdO = {};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + \"361752bafce9783e\" + \".js\";\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var policy;\n__webpack_require__.tt = () => {\n\t// Create Trusted Type policy if Trusted Types are available and the policy doesn't exist yet.\n\tif (policy === undefined) {\n\t\tpolicy = {\n\t\t\tcreateScriptURL: (url) => (url)\n\t\t};\n\t\tif (typeof trustedTypes !== \"undefined\" && trustedTypes.createPolicy) {\n\t\t\tpolicy = trustedTypes.createPolicy(\"angular#bundler\", policy);\n\t\t}\n\t}\n\treturn policy;\n};","__webpack_require__.tu = (url) => (__webpack_require__.tt().createScriptURL(url));","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t268: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.tu(__webpack_require__.p + __webpack_require__.u(chunkId)));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkobservable_webworker_demo\"] = self[\"webpackChunkobservable_webworker_demo\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn __webpack_require__.e(870).then(next);\n};","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]} \ No newline at end of file diff --git a/3rdpartylicenses.txt b/3rdpartylicenses.txt index 7138357..b5ac3c7 100644 --- a/3rdpartylicenses.txt +++ b/3rdpartylicenses.txt @@ -269,7 +269,7 @@ zone.js MIT The MIT License -Copyright (c) 2010-2020 Google LLC. https://angular.io/license +Copyright (c) 2010-2022 Google LLC. https://angular.io/license Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/870.361752bafce9783e.js b/870.361752bafce9783e.js new file mode 100644 index 0000000..6c10f8a --- /dev/null +++ b/870.361752bafce9783e.js @@ -0,0 +1,2 @@ +(self.webpackChunkobservable_webworker_demo=self.webpackChunkobservable_webworker_demo||[]).push([[870],{870:(s,o,c)=>{"use strict";var n=c(207);function d(r){return"function"==typeof r}let a=!1;const h={Promise:void 0,set useDeprecatedSynchronousErrorHandling(r){if(r){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else a&&console.log("RxJS: Back to a better error behavior. Thank you. <3");a=r},get useDeprecatedSynchronousErrorHandling(){return a}};function p(r){setTimeout(()=>{throw r},0)}const y={closed:!0,next(r){},error(r){if(h.useDeprecatedSynchronousErrorHandling)throw r;p(r)},complete(){}},U=Array.isArray||(r=>r&&"number"==typeof r.length);function W(r){return null!==r&&"object"==typeof r}const C=(()=>{function r(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((t,i)=>`${i+1}) ${t.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return r.prototype=Object.create(Error.prototype),r})();class _{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:t,_ctorUnsubscribe:i,_unsubscribe:u,_subscriptions:f}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,t instanceof _)t.remove(this);else if(null!==t)for(let l=0;le.concat(t instanceof C?t.errors:t),[])}_.EMPTY=((r=new _).closed=!0,r);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class E extends _{constructor(e,t,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=y;break;case 1:if(!e){this.destination=y;break}if("object"==typeof e){e instanceof E?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new z(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new z(this,e,t,i)}}[k](){return this}static create(e,t,i){const u=new E(e,t,i);return u.syncErrorThrowable=!1,u}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class z extends E{constructor(e,t,i,u){super(),this._parentSubscriber=e;let f,l=this;d(t)?f=t:t&&(f=t.next,i=t.error,u=t.complete,t!==y&&(l=Object.create(t),d(l.unsubscribe)&&this.add(l.unsubscribe.bind(l)),l.unsubscribe=this.unsubscribe.bind(this))),this._context=l,this._next=f,this._error=i,this._complete=u}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;h.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:i}=h;if(this._error)i&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)i?(t.syncErrorValue=e,t.syncErrorThrown=!0):p(e),this.unsubscribe();else{if(this.unsubscribe(),i)throw e;p(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);h.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(i){if(this.unsubscribe(),h.useDeprecatedSynchronousErrorHandling)throw i;p(i)}}__tryOrSetError(e,t,i){if(!h.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,i)}catch(u){return h.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=u,e.syncErrorThrown=!0,!0):(p(u),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const I="function"==typeof Symbol&&Symbol.observable||"@@observable";function ae(r){return r}let x=(()=>{class r{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(t){const i=new r;return i.source=this,i.operator=t,i}subscribe(t,i,u){const{operator:f}=this,l=function le(r,e,t){if(r){if(r instanceof E)return r;if(r[k])return r[k]()}return r||e||t?new E(r,e,t):new E(y)}(t,i,u);if(l.add(f?f.call(l,this.source):this.source||h.useDeprecatedSynchronousErrorHandling&&!l.syncErrorThrowable?this._subscribe(l):this._trySubscribe(l)),h.useDeprecatedSynchronousErrorHandling&&l.syncErrorThrowable&&(l.syncErrorThrowable=!1,l.syncErrorThrown))throw l.syncErrorValue;return l}_trySubscribe(t){try{return this._subscribe(t)}catch(i){h.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=i),function he(r){for(;r;){const{closed:e,destination:t,isStopped:i}=r;if(e||i)return!1;r=t&&t instanceof E?t:null}return!0}(t)?t.error(i):console.warn(i)}}forEach(t,i){return new(i=Y(i))((u,f)=>{let l;l=this.subscribe(b=>{try{t(b)}catch(m){f(m),l&&l.unsubscribe()}},f,u)})}_subscribe(t){const{source:i}=this;return i&&i.subscribe(t)}[I](){return this}pipe(...t){return 0===t.length?this:function V(r){return 0===r.length?ae:1===r.length?r[0]:function(t){return r.reduce((i,u)=>u(i),t)}}(t)(this)}toPromise(t){return new(t=Y(t))((i,u)=>{let f;this.subscribe(l=>f=l,l=>u(l),()=>i(f))})}}return r.create=e=>new r(e),r})();function Y(r){if(r||(r=h.Promise||Promise),!r)throw new Error("no Promise impl found");return r}const fe=new x(r=>r.complete());function j(r){return r?function de(r){return new x(e=>r.schedule(()=>e.complete()))}(r):fe}const L=r=>e=>{for(let t=0,i=r.length;t{const i=new _;let u=0;return i.add(e.schedule(function(){u!==r.length?(t.next(r[u++]),t.closed||i.add(this.schedule())):t.complete()})),i})}function ye({error:r,subscriber:e}){e.error(r)}class w{constructor(e,t,i){this.kind=e,this.value=t,this.error=i,this.hasValue="N"===e}observe(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}}do(e,t,i){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return i&&i()}}accept(e,t,i){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,i)}toObservable(){switch(this.kind){case"N":return function _e(...r){let e=r[r.length-1];return function pe(r){return r&&"function"==typeof r.schedule}(e)?(r.pop(),N(r,e)):function be(r,e){return e?N(r,e):new x(L(r))}(r)}(this.value);case"E":return function Ee(r,e){return new x(e?t=>e.schedule(ye,0,{error:r,subscriber:t}):t=>t.error(r))}(this.error);case"C":return j()}throw new Error("unexpected notification kind value")}static createNext(e){return typeof e<"u"?new w("N",e):w.undefinedValueNotification}static createError(e){return new w("E",void 0,e)}static createComplete(){return w.completeNotification}}w.completeNotification=new w("C"),w.undefinedValueNotification=new w("N",void 0);const O=function we(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}(),J=r=>r&&"number"==typeof r.length&&"function"!=typeof r;function K(r){return!!r&&"function"!=typeof r.subscribe&&"function"==typeof r.then}const $=r=>{if(r&&"function"==typeof r[I])return(r=>e=>{const t=r[I]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)})(r);if(J(r))return L(r);if(K(r))return(r=>e=>(r.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,p),e))(r);if(r&&"function"==typeof r[O])return(r=>e=>{const t=r[O]();for(;;){let i;try{i=t.next()}catch(u){return e.error(u),e}if(i.done){e.complete();break}if(e.next(i.value),e.closed)break}return"function"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e})(r);{const t=`You provided ${W(r)?"an invalid object":`'${r}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(t)}};function q(r,e){return e?function Te(r,e){if(null!=r){if(function ge(r){return r&&"function"==typeof r[I]}(r))return function Ae(r,e){return new x(t=>{const i=new _;return i.add(e.schedule(()=>{const u=r[I]();i.add(u.subscribe({next(f){i.add(e.schedule(()=>t.next(f)))},error(f){i.add(e.schedule(()=>t.error(f)))},complete(){i.add(e.schedule(()=>t.complete()))}}))})),i})}(r,e);if(K(r))return function Re(r,e){return new x(t=>{const i=new _;return i.add(e.schedule(()=>r.then(u=>{i.add(e.schedule(()=>{t.next(u),i.add(e.schedule(()=>t.complete()))}))},u=>{i.add(e.schedule(()=>t.error(u)))}))),i})}(r,e);if(J(r))return N(r,e);if(function ve(r){return r&&"function"==typeof r[O]}(r)||"string"==typeof r)return function Fe(r,e){if(!r)throw new Error("Iterable cannot be null");return new x(t=>{const i=new _;let u;return i.add(()=>{u&&"function"==typeof u.return&&u.return()}),i.add(e.schedule(()=>{u=r[O](),i.add(e.schedule(function(){if(t.closed)return;let f,l;try{const b=u.next();f=b.value,l=b.done}catch(b){return void t.error(b)}l?t.complete():(t.next(f),this.schedule())}))})),i})}(r,e)}throw new TypeError((null!==r&&typeof r||r)+" is not observable")}(r,e):r instanceof x?r:new x($(r))}function F(r,e){return function(i){if("function"!=typeof r)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Ie(r,e))}}class Ie{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new He(e,this.project,this.thisArg))}}class He extends E{constructor(e,t,i){super(e),this.project=t,this.count=0,this.thisArg=i||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(t)}}function G(r,e,t,i){return d(t)&&(i=t,t=void 0),i?G(r,e,t).pipe(F(u=>U(u)?i(...u):i(u))):new x(u=>{Q(r,e,function f(l){u.next(arguments.length>1?Array.prototype.slice.call(arguments):l)},u,t)})}function Q(r,e,t,i,u){let f;if(function Oe(r){return r&&"function"==typeof r.addEventListener&&"function"==typeof r.removeEventListener}(r)){const l=r;r.addEventListener(e,t,u),f=()=>l.removeEventListener(e,t,u)}else if(function ke(r){return r&&"function"==typeof r.on&&"function"==typeof r.off}(r)){const l=r;r.on(e,t),f=()=>l.off(e,t)}else if(function Ce(r){return r&&"function"==typeof r.addListener&&"function"==typeof r.removeListener}(r)){const l=r;r.addListener(e,t),f=()=>l.removeListener(e,t)}else{if(!r||!r.length)throw new TypeError("Invalid event target");for(let l=0,b=r.length;li.pipe(Z((u,f)=>q(r(u,f)).pipe(F((l,b)=>e(u,l,f,b))),t)):("number"==typeof e&&(t=e),i=>i.lift(new Ve(r,t)))}class Ve{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new Ye(e,this.project,this.concurrent))}}class Ye extends Xe{constructor(e,t,i=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function je(r,e){return Z(r,e,1)}function ee(){return function(e){return e.lift(new Le)}}class Le{call(e,t){return t.subscribe(new Je(e))}}class Je extends E{constructor(e){super(e)}_next(e){this.destination.next(w.createNext(e))}_error(e){const t=this.destination;t.next(w.createError(e)),t.complete()}_complete(){const e=this.destination;e.next(w.createComplete()),e.complete()}}const g=(()=>{function r(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return r.prototype=Object.create(Error.prototype),r})();class re extends _{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const i=t.indexOf(this.subscriber);-1!==i&&t.splice(i,1)}}class Qe extends E{constructor(e){super(e),this.destination=e}}let se=(()=>{class r extends x{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new Qe(this)}lift(t){const i=new ie(this,this);return i.operator=t,i}next(t){if(this.closed)throw new g;if(!this.isStopped){const{observers:i}=this,u=i.length,f=i.slice();for(let l=0;lnew ie(e,t),r})();class ie extends se{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):_.EMPTY}}class Ze extends _{constructor(e,t){super()}schedule(e,t=0){return this}}class et extends Ze{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const i=this.id,u=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(u,i,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(u,this.id,t),this}requestAsyncId(e,t,i=0){return setInterval(e.flush.bind(e,this),i)}recycleAsyncId(e,t,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return t;clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(e,t);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let u,i=!1;try{this.work(e)}catch(f){i=!0,u=!!f&&f||new Error(f)}if(i)return this.unsubscribe(),u}_unsubscribe(){const e=this.id,t=this.scheduler,i=t.actions,u=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==u&&i.splice(u,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}let ne=(()=>{class r{constructor(t,i=r.now){this.SchedulerAction=t,this.now=i}schedule(t,i=0,u){return new this.SchedulerAction(this,t).schedule(u,i)}}return r.now=()=>Date.now(),r})();class A extends ne{constructor(e,t=ne.now){super(e,()=>A.delegate&&A.delegate!==this?A.delegate.now():t()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(e,t=0,i){return A.delegate&&A.delegate!==this?A.delegate.schedule(e,t,i):super.schedule(e,t,i)}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let i;this.active=!0;do{if(i=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,i){for(;e=t.shift();)e.unsubscribe();throw i}}}const st=new class rt extends A{}(class tt extends et{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}schedule(e,t=0){return t>0?super.schedule(e,t):(this.delay=t,this.state=e,this.scheduler.flush(this),this)}execute(e,t){return t>0||this.closed?super.execute(e,t):this._execute(e,t)}requestAsyncId(e,t,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(e,t,i):e.flush(this)}});class M extends E{constructor(e,t,i=0){super(e),this.scheduler=t,this.delay=i}static dispatch(e){const{notification:t,destination:i}=e;t.observe(i),this.unsubscribe()}scheduleMessage(e){this.destination.add(this.scheduler.schedule(M.dispatch,this.delay,new nt(e,this.destination)))}_next(e){this.scheduleMessage(w.createNext(e))}_error(e){this.scheduleMessage(w.createError(e)),this.unsubscribe()}_complete(){this.scheduleMessage(w.createComplete()),this.unsubscribe()}}class nt{constructor(e,t){this.notification=e,this.destination=t}}class ot extends se{constructor(e=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=e<1?1:e,this._windowTime=t<1?1:t,t===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(e){if(!this.isStopped){const t=this._events;t.push(e),t.length>this._bufferSize&&t.shift()}super.next(e)}nextTimeWindow(e){this.isStopped||(this._events.push(new ct(this._getNow(),e)),this._trimBufferThenGetEvents()),super.next(e)}_subscribe(e){const t=this._infiniteTimeWindow,i=t?this._events:this._trimBufferThenGetEvents(),u=this.scheduler,f=i.length;let l;if(this.closed)throw new g;if(this.isStopped||this.hasError?l=_.EMPTY:(this.observers.push(e),l=new re(this,e)),u&&e.add(e=new M(e,u)),t)for(let b=0;bt&&(l=Math.max(l,f-t)),l>0&&u.splice(0,l),u}}class ct{constructor(e,t){this.time=e,this.value=t}}function R(){}function oe(r,e,t){return function(u){return u.lift(new ut(r,e,t))}}class ut{constructor(e,t,i){this.nextOrObserver=e,this.error=t,this.complete=i}call(e,t){return t.subscribe(new ht(e,this.nextOrObserver,this.error,this.complete))}}class ht extends E{constructor(e,t,i,u){super(e),this._tapNext=R,this._tapError=R,this._tapComplete=R,this._tapError=i||R,this._tapComplete=u||R,d(t)?(this._context=this,this._tapNext=t):t&&(this._context=t,this._tapNext=t.next||R,this._tapError=t.error||R,this._tapComplete=t.complete||R)}_next(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}const lt=(()=>{function r(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return r.prototype=Object.create(Error.prototype),r})();class ft{constructor(e){if(this.total=e,this.total<0)throw new lt}call(e,t){return t.subscribe(new dt(e,this.total))}}class dt extends E{constructor(e,t){super(e),this.total=t,this.count=0}_next(e){const t=this.total,i=++this.count;i<=t&&(this.destination.next(e),i===t&&(this.destination.complete(),this.unsubscribe()))}}var D=(()=>(function(r){r.WORKER="worker",r.MAIN="main"}(D||(D={})),D))(),v=(()=>(function(r){r.SELECTED="selected",r.PICKED_UP="picked_up",r.FILE_RECEIVED="file_received",r.FILE_READ="file_read",r.HASH_COMPUTED="hash_computed",r.HASH_RECEIVED="hash_received"}(v||(v={})),v))();!function te(r){const e=new r,t=G(self,"message");return function qe(r,e){const t=e.pipe(F(i=>i.data),F(i=>new w(i.kind,i.value,i.error)),function Me(r,e){return function(i){return i.lift(new De(r,e))}}(i=>"C"!==i.kind),function Ne(){return function(e){return e.lift(new Pe)}}());return function $e(r){return!!r.workUnit}(r)?t.pipe(je(i=>q(r.workUnit(i)).pipe(ee()))):r.work(t).pipe(ee())}(e,t).subscribe(i=>{const u=postMessage;(function Ke(r){return!!r.selectTransferables})(e)&&i.hasValue?u(i,e.selectTransferables(i.value)):u(i)})}(class pt{workUnit(e){const t=new ot(1/0),i=(u,f)=>({file:e.name,timestamp:new Date,message:f,thread:D.WORKER,fileEventType:u});return t.next(i(v.FILE_RECEIVED,"received file")),this.readFileAsArrayBuffer(e).pipe(oe(()=>t.next(i(v.FILE_READ,"read file"))),F(u=>n(u)),F(u=>i(v.HASH_COMPUTED,`hash result: ${u}`)),oe(u=>{t.next(u),t.complete()}),function at(r){return e=>0===r?j():e.lift(new ft(r))}(1)).subscribe(),t}readFileAsArrayBuffer(e){return new x(t=>{if(!(e instanceof Blob))return void t.error(new Error("`blob` must be an instance of File or Blob."));const i=new FileReader;return i.onerror=u=>t.error(u),i.onload=()=>t.next(i.result),i.onloadend=()=>t.complete(),i.readAsArrayBuffer(e),()=>i.abort()})}})},207:(module,exports,__webpack_require__)=>{var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&module.exports,AMD=__webpack_require__.amdO,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}(root.JS_MD5_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(s){return"[object Array]"===Object.prototype.toString.call(s)}),ARRAY_BUFFER&&(root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(s){return"object"==typeof s&&s.buffer&&s.buffer.constructor===ArrayBuffer});var createOutputMethod=function(s){return function(o){return new Md5(!0).update(o)[s]()}},createMethod=function(){var s=createOutputMethod("hex");NODE_JS&&(s=nodeWrap(s)),s.create=function(){return new Md5},s.update=function(n){return s.create().update(n)};for(var o=0;o>2]|=s[d]<>6,y[a++]=128|63&n):n<55296||n>=57344?(y[a++]=224|n>>12,y[a++]=128|n>>6&63,y[a++]=128|63&n):(n=65536+((1023&n)<<10|1023&s.charCodeAt(++d)),y[a++]=240|n>>18,y[a++]=128|n>>12&63,y[a++]=128|n>>6&63,y[a++]=128|63&n);else for(a=this.start;d>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(p[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=64?(this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[o>>2]|=EXTRA[3&o],o>=56&&(this.hashed||this.hash(),s[0]=s[16],s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.bytes<<3,s[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var s,o,c,n,d,a,h=this.blocks;this.first?o=((o=((s=((s=h[0]-680876937)<<7|s>>>25)-271733879<<0)^(c=((c=(-271733879^(n=((n=(-1732584194^2004318071&s)+h[1]-117830708)<<12|n>>>20)+s<<0)&(-271733879^s))+h[2]-1126478375)<<17|c>>>15)+n<<0)&(n^s))+h[3]-1316259209)<<22|o>>>10)+c<<0:(s=this.h0,o=this.h1,o=((o+=((s=((s+=((n=this.h3)^o&((c=this.h2)^n))+h[0]-680876936)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[1]-389564586)<<12|n>>>20)+s<<0)&(s^o))+h[2]+606105819)<<17|c>>>15)+n<<0)&(n^s))+h[3]-1044525330)<<22|o>>>10)+c<<0),o=((o+=((s=((s+=(n^o&(c^n))+h[4]-176418897)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[5]+1200080426)<<12|n>>>20)+s<<0)&(s^o))+h[6]-1473231341)<<17|c>>>15)+n<<0)&(n^s))+h[7]-45705983)<<22|o>>>10)+c<<0,o=((o+=((s=((s+=(n^o&(c^n))+h[8]+1770035416)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[9]-1958414417)<<12|n>>>20)+s<<0)&(s^o))+h[10]-42063)<<17|c>>>15)+n<<0)&(n^s))+h[11]-1990404162)<<22|o>>>10)+c<<0,o=((o+=((s=((s+=(n^o&(c^n))+h[12]+1804603682)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[13]-40341101)<<12|n>>>20)+s<<0)&(s^o))+h[14]-1502002290)<<17|c>>>15)+n<<0)&(n^s))+h[15]+1236535329)<<22|o>>>10)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[1]-165796510)<<5|s>>>27)+o<<0)^o))+h[6]-1069501632)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[11]+643717713)<<14|c>>>18)+n<<0)^n))+h[0]-373897302)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[5]-701558691)<<5|s>>>27)+o<<0)^o))+h[10]+38016083)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[15]-660478335)<<14|c>>>18)+n<<0)^n))+h[4]-405537848)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[9]+568446438)<<5|s>>>27)+o<<0)^o))+h[14]-1019803690)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[3]-187363961)<<14|c>>>18)+n<<0)^n))+h[8]+1163531501)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[13]-1444681467)<<5|s>>>27)+o<<0)^o))+h[2]-51403784)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[7]+1735328473)<<14|c>>>18)+n<<0)^n))+h[12]-1926607734)<<20|o>>>12)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[5]-378558)<<4|s>>>28)+o<<0))+h[8]-2022574463)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[11]+1839030562)<<16|c>>>16)+n<<0))+h[14]-35309556)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[1]-1530992060)<<4|s>>>28)+o<<0))+h[4]+1272893353)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[7]-155497632)<<16|c>>>16)+n<<0))+h[10]-1094730640)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[13]+681279174)<<4|s>>>28)+o<<0))+h[0]-358537222)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[3]-722521979)<<16|c>>>16)+n<<0))+h[6]+76029189)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[9]-640364487)<<4|s>>>28)+o<<0))+h[12]-421815835)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[15]+530742520)<<16|c>>>16)+n<<0))+h[2]-995338651)<<23|o>>>9)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[0]-198630844)<<6|s>>>26)+o<<0)|~c))+h[7]+1126891415)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[14]-1416354905)<<15|c>>>17)+n<<0)|~s))+h[5]-57434055)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[12]+1700485571)<<6|s>>>26)+o<<0)|~c))+h[3]-1894986606)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[10]-1051523)<<15|c>>>17)+n<<0)|~s))+h[1]-2054922799)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[8]+1873313359)<<6|s>>>26)+o<<0)|~c))+h[15]-30611744)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[6]-1560198380)<<15|c>>>17)+n<<0)|~s))+h[13]+1309151649)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[4]-145523070)<<6|s>>>26)+o<<0)|~c))+h[11]-1120210379)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[2]+718787259)<<15|c>>>17)+n<<0)|~s))+h[9]-343485551)<<21|o>>>11)+c<<0,this.first?(this.h0=s+1732584193<<0,this.h1=o-271733879<<0,this.h2=c-1732584194<<0,this.h3=n+271733878<<0,this.first=!1):(this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+c<<0,this.h3=this.h3+n<<0)},Md5.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,c=this.h2,n=this.h3;return HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[c>>4&15]+HEX_CHARS[15&c]+HEX_CHARS[c>>12&15]+HEX_CHARS[c>>8&15]+HEX_CHARS[c>>20&15]+HEX_CHARS[c>>16&15]+HEX_CHARS[c>>28&15]+HEX_CHARS[c>>24&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,c=this.h2,n=this.h3;return[255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&c,c>>8&255,c>>16&255,c>>24&255,255&n,n>>8&255,n>>16&255,n>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(16),o=new Uint32Array(s);return o[0]=this.h0,o[1]=this.h1,o[2]=this.h2,o[3]=this.h3,s},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var s,o,c,n="",d=this.array(),a=0;a<15;)s=d[a++],o=d[a++],c=d[a++],n+=BASE64_ENCODE_CHAR[s>>>2]+BASE64_ENCODE_CHAR[63&(s<<4|o>>>4)]+BASE64_ENCODE_CHAR[63&(o<<2|c>>>6)]+BASE64_ENCODE_CHAR[63&c];return n+(BASE64_ENCODE_CHAR[(s=d[a])>>>2]+BASE64_ENCODE_CHAR[s<<4&63]+"==")};var exports=createMethod();COMMON_JS?module.exports=exports:(root.md5=exports,AMD&&(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module),void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))})()}}]); +//# sourceMappingURL=870.361752bafce9783e.js.map \ No newline at end of file diff --git a/870.361752bafce9783e.js.map b/870.361752bafce9783e.js.map new file mode 100644 index 0000000..6ba48dd --- /dev/null +++ b/870.361752bafce9783e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"870.361752bafce9783e.js","mappings":"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","names":["isFunction","x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","undefined","useDeprecatedSynchronousErrorHandling","value","error","Error","console","warn","stack","log","hostReportError","err","setTimeout","empty","closed","next","complete","isArray","Array","length","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","errors","call","this","message","map","i","toString","join","name","prototype","Object","create","Subscription","constructor","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","remove","index","e","flattenUnsubscriptionErrors","len","sub","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Symbol","Math","random","Subscriber","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","emptyObserver","SafeSubscriber","k","rxSubscriberSymbol","static","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","identity","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","toSubscriber","nextOrObserver","_trySubscribe","canReportError","observer","forEach","promiseCtor","getPromiseCtor","resolve","reject","I","Symbol_observable","pipe","operations","pipeFromArray","fns","input","prev","toPromise","scheduler","emptyScheduled","schedule","subscribeToArray","array","scheduleArray","dispatch","Notification","kind","hasValue","observe","do","accept","toObservable","of","args","isScheduler","pop","fromArray","throwError","undefinedValueNotification","completeNotification","iterator","getSymbolIterator","isArrayLike","isPromise","then","subscribeTo","result","obj","obs","TypeError","subscribeToObservable","promise","subscribeToPromise","Symbol_iterator","iterable","item","done","return","subscribeToIterable","msg","from","scheduled","isInteropObservable","scheduleObservable","schedulePromise","isIterable","scheduleIterable","project","thisArg","MapOperator","MapSubscriber","count","fromEvent","target","eventName","options","resultSelector","setupSubscription","handler","slice","sourceObj","isEventTarget","addEventListener","removeEventListener","isJQueryStyleEventEmitter","on","off","isNodeStyleEventEmitter","addListener","removeListener","FilterOperator","predicate","FilterSubscriber","DeMaterializeOperator","DeMaterializeSubscriber","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","mergeMap","concurrent","Number","POSITIVE_INFINITY","a","b","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","innerSubscriber","innerSubscription","innerSubscribe","shift","concatMap","materialize","MaterializeOperator","MaterializeSubscriber","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","AnonymousSubject","copy","asObservable","Action","work","state","delay","AsyncAction","pending","id","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errorValue","errored","actions","Scheduler","SchedulerAction","now","Date","AsyncScheduler","delegate","action","queue","QueueScheduler","QueueAction","ObserveOnSubscriber","arg","notification","scheduleMessage","ObserveOnMessage","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","noop","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","TakeOperator","total","TakeSubscriber","Thread","FileHashEvent","runWorker","workerConstructor","worker","incomingMessages$","self","input$","data","n","filter","dematerialize","workerIsUnitType","workUnit","getWorkerResult","workerPostMessage","postMessage","workerIsTransferableType","selectTransferables","FileHashWorker","output$","Infinity","fileEventType","file","timestamp","thread","readFileAsArrayBuffer","arrayBuffer","md5","digest","out","take","blob","Blob","reader","FileReader","onerror","onload","onloadend","readAsArrayBuffer","abort","ERROR","WINDOW","window","root","JS_MD5_NO_WINDOW","WEB_WORKER","NODE_JS","JS_MD5_NO_NODE_JS","process","versions","node","global","COMMON_JS","JS_MD5_NO_COMMON_JS","module","exports","AMD","define","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","split","EXTRA","SHIFT","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","buffer8","Uint8Array","Uint32Array","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Md5","update","createMethod","method","nodeWrap","type","crypto","eval","Buffer","nodeMethod","createHash","sharedMemory","h0","h1","h2","h3","start","bytes","hBytes","finalized","hashed","first","notString","code","charCodeAt","lastByteIndex","hash","finalize","c","d","bc","da","hex","base64","v1","v2","v3","base64Str"],"sourceRoot":"webpack:///","sources":["./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/dematerialize.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/materialize.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./src/app/hash-worker.types.ts","./projects/observable-webworker/src/lib/run-worker.ts","./src/app/file-hash.worker.ts","./node_modules/js-md5/src/md5.js"],"sourcesContent":["export function isFunction(x) {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nclass DeMaterializeOperator {\n call(subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n }\n}\nclass DeMaterializeSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n }\n _next(value) {\n value.observe(this.destination);\n }\n}\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n let subscription;\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n }\n catch (error) {\n innerSubscriber.error(error);\n }\n return subscription;\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nclass MaterializeOperator {\n call(subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n }\n}\nclass MaterializeSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n }\n _next(value) {\n this.destination.next(Notification.createNext(value));\n }\n _error(err) {\n const destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n }\n _complete() {\n const destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n }\n}\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport const queueScheduler = new QueueScheduler(QueueAction);\nexport const queue = queueScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { AsyncAction } from './AsyncAction';\nexport class QueueAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n schedule(state, delay = 0) {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n execute(state, delay) {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay);\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n return scheduler.flush(this);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay = 0) {\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexport class ObserveOnOperator {\n constructor(scheduler, delay = 0) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n call(subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\nexport class ObserveOnSubscriber extends Subscriber {\n constructor(destination, scheduler, delay = 0) {\n super(destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n static dispatch(arg) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n scheduleMessage(notification) {\n const destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n }\n _next(value) {\n this.scheduleMessage(Notification.createNext(value));\n }\n _error(err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n _complete() {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\nexport class ObserveOnMessage {\n constructor(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n}\n","import { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) {\n super();\n this.scheduler = scheduler;\n this._events = [];\n this._infiniteTimeWindow = false;\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n }\n else {\n this.next = this.nextTimeWindow;\n }\n }\n nextInfiniteTimeWindow(value) {\n if (!this.isStopped) {\n const _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n super.next(value);\n }\n nextTimeWindow(value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n super.next(value);\n }\n _subscribe(subscriber) {\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n }\n _getNow() {\n return (this.scheduler || queue).now();\n }\n _trimBufferThenGetEvents() {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = this._events;\n const eventsCount = _events.length;\n let spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n }\n}\nclass ReplayEvent {\n constructor(time, value) {\n this.time = time;\n this.value = value;\n }\n}\n","export function noop() { }\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","export interface HashWorkerMessage {\n file?: string;\n timestamp: Date;\n message: string;\n thread: Thread;\n fileEventType: FileHashEvent | null; // null if not a file event\n // values computed after emission\n millisSinceLast?: number;\n}\n\nexport enum Thread {\n WORKER = 'worker',\n MAIN = 'main',\n}\n\nexport enum FileHashEvent {\n SELECTED = 'selected',\n PICKED_UP = 'picked_up',\n FILE_RECEIVED = 'file_received',\n FILE_READ = 'file_read',\n HASH_COMPUTED = 'hash_computed',\n HASH_RECEIVED = 'hash_received',\n}\n","import { from, fromEvent, Notification, Observable, Subscription } from 'rxjs';\nimport { concatMap, dematerialize, filter, map, materialize } from 'rxjs/operators';\nimport { DoTransferableWork, DoWork, DoWorkUnit, WorkerMessageNotification } from './observable-worker.types';\n\nexport type ObservableWorkerConstructor = new (...args: any[]) => DoWork | DoWorkUnit;\n\n/** @internal */\nexport type WorkerPostMessageNotification = (message: Notification, tranferables?: Transferable[]) => void;\n\n/** @internal */\nexport function workerIsTransferableType(\n worker: DoWork | DoWorkUnit,\n): worker is DoTransferableWork {\n return !!worker.selectTransferables;\n}\n\n/** @internal */\nexport function workerIsUnitType(worker: DoWork | DoWorkUnit): worker is DoWorkUnit {\n return !!(worker as DoWorkUnit).workUnit;\n}\n\n/** @internal */\nexport function getWorkerResult(\n worker: DoWork | DoWorkUnit,\n incomingMessages$: Observable>,\n): Observable> {\n const input$ = incomingMessages$.pipe(\n map((e: WorkerMessageNotification): Notification => e.data),\n map((n: Notification) => new Notification(n.kind, n.value, n.error)),\n // ignore complete, the calling thread will manage termination of the stream\n filter(n => n.kind !== 'C'),\n dematerialize(),\n );\n\n return workerIsUnitType(worker)\n ? input$.pipe(concatMap(input => from(worker.workUnit(input)).pipe(materialize())))\n : worker.work(input$).pipe(materialize());\n}\n\nexport function runWorker(workerConstructor: ObservableWorkerConstructor): Subscription {\n const worker = new workerConstructor();\n\n const incomingMessages$ = fromEvent>(self, 'message');\n\n return getWorkerResult(worker, incomingMessages$).subscribe((notification: Notification) => {\n // type to workaround typescript trying to compile as non-webworker context\n const workerPostMessage = (postMessage as unknown) as WorkerPostMessageNotification;\n\n if (workerIsTransferableType(worker) && notification.hasValue) {\n workerPostMessage(notification, worker.selectTransferables(notification.value as O));\n } else {\n workerPostMessage(notification);\n }\n });\n}\n","import * as md5 from 'js-md5';\nimport { runWorker } from 'observable-webworker';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { map, take, tap } from 'rxjs/operators';\nimport { DoWorkUnit } from '../../projects/observable-webworker/src/lib/observable-worker.types';\nimport { FileHashEvent, HashWorkerMessage, Thread } from './hash-worker.types';\n\nexport class FileHashWorker implements DoWorkUnit {\n public workUnit(input: File): Observable {\n const output$: Subject = new ReplaySubject(Infinity);\n\n const log = (fileEventType: FileHashEvent, message: string): HashWorkerMessage => ({\n file: input.name,\n timestamp: new Date(),\n message,\n thread: Thread.WORKER,\n fileEventType,\n });\n\n output$.next(log(FileHashEvent.FILE_RECEIVED, `received file`));\n this.readFileAsArrayBuffer(input)\n .pipe(\n tap(() => output$.next(log(FileHashEvent.FILE_READ, `read file`))),\n map(arrayBuffer => md5(arrayBuffer)),\n map((digest: string): HashWorkerMessage => log(FileHashEvent.HASH_COMPUTED, `hash result: ${digest}`)),\n tap(out => {\n output$.next(out);\n output$.complete();\n }),\n take(1),\n )\n .subscribe();\n\n return output$;\n }\n\n private readFileAsArrayBuffer(blob: Blob): Observable {\n return new Observable(observer => {\n if (!(blob instanceof Blob)) {\n observer.error(new Error('`blob` must be an instance of File or Blob.'));\n return;\n }\n\n const reader = new FileReader();\n\n reader.onerror = err => observer.error(err);\n reader.onload = () => observer.next(reader.result as ArrayBuffer);\n reader.onloadend = () => observer.complete();\n\n reader.readAsArrayBuffer(blob);\n\n return () => reader.abort();\n });\n }\n}\n\nrunWorker(FileHashWorker);\n","/**\n * [js-md5]{@link https://github.com/emn178/js-md5}\n *\n * @namespace md5\n * @version 0.7.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_MD5_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [128, 32768, 8388608, -2147483648];\n var SHIFT = [0, 8, 16, 24];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n var blocks = [], buffer8;\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n buffer8 = new Uint8Array(buffer);\n blocks = new Uint32Array(buffer);\n }\n\n if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n /**\n * @method hex\n * @memberof md5\n * @description Output hash as hex string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} Hex string\n * @example\n * md5.hex('The quick brown fox jumps over the lazy dog');\n * // equal to\n * md5('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method digest\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.digest('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method array\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.array('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method arrayBuffer\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.buffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method base64\n * @memberof md5\n * @description Output hash as base64 string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} base64 string\n * @example\n * md5.base64('The quick brown fox jumps over the lazy dog');\n */\n var createOutputMethod = function (outputType) {\n return function (message) {\n return new Md5(true).update(message)[outputType]();\n };\n };\n\n /**\n * @method create\n * @memberof md5\n * @description Create Md5 object\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.create();\n */\n /**\n * @method update\n * @memberof md5\n * @description Create and update Md5 object\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n * // equal to\n * var hash = md5.create();\n * hash.update('The quick brown fox jumps over the lazy dog');\n */\n var createMethod = function () {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.create = function () {\n return new Md5();\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type);\n }\n return method;\n };\n\n var nodeWrap = function (method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash('md5').update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw ERROR;\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash('md5').update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n /**\n * Md5 class\n * @class Md5\n * @description This is internal class.\n * @see {@link md5.create}\n */\n function Md5(sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n this.buffer8 = buffer8;\n } else {\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n this.buffer8 = new Uint8Array(buffer);\n this.blocks = new Uint32Array(buffer);\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n }\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n /**\n * @method update\n * @memberof Md5\n * @instance\n * @description Update hash\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @see {@link md5.update}\n */\n Md5.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw ERROR;\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw ERROR;\n }\n }\n } else {\n throw ERROR;\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n var buffer8 = this.buffer8;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n buffer8[i++] = message[index];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n }\n } else {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n buffer8[i++] = code;\n } else if (code < 0x800) {\n buffer8[i++] = 0xc0 | (code >> 6);\n buffer8[i++] = 0x80 | (code & 0x3f);\n } else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | (code >> 12);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n buffer8[i++] = 0xf0 | (code >> 18);\n buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n }\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Md5.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[i >> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n };\n\n Md5.prototype.hash = function () {\n var a, b, c, d, bc, da, blocks = this.blocks;\n\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n } else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n\n a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n } else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n };\n\n /**\n * @method hex\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.hex();\n */\n Md5.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n\n return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];\n };\n\n /**\n * @method toString\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.toString();\n */\n Md5.prototype.toString = Md5.prototype.hex;\n\n /**\n * @method digest\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.digest}\n * @example\n * hash.digest();\n */\n Md5.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n return [\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF\n ];\n };\n\n /**\n * @method array\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.array}\n * @example\n * hash.array();\n */\n Md5.prototype.array = Md5.prototype.digest;\n\n /**\n * @method arrayBuffer\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.arrayBuffer}\n * @example\n * hash.arrayBuffer();\n */\n Md5.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(16);\n var blocks = new Uint32Array(buffer);\n blocks[0] = this.h0;\n blocks[1] = this.h1;\n blocks[2] = this.h2;\n blocks[3] = this.h3;\n return buffer;\n };\n\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.buffer}\n * @example\n * hash.buffer();\n */\n Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n /**\n * @method base64\n * @memberof Md5\n * @instance\n * @description Output hash as base64 string\n * @returns {String} base64 string\n * @see {@link md5.base64}\n * @example\n * hash.base64();\n */\n Md5.prototype.base64 = function () {\n var v1, v2, v3, base64Str = '', bytes = this.array();\n for (var i = 0; i < 15;) {\n v1 = bytes[i++];\n v2 = bytes[i++];\n v3 = bytes[i++];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +\n BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +\n BASE64_ENCODE_CHAR[v3 & 63];\n }\n v1 = bytes[i];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n BASE64_ENCODE_CHAR[(v1 << 4) & 63] +\n '==';\n return base64Str;\n };\n\n var exports = createMethod();\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n /**\n * @method md5\b\n * @description Md5 hash function, export to global in browsers.\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} md5 hashes\n * @example\n * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n *\n * // It also supports UTF-8 encoding\n * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n *\n * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n */\n root.md5 = exports;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,65]} \ No newline at end of file diff --git a/889.45d9b5ec7aeb4a2f.js b/889.45d9b5ec7aeb4a2f.js deleted file mode 100644 index 44e152f..0000000 --- a/889.45d9b5ec7aeb4a2f.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkobservable_webworker_demo=self.webpackChunkobservable_webworker_demo||[]).push([[889],{889:(s,o,c)=>{"use strict";var n=c(207);function d(r){return"function"==typeof r}let a=!1;const h={Promise:void 0,set useDeprecatedSynchronousErrorHandling(r){if(r){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else a&&console.log("RxJS: Back to a better error behavior. Thank you. <3");a=r},get useDeprecatedSynchronousErrorHandling(){return a}};function p(r){setTimeout(()=>{throw r},0)}const y={closed:!0,next(r){},error(r){if(h.useDeprecatedSynchronousErrorHandling)throw r;p(r)},complete(){}},U=Array.isArray||(r=>r&&"number"==typeof r.length);function W(r){return null!==r&&"object"==typeof r}const C=(()=>{function r(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((t,i)=>`${i+1}) ${t.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return r.prototype=Object.create(Error.prototype),r})();class _{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:t,_ctorUnsubscribe:i,_unsubscribe:u,_subscriptions:f}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,t instanceof _)t.remove(this);else if(null!==t)for(let l=0;le.concat(t instanceof C?t.errors:t),[])}_.EMPTY=((r=new _).closed=!0,r);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class E extends _{constructor(e,t,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=y;break;case 1:if(!e){this.destination=y;break}if("object"==typeof e){e instanceof E?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new z(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new z(this,e,t,i)}}[k](){return this}static create(e,t,i){const u=new E(e,t,i);return u.syncErrorThrowable=!1,u}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class z extends E{constructor(e,t,i,u){super(),this._parentSubscriber=e;let f,l=this;d(t)?f=t:t&&(f=t.next,i=t.error,u=t.complete,t!==y&&(l=Object.create(t),d(l.unsubscribe)&&this.add(l.unsubscribe.bind(l)),l.unsubscribe=this.unsubscribe.bind(this))),this._context=l,this._next=f,this._error=i,this._complete=u}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;h.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:i}=h;if(this._error)i&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)i?(t.syncErrorValue=e,t.syncErrorThrown=!0):p(e),this.unsubscribe();else{if(this.unsubscribe(),i)throw e;p(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);h.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(i){if(this.unsubscribe(),h.useDeprecatedSynchronousErrorHandling)throw i;p(i)}}__tryOrSetError(e,t,i){if(!h.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,i)}catch(u){return h.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=u,e.syncErrorThrown=!0,!0):(p(u),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const I="function"==typeof Symbol&&Symbol.observable||"@@observable";function ae(r){return r}let x=(()=>{class r{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(t){const i=new r;return i.source=this,i.operator=t,i}subscribe(t,i,u){const{operator:f}=this,l=function le(r,e,t){if(r){if(r instanceof E)return r;if(r[k])return r[k]()}return r||e||t?new E(r,e,t):new E(y)}(t,i,u);if(l.add(f?f.call(l,this.source):this.source||h.useDeprecatedSynchronousErrorHandling&&!l.syncErrorThrowable?this._subscribe(l):this._trySubscribe(l)),h.useDeprecatedSynchronousErrorHandling&&l.syncErrorThrowable&&(l.syncErrorThrowable=!1,l.syncErrorThrown))throw l.syncErrorValue;return l}_trySubscribe(t){try{return this._subscribe(t)}catch(i){h.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=i),function he(r){for(;r;){const{closed:e,destination:t,isStopped:i}=r;if(e||i)return!1;r=t&&t instanceof E?t:null}return!0}(t)?t.error(i):console.warn(i)}}forEach(t,i){return new(i=Y(i))((u,f)=>{let l;l=this.subscribe(b=>{try{t(b)}catch(S){f(S),l&&l.unsubscribe()}},f,u)})}_subscribe(t){const{source:i}=this;return i&&i.subscribe(t)}[I](){return this}pipe(...t){return 0===t.length?this:function V(r){return 0===r.length?ae:1===r.length?r[0]:function(t){return r.reduce((i,u)=>u(i),t)}}(t)(this)}toPromise(t){return new(t=Y(t))((i,u)=>{let f;this.subscribe(l=>f=l,l=>u(l),()=>i(f))})}}return r.create=e=>new r(e),r})();function Y(r){if(r||(r=h.Promise||Promise),!r)throw new Error("no Promise impl found");return r}const fe=new x(r=>r.complete());function j(r){return r?function de(r){return new x(e=>r.schedule(()=>e.complete()))}(r):fe}const L=r=>e=>{for(let t=0,i=r.length;t{const i=new _;let u=0;return i.add(e.schedule(function(){u!==r.length?(t.next(r[u++]),t.closed||i.add(this.schedule())):t.complete()})),i})}function ye({error:r,subscriber:e}){e.error(r)}class w{constructor(e,t,i){this.kind=e,this.value=t,this.error=i,this.hasValue="N"===e}observe(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}}do(e,t,i){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return i&&i()}}accept(e,t,i){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,i)}toObservable(){switch(this.kind){case"N":return function _e(...r){let e=r[r.length-1];return function pe(r){return r&&"function"==typeof r.schedule}(e)?(r.pop(),N(r,e)):function be(r,e){return e?N(r,e):new x(L(r))}(r)}(this.value);case"E":return function Ee(r,e){return new x(e?t=>e.schedule(ye,0,{error:r,subscriber:t}):t=>t.error(r))}(this.error);case"C":return j()}throw new Error("unexpected notification kind value")}static createNext(e){return void 0!==e?new w("N",e):w.undefinedValueNotification}static createError(e){return new w("E",void 0,e)}static createComplete(){return w.completeNotification}}w.completeNotification=new w("C"),w.undefinedValueNotification=new w("N",void 0);const O=function we(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}(),J=r=>r&&"number"==typeof r.length&&"function"!=typeof r;function K(r){return!!r&&"function"!=typeof r.subscribe&&"function"==typeof r.then}const $=r=>{if(r&&"function"==typeof r[I])return(r=>e=>{const t=r[I]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)})(r);if(J(r))return L(r);if(K(r))return(r=>e=>(r.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,p),e))(r);if(r&&"function"==typeof r[O])return(r=>e=>{const t=r[O]();for(;;){let i;try{i=t.next()}catch(u){return e.error(u),e}if(i.done){e.complete();break}if(e.next(i.value),e.closed)break}return"function"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e})(r);{const t=`You provided ${W(r)?"an invalid object":`'${r}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(t)}};function q(r,e){return e?function Te(r,e){if(null!=r){if(function ge(r){return r&&"function"==typeof r[I]}(r))return function Ae(r,e){return new x(t=>{const i=new _;return i.add(e.schedule(()=>{const u=r[I]();i.add(u.subscribe({next(f){i.add(e.schedule(()=>t.next(f)))},error(f){i.add(e.schedule(()=>t.error(f)))},complete(){i.add(e.schedule(()=>t.complete()))}}))})),i})}(r,e);if(K(r))return function Re(r,e){return new x(t=>{const i=new _;return i.add(e.schedule(()=>r.then(u=>{i.add(e.schedule(()=>{t.next(u),i.add(e.schedule(()=>t.complete()))}))},u=>{i.add(e.schedule(()=>t.error(u)))}))),i})}(r,e);if(J(r))return N(r,e);if(function ve(r){return r&&"function"==typeof r[O]}(r)||"string"==typeof r)return function Fe(r,e){if(!r)throw new Error("Iterable cannot be null");return new x(t=>{const i=new _;let u;return i.add(()=>{u&&"function"==typeof u.return&&u.return()}),i.add(e.schedule(()=>{u=r[O](),i.add(e.schedule(function(){if(t.closed)return;let f,l;try{const b=u.next();f=b.value,l=b.done}catch(b){return void t.error(b)}l?t.complete():(t.next(f),this.schedule())}))})),i})}(r,e)}throw new TypeError((null!==r&&typeof r||r)+" is not observable")}(r,e):r instanceof x?r:new x($(r))}function F(r,e){return function(i){if("function"!=typeof r)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Ie(r,e))}}class Ie{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new He(e,this.project,this.thisArg))}}class He extends E{constructor(e,t,i){super(e),this.project=t,this.count=0,this.thisArg=i||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(t)}}function G(r,e,t,i){return d(t)&&(i=t,t=void 0),i?G(r,e,t).pipe(F(u=>U(u)?i(...u):i(u))):new x(u=>{Q(r,e,function f(l){u.next(arguments.length>1?Array.prototype.slice.call(arguments):l)},u,t)})}function Q(r,e,t,i,u){let f;if(function Oe(r){return r&&"function"==typeof r.addEventListener&&"function"==typeof r.removeEventListener}(r)){const l=r;r.addEventListener(e,t,u),f=()=>l.removeEventListener(e,t,u)}else if(function ke(r){return r&&"function"==typeof r.on&&"function"==typeof r.off}(r)){const l=r;r.on(e,t),f=()=>l.off(e,t)}else if(function Ce(r){return r&&"function"==typeof r.addListener&&"function"==typeof r.removeListener}(r)){const l=r;r.addListener(e,t),f=()=>l.removeListener(e,t)}else{if(!r||!r.length)throw new TypeError("Invalid event target");for(let l=0,b=r.length;li.pipe(Z((u,f)=>q(r(u,f)).pipe(F((l,b)=>e(u,l,f,b))),t)):("number"==typeof e&&(t=e),i=>i.lift(new Ve(r,t)))}class Ve{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new Ye(e,this.project,this.concurrent))}}class Ye extends Xe{constructor(e,t,i=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function je(r,e){return Z(r,e,1)}function ee(){return function(e){return e.lift(new Le)}}class Le{call(e,t){return t.subscribe(new Je(e))}}class Je extends E{constructor(e){super(e)}_next(e){this.destination.next(w.createNext(e))}_error(e){const t=this.destination;t.next(w.createError(e)),t.complete()}_complete(){const e=this.destination;e.next(w.createComplete()),e.complete()}}const g=(()=>{function r(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return r.prototype=Object.create(Error.prototype),r})();class re extends _{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const i=t.indexOf(this.subscriber);-1!==i&&t.splice(i,1)}}class Qe extends E{constructor(e){super(e),this.destination=e}}let se=(()=>{class r extends x{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new Qe(this)}lift(t){const i=new ie(this,this);return i.operator=t,i}next(t){if(this.closed)throw new g;if(!this.isStopped){const{observers:i}=this,u=i.length,f=i.slice();for(let l=0;lnew ie(e,t),r})();class ie extends se{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):_.EMPTY}}class Ze extends _{constructor(e,t){super()}schedule(e,t=0){return this}}class et extends Ze{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const i=this.id,u=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(u,i,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(u,this.id,t),this}requestAsyncId(e,t,i=0){return setInterval(e.flush.bind(e,this),i)}recycleAsyncId(e,t,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return t;clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(e,t);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let u,i=!1;try{this.work(e)}catch(f){i=!0,u=!!f&&f||new Error(f)}if(i)return this.unsubscribe(),u}_unsubscribe(){const e=this.id,t=this.scheduler,i=t.actions,u=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==u&&i.splice(u,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}let ne=(()=>{class r{constructor(t,i=r.now){this.SchedulerAction=t,this.now=i}schedule(t,i=0,u){return new this.SchedulerAction(this,t).schedule(u,i)}}return r.now=()=>Date.now(),r})();class A extends ne{constructor(e,t=ne.now){super(e,()=>A.delegate&&A.delegate!==this?A.delegate.now():t()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(e,t=0,i){return A.delegate&&A.delegate!==this?A.delegate.schedule(e,t,i):super.schedule(e,t,i)}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let i;this.active=!0;do{if(i=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,i){for(;e=t.shift();)e.unsubscribe();throw i}}}const st=new class rt extends A{}(class tt extends et{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}schedule(e,t=0){return t>0?super.schedule(e,t):(this.delay=t,this.state=e,this.scheduler.flush(this),this)}execute(e,t){return t>0||this.closed?super.execute(e,t):this._execute(e,t)}requestAsyncId(e,t,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(e,t,i):e.flush(this)}});class M extends E{constructor(e,t,i=0){super(e),this.scheduler=t,this.delay=i}static dispatch(e){const{notification:t,destination:i}=e;t.observe(i),this.unsubscribe()}scheduleMessage(e){this.destination.add(this.scheduler.schedule(M.dispatch,this.delay,new nt(e,this.destination)))}_next(e){this.scheduleMessage(w.createNext(e))}_error(e){this.scheduleMessage(w.createError(e)),this.unsubscribe()}_complete(){this.scheduleMessage(w.createComplete()),this.unsubscribe()}}class nt{constructor(e,t){this.notification=e,this.destination=t}}class ot extends se{constructor(e=Number.POSITIVE_INFINITY,t=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=e<1?1:e,this._windowTime=t<1?1:t,t===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(e){if(!this.isStopped){const t=this._events;t.push(e),t.length>this._bufferSize&&t.shift()}super.next(e)}nextTimeWindow(e){this.isStopped||(this._events.push(new ct(this._getNow(),e)),this._trimBufferThenGetEvents()),super.next(e)}_subscribe(e){const t=this._infiniteTimeWindow,i=t?this._events:this._trimBufferThenGetEvents(),u=this.scheduler,f=i.length;let l;if(this.closed)throw new g;if(this.isStopped||this.hasError?l=_.EMPTY:(this.observers.push(e),l=new re(this,e)),u&&e.add(e=new M(e,u)),t)for(let b=0;bt&&(l=Math.max(l,f-t)),l>0&&u.splice(0,l),u}}class ct{constructor(e,t){this.time=e,this.value=t}}function R(){}function oe(r,e,t){return function(u){return u.lift(new ut(r,e,t))}}class ut{constructor(e,t,i){this.nextOrObserver=e,this.error=t,this.complete=i}call(e,t){return t.subscribe(new ht(e,this.nextOrObserver,this.error,this.complete))}}class ht extends E{constructor(e,t,i,u){super(e),this._tapNext=R,this._tapError=R,this._tapComplete=R,this._tapError=i||R,this._tapComplete=u||R,d(t)?(this._context=this,this._tapNext=t):t&&(this._context=t,this._tapNext=t.next||R,this._tapError=t.error||R,this._tapComplete=t.complete||R)}_next(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}const lt=(()=>{function r(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return r.prototype=Object.create(Error.prototype),r})();class ft{constructor(e){if(this.total=e,this.total<0)throw new lt}call(e,t){return t.subscribe(new dt(e,this.total))}}class dt extends E{constructor(e,t){super(e),this.total=t,this.count=0}_next(e){const t=this.total,i=++this.count;i<=t&&(this.destination.next(e),i===t&&(this.destination.complete(),this.unsubscribe()))}}var D=(()=>(function(r){r.WORKER="worker",r.MAIN="main"}(D||(D={})),D))(),v=(()=>(function(r){r.SELECTED="selected",r.PICKED_UP="picked_up",r.FILE_RECEIVED="file_received",r.FILE_READ="file_read",r.HASH_COMPUTED="hash_computed",r.HASH_RECEIVED="hash_received"}(v||(v={})),v))();!function te(r){const e=new r,t=G(self,"message");return function qe(r,e){const t=e.pipe(F(i=>i.data),F(i=>new w(i.kind,i.value,i.error)),function Me(r,e){return function(i){return i.lift(new De(r,e))}}(i=>"C"!==i.kind),function Ne(){return function(e){return e.lift(new Pe)}}());return function $e(r){return!!r.workUnit}(r)?t.pipe(je(i=>q(r.workUnit(i)).pipe(ee()))):r.work(t).pipe(ee())}(e,t).subscribe(i=>{const u=postMessage;(function Ke(r){return!!r.selectTransferables})(e)&&i.hasValue?u(i,e.selectTransferables(i.value)):u(i)})}(class pt{workUnit(e){const t=new ot(1/0),i=(u,f)=>({file:e.name,timestamp:new Date,message:f,thread:D.WORKER,fileEventType:u});return t.next(i(v.FILE_RECEIVED,"received file")),this.readFileAsArrayBuffer(e).pipe(oe(()=>t.next(i(v.FILE_READ,"read file"))),F(u=>n(u)),F(u=>i(v.HASH_COMPUTED,`hash result: ${u}`)),oe(u=>{t.next(u),t.complete()}),function at(r){return e=>0===r?j():e.lift(new ft(r))}(1)).subscribe(),t}readFileAsArrayBuffer(e){return new x(t=>{if(!(e instanceof Blob))return void t.error(new Error("`blob` must be an instance of File or Blob."));const i=new FileReader;return i.onerror=u=>t.error(u),i.onload=()=>t.next(i.result),i.onloadend=()=>t.complete(),i.readAsArrayBuffer(e),()=>i.abort()})}})},207:(module,exports,__webpack_require__)=>{var __WEBPACK_AMD_DEFINE_RESULT__;(function(){"use strict";var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=global:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&module.exports,AMD=__webpack_require__.amdO,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}(root.JS_MD5_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(s){return"[object Array]"===Object.prototype.toString.call(s)}),ARRAY_BUFFER&&(root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(s){return"object"==typeof s&&s.buffer&&s.buffer.constructor===ArrayBuffer});var createOutputMethod=function(s){return function(o){return new Md5(!0).update(o)[s]()}},createMethod=function(){var s=createOutputMethod("hex");NODE_JS&&(s=nodeWrap(s)),s.create=function(){return new Md5},s.update=function(n){return s.create().update(n)};for(var o=0;o>2]|=s[d]<>6,y[a++]=128|63&n):n<55296||n>=57344?(y[a++]=224|n>>12,y[a++]=128|n>>6&63,y[a++]=128|63&n):(n=65536+((1023&n)<<10|1023&s.charCodeAt(++d)),y[a++]=240|n>>18,y[a++]=128|n>>12&63,y[a++]=128|n>>6&63,y[a++]=128|63&n);else for(a=this.start;d>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(p[a>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=64?(this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,o=this.lastByteIndex;s[o>>2]|=EXTRA[3&o],o>=56&&(this.hashed||this.hash(),s[0]=s[16],s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.bytes<<3,s[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var s,o,c,n,d,a,h=this.blocks;this.first?o=((o=((s=((s=h[0]-680876937)<<7|s>>>25)-271733879<<0)^(c=((c=(-271733879^(n=((n=(-1732584194^2004318071&s)+h[1]-117830708)<<12|n>>>20)+s<<0)&(-271733879^s))+h[2]-1126478375)<<17|c>>>15)+n<<0)&(n^s))+h[3]-1316259209)<<22|o>>>10)+c<<0:(s=this.h0,o=this.h1,o=((o+=((s=((s+=((n=this.h3)^o&((c=this.h2)^n))+h[0]-680876936)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[1]-389564586)<<12|n>>>20)+s<<0)&(s^o))+h[2]+606105819)<<17|c>>>15)+n<<0)&(n^s))+h[3]-1044525330)<<22|o>>>10)+c<<0),o=((o+=((s=((s+=(n^o&(c^n))+h[4]-176418897)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[5]+1200080426)<<12|n>>>20)+s<<0)&(s^o))+h[6]-1473231341)<<17|c>>>15)+n<<0)&(n^s))+h[7]-45705983)<<22|o>>>10)+c<<0,o=((o+=((s=((s+=(n^o&(c^n))+h[8]+1770035416)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[9]-1958414417)<<12|n>>>20)+s<<0)&(s^o))+h[10]-42063)<<17|c>>>15)+n<<0)&(n^s))+h[11]-1990404162)<<22|o>>>10)+c<<0,o=((o+=((s=((s+=(n^o&(c^n))+h[12]+1804603682)<<7|s>>>25)+o<<0)^(c=((c+=(o^(n=((n+=(c^s&(o^c))+h[13]-40341101)<<12|n>>>20)+s<<0)&(s^o))+h[14]-1502002290)<<17|c>>>15)+n<<0)&(n^s))+h[15]+1236535329)<<22|o>>>10)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[1]-165796510)<<5|s>>>27)+o<<0)^o))+h[6]-1069501632)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[11]+643717713)<<14|c>>>18)+n<<0)^n))+h[0]-373897302)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[5]-701558691)<<5|s>>>27)+o<<0)^o))+h[10]+38016083)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[15]-660478335)<<14|c>>>18)+n<<0)^n))+h[4]-405537848)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[9]+568446438)<<5|s>>>27)+o<<0)^o))+h[14]-1019803690)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[3]-187363961)<<14|c>>>18)+n<<0)^n))+h[8]+1163531501)<<20|o>>>12)+c<<0,o=((o+=((n=((n+=(o^c&((s=((s+=(c^n&(o^c))+h[13]-1444681467)<<5|s>>>27)+o<<0)^o))+h[2]-51403784)<<9|n>>>23)+s<<0)^s&((c=((c+=(s^o&(n^s))+h[7]+1735328473)<<14|c>>>18)+n<<0)^n))+h[12]-1926607734)<<20|o>>>12)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[5]-378558)<<4|s>>>28)+o<<0))+h[8]-2022574463)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[11]+1839030562)<<16|c>>>16)+n<<0))+h[14]-35309556)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[1]-1530992060)<<4|s>>>28)+o<<0))+h[4]+1272893353)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[7]-155497632)<<16|c>>>16)+n<<0))+h[10]-1094730640)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[13]+681279174)<<4|s>>>28)+o<<0))+h[0]-358537222)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[3]-722521979)<<16|c>>>16)+n<<0))+h[6]+76029189)<<23|o>>>9)+c<<0,o=((o+=((a=(n=((n+=((d=o^c)^(s=((s+=(d^n)+h[9]-640364487)<<4|s>>>28)+o<<0))+h[12]-421815835)<<11|n>>>21)+s<<0)^s)^(c=((c+=(a^o)+h[15]+530742520)<<16|c>>>16)+n<<0))+h[2]-995338651)<<23|o>>>9)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[0]-198630844)<<6|s>>>26)+o<<0)|~c))+h[7]+1126891415)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[14]-1416354905)<<15|c>>>17)+n<<0)|~s))+h[5]-57434055)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[12]+1700485571)<<6|s>>>26)+o<<0)|~c))+h[3]-1894986606)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[10]-1051523)<<15|c>>>17)+n<<0)|~s))+h[1]-2054922799)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[8]+1873313359)<<6|s>>>26)+o<<0)|~c))+h[15]-30611744)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[6]-1560198380)<<15|c>>>17)+n<<0)|~s))+h[13]+1309151649)<<21|o>>>11)+c<<0,o=((o+=((n=((n+=(o^((s=((s+=(c^(o|~n))+h[4]-145523070)<<6|s>>>26)+o<<0)|~c))+h[11]-1120210379)<<10|n>>>22)+s<<0)^((c=((c+=(s^(n|~o))+h[2]+718787259)<<15|c>>>17)+n<<0)|~s))+h[9]-343485551)<<21|o>>>11)+c<<0,this.first?(this.h0=s+1732584193<<0,this.h1=o-271733879<<0,this.h2=c-1732584194<<0,this.h3=n+271733878<<0,this.first=!1):(this.h0=this.h0+s<<0,this.h1=this.h1+o<<0,this.h2=this.h2+c<<0,this.h3=this.h3+n<<0)},Md5.prototype.hex=function(){this.finalize();var s=this.h0,o=this.h1,c=this.h2,n=this.h3;return HEX_CHARS[s>>4&15]+HEX_CHARS[15&s]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[15&o]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[c>>4&15]+HEX_CHARS[15&c]+HEX_CHARS[c>>12&15]+HEX_CHARS[c>>8&15]+HEX_CHARS[c>>20&15]+HEX_CHARS[c>>16&15]+HEX_CHARS[c>>28&15]+HEX_CHARS[c>>24&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[15&n]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var s=this.h0,o=this.h1,c=this.h2,n=this.h3;return[255&s,s>>8&255,s>>16&255,s>>24&255,255&o,o>>8&255,o>>16&255,o>>24&255,255&c,c>>8&255,c>>16&255,c>>24&255,255&n,n>>8&255,n>>16&255,n>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(16),o=new Uint32Array(s);return o[0]=this.h0,o[1]=this.h1,o[2]=this.h2,o[3]=this.h3,s},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var s,o,c,n="",d=this.array(),a=0;a<15;)s=d[a++],o=d[a++],c=d[a++],n+=BASE64_ENCODE_CHAR[s>>>2]+BASE64_ENCODE_CHAR[63&(s<<4|o>>>4)]+BASE64_ENCODE_CHAR[63&(o<<2|c>>>6)]+BASE64_ENCODE_CHAR[63&c];return n+(BASE64_ENCODE_CHAR[(s=d[a])>>>2]+BASE64_ENCODE_CHAR[s<<4&63]+"==")};var exports=createMethod();COMMON_JS?module.exports=exports:(root.md5=exports,AMD&&(__WEBPACK_AMD_DEFINE_RESULT__=function(){return exports}.call(exports,__webpack_require__,exports,module),void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))})()}}]); -//# sourceMappingURL=889.45d9b5ec7aeb4a2f.js.map \ No newline at end of file diff --git a/889.45d9b5ec7aeb4a2f.js.map b/889.45d9b5ec7aeb4a2f.js.map deleted file mode 100644 index 5f1755b..0000000 --- a/889.45d9b5ec7aeb4a2f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","undefined","useDeprecatedSynchronousErrorHandling","value","error","Error","console","warn","stack","log","err","setTimeout","empty","closed","next","hostReportError","complete","isArray","Array","length","UnsubscriptionError","errors","call","this","message","map","i","toString","join","name","UnsubscriptionErrorImpl","prototype","Object","create","constructor","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","Subscription","remove","index","isFunction","e","flattenUnsubscriptionErrors","len","sub","isObject","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Symbol","Math","random","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","emptyObserver","Subscriber","SafeSubscriber","k","rxSubscriberSymbol","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","canReportError","forEach","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","pipe","operations","fns","identity","input","prev","pipeFromArray","toPromise","scheduler","schedule","emptyScheduled","subscribeToArray","array","kind","hasValue","observe","do","accept","toObservable","args","isScheduler","pop","scheduleArray","fromArray","of","dispatch","throwError","Notification","undefinedValueNotification","completeNotification","iterator","getSymbolIterator","isArrayLike","then","subscribeTo","result","obj","obs","TypeError","subscribeToObservable","isPromise","promise","subscribeToPromise","Symbol_iterator","iterable","item","done","return","subscribeToIterable","msg","isInteropObservable","scheduleObservable","schedulePromise","isIterable","scheduleIterable","scheduled","project","thisArg","MapOperator","MapSubscriber","count","target","eventName","options","resultSelector","fromEvent","setupSubscription","slice","sourceObj","handler","addEventListener","removeEventListener","isEventTarget","on","off","isJQueryStyleEventEmitter","addListener","removeListener","isNodeStyleEventEmitter","predicate","FilterSubscriber","DeMaterializeSubscriber","notifyNext","notifyError","notifyComplete","innerValue","concurrent","Number","POSITIVE_INFINITY","mergeMap","a","from","b","ii","MergeMapOperator","MergeMapSubscriber","SimpleOuterSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","innerSubscriber","SimpleInnerSubscriber","innerSubscription","innerSubscribe","shift","MaterializeOperator","MaterializeSubscriber","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","subject","observers","subscriberIndex","Subject","hasError","thrownError","SubjectSubscriber","AnonymousSubject","copy","SubjectSubscription","asObservable","work","state","delay","Action","pending","id","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errorValue","errored","actions","Scheduler","SchedulerAction","now","Date","AsyncScheduler","delegate","action","queue","AsyncAction","arg","notification","scheduleMessage","ObserveOnSubscriber","ObserveOnMessage","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","t","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","DoOperator","TapSubscriber","_tapNext","noop","_tapError","_tapComplete","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","total","TakeSubscriber","Thread","FileHashEvent","workerConstructor","worker","incomingMessages$","self","input$","data","n","FilterOperator","filter","DeMaterializeOperator","dematerialize","workUnit","workerIsUnitType","concatMap","materialize","getWorkerResult","workerPostMessage","postMessage","selectTransferables","workerIsTransferableType","runWorker","output$","ReplaySubject","Infinity","fileEventType","file","timestamp","thread","readFileAsArrayBuffer","tap","arrayBuffer","md5","digest","out","TakeOperator","take","blob","Blob","reader","FileReader","onerror","onload","onloadend","readAsArrayBuffer","abort","ERROR","WINDOW","window","root","JS_MD5_NO_WINDOW","WEB_WORKER","NODE_JS","JS_MD5_NO_NODE_JS","process","versions","node","global","COMMON_JS","JS_MD5_NO_COMMON_JS","module","exports","AMD","define","ARRAY_BUFFER","JS_MD5_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","split","EXTRA","SHIFT","OUTPUT_TYPES","BASE64_ENCODE_CHAR","blocks","buffer8","Uint8Array","Uint32Array","JS_MD5_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Md5","update","createMethod","method","nodeWrap","type","crypto","eval","Buffer","nodeMethod","createHash","sharedMemory","h0","h1","h2","h3","start","bytes","hBytes","finalized","hashed","first","notString","code","charCodeAt","lastByteIndex","hash","finalize","c","d","bc","da","hex","base64","v1","v2","v3","base64Str"],"sources":["./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/dematerialize.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/materialize.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./src/app/hash-worker.types.ts","./projects/observable-webworker/src/lib/run-worker.ts","./src/app/file-hash.worker.ts","./node_modules/js-md5/src/md5.js"],"sourcesContent":["export function isFunction(x) {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nclass DeMaterializeOperator {\n call(subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n }\n}\nclass DeMaterializeSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n }\n _next(value) {\n value.observe(this.destination);\n }\n}\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nclass MaterializeOperator {\n call(subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n }\n}\nclass MaterializeSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n }\n _next(value) {\n this.destination.next(Notification.createNext(value));\n }\n _error(err) {\n const destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n }\n _complete() {\n const destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n }\n}\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport const queueScheduler = new QueueScheduler(QueueAction);\nexport const queue = queueScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { AsyncAction } from './AsyncAction';\nexport class QueueAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n schedule(state, delay = 0) {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n execute(state, delay) {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay);\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n return scheduler.flush(this);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay = 0) {\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexport class ObserveOnOperator {\n constructor(scheduler, delay = 0) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n call(subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\nexport class ObserveOnSubscriber extends Subscriber {\n constructor(destination, scheduler, delay = 0) {\n super(destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n static dispatch(arg) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n scheduleMessage(notification) {\n const destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n }\n _next(value) {\n this.scheduleMessage(Notification.createNext(value));\n }\n _error(err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n _complete() {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\nexport class ObserveOnMessage {\n constructor(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n}\n","import { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) {\n super();\n this.scheduler = scheduler;\n this._events = [];\n this._infiniteTimeWindow = false;\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n }\n else {\n this.next = this.nextTimeWindow;\n }\n }\n nextInfiniteTimeWindow(value) {\n if (!this.isStopped) {\n const _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n super.next(value);\n }\n nextTimeWindow(value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n super.next(value);\n }\n _subscribe(subscriber) {\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n }\n _getNow() {\n return (this.scheduler || queue).now();\n }\n _trimBufferThenGetEvents() {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = this._events;\n const eventsCount = _events.length;\n let spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n }\n}\nclass ReplayEvent {\n constructor(time, value) {\n this.time = time;\n this.value = value;\n }\n}\n","export function noop() { }\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","export interface HashWorkerMessage {\n file?: string;\n timestamp: Date;\n message: string;\n thread: Thread;\n fileEventType: FileHashEvent | null; // null if not a file event\n // values computed after emission\n millisSinceLast?: number;\n}\n\nexport enum Thread {\n WORKER = 'worker',\n MAIN = 'main',\n}\n\nexport enum FileHashEvent {\n SELECTED = 'selected',\n PICKED_UP = 'picked_up',\n FILE_RECEIVED = 'file_received',\n FILE_READ = 'file_read',\n HASH_COMPUTED = 'hash_computed',\n HASH_RECEIVED = 'hash_received',\n}\n","import { from, fromEvent, Notification, Observable, Subscription } from 'rxjs';\nimport { concatMap, dematerialize, filter, map, materialize } from 'rxjs/operators';\nimport { DoTransferableWork, DoWork, DoWorkUnit, WorkerMessageNotification } from './observable-worker.types';\n\nexport type ObservableWorkerConstructor = new (...args: any[]) => DoWork | DoWorkUnit;\n\n/** @internal */\nexport type WorkerPostMessageNotification = (message: Notification, tranferables?: Transferable[]) => void;\n\n/** @internal */\nexport function workerIsTransferableType(\n worker: DoWork | DoWorkUnit,\n): worker is DoTransferableWork {\n return !!worker.selectTransferables;\n}\n\n/** @internal */\nexport function workerIsUnitType(worker: DoWork | DoWorkUnit): worker is DoWorkUnit {\n return !!(worker as DoWorkUnit).workUnit;\n}\n\n/** @internal */\nexport function getWorkerResult(\n worker: DoWork | DoWorkUnit,\n incomingMessages$: Observable>,\n): Observable> {\n const input$ = incomingMessages$.pipe(\n map((e: WorkerMessageNotification): Notification => e.data),\n map((n: Notification) => new Notification(n.kind, n.value, n.error)),\n // ignore complete, the calling thread will manage termination of the stream\n filter(n => n.kind !== 'C'),\n dematerialize(),\n );\n\n return workerIsUnitType(worker)\n ? input$.pipe(concatMap(input => from(worker.workUnit(input)).pipe(materialize())))\n : worker.work(input$).pipe(materialize());\n}\n\nexport function runWorker(workerConstructor: ObservableWorkerConstructor): Subscription {\n const worker = new workerConstructor();\n\n const incomingMessages$ = fromEvent>(self, 'message');\n\n return getWorkerResult(worker, incomingMessages$).subscribe((notification: Notification) => {\n // type to workaround typescript trying to compile as non-webworker context\n const workerPostMessage = (postMessage as unknown) as WorkerPostMessageNotification;\n\n if (workerIsTransferableType(worker) && notification.hasValue) {\n workerPostMessage(notification, worker.selectTransferables(notification.value as O));\n } else {\n workerPostMessage(notification);\n }\n });\n}\n","import * as md5 from 'js-md5';\nimport { runWorker } from 'observable-webworker';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { map, take, tap } from 'rxjs/operators';\nimport { DoWorkUnit } from '../../projects/observable-webworker/src/lib/observable-worker.types';\nimport { FileHashEvent, HashWorkerMessage, Thread } from './hash-worker.types';\n\nexport class FileHashWorker implements DoWorkUnit {\n public workUnit(input: File): Observable {\n const output$: Subject = new ReplaySubject(Infinity);\n\n const log = (fileEventType: FileHashEvent, message: string): HashWorkerMessage => ({\n file: input.name,\n timestamp: new Date(),\n message,\n thread: Thread.WORKER,\n fileEventType,\n });\n\n output$.next(log(FileHashEvent.FILE_RECEIVED, `received file`));\n this.readFileAsArrayBuffer(input)\n .pipe(\n tap(() => output$.next(log(FileHashEvent.FILE_READ, `read file`))),\n map(arrayBuffer => md5(arrayBuffer)),\n map((digest: string): HashWorkerMessage => log(FileHashEvent.HASH_COMPUTED, `hash result: ${digest}`)),\n tap(out => {\n output$.next(out);\n output$.complete();\n }),\n take(1),\n )\n .subscribe();\n\n return output$;\n }\n\n private readFileAsArrayBuffer(blob: Blob): Observable {\n return new Observable(observer => {\n if (!(blob instanceof Blob)) {\n observer.error(new Error('`blob` must be an instance of File or Blob.'));\n return;\n }\n\n const reader = new FileReader();\n\n reader.onerror = err => observer.error(err);\n reader.onload = () => observer.next(reader.result as ArrayBuffer);\n reader.onloadend = () => observer.complete();\n\n reader.readAsArrayBuffer(blob);\n\n return () => reader.abort();\n });\n }\n}\n\nrunWorker(FileHashWorker);\n","/**\n * [js-md5]{@link https://github.com/emn178/js-md5}\n *\n * @namespace md5\n * @version 0.7.3\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_MD5_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [128, 32768, 8388608, -2147483648];\n var SHIFT = [0, 8, 16, 24];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];\n var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n var blocks = [], buffer8;\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n buffer8 = new Uint8Array(buffer);\n blocks = new Uint32Array(buffer);\n }\n\n if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n /**\n * @method hex\n * @memberof md5\n * @description Output hash as hex string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} Hex string\n * @example\n * md5.hex('The quick brown fox jumps over the lazy dog');\n * // equal to\n * md5('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method digest\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.digest('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method array\n * @memberof md5\n * @description Output hash as bytes array\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Array} Bytes array\n * @example\n * md5.array('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method arrayBuffer\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof md5\n * @description Output hash as ArrayBuffer\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {ArrayBuffer} ArrayBuffer\n * @example\n * md5.buffer('The quick brown fox jumps over the lazy dog');\n */\n /**\n * @method base64\n * @memberof md5\n * @description Output hash as base64 string\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} base64 string\n * @example\n * md5.base64('The quick brown fox jumps over the lazy dog');\n */\n var createOutputMethod = function (outputType) {\n return function (message) {\n return new Md5(true).update(message)[outputType]();\n };\n };\n\n /**\n * @method create\n * @memberof md5\n * @description Create Md5 object\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.create();\n */\n /**\n * @method update\n * @memberof md5\n * @description Create and update Md5 object\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @example\n * var hash = md5.update('The quick brown fox jumps over the lazy dog');\n * // equal to\n * var hash = md5.create();\n * hash.update('The quick brown fox jumps over the lazy dog');\n */\n var createMethod = function () {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.create = function () {\n return new Md5();\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type);\n }\n return method;\n };\n\n var nodeWrap = function (method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash('md5').update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw ERROR;\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash('md5').update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n /**\n * Md5 class\n * @class Md5\n * @description This is internal class.\n * @see {@link md5.create}\n */\n function Md5(sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n this.buffer8 = buffer8;\n } else {\n if (ARRAY_BUFFER) {\n var buffer = new ArrayBuffer(68);\n this.buffer8 = new Uint8Array(buffer);\n this.blocks = new Uint32Array(buffer);\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n }\n this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n /**\n * @method update\n * @memberof Md5\n * @instance\n * @description Update hash\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {Md5} Md5 object.\n * @see {@link md5.update}\n */\n Md5.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw ERROR;\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw ERROR;\n }\n }\n } else {\n throw ERROR;\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n var buffer8 = this.buffer8;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n buffer8[i++] = message[index];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n }\n } else {\n if (ARRAY_BUFFER) {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n buffer8[i++] = code;\n } else if (code < 0x800) {\n buffer8[i++] = 0xc0 | (code >> 6);\n buffer8[i++] = 0x80 | (code & 0x3f);\n } else if (code < 0xd800 || code >= 0xe000) {\n buffer8[i++] = 0xe0 | (code >> 12);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n buffer8[i++] = 0xf0 | (code >> 18);\n buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);\n buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);\n buffer8[i++] = 0x80 | (code & 0x3f);\n }\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n }\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Md5.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[i >> 2] |= EXTRA[i & 3];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = blocks[16];\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.bytes << 3;\n blocks[15] = this.hBytes << 3 | this.bytes >>> 29;\n this.hash();\n };\n\n Md5.prototype.hash = function () {\n var a, b, c, d, bc, da, blocks = this.blocks;\n\n if (this.first) {\n a = blocks[0] - 680876937;\n a = (a << 7 | a >>> 25) - 271733879 << 0;\n d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;\n d = (d << 12 | d >>> 20) + a << 0;\n c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;\n c = (c << 17 | c >>> 15) + d << 0;\n b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;\n b = (b << 22 | b >>> 10) + c << 0;\n } else {\n a = this.h0;\n b = this.h1;\n c = this.h2;\n d = this.h3;\n a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;\n b = (b << 22 | b >>> 10) + c << 0;\n }\n\n a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;\n a = (a << 7 | a >>> 25) + b << 0;\n d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;\n d = (d << 12 | d >>> 20) + a << 0;\n c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;\n c = (c << 17 | c >>> 15) + d << 0;\n b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;\n b = (b << 22 | b >>> 10) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;\n b = (b << 20 | b >>> 12) + c << 0;\n a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;\n a = (a << 5 | a >>> 27) + b << 0;\n d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;\n d = (d << 9 | d >>> 23) + a << 0;\n c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;\n c = (c << 14 | c >>> 18) + d << 0;\n b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;\n b = (b << 20 | b >>> 12) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[5] - 378558;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[8] - 2022574463;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[11] + 1839030562;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[14] - 35309556;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[1] - 1530992060;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[4] + 1272893353;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[7] - 155497632;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[10] - 1094730640;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[13] + 681279174;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[0] - 358537222;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[3] - 722521979;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[6] + 76029189;\n b = (b << 23 | b >>> 9) + c << 0;\n bc = b ^ c;\n a += (bc ^ d) + blocks[9] - 640364487;\n a = (a << 4 | a >>> 28) + b << 0;\n d += (bc ^ a) + blocks[12] - 421815835;\n d = (d << 11 | d >>> 21) + a << 0;\n da = d ^ a;\n c += (da ^ b) + blocks[15] + 530742520;\n c = (c << 16 | c >>> 16) + d << 0;\n b += (da ^ c) + blocks[2] - 995338651;\n b = (b << 23 | b >>> 9) + c << 0;\n a += (c ^ (b | ~d)) + blocks[0] - 198630844;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[7] + 1126891415;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[14] - 1416354905;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[5] - 57434055;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[12] + 1700485571;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[3] - 1894986606;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[10] - 1051523;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[1] - 2054922799;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[8] + 1873313359;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[15] - 30611744;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[6] - 1560198380;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[13] + 1309151649;\n b = (b << 21 | b >>> 11) + c << 0;\n a += (c ^ (b | ~d)) + blocks[4] - 145523070;\n a = (a << 6 | a >>> 26) + b << 0;\n d += (b ^ (a | ~c)) + blocks[11] - 1120210379;\n d = (d << 10 | d >>> 22) + a << 0;\n c += (a ^ (d | ~b)) + blocks[2] + 718787259;\n c = (c << 15 | c >>> 17) + d << 0;\n b += (d ^ (c | ~a)) + blocks[9] - 343485551;\n b = (b << 21 | b >>> 11) + c << 0;\n\n if (this.first) {\n this.h0 = a + 1732584193 << 0;\n this.h1 = b - 271733879 << 0;\n this.h2 = c - 1732584194 << 0;\n this.h3 = d + 271733878 << 0;\n this.first = false;\n } else {\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n }\n };\n\n /**\n * @method hex\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.hex();\n */\n Md5.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n\n return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];\n };\n\n /**\n * @method toString\n * @memberof Md5\n * @instance\n * @description Output hash as hex string\n * @returns {String} Hex string\n * @see {@link md5.hex}\n * @example\n * hash.toString();\n */\n Md5.prototype.toString = Md5.prototype.hex;\n\n /**\n * @method digest\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.digest}\n * @example\n * hash.digest();\n */\n Md5.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;\n return [\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF\n ];\n };\n\n /**\n * @method array\n * @memberof Md5\n * @instance\n * @description Output hash as bytes array\n * @returns {Array} Bytes array\n * @see {@link md5.array}\n * @example\n * hash.array();\n */\n Md5.prototype.array = Md5.prototype.digest;\n\n /**\n * @method arrayBuffer\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.arrayBuffer}\n * @example\n * hash.arrayBuffer();\n */\n Md5.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(16);\n var blocks = new Uint32Array(buffer);\n blocks[0] = this.h0;\n blocks[1] = this.h1;\n blocks[2] = this.h2;\n blocks[3] = this.h3;\n return buffer;\n };\n\n /**\n * @method buffer\n * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.\n * @memberof Md5\n * @instance\n * @description Output hash as ArrayBuffer\n * @returns {ArrayBuffer} ArrayBuffer\n * @see {@link md5.buffer}\n * @example\n * hash.buffer();\n */\n Md5.prototype.buffer = Md5.prototype.arrayBuffer;\n\n /**\n * @method base64\n * @memberof Md5\n * @instance\n * @description Output hash as base64 string\n * @returns {String} base64 string\n * @see {@link md5.base64}\n * @example\n * hash.base64();\n */\n Md5.prototype.base64 = function () {\n var v1, v2, v3, base64Str = '', bytes = this.array();\n for (var i = 0; i < 15;) {\n v1 = bytes[i++];\n v2 = bytes[i++];\n v3 = bytes[i++];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +\n BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +\n BASE64_ENCODE_CHAR[v3 & 63];\n }\n v1 = bytes[i];\n base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +\n BASE64_ENCODE_CHAR[(v1 << 4) & 63] +\n '==';\n return base64Str;\n };\n\n var exports = createMethod();\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n /**\n * @method md5\b\n * @description Md5 hash function, export to global in browsers.\n * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash\n * @returns {String} md5 hashes\n * @example\n * md5(''); // d41d8cd98f00b204e9800998ecf8427e\n * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6\n * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0\n *\n * // It also supports UTF-8 encoding\n * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07\n *\n * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`\n * md5([]); // d41d8cd98f00b204e9800998ecf8427e\n * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e\n */\n root.md5 = exports;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n"],"sourceRoot":"webpack:///","file":"889.45d9b5ec7aeb4a2f.js"} \ No newline at end of file diff --git a/index.html b/index.html index 04be30d..82dca4f 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,6 @@ - + \ No newline at end of file diff --git a/main.757dc5269470e421.js b/main.757dc5269470e421.js deleted file mode 100644 index 7ce5b6e..0000000 --- a/main.757dc5269470e421.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkobservable_webworker_demo=self.webpackChunkobservable_webworker_demo||[]).push([[179],{698:($i,al,It)=>{function pn(t){return"function"==typeof t}let Ui=!1;const Je={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else Ui&&console.log("RxJS: Back to a better error behavior. Thank you. <3");Ui=t},get useDeprecatedSynchronousErrorHandling(){return Ui}};function gn(t){setTimeout(()=>{throw t},0)}const fo={closed:!0,next(t){},error(t){if(Je.useDeprecatedSynchronousErrorHandling)throw t;gn(t)},complete(){}},ho=Array.isArray||(t=>t&&"number"==typeof t.length);function ul(t){return null!==t&&"object"==typeof t}const po=(()=>{function t(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((n,r)=>`${r+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return t.prototype=Object.create(Error.prototype),t})();class q{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:r,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof q)n.remove(this);else if(null!==n)for(let s=0;se.concat(n instanceof po?n.errors:n),[])}q.EMPTY=((t=new q).closed=!0,t);const go="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class U extends q{constructor(e,n,r){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=fo;break;case 1:if(!e){this.destination=fo;break}if("object"==typeof e){e instanceof U?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new cl(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new cl(this,e,n,r)}}[go](){return this}static create(e,n,r){const o=new U(e,n,r);return o.syncErrorThrowable=!1,o}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class cl extends U{constructor(e,n,r,o){super(),this._parentSubscriber=e;let i,s=this;pn(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==fo&&(s=Object.create(n),pn(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=i,this._error=r,this._complete=o}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:n}=this;Je.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?this.__tryOrSetError(n,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:n}=this,{useDeprecatedSynchronousErrorHandling:r}=Je;if(this._error)r&&n.syncErrorThrowable?(this.__tryOrSetError(n,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(n.syncErrorThrowable)r?(n.syncErrorValue=e,n.syncErrorThrown=!0):gn(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;gn(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const n=()=>this._complete.call(this._context);Je.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,n){try{e.call(this._context,n)}catch(r){if(this.unsubscribe(),Je.useDeprecatedSynchronousErrorHandling)throw r;gn(r)}}__tryOrSetError(e,n,r){if(!Je.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{n.call(this._context,r)}catch(o){return Je.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=o,e.syncErrorThrown=!0,!0):(gn(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const pr="function"==typeof Symbol&&Symbol.observable||"@@observable";function dl(t){return t}let K=(()=>{class t{constructor(n){this._isScalar=!1,n&&(this._subscribe=n)}lift(n){const r=new t;return r.source=this,r.operator=n,r}subscribe(n,r,o){const{operator:i}=this,s=function em(t,e,n){if(t){if(t instanceof U)return t;if(t[go])return t[go]()}return t||e||n?new U(t,e,n):new U(fo)}(n,r,o);if(s.add(i?i.call(s,this.source):this.source||Je.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),Je.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(n){try{return this._subscribe(n)}catch(r){Je.useDeprecatedSynchronousErrorHandling&&(n.syncErrorThrown=!0,n.syncErrorValue=r),function Xg(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof U?n:null}return!0}(n)?n.error(r):console.warn(r)}}forEach(n,r){return new(r=hl(r))((o,i)=>{let s;s=this.subscribe(a=>{try{n(a)}catch(u){i(u),s&&s.unsubscribe()}},i,o)})}_subscribe(n){const{source:r}=this;return r&&r.subscribe(n)}[pr](){return this}pipe(...n){return 0===n.length?this:function fl(t){return 0===t.length?dl:1===t.length?t[0]:function(n){return t.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=hl(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return t.create=e=>new t(e),t})();function hl(t){if(t||(t=Je.Promise||Promise),!t)throw new Error("no Promise impl found");return t}const mn=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})();class pl extends q{constructor(e,n){super(),this.subject=e,this.subscriber=n,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,n=e.observers;if(this.subject=null,!n||0===n.length||e.isStopped||e.closed)return;const r=n.indexOf(this.subscriber);-1!==r&&n.splice(r,1)}}class gl extends U{constructor(e){super(e),this.destination=e}}let Mt=(()=>{class t extends K{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[go](){return new gl(this)}lift(n){const r=new ml(this,this);return r.operator=n,r}next(n){if(this.closed)throw new mn;if(!this.isStopped){const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;snew ml(e,n),t})();class ml extends Mt{constructor(e,n){super(),this.destination=e,this.source=n}next(e){const{destination:n}=this;n&&n.next&&n.next(e)}error(e){const{destination:n}=this;n&&n.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:n}=this;return n?this.source.subscribe(e):q.EMPTY}}function mo(t){return t&&"function"==typeof t.schedule}function St(t,e){return function(r){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new tm(t,e))}}class tm{constructor(e,n){this.project=e,this.thisArg=n}call(e,n){return n.subscribe(new nm(e,this.project,this.thisArg))}}class nm extends U{constructor(e,n,r){super(e),this.project=n,this.count=0,this.thisArg=r||this}_next(e){let n;try{n=this.project.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}this.destination.next(n)}}const yl=t=>e=>{for(let n=0,r=t.length;nt&&"number"==typeof t.length&&"function"!=typeof t;function _l(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}const Gi=t=>{if(t&&"function"==typeof t[pr])return(t=>e=>{const n=t[pr]();if("function"!=typeof n.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n.subscribe(e)})(t);if(Dl(t))return yl(t);if(_l(t))return(t=>e=>(t.then(n=>{e.closed||(e.next(n),e.complete())},n=>e.error(n)).then(null,gn),e))(t);if(t&&"function"==typeof t[Lt])return(t=>e=>{const n=t[Lt]();for(;;){let r;try{r=n.next()}catch(o){return e.error(o),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add(()=>{n.return&&n.return()}),e})(t);{const n=`You provided ${ul(t)?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(n)}};function Wi(t,e){return new K(n=>{const r=new q;let o=0;return r.add(e.schedule(function(){o!==t.length?(n.next(t[o++]),n.closed||r.add(this.schedule())):n.complete()})),r})}function vl(t,e){return e?function fm(t,e){if(null!=t){if(function cm(t){return t&&"function"==typeof t[pr]}(t))return function am(t,e){return new K(n=>{const r=new q;return r.add(e.schedule(()=>{const o=t[pr]();r.add(o.subscribe({next(i){r.add(e.schedule(()=>n.next(i)))},error(i){r.add(e.schedule(()=>n.error(i)))},complete(){r.add(e.schedule(()=>n.complete()))}}))})),r})}(t,e);if(_l(t))return function um(t,e){return new K(n=>{const r=new q;return r.add(e.schedule(()=>t.then(o=>{r.add(e.schedule(()=>{n.next(o),r.add(e.schedule(()=>n.complete()))}))},o=>{r.add(e.schedule(()=>n.error(o)))}))),r})}(t,e);if(Dl(t))return Wi(t,e);if(function dm(t){return t&&"function"==typeof t[Lt]}(t)||"string"==typeof t)return function lm(t,e){if(!t)throw new Error("Iterable cannot be null");return new K(n=>{const r=new q;let o;return r.add(()=>{o&&"function"==typeof o.return&&o.return()}),r.add(e.schedule(()=>{o=t[Lt](),r.add(e.schedule(function(){if(n.closed)return;let i,s;try{const a=o.next();i=a.value,s=a.done}catch(a){return void n.error(a)}s?n.complete():(n.next(i),this.schedule())}))})),r})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}(t,e):t instanceof K?t:new K(Gi(t))}class yo extends U{constructor(e){super(),this.parent=e}_next(e){this.parent.notifyNext(e)}_error(e){this.parent.notifyError(e),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Do extends U{notifyNext(e){this.destination.next(e)}notifyError(e){this.destination.error(e)}notifyComplete(){this.destination.complete()}}function _o(t,e){if(!e.closed)return t instanceof K?t.subscribe(e):Gi(t)(e)}function qi(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?r=>r.pipe(qi((o,i)=>vl(t(o,i)).pipe(St((s,a)=>e(o,s,i,a))),n)):("number"==typeof e&&(n=e),r=>r.lift(new hm(t,n)))}class hm{constructor(e,n=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=n}call(e,n){return n.subscribe(new pm(e,this.project,this.concurrent))}}class pm extends Do{constructor(e,n,r=Number.POSITIVE_INFINITY){super(e),this.project=n,this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function zi(t=Number.POSITIVE_INFINITY){return qi(dl,t)}function vo(t,e){return e?Wi(t,e):new K(yl(t))}function wl(){return function(e){return e.lift(new mm(e))}}class mm{constructor(e){this.connectable=e}call(e,n){const{connectable:r}=this;r._refCount++;const o=new ym(e,r),i=n.subscribe(o);return o.closed||(o.connection=r.connect()),i}}class ym extends U{constructor(e,n){super(e),this.connectable=n}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const n=e._refCount;if(n<=0)return void(this.connection=null);if(e._refCount=n-1,n>1)return void(this.connection=null);const{connection:r}=this,o=e._connection;this.connection=null,o&&(!r||o===r)&&o.unsubscribe()}}class Dm extends K{constructor(e,n){super(),this.source=e,this.subjectFactory=n,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new q,e.add(this.source.subscribe(new vm(this.getSubject(),this))),e.closed&&(this._connection=null,e=q.EMPTY)),e}refCount(){return wl()(this)}}const _m=(()=>{const t=Dm.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class vm extends gl{constructor(e,n){super(e),this.connectable=n}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const n=e._connection;e._refCount=0,e._subject=null,e._connection=null,n&&n.unsubscribe()}}}class Cm{constructor(e,n){this.subjectFactory=e,this.selector=n}call(e,n){const{selector:r}=this,o=this.subjectFactory(),i=r(o).subscribe(e);return i.add(n.subscribe(o)),i}}function bm(){return new Mt}function G(t){for(let e in t)if(t[e]===G)return e;throw Error("Could not find renamed property on target object.")}function k(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(k).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}function Zi(t,e){return null==t||""===t?null===e?"":e:null==e||""===e?t:t+" "+e}const Mm=G({__forward_ref__:G});function Yi(t){return t.__forward_ref__=Yi,t.toString=function(){return k(this())},t}function T(t){return function El(t){return"function"==typeof t&&t.hasOwnProperty(Mm)&&t.__forward_ref__===Yi}(t)?t():t}class Pe extends Error{constructor(e,n){super(function Ki(t,e){return`NG0${Math.abs(t)}${e?": "+e:""}`}(e,n)),this.code=e}}function M(t){return"string"==typeof t?t:null==t?"":String(t)}function Ce(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():M(t)}function wo(t,e){const n=e?` in ${e}`:"";throw new Pe(-201,`No provider for ${Ce(t)} found${n}`)}function Oe(t,e){null==t&&function Y(t,e,n,r){throw new Error(`ASSERTION ERROR: ${t}`+(null==r?"":` [Expected=> ${n} ${r} ${e} <=Actual]`))}(e,t,null,"!=")}function ee(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function yn(t){return{providers:t.providers||[],imports:t.imports||[]}}function Ji(t){return Cl(t,Eo)||Cl(t,Il)}function Cl(t,e){return t.hasOwnProperty(e)?t[e]:null}function bl(t){return t&&(t.hasOwnProperty(Xi)||t.hasOwnProperty(Pm))?t[Xi]:null}const Eo=G({\u0275prov:G}),Xi=G({\u0275inj:G}),Il=G({ngInjectableDef:G}),Pm=G({ngInjectorDef:G});var A=(()=>((A=A||{})[A.Default=0]="Default",A[A.Host=1]="Host",A[A.Self=2]="Self",A[A.SkipSelf=4]="SkipSelf",A[A.Optional=8]="Optional",A))();let es;function Vt(t){const e=es;return es=t,e}function Ml(t,e,n){const r=Ji(t);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&A.Optional?null:void 0!==e?e:void wo(k(t),"Injector")}function jt(t){return{toString:t}.toString()}var Xe=(()=>((Xe=Xe||{})[Xe.OnPush=0]="OnPush",Xe[Xe.Default=1]="Default",Xe))(),dt=(()=>(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"}(dt||(dt={})),dt))();const Om="undefined"!=typeof globalThis&&globalThis,km="undefined"!=typeof window&&window,Lm="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,$=Om||"undefined"!=typeof global&&global||km||Lm,Dn={},W=[],Co=G({\u0275cmp:G}),ts=G({\u0275dir:G}),ns=G({\u0275pipe:G}),Sl=G({\u0275mod:G}),At=G({\u0275fac:G}),gr=G({__NG_ELEMENT_ID__:G});let Vm=0;function _n(t){return jt(()=>{const n={},r={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===Xe.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors||W,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||dt.Emulated,id:"c",styles:t.styles||W,_:null,setInput:null,schemas:t.schemas||null,tView:null},o=t.directives,i=t.features,s=t.pipes;return r.id+=Vm++,r.inputs=Nl(t.inputs,n),r.outputs=Nl(t.outputs),i&&i.forEach(a=>a(r)),r.directiveDefs=o?()=>("function"==typeof o?o():o).map(Tl):null,r.pipeDefs=s?()=>("function"==typeof s?s():s).map(Al):null,r})}function Tl(t){return De(t)||function Bt(t){return t[ts]||null}(t)}function Al(t){return function Xt(t){return t[ns]||null}(t)}const xl={};function mr(t){return jt(()=>{const e={type:t.type,bootstrap:t.bootstrap||W,declarations:t.declarations||W,imports:t.imports||W,exports:t.exports||W,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null};return null!=t.id&&(xl[t.id]=t.type),e})}function Nl(t,e){if(null==t)return Dn;const n={};for(const r in t)if(t.hasOwnProperty(r)){let o=t[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,e&&(e[o]=i)}return n}const $e=_n;function xe(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function De(t){return t[Co]||null}function Ue(t,e){const n=t[Sl]||null;if(!n&&!0===e)throw new Error(`Type ${k(t)} does not have '\u0275mod' property.`);return n}const x=11,z=20;function ft(t){return Array.isArray(t)&&"object"==typeof t[1]}function tt(t){return Array.isArray(t)&&!0===t[1]}function is(t){return 0!=(8&t.flags)}function So(t){return 2==(2&t.flags)}function To(t){return 1==(1&t.flags)}function nt(t){return null!==t.template}function Gm(t){return 0!=(512&t[2])}function rn(t,e){return t.hasOwnProperty(At)?t[At]:null}class zm{constructor(e,n,r){this.previousValue=e,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function Pl(t){return t.type.prototype.ngOnChanges&&(t.setInput=Zm),Qm}function Qm(){const t=Ol(this),e=null==t?void 0:t.current;if(e){const n=t.previous;if(n===Dn)t.previous=e;else for(let r in e)n[r]=e[r];t.current=null,this.ngOnChanges(e)}}function Zm(t,e,n,r){const o=Ol(t)||function Ym(t,e){return t[Rl]=e}(t,{previous:Dn,current:null}),i=o.current||(o.current={}),s=o.previous,a=this.declaredInputs[n],u=s[a];i[a]=new zm(u&&u.currentValue,e,s===Dn),t[r]=e}const Rl="__ngSimpleChanges__";function Ol(t){return t[Rl]||null}let us;function ne(t){return!!t.listen}const Vl={createRenderer:(t,e)=>function ls(){return void 0!==us?us:"undefined"!=typeof document?document:void 0}()};function ae(t){for(;Array.isArray(t);)t=t[0];return t}function xo(t,e){return ae(e[t])}function qe(t,e){return ae(e[t.index])}function cs(t,e){return t.data[e]}function bn(t,e){return t[e]}function Le(t,e){const n=e[t];return ft(n)?n:n[0]}function jl(t){return 4==(4&t[2])}function ds(t){return 128==(128&t[2])}function Ht(t,e){return null==e?null:t[e]}function Bl(t){t[18]=0}function fs(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const I={lFrame:Ql(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function Hl(){return I.bindingsEnabled}function y(){return I.lFrame.lView}function L(){return I.lFrame.tView}function de(){let t=$l();for(;null!==t&&64===t.type;)t=t.parent;return t}function $l(){return I.lFrame.currentTNode}function ht(t,e){const n=I.lFrame;n.currentTNode=t,n.isParent=e}function hs(){return I.lFrame.isParent}function No(){return I.isInCheckNoChangesMode}function Fo(t){I.isInCheckNoChangesMode=t}function be(){const t=I.lFrame;let e=t.bindingRootIndex;return-1===e&&(e=t.bindingRootIndex=t.tView.bindingStartIndex),e}function In(){return I.lFrame.bindingIndex++}function Nt(t){const e=I.lFrame,n=e.bindingIndex;return e.bindingIndex=e.bindingIndex+t,n}function dy(t,e){const n=I.lFrame;n.bindingIndex=n.bindingRootIndex=t,gs(e)}function gs(t){I.lFrame.currentDirectiveIndex=t}function Wl(){return I.lFrame.currentQueryIndex}function ys(t){I.lFrame.currentQueryIndex=t}function hy(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function ql(t,e,n){if(n&A.SkipSelf){let o=e,i=t;for(;!(o=o.parent,null!==o||n&A.Host||(o=hy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;e=o,t=i}const r=I.lFrame=zl();return r.currentTNode=e,r.lView=t,!0}function Po(t){const e=zl(),n=t[1];I.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function zl(){const t=I.lFrame,e=null===t?null:t.child;return null===e?Ql(t):e}function Ql(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function Zl(){const t=I.lFrame;return I.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Yl=Zl;function Ro(){const t=Zl();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Ie(){return I.lFrame.selectedIndex}function $t(t){I.lFrame.selectedIndex=t}function re(){const t=I.lFrame;return cs(t.tView,t.selectedIndex)}function Oo(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n=r)break}else e[u]<0&&(t[18]+=65536),(a>11>16&&(3&t[2])===e){t[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class wr{constructor(e,n,r){this.factory=e,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function Vo(t,e,n){const r=ne(t);let o=0;for(;oe){s=i-1;break}}}for(;i>16}(t),r=e;for(;n>0;)r=r[15],n--;return r}let ws=!0;function Bo(t){const e=ws;return ws=t,e}let Ty=0;function Cr(t,e){const n=Cs(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,Es(r.data,t),Es(e,null),Es(r.blueprint,null));const o=Ho(t,e),i=t.injectorIndex;if(ec(o)){const s=Mn(o),a=Sn(o,e),u=a[1].data;for(let l=0;l<8;l++)e[i+l]=a[s+l]|u[s+l]}return e[i+8]=o,i}function Es(t,e){t.push(0,0,0,0,0,0,0,0,e)}function Cs(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function Ho(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,o=e;for(;null!==o;){const i=o[1],s=i.type;if(r=2===s?i.declTNode:1===s?o[6]:null,null===r)return-1;if(n++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function $o(t,e,n){!function Ay(t,e,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(gr)&&(r=n[gr]),null==r&&(r=n[gr]=Ty++);const o=255&r;e.data[t+(o>>5)]|=1<=0?255&e:Ny:e}(n);if("function"==typeof i){if(!ql(e,t,r))return r&A.Host?rc(o,n,r):oc(e,n,r,o);try{const s=i(r);if(null!=s||r&A.Optional)return s;wo(n)}finally{Yl()}}else if("number"==typeof i){let s=null,a=Cs(t,e),u=-1,l=r&A.Host?e[16][6]:null;for((-1===a||r&A.SkipSelf)&&(u=-1===a?Ho(t,e):e[a+8],-1!==u&&uc(r,!1)?(s=e[1],a=Mn(u),e=Sn(u,e)):a=-1);-1!==a;){const c=e[1];if(ac(i,a,c.data)){const d=Fy(a,e,n,s,r,l);if(d!==sc)return d}u=e[a+8],-1!==u&&uc(r,e[1].data[a+8]===l)&&ac(i,a,e)?(s=c,a=Mn(u),e=Sn(u,e)):a=-1}}}return oc(e,n,r,o)}const sc={};function Ny(){return new Tn(de(),y())}function Fy(t,e,n,r,o,i){const s=e[1],a=s.data[t+8],c=Uo(a,s,n,null==r?So(a)&&ws:r!=s&&0!=(3&a.type),o&A.Host&&i===a);return null!==c?br(e,s,c,a):sc}function Uo(t,e,n,r,o){const i=t.providerIndexes,s=e.data,a=1048575&i,u=t.directiveStart,c=i>>20,f=o?a+c:t.directiveEnd;for(let h=r?a:a+c;h=u&&p.type===n)return h}if(o){const h=s[u];if(h&&nt(h)&&h.type===n)return u}return null}function br(t,e,n,r){let o=t[n];const i=e.data;if(function Cy(t){return t instanceof wr}(o)){const s=o;s.resolving&&function Sm(t,e){const n=e?`. Dependency path: ${e.join(" > ")} > ${t}`:"";throw new Pe(-200,`Circular dependency in DI detected for ${t}${n}`)}(Ce(i[n]));const a=Bo(s.canSeeViewProviders);s.resolving=!0;const u=s.injectImpl?Vt(s.injectImpl):null;ql(t,r,A.Default);try{o=t[n]=s.factory(void 0,i,t,r),e.firstCreatePass&&n>=r.directiveStart&&function wy(t,e,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=e.type.prototype;if(r){const s=Pl(e);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,s)}o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,i))}(n,i[n],e)}finally{null!==u&&Vt(u),Bo(a),s.resolving=!1,Yl()}}return o}function ac(t,e,n){return!!(n[e+(t>>5)]&1<{const r=function Ms(t){return function(...n){if(t){const r=t(...n);for(const o in r)this[o]=r[o]}}}(e);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(u,l,c){const d=u.hasOwnProperty(xn)?u[xn]:Object.defineProperty(u,xn,{value:[]})[xn];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(s),u}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}class j{constructor(e,n){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=ee({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}toString(){return`InjectionToken ${this._desc}`}}function ze(t,e){void 0===e&&(e=t);for(let n=0;nArray.isArray(n)?pt(n,e):e(n))}function cc(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function Go(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function Ve(t,e,n){let r=Pn(t,e);return r>=0?t[1|r]=n:(r=~r,function Vy(t,e,n,r){let o=t.length;if(o==e)t.push(n,r);else if(1===o)t.push(r,t[0]),t[0]=n;else{for(o--,t.push(t[o-1],t[o]);o>e;)t[o]=t[o-2],o--;t[e]=n,t[e+1]=r}}(t,r,e,n)),r}function Ts(t,e){const n=Pn(t,e);if(n>=0)return t[1|n]}function Pn(t,e){return function hc(t,e,n){let r=0,o=t.length>>n;for(;o!==r;){const i=r+(o-r>>1),s=t[i<e?o=i:r=i+1}return~(o<({token:t})),-1),Rn=xr(Fn("Optional"),8),Nr=xr(Fn("SkipSelf"),4);function Gt(t){return t instanceof class Ic{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}?t.changingThisBreaksApplicationSecurity:t}const kc="__ngContext__";function ve(t,e){t[kc]=e}function Bs(t){const e=function kr(t){return t[kc]||null}(t);return e?Array.isArray(e)?e:e.lView:null}function $s(t){return t.ngOriginalError}function HD(t,...e){t.error(...e)}class Ln{constructor(){this._console=console}handleError(e){const n=this._findOriginalError(e),r=function BD(t){return t&&t.ngErrorLogger||HD}(e);r(this._console,"ERROR",e),n&&r(this._console,"ORIGINAL ERROR",n)}_findOriginalError(e){let n=e&&$s(e);for(;n&&$s(n);)n=$s(n);return n||null}}const Hc=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind($))();function mt(t){return t instanceof Function?t():t}var je=(()=>((je=je||{})[je.Important=1]="Important",je[je.DashCase=2]="DashCase",je))();function Gs(t,e){return undefined(t,e)}function Lr(t){const e=t[3];return tt(e)?e[3]:e}function Ws(t){return qc(t[13])}function qs(t){return qc(t[4])}function qc(t){for(;null!==t&&!tt(t);)t=t[4];return t}function jn(t,e,n,r,o){if(null!=r){let i,s=!1;tt(r)?i=r:ft(r)&&(s=!0,r=r[0]);const a=ae(r);0===t&&null!==n?null==o?Jc(e,n,a):on(e,n,a,o||null,!0):1===t&&null!==n?on(e,n,a,o||null,!0):2===t?function id(t,e,n){const r=Xo(t,e);r&&function c_(t,e,n,r){ne(t)?t.removeChild(e,n,r):e.removeChild(n)}(t,r,e,n)}(e,a,s):3===t&&e.destroyNode(a),null!=i&&function h_(t,e,n,r,o){const i=n[7];i!==ae(n)&&jn(e,t,r,i,o);for(let a=10;a0&&(t[n-1][4]=r[4]);const i=Go(t,10+e);!function n_(t,e){Vr(t,e,e[x],2,null,null),e[0]=null,e[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function Zc(t,e){if(!(256&e[2])){const n=e[x];ne(n)&&n.destroyNode&&Vr(t,e,n,3,null,null),function i_(t){let e=t[13];if(!e)return Ys(t[1],t);for(;e;){let n=null;if(ft(e))n=e[13];else{const r=e[10];r&&(n=r)}if(!n){for(;e&&!e[4]&&e!==t;)ft(e)&&Ys(e[1],e),e=e[3];null===e&&(e=t),ft(e)&&Ys(e[1],e),n=e&&e[4]}e=n}}(e)}}function Ys(t,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function l_(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r=0?r[o=l]():r[o=-l].unsubscribe(),i+=2}else{const s=r[o=n[i+1]];n[i].call(s)}if(null!==r){for(let i=o+1;ii?"":o[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==ud(h,l,0)||2&r&&l!==f){if(rt(r))return!1;s=!0}}}}else{if(!s&&!rt(r)&&!rt(u))return!1;if(s&&rt(u))continue;s=!1,r=u|1&r}}return rt(r)||s}function rt(t){return 0==(1&t)}function D_(t,e,n,r){if(null===e)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!rt(s)&&(e+=fd(i,o),o=""),r=s,i=i||!rt(r);n++}return""!==o&&(e+=fd(i,o)),e}const S={};function me(t){hd(L(),y(),Ie()+t,No())}function hd(t,e,n,r){if(!r)if(3==(3&e[2])){const i=t.preOrderCheckHooks;null!==i&&ko(e,i,n)}else{const i=t.preOrderHooks;null!==i&&Lo(e,i,0,n)}$t(n)}function ni(t,e){return t<<17|e<<2}function ot(t){return t>>17&32767}function ta(t){return 2|t}function Ft(t){return(131068&t)>>2}function na(t,e){return-131069&t|e<<2}function ra(t){return 1|t}function bd(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;rz&&hd(t,e,z,No()),n(r,o)}finally{$t(i)}}function ha(t,e,n){!Hl()||(function Q_(t,e,n,r){const o=n.directiveStart,i=n.directiveEnd;t.firstCreatePass||Cr(n,e),ve(r,e);const s=n.initialInputs;for(let a=o;a0;){const n=t[--e];if("number"==typeof n&&n<0)return n}return 0})(a)!=u&&a.push(u),a.push(r,o,s)}}function Rd(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Od(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function J_(t,e,n){if(n){if(e.exportAs)for(let r=0;r0&&ya(n)}}function ya(t){for(let r=Ws(t);null!==r;r=qs(r))for(let o=10;o0&&ya(i)}const n=t[1].components;if(null!==n)for(let r=0;r0&&ya(o)}}function iv(t,e){const n=Le(e,t),r=n[1];(function sv(t,e){for(let n=e.length;nPromise.resolve(null))();function Bd(t){return t[7]||(t[7]=[])}function Hd(t){return t.cleanup||(t.cleanup=[])}function Ud(t,e){const n=t[9],r=n?n.get(Ln,null):null;r&&r.handleError(e)}function Gd(t,e,n,r,o){for(let i=0;ithis.processProvider(a,e,n)),pt([e],a=>this.processInjectorType(a,[],i)),this.records.set(Ea,Un(void 0,this));const s=this.records.get(Ca);this.scope=null!=s?s.value:null,this.source=o||("object"==typeof e?null:k(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,n=Tr,r=A.Default){this.assertNotDestroyed();const o=mc(this),i=Vt(void 0);try{if(!(r&A.SkipSelf)){let a=this.records.get(e);if(void 0===a){const u=function Ev(t){return"function"==typeof t||"object"==typeof t&&t instanceof j}(e)&&Ji(e);a=u&&this.injectableDefInScope(u)?Un(Ia(e),Hr):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}return(r&A.Self?qd():this.parent).get(e,n=r&A.Optional&&n===Tr?null:n)}catch(s){if("NullInjectorError"===s.name){if((s[qo]=s[qo]||[]).unshift(k(e)),o)throw s;return function Yy(t,e,n,r){const o=t[qo];throw e[gc]&&o.unshift(e[gc]),t.message=function Ky(t,e,n,r=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.substr(2):t;let o=k(e);if(Array.isArray(e))o=e.map(k).join(" -> ");else if("object"==typeof e){let i=[];for(let s in e)if(e.hasOwnProperty(s)){let a=e[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):k(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${t.replace(Wy,"\n ")}`}("\n"+t.message,o,n,r),t.ngTokenPath=o,t[qo]=null,t}(s,e,"R3InjectorError",this.source)}throw s}finally{Vt(i),mc(o)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(e=>this.get(e))}toString(){const e=[];return this.records.forEach((r,o)=>e.push(k(o))),`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(e,n,r){if(!(e=T(e)))return!1;let o=bl(e);const i=null==o&&e.ngModule||void 0,s=void 0===i?e:i,a=-1!==r.indexOf(s);if(void 0!==i&&(o=bl(i)),null==o)return!1;if(null!=o.imports&&!a){let c;r.push(s);try{pt(o.imports,d=>{this.processInjectorType(d,n,r)&&(void 0===c&&(c=[]),c.push(d))})}finally{}if(void 0!==c)for(let d=0;dthis.processProvider(p,f,h||W))}}this.injectorDefTypes.add(s);const u=rn(s)||(()=>new s);this.records.set(s,Un(u,Hr));const l=o.providers;if(null!=l&&!a){const c=e;pt(l,d=>this.processProvider(d,c,l))}return void 0!==i&&void 0!==e.providers}processProvider(e,n,r){let o=Gn(e=T(e))?e:T(e&&e.provide);const i=function mv(t,e,n){return Yd(t)?Un(void 0,t.useValue):Un(function Zd(t,e,n){let r;if(Gn(t)){const o=T(t);return rn(o)||Ia(o)}if(Yd(t))r=()=>T(t.useValue);else if(function Dv(t){return!(!t||!t.useFactory)}(t))r=()=>t.useFactory(...Ns(t.deps||[]));else if(function yv(t){return!(!t||!t.useExisting)}(t))r=()=>Q(T(t.useExisting));else{const o=T(t&&(t.useClass||t.provide));if(!function vv(t){return!!t.deps}(t))return rn(o)||Ia(o);r=()=>new o(...Ns(t.deps))}return r}(t),Hr)}(e);if(Gn(e)||!0!==e.multi)this.records.get(o);else{let s=this.records.get(o);s||(s=Un(void 0,Hr,!0),s.factory=()=>Ns(s.multi),this.records.set(o,s)),o=e,s.multi.push(e)}this.records.set(o,i)}hydrate(e,n){return n.value===Hr&&(n.value=hv,n.value=n.factory()),"object"==typeof n.value&&n.value&&function wv(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(n.value)&&this.onDestroy.add(n.value),n.value}injectableDefInScope(e){if(!e.providedIn)return!1;const n=T(e.providedIn);return"string"==typeof n?"any"===n||n===this.scope:this.injectorDefTypes.has(n)}}function Ia(t){const e=Ji(t),n=null!==e?e.factory:rn(t);if(null!==n)return n;if(t instanceof j)throw new Error(`Token ${k(t)} is missing a \u0275prov definition.`);if(t instanceof Function)return function gv(t){const e=t.length;if(e>0){const r=function Sr(t,e){const n=[];for(let r=0;rn.factory(t):()=>new t}(t);throw new Error("unreachable")}function Un(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Yd(t){return null!==t&&"object"==typeof t&&zy in t}function Gn(t){return"function"==typeof t}let Qe=(()=>{class t{static create(n,r){var o;if(Array.isArray(n))return zd({name:""},r,n,"");{const i=null!==(o=n.name)&&void 0!==o?o:"";return zd({name:i},n.parent,n.providers,i)}}}return t.THROW_IF_NOT_FOUND=Tr,t.NULL=new Wd,t.\u0275prov=ee({token:t,providedIn:"any",factory:()=>Q(Ea)}),t.__NG_ELEMENT_ID__=-1,t})();function xv(t,e){Oo(Bs(t)[1],de())}let ui=null;function Wn(){if(!ui){const t=$.Symbol;if(t&&t.iterator)ui=t.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let n=0;na(ae(F[r.index])):r.index;if(ne(n)){let F=null;if(!a&&u&&(F=function pw(t,e,n,r){const o=t.cleanup;if(null!=o)for(let i=0;iu?a[u]:null}"string"==typeof s&&(i+=2)}return null}(t,e,o,r.index)),null!==F)(F.__ngLastListenerFn__||F).__ngNextListenerFn__=i,F.__ngLastListenerFn__=i,h=!1;else{i=ka(r,e,d,i,!1);const V=n.listen(_,o,i);f.push(i,V),c&&c.push(o,E,g,g+1)}}else i=ka(r,e,d,i,!0),_.addEventListener(o,i,s),f.push(i),c&&c.push(o,E,g,s)}else i=ka(r,e,d,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let _=0;_0;)e=e[15],t--;return e}(t,I.lFrame.contextLView))[8]}(t)}function qf(t,e,n,r,o){const i=t[n+1],s=null===e;let a=r?ot(i):Ft(i),u=!1;for(;0!==a&&(!1===u||s);){const c=t[a+1];vw(t[a],e)&&(u=!0,t[a+1]=r?ra(c):ta(c)),a=r?ot(c):Ft(c)}u&&(t[n+1]=r?ta(i):ra(i))}function vw(t,e){return null===t||null==e||(Array.isArray(t)?t[1]:t)===e||!(!Array.isArray(t)||"string"!=typeof e)&&Pn(t,e)>=0}const he={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function zf(t){return t.substring(he.key,he.keyEnd)}function Qf(t,e){const n=he.textEnd;return n===e?-1:(e=he.keyEnd=function bw(t,e,n){for(;e32;)e++;return e}(t,he.key=e,n),nr(t,e,n))}function nr(t,e,n){for(;e=0;n=Qf(e,n))Ve(t,zf(e),!0)}function eh(t,e){return e>=t.expandoStartIndex}function th(t,e,n,r){const o=t.data;if(null===o[n+1]){const i=o[Ie()],s=eh(t,n);ih(i,r)&&null===e&&!s&&(e=!1),e=function Aw(t,e,n,r){const o=function ms(t){const e=I.lFrame.currentDirectiveIndex;return-1===e?null:t[e]}(t);let i=r?e.residualClasses:e.residualStyles;if(null===o)0===(r?e.classBindings:e.styleBindings)&&(n=Wr(n=ja(null,t,e,n,r),e.attrs,r),i=null);else{const s=e.directiveStylingLast;if(-1===s||t[s]!==o)if(n=ja(o,t,e,n,r),null===i){let u=function xw(t,e,n){const r=n?e.classBindings:e.styleBindings;if(0!==Ft(r))return t[ot(r)]}(t,e,r);void 0!==u&&Array.isArray(u)&&(u=ja(null,t,e,u[1],r),u=Wr(u,e.attrs,r),function Nw(t,e,n,r){t[ot(n?e.classBindings:e.styleBindings)]=r}(t,e,r,u))}else i=function Fw(t,e,n){let r;const o=e.directiveEnd;for(let i=1+e.directiveStylingLast;i0)&&(l=!0)}else c=n;if(o)if(0!==u){const f=ot(t[a+1]);t[r+1]=ni(f,a),0!==f&&(t[f+1]=na(t[f+1],r)),t[a+1]=function M_(t,e){return 131071&t|e<<17}(t[a+1],r)}else t[r+1]=ni(a,0),0!==a&&(t[a+1]=na(t[a+1],r)),a=r;else t[r+1]=ni(u,0),0===a?a=r:t[u+1]=na(t[u+1],r),u=r;l&&(t[r+1]=ta(t[r+1])),qf(t,c,r,!0),qf(t,c,r,!1),function _w(t,e,n,r,o){const i=o?t.residualClasses:t.residualStyles;null!=i&&"string"==typeof e&&Pn(i,e)>=0&&(n[r+1]=ra(n[r+1]))}(e,c,t,r,i),s=ni(a,u),i?e.classBindings=s:e.styleBindings=s}(o,i,e,n,s,r)}}function ja(t,e,n,r,o){let i=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const u=t[o],l=Array.isArray(u),c=l?u[1]:u,d=null===c;let f=n[o+1];f===S&&(f=d?W:void 0);let h=d?Ts(f,r):c===r?f:void 0;if(l&&!hi(h)&&(h=Ts(u,r)),hi(h)&&(a=h,s))return a;const p=t[o+1];o=s?ot(p):Ft(p)}if(null!==e){let u=i?e.residualClasses:e.residualStyles;null!=u&&(a=Ts(u,r))}return a}function hi(t){return void 0!==t}function ih(t,e){return 0!=(t.flags&(e?16:32))}function X(t,e=""){const n=y(),r=L(),o=t+z,i=r.firstCreatePass?Bn(r,o,1,e,null):r.data[o],s=n[o]=function zs(t,e){return ne(t)?t.createText(e):t.createTextNode(e)}(n[x],e);ei(r,n,s,i),ht(i,!1)}function rr(t){return or("",t,""),rr}function or(t,e,n){const r=y(),o=zn(r,t,e,n);return o!==S&&Pt(r,Ie(),o),or}function ph(t,e,n){!function at(t,e,n,r){const o=L(),i=Nt(2);o.firstUpdatePass&&th(o,null,i,r);const s=y();if(n!==S&&we(s,i,n)){const a=o.data[Ie()];if(ih(a,r)&&!eh(o,i)){let u=r?a.classesWithoutHost:a.stylesWithoutHost;null!==u&&(n=Zi(u,n||"")),Ra(o,a,s,n,r)}else!function Rw(t,e,n,r,o,i,s,a){o===S&&(o=W);let u=0,l=0,c=0((w=w||{})[w.LocaleId=0]="LocaleId",w[w.DayPeriodsFormat=1]="DayPeriodsFormat",w[w.DayPeriodsStandalone=2]="DayPeriodsStandalone",w[w.DaysFormat=3]="DaysFormat",w[w.DaysStandalone=4]="DaysStandalone",w[w.MonthsFormat=5]="MonthsFormat",w[w.MonthsStandalone=6]="MonthsStandalone",w[w.Eras=7]="Eras",w[w.FirstDayOfWeek=8]="FirstDayOfWeek",w[w.WeekendRange=9]="WeekendRange",w[w.DateFormat=10]="DateFormat",w[w.TimeFormat=11]="TimeFormat",w[w.DateTimeFormat=12]="DateTimeFormat",w[w.NumberSymbols=13]="NumberSymbols",w[w.NumberFormats=14]="NumberFormats",w[w.CurrencyCode=15]="CurrencyCode",w[w.CurrencySymbol=16]="CurrencySymbol",w[w.CurrencyName=17]="CurrencyName",w[w.Currencies=18]="Currencies",w[w.Directionality=19]="Directionality",w[w.PluralCase=20]="PluralCase",w[w.ExtraData=21]="ExtraData",w))();const pi="en-US";let Th=pi;class Xh{}class rC{resolveComponentFactory(e){throw function nC(t){const e=Error(`No component factory found for ${k(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(e)}}let Yr=(()=>{class t{}return t.NULL=new rC,t})();function oC(){return ar(de(),y())}function ar(t,e){return new ln(qe(t,e))}let ln=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=oC,t})();function iC(t){return t instanceof ln?t.nativeElement:t}class tp{}let uC=(()=>{class t{}return t.\u0275prov=ee({token:t,providedIn:"root",factory:()=>null}),t})();class qa{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const lC=new qa("13.1.2"),za={};function _i(t,e,n,r,o=!1){for(;null!==n;){const i=e[n.index];if(null!==i&&r.push(ae(i)),tt(i))for(let a=10;a-1&&(Zs(e,r),Go(n,r))}this._attachedToViewContainer=!1}Zc(this._lView[1],this._lView)}onDestroy(e){xd(this._lView[1],this._lView,null,e)}markForCheck(){Da(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){va(this._lView[1],this._lView,this.context)}checkNoChanges(){!function uv(t,e,n){Fo(!0);try{va(t,e,n)}finally{Fo(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function o_(t,e){Vr(t,e,e[x],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e}}class cC extends Kr{constructor(e){super(e),this._view=e}detectChanges(){jd(this._view)}checkNoChanges(){!function lv(t){Fo(!0);try{jd(t)}finally{Fo(!1)}}(this._view)}get context(){return null}}class rp extends Yr{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const n=De(e);return new Qa(n,this.ngModule)}}function op(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const fC=new j("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>Hc});class Qa extends Xh{constructor(e,n){super(),this.componentDef=e,this.ngModule=n,this.componentType=e.type,this.selector=function b_(t){return t.map(C_).join(",")}(e.selectors),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return op(this.componentDef.inputs)}get outputs(){return op(this.componentDef.outputs)}create(e,n,r,o){const i=(o=o||this.ngModule)?function hC(t,e){return{get:(n,r,o)=>{const i=t.get(n,za,o);return i!==za||r===za?i:e.get(n,r,o)}}}(e,o.injector):e,s=i.get(tp,Vl),a=i.get(uC,null),u=s.createRenderer(null,this.componentDef),l=this.componentDef.selectors[0][0]||"div",c=r?function Ad(t,e,n){if(ne(t))return t.selectRootElement(e,n===dt.ShadowDom);let r="string"==typeof e?t.querySelector(e):e;return r.textContent="",r}(u,r,this.componentDef.encapsulation):Qs(s.createRenderer(null,this.componentDef),l,function dC(t){const e=t.toLowerCase();return"svg"===e?"http://www.w3.org/2000/svg":"math"===e?"http://www.w3.org/1998/MathML/":null}(l)),d=this.componentDef.onPush?576:528,f=function uf(t,e){return{components:[],scheduler:t||Hc,clean:cv,playerHandler:e||null,flags:0}}(),h=ii(0,null,null,1,0,null,null,null,null,null),p=jr(null,h,f,d,null,null,s,u,a,i);let m,D;Po(p);try{const _=function sf(t,e,n,r,o,i){const s=n[1];n[20]=t;const u=Bn(s,20,2,"#host",null),l=u.mergedAttrs=e.hostAttrs;null!==l&&(ai(u,l,!0),null!==t&&(Vo(o,t,l),null!==u.classes&&ea(o,t,u.classes),null!==u.styles&&ad(o,t,u.styles)));const c=r.createRenderer(t,e),d=jr(n,Sd(e),null,e.onPush?64:16,n[20],u,r,c,i||null,null);return s.firstCreatePass&&($o(Cr(u,n),s,e.type),Od(s,u),kd(u,n.length,1)),si(n,d),n[20]=d}(c,this.componentDef,p,s,u);if(c)if(r)Vo(u,c,["ng-version",lC.full]);else{const{attrs:g,classes:E}=function I_(t){const e=[],n=[];let r=1,o=2;for(;r0&&ea(u,c,E.join(" "))}if(D=cs(h,z),void 0!==n){const g=D.projection=[];for(let E=0;Eu(s,e)),e.contentQueries){const u=de();e.contentQueries(1,s,u.directiveStart)}const a=de();return!i.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||($t(a.index),Pd(n[1],a,0,a.directiveStart,a.directiveEnd,e),Rd(e,s)),s}(_,this.componentDef,p,f,[xv]),Br(h,p,null)}finally{Ro()}return new gC(this.componentType,m,ar(D,p),p,D)}}class gC extends class tC{}{constructor(e,n,r,o,i){super(),this.location=r,this._rootLView=o,this._tNode=i,this.instance=n,this.hostView=this.changeDetectorRef=new cC(o),this.componentType=e}get injector(){return new Tn(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}}class ur{}const lr=new Map;class ap extends ur{constructor(e,n){super(),this._parent=n,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new rp(this);const r=Ue(e);this._bootstrapComponents=mt(r.bootstrap),this._r3Injector=Qd(e,n,[{provide:ur,useValue:this},{provide:Yr,useValue:this.componentFactoryResolver}],k(e)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(e)}get(e,n=Qe.THROW_IF_NOT_FOUND,r=A.Default){return e===Qe||e===ur||e===Ea?this:this._r3Injector.get(e,n,r)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Za extends class yC{}{constructor(e){super(),this.moduleType=e,null!==Ue(e)&&function DC(t){const e=new Set;!function n(r){const o=Ue(r,!0),i=o.id;null!==i&&(function ip(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${k(e)} vs ${k(e.name)}`)}(i,lr.get(i),r),lr.set(i,r));const s=mt(o.imports);for(const a of s)e.has(a)||(e.add(a),n(a))}(t)}(e)}create(e){return new ap(this.moduleType,e)}}function Jr(t,e){const n=t[e];return n===S?void 0:n}function lp(t,e,n,r,o,i,s){const a=e+n;return function sn(t,e,n,r){const o=we(t,e,n);return we(t,e+1,r)||o}(t,a,o,i)?Dt(t,a+2,s?r.call(s,o,i):r(o,i)):Jr(t,a+2)}function wt(t,e){const n=L();let r;const o=t+z;n.firstCreatePass?(r=function AC(t,e){if(e)for(let n=e.length-1;n>=0;n--){const r=e[n];if(t===r.name)return r}}(e,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(o,r.onDestroy)):r=n.data[o];const i=r.factory||(r.factory=rn(r.type)),s=Vt(R);try{const a=Bo(!1),u=i();return Bo(a),function $v(t,e,n,r){n>=t.data.length&&(t.data[n]=null,t.blueprint[n]=null),e[n]=r}(n,y(),o,u),u}finally{Vt(s)}}function Zt(t,e,n){const r=t+z,o=y(),i=bn(o,r);return Xr(o,r)?function up(t,e,n,r,o,i){const s=e+n;return we(t,s,o)?Dt(t,s+1,i?r.call(i,o):r(o)):Jr(t,s+1)}(o,be(),e,i.transform,n,i):i.transform(n)}function Ya(t,e,n,r){const o=t+z,i=y(),s=bn(i,o);return Xr(i,o)?lp(i,be(),e,s.transform,n,r,s):s.transform(n,r)}function Xr(t,e){return t[1].data[e].pure}function Ka(t){return e=>{setTimeout(t,void 0,e)}}const Rt=class PC extends Mt{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,n,r){var o,i,s;let a=e,u=n||(()=>null),l=r;if(e&&"object"==typeof e){const d=e;a=null===(o=d.next)||void 0===o?void 0:o.bind(d),u=null===(i=d.error)||void 0===i?void 0:i.bind(d),l=null===(s=d.complete)||void 0===s?void 0:s.bind(d)}this.__isAsync&&(u=Ka(u),a&&(a=Ka(a)),l&&(l=Ka(l)));const c=super.subscribe({next:a,error:u,complete:l});return e instanceof q&&e.add(c),c}};function RC(){return this._results[Wn()]()}class Ja{constructor(e=!1){this._emitDistinctChangesOnly=e,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const n=Wn(),r=Ja.prototype;r[n]||(r[n]=RC)}get changes(){return this._changes||(this._changes=new Rt)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,n){return this._results.reduce(e,n)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,n){const r=this;r.dirty=!1;const o=ze(e);(this._changesDetected=!function ky(t,e,n){if(t.length!==e.length)return!1;for(let r=0;r{class t{}return t.__NG_ELEMENT_ID__=LC,t})();const OC=Ot,kC=class extends OC{constructor(e,n,r){super(),this._declarationLView=e,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(e){const n=this._declarationTContainer.tViews,r=jr(this._declarationLView,n,e,16,null,n.declTNode,null,null,null,null);r[17]=this._declarationLView[this._declarationTContainer.index];const i=this._declarationLView[19];return null!==i&&(r[19]=i.createEmbeddedView(n)),Br(n,r,e),new Kr(r)}};function LC(){return vi(de(),y())}function vi(t,e){return 4&t.type?new kC(e,t,ar(t,e)):null}let Et=(()=>{class t{}return t.__NG_ELEMENT_ID__=VC,t})();function VC(){return gp(de(),y())}const jC=Et,hp=class extends jC{constructor(e,n,r){super(),this._lContainer=e,this._hostTNode=n,this._hostLView=r}get element(){return ar(this._hostTNode,this._hostLView)}get injector(){return new Tn(this._hostTNode,this._hostLView)}get parentInjector(){const e=Ho(this._hostTNode,this._hostLView);if(ec(e)){const n=Sn(e,this._hostLView),r=Mn(e);return new Tn(n[1].data[r+8],n)}return new Tn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const n=pp(this._lContainer);return null!==n&&n[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,n,r){const o=e.createEmbeddedView(n||{});return this.insert(o,r),o}createComponent(e,n,r,o,i){const s=e&&!function Mr(t){return"function"==typeof t}(e);let a;if(s)a=n;else{const d=n||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.ngModuleRef}const u=s?e:new Qa(De(e)),l=r||this.parentInjector;if(!i&&null==u.ngModule&&l){const d=l.get(ur,null);d&&(i=d)}const c=u.create(l,o,void 0,i);return this.insert(c.hostView,a),c}insert(e,n){const r=e._lView,o=r[1];if(function ny(t){return tt(t[3])}(r)){const c=this.indexOf(e);if(-1!==c)this.detach(c);else{const d=r[3],f=new hp(d,d[6],d[3]);f.detach(f.indexOf(e))}}const i=this._adjustIndex(n),s=this._lContainer;!function s_(t,e,n,r){const o=10+r,i=n.length;r>0&&(n[o-1][4]=e),r0)r.push(s[a/2]);else{const l=i[a+1],c=e[-u];for(let d=10;d{class t{constructor(n){this.appInits=n,this.resolve=Ci,this.reject=Ci,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:u})});n.push(s)}}Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}}return t.\u0275fac=function(n){return new(n||t)(Q(cu,8))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const to=new j("AppId"),fb={provide:to,useFactory:function db(){return`${du()}${du()}${du()}`},deps:[]};function du(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Hp=new j("Platform Initializer"),fu=new j("Platform ID"),hb=new j("appBootstrapListener");let pb=(()=>{class t{log(n){console.log(n)}warn(n){console.warn(n)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const Yt=new j("LocaleId"),$p=new j("DefaultCurrencyCode");class gb{constructor(e,n){this.ngModuleFactory=e,this.componentFactories=n}}let Up=(()=>{class t{compileModuleSync(n){return new Za(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=mt(Ue(n).declarations).reduce((s,a)=>{const u=De(a);return u&&s.push(new Qa(u)),s},[]);return new gb(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const yb=(()=>Promise.resolve(0))();function hu(t){"undefined"==typeof Zone?yb.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class Ee{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Rt(!1),this.onMicrotaskEmpty=new Rt(!1),this.onStable=new Rt(!1),this.onError=new Rt(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function Db(){let t=$.requestAnimationFrame,e=$.cancelAnimationFrame;if("undefined"!=typeof Zone&&t&&e){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function wb(t){const e=()=>{!function vb(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call($,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,gu(t),t.isCheckStableRunning=!0,pu(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),gu(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{try{return Gp(t),n.invokeTask(o,i,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||t.shouldCoalesceRunChangeDetection)&&e(),Wp(t)}},onInvoke:(n,r,o,i,s,a,u)=>{try{return Gp(t),n.invoke(o,i,s,a,u)}finally{t.shouldCoalesceRunChangeDetection&&e(),Wp(t)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(t._hasPendingMicrotasks=i.microTask,gu(t),pu(t)):"macroTask"==i.change&&(t.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.handleError(o,i),t.runOutsideAngular(()=>t.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Ee.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Ee.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(e,n,r){return this._inner.run(e,n,r)}runTask(e,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,e,_b,Ci,Ci);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(e,n,r){return this._inner.runGuarded(e,n,r)}runOutsideAngular(e){return this._outer.run(e)}}const _b={};function pu(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function gu(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function Gp(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function Wp(t){t._nesting--,pu(t)}class Eb{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Rt,this.onMicrotaskEmpty=new Rt,this.onStable=new Rt,this.onError=new Rt}run(e,n,r){return e.apply(n,r)}runGuarded(e,n,r){return e.apply(n,r)}runOutsideAngular(e){return e()}runTask(e,n,r,o){return e.apply(n,r)}}let mu=(()=>{class t{constructor(n){this._ngZone=n,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Ee.assertNotInAngularZone(),hu(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())hu(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(n,r,o){return[]}}return t.\u0275fac=function(n){return new(n||t)(Q(Ee))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})(),qp=(()=>{class t{constructor(){this._applications=new Map,yu.addToWindow(this)}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return yu.findTestabilityInTree(this,n,r)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();class Cb{addToWindow(e){}findTestabilityInTree(e,n,r){return null}}let ut,yu=new Cb;const zp=new j("AllowMultipleToken");function Qp(t,e,n=[]){const r=`Platform: ${e}`,o=new j(r);return(i=[])=>{let s=Zp();if(!s||s.injector.get(zp,!1))if(t)t(n.concat(i).concat({provide:o,useValue:!0}));else{const a=n.concat(i).concat({provide:o,useValue:!0},{provide:Ca,useValue:"platform"});!function Sb(t){if(ut&&!ut.destroyed&&!ut.injector.get(zp,!1))throw new Pe(400,"");ut=t.get(Yp);const e=t.get(Hp,null);e&&e.forEach(n=>n())}(Qe.create({providers:a,name:r}))}return function Tb(t){const e=Zp();if(!e)throw new Pe(401,"");return e}()}}function Zp(){return ut&&!ut.destroyed?ut:null}let Yp=(()=>{class t{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const a=function Ab(t,e){let n;return n="noop"===t?new Eb:("zone.js"===t?void 0:t)||new Ee({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!(null==e?void 0:e.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==e?void 0:e.ngZoneRunCoalescing)}),n}(r?r.ngZone:void 0,{ngZoneEventCoalescing:r&&r.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:r&&r.ngZoneRunCoalescing||!1}),u=[{provide:Ee,useValue:a}];return a.run(()=>{const l=Qe.create({providers:u,parent:this.injector,name:n.moduleType.name}),c=n.create(l),d=c.injector.get(Ln,null);if(!d)throw new Pe(402,"");return a.runOutsideAngular(()=>{const f=a.onError.subscribe({next:h=>{d.handleError(h)}});c.onDestroy(()=>{Du(this._modules,c),f.unsubscribe()})}),function xb(t,e,n){try{const r=n();return Oa(r)?r.catch(o=>{throw e.runOutsideAngular(()=>t.handleError(o)),o}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(d,a,()=>{const f=c.injector.get(dr);return f.runInitializers(),f.donePromise.then(()=>(function iE(t){Oe(t,"Expected localeId to be defined"),"string"==typeof t&&(Th=t.toLowerCase().replace(/_/g,"-"))}(c.injector.get(Yt,pi)||pi),this._moduleDoBootstrap(c),c))})})}bootstrapModule(n,r=[]){const o=Kp({},r);return function Ib(t,e,n){const r=new Za(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(bi);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new Pe(403,"");n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Pe(404,"");this._modules.slice().forEach(n=>n.destroy()),this._destroyListeners.forEach(n=>n()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(n){return new(n||t)(Q(Qe))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();function Kp(t,e){return Array.isArray(e)?e.reduce(Kp,t):Object.assign(Object.assign({},t),e)}let bi=(()=>{class t{constructor(n,r,o,i,s){this._zone=n,this._injector=r,this._exceptionHandler=o,this._componentFactoryResolver=i,this._initStatus=s,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const a=new K(l=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{l.next(this._stable),l.complete()})}),u=new K(l=>{let c;this._zone.runOutsideAngular(()=>{c=this._zone.onStable.subscribe(()=>{Ee.assertNotInAngularZone(),hu(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,l.next(!0))})})});const d=this._zone.onUnstable.subscribe(()=>{Ee.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{l.next(!1)}))});return()=>{c.unsubscribe(),d.unsubscribe()}});this.isStable=function gm(...t){let e=Number.POSITIVE_INFINITY,n=null,r=t[t.length-1];return mo(r)?(n=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(e=t.pop())):"number"==typeof r&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof K?t[0]:zi(e)(vo(t,n))}(a,u.pipe(function Im(){return t=>wl()(function Em(t,e){return function(r){let o;if(o="function"==typeof t?t:function(){return t},"function"==typeof e)return r.lift(new Cm(o,e));const i=Object.create(r,_m);return i.source=r,i.subjectFactory=o,i}}(bm)(t))}()))}bootstrap(n,r){if(!this._initStatus.done)throw new Pe(405,"");let o;o=n instanceof Xh?n:this._componentFactoryResolver.resolveComponentFactory(n),this.componentTypes.push(o.componentType);const i=function Mb(t){return t.isBoundToModule}(o)?void 0:this._injector.get(ur),a=o.create(Qe.NULL,[],r||o.selector,i),u=a.location.nativeElement,l=a.injector.get(mu,null),c=l&&a.injector.get(qp);return l&&c&&c.registerApplication(u,l),a.onDestroy(()=>{this.detachView(a.hostView),Du(this.components,a),c&&c.unregisterApplication(u)}),this._loadComponent(a),a}tick(){if(this._runningTick)throw new Pe(101,"");try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;Du(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(hb,[]).concat(this._bootstrapListeners).forEach(o=>o(n))}ngOnDestroy(){this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return t.\u0275fac=function(n){return new(n||t)(Q(Ee),Q(Qe),Q(Ln),Q(Yr),Q(dr))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();function Du(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}let Xp=!0,Pb=(()=>{class t{}return t.__NG_ELEMENT_ID__=Rb,t})();function Rb(t){return function Ob(t,e,n){if(So(t)&&!n){const r=Le(t.index,e);return new Kr(r,r)}return 47&t.type?new Kr(e[16],e):null}(de(),y(),16==(16&t))}class sg{constructor(){}supports(e){return $r(e)}create(e){return new Hb(e)}}const Bb=(t,e)=>e;class Hb{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||Bb}forEachItem(e){let n;for(n=this._itHead;null!==n;n=n._next)e(n)}forEachOperation(e){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,n,r,o){let i;return null===e?i=this._itTail:(i=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._reinsertAfter(e,i,o)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(e.item,n)||this._addIdentityChange(e,n),this._moveAfter(e,i,o)):e=this._addAfter(new $b(n,r),i,o),e}_verifyReinsertion(e,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?e=this._reinsertAfter(i,e._prev,o):e.currentIndex!=o&&(e.currentIndex=o,this._addToMoves(e,o)),e}_truncate(e){for(;null!==e;){const n=e._next;this._addToRemovals(this._unlink(e)),e=n}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,n,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const o=e._prevRemoved,i=e._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(e,n,r),this._addToMoves(e,r),e}_moveAfter(e,n,r){return this._unlink(e),this._insertAfter(e,n,r),this._addToMoves(e,r),e}_addAfter(e,n,r){return this._insertAfter(e,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,n,r){const o=null===n?this._itHead:n._next;return e._next=o,e._prev=n,null===o?this._itTail=e:o._prev=e,null===n?this._itHead=e:n._next=e,null===this._linkedRecords&&(this._linkedRecords=new ag),this._linkedRecords.put(e),e.currentIndex=r,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const n=e._prev,r=e._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,e}_addToMoves(e,n){return e.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ag),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,n){return e.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class $b{constructor(e,n){this.item=e,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class Ub{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,e))return r;return null}remove(e){const n=e._prevDup,r=e._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class ag{constructor(){this.map=new Map}put(e){const n=e.trackById;let r=this.map.get(n);r||(r=new Ub,this.map.set(n,r)),r.add(e)}get(e,n){const o=this.map.get(e);return o?o.get(e,n):null}remove(e){const n=e.trackById;return this.map.get(n).remove(e)&&this.map.delete(n),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function ug(t,e,n){const r=t.previousIndex;if(null===r)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,n){if(e){const r=e._prev;return n._next=e,n._prev=r,e._prev=n,r&&(r._next=n),e===this._mapHead&&(this._mapHead=n),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(e,n){if(this._records.has(e)){const o=this._records.get(e);this._maybeAddToChanges(o,n);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new Wb(e);return this._records.set(e,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,n){Object.is(n,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=n,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,n){e instanceof Map?e.forEach(n):Object.keys(e).forEach(r=>n(e[r],r))}}class Wb{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function cg(){return new no([new sg])}let no=(()=>{class t{constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new t(n)}static extend(n){return{provide:t,useFactory:r=>t.create(n,r||cg()),deps:[[t,new Nr,new Rn]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new Error(`Cannot find a differ supporting object '${n}' of type '${function qb(t){return t.name||typeof t}(n)}'`)}}return t.\u0275prov=ee({token:t,providedIn:"root",factory:cg}),t})();function dg(){return new fr([new lg])}let fr=(()=>{class t{constructor(n){this.factories=n}static create(n,r){if(r){const o=r.factories.slice();n=n.concat(o)}return new t(n)}static extend(n){return{provide:t,useFactory:r=>t.create(n,r||dg()),deps:[[t,new Nr,new Rn]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(r)return r;throw new Error(`Cannot find a differ supporting object '${n}'`)}}return t.\u0275prov=ee({token:t,providedIn:"root",factory:dg}),t})();const zb=[new lg],Zb=new no([new sg]),Yb=new fr(zb),Kb=Qp(null,"core",[{provide:fu,useValue:"unknown"},{provide:Yp,deps:[Qe]},{provide:qp,deps:[]},{provide:pb,deps:[]}]),n0=[{provide:bi,useClass:bi,deps:[Ee,Qe,Ln,Yr,dr]},{provide:fC,deps:[Ee],useFactory:function r0(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(n){e.push(n)}}},{provide:dr,useClass:dr,deps:[[new Rn,cu]]},{provide:Up,useClass:Up,deps:[]},fb,{provide:no,useFactory:function Jb(){return Zb},deps:[]},{provide:fr,useFactory:function Xb(){return Yb},deps:[]},{provide:Yt,useFactory:function e0(t){return t||function t0(){return"undefined"!=typeof $localize&&$localize.locale||pi}()},deps:[[new zo(Yt),new Rn,new Nr]]},{provide:$p,useValue:"USD"}];let o0=(()=>{class t{constructor(n){}}return t.\u0275fac=function(n){return new(n||t)(Q(bi))},t.\u0275mod=mr({type:t}),t.\u0275inj=yn({providers:n0}),t})(),Mi=null;function ro(){return Mi}const Ct=new j("DocumentToken");var Fe=(()=>((Fe=Fe||{})[Fe.Decimal=0]="Decimal",Fe[Fe.Percent=1]="Percent",Fe[Fe.Currency=2]="Currency",Fe[Fe.Scientific=3]="Scientific",Fe))(),le=(()=>((le=le||{})[le.Zero=0]="Zero",le[le.One=1]="One",le[le.Two=2]="Two",le[le.Few=3]="Few",le[le.Many=4]="Many",le[le.Other=5]="Other",le))(),se=(()=>((se=se||{})[se.Format=0]="Format",se[se.Standalone=1]="Standalone",se))(),O=(()=>((O=O||{})[O.Narrow=0]="Narrow",O[O.Abbreviated=1]="Abbreviated",O[O.Wide=2]="Wide",O[O.Short=3]="Short",O))(),te=(()=>((te=te||{})[te.Short=0]="Short",te[te.Medium=1]="Medium",te[te.Long=2]="Long",te[te.Full=3]="Full",te))(),C=(()=>((C=C||{})[C.Decimal=0]="Decimal",C[C.Group=1]="Group",C[C.List=2]="List",C[C.PercentSign=3]="PercentSign",C[C.PlusSign=4]="PlusSign",C[C.MinusSign=5]="MinusSign",C[C.Exponential=6]="Exponential",C[C.SuperscriptingExponent=7]="SuperscriptingExponent",C[C.PerMille=8]="PerMille",C[C.Infinity=9]="Infinity",C[C.NaN=10]="NaN",C[C.TimeSeparator=11]="TimeSeparator",C[C.CurrencyDecimal=12]="CurrencyDecimal",C[C.CurrencyGroup=13]="CurrencyGroup",C))();function Si(t,e){return Ke(Se(t)[w.DateFormat],e)}function Ti(t,e){return Ke(Se(t)[w.TimeFormat],e)}function Ai(t,e){return Ke(Se(t)[w.DateTimeFormat],e)}function Ye(t,e){const n=Se(t),r=n[w.NumberSymbols][e];if(void 0===r){if(e===C.CurrencyDecimal)return n[w.NumberSymbols][C.Decimal];if(e===C.CurrencyGroup)return n[w.NumberSymbols][C.Group]}return r}const D0=function Mh(t){return Se(t)[w.PluralCase]};function gg(t){if(!t[w.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[w.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Ke(t,e){for(let n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function bu(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}const b0=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,oo={},I0=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var pe=(()=>((pe=pe||{})[pe.Short=0]="Short",pe[pe.ShortGMT=1]="ShortGMT",pe[pe.Long=2]="Long",pe[pe.Extended=3]="Extended",pe))(),b=(()=>((b=b||{})[b.FullYear=0]="FullYear",b[b.Month=1]="Month",b[b.Date=2]="Date",b[b.Hours=3]="Hours",b[b.Minutes=4]="Minutes",b[b.Seconds=5]="Seconds",b[b.FractionalSeconds=6]="FractionalSeconds",b[b.Day=7]="Day",b))(),N=(()=>((N=N||{})[N.DayPeriods=0]="DayPeriods",N[N.Days=1]="Days",N[N.Months=2]="Months",N[N.Eras=3]="Eras",N))();function M0(t,e,n,r){let o=function O0(t){if(Dg(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,i=1,s=1]=t.split("-").map(a=>+a);return xi(o,i-1,s)}const n=parseFloat(t);if(!isNaN(t-n))return new Date(n);let r;if(r=t.match(b0))return function k0(t){const e=new Date(0);let n=0,r=0;const o=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),r=Number(t[9]+t[11])),o.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-n,a=Number(t[5]||0)-r,u=Number(t[6]||0),l=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,a,u,l),e}(r)}const e=new Date(t);if(!Dg(e))throw new Error(`Unable to convert "${t}" into a date`);return e}(t);e=kt(n,e)||e;let a,s=[];for(;e;){if(a=I0.exec(e),!a){s.push(e);break}{s=s.concat(a.slice(1));const c=s.pop();if(!c)break;e=c}}let u=o.getTimezoneOffset();r&&(u=yg(r,u),o=function R0(t,e,n){const r=n?-1:1,o=t.getTimezoneOffset();return function P0(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,r*(yg(e,o)-o))}(o,r,!0));let l="";return s.forEach(c=>{const d=function F0(t){if(Mu[t])return Mu[t];let e;switch(t){case"G":case"GG":case"GGG":e=Z(N.Eras,O.Abbreviated);break;case"GGGG":e=Z(N.Eras,O.Wide);break;case"GGGGG":e=Z(N.Eras,O.Narrow);break;case"y":e=ce(b.FullYear,1,0,!1,!0);break;case"yy":e=ce(b.FullYear,2,0,!0,!0);break;case"yyy":e=ce(b.FullYear,3,0,!1,!0);break;case"yyyy":e=ce(b.FullYear,4,0,!1,!0);break;case"Y":e=Ri(1);break;case"YY":e=Ri(2,!0);break;case"YYY":e=Ri(3);break;case"YYYY":e=Ri(4);break;case"M":case"L":e=ce(b.Month,1,1);break;case"MM":case"LL":e=ce(b.Month,2,1);break;case"MMM":e=Z(N.Months,O.Abbreviated);break;case"MMMM":e=Z(N.Months,O.Wide);break;case"MMMMM":e=Z(N.Months,O.Narrow);break;case"LLL":e=Z(N.Months,O.Abbreviated,se.Standalone);break;case"LLLL":e=Z(N.Months,O.Wide,se.Standalone);break;case"LLLLL":e=Z(N.Months,O.Narrow,se.Standalone);break;case"w":e=Iu(1);break;case"ww":e=Iu(2);break;case"W":e=Iu(1,!0);break;case"d":e=ce(b.Date,1);break;case"dd":e=ce(b.Date,2);break;case"c":case"cc":e=ce(b.Day,1);break;case"ccc":e=Z(N.Days,O.Abbreviated,se.Standalone);break;case"cccc":e=Z(N.Days,O.Wide,se.Standalone);break;case"ccccc":e=Z(N.Days,O.Narrow,se.Standalone);break;case"cccccc":e=Z(N.Days,O.Short,se.Standalone);break;case"E":case"EE":case"EEE":e=Z(N.Days,O.Abbreviated);break;case"EEEE":e=Z(N.Days,O.Wide);break;case"EEEEE":e=Z(N.Days,O.Narrow);break;case"EEEEEE":e=Z(N.Days,O.Short);break;case"a":case"aa":case"aaa":e=Z(N.DayPeriods,O.Abbreviated);break;case"aaaa":e=Z(N.DayPeriods,O.Wide);break;case"aaaaa":e=Z(N.DayPeriods,O.Narrow);break;case"b":case"bb":case"bbb":e=Z(N.DayPeriods,O.Abbreviated,se.Standalone,!0);break;case"bbbb":e=Z(N.DayPeriods,O.Wide,se.Standalone,!0);break;case"bbbbb":e=Z(N.DayPeriods,O.Narrow,se.Standalone,!0);break;case"B":case"BB":case"BBB":e=Z(N.DayPeriods,O.Abbreviated,se.Format,!0);break;case"BBBB":e=Z(N.DayPeriods,O.Wide,se.Format,!0);break;case"BBBBB":e=Z(N.DayPeriods,O.Narrow,se.Format,!0);break;case"h":e=ce(b.Hours,1,-12);break;case"hh":e=ce(b.Hours,2,-12);break;case"H":e=ce(b.Hours,1);break;case"HH":e=ce(b.Hours,2);break;case"m":e=ce(b.Minutes,1);break;case"mm":e=ce(b.Minutes,2);break;case"s":e=ce(b.Seconds,1);break;case"ss":e=ce(b.Seconds,2);break;case"S":e=ce(b.FractionalSeconds,1);break;case"SS":e=ce(b.FractionalSeconds,2);break;case"SSS":e=ce(b.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=Fi(pe.Short);break;case"ZZZZZ":e=Fi(pe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=Fi(pe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=Fi(pe.Long);break;default:return null}return Mu[t]=e,e}(c);l+=d?d(o,n,u):"''"===c?"'":c.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function xi(t,e,n){const r=new Date(0);return r.setFullYear(t,e,n),r.setHours(0,0,0),r}function kt(t,e){const n=function f0(t){return Se(t)[w.LocaleId]}(t);if(oo[n]=oo[n]||{},oo[n][e])return oo[n][e];let r="";switch(e){case"shortDate":r=Si(t,te.Short);break;case"mediumDate":r=Si(t,te.Medium);break;case"longDate":r=Si(t,te.Long);break;case"fullDate":r=Si(t,te.Full);break;case"shortTime":r=Ti(t,te.Short);break;case"mediumTime":r=Ti(t,te.Medium);break;case"longTime":r=Ti(t,te.Long);break;case"fullTime":r=Ti(t,te.Full);break;case"short":const o=kt(t,"shortTime"),i=kt(t,"shortDate");r=Ni(Ai(t,te.Short),[o,i]);break;case"medium":const s=kt(t,"mediumTime"),a=kt(t,"mediumDate");r=Ni(Ai(t,te.Medium),[s,a]);break;case"long":const u=kt(t,"longTime"),l=kt(t,"longDate");r=Ni(Ai(t,te.Long),[u,l]);break;case"full":const c=kt(t,"fullTime"),d=kt(t,"fullDate");r=Ni(Ai(t,te.Full),[c,d])}return r&&(oo[n][e]=r),r}function Ni(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(n,r){return null!=e&&r in e?e[r]:n})),t}function lt(t,e,n="-",r,o){let i="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,i=n));let s=String(t);for(;s.length0||a>-n)&&(a+=n),t===b.Hours)0===a&&-12===n&&(a=12);else if(t===b.FractionalSeconds)return function S0(t,e){return lt(t,3).substr(0,e)}(a,e);const u=Ye(s,C.MinusSign);return lt(a,e,u,r,o)}}function Z(t,e,n=se.Format,r=!1){return function(o,i){return function A0(t,e,n,r,o,i){switch(n){case N.Months:return function g0(t,e,n){const r=Se(t),i=Ke([r[w.MonthsFormat],r[w.MonthsStandalone]],e);return Ke(i,n)}(e,o,r)[t.getMonth()];case N.Days:return function p0(t,e,n){const r=Se(t),i=Ke([r[w.DaysFormat],r[w.DaysStandalone]],e);return Ke(i,n)}(e,o,r)[t.getDay()];case N.DayPeriods:const s=t.getHours(),a=t.getMinutes();if(i){const l=function _0(t){const e=Se(t);return gg(e),(e[w.ExtraData][2]||[]).map(r=>"string"==typeof r?bu(r):[bu(r[0]),bu(r[1])])}(e),c=function v0(t,e,n){const r=Se(t);gg(r);const i=Ke([r[w.ExtraData][0],r[w.ExtraData][1]],e)||[];return Ke(i,n)||[]}(e,o,r),d=l.findIndex(f=>{if(Array.isArray(f)){const[h,p]=f,m=s>=h.hours&&a>=h.minutes,D=s0?Math.floor(o/60):Math.ceil(o/60);switch(t){case pe.Short:return(o>=0?"+":"")+lt(s,2,i)+lt(Math.abs(o%60),2,i);case pe.ShortGMT:return"GMT"+(o>=0?"+":"")+lt(s,1,i);case pe.Long:return"GMT"+(o>=0?"+":"")+lt(s,2,i)+":"+lt(Math.abs(o%60),2,i);case pe.Extended:return 0===r?"Z":(o>=0?"+":"")+lt(s,2,i)+":"+lt(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${t}"`)}}}function mg(t){return xi(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function Iu(t,e=!1){return function(n,r){let o;if(e){const i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{const i=mg(n),s=function N0(t){const e=xi(t,0,1).getDay();return xi(t,0,1+(e<=4?4:11)-e)}(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return lt(o,t,Ye(r,C.MinusSign))}}function Ri(t,e=!1){return function(n,r){return lt(mg(n).getFullYear(),t,Ye(r,C.MinusSign),e)}}const Mu={};function yg(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function Dg(t){return t instanceof Date&&!isNaN(t.valueOf())}const L0=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function xu(t){const e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}class ki{}let z0=(()=>{class t extends ki{constructor(n){super(),this.locale=n}getPluralCategory(n,r){switch(D0(r||this.locale)(n)){case le.Zero:return"zero";case le.One:return"one";case le.Two:return"two";case le.Few:return"few";case le.Many:return"many";default:return"other"}}}return t.\u0275fac=function(n){return new(n||t)(Q(Yt))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();class K0{constructor(e,n,r,o){this.$implicit=e,this.ngForOf=n,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Nu=(()=>{class t{constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new K0(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Eg(a,o)}});for(let o=0,i=r.length;o{Eg(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}}return t.\u0275fac=function(n){return new(n||t)(R(Et),R(Ot),R(no))},t.\u0275dir=$e({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),t})();function Eg(t,e){t.context.$implicit=e.item}let Fu=(()=>{class t{constructor(n,r){this._viewContainer=n,this._context=new J0,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){Cg("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){Cg("ngIfElse",n),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(n,r){return!0}}return t.\u0275fac=function(n){return new(n||t)(R(Et),R(Ot))},t.\u0275dir=$e({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),t})();class J0{constructor(){this.$implicit=null,this.ngIf=null}}function Cg(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${k(e)}'.`)}function ct(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${k(t)}'`)}class oI{createSubscription(e,n){return e.subscribe({next:n,error:r=>{throw r}})}dispose(e){e.unsubscribe()}onDestroy(e){e.unsubscribe()}}class iI{createSubscription(e,n){return e.then(n,r=>{throw r})}dispose(e){}onDestroy(e){}}const sI=new iI,aI=new oI;let Ou=(()=>{class t{constructor(n){this._ref=n,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(n){return this._obj?n!==this._obj?(this._dispose(),this.transform(n)):this._latestValue:(n&&this._subscribe(n),this._latestValue)}_subscribe(n){this._obj=n,this._strategy=this._selectStrategy(n),this._subscription=this._strategy.createSubscription(n,r=>this._updateLatestValue(n,r))}_selectStrategy(n){if(Oa(n))return sI;if(Pf(n))return aI;throw ct(t,n)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(n,r){n===this._obj&&(this._latestValue=r,this._ref.markForCheck())}}return t.\u0275fac=function(n){return new(n||t)(R(Pb,16))},t.\u0275pipe=xe({name:"async",type:t,pure:!1}),t})();const fI=new j("DATE_PIPE_DEFAULT_TIMEZONE");let Ig=(()=>{class t{constructor(n,r){this.locale=n,this.defaultTimezone=r}transform(n,r="mediumDate",o,i){var s;if(null==n||""===n||n!=n)return null;try{return M0(n,r,i||this.locale,null!==(s=null!=o?o:this.defaultTimezone)&&void 0!==s?s:void 0)}catch(a){throw ct(t,a.message)}}}return t.\u0275fac=function(n){return new(n||t)(R(Yt,16),R(fI,24))},t.\u0275pipe=xe({name:"date",type:t,pure:!0}),t})(),Sg=(()=>{class t{constructor(n){this._locale=n}transform(n,r,o){if(!function ku(t){return!(null==t||""===t||t!=t)}(n))return null;o=o||this._locale;try{return function U0(t,e,n){return function Tu(t,e,n,r,o,i,s=!1){let a="",u=!1;if(isFinite(t)){let l=function W0(t){let r,o,i,s,a,e=Math.abs(t)+"",n=0;for((o=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(o<0&&(o=i),o+=+e.slice(i+1),e=e.substring(0,i)):o<0&&(o=e.length),i=0;"0"===e.charAt(i);i++);if(i===(a=e.length))r=[0],o=1;else{for(a--;"0"===e.charAt(a);)a--;for(o-=i,r=[],s=0;i<=a;i++,s++)r[s]=Number(e.charAt(i))}return o>22&&(r=r.splice(0,21),n=o-1,o=1),{digits:r,exponent:n,integerLen:o}}(t);s&&(l=function G0(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(l));let c=e.minInt,d=e.minFrac,f=e.maxFrac;if(i){const g=i.match(L0);if(null===g)throw new Error(`${i} is not a valid digit info`);const E=g[1],F=g[3],V=g[5];null!=E&&(c=xu(E)),null!=F&&(d=xu(F)),null!=V?f=xu(V):null!=F&&d>f&&(f=d)}!function q0(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let r=t.digits,o=r.length-t.integerLen;const i=Math.min(Math.max(e,o),n);let s=i+t.integerLen,a=r[s];if(s>0){r.splice(Math.max(t.integerLen,s));for(let d=s;d=5)if(s-1<0){for(let d=0;d>s;d--)r.unshift(0),t.integerLen++;r.unshift(1),t.integerLen++}else r[s-1]++;for(;o=l?p.pop():u=!1),f>=10?1:0},0);c&&(r.unshift(c),t.integerLen++)}(l,d,f);let h=l.digits,p=l.integerLen;const m=l.exponent;let D=[];for(u=h.every(g=>!g);p0?D=h.splice(p,h.length):(D=h,h=[0]);const _=[];for(h.length>=e.lgSize&&_.unshift(h.splice(-e.lgSize,h.length).join(""));h.length>e.gSize;)_.unshift(h.splice(-e.gSize,h.length).join(""));h.length&&_.unshift(h.join("")),a=_.join(Ye(n,r)),D.length&&(a+=Ye(n,o)+D.join("")),m&&(a+=Ye(n,C.Exponential)+"+"+m)}else a=Ye(n,C.Infinity);return a=t<0&&!u?e.negPre+a+e.negSuf:e.posPre+a+e.posSuf,a}(t,function Au(t,e="-"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},r=t.split(";"),o=r[0],i=r[1],s=-1!==o.indexOf(".")?o.split("."):[o.substring(0,o.lastIndexOf("0")+1),o.substring(o.lastIndexOf("0")+1)],a=s[0],u=s[1]||"";n.posPre=a.substr(0,a.indexOf("#"));for(let c=0;c{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=mr({type:t}),t.\u0275inj=yn({providers:[{provide:ki,useClass:z0}]}),t})();class Vu extends class TI extends class u0{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function a0(t){Mi||(Mi=t)}(new Vu)}onAndCancel(e,n,r){return e.addEventListener(n,r,!1),()=>{e.removeEventListener(n,r,!1)}}dispatchEvent(e,n){e.dispatchEvent(n)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,n){return(n=n||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,n){return"window"===n?window:"document"===n?e:"body"===n?e.body:null}getBaseHref(e){const n=function AI(){return so=so||document.querySelector("base"),so?so.getAttribute("href"):null}();return null==n?null:function xI(t){Li=Li||document.createElement("a"),Li.setAttribute("href",t);const e=Li.pathname;return"/"===e.charAt(0)?e:`/${e}`}(n)}resetBaseElement(){so=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return function Q0(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===e)return decodeURIComponent(i)}return null}(document.cookie,e)}}let Li,so=null;const xg=new j("TRANSITION_ID"),FI=[{provide:cu,useFactory:function NI(t,e,n){return()=>{n.get(dr).donePromise.then(()=>{const r=ro(),o=e.querySelectorAll(`style[ng-transition="${t}"]`);for(let i=0;i{const i=e.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},$.getAllAngularTestabilities=()=>e.getAllTestabilities(),$.getAllAngularRootElements=()=>e.getAllRootElements(),$.frameworkStabilizers||($.frameworkStabilizers=[]),$.frameworkStabilizers.push(r=>{const o=$.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(u){s=s||u,i--,0==i&&r(s)};o.forEach(function(u){u.whenStable(a)})})}findTestabilityInTree(e,n,r){if(null==n)return null;const o=e.getTestability(n);return null!=o?o:r?ro().isShadowRoot(n)?this.findTestabilityInTree(e,n.host,!0):this.findTestabilityInTree(e,n.parentElement,!0):null}}let PI=(()=>{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const Vi=new j("EventManagerPlugins");let ji=(()=>{class t{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>o.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}addGlobalEventListener(n,r,o){return this._findPluginFor(r).addGlobalEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const o=this._plugins;for(let i=0;i{class t{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})(),ao=(()=>{class t extends Fg{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,o){n.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(Pg),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(n,o,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(Pg))}}return t.\u0275fac=function(n){return new(n||t)(Q(Ct))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();function Pg(t){ro().remove(t)}const Bu={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Hu=/%COMP%/g;function Bi(t,e,n){for(let r=0;r{if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let $u=(()=>{class t{constructor(n,r,o){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Uu(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case dt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new jI(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(n),o}case 1:case dt.ShadowDom:return new BI(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const o=Bi(r.id,r.styles,[]);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\u0275fac=function(n){return new(n||t)(Q(ji),Q(ao),Q(to))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();class Uu{constructor(e){this.eventManager=e,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(e,n){return n?document.createElementNS(Bu[n]||n,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,n){e.appendChild(n)}insertBefore(e,n,r){e&&e.insertBefore(n,r)}removeChild(e,n){e&&e.removeChild(n)}selectRootElement(e,n){let r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error(`The selector "${e}" did not match any elements`);return n||(r.textContent=""),r}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,n,r,o){if(o){n=o+":"+n;const i=Bu[o];i?e.setAttributeNS(i,n,r):e.setAttribute(n,r)}else e.setAttribute(n,r)}removeAttribute(e,n,r){if(r){const o=Bu[r];o?e.removeAttributeNS(o,n):e.removeAttribute(`${r}:${n}`)}else e.removeAttribute(n)}addClass(e,n){e.classList.add(n)}removeClass(e,n){e.classList.remove(n)}setStyle(e,n,r,o){o&(je.DashCase|je.Important)?e.style.setProperty(n,r,o&je.Important?"important":""):e.style[n]=r}removeStyle(e,n,r){r&je.DashCase?e.style.removeProperty(n):e.style[n]=""}setProperty(e,n,r){e[n]=r}setValue(e,n){e.nodeValue=n}listen(e,n,r){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,n,kg(r)):this.eventManager.addEventListener(e,n,kg(r))}}class jI extends Uu{constructor(e,n,r,o){super(e),this.component=r;const i=Bi(o+"-"+r.id,r.styles,[]);n.addStyles(i),this.contentAttr=function kI(t){return"_ngcontent-%COMP%".replace(Hu,t)}(o+"-"+r.id),this.hostAttr=function LI(t){return"_nghost-%COMP%".replace(Hu,t)}(o+"-"+r.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,n){const r=super.createElement(e,n);return super.setAttribute(r,this.contentAttr,""),r}}class BI extends Uu{constructor(e,n,r,o){super(e),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Bi(o.id,o.styles,[]);for(let s=0;s{class t extends Ng{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}}return t.\u0275fac=function(n){return new(n||t)(Q(Ct))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const Vg=["alt","control","meta","shift"],UI={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},jg={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},GI={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let WI=(()=>{class t extends Ng{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,r,o){const i=t.parseEventName(r),s=t.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ro().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=t._normalizeKey(r.pop());let s="";if(Vg.forEach(u=>{const l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,0!=r.length||0===i.length)return null;const a={};return a.domEventName=o,a.fullKey=s,a}static getEventFullKey(n){let r="",o=function qI(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&jg.hasOwnProperty(e)&&(e=jg[e]))}return UI[e]||e}(n);return o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Vg.forEach(i=>{i!=o&&GI[i](n)&&(r+=i+".")}),r+=o,r}static eventCallback(n,r,o){return i=>{t.getEventFullKey(i)===n&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return t.\u0275fac=function(n){return new(n||t)(Q(Ct))},t.\u0275prov=ee({token:t,factory:t.\u0275fac}),t})();const YI=Qp(Kb,"browser",[{provide:fu,useValue:"browser"},{provide:Hp,useValue:function zI(){Vu.makeCurrent(),ju.init()},multi:!0},{provide:Ct,useFactory:function ZI(){return function Jm(t){us=t}(document),document},deps:[]}]),KI=[{provide:Ca,useValue:"root"},{provide:Ln,useFactory:function QI(){return new Ln},deps:[]},{provide:Vi,useClass:HI,multi:!0,deps:[Ct,Ee,fu]},{provide:Vi,useClass:WI,multi:!0,deps:[Ct]},{provide:$u,useClass:$u,deps:[ji,ao,to]},{provide:tp,useExisting:$u},{provide:Fg,useExisting:ao},{provide:ao,useClass:ao,deps:[Ct]},{provide:mu,useClass:mu,deps:[Ee]},{provide:ji,useClass:ji,deps:[Vi,Ee]},{provide:class SI{},useClass:PI,deps:[]}];let JI=(()=>{class t{constructor(n){if(n)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(n){return{ngModule:t,providers:[{provide:to,useValue:n.appId},{provide:xg,useExisting:to},FI]}}}return t.\u0275fac=function(n){return new(n||t)(Q(t,12))},t.\u0275mod=mr({type:t}),t.\u0275inj=yn({providers:KI,imports:[EI,o0]}),t})();function uo(...t){let e=t[t.length-1];return mo(e)?(t.pop(),Wi(t,e)):vo(t)}function Wu(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(o){return o.lift(new lM(t,e,n))}}"undefined"!=typeof window&&window;class lM{constructor(e,n,r=!1){this.accumulator=e,this.seed=n,this.hasSeed=r}call(e,n){return n.subscribe(new cM(e,this.accumulator,this.seed,this.hasSeed))}}class cM extends U{constructor(e,n,r,o){super(e),this.accumulator=n,this._seed=r,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(e){this.hasSeed=!0,this._seed=e}_next(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}_tryNext(e){const n=this.index++;let r;try{r=this.accumulator(this.seed,e,n)}catch(o){this.destination.error(o)}this.seed=r,this.destination.next(r)}}function dn(t,e){return"function"==typeof e?n=>n.pipe(dn((r,o)=>vl(t(r,o)).pipe(St((i,s)=>e(r,i,o,s))))):n=>n.lift(new dM(t))}class dM{constructor(e){this.project=e}call(e,n){return n.subscribe(new fM(e,this.project))}}class fM extends Do{constructor(e,n){super(e),this.project=n,this.index=0}_next(e){let n;const r=this.index++;try{n=this.project(e,r)}catch(o){return void this.destination.error(o)}this._innerSub(n)}_innerSub(e){const n=this.innerSubscription;n&&n.unsubscribe();const r=new yo(this),o=this.destination;o.add(r),this.innerSubscription=_o(e,r),this.innerSubscription!==r&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:e}=this;(!e||e.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(e){this.destination.next(e)}}function Jt(){}function hr(t,e,n){return function(o){return o.lift(new hM(t,e,n))}}class hM{constructor(e,n,r){this.nextOrObserver=e,this.error=n,this.complete=r}call(e,n){return n.subscribe(new pM(e,this.nextOrObserver,this.error,this.complete))}}class pM extends U{constructor(e,n,r,o){super(e),this._tapNext=Jt,this._tapError=Jt,this._tapComplete=Jt,this._tapError=r||Jt,this._tapComplete=o||Jt,pn(n)?(this._context=this,this._tapNext=n):n&&(this._context=n,this._tapNext=n.next||Jt,this._tapError=n.error||Jt,this._tapComplete=n.complete||Jt)}_next(e){try{this._tapNext.call(this._context,e)}catch(n){return void this.destination.error(n)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(n){return void this.destination.error(n)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}const gM=new K(t=>t.complete());function $g(t){return t?function mM(t){return new K(e=>t.schedule(()=>e.complete()))}(t):gM}function DM({error:t,subscriber:e}){e.error(t)}class ye{constructor(e,n,r){this.kind=e,this.value=n,this.error=r,this.hasValue="N"===e}observe(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}}do(e,n,r){switch(this.kind){case"N":return e&&e(this.value);case"E":return n&&n(this.error);case"C":return r&&r()}}accept(e,n,r){return e&&"function"==typeof e.next?this.observe(e):this.do(e,n,r)}toObservable(){switch(this.kind){case"N":return uo(this.value);case"E":return function yM(t,e){return new K(e?n=>e.schedule(DM,0,{error:t,subscriber:n}):n=>n.error(t))}(this.error);case"C":return $g()}throw new Error("unexpected notification kind value")}static createNext(e){return void 0!==e?new ye("N",e):ye.undefinedValueNotification}static createError(e){return new ye("E",void 0,e)}static createComplete(){return ye.completeNotification}}ye.completeNotification=new ye("C"),ye.undefinedValueNotification=new ye("N",void 0);class vM{call(e,n){return n.subscribe(new wM(e))}}class wM extends U{constructor(e){super(e)}_next(e){this.destination.next(ye.createNext(e))}_error(e){const n=this.destination;n.next(ye.createError(e)),n.complete()}_complete(){const e=this.destination;e.next(ye.createComplete()),e.complete()}}class CM{call(e,n){return n.subscribe(new bM(e))}}class bM extends U{constructor(e){super(e)}_next(e){e.observe(this.destination)}}function Ug(t,e,n,r={terminateOnComplete:!0}){return new K(o=>{let i,s;try{i=t(),i.onmessage=a=>o.next(a.data),i.onerror=a=>o.error(a),s=e.pipe(function _M(){return function(e){return e.lift(new vM)}}(),hr(a=>{if(n&&a.hasValue){const u=n(a.value);i.postMessage(a,u)}else i.postMessage(a)})).subscribe()}catch(a){o.error(a)}return()=>{s&&s.unsubscribe(),i&&r.terminateOnComplete&&i.terminate()}}).pipe(St(({kind:o,value:i,error:s})=>new ye(o,i,s)),function EM(){return function(e){return e.lift(new CM)}}())}function IM(t,e){if(1&t&&(B(0,"li"),X(1),H()),2&t){const n=e.$implicit;me(1),rr(n)}}let MM=(()=>{class t{constructor(){this.events$=new Mt,this.eventList$=this.events$.pipe(Wu((n,r)=>(n.push(r),n),[])),this.filesToHash=new Mt,this.hashResult$=this.filesToHash.pipe(dn(n=>this.hashFile(n)))}calculateMD5(n){var r,o;this.events$.next("Main: file selected");const i=null===(o=null===(r=n.target)||void 0===r?void 0:r.files)||void 0===o?void 0:o[0];i&&this.filesToHash.next(i)}hashFile(n){return Ug(()=>{const o=new Worker(It.tu(new URL(It.p+It.u(13),It.b)),{name:"md5-worker",type:void 0});return this.events$.next("Main: worker created"),o},uo(n)).pipe(hr(o=>{this.events$.next(`Worker: ${o.message}`)}))}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=_n({type:t,selectors:[["app-single-worker"]],decls:18,vars:6,consts:[["type","file",3,"change"],[4,"ngFor","ngForOf"]],template:function(n,r){1&n&&(B(0,"h2"),X(1,"Single Worker"),H(),X(2," Select file to compute MD5 sum of, in webworker:\n"),B(3,"input",0),di("change",function(i){return r.calculateMD5(i)}),H(),B(4,"p"),X(5," \u2139\ufe0f If you select a particularly large file (>1GB) you will have time to select another file and see that the original worker is terminated and a new worker is created for the new file. This is because the main thread uses a "),B(6,"code"),X(7,"switchMap"),H(),X(8," , but if this behaviour was not desired, simply swapping in a "),B(9,"code"),X(10,"mergeMap"),H(),X(11," would allow both files to complete hashing.\n"),H(),B(12,"h3"),X(13,"Events:"),H(),B(14,"ol"),wt(15,"async"),an(16,IM,2,1,"li",1),wt(17,"async"),H()),2&n&&(me(14),Gr("data",Zt(15,2,r.hashResult$)),me(2),zt("ngForOf",Zt(17,4,r.eventList$)))},directives:[Nu],pipes:[Ou],styles:[""],changeDetection:0}),t})();class SM extends q{constructor(e,n){super()}schedule(e,n=0){return this}}class qu extends SM{constructor(e,n){super(e,n),this.scheduler=e,this.work=n,this.pending=!1}schedule(e,n=0){if(this.closed)return this;this.state=e;const r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,n)),this.pending=!0,this.delay=n,this.id=this.id||this.requestAsyncId(o,this.id,n),this}requestAsyncId(e,n,r=0){return setInterval(e.flush.bind(e,this),r)}recycleAsyncId(e,n,r=0){if(null!==r&&this.delay===r&&!1===this.pending)return n;clearInterval(n)}execute(e,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const r=this._execute(e,n);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,n){let o,r=!1;try{this.work(e)}catch(i){r=!0,o=!!i&&i||new Error(i)}if(r)return this.unsubscribe(),o}_unsubscribe(){const e=this.id,n=this.scheduler,r=n.actions,o=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&r.splice(o,1),null!=e&&(this.id=this.recycleAsyncId(n,e,null)),this.delay=null}}let Gg=(()=>{class t{constructor(n,r=t.now){this.SchedulerAction=n,this.now=r}schedule(n,r=0,o){return new this.SchedulerAction(this,n).schedule(o,r)}}return t.now=()=>Date.now(),t})();class bt extends Gg{constructor(e,n=Gg.now){super(e,()=>bt.delegate&&bt.delegate!==this?bt.delegate.now():n()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(e,n=0,r){return bt.delegate&&bt.delegate!==this?bt.delegate.schedule(e,n,r):super.schedule(e,n,r)}flush(e){const{actions:n}=this;if(this.active)return void n.push(e);let r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=n.shift());if(this.active=!1,r){for(;e=n.shift();)e.unsubscribe();throw r}}}const xM=new class AM extends bt{}(class TM extends qu{constructor(e,n){super(e,n),this.scheduler=e,this.work=n}schedule(e,n=0){return n>0?super.schedule(e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)}execute(e,n){return n>0||this.closed?super.execute(e,n):this._execute(e,n)}requestAsyncId(e,n,r=0){return null!==r&&r>0||null===r&&this.delay>0?super.requestAsyncId(e,n,r):e.flush(this)}});class FM{constructor(e,n=0){this.scheduler=e,this.delay=n}call(e,n){return n.subscribe(new Hi(e,this.scheduler,this.delay))}}class Hi extends U{constructor(e,n,r=0){super(e),this.scheduler=n,this.delay=r}static dispatch(e){const{notification:n,destination:r}=e;n.observe(r),this.unsubscribe()}scheduleMessage(e){this.destination.add(this.scheduler.schedule(Hi.dispatch,this.delay,new PM(e,this.destination)))}_next(e){this.scheduleMessage(ye.createNext(e))}_error(e){this.scheduleMessage(ye.createError(e)),this.unsubscribe()}_complete(){this.scheduleMessage(ye.createComplete()),this.unsubscribe()}}class PM{constructor(e,n){this.notification=e,this.destination=n}}class Wg extends Mt{constructor(e=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY,r){super(),this.scheduler=r,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=e<1?1:e,this._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(e){if(!this.isStopped){const n=this._events;n.push(e),n.length>this._bufferSize&&n.shift()}super.next(e)}nextTimeWindow(e){this.isStopped||(this._events.push(new RM(this._getNow(),e)),this._trimBufferThenGetEvents()),super.next(e)}_subscribe(e){const n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,i=r.length;let s;if(this.closed)throw new mn;if(this.isStopped||this.hasError?s=q.EMPTY:(this.observers.push(e),s=new pl(this,e)),o&&e.add(e=new Hi(e,o)),n)for(let a=0;an&&(s=Math.max(s,i-n)),s>0&&o.splice(0,s),o}}class RM{constructor(e,n){this.time=e,this.value=n}}const qg=new bt(qu),zu=qg;class OM extends U{notifyNext(e,n,r,o,i){this.destination.next(n)}notifyError(e,n){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class kM extends U{constructor(e,n,r){super(),this.parent=e,this.outerValue=n,this.outerIndex=r,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function LM(t,e,n,r,o=new kM(t,n,r)){if(!o.closed)return e instanceof K?e.subscribe(o):Gi(e)(o)}const zg={};function Qg(...t){let e,n;return mo(t[t.length-1])&&(n=t.pop()),"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&ho(t[0])&&(t=t[0]),vo(t,n).lift(new VM(e))}class VM{constructor(e){this.resultSelector=e}call(e,n){return n.subscribe(new jM(e,this.resultSelector))}}class jM extends OM{constructor(e,n){super(e),this.resultSelector=n,this.active=0,this.values=[],this.observables=[]}_next(e){this.values.push(zg),this.observables.push(e)}_complete(){const e=this.observables,n=e.length;if(0===n)this.destination.complete();else{this.active=n,this.toRespond=n;for(let r=0;r0?super.requestAsyncId(e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame(()=>e.flush(null))))}recycleAsyncId(e,n,r=0){if(null!==r&&r>0||null===r&&this.delay>0)return super.recycleAsyncId(e,n,r);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)}});class YM{constructor(e,n,r,o){this.keySelector=e,this.elementSelector=n,this.durationSelector=r,this.subjectSelector=o}call(e,n){return n.subscribe(new KM(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))}}class KM extends U{constructor(e,n,r,o,i){super(e),this.keySelector=n,this.elementSelector=r,this.durationSelector=o,this.subjectSelector=i,this.groups=null,this.attemptedToUnsubscribe=!1,this.count=0}_next(e){let n;try{n=this.keySelector(e)}catch(r){return void this.error(r)}this._group(e,n)}_group(e,n){let r=this.groups;r||(r=this.groups=new Map);let i,o=r.get(n);if(this.elementSelector)try{i=this.elementSelector(e)}catch(s){this.error(s)}else i=e;if(!o){o=this.subjectSelector?this.subjectSelector():new Mt,r.set(n,o);const s=new Zg(n,o,this);if(this.destination.next(s),this.durationSelector){let a;try{a=this.durationSelector(new Zg(n,o))}catch(u){return void this.error(u)}this.add(a.subscribe(new JM(n,o,this)))}}o.closed||o.next(i)}_error(e){const n=this.groups;n&&(n.forEach((r,o)=>{r.error(e)}),n.clear()),this.destination.error(e)}_complete(){const e=this.groups;e&&(e.forEach((n,r)=>{n.complete()}),e.clear()),this.destination.complete()}removeGroup(e){this.groups.delete(e)}unsubscribe(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&super.unsubscribe())}}class JM extends U{constructor(e,n,r){super(n),this.key=e,this.group=n,this.parent=r}_next(e){this.complete()}_unsubscribe(){const{parent:e,key:n}=this;this.key=this.parent=null,e&&e.removeGroup(n)}}class Zg extends K{constructor(e,n,r){super(),this.key=e,this.groupSubject=n,this.refCountSubscription=r}_subscribe(e){const n=new q,{refCountSubscription:r,groupSubject:o}=this;return r&&!r.closed&&n.add(new XM(r)),n.add(o.subscribe(e)),n}}class XM extends q{constructor(e){super(),this.parent=e,e.count++}unsubscribe(){const e=this.parent;!e.closed&&!this.closed&&(super.unsubscribe(),e.count-=1,0===e.count&&e.attemptedToUnsubscribe&&e.unsubscribe())}}function Zu(t,e){return function(r){return r.lift(new eS(t,e))}}class eS{constructor(e,n){this.predicate=e,this.thisArg=n}call(e,n){return n.subscribe(new tS(e,this.predicate,this.thisArg))}}class tS extends U{constructor(e,n,r){super(e),this.predicate=n,this.thisArg=r,this.count=0}_next(e){let n;try{n=this.predicate.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}n&&this.destination.next(e)}}const nS=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})();function Yg(t){return e=>0===t?$g():e.lift(new rS(t))}class rS{constructor(e){if(this.total=e,this.total<0)throw new nS}call(e,n){return n.subscribe(new oS(e,this.total))}}class oS extends U{constructor(e,n){super(e),this.total=n,this.count=0}_next(e){const n=this.total,r=++this.count;r<=n&&(this.destination.next(e),r===n&&(this.destination.complete(),this.unsubscribe()))}}class uS{constructor(e){this.notifier=e}call(e,n){const r=new lS(e),o=_o(this.notifier,new yo(r));return o&&!r.seenValue?(r.add(o),n.subscribe(r)):r}}class lS extends Do{constructor(e){super(e),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}class fS{constructor(e,n){this.delay=e,this.scheduler=n}call(e,n){return n.subscribe(new Yu(e,this.delay,this.scheduler))}}class Yu extends U{constructor(e,n,r){super(e),this.delay=n,this.scheduler=r,this.queue=[],this.active=!1,this.errored=!1}static dispatch(e){const n=e.source,r=n.queue,o=e.scheduler,i=e.destination;for(;r.length>0&&r[0].time-o.now()<=0;)r.shift().notification.observe(i);if(r.length>0){const s=Math.max(0,r[0].time-o.now());this.schedule(e,s)}else this.unsubscribe(),n.active=!1}_schedule(e){this.active=!0,this.destination.add(e.schedule(Yu.dispatch,this.delay,{source:this,destination:this.destination,scheduler:e}))}scheduleNotification(e){if(!0===this.errored)return;const n=this.scheduler,r=new hS(n.now()+this.delay,e);this.queue.push(r),!1===this.active&&this._schedule(n)}_next(e){this.scheduleNotification(ye.createNext(e))}_error(e){this.errored=!0,this.queue=[],this.destination.error(e),this.unsubscribe()}_complete(){this.scheduleNotification(ye.createComplete()),this.unsubscribe()}}class hS{constructor(e,n){this.time=e,this.notification=n}}class gS{constructor(e){this.resultSelector=e}call(e,n){return n.subscribe(new mS(e,this.resultSelector))}}class mS extends U{constructor(e,n,r=Object.create(null)){super(e),this.resultSelector=n,this.iterators=[],this.active=0,this.resultSelector="function"==typeof n?n:void 0}_next(e){const n=this.iterators;ho(e)?n.push(new DS(e)):n.push("function"==typeof e[Lt]?new yS(e[Lt]()):new _S(this.destination,this,e))}_complete(){const e=this.iterators,n=e.length;if(this.unsubscribe(),0!==n){this.active=n;for(let r=0;rthis.index}hasCompleted(){return this.array.length===this.index}}class _S extends Do{constructor(e,n,r){super(e),this.parent=n,this.observable=r,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}[Lt](){return this}next(){const e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}}hasValue(){return this.buffer.length>0}hasCompleted(){return 0===this.buffer.length&&this.isComplete}notifyComplete(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()}notifyNext(e){this.buffer.push(e),this.parent.checkIterators()}subscribe(){return _o(this.observable,new yo(this))}}function Kg(t){return e=>e.lift(new vS(t))}class vS{constructor(e){this.callback=e}call(e,n){return n.subscribe(new wS(e,this.callback))}}class wS extends U{constructor(e,n){super(e),this.add(new q(n))}}var lo=(()=>(function(t){t.WORKER="worker",t.MAIN="main"}(lo||(lo={})),lo))(),Ae=(()=>(function(t){t.SELECTED="selected",t.PICKED_UP="picked_up",t.FILE_RECEIVED="file_received",t.FILE_READ="file_read",t.HASH_COMPUTED="hash_computed",t.HASH_RECEIVED="hash_received"}(Ae||(Ae={})),Ae))();const Jg=Symbol("loadScript"),co=Symbol("instance");let Ku;const fn=new class CS{get[co](){return Ku}set[co](e){Ku=e}constructor(){if(this[co])return this[co];this[co]=this}reset(){Ku=null}[Jg](){return this.scriptPromise||(this.scriptPromise=new Promise(e=>{const n=document.getElementsByTagName("body")[0],r=document.createElement("script");r.type="text/javascript",r.onload=function(){fn.api=window.google,fn.api.charts.load("current",{packages:["corechart","table"]}),fn.api.charts.setOnLoadCallback(()=>{e()})},r.src="https://www.gstatic.com/charts/loader.js",n.appendChild(r)})),this.scriptPromise}load(e,n){return this[Jg]().then(()=>{if(n){let r={};r=n instanceof Object?n:Array.isArray(n)?{packages:n}:{packages:[n]},this.api.charts.load("current",r),this.api.charts.setOnLoadCallback(e)}else{if("function"!=typeof e)throw"callback must be a function";e()}})}};let bS=(()=>{class t{constructor(){}getVisualisation(...n){return new K(r=>{fn.load(()=>{fn.api.charts.load("current",{packages:n}),fn.api.charts.setOnLoadCallback(()=>{r.next(fn.api.visualization),r.complete()})})})}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=ee({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function IS(t,e){if(1&t&&(B(0,"span",5),X(1),wt(2,"number"),H()),2&t){const n=fi();me(1),or(" +",Ya(2,1,n.message.millisSinceLast/1e3,"1.3-3"),"s\n")}}function MS(t,e){1&t&&Qt(0,"span",5)}let SS=(()=>{class t{constructor(){}ngOnInit(){this.color=`hsl(${this.files.indexOf(this.message.file)/this.files.length*360}, 70%, 60%)`}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=_n({type:t,selectors:[["app-log-line"]],inputs:{message:"message",files:"files"},decls:12,vars:14,consts:[[1,"timestamp"],["class","timedelta",4,"ngIf","ngIfElse"],["nodelta",""],[1,"file"],[1,"message"],[1,"timedelta"]],template:function(n,r){if(1&n&&(B(0,"span",0),X(1),wt(2,"date"),H(),an(3,IS,3,4,"span",1),an(4,MS,1,0,"ng-template",null,2,bp),B(6,"span",3),X(7),H(),B(8,"span"),X(9),H(),B(10,"span",4),X(11),H()),2&n){const o=function vf(t){return bn(function ly(){return I.lFrame.contextLView}(),z+t)}(5);me(1),rr(Ya(2,11,r.message.timestamp,"HH:mm:ss.SSS")),me(2),zt("ngIf",null!==r.message.millisSinceLast)("ngIfElse",o),me(3),Va("background-color",r.color),me(1),rr(r.message.file),me(1),ph("thread ",r.message.thread,""),me(1),or("[",r.message.thread,"]"),me(2),rr(r.message.message)}},directives:[Fu],pipes:[Ig,Sg],styles:["span[_ngcontent-%COMP%]{padding-left:5px;display:inline-block}.message[_ngcontent-%COMP%]{font-size:20px}.timestamp[_ngcontent-%COMP%]{color:gray}.timedelta[_ngcontent-%COMP%]{width:70px;text-align:right;margin-right:10px}.thread[_ngcontent-%COMP%]{font-weight:700;width:70px}.thread.main[_ngcontent-%COMP%]{color:#00008b}.thread.worker[_ngcontent-%COMP%]{color:#006400}.file[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;width:300px;white-space:nowrap}"],changeDetection:0}),t})();const TS=["timeline"];function AS(t,e){if(1&t&&(B(0,"h3"),X(1),H()),2&t){const n=e.ngIf;me(1),or("(",n,")")}}function xS(t,e){if(1&t&&Qt(0,"app-log-line",5),2&t){const n=e.ngIf;zt("message",fi().$implicit)("files",n)}}function NS(t,e){if(1&t&&(B(0,"li"),an(1,xS,1,2,"app-log-line",4),wt(2,"async"),H()),2&t){const n=fi();me(1),zt("ngIf",Zt(2,1,n.filenames$))}}let FS=(()=>{class t{constructor(n){this.googleChartService=n,this.multiFilesToHash=new Wg(1),this.workResult$=this.multiFilesToHash.pipe(function NM(t,e=0){return function(r){return r.lift(new FM(t,e))}}(qg),dn(r=>this.hashMultipleFiles(r))),this.filenames$=this.multiFilesToHash.pipe(St(r=>r.map(o=>o.name)),function zM(t,e,n){let r;return r=t&&"object"==typeof t?t:{bufferSize:t,windowTime:e,refCount:!1,scheduler:n},o=>o.lift(function QM({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:e=Number.POSITIVE_INFINITY,refCount:n,scheduler:r}){let o,s,i=0,a=!1,u=!1;return function(c){let d;i++,!o||a?(a=!1,o=new Wg(t,e,r),d=o.subscribe(this),s=c.subscribe({next(f){o.next(f)},error(f){a=!0,o.error(f)},complete(){u=!0,s=void 0,o.complete()}})):d=o.subscribe(this),this.add(()=>{i--,d.unsubscribe(),s&&!u&&n&&0===i&&(s.unsubscribe(),s=void 0,o=void 0)})}}(r))}(1)),this.eventsPool$=new Mt,this.completedFiles$=this.filenames$.pipe(dn(()=>this.eventsPool$.pipe(function ZM(t,e,n,r){return o=>o.lift(new YM(t,e,n,r))}(r=>r.file),qi(r=>r.pipe(Zu(o=>o.fileEventType===Ae.HASH_RECEIVED),Yg(1))),St(r=>r.file),Zu(r=>!!r),Wu((r,o)=>[...r,o],[]),function iS(...t){const e=t[t.length-1];return mo(e)?(t.pop(),n=>Qu(t,n,e)):n=>Qu(t,n)}([])))),this.complete$=Qg([this.filenames$,this.completedFiles$]).pipe(St(([r,o])=>r.length===o.length)),this.status$=Qu(uo(null),this.complete$).pipe(St(r=>{switch(r){case null:return"Waiting for file selection";case!0:return"Completed";case!1:return"Processing files"}})),this.eventListPool$=this.eventsPool$.pipe(Wu((r,o)=>(r.push(o),r),[]),St(r=>{const o=new Map;return r.sort((i,s)=>i.timestamp.valueOf()-s.timestamp.valueOf()).map(i=>{const s=o.get(i.file);return o.set(i.file,i),Object.assign(Object.assign({},i),{millisSinceLast:s?i.timestamp.valueOf()-s.timestamp.valueOf():null})})})),this.chartObserver$=Qg([this.filenames$,this.googleChartService.getVisualisation("timeline")]).pipe(dn(([r,o])=>{const s=new o.Timeline(this.timelineComponent.nativeElement),a=new o.DataTable;a.addColumn({type:"string",id:"file"}),a.addColumn({type:"string",id:"event"}),a.addColumn({type:"date",id:"Start"}),a.addColumn({type:"date",id:"End"});const u=new Map,l={height:0,hAxis:{minValue:new Date,maxValue:new Date((new Date).valueOf()+2e4)}},c=this.eventsPool$.pipe(hr(f=>{if(null===f.fileEventType)return;const h=f.timestamp;let p;switch(u.has(f.file)&&a.setCell(u.get(f.file),3,h),f.fileEventType){case Ae.SELECTED:p="Queued, waiting for worker";break;case Ae.PICKED_UP:p="Transferring file to worker",f.file&&r.indexOf(f.file)=0}(t)||t<0)&&(t=0),(!e||"function"!=typeof e.schedule)&&(e=zu),new K(n=>(n.add(e.schedule(UM,t,{subscriber:n,counter:0,period:t})),n))}(0,qM).pipe(hr(()=>{const f=Array.from(u.values());for(const h of f)a.setCell(h,3,new Date);if(f.length){const h=(new Date).valueOf();h>l.hAxis.maxValue.valueOf()-2e3&&(l.hAxis.maxValue=new Date(h+2e4)),s.draw(a,l)}}));return c.pipe(function sS(t,e){return e?dn(()=>t,e):dn(()=>t)}(d),function aS(t){return e=>e.lift(new uS(t))}(this.complete$.pipe(Zu(f=>f),Yg(1),function dS(t,e=zu){const r=function cS(t){return t instanceof Date&&!isNaN(+t)}(t)?+t-e.now():Math.abs(t);return o=>o.lift(new fS(r,e))}(0))))}))}*workPool(n){for(const r of n)yield r,this.eventsPool$.next(this.logMessage(Ae.PICKED_UP,"file picked up for processing",r.name))}hashMultipleFiles(n){return function ES(t,e,n){const{selectTransferables:r,workerCount:o=(navigator.hardwareConcurrency?navigator.hardwareConcurrency-1:null),fallbackWorkerCount:i=3,flattenOperator:s=zi()}=n||{};return new K(a=>{const u=new Mt;let l=0,c=0,d=!1;const f=Array.from({length:null!==o?o:i}).map((m,D)=>{let _=null;return{factory:()=>(_||(_=t(D)),_),terminate(){!this.processing&&_&&_.terminate()},processing:!1,index:D}}),p=function pS(...t){const e=t[t.length-1];return"function"==typeof e&&t.pop(),vo(t,void 0).lift(new gS(e))}(u,e).pipe(hr(([m])=>{c++,m.processing=!0}),Kg(()=>{u.complete(),d=!0,f.forEach(m=>m.terminate())}),St(([m,D])=>Ug(()=>m.factory(),uo(D),r,{terminateOnComplete:!1}).pipe(Kg(()=>{l++,m.processing=!1,d?m.terminate():u.next(m),d&&l===c&&a.complete()}))),s).subscribe(a);return f.forEach(m=>u.next(m)),()=>p.unsubscribe()})}(o=>{const i=new Worker(It.tu(new URL(It.p+It.u(268),It.b)),{name:`hash-worker-${o}`,type:void 0});return this.eventsPool$.next(this.logMessage(null,`worker ${o} created`)),i},this.workPool(n)).pipe(hr(o=>{this.eventsPool$.next(o),o.fileEventType===Ae.HASH_COMPUTED&&this.eventsPool$.next(Object.assign(Object.assign({},o),{fileEventType:Ae.HASH_RECEIVED,timestamp:new Date,message:"hash received",thread:lo.MAIN}))}))}calculateMD5Multiple(n){const r=Array.from(n.target.files||[]);this.multiFilesToHash.next(r);for(const o of r)this.eventsPool$.next(this.logMessage(Ae.SELECTED,"file selected",o.name))}logMessage(n,r,o){return{message:r,file:o,timestamp:new Date,thread:lo.MAIN,fileEventType:n}}}return t.\u0275fac=function(n){return new(n||t)(R(bS))},t.\u0275cmp=_n({type:t,selectors:[["app-multiple-worker-pool"]],viewQuery:function(n,r){if(1&n&&_p(TS,5,ln),2&n){let o;Dp(o=function vp(){return function zC(t,e){return t[19].queries[e].queryList}(y(),Wl())}())&&(r.timelineComponent=o.first)}},decls:23,vars:12,consts:[[4,"ngIf"],["type","file","multiple","",3,"change"],["timeline",""],[4,"ngFor","ngForOf"],[3,"message","files",4,"ngIf"],[3,"message","files"]],template:function(n,r){1&n&&(B(0,"h2"),X(1,"Multiple Worker Pool"),H(),an(2,AS,2,1,"h3",0),wt(3,"async"),B(4,"p"),X(5,"Select multiple files of varying sizes to compute MD5 sum of, in pool of webworkers:"),H(),B(6,"input",1),di("change",function(i){return r.calculateMD5Multiple(i)}),H(),B(7,"section"),B(8,"small"),X(9,"(No files are uploaded; they're kept entirely within your browser)"),H(),B(10,"p"),X(11," \u2139\ufe0f large files (>10MB) gives the best results otherwise the timing starts to be dominated by the UI updates rather than the computation of hashes "),H(),H(),B(12,"h3"),wt(13,"async"),X(14,"Timeline"),H(),Qt(15,"div",null,2),B(17,"h3"),X(18,"Events:"),H(),B(19,"ol"),wt(20,"async"),an(21,NS,3,3,"li",3),wt(22,"async"),H()),2&n&&(me(2),zt("ngIf",Zt(3,4,r.status$)),me(10),Gr("data",Zt(13,6,r.chartObserver$)),me(7),Gr("data",Zt(20,8,r.workResult$)),me(2),zt("ngForOf",Zt(22,10,r.eventListPool$)))},directives:[Fu,Nu,SS],pipes:[Ou],styles:[""],changeDetection:0}),t})(),PS=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=_n({type:t,selectors:[["app-root"]],decls:9,vars:0,consts:[["href","https://github.com/cloudnc/observable-webworker","id","fork-link"],["width","149","height","149","src","https://github.blog/wp-content/uploads/2008/12/forkme_right_darkblue_121621.png?resize=149%2C149","alt","Fork me on GitHub"]],template:function(n,r){1&n&&(B(0,"a",0),Qt(1,"img",1),H(),B(2,"h1"),B(3,"code"),X(4,"observable-webworker"),H(),X(5," Demo\n"),H(),Qt(6,"app-single-worker"),Qt(7,"hr"),Qt(8,"app-multiple-worker-pool"))},directives:[MM,FS],styles:["#fork-link[_ngcontent-%COMP%]{position:absolute;top:0;right:0}"]}),t})(),RS=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=mr({type:t,bootstrap:[PS]}),t.\u0275inj=yn({providers:[],imports:[[JI]]}),t})();(function Fb(){Xp=!1})(),YI().bootstrapModule(RS).catch(t=>console.error(t))}},$i=>{$i($i.s=698)}]); -//# sourceMappingURL=main.757dc5269470e421.js.map \ No newline at end of file diff --git a/main.757dc5269470e421.js.map b/main.757dc5269470e421.js.map deleted file mode 100644 index 98114fb..0000000 --- a/main.757dc5269470e421.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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","names":["x","_enable_super_gross_mode_that_will_cause_bad_things","config","Promise","undefined","useDeprecatedSynchronousErrorHandling","value","error","Error","console","warn","stack","log","err","setTimeout","empty","closed","next","hostReportError","complete","isArray","Array","length","UnsubscriptionError","errors","call","this","message","map","i","toString","join","name","UnsubscriptionErrorImpl","prototype","Object","create","constructor","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","Subscription","remove","index","isFunction","e","flattenUnsubscriptionErrors","len","sub","isObject","concat","push","add","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","rxSubscriber","Symbol","Math","random","destinationOrNext","super","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","destination","emptyObserver","Subscriber","SafeSubscriber","go","rxSubscriberSymbol","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","context","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","observable","Observable","subscribe","_isScalar","_subscribe","lift","operator","source","sink","nextOrObserver","toSubscriber","_trySubscribe","observer","canReportError","forEach","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","pipe","operations","fns","identity","input","prev","pipeFromArray","toPromise","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","subject","observers","subscriberIndex","Subject","hasError","thrownError","SubjectSubscriber","AnonymousSubject","copy","slice","SubjectSubscription","asObservable","schedule","project","thisArg","TypeError","MapOperator","MapSubscriber","count","result","subscribeToArray","array","iterator","getSymbolIterator","isArrayLike","then","subscribeTo","obj","obs","subscribeToObservable","isPromise","promise","subscribeToPromise","Symbol_iterator","iterable","item","done","return","subscribeToIterable","msg","scheduler","isInteropObservable","scheduleObservable","schedulePromise","scheduleArray","isIterable","scheduleIterable","scheduled","notifyNext","notifyError","notifyComplete","innerValue","innerSubscriber","resultSelector","concurrent","Number","POSITIVE_INFINITY","mergeMap","a","from","b","ii","MergeMapOperator","MergeMapSubscriber","SimpleOuterSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","SimpleInnerSubscriber","innerSubscription","innerSubscribe","shift","RefCountOperator","connectable","_refCount","refCounter","RefCountSubscriber","connection","connect","refCount","sharedConnection","_connection","subjectFactory","_isComplete","getSubject","_subject","ConnectableSubscriber","higherOrderRefCount","connectableObservableDescriptor","connectableProto","ConnectableObservable","writable","selector","objWithPropertyToExtract","key","getClosureSafeProperty","token","stringify","overriddenName","res","newLineIndex","substring","before","after","__forward_ref__","forwardRefFn","forwardRef","type","hasOwnProperty","isForwardRef","code","abs","formatRuntimeError","String","renderStringify","injectorName","injectorDetails","RuntimeError","stringifyForError","actual","expected","comparison","throwError","opts","providedIn","factory","options","providers","imports","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","NG_INJ_DEF","NG_INJECTOR_DEF","ɵprov","ɵinj","ngInjectableDef","ngInjectorDef","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","impl","previous","notFoundValue","flags","injectableDef","getInjectableDef","throwProviderNotFoundError","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","None","ShadowDom","__globalThis","globalThis","__window","window","__self","self","WorkerGlobalScope","_global","global","EMPTY_OBJ","EMPTY_ARRAY","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","ɵdir","NG_PIPE_DEF","ɵpipe","NG_MOD_DEF","ɵmod","NG_FACTORY_DEF","ɵfac","NG_ELEMENT_ID","__NG_ELEMENT_ID__","_renderCompCount","componentDefinition","noSideEffects","declaredInputs","def","providersResolver","decls","vars","template","consts","ngContentSelectors","hostBindings","hostVars","hostAttrs","contentQueries","inputs","outputs","exportAs","onPush","changeDetection","directiveDefs","pipeDefs","selectors","viewQuery","features","data","encapsulation","id","styles","_","setInput","schemas","tView","directiveTypes","directives","feature","pipeTypes","pipes","invertObject","extractDirectiveDef","extractPipeDef","getComponentDef","getDirectiveDef","getPipeDef$1","autoRegisterModuleById","bootstrap","declarations","exports","transitiveCompileScopes","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefineComponent","pipeDef","pure","onDestroy","ngOnDestroy","throwNotFound","ngModuleDef","RENDERER","HEADER_OFFSET","tNode","target","previousValue","currentValue","firstChange","isFirstChange","definition","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","current","instance","privateName","store","SIMPLE_CHANGES_STORE","setSimpleChangesStore","previousChange","SimpleChange","DOCUMENT","renderer","listen","domRendererFactory3","createRenderer","hostElement","rendererType","document","getDocument","lView","unwrapRNode","view","nodeIndex","hostView","slotValue","isLView","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","isInCheckNoChangesMode","currentTNode","getCurrentTNodePlaceholderOk","isParent","mode","bindingRootIndex","bindingStartIndex","bindingIndex","currentDirectiveIndex","setCurrentDirectiveIndex","currentQueryIndex","declTNode","parentTNode","parentLView","getDeclarationTNode","allocLFrame","newView","newLFrame","firstChild","contextLView","inI18n","currentLFrame","childLFrame","child","selectedIndex","elementDepthCount","currentNamespace","oldLFrame","leaveDI","leaveViewLight","getTNode","directiveStart","end","directiveEnd","lifecycleHooks","directiveDef","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","hooks","callHooks","initPhase","currentView","arr","currentNodeIndex","nodeIndexLimit","max","lastNodeIndexFound","callHook","isInitHook","hook","directive","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","native","attrs","isProc","isProceduralRenderer","namespaceURI","attrName","attrVal","setAttribute","setAttributeNS","isAnimationProp","setProperty","marker","charCodeAt","dst","src","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","parentLocation","location","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","v","oldValue","nextNgElementId","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","hasParentInjector","parentIndex","getParentInjectorIndex","getParentInjectorView","parentData","footer","declarationViewOffset","lViewCursor","tViewType","s","bloomHash","bloomAdd","moduleInjector","previousInjectImplementation","setInjectImplementation","get","injectRootLimpMode","notFoundValueOrThrow","tokenId","createNodeInjector","bloomHashBitOrFactory","enterDI","lookupTokenUsingModuleInjector","previousTView","hostTElementNode","u","shouldSearchParent","bloomHasToken","searchTokensOnInjector","NOT_FOUND","NodeInjector","getCurrentTNode","getLView","currentTView","injectableIdx","locateDirectiveOrProvider","isComponentHost","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","isComponentDef","tData","NodeInjectorFactory","isFactory","path","depPath","throwCyclicDependencyError","previousIncludeViewProviders","setIncludeViewProviders","directiveIndex","ngOnInit","ngDoCheck","wrappedOnChanges","NgOnChangesFeatureImpl","preOrderHooks","preOrderCheckHooks","registerPreOrderHooks","injectorView","isFirstHostTNode","_tNode","_lView","getOrCreateInjectable","PARAMETERS","props","parentClass","metaCtor","args","values","propName","makeMetadataCtor","ParamDecoratorFactory","apply","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","defineProperty","ngMetadataName","annotationCls","_desc","ɵɵdefineInjectable","list","flatten","deepForEach","pop","keyValueArray","keyValueArrayIndexOf","value1","value2","arrayInsert2","start","middle","_arrayIndexOfSorted","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","USE_VALUE$1","provide","useValue","_currentInjector","injector","former","getInjectImplementation","injectInjectorOnly","resolveForwardRef","types","arg","j","meta","flag","getInjectFlag","ɵɵinject","decorator","Inject","attachInjectFlag","makeParamDecorator","changingThisBreaksApplicationSecurity","MONKEY_PATCH_KEY_NAME","readPatchedData","ERROR_ORIGINAL_ERROR","_console","handleError","originalError","_findOriginalError","errorLogger","ERROR_LOGGER","defaultErrorLogger","getErrorLogger","getOriginalError","defaultScheduler","requestAnimationFrame","Function","RendererStyleFlags2","Important","DashCase","tIcuContainerNode","_icuContainerIterate","isLContainer","getNearestLContainer","container","action","lNodeToHandle","beforeNode","isComponent","rNode","o","nativeAppendChild","nativeInsertBefore","t","isHostElement","nativeParent","nativeParentNode","removeChild","nativeRemoveChild","nativeRemoveNode","destroyNode","parentRElement","anchor","applyToElementOrContainer","applyView","applyContainer","namespace","createElement","createElementNS","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","updateTransplantedViewCount","removeIndex","indexInContainer","viewToDetach","declarationLContainer","detachMovedView","removedLView","removeFromArray","removeViewFromContainer","lQueries","detachView","rootView","lViewOrLContainer","cleanUpView","firstView","destroyViewTree","toCall","callContext","executeOnDestroys","tCleanup","cleanup","lCleanup","lastLCleanupIndex","idxOrTargetGetter","listener","useCaptureOrSubIdx","removeEventListener","processCleanups","destroy","getNativeByTNode","getClosestRElement","isMove","insertBefore","appendChild","node","parentNode","_getInsertInFrontOfRNodeWithI18n","childRNode","childTNode","parentRNode","getParentRElement","anchorNode","getInsertInFrontOfRNode","nativeAppendOrInsertBefore","tNodeType","getBeforeNodeForView","elIcuContainerChild","getFirstNativeNode","rNodeOrLContainer","nextRNode","projectionNodes","getProjectionNodes","getLViewParent","componentView","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isProjection","rawSlotValue","attachPatchData","applyNodes","icuContainerIterate","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","componentNode","element","newValue","style","cssText","removeAttribute","className","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","cssClassToMatch","isProjectionMode","classIndexOf","toLowerCase","currentSelector","nodeAttrs","nameOnlyMarkerIdx","isNameOnlyAttributeMarker","getNameOnlyMarkerIndex","skipToNextSelector","hasTagAndTypeMatch","isPositive","selectorAttrValue","isCssClassMatching","attrIndexInNode","findAttrIndexInNode","isInlineTemplate","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","attr","matchTemplateAttribute","isNodeMatchingSelector","isNegativeMode","chunk","trim","currentChunk","valueOrMarker","attrValue","maybeWrapInNotSelector","NO_CHANGE","delta","selectIndexInternal","getTView","getSelectedIndex","checkNoChangesMode","executeCheckHooks","executeInitAndCheckHooks","setSelectedIndex","tStylingRange","queryStartIdx","directiveDefIdx","setCurrentQueryIndex","host","tHostNode","rendererFactory","sanitizer","resetPreOrderHookFlags","isCurrentTNodeParent","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","mergedAttrs","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classes","classesWithoutHost","residualClasses","classBindings","styleBindings","createTNode","createTNodeAtIndex","isInI18nBlock","getCurrentParentTNode","setCurrentTNode","numSlotsToAlloc","initialValue","allocIdx","enterView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","refreshContentQueries","staticViewQueries","components","hostLView","renderComponent$1","renderChildComponents","incompleteFirstPass","leaveView","isInCheckNoChangesPass","setBindingIndex","hooksInitPhaseCompleted","incrementInitPhaseFlags","getFirstLContainer","getNextLContainer","movedLView","markTransplantedViewsForRefresh","embeddedLView","embeddedTView","viewAttachedToChangeDetector","refreshView","refreshEmbeddedViews","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","setBindingRootForHostBindings","processHostBindingOpCodes","refreshComponent","refreshChildComponents","firstUpdatePass","normalExecutionPath","creationModeIsActive","isCreationMode","begin","renderView","rf","prevSelectedIndex","isUpdatePhase","getBindingsEnabled","getOrCreateNodeInjectorForNode","addComponentLogic","setInputsFromAttrs","getComponentLViewByIndex","instantiateAllDirectives","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","invokeDirectivesHostBindings","viewData","localRefExtractor","localIndex","createTView","constsOrFactory","initialViewLength","createViewBlueprint","queries","fill","expandoStartIndex","directiveRegistry","pipeRegistry","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","inputAliasMap","propStore","internalName","localRefs","hasDirectives","registry","matches","isNodeMatchingSelectorList","diPublicInInjector","markAsComponentHost","unshift","findDirectiveDefMatches","exportsMap","initTNodeFlags","preOrderHooksFound","preOrderCheckHooksFound","allocExpando","mergeHostAttrs","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","generatePropertyAliases","initializeInputAndOutputAliases","cacheMatchingLocalNames","directiveVarsIdx","elementIndx","lastSelectedElementIdx","hostTNode","numberOfDirectives","directiveFactory","getFactoryDef","nodeInjectorFactory","registerHostBindingOpCodes","getOrCreateTComponentView","addToViewTree","createLView","tagName","strValue","setElementAttribute","initialInputData","inputsToStore","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","isRootView","rootContext","rootComponent","readPatchedLView","renderComponentOrTemplate","tickRootContext","viewQueryFn","component","CLEAN_PROMISE","errorHandler","ErrorHandler","getNativeByIndex","setValue","textContent","updateTextNode","writeToHost","concatStringsWithSpace","INJECTOR","InjectionToken","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","NullInjector","defType","additionalProviders","createInjectorWithoutInjectorInstances","_resolveInjectorDefTypes","R3Injector","getNullInjector","records","Map","injectorDefTypes","Set","_destroyed","dedupStack","provider","processProvider","injectorDef","processInjectorType","set","makeRecord","record","scope","destroyed","assertNotDestroyed","service","clear","previousInjector","setCurrentInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","r","injectorErrorName","tokenPath","text","charAt","substr","parts","JSON","replace","formatError","NG_TOKEN_PATH","catchInjectorError","tokens","defOrWrappedDef","parents","getInjectorDef","ngModule","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","ngModuleType","isTypeProvider","isValueProvider","unwrappedProvider","useFactory","isFactoryProvider","injectArgs","deps","useExisting","isExistingProvider","classRef","useClass","hasDeps","providerToFactory","providerToRecord","multi","multiRecord","hasOnDestroy","has","paramLength","size","newArray","inheritedInjectableDef","typeName","match","getTypeName","getInheritedInjectableDef","getUndecoratedInjectableFactory","Injector","static","_a","createInjector","NULL","registerPostOrderHooks","_symbolIterator","keys","getOwnPropertyNames","entries","isJsObject","is","bindingUpdated","nextBindingIndex","elementAttributeInternal","getSelectedTNode","ɵɵattribute","prefix","v0","suffix","attrsIndex","localRefsIndex","adjustedIndex","tViewConsts","getOrCreateTNode","getConstant","resolveDirectives","templateFirstCreatePass","comment","createComment","createLContainer","isDirectiveHost","createDirectivesInstances","saveResolvedLocalsInData","nativeOnly","dataValue","inputData","setInputsForProperty","viewIndex","childComponentLView","markDirtyIfOnPush","mapPropName","elementPropertyInternal","ɵɵproperty","isClassBased","property","createElementNode","getNamespace$1","computeStaticStyling","elementStart","elementStartFirstCreatePass","setUpAttributes","writeDirectClass","writeDirectStyle","getElementDepthCount","increaseElementDepthCount","isContentQueryHost","executeContentQueries","setCurrentTNodeAsNotParent","decreaseElementDepthCount","elementEnd","hasClassInput","setDirectiveInputsWhichShadowsStyling","hasStyleInput","ɵɵelementStart","ɵɵelementEnd","isObservable","isSubscribable","eventName","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","findExistingListener","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","addEventListener","propsLength","directiveInstance","idx","ɵɵlistener","profiler","wrapWithPreventDefault","markViewDirty","executeListenerWithErrorHandling","nextListenerFn","wrapListenerIn_markDirtyAndPreventDefault","preventDefault","returnValue","level","nestingLevel","walkUpViews","nextContextImpl","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","cursor","getTStylingRangePrev","getTStylingRangeNext","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","setTStylingRangeNextDuplicate","setTStylingRangePrevDuplicate","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","startIndex","consumeClassToken","consumeWhitespace","prop","checkStylingProperty","incrementBindingIndex","stylingFirstUpdatePass","updateStyling","unwrapSafeValue","normalizeSuffix","ɵɵstyleProp","resetParserState","parseClassNameNext","parseClassName","keyValueArraySet","getLastParsedKey","isHostBindings","isInHostBindings","hasStylingInputShadow","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","bindings","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","wrapInStaticStylingKey","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","staticKeyValueArray","previousNode","toTStylingRange","setTStylingRangeNext","setTStylingRangePrev","markDuplicates","markDuplicateOfResidualStyling","insertTStylingBinding","currentDirective","desiredMarker","currentMarker","tRange","isStylingValuePresent","getTStylingRangeNextDuplicate","findStylingValue","getTStylingRangePrevDuplicate","isProcedural","addClass","classList","removeClass","removeStyle","removeProperty","isImportant","endsWith","setStyle","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","keyValueArrayGet","textNative","createText","createTextNode","ɵɵtextInterpolate1","ɵɵtextInterpolate","interpolated","interpolation1","textBindingInternal","stringParser","staticPrefix","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","newKey","setKey","d","updateStylingMap","styleKeyValueArray","unwrappedValue","toStylingKeyValueArray","checkStylingMap","classStringParser","localeEn","val","floor","LOCALE_DATA","locale","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","split","ng","common","locales","LocaleDataIndex","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","Eras","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","PluralCase","ExtraData","DEFAULT_LOCALE_ID","LOCALE_ID$1","resolveComponentFactory","ERROR_COMPONENT","noComponentFactoryError","ComponentFactoryResolver$1","_NullComponentFactoryResolver","createElementRef","ElementRef","nativeElement","injectElementRef","Sanitizer","full","major","minor","patch","VERSION","Version","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","lNode","lViewInAContainer","lViewFirstChildTNode","collectNativeNodes","nodesInSlot","_cdRefInjectingView","_appRef","_attachedToViewContainer","rootNodes","viewRefs","destroyLView","callback","storeCleanupWithContext","markForCheck","detach","reattach","detectChanges","detectChangesInternal","checkNoChanges","setIsInCheckNoChangesMode","checkNoChangesInternal","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","appRef","ViewRef$1","_view","detectChangesInRootView","checkNoChangesInRootView","componentDef","ComponentFactory","nonMinified","templateName","SCHEDULER","ComponentFactory$1","componentType","selectorList","stringifyCSSSelector","stringifyCSSSelectorList","isBoundToModule","toRefArray","projectableNodes","rootSelectorOrNode","rootViewInjector","createChainedInjector","RendererFactory2","hostRenderer","elementName","hostRNode","elementOrSelector","selectRootElement","rElement","querySelector","locateHostElement","getNamespace","rootFlags","playerHandler","clean","createRootContext","rootTView","rootLView","tElementNode","viewRenderer","createRootComponentView","extractAttrsAndClassesFromSelector","nodesforSlot","hostFeatures","rootTNode","instantiateRootComponent","createRootComponent","LifecycleHooksFeature","ComponentRef","_rootLView","changeDetectorRef","RootViewRef","modules","NgModuleRef$1","_parent","_bootstrapComponents","destroyCbs","componentFactoryResolver","ComponentFactoryResolver","getNgModuleDef","maybeUnwrapFn","_r3Injector","injectFlags","moduleType","visited","incoming","assertSameOrNotExisting","recurse","registerNgModuleType","parentInjector","NgModuleRef","returnValueIndex","lastReturnValue","bindingRoot","slotOffset","pureFn","exp1","exp2","different","bindingUpdated2","updateBinding","getPureFunctionReturnValue","pipeName","getPipeDef","pipeFactory","ɵɵdirectiveInject","pipeInstance","v1","load","isPure","exp","pureFunction1Internal","getBindingRoot","transform","v2","pureFunction2Internal","EventEmitter","isAsync","__isAsync","emit","_b","_c","nextFn","errorFn","completeFn","_wrapInTimeout","_results","_emitDistinctChangesOnly","dirty","_changesDetected","_changes","first","last","symbol","proto","QueryList","symbolIterator","changes","filter","find","init","some","toArray","reset","resultsTree","identityAccessor","newResultFlat","valueA","valueB","arrayEquals","notifyOnChanges","setDirty","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedView","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","templateRef","viewRef","insert","createComponent","componentFactoryOrType","indexOrOptions","ngModuleRef","isComponentFactory","isType","componentFactory","contextInjector","componentRef","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","addToArray","declaredComponentLView","insertedLContainer","n","trackMovedView","insertView","parentNativeNode","addViewToContainer","getOrCreateViewRefs","move","viewRefsArr","detachedView","commentNode","nextSibling","nativeNextSibling","queryList","clone","LQuery_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","LQueries_","dirtyQueriesWithMatches","getTQuery","predicate","read","queriesForTemplateRef","childQueryIndex","tqueryClone","TQueries_","track","tquery","metadata","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","TQuery_","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","matchingIdx","createResultByTNodeType","createSpecialToken","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","createResultForNode","lViewResults","materializeViewResults","collectQueryResults","embeddedLViews","getCurrentQueryIndex","unwrapElementRef","createTQuery","TQueryMetadata_","createLQuery","APP_INITIALIZER","ApplicationInitStatus","appInits","noop","initialized","donePromise","rej","runInitializers","asyncInitPromises","initResult","observableAsPromise","all","catch","APP_ID","APP_ID_RANDOM_PROVIDER","_randomChar","fromCharCode","PLATFORM_INITIALIZER","PLATFORM_ID","APP_BOOTSTRAP_LISTENER","Console","LOCALE_ID","DEFAULT_CURRENCY_CODE","ngModuleFactory","componentFactories","Compiler","compileModuleSync","NgModuleFactory","compileModuleAsync","compileModuleAndAllComponentsSync","factories","declaration","ModuleWithComponentFactories","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","Zone","scheduleMicroTask","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","onError","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","cancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","getNativeRequestAnimationFrame","zone","delayChangeDetectionForEventsDelegate","isCheckStableRunning","fakeTopEventTask","root","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","delayChangeDetectionForEvents","properties","isAngularZone","onInvokeTask","delegate","task","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","change","_hasPendingMicrotasks","microTask","macroTask","onHandleError","runOutsideAngular","forkInnerZoneWithAngularBehavior","NgZone","isInAngularZone","run","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","Testability","_ngZone","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","cb","clearTimeout","timeoutId","doneCb","pending","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","timeout","whenStable","getPendingRequestCount","findProviders","using","exactMatch","TestabilityRegistry","_applications","_testabilityGetter","addToWindow","registerApplication","testability","unregisterApplication","delete","unregisterAllApplications","getTestability","elem","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","_platform","_NoopGetTestability","ALLOW_MULTIPLE_PLATFORMS","parentPlatformFactory","desc","extraProviders","platform","getPlatform","injectedProviders","PlatformRef","inits","createPlatform","requiredToken","assertPlatform","_injector","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","ngZone","ngZoneOption","extra","NoopNgZone","ngZoneEventCoalescing","ngZoneRunCoalescing","getNgZone","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","localeId","assertDefined","setLocaleId","_moduleDoBootstrap","bootstrapModule","compilerOptions","optionsReducer","compileNgModuleFactory","ApplicationRef","f","ngDoBootstrap","module","objs","assign","_zone","_exceptionHandler","_componentFactoryResolver","_initStatus","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","tick","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","observables","mo","mergeAll","fromArray","merge$1","subjectOrSubjectFactory","MulticastOperator","multicast","shareSubjectFactory","share","componentOrFactory","cf","compRef","testabilityRegistry","_loadComponent","attachView","viewCount","el","_devMode","ChangeDetectorRef","injectChangeDetectorRef","isPipe","createViewRef","supports","isListLikeIterable","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","forEachItem","forEachOperation","nextIt","nextRemove","addRemoveOffset","moveOffsets","currentIndex","getPreviousIndex","adjPreviousIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","offset","forEachPreviousItem","_nextPrevious","forEachAddedItem","_nextAdded","forEachMovedItem","_nextMoved","forEachRemovedItem","forEachIdentityChange","_nextIdentityChange","diff","collection","check","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","put","toIndex","_prevDup","_nextDup","_head","_tail","atOrAfterIndex","duplicates","_DuplicateItemRecordList","recordList","isEmpty","moveOffset","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","forEachChangedItem","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","k","IterableDiffers","DefaultIterableDifferFactory","copied","defaultIterableDiffersFactory","getTypeNameForDebugging","KeyValueDiffers","DefaultKeyValueDifferFactory","defaultKeyValueDiffersFactory","kv","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","platformCore","createPlatformFactory","APPLICATION_MODULE_PROVIDERS","queue","$localize","getGlobalLocale","ApplicationModule","ɵɵdefineNgModule","ɵɵdefineInjector","_DOM","NumberFormatStyle","Decimal","Percent","Currency","Scientific","Plural","Zero","One","Two","Few","Many","Other","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","Infinity","NaN","TimeSeparator","CurrencyDecimal","CurrencyGroup","width","getLastDefinedValue","ɵfindLocaleData","ɵLocaleDataIndex","getLocalePluralCase","findLocaleData","time","h","m","hours","minutes","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Month","Date","Hours","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Days","Months","format","timezone","date","isDate","isNaN","test","y","createDate","parsedNb","parseFloat","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","ms","isoStringToDate","toDate","getNamedFormat","exec","part","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","reverse","reverseValue","getTime","setMinutes","getMinutes","addDateMinutes","convertTimezoneToLocal","dateFormatter","DATE_FORMATS","formatter","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","getDateFormatter","year","month","newDate","getLocaleId","formatValue","getLocaleDateFormat","getLocaleTimeFormat","shortTime","shortDate","formatDateTime","getLocaleDateTimeFormat","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","str","opt_values","num","digits","minusSign","negWrap","neg","strNum","getFullYear","getMonth","getDate","getHours","getSeconds","getMilliseconds","getDay","getDatePart","milliseconds","strMs","formatFractionalSeconds","localeMinus","getLocaleNumberSymbol","padNumber","form","extended","formStyle","months","getLocaleMonthNames","days","getLocaleDayNames","currentHours","currentMinutes","rules","checkFullData","rule","extractTime","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","findIndex","to","afterFrom","beforeTo","amPm","getLocaleDayPeriods","getLocaleEraNames","getDateTranslation","ceil","datetime","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","getThursdayThisWeek","firstThurs","firstDayOfYear","THURSDAY","getFirstThursdayOfYear","round","fallback","requestedTimezoneOffset","parse","valueOf","NUMBER_FORMAT_REGEXP","parseInt","NgLocaleLocalization","NgLocalization","getPluralCategory","i0","$implicit","ngForOf","even","odd","NgForOf","_viewContainer","_template","_differs","_ngForOf","_ngForOfDirty","_differ","ngForTrackBy","ngForTemplate","_applyChanges","viewContainer","adjustedPreviousIndex","NgForOfContext","applyViewChange","ilen","dir","ctx","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","createSubscription","async","updateLatestValue","dispose","_promiseStrategy","PromiseStrategy","_subscribableStrategy","SubscribableStrategy","AsyncPipe","_ref","_latestValue","_subscription","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","invalidPipeArgumentError","DATE_PIPE_DEFAULT_TIMEZONE","DatePipe","defaultTimezone","formatDate","DecimalPipe","_locale","digitsInfo","isValue","pattern","groupSymbol","decimalSymbol","isPercent","formattedText","isZero","isFinite","parsedNumber","integerLen","zeros","numStr","exponent","search","MAX_DIGITS","parseNumber","fractionLen","toPercent","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","fractionSize","min","roundAt","digit","dropTrailingZeros","minLen","carry","reduceRight","roundNumber","decimals","every","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","formatNumberToLocaleString","p","patternParts","positive","negative","positiveParts","lastIndexOf","integer","fraction","ch","trunkLen","pos","parseNumberFormat","getLocaleNumberFormat","formatNumber","strToNumber","CommonModule","supportsDOMEvents","adapter","ɵsetRootDomAdapter","BrowserDomAdapter","onAndCancel","evt","dispatchEvent","doc","getDefaultDocument","createHtmlDocument","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","body","getBaseHref","href","baseElement","getAttribute","getBaseElementHref","url","urlParsingNode","pathName","pathname","relativePath","resetBaseElement","getUserAgent","navigator","userAgent","getCookie","cookieStr","encodeURIComponent","cookie","eqIndex","cookieName","cookieValue","decodeURIComponent","ɵparseCookieValue","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","transitionId","dom","ɵgetDOM","querySelectorAll","getter","setTestabilityGetter","BrowserGetTestability","ɵglobal","testabilities","didWork","decrement","didWork_","parentElement","BrowserXhr","build","XMLHttpRequest","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","manager","_plugins","handler","plugin","_findPluginFor","addGlobalEventListener","getZone","_doc","SharedStylesHost","_stylesSet","addStyles","additions","onStylesAdded","getAllStyles","DomSharedStylesHost","_hostNodes","head","_addStylesToHost","styleNodes","styleEl","addHost","hostNode","removeHost","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","compId","flattenStyles","eventHandler","event","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","newChild","refChild","oldChild","selectorOrNode","preserveContent","namespaceUri","removeAttributeNS","nodeValue","decoratePreventDefault","contentAttr","componentShortId","shimContentAttribute","hostAttr","shimHostAttribute","hostEl","shadowRoot","attachShadow","nodeOrShadowRoot","DomEventsPlugin","EventManagerPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","A","B","C","D","E","F","G","H","I","J","K","M","N","O","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","modifierName","keyIdentifier","startsWith","getEventKey","modifierGetter","getEventFullKey","keyName","platformBrowser","makeCurrent","ɵsetDocument","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","BrowserModule","parentModule","params","isScheduler","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","switchMap","SwitchMapOperator","SwitchMapSubscriber","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","emptyScheduled","kind","hasValue","observe","do","accept","toObservable","of","dispatch","Notification","undefinedValueNotification","completeNotification","MaterializeSubscriber","DeMaterializeSubscriber","workerFactory","input$","selectTransferables","terminateOnComplete","responseObserver","worker","onmessage","ev","onerror","MaterializeOperator","materialize","tap","transferables","postMessage","terminate","DeMaterializeOperator","dematerialize","SingleWorkerComponent","events$","scan","filesToHash","file","hashFile","calculateMD5","$event","files","fromWorker","Worker","It","URL","work","state","delay","Action","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errorValue","errored","actions","Scheduler","SchedulerAction","now","AsyncScheduler","AsyncAction","ObserveOnSubscriber","notification","scheduleMessage","ObserveOnMessage","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","asyncScheduler","outerValue","outerIndex","innerIndex","innerSub","outerSubscriber","InnerSubscriber","NONE","CombineLatestOperator","CombineLatestSubscriber","OuterSubscriber","toRespond","subscribeToResult","unused","_outerValue","_tryResultSelector","concatAll","counter","period","animationFrameScheduler","keySelector","elementSelector","durationSelector","subjectSelector","GroupBySubscriber","attemptedToUnsubscribe","_group","group","groupedObservable","GroupedObservable","duration","GroupDurationSubscriber","removeGroup","groupSubject","refCountSubscription","InnerRefCountSubscription","FilterOperator","FilterSubscriber","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","TakeOperator","total","TakeSubscriber","notifier","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","DelaySubscriber","_schedule","scheduleNotification","DelayMessage","ZipSubscriber","iterators","StaticArrayIterator","StaticIterator","ZipBufferIterator","stillUnsubscribed","notifyInactive","checkIterators","shouldComplete","_tryresultSelector","nextResult","Boolean","isComplete","FinallyOperator","FinallySubscriber","Thread","FileHashEvent","loadScript","_instance","GoogleCharts","scriptPromise","getElementsByTagName","script","onload","api","google","charts","packages","setOnLoadCallback","GoogleChartsService","getVisualisation","withPackages","LogLineComponent","color","getContextLView","MultipleWorkerPoolComponent","googleChartService","ReplaySubject","multiFilesToHash","ObserveOnOperator","observeOn","hashMultipleFiles","configOrBufferSize","useRefCount","shareReplayOperator","shareReplay","filenames$","eventsPool$","GroupByOperator","groupBy","fileMessage$","fileEventType","take","filename","startWith","combineLatest","completedFiles$","completedFiles","complete$","events","lastEventMap","sort","timestamp","lastEvent","millisSinceLast","filenames","visualization","chart","Timeline","timelineComponent","dataTable","DataTable","addColumn","lastRow","chartOptions","height","hAxis","minValue","maxValue","eventUpdates$","durationName","setCell","hardwareConcurrency","row","addRow","draw","realtimeUpdater$","isNumeric","interval","rowsToUpdate","currentDateTime","innerObservable","switchMapTo","TakeUntilOperator","takeUntil","c","delayFor","absoluteDelay","DelayOperator","logMessage","workerConstructor","workUnitIterator","workerCount","fallbackWorkerCount","flattenOperator","resultObserver","idleWorker$$","completed","sent","finished","lazyWorkers","cachedWorker","processing","ZipOperator","processor$","finalize","unitWork","w","fromWorkerPool","workPool","thread","calculateMD5Multiple","eventType","loadQueryInternal","AppComponent","AppModule","enableProdMode","__NgCli_bootstrap_1"],"sources":["./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/operators/materialize.js","./node_modules/rxjs/_esm2015/internal/operators/dematerialize.js","./projects/observable-webworker/src/lib/from-worker.ts","./src/app/single-worker/single-worker.component.html","./src/app/single-worker/single-worker.component.ts","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/operators/groupBy.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/observable/zip.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./src/app/hash-worker.types.ts","./node_modules/google-charts/dist/googleCharts.esm.js","./src/app/google-charts.service.ts","./src/app/multiple-worker-pool/log-line/log-line.component.html","./src/app/multiple-worker-pool/log-line/log-line.component.ts","./src/app/multiple-worker-pool/multiple-worker-pool.component.html","./src/app/multiple-worker-pool/multiple-worker-pool.component.ts","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./projects/observable-webworker/src/lib/from-worker-pool.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["export function isFunction(x) {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","/**\n * @license Angular v13.1.2\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, Observable, merge as merge$1 } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * @usageNotes\n * ### Example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see `forwardRef`\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Base URL for the error details page.\n *\n * Keep the files below in full sync:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/** Called to format a runtime error */\nfunction formatRuntimeError(code, message) {\n const codeAsNumber = code;\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n const fullCode = `NG0${Math.abs(codeAsNumber)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && codeAsNumber < 0) {\n errorMessage = `${errorMessage}. Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* CYCLIC_DI_DEPENDENCY */, `Circular dependency in DI detected for ${token}${depPath}`);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n let ngModuleDetail = '';\n if (ngModuleType && providers) {\n const providerDetail = providers.map(v => v == provider ? '?' + provider + '?' : '...');\n ngModuleDetail =\n ` - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`;\n }\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}'` + ngModuleDetail);\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const injectorDetails = injectorName ? ` in ${injectorName}` : '';\n throw new RuntimeError(-201 /* PROVIDER_NOT_FOUND */, `No provider for ${stringifyForError(token)} found${injectorDetails}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n // If we're in a worker, `Node` will not be defined.\n if (!(typeof Node !== 'undefined' && node instanceof Node) &&\n !(typeof node === 'object' && node != null &&\n node.constructor.name === 'WebWorkerRenderNode')) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call `inject` to access the `Injector` and request injection of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n const typeName = getTypeName(type);\n // TODO(FW-1307): Re-add ngDevMode when closure can handle it\n // ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${typeName}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${typeName}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/** Gets the name of a type, accounting for some cross-browser differences. */\nfunction getTypeName(type) {\n // `Function.prototype.name` behaves differently between IE and other browsers. In most browsers\n // it'll always return the name of the function itself, no matter how many other functions it\n // inherits from. On IE the function doesn't have its own `name` property, but it takes it from\n // the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most\n // browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around\n // the issue by converting the function to a string and parsing its name out that way via a regex.\n if (type.hasOwnProperty('name')) {\n return type.name;\n }\n const match = ('' + type).match(/^function\\s*([^\\s(]+)/);\n return match === null ? '' : match[1];\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection flags for DI.\n *\n * @publicApi\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(stringify(token), 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n/**\n * Defines the possible states of the default change detector.\n * @see `ChangeDetectorRef`\n */\nvar ChangeDetectorStatus;\n(function (ChangeDetectorStatus) {\n /**\n * A state in which, after calling `detectChanges()`, the change detector\n * state becomes `Checked`, and must be explicitly invoked or reactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckOnce\"] = 0] = \"CheckOnce\";\n /**\n * A state in which change detection is skipped until the change detector mode\n * becomes `CheckOnce`.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Checked\"] = 1] = \"Checked\";\n /**\n * A state in which change detection continues automatically until explicitly\n * deactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckAlways\"] = 2] = \"CheckAlways\";\n /**\n * A state in which a change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Detached\"] = 3] = \"Detached\";\n /**\n * Indicates that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state do not detect changes.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Errored\"] = 4] = \"Errored\";\n /**\n * Indicates that the change detector has been destroyed.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Destroyed\"] = 5] = \"Destroyed\";\n})(ChangeDetectorStatus || (ChangeDetectorStatus = {}));\n/**\n * Reports whether a given strategy is currently the default for change detection.\n * @param changeDetectionStrategy The strategy to check.\n * @returns True if the given strategy is the current default, false otherwise.\n * @see `ChangeDetectorStatus`\n * @see `ChangeDetectorRef`\n */\nfunction isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return changeDetectionStrategy == null ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines the CSS styles encapsulation policies for the {@link Component} decorator's\n * `encapsulation` option.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n // TODO: consider making `ViewEncapsulation` a `const enum` instead. See\n // https://github.com/angular/angular/issues/44119 for additional information.\n /**\n * Emulates a native Shadow DOM encapsulation behavior by adding a specific attribute to the\n * component's host element and applying the same attribute to all the CSS selectors provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls}.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Doesn't provide any sort of CSS style encapsulation, meaning that all the styles provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls} are applicable\n * to any HTML element of the application regardless of their host Component.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Uses the browser's native Shadow DOM API to encapsulate CSS styles, meaning that it creates\n * a ShadowRoot for the component's host element which is then used to encapsulate\n * all the Component's styling.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n _global['ngDevMode'] = allowNgDevModeTrue && newCounters;\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object') {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _renderCompCount = 0;\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const type = componentDefinition.type;\n const declaredInputs = {};\n const def = {\n type: type,\n providersResolver: null,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n factory: null,\n template: componentDefinition.template || null,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n hostBindings: componentDefinition.hostBindings || null,\n hostVars: componentDefinition.hostVars || 0,\n hostAttrs: componentDefinition.hostAttrs || null,\n contentQueries: componentDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputs: null,\n outputs: null,\n exportAs: componentDefinition.exportAs || null,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null,\n pipeDefs: null,\n selectors: componentDefinition.selectors || EMPTY_ARRAY,\n viewQuery: componentDefinition.viewQuery || null,\n features: componentDefinition.features || null,\n data: componentDefinition.data || {},\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n id: 'c',\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n setInput: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n };\n const directiveTypes = componentDefinition.directives;\n const feature = componentDefinition.features;\n const pipeTypes = componentDefinition.pipes;\n def.id += _renderCompCount++;\n def.inputs = invertObject(componentDefinition.inputs, declaredInputs),\n def.outputs = invertObject(componentDefinition.outputs),\n feature && feature.forEach((fn) => fn(def));\n def.directiveDefs = directiveTypes ?\n () => (typeof directiveTypes === 'function' ? directiveTypes() : directiveTypes)\n .map(extractDirectiveDef) :\n null;\n def.pipeDefs = pipeTypes ?\n () => (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef) :\n null;\n return def;\n });\n}\n/**\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\n * definition, when generating a direct reference in the component file would otherwise create an\n * import cycle.\n *\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\n *\n * @codeGenApi\n */\nfunction ɵɵsetComponentScope(type, directives, pipes) {\n const def = type.ɵcmp;\n def.directiveDefs = () => directives.map(extractDirectiveDef);\n def.pipeDefs = () => pipes.map(extractPipeDef);\n}\nfunction extractDirectiveDef(type) {\n const def = getComponentDef(type) || getDirectiveDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is neither 'ComponentType' or 'DirectiveType'.`);\n }\n return def;\n}\nfunction extractPipeDef(type) {\n const def = getPipeDef$1(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is not a 'PipeType'.`);\n }\n return def;\n}\nconst autoRegisterModuleById = {};\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n if (def.id != null) {\n autoRegisterModuleById[def.id] = def.type;\n }\n return res;\n });\n}\n/**\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\n * existing module definition.\n *\n * Scope metadata of modules is not used in production builds, so calls to this function can be\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\n * to become eligible for tree-shaking as well.\n *\n * @codeGenApi\n */\nfunction ɵɵsetNgModuleScope(type, scope) {\n return noSideEffects(() => {\n const ngModuleDef = getNgModuleDef(type, true);\n ngModuleDef.declarations = scope.declarations || EMPTY_ARRAY;\n ngModuleDef.imports = scope.imports || EMPTY_ARRAY;\n ngModuleDef.exports = scope.exports || EMPTY_ARRAY;\n });\n}\n/**\n * Inverts an inputs or outputs lookup such that the keys, which were the\n * minified keys, are part of the values, and the values are parsed so that\n * the publicName of the property is the new key\n *\n * e.g. for\n *\n * ```\n * class Comp {\n * @Input()\n * propName1: string;\n *\n * @Input('publicName2')\n * declaredPropName2: number;\n * }\n * ```\n *\n * will be serialized as\n *\n * ```\n * {\n * propName1: 'propName1',\n * declaredPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * which is than translated by the minifier as:\n *\n * ```\n * {\n * minifiedPropName1: 'propName1',\n * minifiedPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * becomes: (public name => minifiedName)\n *\n * ```\n * {\n * 'propName1': 'minifiedPropName1',\n * 'publicName2': 'minifiedPropName2',\n * }\n * ```\n *\n * Optionally the function can take `secondary` which will result in: (public name => declared name)\n *\n * ```\n * {\n * 'propName1': 'propName1',\n * 'publicName2': 'declaredPropName2',\n * }\n * ```\n *\n\n */\nfunction invertObject(obj, secondary) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n let publicName = obj[minifiedKey];\n let declaredName = publicName;\n if (Array.isArray(publicName)) {\n declaredName = publicName[1];\n publicName = publicName[0];\n }\n newLookup[publicName] = minifiedKey;\n if (secondary) {\n (secondary[publicName] = declaredName);\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nconst ɵɵdefineDirective = ɵɵdefineComponent;\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef$1(type) {\n return type[NG_PIPE_DEF] || null;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\n\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n/**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\n * that the `MOVED_VIEWS` are transplanted and on-push.\n */\nconst HAS_TRANSPLANTED_VIEWS = 2;\n// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\n// T_HOST is index 6\n// We already have this constants in LView, we don't need to re-create it.\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$8 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst TRANSPLANTED_VIEWS_TO_REFRESH = 5;\nconst T_HOST = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR$1 = 9;\nconst RENDERER_FACTORY = 10;\nconst RENDERER = 11;\nconst SANITIZER = 12;\nconst CHILD_HEAD = 13;\nconst CHILD_TAIL = 14;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 15;\nconst DECLARATION_COMPONENT_VIEW = 16;\nconst DECLARATION_LCONTAINER = 17;\nconst PREORDER_HOOK_FLAGS = 18;\nconst QUERIES = 19;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 20;\n/**\n * Converts `TViewType` into human readable text.\n * Make sure this matches with `TViewType`\n */\nconst TViewTypeAsString = [\n 'Root',\n 'Component',\n 'Embedded', // 2\n];\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$7 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 8 /* hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return (tNode.flags & 2 /* isComponentHost */) === 2 /* isComponentHost */;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* isDirectiveHost */) === 1 /* isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return def.template !== null;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* IsRoot */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n tNode.hasOwnProperty('tView_') &&\n assertEqual(tNode.tView_, tView, 'This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertDataNext(lView, index, arr) {\n if (arr == null)\n arr = lView;\n assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(lView, index) {\n const tView = lView[1];\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInVarsRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.bindingStartIndex, tView.expandoStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes () must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || 'Component views should always have a parent view (component\\'s host view)');\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see `OnChanges`\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore === null || simpleChangesStore === void 0 ? void 0 : simpleChangesStore.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, value, publicName, privateName) {\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const declaredName = this.declaredInputs[publicName];\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n instance[privateName] = value;\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return instance[SIMPLE_CHANGES_STORE] = store;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst MATH_ML_NAMESPACE = 'http://www.w3.org/1998/MathML/';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param document The object representing the global `document` in this environment.\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API. Meanwhile we just return `undefined` and let the application fail.\n return undefined;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO: cleanup once the code is merged in angular/angular\nvar RendererStyleFlags3;\n(function (RendererStyleFlags3) {\n RendererStyleFlags3[RendererStyleFlags3[\"Important\"] = 1] = \"Important\";\n RendererStyleFlags3[RendererStyleFlags3[\"DashCase\"] = 2] = \"DashCase\";\n})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));\n/** Returns whether the `renderer` is a `ProceduralRenderer3` */\nfunction isProceduralRenderer(renderer) {\n return !!(renderer.listen);\n}\nconst domRendererFactory3 = {\n createRenderer: (hostElement, rendererType) => {\n return getDocument();\n }\n};\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$6 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Returns `LContainer` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLContainer(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLContainer()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (value[TYPE] === true)\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents\n * whose\n * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh\n * or\n * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh\n */\nfunction updateTransplantedViewCount(lContainer, amount) {\n lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n let viewOrContainer = lContainer;\n let parent = lContainer[PARENT];\n while (parent !== null &&\n ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||\n (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {\n parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n viewOrContainer = parent;\n parent = parent[PARENT];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n isInCheckNoChangesMode: false,\n};\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction setCurrentTNodeAsParent() {\n instructionState.lFrame.isParent = true;\n}\nfunction getContextLView() {\n return instructionState.lFrame.contextLView;\n}\nfunction isInCheckNoChangesMode() {\n // TODO(misko): remove this from the LView since it is ngDevMode=true mode only.\n return instructionState.isInCheckNoChangesMode;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n instructionState.isInCheckNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* Element */ | 8 /* ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = instructionState.lFrame = allocLFrame();\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, instructionState.lFrame.contextLView);\n return contextLView[CONTEXT];\n}\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode && index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, 'Can\\'t set index passed end of LView');\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace$1() {\n return instructionState.lFrame.currentNamespace;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = []))\n .push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks || (tView.contentHooks = [])).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks || (tView.contentHooks = [])).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks || (tView.contentCheckHooks = [])).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks || (tView.viewHooks = [])).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks || (tView.viewHooks = [])).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks || (tView.viewCheckHooks = [])).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {\n flags &= 2047 /* IndexWithinInitPhaseReset */;\n flags += 1 /* InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook)\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* NumberOfInitHooksCalledIncrementer */;\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n }\n else {\n profiler(4 /* LifecycleHookStart */, directive, hook);\n try {\n hook.call(directive);\n }\n finally {\n profiler(5 /* LifecycleHookEnd */, directive, hook);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$5 = 1;\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n (tNodeType & 1 /* Text */) && (text += '|Text');\n (tNodeType & 2 /* Element */) && (text += '|Element');\n (tNodeType & 4 /* Container */) && (text += '|Container');\n (tNodeType & 8 /* ElementContainer */) && (text += '|ElementContainer');\n (tNodeType & 16 /* Projection */) && (text += '|Projection');\n (tNodeType & 32 /* Icu */) && (text += '|IcuContainer');\n (tNodeType & 64 /* Placeholder */) && (text += '|Placeholder');\n return text.length > 0 ? text.substring(1) : text;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$4 = 1;\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 16 /* hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 32 /* hasStyleInput */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* Element */ || //\n type === 1 /* Text */ || //\n type === 4 /* Container */ || //\n type === 8 /* ElementContainer */ || //\n type === 32 /* Icu */ || //\n type === 16 /* Projection */ || //\n type === 64 /* Placeholder */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n const isProc = isProceduralRenderer(renderer);\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n isProc ?\n renderer.setAttribute(native, attrName, attrVal, namespaceURI) :\n native.setAttributeNS(namespaceURI, attrName, attrVal);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n if (isProc) {\n renderer.setProperty(native, attrName, attrVal);\n }\n }\n else {\n isProc ?\n renderer.setAttribute(native, attrName, attrVal) :\n native.setAttribute(attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* Bindings */ || marker === 4 /* Template */ ||\n marker === 6 /* I18n */;\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* ImplicitAttributes */ ||\n srcMarker === 2 /* Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n ngDevMode && assertNumber(parentLocation, 'Number expected');\n ngDevMode && assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* InjectorIndexMask */;\n ngDevMode &&\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n return parentLocation & 32767 /* InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n // First determine the `parentTNode` location. The parent pointer differs based on `TView.type`.\n const tView = lViewCursor[TVIEW];\n const tViewType = tView.type;\n if (tViewType === 2 /* Embedded */) {\n ngDevMode &&\n assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n parentTNode = tView.declTNode;\n }\n else if (tViewType === 1 /* Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n parentTNode = lViewCursor[T_HOST];\n }\n else {\n ngDevMode && assertEqual(tView.type, 0 /* Root */, 'Root type expected');\n parentTNode = null;\n }\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset << 16 /* ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* AnyContainer */ | 3 /* AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR$1];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return (flags & InjectFlags.Host) ?\n notFoundValueOrThrow(notFoundValue, token, flags) :\n lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n const value = bloomHash(flags);\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n }\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\nconst NOT_FOUND = {};\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && ((tNode.type & 3 /* AnyRNode */) !== 0));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && providerTokenOrDef.type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, 'Because flags do not contain \\`SkipSelf\\' we expect this to always succeed.');\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, flags, notFoundValue);\n }\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return t => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n * ```\n * interface MyInterface {...}\n * const myInterface = injector.get(new InjectionToken('SomeToken'));\n * // myInterface is inferred to be MyInterface.\n * ```\n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the `inject` function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\n * mentioned above, `'root'` is the default value for `providedIn`.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\n * that will populate the `entryComponents` field of components and NgModules\n * based on its `useValue` property value.\n * All components that are referenced in the `useValue` value (either directly\n * or in a nested array or map) are added to the `entryComponents` property.\n *\n * @usageNotes\n *\n * The following example shows how the router can populate the `entryComponents`\n * field of an NgModule based on a router configuration that refers\n * to components.\n *\n * ```typescript\n * // helper function inside the router\n * function provideRoutes(routes) {\n * return [\n * {provide: ROUTES, useValue: routes},\n * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\n * ];\n * }\n *\n * // user code\n * let routes = [\n * {path: '/root', component: RootComp},\n * {path: '/teams', component: TeamsComp}\n * ];\n *\n * @NgModule({\n * providers: [provideRoutes(routes)]\n * })\n * class ModuleWithRoutes {}\n * ```\n *\n * @publicApi\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\n */\nconst ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents');\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\n/**\n * Base class for query metadata.\n *\n * @see `ContentChildren`.\n * @see `ContentChild`.\n * @see `ViewChildren`.\n * @see `ViewChild`.\n *\n * @publicApi\n */\nclass Query {\n}\n/**\n * ContentChildren decorator and metadata.\n *\n *\n * @Annotation\n * @publicApi\n */\nconst ContentChildren = makePropDecorator('ContentChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data)), Query);\n/**\n * ContentChild decorator and metadata.\n *\n *\n * @Annotation\n *\n * @publicApi\n */\nconst ContentChild = makePropDecorator('ContentChild', (selector, data = {}) => (Object.assign({ selector, first: true, isViewQuery: false, descendants: true }, data)), Query);\n/**\n * ViewChildren decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true, emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue }, data)), Query);\n/**\n * ViewChild decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChild = makePropDecorator('ViewChild', (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data)), Query);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request\n .type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message +=\n `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message +=\n `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message +=\n `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message +=\n `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message +=\n `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Equivalent to ES6 spread, add each item to an array.\n *\n * @param items The items to add\n * @param arr The array to which you want to add the items\n */\nfunction addAllToArray(items, arr) {\n for (let i = 0; i < items.length; i++) {\n arr.push(items[i]);\n }\n}\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list, dst) {\n if (dst === undefined)\n dst = list;\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n if (Array.isArray(item)) {\n // we need to inline it.\n if (dst === list) {\n // Our assumption that the list was already flat was wrong and\n // we need to clone flat since we need to write to it.\n dst = list.slice(0, i);\n }\n flatten(item, dst);\n }\n else if (dst !== list) {\n dst.push(item);\n }\n }\n return dst;\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Insert a `value` into an `array` so that the array remains sorted.\n *\n * NOTE:\n * - Duplicates are not allowed, and are ignored.\n * - This uses binary search algorithm for fast inserts.\n *\n * @param array A sorted array to insert into.\n * @param value The value to insert.\n * @returns index of the inserted value.\n */\nfunction arrayInsertSorted(array, value) {\n let index = arrayIndexOfSorted(array, value);\n if (index < 0) {\n // if we did not find it insert it.\n index = ~index;\n arrayInsert(array, index, value);\n }\n return index;\n}\n/**\n * Remove `value` from a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to remove from.\n * @param value The value to remove.\n * @returns index of the removed value.\n * - positive index if value found and removed.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction arrayRemoveSorted(array, value) {\n const index = arrayIndexOfSorted(array, value);\n if (index >= 0) {\n arraySplice(array, index, 1);\n }\n return index;\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\).*)\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{\\s*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n isReflectionEnabled() {\n return true;\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect && this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n guards(type) {\n return {};\n }\n getter(name) {\n return new Function('o', 'return o.' + name + ';');\n }\n setter(name) {\n return new Function('o', 'v', 'return o.' + name + ' = v;');\n }\n method(name) {\n const functionBody = `if (!o.${name}) throw new Error('\"${name}\" is undefined');\n return o.${name}.apply(o, args);`;\n return new Function('o', 'args', functionBody);\n }\n // There is not a concept of import uri in Js, but this is useful in developing Dart applications.\n importUri(type) {\n // StaticSymbol\n if (typeof type === 'object' && type['filePath']) {\n return type['filePath'];\n }\n // Runtime type\n return `./${stringify(type)}`;\n }\n resourceUri(type) {\n return `./${stringify(type)}`;\n }\n resolveIdentifier(name, moduleUrl, members, runtime) {\n return runtime;\n }\n resolveEnum(enumIdentifier, name) {\n return enumIdentifier[name];\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\nconst USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new Error(`inject() must be called from an injection context`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n return _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n const msg = ngDevMode ?\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.` :\n 'invalid';\n throw new Error(msg);\n}\n/**\n * Injects a token from the currently active injector.\n *\n * Must be used in the context of a factory function such as one defined for an\n * `InjectionToken`. Throws an error if not called from such a context.\n *\n * Within such a factory function, using this function to request injection of a dependency\n * is faster and more type-safe than providing an additional array of dependencies\n * (as has been common with `useFactory` providers).\n *\n * @param token The injection token for the dependency to be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\n * @returns the injected value if injection is successful, `null` otherwise.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nconst inject = ɵɵinject;\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new Error('Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.substr(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nmakeParamDecorator('Inject', (token) => ({ token })), -1 /* Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* Host */);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map(dep => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new Error(`Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\n *\n * Example:\n * ```\n * @Component({\n * selector: 'my-comp',\n * templateUrl: 'my-comp.html', // This requires asynchronous resolution\n * })\n * class MyComponent{\n * }\n *\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\n *\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\n *\n * // Use browser's `fetch()` function as the default resource resolution strategy.\n * resolveComponentResources(fetch).then(() => {\n * // After resolution all URLs have been converted into `template` strings.\n * renderComponent(MyComponent);\n * });\n *\n * ```\n *\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\n * to call this method outside JIT mode.\n *\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\n */\nfunction resolveComponentResources(resourceResolver) {\n // Store all promises which are fetching the resources.\n const componentResolved = [];\n // Cache so that we don't fetch the same resource more than once.\n const urlMap = new Map();\n function cachedResourceResolve(url) {\n let promise = urlMap.get(url);\n if (!promise) {\n const resp = resourceResolver(url);\n urlMap.set(url, promise = resp.then(unwrapResponse));\n }\n return promise;\n }\n componentResourceResolutionQueue.forEach((component, type) => {\n const promises = [];\n if (component.templateUrl) {\n promises.push(cachedResourceResolve(component.templateUrl).then((template) => {\n component.template = template;\n }));\n }\n const styleUrls = component.styleUrls;\n const styles = component.styles || (component.styles = []);\n const styleOffset = component.styles.length;\n styleUrls && styleUrls.forEach((styleUrl, index) => {\n styles.push(''); // pre-allocate array.\n promises.push(cachedResourceResolve(styleUrl).then((style) => {\n styles[styleOffset + index] = style;\n styleUrls.splice(styleUrls.indexOf(styleUrl), 1);\n if (styleUrls.length == 0) {\n component.styleUrls = undefined;\n }\n }));\n });\n const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type));\n componentResolved.push(fullyResolved);\n });\n clearResolutionOfComponentResourcesQueue();\n return Promise.all(componentResolved).then(() => undefined);\n}\nlet componentResourceResolutionQueue = new Map();\n// Track when existing ɵcmp for a Type is waiting on resources.\nconst componentDefPendingResolution = new Set();\nfunction maybeQueueResolutionOfComponentResources(type, metadata) {\n if (componentNeedsResolution(metadata)) {\n componentResourceResolutionQueue.set(type, metadata);\n componentDefPendingResolution.add(type);\n }\n}\nfunction isComponentDefPendingResolution(type) {\n return componentDefPendingResolution.has(type);\n}\nfunction componentNeedsResolution(component) {\n return !!((component.templateUrl && !component.hasOwnProperty('template')) ||\n component.styleUrls && component.styleUrls.length);\n}\nfunction clearResolutionOfComponentResourcesQueue() {\n const old = componentResourceResolutionQueue;\n componentResourceResolutionQueue = new Map();\n return old;\n}\nfunction restoreComponentResolutionQueue(queue) {\n componentDefPendingResolution.clear();\n queue.forEach((_, type) => componentDefPendingResolution.add(type));\n componentResourceResolutionQueue = queue;\n}\nfunction isComponentResourceResolutionQueueEmpty() {\n return componentResourceResolutionQueue.size === 0;\n}\nfunction unwrapResponse(response) {\n return typeof response == 'string' ? response : response.text();\n}\nfunction componentDefResolved(type) {\n componentDefPendingResolution.delete(type);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy$1;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy$1() {\n if (policy$1 === undefined) {\n policy$1 = null;\n if (_global.trustedTypes) {\n try {\n policy$1 = _global.trustedTypes.createPolicy('angular', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy$1;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will cause a browser to load and execute a resource, e.g. when\n * assigning to script.src.\n */\nfunction trustedScriptURLFromString(url) {\n var _a;\n return ((_a = getPolicy$1()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments. It\n * is only available in development mode, and should be stripped out of\n * production code.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from development code, as use in production code can lead to\n * XSS vulnerabilities.\n */\nfunction newTrustedFunctionForDev(...args) {\n if (typeof ngDevMode === 'undefined') {\n throw new Error('newTrustedFunctionForDev should never be called in production');\n }\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy = _global.trustedTypes\n .createPolicy('angular#unsafe-bypass', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedHTMLFromStringBypass(html) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptFromStringBypass(script) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only passed strings that come directly from custom sanitizers or the\n * bypassSecurityTrust* functions.\n */\nfunction trustedScriptURLFromStringBypass(url) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SafeValueImpl {\n constructor(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n }\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see https://g.co/ng/security#xss)`;\n }\n}\nclass SafeHtmlImpl extends SafeValueImpl {\n getTypeName() {\n return \"HTML\" /* Html */;\n }\n}\nclass SafeStyleImpl extends SafeValueImpl {\n getTypeName() {\n return \"Style\" /* Style */;\n }\n}\nclass SafeScriptImpl extends SafeValueImpl {\n getTypeName() {\n return \"Script\" /* Script */;\n }\n}\nclass SafeUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"URL\" /* Url */;\n }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"ResourceURL\" /* ResourceUrl */;\n }\n}\nfunction unwrapSafeValue(value) {\n return value instanceof SafeValueImpl ? value.changingThisBreaksApplicationSecurity :\n value;\n}\nfunction allowSanitizationBypassAndThrow(value, type) {\n const actualType = getSanitizationBypassType(value);\n if (actualType != null && actualType !== type) {\n // Allow ResourceURLs in URL contexts, they are strictly more trusted.\n if (actualType === \"ResourceURL\" /* ResourceUrl */ && type === \"URL\" /* Url */)\n return true;\n throw new Error(`Required a safe ${type}, got a ${actualType} (see https://g.co/ng/security#xss)`);\n }\n return actualType === type;\n}\nfunction getSanitizationBypassType(value) {\n return value instanceof SafeValueImpl && value.getTypeName() || null;\n}\n/**\n * Mark `html` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\n *\n * @param trustedHtml `html` string which needs to be implicitly trusted.\n * @returns a `html` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustHtml(trustedHtml) {\n return new SafeHtmlImpl(trustedHtml);\n}\n/**\n * Mark `style` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\n *\n * @param trustedStyle `style` string which needs to be implicitly trusted.\n * @returns a `style` hich has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustStyle(trustedStyle) {\n return new SafeStyleImpl(trustedStyle);\n}\n/**\n * Mark `script` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\n *\n * @param trustedScript `script` string which needs to be implicitly trusted.\n * @returns a `script` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustScript(trustedScript) {\n return new SafeScriptImpl(trustedScript);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\n *\n * @param trustedUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustUrl(trustedUrl) {\n return new SafeUrlImpl(trustedUrl);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\n *\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustResourceUrl(trustedResourceUrl) {\n return new SafeResourceUrlImpl(trustedResourceUrl);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This helper is used to get hold of an inert tree of DOM elements containing dirty HTML\n * that needs sanitizing.\n * Depending upon browser support we use one of two strategies for doing this.\n * Default: DOMParser strategy\n * Fallback: InertDocument strategy\n */\nfunction getInertBodyHelper(defaultDoc) {\n const inertDocumentHelper = new InertDocumentHelper(defaultDoc);\n return isDOMParserAvailable() ? new DOMParserHelper(inertDocumentHelper) : inertDocumentHelper;\n}\n/**\n * Uses DOMParser to create and fill an inert body element.\n * This is the default strategy used in browsers that support it.\n */\nclass DOMParserHelper {\n constructor(inertDocumentHelper) {\n this.inertDocumentHelper = inertDocumentHelper;\n }\n getInertBodyElement(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the\n // `` tag. Note that the `` tag is closed implicitly to prevent unclosed tags\n // in `html` from consuming the otherwise explicit `` tag.\n html = '' + html;\n try {\n const body = new window.DOMParser()\n .parseFromString(trustedHTMLFromString(html), 'text/html')\n .body;\n if (body === null) {\n // In some browsers (e.g. Mozilla/5.0 iPad AppleWebKit Mobile) the `body` property only\n // becomes available in the following tick of the JS engine. In that case we fall back to\n // the `inertDocumentHelper` instead.\n return this.inertDocumentHelper.getInertBodyElement(html);\n }\n body.removeChild(body.firstChild);\n return body;\n }\n catch (_a) {\n return null;\n }\n }\n}\n/**\n * Use an HTML5 `template` element, if supported, or an inert body element created via\n * `createHtmlDocument` to create and fill an inert DOM element.\n * This is the fallback strategy if the browser does not support DOMParser.\n */\nclass InertDocumentHelper {\n constructor(defaultDoc) {\n this.defaultDoc = defaultDoc;\n this.inertDocument = this.defaultDoc.implementation.createHTMLDocument('sanitization-inert');\n if (this.inertDocument.body == null) {\n // usually there should be only one body element in the document, but IE doesn't have any, so\n // we need to create one.\n const inertHtml = this.inertDocument.createElement('html');\n this.inertDocument.appendChild(inertHtml);\n const inertBodyElement = this.inertDocument.createElement('body');\n inertHtml.appendChild(inertBodyElement);\n }\n }\n getInertBodyElement(html) {\n // Prefer using