firebase 12.6.0-canary.a09ef786f → 12.6.0-canary.bc2b2cdea
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/dist/esm/index.esm.js +1 -1
- package/app/dist/index.cjs.js +1 -1
- package/app/dist/index.mjs +1 -1
- package/compat/app/dist/esm/index.esm.js +1 -1
- package/compat/app/dist/index.cjs.js +1 -1
- package/compat/app/dist/index.mjs +1 -1
- package/compat/dist/esm/index.esm.js +2 -2
- package/compat/dist/index.node.cjs +2 -2
- package/compat/dist/index.rn.cjs.js +2 -2
- package/firebase-ai.js +1 -1
- package/firebase-ai.js.map +1 -1
- package/firebase-analytics-compat.js +1 -1
- package/firebase-analytics.js +1 -1
- package/firebase-app-check-compat.js +1 -1
- package/firebase-app-check.js +1 -1
- package/firebase-app-compat.js +2 -2
- package/firebase-app.js +5 -5
- package/firebase-auth-compat.js +1 -1
- package/firebase-auth-cordova.js +1 -1
- package/firebase-auth-web-extension.js +1 -1
- package/firebase-auth.js +1 -1
- package/firebase-compat.js +6 -6
- package/firebase-data-connect.js +1 -1
- package/firebase-database-compat.js +1 -1
- package/firebase-database.js +1 -1
- package/firebase-firestore-compat.js +2 -2
- package/firebase-firestore-lite.js +1 -1
- package/firebase-firestore.js +1 -1
- package/firebase-functions-compat.js +1 -1
- package/firebase-functions.js +1 -1
- package/firebase-installations-compat.js +1 -1
- package/firebase-installations.js +1 -1
- package/firebase-messaging-compat.js +1 -1
- package/firebase-messaging-sw.js +1 -1
- package/firebase-messaging.js +1 -1
- package/firebase-performance-compat.js +1 -1
- package/firebase-performance-standalone-compat.js +7 -7
- package/firebase-performance.js +1 -1
- package/firebase-remote-config-compat.js +1 -1
- package/firebase-remote-config.js +1 -1
- package/firebase-storage-compat.js +1 -1
- package/firebase-storage.js +1 -1
- package/package.json +29 -29
package/firebase-compat.js
CHANGED
|
@@ -12,23 +12,23 @@
|
|
|
12
12
|
<clipPath id="clip0_6083_34804">
|
|
13
13
|
<rect width="24" height="24" fill="white"/>
|
|
14
14
|
</clipPath>
|
|
15
|
-
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ce(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ue(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Se(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function ke(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function De(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function xe(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,c;for(let p=0;p<80;p++){c=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var u=(t<<5|t>>>27)+h+l+c+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=u}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let Be=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},je=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=je,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class c{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Ge="[DEFAULT]";class $e{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:Ge})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=Ge){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=Ge){return this.instances.has(e)}getOptions(e=Ge){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=d=d||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:d.DEBUG,verbose:d.VERBOSE,info:d.INFO,warn:d.WARN,error:d.ERROR,silent:d.SILENT}),Xe=d.INFO,Ze={[d.DEBUG]:"log",[d.VERBOSE]:"log",[d.INFO]:"info",[d.WARN]:"warn",[d.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in d))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,d.DEBUG,...e),this._logHandler(this,d.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,d.VERBOSE,...e),this._logHandler(this,d.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,d.INFO,...e),this._logHandler(this,d.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,d.WARN,...e),this._logHandler(this,d.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,d.ERROR,...e),this._logHandler(this,d.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ct={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ut(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ut(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ct):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ct={...X=ct,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.14.6-canary.a09ef786f",Et=new tt("@firebase/app");let Ct="[DEFAULT]",St={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},kt=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function Dt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of kt.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function xt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function Mt(e){return!Ot(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function h(e){return null!=e&&void 0!==e.settings}let Lt=new we("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Ft{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new c("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Lt.create("app-deleted",{appName:this._name})}}function Ut(e,t){var r=K(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Vt extends Ft{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Ut(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ut(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,u(It,Tt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){zt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Lt.create("server-app-deleted")}}let qt="12.6.0-canary.a09ef786f";function Bt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:Ct,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Lt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Lt.create("no-options");var s=kt.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Lt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Ft(r,n,o);return kt.set(i,s),s}function jt(e=Ct){var t=kt.get(e);if(!t&&e===Ct&&J())return Bt();if(t)return t;throw Lt.create("no-app",{appName:e})}async function zt(e){let t=!1;var r=e.name;kt.has(r)?(t=!0,kt.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function u(e,t,r){let n=St[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(i.join(" "))):Dt(new c(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Kt(e,t){if(null!==e&&"function"!=typeof e)throw Lt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(i??e.logLevel)&&s({level:d[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Wt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Ht="firebase-heartbeat-database",Gt=1,$t="firebase-heartbeat-store",Qt=null;function Yt(){return Qt=Qt||gt(Ht,Gt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore($t)}catch(e){console.warn(e)}}}).catch(e=>{throw Lt.create("idb-open",{originalErrorMessage:e.message})})}async function Jt(e,t){try{var r=(await Yt()).transaction($t,"readwrite");await r.objectStore($t).put(t,Xt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Lt.create("idb-set",{originalErrorMessage:e?.message}),Et.warn(r.message))}}function Xt(e){return e.name+"!"+e.options.appId}class Zt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new tr(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=er();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=er(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),rr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),rr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=z(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return Et.warn(e),""}}}function er(){return(new Date).toISOString().substring(0,10)}class tr{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Yt()).transaction($t),r=await t.objectStore($t).get(Xt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Lt.create("idb-get",{originalErrorMessage:e?.message}),Et.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function rr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Dt(new c("platform-logger",e=>new bt(e),"PRIVATE")),Dt(new c("heartbeat",e=>new Zt(e),"PRIVATE")),u(It,Tt,t),u(It,Tt,"esm2020"),u("fire-js","");var nr=Object.freeze({__proto__:null,SDK_VERSION:qt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:kt,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:xt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_isFirebaseServerAppSettings:Mt,_registerComponent:Dt,_removeServiceInstance:function(e,t,r=Ct){xt(e,t).clearInstance(r)},_serverApps:At,deleteApp:zt,getApp:jt,getApps:function(){return Array.from(kt.values())},initializeApp:Bt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||he())&&!he())throw Lt.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Ot(e)?r=e.options:Mt(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||J()))throw Lt.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Lt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=At.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Vt(r,n,i,o),At.set(i,s)}return s},onLog:Kt,registerVersion:u,setLogLevel:Wt,FirebaseError:ye});class ir{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new c("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),zt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let sr=new we("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function ar(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Bt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:u,setLogLevel:Wt,onLog:Kt,apps:null,SDK_VERSION:qt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Dt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw sr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:nr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw sr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var or=function e(){let t=ar(ir);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W},t}(),e=new tt("@firebase/app-compat");try{var lr=H();void 0!==lr.firebase&&(e.warn(`
|
|
15
|
+
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ce(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ue(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Se(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function ke(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function De(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function xe(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,c;for(let p=0;p<80;p++){c=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var u=(t<<5|t>>>27)+h+l+c+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=u}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let Be=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},je=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=je,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class c{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let Ge="[DEFAULT]";class $e{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:Ge})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=Ge){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=Ge){return this.instances.has(e)}getOptions(e=Ge){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=d=d||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:d.DEBUG,verbose:d.VERBOSE,info:d.INFO,warn:d.WARN,error:d.ERROR,silent:d.SILENT}),Xe=d.INFO,Ze={[d.DEBUG]:"log",[d.VERBOSE]:"log",[d.INFO]:"info",[d.WARN]:"warn",[d.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in d))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,d.DEBUG,...e),this._logHandler(this,d.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,d.VERBOSE,...e),this._logHandler(this,d.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,d.INFO,...e),this._logHandler(this,d.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,d.WARN,...e),this._logHandler(this,d.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,d.ERROR,...e),this._logHandler(this,d.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ct={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ut(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ut(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ct):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ct={...X=ct,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.14.6-canary.bc2b2cdea",Et=new tt("@firebase/app");let Ct="[DEFAULT]",St={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},kt=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function Dt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of kt.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function xt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function Mt(e){return!Ot(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function h(e){return null!=e&&void 0!==e.settings}let Lt=new we("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class Ft{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new c("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Lt.create("app-deleted",{appName:this._name})}}function Ut(e,t){var r=K(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Vt extends Ft{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Ut(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ut(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,u(It,Tt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){zt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Lt.create("server-app-deleted")}}let qt="12.6.0-canary.bc2b2cdea";function Bt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:Ct,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Lt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Lt.create("no-options");var s=kt.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Lt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Ft(r,n,o);return kt.set(i,s),s}function jt(e=Ct){var t=kt.get(e);if(!t&&e===Ct&&J())return Bt();if(t)return t;throw Lt.create("no-app",{appName:e})}async function zt(e){let t=!1;var r=e.name;kt.has(r)?(t=!0,kt.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function u(e,t,r){let n=St[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(i.join(" "))):Dt(new c(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Kt(e,t){if(null!==e&&"function"!=typeof e)throw Lt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(i??e.logLevel)&&s({level:d[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Wt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Ht="firebase-heartbeat-database",Gt=1,$t="firebase-heartbeat-store",Qt=null;function Yt(){return Qt=Qt||gt(Ht,Gt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore($t)}catch(e){console.warn(e)}}}).catch(e=>{throw Lt.create("idb-open",{originalErrorMessage:e.message})})}async function Jt(e,t){try{var r=(await Yt()).transaction($t,"readwrite");await r.objectStore($t).put(t,Xt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Lt.create("idb-set",{originalErrorMessage:e?.message}),Et.warn(r.message))}}function Xt(e){return e.name+"!"+e.options.appId}class Zt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new tr(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=er();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=er(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),rr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),rr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=z(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return Et.warn(e),""}}}function er(){return(new Date).toISOString().substring(0,10)}class tr{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Yt()).transaction($t),r=await t.objectStore($t).get(Xt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Lt.create("idb-get",{originalErrorMessage:e?.message}),Et.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function rr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Dt(new c("platform-logger",e=>new bt(e),"PRIVATE")),Dt(new c("heartbeat",e=>new Zt(e),"PRIVATE")),u(It,Tt,t),u(It,Tt,"esm2020"),u("fire-js","");var nr=Object.freeze({__proto__:null,SDK_VERSION:qt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:kt,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:xt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_isFirebaseServerAppSettings:Mt,_registerComponent:Dt,_removeServiceInstance:function(e,t,r=Ct){xt(e,t).clearInstance(r)},_serverApps:At,deleteApp:zt,getApp:jt,getApps:function(){return Array.from(kt.values())},initializeApp:Bt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||he())&&!he())throw Lt.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Ot(e)?r=e.options:Mt(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||J()))throw Lt.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Lt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=At.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Vt(r,n,i,o),At.set(i,s)}return s},onLog:Kt,registerVersion:u,setLogLevel:Wt,FirebaseError:ye});class ir{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new c("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),zt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let sr=new we("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function ar(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Bt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:u,setLogLevel:Wt,onLog:Kt,apps:null,SDK_VERSION:qt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Dt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw sr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:nr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw sr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var or=function e(){let t=ar(ir);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W},t}(),e=new tt("@firebase/app-compat");try{var lr=H();void 0!==lr.firebase&&(e.warn(`
|
|
16
16
|
Warning: Firebase is already defined in the global scope. Please make sure
|
|
17
17
|
Firebase library is only loaded once.
|
|
18
18
|
`),cr=lr.firebase.SDK_VERSION)&&0<=cr.indexOf("LITE")&&e.warn(`
|
|
19
19
|
Warning: You are trying to load Firebase while using Firebase Performance standalone script.
|
|
20
20
|
You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
|
|
21
|
-
`)}catch{}let hr=or;u("@firebase/app-compat","0.5.6-canary.a09ef786f",void 0);hr.registerVersion("firebase","12.6.0-canary.a09ef786f","app-compat");var lr="@firebase/installations",cr="0.6.19-canary.a09ef786f";let ur=1e4,dr="w:"+cr,pr="FIS_v2",fr="https://firebaseinstallations.googleapis.com/v1",gr=36e5;let mr=new we("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function vr(e){return e instanceof ye&&e.code.includes("request-failed")}function _r({projectId:e}){return fr+`/projects/${e}/installations`}function yr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function wr(e,t){var r=(await t.json()).error;return mr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function br({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Ir(e,{refreshToken:t}){var r=br(e);return r.append("Authorization",(e=t,pr+" "+e)),r}async function Tr(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Er(t){return new Promise(e=>{setTimeout(e,t)})}let Cr=/^[cdef][\w-]{21}$/,Sr="";function kr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Cr.test(t)?t:Sr}catch{return Sr}}function Ar(e){return e.appName+"!"+e.appId}let Nr=new Map;function Rr(e,t){var r=Ar(e),e=(Pr(r,t),r),r=(()=>(!Dr&&"BroadcastChannel"in self&&((Dr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Pr(e.data.key,e.data.fid)}),Dr))();r&&r.postMessage({key:e,fid:t}),0===Nr.size&&Dr&&(Dr.close(),Dr=null)}function Pr(e,t){var r=Nr.get(e);if(r)for(var n of r)n(t)}let Dr=null;let xr="firebase-installations-database",Or=1,Mr="firebase-installations-store",Lr=null;function Fr(){return Lr=Lr||gt(xr,Or,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Mr)}})}async function Ur(e,t){var r=Ar(e),n=(await Fr()).transaction(Mr,"readwrite"),i=n.objectStore(Mr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Rr(e,t.fid),t}async function Vr(e){var t=Ar(e),r=(await Fr()).transaction(Mr,"readwrite");await r.objectStore(Mr).delete(t),await r.done}async function qr(e,t){var r=Ar(e),n=(await Fr()).transaction(Mr,"readwrite"),i=n.objectStore(Mr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Rr(e,a.fid),a}async function Br(r){let n;var e=await qr(r.appConfig,e=>{var t=zr(e||{fid:kr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=_r(e);var i=br(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:pr,appId:e.appId,sdkVersion:dr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Tr(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:yr(s.authToken)};throw await wr("Create Installation",i)})(t,r);return Ur(t.appConfig,e)}catch(e){throw vr(e)&&409===e.customData.serverCode?await Vr(t.appConfig):await Ur(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(mr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await jr(e.appConfig);for(;1===t.registrationStatus;)await Er(100),t=await jr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Br(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Sr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function jr(e){return qr(e,e=>{if(e)return zr(e);throw mr.create("installation-not-found")})}function zr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ur<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Kr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=_r(i)+`/${s}/authTokens:generate`;var i,s,a=Ir(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:dr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Tr(()=>fetch(n,l));if(a.ok)return yr(await a.json());throw await wr("Generate Auth Token",a)}async function Wr(n,i=!1){let s;var e=await qr(n.appConfig,e=>{if(!Gr(e))throw mr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+gr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Hr(e.appConfig);for(;1===r.authToken.requestStatus;)await Er(100),r=await Hr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Wr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await Kr(t,r),n={...r,authToken:e};return await Ur(t.appConfig,n),e}catch(e){var i;throw!vr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Ur(t.appConfig,i)):await Vr(t.appConfig),e}})(n,r),r;throw mr.create("app-offline")}return e});return s?await s:e.authToken}function Hr(e){return qr(e,e=>{var t,r;if(Gr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ur<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw mr.create("not-registered")})}function Gr(e){return void 0!==e&&2===e.registrationStatus}async function $r(e,t=!1){var r=e,n=(await(!(n=(await Br(r)).registrationPromise)||!await n),await Wr(r,t));return n.token}function Qr(e){return mr.create("missing-app-config-values",{valueName:e})}let Yr="installations",Jr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Qr("App Configuration");if(!e.name)throw Qr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Qr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:xt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Xr=e=>{let t=xt(e.getProvider("app").getImmediate(),Yr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Br(t);return(n||Wr(t)).catch(console.error),r.fid})(t),getToken:e=>$r(t,e)}};Dt(new c(Yr,Jr,"PUBLIC")),Dt(new c("installations-internal",Xr,"PRIVATE")),u(lr,cr),u(lr,cr,"esm2020");let Zr="analytics",en="firebase_id",tn="origin",rn=6e4,nn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",sn="https://www.googletagmanager.com/gtag/js",an=new tt("@firebase/analytics"),on=new we("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function ln(e){var t;return e.startsWith(sn)?e:(t=on.create("invalid-gtag-resource",{gtagURL:e}),an.warn(t.message),"")}function hn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function cn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:ln}),n=document.createElement("script"),i=sn+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function un(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await hn(a);for(let t of e){var c=h.find(e=>e.measurementId===t),u=c&&s[c.appId];if(!u){r=[];break}r.push(u)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){an.error(e)}}else if("config"===e){var d,[p,f]=t,g=k,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await hn(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){an.error(e)}g("config",_,y)}else{var b,I,T,E,C,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(e,...t)}}catch(e){an.error(e)}}}let dn=30;let pn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function fn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=nn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw on.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function gn(e,t=pn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw on.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw on.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new _n;return setTimeout(async()=>{o.abort()},void 0!==r?r:rn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=pn){let{appId:h,measurementId:c}=s;try{await mn(o,e)}catch(e){if(c)return an.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${e?.message}]`),{appId:h,measurementId:c};throw e}try{let e=await fn(s);return l.deleteThrottleMetadata(h),e}catch(e){let t=e;if(!vn(t)){if(l.deleteThrottleMetadata(h),c)return an.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${t?.message}]`),{appId:h,measurementId:c};throw e}let r=503===Number(t?.customData?.httpStatus)?He(a,l.intervalMillis,dn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(h,n),an.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function mn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(on.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function vn(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class _n{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function yn(t,e,r,n,i,s,a){var o=gn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&an.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>an.error(e)),e.push(o),(async()=>{if(!me())return an.warn(on.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return an.warn(on.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(sn)&&t.src.includes(e))return t})(s)||cn(s,o.measurementId),i("js",new Date),a?.config??{});return h[tn]="firebase",h.update=!0,null!=l&&(h[en]=l),i("config",o.measurementId,h),o.measurementId}class wn{constructor(e){this.app=e}_delete(){return delete bn[this.app.options.appId],Promise.resolve()}}let bn={},In=[],Tn={},En="dataLayer",Cn="gtag",Sn,kn,An=!1;function Nn(e){if(An)throw on.create("already-initialized");e.dataLayerName&&(En=e.dataLayerName),e.gtagName&&(Cn=e.gtagName)}function Rn(e,t,r){n=[],ce()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=on.create("invalid-analytics-context",{errorInfo:n}),an.warn(n.message));var n=e.options.appId;if(!n)throw on.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw on.create("no-api-key");an.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID '+e.options.measurementId+' provided in the "measurementId" field in the local Firebase config.')}if(null!=bn[n])throw on.create("already-exists",{id:n});if(!An){{var i=En;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=un(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(bn,In,Tn,En,Cn);kn=s,Sn=a,An=!0}return bn[n]=yn(e,In,Tn,t,Sn,En,r),new wn(e)}async function Pn(){if(ce())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function Dn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function On(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function Mn(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(bn[e.app.options.appId],t).catch(e=>an.error(e))}function Ln(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,{...n,send_to:s}))})(kn,bn[e.app.options.appId],t,r,n).catch(e=>an.error(e))}let Fn="@firebase/analytics",Un="0.10.19-canary.a09ef786f";Dt(new c(Zr,(e,{options:t})=>Rn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),Dt(new c("analytics-internal",function(e){try{let n=e.getProvider(Zr).getImmediate();return{logEvent:(e,t,r)=>Ln(n,e,t,r),setUserProperties:(e,t)=>On(n,e,t)}}catch(e){throw on.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),u(Fn,Un),u(Fn,Un,"esm2020");class Vn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Ln(this._delegate,e,t,r)}setCurrentScreen(e,t){Dn(this._delegate,e,t)}setUserId(e,t){xn(this._delegate,e,t)}setUserProperties(e,t){On(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Mn(this._delegate,e)}}(t=Nm=Nm||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let qn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new Vn(t,r)};e={Analytics:Vn,settings:Nn,isSupported:Pn,EventName:Nm},hr.INTERNAL.registerComponent(new c("analytics-compat",qn,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),hr.registerVersion("@firebase/analytics-compat","0.2.25-canary.a09ef786f");let Bn=new Map,jn={activated:!1,tokenObservers:[]},zn={initialized:!1,enabled:!1};function Kn(e){return Bn.get(e)||{...jn}}let Wn="https://content-firebaseappcheck.googleapis.com/v1",Hn="exchangeDebugToken",Gn={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class $n{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Z,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new Z,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let Qn=new we("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Yn(e=!1){return e?self.grecaptcha?.enterprise:self.grecaptcha}function Jn(e){if(!Kn(e).activated)throw Qn.create("use-before-activation",{appName:e.name})}function Xn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=Zn(r)+"d:"),n&&(s+=Zn(n)+"h:"),s+=Zn(i)+"m:"+Zn(t)+"s"}function Zn(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function ei({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw Qn.create("fetch-network-error",{originalErrorMessage:e?.message})}if(200!==s.status)throw Qn.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw Qn.create("fetch-parse-error",{originalErrorMessage:e?.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw Qn.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ti(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Wn}/projects/${r}/apps/${n}:${Hn}?key=`+i,body:{debug_token:t}}}let ri="firebase-app-check-database",ni=1,ii="firebase-app-check-store",si="debug-token",ai=null;function oi(){return ai=ai||new Promise((t,r)=>{try{var e=indexedDB.open(ri,ni);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(Qn.create("storage-open",{originalErrorMessage:e.target.error?.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(ii,{keyPath:"compositeKey"})}}catch(e){r(Qn.create("storage-open",{originalErrorMessage:e?.message}))}})}async function li(e,t){let n=(await oi()).transaction(ii,"readwrite"),i=n.objectStore(ii).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{r(Qn.create("storage-set",{originalErrorMessage:e.target.error?.message}))}})}async function hi(e){let n=(await oi()).transaction(ii,"readonly"),i=n.objectStore(ii).get(e);return new Promise((r,t)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},n.onerror=e=>{t(Qn.create("storage-get",{originalErrorMessage:e.target.error?.message}))}})}function ci(e){return e.options.appId+"-"+e.name}let ui=new tt("@firebase/app-check");async function di(t){if(me()){let e=void 0;try{e=await hi(ci(t))}catch(e){ui.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function pi(e,t){return me()?li(ci(e),t).catch(e=>{ui.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function fi(){let e=void 0;try{e=await hi(si)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,li(si,r).catch(e=>ui.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function gi(){return zn.enabled}async function mi(){var e=zn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
21
|
+
`)}catch{}let hr=or;u("@firebase/app-compat","0.5.6-canary.bc2b2cdea",void 0);hr.registerVersion("firebase","12.6.0-canary.bc2b2cdea","app-compat");var lr="@firebase/installations",cr="0.6.19-canary.bc2b2cdea";let ur=1e4,dr="w:"+cr,pr="FIS_v2",fr="https://firebaseinstallations.googleapis.com/v1",gr=36e5;let mr=new we("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function vr(e){return e instanceof ye&&e.code.includes("request-failed")}function _r({projectId:e}){return fr+`/projects/${e}/installations`}function yr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function wr(e,t){var r=(await t.json()).error;return mr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function br({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Ir(e,{refreshToken:t}){var r=br(e);return r.append("Authorization",(e=t,pr+" "+e)),r}async function Tr(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Er(t){return new Promise(e=>{setTimeout(e,t)})}let Cr=/^[cdef][\w-]{21}$/,Sr="";function kr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Cr.test(t)?t:Sr}catch{return Sr}}function Ar(e){return e.appName+"!"+e.appId}let Nr=new Map;function Rr(e,t){var r=Ar(e),e=(Pr(r,t),r),r=(()=>(!Dr&&"BroadcastChannel"in self&&((Dr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Pr(e.data.key,e.data.fid)}),Dr))();r&&r.postMessage({key:e,fid:t}),0===Nr.size&&Dr&&(Dr.close(),Dr=null)}function Pr(e,t){var r=Nr.get(e);if(r)for(var n of r)n(t)}let Dr=null;let xr="firebase-installations-database",Or=1,Mr="firebase-installations-store",Lr=null;function Fr(){return Lr=Lr||gt(xr,Or,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Mr)}})}async function Ur(e,t){var r=Ar(e),n=(await Fr()).transaction(Mr,"readwrite"),i=n.objectStore(Mr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Rr(e,t.fid),t}async function Vr(e){var t=Ar(e),r=(await Fr()).transaction(Mr,"readwrite");await r.objectStore(Mr).delete(t),await r.done}async function qr(e,t){var r=Ar(e),n=(await Fr()).transaction(Mr,"readwrite"),i=n.objectStore(Mr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Rr(e,a.fid),a}async function Br(r){let n;var e=await qr(r.appConfig,e=>{var t=zr(e||{fid:kr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=_r(e);var i=br(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:pr,appId:e.appId,sdkVersion:dr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Tr(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:yr(s.authToken)};throw await wr("Create Installation",i)})(t,r);return Ur(t.appConfig,e)}catch(e){throw vr(e)&&409===e.customData.serverCode?await Vr(t.appConfig):await Ur(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(mr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await jr(e.appConfig);for(;1===t.registrationStatus;)await Er(100),t=await jr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Br(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Sr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function jr(e){return qr(e,e=>{if(e)return zr(e);throw mr.create("installation-not-found")})}function zr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+ur<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Kr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=_r(i)+`/${s}/authTokens:generate`;var i,s,a=Ir(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:dr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Tr(()=>fetch(n,l));if(a.ok)return yr(await a.json());throw await wr("Generate Auth Token",a)}async function Wr(n,i=!1){let s;var e=await qr(n.appConfig,e=>{if(!Gr(e))throw mr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+gr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Hr(e.appConfig);for(;1===r.authToken.requestStatus;)await Er(100),r=await Hr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Wr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await Kr(t,r),n={...r,authToken:e};return await Ur(t.appConfig,n),e}catch(e){var i;throw!vr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Ur(t.appConfig,i)):await Vr(t.appConfig),e}})(n,r),r;throw mr.create("app-offline")}return e});return s?await s:e.authToken}function Hr(e){return qr(e,e=>{var t,r;if(Gr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+ur<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw mr.create("not-registered")})}function Gr(e){return void 0!==e&&2===e.registrationStatus}async function $r(e,t=!1){var r=e,n=(await(!(n=(await Br(r)).registrationPromise)||!await n),await Wr(r,t));return n.token}function Qr(e){return mr.create("missing-app-config-values",{valueName:e})}let Yr="installations",Jr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Qr("App Configuration");if(!e.name)throw Qr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Qr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:xt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Xr=e=>{let t=xt(e.getProvider("app").getImmediate(),Yr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Br(t);return(n||Wr(t)).catch(console.error),r.fid})(t),getToken:e=>$r(t,e)}};Dt(new c(Yr,Jr,"PUBLIC")),Dt(new c("installations-internal",Xr,"PRIVATE")),u(lr,cr),u(lr,cr,"esm2020");let Zr="analytics",en="firebase_id",tn="origin",rn=6e4,nn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",sn="https://www.googletagmanager.com/gtag/js",an=new tt("@firebase/analytics"),on=new we("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function ln(e){var t;return e.startsWith(sn)?e:(t=on.create("invalid-gtag-resource",{gtagURL:e}),an.warn(t.message),"")}function hn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function cn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:ln}),n=document.createElement("script"),i=sn+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function un(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await hn(a);for(let t of e){var c=h.find(e=>e.measurementId===t),u=c&&s[c.appId];if(!u){r=[];break}r.push(u)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){an.error(e)}}else if("config"===e){var d,[p,f]=t,g=k,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await hn(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){an.error(e)}g("config",_,y)}else{var b,I,T,E,C,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(e,...t)}}catch(e){an.error(e)}}}let dn=30;let pn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function fn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=nn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw on.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function gn(e,t=pn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw on.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw on.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new _n;return setTimeout(async()=>{o.abort()},void 0!==r?r:rn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=pn){let{appId:h,measurementId:c}=s;try{await mn(o,e)}catch(e){if(c)return an.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${e?.message}]`),{appId:h,measurementId:c};throw e}try{let e=await fn(s);return l.deleteThrottleMetadata(h),e}catch(e){let t=e;if(!vn(t)){if(l.deleteThrottleMetadata(h),c)return an.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+c+` provided in the "measurementId" field in the local Firebase config. [${t?.message}]`),{appId:h,measurementId:c};throw e}let r=503===Number(t?.customData?.httpStatus)?He(a,l.intervalMillis,dn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(h,n),an.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function mn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(on.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function vn(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class _n{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function yn(t,e,r,n,i,s,a){var o=gn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&an.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.measurementId}).`+" To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.")}).catch(e=>an.error(e)),e.push(o),(async()=>{if(!me())return an.warn(on.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return an.warn(on.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(sn)&&t.src.includes(e))return t})(s)||cn(s,o.measurementId),i("js",new Date),a?.config??{});return h[tn]="firebase",h.update=!0,null!=l&&(h[en]=l),i("config",o.measurementId,h),o.measurementId}class wn{constructor(e){this.app=e}_delete(){return delete bn[this.app.options.appId],Promise.resolve()}}let bn={},In=[],Tn={},En="dataLayer",Cn="gtag",Sn,kn,An=!1;function Nn(e){if(An)throw on.create("already-initialized");e.dataLayerName&&(En=e.dataLayerName),e.gtagName&&(Cn=e.gtagName)}function Rn(e,t,r){n=[],ce()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=on.create("invalid-analytics-context",{errorInfo:n}),an.warn(n.message));var n=e.options.appId;if(!n)throw on.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw on.create("no-api-key");an.warn('The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID '+e.options.measurementId+' provided in the "measurementId" field in the local Firebase config.')}if(null!=bn[n])throw on.create("already-exists",{id:n});if(!An){{var i=En;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=un(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(bn,In,Tn,En,Cn);kn=s,Sn=a,An=!0}return bn[n]=yn(e,In,Tn,t,Sn,En,r),new wn(e)}async function Pn(){if(ce())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function Dn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function On(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(kn,bn[e.app.options.appId],t,r).catch(e=>an.error(e))}function Mn(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(bn[e.app.options.appId],t).catch(e=>an.error(e))}function Ln(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,{...n,send_to:s}))})(kn,bn[e.app.options.appId],t,r,n).catch(e=>an.error(e))}let Fn="@firebase/analytics",Un="0.10.19-canary.bc2b2cdea";Dt(new c(Zr,(e,{options:t})=>Rn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),Dt(new c("analytics-internal",function(e){try{let n=e.getProvider(Zr).getImmediate();return{logEvent:(e,t,r)=>Ln(n,e,t,r),setUserProperties:(e,t)=>On(n,e,t)}}catch(e){throw on.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),u(Fn,Un),u(Fn,Un,"esm2020");class Vn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Ln(this._delegate,e,t,r)}setCurrentScreen(e,t){Dn(this._delegate,e,t)}setUserId(e,t){xn(this._delegate,e,t)}setUserProperties(e,t){On(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Mn(this._delegate,e)}}(t=Nm=Nm||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let qn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new Vn(t,r)};e={Analytics:Vn,settings:Nn,isSupported:Pn,EventName:Nm},hr.INTERNAL.registerComponent(new c("analytics-compat",qn,"PUBLIC").setServiceProps(e).setMultipleInstances(!0)),hr.registerVersion("@firebase/analytics-compat","0.2.25-canary.bc2b2cdea");let Bn=new Map,jn={activated:!1,tokenObservers:[]},zn={initialized:!1,enabled:!1};function Kn(e){return Bn.get(e)||{...jn}}let Wn="https://content-firebaseappcheck.googleapis.com/v1",Hn="exchangeDebugToken",Gn={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class $n{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Z,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new Z,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let Qn=new we("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Yn(e=!1){return e?self.grecaptcha?.enterprise:self.grecaptcha}function Jn(e){if(!Kn(e).activated)throw Qn.create("use-before-activation",{appName:e.name})}function Xn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=Zn(r)+"d:"),n&&(s+=Zn(n)+"h:"),s+=Zn(i)+"m:"+Zn(t)+"s"}function Zn(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function ei({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw Qn.create("fetch-network-error",{originalErrorMessage:e?.message})}if(200!==s.status)throw Qn.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw Qn.create("fetch-parse-error",{originalErrorMessage:e?.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw Qn.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ti(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Wn}/projects/${r}/apps/${n}:${Hn}?key=`+i,body:{debug_token:t}}}let ri="firebase-app-check-database",ni=1,ii="firebase-app-check-store",si="debug-token",ai=null;function oi(){return ai=ai||new Promise((t,r)=>{try{var e=indexedDB.open(ri,ni);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(Qn.create("storage-open",{originalErrorMessage:e.target.error?.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(ii,{keyPath:"compositeKey"})}}catch(e){r(Qn.create("storage-open",{originalErrorMessage:e?.message}))}})}async function li(e,t){let n=(await oi()).transaction(ii,"readwrite"),i=n.objectStore(ii).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{r(Qn.create("storage-set",{originalErrorMessage:e.target.error?.message}))}})}async function hi(e){let n=(await oi()).transaction(ii,"readonly"),i=n.objectStore(ii).get(e);return new Promise((r,t)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},n.onerror=e=>{t(Qn.create("storage-get",{originalErrorMessage:e.target.error?.message}))}})}function ci(e){return e.options.appId+"-"+e.name}let ui=new tt("@firebase/app-check");async function di(t){if(me()){let e=void 0;try{e=await hi(ci(t))}catch(e){ui.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function pi(e,t){return me()?li(ci(e),t).catch(e=>{ui.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function fi(){let e=void 0;try{e=await hi(si)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,li(si,r).catch(e=>ui.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function gi(){return zn.enabled}async function mi(){var e=zn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
22
22
|
Can't get debug token in production mode.
|
|
23
|
-
`)}let vi={error:"UNKNOWN_ERROR"};async function _i(e,t=!1,r=!1){var n,i=e.app;Jn(i);let s=Kn(i),a=s.token,o=void 0;if(a&&!Ti(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ti(n)?a=n:await pi(i,void 0)),!t&&a&&Ti(a))return{token:a.token};let l=!1;if(gi())try{var h=await mi(),c=(s.exchangeTokenPromise||(s.exchangeTokenPromise=ei(ti(i,h),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),await s.exchangeTokenPromise);return await pi(i,c),{token:(s.token=c).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),Ei(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await Kn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),o=e}let u;return a?o?u=Ti(a)?{token:a.token,internalError:o}:Ei(o):(u={token:a.token},await pi(i,s.token=a)):u=Ei(o),l&&Ii(i,u),u}function yi(t,e,r,n){var i=t.app,i=Kn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ti(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),bi(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>bi(t))}function wi(e,t){var r=Kn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function bi(e){var t=e.app,t=Kn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new $n(async()=>{var e=Kn(n);let t;if((t=e.token?await _i(r,!0):await _i(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=Kn(n);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},Gn.RETRIAL_MIN_WAIT,Gn.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function Ii(e,t){var r;for(r of Kn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ti(e){return 0<e.expireTimeMillis-Date.now()}function Ei(e){return{token:(t=vi,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Ci{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=Kn(this.app).tokenObservers;for(e of t)wi(this.app,e.next);return Promise.resolve()}}function Si(t){return{getToken:e=>_i(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Jn(t),Kn(t)).provider;return gi()?{token:t=(await ei(ti(t,await mi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>yi(t,"INTERNAL",e),removeTokenListener:e=>wi(t.app,e)}}let ki="https://www.google.com/recaptcha/api.js",Ai="https://www.google.com/recaptcha/enterprise.js";function Ni(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Di(t);var e,s=Yn(!1);return s?Pi(t,r,s,i,n):(e=()=>{var e=Yn(!1);if(!e)throw new Error("no recaptcha");Pi(t,r,e,i,n)},(s=document.createElement("script")).src=ki,s.onload=e,document.head.appendChild(s)),n.promise}function Ri(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Di(t);var e,s=Yn(!0);return s?Pi(t,r,s,i,n):(e=()=>{var e=Yn(!0);if(!e)throw new Error("no recaptcha");Pi(t,r,e,i,n)},(s=document.createElement("script")).src=Ai,s.onload=e,document.head.appendChild(s)),n.promise}function Pi(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{Kn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{Kn(e).reCAPTCHAState.succeeded=!1}}),(r=Kn(e)).reCAPTCHAState={...r.reCAPTCHAState,widgetId:t},o.resolve(s)})}function Di(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function xi(n){Jn(n);let i=await Kn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=Kn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Oi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Ui(this._throttleData);var e=await xi(this._app).catch(e=>{throw Qn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Qn.create("recaptcha-error");let t;try{t=await ei(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Wn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Fi(Number(e.customData?.httpStatus),this._throttleData),Qn.create("initial-throttle",{time:Xn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ni(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Oi&&this._siteKey===e._siteKey}}class Mi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Ui(this._throttleData);var e=await xi(this._app).catch(e=>{throw Qn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Qn.create("recaptcha-error");let t;try{t=await ei(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Wn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Fi(Number(e.customData?.httpStatus),this._throttleData),Qn.create("initial-throttle",{time:Xn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ri(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Mi&&this._siteKey===e._siteKey}}class Li{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return{...t,issuedAtTimeMillis:r}}initialize(e){this._app=e}isEqual(e){return e instanceof Li&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Fi(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Ui(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw Qn.create("throttled",{time:Xn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Vi(e=jt(),r){var t=xt(e=w(e),"app-check");if(zn.initialized||(i=H(),(n=zn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(fi())),gi()&&mi().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw Qn.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(Bn.set(e,t),Bn.get(e)))(a,{...jn});t.activated=!0,t.provider=r,t.cachedTokenPromise=di(a).then(e=>(e&&Ti(e)&&(t.token=e,Ii(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&ui.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return Kn(e).isTokenAutoRefreshEnabled&&yi(s,"INTERNAL",()=>{}),s}let qi="app-check-internal";Dt(new c("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Ci(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(qi).initialize()})),Dt(new c(qi,e=>Si(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),u("@firebase/app-check","0.11.0-canary.a09ef786f");let Bi=new we("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class ji{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Oi(e):e instanceof Mi||e instanceof Oi||e instanceof Li?e:new Li({getToken:e.getToken}),this._delegate=Vi(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw Bi.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=Kn(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await _i(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw Bi.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),yi(i,"EXTERNAL",e,t),()=>wi(i.app,e)}throw Bi.create("use-before-activation",{appName:this.app.name})}}let zi=e=>{var t=e.getProvider("app-compat").getImmediate();return new ji(t)};hr.INTERNAL.registerComponent(new c("appCheck-compat",zi,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Mi,ReCaptchaV3Provider:Oi,CustomProvider:Li})),hr.registerVersion("@firebase/app-check-compat","0.4.0-canary.a09ef786f");let Ki={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Wi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Hi(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}function Gi(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let $i=Hi,Qi=new we("auth","Firebase",Hi()),Yi=new tt("@firebase/auth");function Ji(e,...t){Yi.logLevel<=d.ERROR&&Yi.error(`Auth (${qt}): `+e,...t)}function Xi(e,...t){throw ns(e,...t)}function Zi(e,...t){return ns(e,...t)}function es(e,t,r){var n={...$i(),[t]:r};return new we("auth","Firebase",n).create(t,{appName:e.name})}function ts(e){return es(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function rs(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Xi(e,"argument-error"),es(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function ns(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Qi.create(e,...t)}function m(e,t,...r){if(!e)throw ns(t,...r)}function is(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Ji(t),new Error(t)}function ss(e,t){e||is(t)}function as(){return"undefined"!=typeof self&&self.location?.href||""}function os(){return"http:"===ls()||"https:"===ls()}function ls(){return"undefined"!=typeof self&&self.location?.protocol||null}class hs{constructor(e,t){ss((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ue()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(os()||ce()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function cs(e,t){ss(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class us{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void is("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void is("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void is("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ds={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},ps=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],fs=new hs(3e4,6e4);function gs(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function ms(i,s,a,o,e={}){return vs(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe({key:i.config.apiKey,...t}).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),{method:s,headers:n,...e});return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),us.fetch()(await ys(i,i.config.apiHost,a,r),n)})}async function vs(t,e,r){t._canInitEmulator=!1;var n={...ds,...e};try{var i=new ws(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw bs(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw bs(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw bs(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw bs(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw es(t,h,l);Xi(t,h)}catch(e){if(e instanceof ye)throw e;Xi(t,"network-request-failed",{message:String(e)})}}async function _s(e,t,r,n,i={}){var s=await ms(e,t,r,n,i);return"mfaPendingCredential"in s&&Xi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ys(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?cs(e.config,i):e.config.apiScheme+"://"+i;if(ps.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class ws{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(Zi(this.auth,"network-request-failed")),fs.get())})}}function bs(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),Zi(e,t,n));return n.customData._tokenResponse=r,n}function Is(e){return void 0!==e&&void 0!==e.getResponse}function Ts(e){return void 0!==e&&void 0!==e.enterprise}class Es{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Cs(e,t){return ms(e,"GET","/v2/recaptchaConfig",gs(e,t))}async function Ss(e,t){return ms(e,"POST","/v1/accounts:lookup",t)}function ks(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function As(e){return 1e3*Number(e)}function Ns(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Ji("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Ji("Failed to decode base64 JWT payload"),null)}catch(e){return Ji("Caught error parsing JWT payload as JSON",e?.toString()),null}}function Rs(e){var t=Ns(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ps(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class Ds{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===e?.code&&this.schedule(!0))}this.schedule()}}class xs{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=ks(this.lastLoginAt),this.creationTime=ks(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Os(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ps(e,Ss(n,{idToken:i})),n=(m(i?.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),n.providerUserInfo?.length?Ms(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ms(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}class Ls{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Rs(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Rs(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await vs(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ys(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders(),r=(r["Content-Type"]="application/x-www-form-urlencoded",{method:"POST",headers:r,body:e});return n.emulatorConfig&&ee(n.emulatorConfig.host)&&(r.credentials="include"),us.fetch()(t,r)})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Ls;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ls,this.toJSON())}_performRefresh(){return is("not implemented")}}function Fs(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Us{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new Ds(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new xs(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){var t=await Ps(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Ns(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),(r="object"==typeof i.firebase?i.firebase:void 0)?.sign_in_provider);return{claims:i,token:n,authTime:ks(As(i.auth_time)),issuedAtTime:ks(As(i.iat)),expirationTime:ks(As(i.exp)),signInProvider:s||null,signInSecondFactor:r?.sign_in_second_factor||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Os(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Us({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Os(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(ts(this.auth)):(e=await this.getIdToken(),await Ps(this,(async(e,t)=>ms(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut())}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:c,emailVerified:u,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(c&&f,e,"internal-error"),Ls.fromJSON(this.name,f)),c=(m("string"==typeof c,e,"internal-error"),Fs(r,e.name),Fs(n,e.name),m("boolean"==typeof u,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Fs(i,e.name),Fs(s,e.name),Fs(a,e.name),Fs(o,e.name),Fs(l,e.name),Fs(h,e.name),new Us({uid:c,auth:e,email:n,emailVerified:u,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(c.providerData=p.map(e=>({...e}))),o&&(c._redirectEventId=o),c}static async _fromIdTokenResponse(e,t,r=!1){var n=new Ls,n=(n.updateFromServerResponse(t),new Us({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Os(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ms(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||i?.length),a=new Ls,a=(a.updateFromIdToken(r),new Us({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||i?.length)};return Object.assign(a,s),a}}let Vs=new Map;function qs(e){ss(e instanceof Function,"Expected a class definition");var t=Vs.get(e);return t?ss(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Vs.set(e,t)),t}class Bs{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Bs.type="NONE";let js=Bs;function zs(e,t,r){return`firebase:${e}:${t}:`+r}class Ks{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=zs(this.userKey,n.apiKey,i),this.fullPersistenceKey=zs("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await Ss(this.auth,{idToken:t}).catch(()=>{}))?Us._fromGetAccountInfoResponse(this.auth,e,t):null:Us._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ks(qs(js),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||qs(js),a=zs(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await Ss(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Us._fromGetAccountInfoResponse(t,h,l)}else e=Us._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch{}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch{}}))),new Ks(s,t,r)}}function Ws(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Qs(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Hs(t)?"Firefox":t.includes("silk/")?"Silk":Js(t)?"Blackberry":Xs(t)?"Webos":Gs(t)?"Safari":!t.includes("chrome/")&&!$s(t)||t.includes("edge/")?Ys(t)?"Android":2===(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?.length?t[1]:"Other":"Chrome"}function Hs(e=ae()){return/firefox\//i.test(e)}function Gs(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function $s(e=ae()){return/crios\//i.test(e)}function Qs(e=ae()){return/iemobile/i.test(e)}function Ys(e=ae()){return/android/i.test(e)}function Js(e=ae()){return/blackberry/i.test(e)}function Xs(e=ae()){return/webos/i.test(e)}function Zs(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ea(e=ae()){return Zs(e)||Ys(e)||Xs(e)||Js(e)||/windows phone/i.test(e)||Qs(e)}function ta(e,t=[]){let r;switch(e){case"Browser":r=Ws(ae());break;case"Worker":r=Ws(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${qt}/`+n}class ra{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}}class na{constructor(e){var t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class ia{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new aa(this),this.idTokenSubscription=new aa(this),this.beforeStateQueue=new ra(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Qi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=qs(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Ks.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await Ss(this,{idToken:e}),r=await Us._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=this.redirectUser?._redirectEventId,r=s?._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||!n?.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Os(e)}catch(e){if("auth/network-request-failed"!==e?.code)return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(ts(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(ts(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(ts(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(qs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await ms(e=this,"GET","/v2/passwordPolicy",gs(e,{})),t=new na(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await ms(e=this,"POST","/v2/accounts:revokeToken",gs(e,t)))}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&qs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ks.create(this,[qs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=this.currentUser?.uid??null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ta(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader()),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:((e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken())?.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Yi.logLevel<=d.WARN)&&Yi.warn(`Auth (${qt}): `+t,...r),e?.token)}}function sa(e){return w(e)}class aa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let oa={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function la(e){return oa.loadJS(e)}function ha(e){return"__"+e+Math.floor(1e6*Math.random())}class ca{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new pa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t=e||1e12;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){return this._widgets.get(e||1e12)?.getResponse()||""}async execute(e){return this._widgets.get(e||1e12)?.execute(),""}}class ua{constructor(){this.enterprise=new da}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class da{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let fa="NO_RECAPTCHA";class ga{constructor(e){this.type="recaptcha-enterprise",this.auth=sa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Ts(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(fa)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new ua).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Cs(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Es(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Ts(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=oa.recaptchaEnterpriseScript;0!==e.length&&(e+=t),la(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function ma(e,t,r,n=!1,i=!1){var s=new ga(e);let a;if(i)a=fa;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s={...t};return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function va(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await ma(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await ma(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")?(t=await ma(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===r._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await ma(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await ma(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function _a(e,t,r){var n=sa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!!r?.disableWarnings),s=ya(t),{host:a,port:o}=(e=>{var t,r=ya(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:wa(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:wa(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function c(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",c):c()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function ya(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function wa(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class ba{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return is("not implemented")}_getIdTokenResponse(e){return is("not implemented")}_linkToIdToken(e,t){return is("not implemented")}_getReauthenticationResolver(e){return is("not implemented")}}async function Ia(e,t){return ms(e,"POST","/v1/accounts:resetPassword",gs(e,t))}async function Ta(e,t){return ms(e,"POST","/v1/accounts:signUp",t)}async function Ea(e,t){return _s(e,"POST","/v1/accounts:signInWithPassword",gs(e,t))}async function Ca(e,t){return ms(e,"POST","/v1/accounts:sendOobCode",gs(e,t))}async function Sa(e,t){return Ca(e,t)}async function ka(e,t){return Ca(e,t)}class Aa extends ba{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Aa(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Aa(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return va(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return va(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ta,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Na(e,t){return _s(e,"POST","/v1/accounts:signInWithIdp",gs(e,t))}class Ra extends ba{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Ra(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Xi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t;let{providerId:r,signInMethod:n,...i}="string"==typeof e?JSON.parse(e):e;return r&&n?((t=new Ra(r,n)).idToken=i.idToken||void 0,t.accessToken=i.accessToken||void 0,t.secret=i.secret,t.nonce=i.nonce,t.pendingToken=i.pendingToken||null,t):null}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(e={},this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=Pe(e)),t}}async function Pa(e,t){return ms(e,"POST","/v1/accounts:sendVerificationCode",gs(e,t))}let Da={USER_NOT_FOUND:"user-not-found"};class xa extends ba{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new xa({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new xa({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await _s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t));if(r.temporaryProof)throw bs(e,"account-exists-with-different-credential",r);return r})(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,{...t,operation:"REAUTH"}),Da))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new xa({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Oa{constructor(e){var t=De(xe(e)),r=t.apiKey??null,n=t.oobCode??null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(t.mode??null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){t=De(xe(e=e)).link,r=t?De(xe(t)).deep_link_id:null;var t,r,n=((n=De(xe(e)).deep_link_id)?De(xe(n)).link:null)||n||r||t||e;try{return new Oa(n)}catch{return null}}}class Ma{constructor(){this.providerId=Ma.PROVIDER_ID}static credential(e,t){return Aa._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Oa.parseLink(t);return m(r,"argument-error"),Aa._fromEmailAndCode(e,r.code,r.tenantId)}}Ma.PROVIDER_ID="password",Ma.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ma.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class La{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Fa extends La{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ua extends Fa{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Ra._fromParams(t)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Ra._fromParams({...e,providerId:this.providerId,signInMethod:this.providerId})}static credentialFromResult(e){return Ua.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ua.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Ua(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class Va extends Fa{constructor(){super("facebook.com")}static credential(e){return Ra._fromParams({providerId:Va.PROVIDER_ID,signInMethod:Va.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Va.credentialFromTaggedObject(e)}static credentialFromError(e){return Va.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Va.credential(e.oauthAccessToken)}catch{return null}}}Va.FACEBOOK_SIGN_IN_METHOD="facebook.com",Va.PROVIDER_ID="facebook.com";class qa extends Fa{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ra._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return qa.credential(t,r)}catch{return null}}}qa.GOOGLE_SIGN_IN_METHOD="google.com",qa.PROVIDER_ID="google.com";class Ba extends Fa{constructor(){super("github.com")}static credential(e){return Ra._fromParams({providerId:Ba.PROVIDER_ID,signInMethod:Ba.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Ba.credentialFromTaggedObject(e)}static credentialFromError(e){return Ba.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Ba.credential(e.oauthAccessToken)}catch{return null}}}Ba.GITHUB_SIGN_IN_METHOD="github.com",Ba.PROVIDER_ID="github.com";class ja extends ba{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new ja(t,n):null}static _create(e,t){return new ja(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class za extends La{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return za.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return za.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=ja.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return ja._create(r,t)}catch(e){return null}}}class Ka extends Fa{constructor(){super("twitter.com")}static credential(e,t){return Ra._fromParams({providerId:Ka.PROVIDER_ID,signInMethod:Ka.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Ka.credentialFromTaggedObject(e)}static credentialFromError(e){return Ka.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Ka.credential(t,r)}catch{return null}}}async function Wa(e,t){return _s(e,"POST","/v1/accounts:signUp",gs(e,t))}Ka.TWITTER_SIGN_IN_METHOD="twitter.com",Ka.PROVIDER_ID="twitter.com";class Ha{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Us._fromIdTokenResponse(e,r,n),s=Ga(r);return new Ha({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=Ga(r);return new Ha({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function Ga(e){return e.providerId||("phoneNumber"in e?"phone":null)}class $a extends ye{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,$a.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new $a(e,t,r,n)}}function Qa(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw $a._fromErrorAndOperation(t,e,r,n);throw e})}function Ya(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Ja(e,t){var r=w(e),n=(await Za(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await ms(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ya(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Xa(e,t,r=!1){var n=await Ps(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ha._forOperation(e,"link",n)}async function Za(e,t,r){await Os(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ya(t.providerData).has(r)===e,t.auth,n)}async function eo(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(ts(n));var i="reauthenticate";try{var s=await Ps(e,Qa(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Ns(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ha._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===e?.code&&Xi(n,"user-mismatch"),e}}async function to(e,t,r=!1){var n;return h(e.app)?Promise.reject(ts(e)):(n=await Qa(e,"signIn",t),n=await Ha._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function ro(e,t){return to(sa(e),t)}async function no(e,t){var r=w(e);return await Za(!1,r,t.providerId),Xa(r,t)}async function io(e,t){return eo(w(e),t)}async function so(e,t){var r,n;return h(e.app)?Promise.reject(ts(e)):(n=await _s(r=sa(e),"POST","/v1/accounts:signInWithCustomToken",gs(r,{token:t,returnSecureToken:!0})),n=await Ha._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class ao{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?oo._fromServerResponse(e,t):"totpInfo"in t?lo._fromServerResponse(e,t):Xi(e,"internal-error")}}class oo extends ao{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new oo(t)}}class lo extends ao{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new lo(t)}}function ho(e,t,r){m(0<r.url?.length,e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function co(e){var t=sa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function uo(e,t){await ms(e=w(e),"POST","/v1/accounts:update",gs(e,{oobCode:t}))}async function po(e,t){var r=w(e),n=await Ia(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=ao._fromServerResponse(sa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function fo(e,t){var r=os()?as():"http://localhost",r=(await ms(e=w(e),"POST","/v1/accounts:createAuthUri",gs(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function go(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&ho(r.auth,n,t),await Ca(r.auth,n)).email;r!==e.email&&await e.reload()}async function mo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&ho(n.auth,i,r),await Ca(n.auth,i)).email;n!==e.email&&await e.reload()}async function vo(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ps(n,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function _o(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ps(e,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class yo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class wo extends yo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class bo extends yo{constructor(e,t){super(e,"facebook.com",t)}}class Io extends wo{constructor(e,t){super(e,"github.com",t,"string"==typeof t?.login?t?.login:null)}}class To extends yo{constructor(e,t){super(e,"google.com",t)}}class Eo extends wo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function Co(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&n?.idToken){t=Ns(n.idToken)?.firebase?.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new yo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new bo(a,s);case"github.com":return new Io(a,s);case"google.com":return new To(a,s);case"twitter.com":return new Eo(a,s,n.screenName||null);case"custom":case"anonymous":return new yo(a,null);default:return new yo(a,i,s)}}class So{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new So("enroll",e,t)}static _fromMfaPendingCredential(e){return new So("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return So._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return So._fromIdtoken(e.multiFactorSession.idToken)}return null}}class ko{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=sa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ao._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=So._fromMfaPendingCredential(a.mfaPendingCredential);return new ko(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,{...a,idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var n=await Ha._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ha._forOperation(i.user,i.operationType,r);default:Xi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function Ao(e,t){return ms(e,"POST","/v2/accounts/mfaEnrollment:start",gs(e,t))}class No{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ao._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new No(e)}async getSession(){return So._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ps(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ps(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},ms(r,"POST","/v2/accounts/mfaEnrollment:withdraw",gs(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Ro=new WeakMap;let Po="__sak";class Do{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Po,"1"),this.storage.removeItem(Po),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class xo extends Do{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ea(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}xo.type="LOCAL";let Oo=xo;class Mo extends Do{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Mo.type="SESSION";let Lo=Mo;class Fo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Fo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];s?.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Uo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Fo.receivers=[];class Vo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Uo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function qo(){return window}function Bo(){return void 0!==qo().WorkerGlobalScope&&"function"==typeof qo().importScripts}let jo="firebaseLocalStorageDb",zo="firebaseLocalStorage",Ko="fbase_key";class Wo{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Ho(e,t){return e.transaction([zo],t?"readwrite":"readonly").objectStore(zo)}function Go(){let n=indexedDB.open(jo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(zo,{keyPath:Ko})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(zo)?t(e):(e.close(),e=indexedDB.deleteDatabase(jo),await new Wo(e).toPromise(),t(await Go()))})})}async function $o(e,t,r){var n=Ho(e,!0).put({fbase_key:t,value:r});return new Wo(n).toPromise()}function Qo(e,t){var r=Ho(e,!0).delete(t);return new Wo(r).toPromise()}class Yo{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await Go()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Bo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Fo._getInstance(Bo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e;this.activeServiceWorker=await(async()=>{if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}})(),this.activeServiceWorker&&(this.sender=new Vo(this.activeServiceWorker),e=await this.sender._send("ping",{},800))&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{var e;return indexedDB?(await $o(e=await Go(),Po,"1"),await Qo(e,Po),!0):!1}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>$o(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Ho(e,!1).get(t);return void 0===(r=await new Wo(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Ho(e,!1).getAll();return new Wo(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Yo.type="LOCAL";let Jo=Yo;function Xo(e,t){return ms(e,"POST","/v2/accounts/mfaSignIn:start",gs(e,t))}let Zo=ha("rcb"),el=new hs(3e4,6e4);class tl{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!qo().grecaptcha?.render}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Is(qo().grecaptcha)?Promise.resolve(qo().grecaptcha):new Promise((t,r)=>{let n=qo().setTimeout(()=>{r(Zi(i,"network-request-failed"))},el.get());qo()[Zo]=()=>{qo().clearTimeout(n),delete qo()[Zo];var e=qo().grecaptcha;if(e&&Is(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(Zi(i,"internal-error"))},la(oa.recaptchaV2Script+"?"+Pe({onload:Zo,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(Zi(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!qo().grecaptcha?.render&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class rl{async load(e){return new ca(e)}clearedOneInstance(){}}let nl="recaptcha",il={theme:"light",type:"image"};class sl{constructor(e,t,r={...il}){this.parameters=r,this.type=nl,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=sa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?rl:tl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=qo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(os()&&!Bo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await ms(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class al{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=xa._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ol(t,r,n){if(!t._getRecaptchaConfig())try{e=sa(t),i=await Cs(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Es(i),null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,await(!i.isAnyProviderEnabled()||!new ga(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}var e,i,s,a,o,l,h;try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(s=e.session,"phoneNumber"in e?(m("enroll"===s.type,t,"internal-error"),a={idToken:s.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await va(t,a,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Ao(e,await ll(e,t,n))):Ao(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===s.type,t,"internal-error"),m(o=e.multiFactorHint?.uid||e.multiFactorUid,t,"missing-multi-factor-info"),l={mfaPendingCredential:s.credential,mfaEnrollmentId:o,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await va(t,l,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Xo(e,await ll(e,t,n))):Xo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(h={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await va(t,h,"sendVerificationCode",async(e,t)=>t.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Pa(e,await ll(e,t,n))):Pa(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{n?._reset()}}async function ll(e,t,r){m(r.type===nl,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),{...t});return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class hl{constructor(e){this.providerId=hl.PROVIDER_ID,this.auth=sa(e)}verifyPhoneNumber(e,t){return ol(this.auth,e,w(t))}static credential(e,t){return xa._fromVerification(e,t)}static credentialFromResult(e){var t=e;return hl.credentialFromTaggedObject(t)}static credentialFromError(e){return hl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?xa._fromTokenResponse(t,r):null}}function cl(e,t){return t?qs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}hl.PROVIDER_ID="phone",hl.PHONE_SIGN_IN_METHOD="phone";class ul extends ba{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Na(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Na(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Na(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function dl(e){return to(e.auth,new ul(e),e.bypassAuthState)}function pl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),eo(r,new ul(e),e.bypassAuthState)}async function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Xa(r,new ul(e),e.bypassAuthState)}class gl{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return dl;case"linkViaPopup":case"linkViaRedirect":return fl;case"reauthViaPopup":case"reauthViaRedirect":return pl;default:Xi(this.auth,"internal-error")}}resolve(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let ml=new hs(2e3,1e4);class vl extends gl{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,vl.currentPopupAction&&vl.currentPopupAction.cancel(),vl.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){ss(1===this.filter.length,"Popup operations only handle one event");var e=Uo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(Zi(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(Zi(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,vl.currentPopupAction=null}pollUserCancellation(){let e=()=>{this.authWindow?.window?.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(Zi(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,ml.get())};e()}}vl.currentPopupAction=null;let _l="pendingRedirect",yl=new Map;class wl extends gl{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=yl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=El(t),i=Tl(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}yl.set(this.auth._key(),t)}return this.bypassAuthState||yl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function bl(e,t){return Tl(e)._set(El(t),"true")}function Il(e,t){yl.set(e._key(),t)}function Tl(e){return qs(e._redirectPersistence)}function El(e){return zs(_l,e.config.apiKey,e.name)}function Cl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=sa(e),rs(e,t,La),await n._initializationPromise,await bl(i=cl(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function Sl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(rs(n.auth,t,La),h(n.auth.app))return Promise.reject(ts(n.auth));await n.auth._initializationPromise;var i=cl(n.auth,r),s=(await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),await n.auth._initializationPromise,cl(n.auth,r)),s=(await Za(!1,n,t.providerId),await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Al(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(ts(e)):(i=cl(n=sa(e),t),(i=await new wl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Nl(e){var t=Uo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Rl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return Dl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!Dl(e)?(r=e.error.code?.split("auth/")[1]||"internal-error",t.onError(Zi(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Pl(e))}saveEventToCache(e){this.cachedEventUids.add(Pl(e)),this.lastProcessedEventTime=Date.now()}}function Pl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function Dl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===t?.code}async function xl(e,t={}){return ms(e,"GET","/v1/projects",t)}let Ol=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ml=/^https?/;async function Ll(e){if(!e.config.emulator){var t,r=(await xl(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=as(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ml.test(n)&&(Ol.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch{}Xi(e,"unauthorized-domain")}}let Fl=new hs(3e4,6e4);function Ul(){var t=qo().___jsl;if(t?.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Vl(i){return new Promise((e,t)=>{function r(){Ul(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ul(),t(Zi(i,"network-request-failed"))},timeout:Fl.get()})}if(qo().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else{var n;if(!qo().gapi?.load)return n=ha("iframefcb"),qo()[n]=()=>{gapi.load?r():t(Zi(i,"network-request-failed"))},la(oa.gapiScript+"?onload="+n).catch(e=>t(e));r()}}).catch(e=>{throw ql=null,e})}let ql=null;let Bl=new hs(5e3,15e3),jl="__/auth/iframe",zl="emulator/auth/iframe",Kl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Wl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Hl(a){e=a;var e,t,r,n=await(ql=ql||Vl(e)),i=qo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?cs(n,zl):`https://${e.config.authDomain}/`+jl,n={apiKey:n.apiKey,appName:e.name,v:qt},(r=Wl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Kl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=Zi(a,"network-request-failed"),n=qo().setTimeout(()=>{t(r)},Bl.get());function i(){qo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let Gl={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class $l{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ql(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s={...Gl,width:n.toString(),height:i.toString(),top:s,left:a},a=ae().toLowerCase(),s=(r&&(o=$s(a)?"_blank":r),Hs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],Zs(n)&&window.navigator?.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new $l(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new $l(a)}let Yl="__/auth/handler",Jl="emulator/auth/handler",Xl=encodeURIComponent("fac");async function Zl(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:qt,eventId:i};if(t instanceof La){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",ke(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Fa&&0<(u=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=u.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,c=a;for(h of Object.keys(c))void 0===c[h]&&delete c[h];var u=await e._getAppCheckToken(),u=u?`#${Xl}=`+encodeURIComponent(u):"";return`${r=[e.config][0],r.emulator?cs(r,Jl):`https://${r.authDomain}/`+Yl}?`+Pe(c).slice(1)+u}let eh="webStorageSupport";class th{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _openPopup(e,t,r,n){return ss(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()"),Ql(e,await Zl(e,t,r,as(),n),Uo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await Zl(e,t,r,as(),n);return qo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(ss(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Hl(t);let r=new Rl(t);return e.register("authEvent",e=>(m(e?.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(eh,{type:eh},e=>{var t=e?.[0]?.[eh];void 0!==t&&n(!!t),Xi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ll(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ea()||Gs()||Zs()}}let rh=th;class nh extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return is("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new nh(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaEnrollment:finalize",gs(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaSignIn:finalize",gs(e,t))}}class ih{constructor(){}static assertion(e){return nh._fromCredential(e)}}ih.FACTOR_ID="phone";or="@firebase/auth",lr="1.11.1-canary.a09ef786f";class sh{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t(e?.stsTokenManager.accessToken||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var ah;function oh(){return window}Y()?._authIdTokenMaxAge,oa={loadJS(n){return new Promise((e,r)=>{var t=document.createElement("script");t.setAttribute("src",n),t.onload=e,t.onerror=e=>{var t=Zi("internal-error");t.customData=e,r(t)},t.type="text/javascript",t.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(t)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},ah="Browser",Dt(new c("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:ah,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ta(ah)}),a=new ia(r,n,i,s);return e=a,r=(t=t)?.persistence||[],r=(Array.isArray(r)?r:[r]).map(qs),t?.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,t?.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),Dt(new c("auth-internal",e=>{var t=sa(e.getProvider("auth").getImmediate());return e=t,new sh(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),u(or,lr,(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(ah)),u(or,lr,"esm2020");async function lh(e,t,r){var n=oh().BuildInfo,i=(ss(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(ss(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return Zs()?s.ibi=n.packageName:Ys()?s.apn=n.packageName:Xi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,Zl(e,r,t.type,void 0,t.eventId??void 0,s)}function hh(n){let i=oh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let ch=20;class uh extends Rl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function dh(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<ch;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:Zi(e,"no-auth-event")}}async function ph(e){var t=await gh()._get(mh(e));return t&&await gh()._remove(mh(e)),t}function fh(e,t){i=vh(t=t),r=i.link?decodeURIComponent(i.link):void 0,n=vh(r).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=vh(i).link||i||n||r||t;return i.includes("/__/auth/callback")?(n=(r=((n=vh(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(n.firebaseError)):null)?.code?.split("auth/")?.[1])?Zi(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function gh(){return qs(Oo)}function mh(e){return zs("authEvent",e.config.apiKey,e.name)}function vh(e){var t,r;return e?.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class _h{constructor(){this._redirectPersistence=Lo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new uh(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Xi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,m("function"==typeof(s=oh())?.universalLinks?.subscribe,i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==s?.BuildInfo?.packageName,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.openUrl,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.isAvailable,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.InAppBrowser?.open,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),yl.clear(),await this._originValidation(e),dh(e,r,n)),a=(i=e,r=a,await gh()._set(mh(i),r),await lh(e,a,t));return(async(a,o,l)=>{let h=oh().cordova,c=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=h.plugins.browsertab?.close;"function"==typeof e&&e(),"function"==typeof l?.close&&l.close()}function i(){r=r||window.setTimeout(()=>{e(Zi(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===document?.visibilityState&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Ys()&&document.addEventListener("visibilitychange",s,!1),c=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{c()}})(e,s,await hh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=oh().BuildInfo,r={};Zs()?r.iosBundleId=t.packageName:Ys()?r.androidPackageName=t.packageName:Xi(e,"operation-not-supported-in-this-environment"),await xl(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=oh();let s=setTimeout(async()=>{await ph(n),i.onEvent(wh())},500),a=async e=>{clearTimeout(s);var t=await ph(n);let r=null;t&&e?.url&&(r=fh(t,e.url)),i.onEvent(r||wh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";oh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let yh=_h;function wh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:Zi("no-auth-event")}}function bh(){return self?.location?.protocol||null}function Ih(e=ae()){return!("file:"!==bh()&&"ionic:"!==bh()&&"capacitor:"!==bh()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Th(e=ae()){return de()&&11===document?.documentMode||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Eh(){try{var e=self.localStorage,t=Uo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Th()||me()}catch(e){return Ch()&&me()}return!1}function Ch(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function Sh(){return("http:"===bh()||"https:"===bh()||ce()||Ih())&&!(ue()||le())&&Eh()&&!Ch()}function kh(){return Ih()&&"undefined"!=typeof document}let Ah={LOCAL:"local",NONE:"none",SESSION:"session"},Nh=m,Rh="persistence";async function Ph(e){await e._initializationPromise;var t=Dh(),r=zs(Rh,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function Dh(){try{return("undefined"!=typeof window?window:null)?.sessionStorage||null}catch(e){return null}}let xh=m;class Oh{constructor(){this.browserResolver=qs(rh),this.cordovaResolver=qs(yh),this.underlyingResolver=null,this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return kh()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return xh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!kh()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Mh(e){return e.unwrap()}function Lh(e,t){var r,n,i,s=t.customData?._tokenResponse;"auth/multi-factor-auth-required"===t?.code?t.resolver=new qh(e,(r=t,n=w(e),m((i=r).customData.operationType,n,"argument-error"),m(i.customData._serverResponse?.mfaPendingCredential,n,"argument-error"),ko._fromError(n,i))):s&&(i=Fh(n=t))&&(n.credential=i,n.tenantId=s.tenantId||void 0,n.email=s.email||void 0,n.phoneNumber=s.phoneNumber||void 0)}function Fh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return hl.credentialFromResult(e);var r=t.providerId;if(!r||r===Ki.PASSWORD)return null;let n;switch(r){case Ki.GOOGLE:n=qa;break;case Ki.FACEBOOK:n=Va;break;case Ki.GITHUB:n=Ba;break;case Ki.TWITTER:n=Ka;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?ja._create(r,o):Ra._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Ua(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Uh(t,e){return e.catch(e=>{throw e instanceof ye&&Lh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Fh(e),additionalUserInfo:Co(e),user:Bh.getOrCreate(r)}})}async function Vh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Uh(t,r.confirm(e))}}class qh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Uh(Mh(this.auth),this.resolver.resolveSignIn(e))}}class Bh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Ro.has(t)||Ro.set(t,No._fromUser(t)),Ro.get(t))}static getOrCreate(e){return Bh.USER_MAP.has(e)||Bh.USER_MAP.set(e,new Bh(e)),Bh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Uh(this.auth,no(this._delegate,e))}async linkWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);await Za(!1,n,"phone");var i=await ol(n.auth,t,w(r));return new al(i,e=>no(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),cl(n.auth,r));return new vl(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async linkWithRedirect(e){return await Ph(sa(this.auth)),kl(this._delegate,e,Oh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Uh(this.auth,io(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(ts(n.auth)):(i=await ol(n.auth,t,w(r)),new al(i,e=>io(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(Zi(n.auth,"operation-not-supported-in-this-environment"));rs(n.auth,t,La);var i=cl(n.auth,r);return new vl(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async reauthenticateWithRedirect(e){return await Ph(sa(this.auth)),Sl(this._delegate,e,Oh)}sendEmailVerification(e){return go(this._delegate,e)}async unlink(e){return await Ja(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(ts(r.auth)):_o(r,e,null);var t,r}updatePassword(e){return _o(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(ts(r.auth));await Xa(r,t)})(this._delegate,e)}updateProfile(e){return vo(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return mo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}Bh.USER_MAP=new WeakMap;let jh=m;class zh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,jh(r,"invalid-api-key",{appName:e.name}),jh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Oh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=Dh();if(!r)return[];var n=zs(Rh,e,t);switch(r.getItem(n)){case Ah.NONE:return[js];case Ah.LOCAL:return[Jo,Lo];case Ah.SESSION:return[Lo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Jo)||r.push(Jo),"undefined"!=typeof window)for(var n of[Oo,Lo])r.includes(n)||r.push(n);return r.includes(js)||r.push(js),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap(Gi)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?Bh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){_a(this._delegate,e,t)}applyActionCode(e){return uo(this._delegate,e)}checkActionCode(e){return po(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ia(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Uh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(ts(t)):(i=await va(n=sa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Wa,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e}),i=await Ha._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return fo(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===Oa.parseLink(e)?.operation}async getRedirectResult(){jh(Sh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Oh,await sa(e)._initializationPromise;var e,t,r=await Al(e,t,!1);return r?Uh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){sa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=sa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&ho(n,e,t),await va(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=sa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&ho(n,i,r),await va(n,i,"getOobCode",Sa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Nh(Object.values(Ah).includes(r),t,"invalid-persistence-type"),ue()?Nh(r!==Ah.SESSION,t,"unsupported-persistence-type"):le()?Nh(r===Ah.NONE,t,"unsupported-persistence-type"):Ch()?Nh(r===Ah.NONE||r===Ah.LOCAL&&me(),t,"unsupported-persistence-type"):Nh(r===Ah.NONE||Eh(),t,"unsupported-persistence-type");let n;switch(e){case Ah.SESSION:n=Lo;break;case Ah.LOCAL:var i=await qs(Jo)._isAvailable();n=i?Jo:Oo;break;case Ah.NONE:n=js;break;default:return Xi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Uh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(ts(e)):(await(t=sa(e))._initializationPromise,t.currentUser?.isAnonymous?new Ha({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Wa(t,{returnSecureToken:!0}),r=await Ha._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Uh(this._delegate,ro(this._delegate,e))}signInWithCustomToken(e){return Uh(this._delegate,so(this._delegate,e))}signInWithEmailAndPassword(e,t){return Uh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(ts(r)):ro(w(r),Ma.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(r),e})));var r}signInWithEmailLink(e,t){return Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=w(e),m((i=Ma.credentialWithLink(t,r||as()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),ro(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Vh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(ts(e));let n=sa(e);var i=await ol(n,t,w(r));return new al(i,e=>ro(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return jh(Sh(),this._delegate,"operation-not-supported-in-this-environment"),Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(Zi(e,"operation-not-supported-in-this-environment")):(n=sa(e),rs(e,t,La),i=cl(n,r),new vl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Oh))}async signInWithRedirect(e){return jh(Sh(),this._delegate,"operation-not-supported-in-this-environment"),await Ph(this._delegate),Cl(this._delegate,e,Oh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await po(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Kh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&Bh.getOrCreate(e)),error:t,complete:r}}zh.Persistence=Ah;class Wh{static credential(e,t){return hl.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new hl(Mh(hr.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Wh.PHONE_SIGN_IN_METHOD=hl.PHONE_SIGN_IN_METHOD,Wh.PROVIDER_ID=hl.PROVIDER_ID;let Hh=m;class Gh{constructor(e,t,r=hr.app()){Hh(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new sl(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=hr).INTERNAL.registerComponent(new c("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new zh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Wi.EMAIL_SIGNIN,PASSWORD_RESET:Wi.PASSWORD_RESET,RECOVER_EMAIL:Wi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Wi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Wi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Wi.VERIFY_EMAIL}},EmailAuthProvider:Ma,FacebookAuthProvider:Va,GithubAuthProvider:Ba,GoogleAuthProvider:qa,OAuthProvider:Ua,SAMLAuthProvider:za,PhoneAuthProvider:Wh,PhoneMultiFactorGenerator:ih,RecaptchaVerifier:Gh,TwitterAuthProvider:Ka,Auth:zh,AuthCredential:ba,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.6.1-canary.a09ef786f");let $h="@firebase/database",Qh="1.1.0-canary.a09ef786f",Yh="";function Jh(e){Yh=e}class Xh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Zh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function ec(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Xh(t)}catch(e){}return new Zh}var tc;function rc(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function nc(t){return function(...e){vc(t,...e)}}function ic(...e){var t="FIREBASE INTERNAL ERROR: "+pc(...e);uc.error(t)}function sc(e,t){return e===t?0:e<t?-1:1}function ac(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function oc(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+oc(e[r[i]]);return n+="}"}function lc(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let hc=ec("localStorage"),cc=ec("sessionStorage"),uc=new tt("@firebase/database"),dc=(()=>{let e=1;return function(){return e++}})(),pc=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=pc.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},fc=null,gc=!0,mc=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(uc.logLevel=d.VERBOSE,fc=uc.log.bind(uc),t&&cc.set("logging_enabled",!0)):"function"==typeof e?fc=e:(fc=null,cc.remove("logging_enabled"))},vc=function(...e){var t;!0===gc&&(gc=!1,null===fc)&&!0===cc.get("logging_enabled")&&mc(!0),fc&&(t=pc.apply(null,e),fc(t))},_c=function(...e){var t="FIREBASE FATAL ERROR: "+pc(...e);throw uc.error(t),new Error(t)},yc=function(...e){var t="FIREBASE WARNING: "+pc(...e);uc.warn(t)},wc=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&yc("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},bc=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Ic="[MIN_NAME]",Tc="[MAX_NAME]",Ec=function(e,t){var r,n;return e===t?0:e===Ic||t===Tc?-1:t===Ic||e===Tc?1:(r=kc(e),n=kc(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Cc(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Sc(e){g(!bc(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function kc(e){if(Nc.test(e)){var t=Number(e);if(t>=Rc&&t<=Pc)return t}return null}function Ac(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Nc=new RegExp("^-?(0*)\\d{1,10}$"),Rc=-2147483648,Pc=2147483647,Dc=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw yc("Exception was thrown by user callback.",e),t},Math.floor(0))}};class xc{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=t?.getImmediate({optional:!0}),this.appCheck||t?.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.appCheckProvider?.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){yc(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Oc{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(vc("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',yc(e)}}class Mc{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Mc.OWNER="owner";let Lc=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Fc="websocket",Uc="long_polling";class Vc{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=hc.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&hc.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function qc(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Fc)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Uc)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Cc(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class Bc{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let jc={},zc={};function Kc(e){var t=e.toString();return jc[t]||(jc[t]=new Bc),jc[t]}class Wc{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Dc(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Hc{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=nc(e),this.stats_=Kc(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),qc(t,Uc,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Wc(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Gc((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Lc.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Hc.forceAllow_=!0}static forceDisallow(){Hc.forceDisallow_=!0}static isAvailable(){return!!Hc.forceAllow_||!(Hc.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=lc(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Gc{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=dc(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Gc.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){vc("frame writing exception"),e.stack&&vc(e.stack),vc(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||vc("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{vc("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let $c=null;"undefined"!=typeof MozWebSocket?$c=MozWebSocket:"undefined"!=typeof WebSocket&&($c=WebSocket);class Qc{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=nc(this.connId),this.stats_=Kc(t),this.connURL=Qc.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Lc.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),qc(e,Fc,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,hc.set("previous_websocket_failure",!0);try{pe(),this.mySock=new $c(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Qc.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==$c&&!Qc.forceDisallow_}static previouslyFailed(){return hc.isInMemoryStorage||!0===hc.get("previous_websocket_failure")}markConnectionHealthy(){hc.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),lc(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Qc.responsesRequiredToBeHealthy=2,Qc.healthyTimeout=3e4;class Yc{static get ALL_TRANSPORTS(){return[Hc,Qc]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=Qc&&Qc.isAvailable();let r=t&&!Qc.previouslyFailed();if(e.webSocketOnly&&(t||yc("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[Qc];else{var n,i=this.transports_=[];for(n of Yc.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Yc.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Yc.globalTransportInitialized_=!1;class Jc{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=nc("c:"+this.id+":"),this.transportManager_=new Yc(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Ac(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=ac("t",e),r=ac("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=ac("t",e),r=ac("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=ac("t",e);if("d"in e){var r=e.d;if("h"===t){var n={...r};this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?ic("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):ic("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&yc("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Ac(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Ac(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(hc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Xc{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Zc{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class eu extends Zc{static getInstance(){return new eu}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let tu=32,ru=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function nu(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function iu(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function su(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function au(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function ou(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function lu(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return lu(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function hu(e,t){var r=su(e,0),n=su(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Ec(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function cu(e,t){if(nu(e)!==nu(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function uu(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(nu(e)>nu(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class du{constructor(e,t){this.errorPrefix_=t,this.parts_=su(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=Be(this.parts_[r]);pu(this)}}function pu(e){if(e.byteLength_>ru)throw new Error(e.errorPrefix_+"has a key path longer than "+ru+" bytes ("+e.byteLength_+").");if(e.parts_.length>tu)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+tu+") or object contains a cycle "+fu(e))}function fu(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class gu extends Zc{static getInstance(){return new gu}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class mu extends Xc{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=mu.nextPersistentConnectionId_++,this.log_=nc("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");gu.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&eu.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(mu.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=Se(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),yc("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):ic("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+mu.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,c]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?vc("getToken() completed but was canceled"):(vc("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=c&&c.token,r=new Jc(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{yc(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&yc(e),o())}}}interrupt(e){vc("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){vc("Resuming connection for reason: "+e),delete this.interruptReasons_[e],ke(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>oc(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){vc("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){vc("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Yh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ue()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=eu.getInstance().currentlyOnline();return ke(this.interruptReasons_)&&e}}mu.nextPersistentConnectionId_=0,mu.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class vu{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(Ic,e),n=new p(Ic,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let _u;class yu extends vu{static get __EMPTY_NODE(){return _u}static set __EMPTY_NODE(e){_u=e}compare(e,t){return Ec(e.name,t.name)}isDefinedOn(e){throw B("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Tc,_u)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,_u)}toString(){return".key"}}let wu=new yu;class bu{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class Iu{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Iu.RED,this.left=null!=n?n:Eu.EMPTY_NODE,this.right=null!=i?i:Eu.EMPTY_NODE}copy(e,t,r,n,i){return new Iu(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Eu.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Eu.EMPTY_NODE;n=r.right.min_(),r=r.copy(n.key,n.value,null,null,r.right.removeMin_())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,Iu.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,Iu.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}Iu.RED=!0,Iu.BLACK=!1;class Tu{copy(e,t,r,n,i){return this}insert(e,t,r){return new Iu(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Eu{constructor(e,t=Eu.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Eu(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,Iu.BLACK,null,null))}remove(e){return new Eu(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Iu.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new bu(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new bu(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new bu(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new bu(this.root_,null,this.comparator_,!0,e)}}function Cu(e,t){return Ec(e.name,t.name)}function Su(e,t){return Ec(e,t)}Eu.EMPTY_NODE=new Tu;let ku;function Au(e){return"number"==typeof e?"number:"+Sc(e):"string:"+e}function Nu(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===ku||e.isEmpty(),"priority of unexpected type."),g(e===ku||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Ru;class Pu{static set __childrenNodeConstructor(e){Ru=e}static get __childrenNodeConstructor(){return Ru}constructor(e,t=Pu.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Nu(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Pu(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Pu.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Pu.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Pu.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===nu(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Pu.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Au(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Sc(this.value_):this.value_),this.lazyHash_=rc(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Pu.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Pu.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Pu.VALUE_TYPE_ORDER.indexOf(t),i=Pu.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Pu.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Du,xu;class Ou extends vu{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Ec(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Tc,new Pu("[PRIORITY-POST]",xu))}makePost(e,t){var r=Du(e);return new p(t,new Pu("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new Ou,Mu=Math.log(2);class Lu{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Mu,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Fu(l,e,h,t){l.sort(e);let c=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new Iu(a,s.node,Iu.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=c(e,i),n=c(i+1,t),s=l[i],a=h?h(s):s,new Iu(a,s.node,Iu.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,c(1+r,n)),r=l[r],i=h?h(r):r,e=new Iu(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,Iu.BLACK):(t(n,Iu.BLACK),t(n,Iu.RED))}return a})(new Lu(l.length));return new Eu(t||e,r)}let Uu,Vu={};class qu{static get Default(){return g((Vu,I),"ChildrenNode.ts has not been loaded"),Uu=Uu||new qu({".priority":Vu},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=Se(this.indexes_,e);if(t)return t instanceof Eu?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==wu,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Fu(r,e.getCompare()):Vu;var o=e.toString(),l={...this.indexSet_},h=(l[o]=e,{...this.indexes_});return h[o]=a,new qu(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=Se(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Vu){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Fu(n,r.getCompare())}return Vu}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new qu(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Vu&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new qu(e,this.indexSet_)}}let Bu;class T{static get EMPTY_NODE(){return Bu=Bu||new T(new Eu(Su),null,qu.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Nu(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Bu}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?Bu:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?Bu:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===nu(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Au(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":rc(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===zu?-1:0}withIndex(e){var t;return e===wu||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===wu||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===wu?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class ju extends T{constructor(){super(new Eu(Su),T.EMPTY_NODE,qu.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let zu=new ju,Ku=(Object.defineProperties(p,{MIN:{value:new p(Ic,T.EMPTY_NODE)},MAX:{value:new p(Tc,zu)}}),yu.__EMPTY_NODE=T.EMPTY_NODE,Pu.__childrenNodeConstructor=T,t=zu,ku=t,t=zu,xu=t,!0);function Wu(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Pu(t,Wu(e));if(s instanceof Array||!Ku){let n=T.EMPTY_NODE;return Cc(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Wu(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Wu(e))}{let n=[],i=!1;return Cc(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Wu(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Fu(n,Cu,e=>e.name,Su),i?(r=Fu(n,I.getCompare()),new T(t,Wu(e),new qu({".priority":r},{".priority":I}))):new T(t,Wu(e),qu.Default))}}Du=Wu;class Hu extends vu{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Ec(e.name,t.name):r}makePost(e,t){var r=Wu(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,zu);return new p(Tc,e)}toString(){return su(this.indexPath_,0).join("/")}}class Gu extends vu{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Ec(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Wu(e);return new p(t,r)}toString(){return".value"}}let $u=new Gu;function Qu(e){return{type:"value",snapshotNode:e}}function Yu(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Ju(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Xu(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Zu{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Ju(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Yu(t,r)):s.trackChildChange(Xu(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Ju(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Xu(e,t,r)):i.trackChildChange(Yu(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class ed{constructor(e){this.indexedFilter_=new Zu(e.getIndex()),this.index_=e.getIndex(),this.startPost_=ed.getStartPost_(e),this.endPost_=ed.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class td{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new ed(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var c=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var u=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=u?(null!=i&&i.trackChildChange(Xu(t,r,c)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Ju(t,c)),u=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Yu(e.name,e.node)),u.updateImmediateChild(e.name,e.node)):u)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Ju(l.name,l.node)),i.trackChildChange(Yu(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class rd{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Ic}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Tc}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new rd;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function nd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function id(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function sd(e,t){var r=e.copy();return r.index_=t,r}function ad(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===$u?"$value":t.index_===wu?"$key":(g(t.index_ instanceof Hu,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function od(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class ld extends Xc{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=nc("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),ld.getListenId_(e,n)),o={};this.listens_[a]=o;var r=ad(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),Se(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=ld.getListenId_(e,t);delete this.listens_[r]}get(e){var t=ad(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){yc("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&yc("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class hd{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function cd(){return{value:null,children:new Map}}function ud(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,cd()),ud(e.children.get(n),t=y(t),r))}function dd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{dd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class pd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r={...e};return this.last_&&Cc(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class fd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new pd(e);var r=1e4+2e4*Math.random();Ac(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Cc(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Ac(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function gd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function md(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function vd(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=tc=tc||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class _d{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=tc.ACK_USER_WRITE,this.source=gd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new _d(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new _d(y(this.path),this.affectedTree,this.revert))}}class yd{constructor(e,t){this.source=e,this.path=t,this.type=tc.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new yd(this.source,v()):new yd(this.source,y(this.path))}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=tc.OVERWRITE}operationForChild(e){return b(this.path)?new wd(this.source,v(),this.snap.getImmediateChild(e)):new wd(this.source,y(this.path),this.snap)}}class bd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=tc.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new wd(this.source,v(),t.value):new bd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new bd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class Id{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Td{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Ed(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Cd(r,i,"child_removed",e,n,t),Cd(r,i,"child_added",e,n,t),Cd(r,i,"child_moved",s,n,t),Cd(r,i,"child_changed",e,n,t),Cd(r,i,"value",e,n,t),i}function Cd(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw B("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Sd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Sd(new Id(t,r,n),e.serverCache)}function Ad(e,t,r,n){return Sd(e.eventCache,new Id(t,r,n))}function Nd(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Rd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Pd;class Dd{static fromObject(e){let r=new Dd(null);return Cc(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Pd=Pd||new Eu(sc)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:ou(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new Dd(null))}set(e,t){var r,n;return b(e)?new Dd(t,this.children):(n=_(e),r=(this.children.get(n)||new Dd(null)).set(y(e),t),n=this.children.insert(n,r),new Dd(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new Dd(null):new Dd(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new Dd(null):new Dd(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new Dd(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Dd(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(ou(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),ou(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),ou(t,n),r):new Dd(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(ou(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class xd{constructor(e){this.writeTree_=e}static empty(){return new xd(new Dd(null))}}function Od(t,r,n){if(b(r))return new xd(new Dd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Dd(n),s=t.writeTree_.setTree(r,s),new xd(s);{var s=i.path;let e=i.value;i=lu(s,r);return e=e.updateChild(i,n),new xd(t.writeTree_.set(s,e))}}function Md(e,r,t){let n=e;return Cc(t,(e,t)=>{n=Od(n,ou(r,e),t)}),n}function Ld(e,t){var r;return b(t)?xd.empty():(r=e.writeTree_.setTree(t,new Dd(null)),new xd(r))}function Fd(e,t){return null!=Ud(e,t)}function Ud(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(lu(r.path,t)):null}function Vd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function qd(e,t){var r;return b(t)?e:null!=(r=Ud(e,t))?new xd(new Dd(r)):new xd(e.writeTree_.subtree(t))}function Bd(e){return e.writeTree_.isEmpty()}function jd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(ou(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(ou(i,".priority"),r)}}}(v(),e.writeTree_,t)}function zd(e,t){return tp(t,e)}function Kd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return uu(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&uu(ou(e.path,r),t))return 1})(l,i.path)?s=!1:uu(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Hd(e.allWrites,Wd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ld(t.visibleWrites,i.path):Cc(i.children,e=>{t.visibleWrites=Ld(t.visibleWrites,ou(i.path,e))}),!0)}function Wd(e){return e.visible}function Hd(e,t,r){let n=xd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)uu(r,s)?(e=lu(r,s),n=Od(n,e,i.snap)):uu(s,r)&&(e=lu(s,r),n=Od(n,v(),i.snap.getChild(e)));else{if(!i.children)throw B("WriteRecord should have .snap or .children");uu(r,s)?(e=lu(r,s),n=Md(n,e,i.children)):uu(s,r)&&(b(e=lu(s,r))?n=Md(n,v(),i.children):(s=Se(i.children,_(e)))&&(i=s.getChild(y(e)),n=Od(n,v(),i)))}}}return n}function Gd(e,t,r,n,i){var s;return n||i?(s=qd(e.visibleWrites,t),!i&&Bd(s)?r:i||null!=r||Fd(s,v())?jd(Hd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(uu(e.path,t)||uu(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ud(e.visibleWrites,t))?s:Bd(s=qd(e.visibleWrites,t))?r:null!=r||Fd(s,v())?jd(s,r||T.EMPTY_NODE):null}function $d(e,t,r,n){return Gd(e.writeTree,e.treePath,t,r,n)}function Qd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ud(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=qd(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=jd(qd(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Vd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Vd(qd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function Yd(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=ou(e,t),Fd(i.visibleWrites,s)?null:Bd(s=qd(i.visibleWrites,s))?n.getChild(t):jd(s,n.getChild(t));var i,s}function Jd(e,t){return r=e.writeTree,e=ou(e.treePath,t),Ud(r.visibleWrites,e);var r}function Xd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var c=qd(o.visibleWrites,e),u=Ud(c,v());if(null!=u)t=u;else{if(null==r)return[];t=jd(c,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Zd(e,t,r){return n=e.writeTree,r=r,i=ou(e.treePath,e=t),null!=(s=Ud(n.visibleWrites,i))?s:r.isCompleteForChild(e)?jd(qd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function ep(e,t){return tp(ou(e.treePath,t),e.writeTree)}function tp(e,t){return{treePath:e,writeTree:t}}class rp{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Xu(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Ju(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Yu(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw B("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Xu(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let np=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class ip{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new Id(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Zd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Rd(this.viewCache_),n=Xd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function sp(e,t,r,n,i){var s=new rp;let a,o;if(r.type===tc.OVERWRITE){var l=r;a=l.source.fromUser?lp(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),op(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===tc.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=ou(s,e);hp(i,_(r))&&(h=lp(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=ou(s,e);hp(i,_(r))||(h=lp(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),up(e,t,l.path,l.children,n,i,o,s))}else if(r.type===tc.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Jd(s,i))return n;{var l=new ip(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?$d(s,Rd(n)):(c=n.serverCache.getNode(),g(c instanceof T,"serverChildren would be complete if leaf node"),Qd(s,c)),t=r.filter.updateFullNode(h,e,a)}else{var c=_(i);let e=Zd(s,c,n.serverCache);null==e&&n.serverCache.isCompleteForChild(c)&&(e=h.getImmediateChild(c)),(t=null!=e?r.filter.updateChild(h,c,e,y(i),l,a):n.eventCache.getNode().hasChild(c)?r.filter.updateChild(h,c,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=$d(s,Rd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Jd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Jd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return op(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new Dd(null);return h.getNode().forEachChild(wu,(e,t)=>{r=r.set(new f(e),t)}),up(e,t,i,r,s,a,l,o)}return t}{let n=new Dd(null);return r.foreach((e,t)=>{var r=ou(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),up(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==tc.LISTEN_COMPLETE)throw B("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Ad(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ap(i,l,e,r,np,n))}var h,c,s=s.getChanges(),i=t,e=a,r=s,u=e.eventCache;return u.isFullyInitialized()&&(h=u.getNode().isLeafNode()||u.getNode().isEmpty(),c=Nd(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!u.getNode().equals(c)||!u.getNode().getPriority().equals(c.getPriority()))&&r.push(Qu(Nd(e))),{viewCache:a,changes:s}}function ap(n,i,s,a,o,l){var h=i.eventCache;if(null!=Jd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(c=Qd(a,(c=Rd(i))instanceof T?c:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),c,l)):(c=$d(a,Rd(i)),n.filter.updateFullNode(i.eventCache.getNode(),c,l));else{var c=_(s);if(".priority"===c){g(1===nu(s),"Can't have a priority with additional path components");var u=h.getNode(),d=Yd(a,s,u,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(u,d):h.getNode()}else{u=y(s);let e;e=h.isCompleteForChild(c)?(r=i.serverCache.getNode(),null!=(d=Yd(a,s,h.getNode(),r))?h.getNode().getImmediateChild(c).updateChild(u,d):h.getNode().getImmediateChild(c)):Zd(a,c,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),c,e,u,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function op(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var c=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=c.updateFullNode(l.getNode(),n,null);else if(c.filtersNodes()&&!l.isFiltered()){var u=l.getNode().updateChild(r,n);h=c.updateFullNode(l.getNode(),u,null)}else{u=_(r);if(!l.isCompleteForPath(r)&&1<nu(r))return t;var d=y(r),p=l.getNode().getImmediateChild(u).updateChild(d,n);h=".priority"===u?c.updatePriority(l.getNode(),p):c.updateChild(l.getNode(),u,p,d,np,null)}u=Ad(t,h,l.isFullyInitialized()||b(r),c.filtersNodes());return ap(e,u,r,i,new ip(i,u,s),o)}function lp(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var c=new ip(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var u=_(n);if(".priority"===u)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(u);let e;e=b(p)?i:null!=(d=c.getCompleteChild(u))?".priority"===iu(p)&&d.getChild(au(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),u,e,p,c,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function hp(e,t){return e.eventCache.isCompleteForChild(t)}function cp(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function up(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,c=(r=b(e)?t:new Dd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;c.hasChild(e)&&(r=cp(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;c.hasChild(e)||r||(r=cp(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),h}class dp{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Zu(r.getIndex()),r=(e=r).loadsAllData()?new Zu(e.getIndex()):new(e.hasLimit()?td:ed)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new Id(a,i.isFullyInitialized(),n.filtersNodes()),i=new Id(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Sd(i,a),this.eventGenerator_=new Td(this.query_)}get query(){return this.query_}}function pp(e){return 0===e.eventRegistrations_.length}function fp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function gp(e,t,r,n){t.type===tc.MERGE&&null!==t.source.queryId&&(g(Rd(e.viewCache_),"We should always have a full cache before handling merges"),g(Nd(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=sp(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,mp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function mp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Ed(e.eventGenerator_,t,r,i)}let vp;class _p{constructor(){this.views=new Map}}function yp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),gp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(gp(s,r,n,i));return e}}function wp(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=$d(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Qd(n,i):T.EMPTY_NODE,!1);a=Sd(new Id(e,t,!1),new Id(i,s,!1));return new dp(r,a)}}function bp(e,t,n,i,s,r){var a=wp(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Yu(e,t))}),a.isFullyInitialized()&&r.push(Qu(a.getNode())),mp(i,r,a.getNode(),s)}}function Ip(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=kp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(fp(h,r,n)),pp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var c=e.views.get(i);c&&(a=a.concat(fp(c,r,n)),pp(c))&&(e.views.delete(i),c.query._queryParams.loadsAllData()||s.push(c.query))}return o&&!kp(e)&&s.push((g(vp,"Reference.ts has not been loaded"),new vp(t._repo,t._path))),{removed:s,events:a}}function Tp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ep(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Rd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Cp(e,t){var r;return t._queryParams.loadsAllData()?Ap(e):(r=t._queryIdentifier,e.views.get(r))}function Sp(e,t){return null!=Cp(e,t)}function kp(e){return null!=Ap(e)}function Ap(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Np;let Rp=1;class Pp{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Dd(null),this.pendingWriteTree_={visibleWrites:xd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Dp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=Od(s.visibleWrites,a,o)),s.lastWriteId=n,i?Bp(e,new wd(gd(),t,r)):[]}function xp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=Md(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Dd.fromObject(r);return Bp(e,new bd(gd(),t,o))}function Op(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(Kd(e.pendingWriteTree_,t)){let t=new Dd(null);return null!=n.snap?t=t.set(v(),!0):Cc(n.children,e=>{t=t.set(new f(e),!0)}),Bp(e,new _d(n.path,t,r))}return[]}function Mp(e,t,r){return Bp(e,new wd(md(),t,r))}function Lp(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Sp(o,t))){var h=Ip(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),c=r.syncPointTree_.findOnPath(a,(e,t)=>kp(t));if(h&&!c){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var u=a.fold((e,t,n)=>{if(t&&kp(t))return[Ap(t)];{let r=[];return t&&(r=Tp(t)),Cc(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<u.length;++e){var d=u[e],p=d.query,d=zp(r,d);r.listenProvider_.startListening(Qp(p),Kp(r,p),d.hashFn,d.onComplete)}}}!c&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Qp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(Wp(e));r.listenProvider_.stopListening(Qp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=Wp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Fp(e,t,r,n){var i,s,a=Hp(e,n);return null!=a?(i=(a=Gp(a)).path,a=a.queryId,s=lu(i,t),$p(e,i,new wd(vd(a),s,r))):[]}function Up(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=lu(e,i);s=s||Ep(t,r),a=a||kp(t)}),e.syncPointTree_.get(i));o?(a=a||kp(o),s=s||Ep(o,v())):(o=new _p,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ep(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,c=Sp(o,t),u=(c||t._queryParams.loadsAllData()||(h=Wp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),u=Rp++,e.queryToTagMap.set(h,u),e.tagToQueryMap.set(u,h)),zd(e.pendingWriteTree_,i));let d=bp(o,t,r,u,s,l);return c||a||n||(h=Cp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=Kp(t,e),s=zp(t,r),s=t.listenProvider_.startListening(Qp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!kp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&kp(t))return[Ap(t).query];{let r=[];return t&&(r=r.concat(Tp(t).map(e=>e.query))),Cc(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Qp(o),Kp(t,o))}}return s})(e,t,h))),d}function Vp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ep(t,lu(e,n));if(r)return r});return Gd(r,n,i,t,!0)}function qp(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=lu(e,n);i=i||Ep(t,r)}),e.syncPointTree_.get(n));r?i=i||Ep(r,v()):(r=new _p,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new Id(i,!0,!1):null,o=zd(e.pendingWriteTree_,t._path);return Nd(wp(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Bp(e,t){return function a(t,o,l,h){{if(b(t.path))return jp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ep(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=ep(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(yp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,zd(e.pendingWriteTree_,v()))}function jp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ep(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=ep(o,e),i=s.operationForChild(e);i&&(l=l.concat(jp(i,t,r,n)))}),l=t?l.concat(yp(t,s,o,a)):l}function zp(o,e){let l=e.query,h=Kp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Hp(t,n))?(i=(a=Gp(a)).path,a=a.queryId,s=lu(i,r),$p(t,i,new yd(vd(a),s))):[]):(n=o,r=l._path,Bp(n,new yd(md(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Lp(o,l,null,i))}}}function Kp(e,t){var r=Wp(t);return e.queryToTagMap.get(r)}function Wp(e){return e._path.toString()+"$"+e._queryIdentifier}function Hp(e,t){return e.tagToQueryMap.get(t)}function Gp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function $p(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),zd(e.pendingWriteTree_,t));return yp(n,r,i,null)}function Qp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Np,"Reference.ts has not been loaded"),new Np(e._repo,e._path)):e}class Yp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new Yp(t)}node(){return this.node_}}class Jp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=ou(this.path_,e);return new Jp(this.syncTree_,t)}node(){return Vp(this.syncTree_,this.path_)}}let Xp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Zp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?ef(e[".sv"],t,r):"object"==typeof e[".sv"]?tf(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},ef=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},tf=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},rf=function(e,t,r,n){return sf(t,new Jp(r,e),n)},nf=function(e,t,r){return sf(e,new Yp(t),r)};function sf(e,n,i){var t,r,s=e.getPriority().val(),s=Zp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Zp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Pu(t,Wu(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Pu(s))),r.forEachChild(I,(e,t)=>{var r=sf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class af{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function of(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=Se(n.node.children,i)||{children:{},childCount:0};n=new af(i,n,s),r=y(r),i=_(r)}return n}function lf(e){return e.node.value}function hf(e,t){e.node.value=t,pf(e)}function cf(e){return 0<e.node.childCount}function uf(r,n){Cc(r.node.children,(e,t)=>{n(new af(e,r,t))})}function df(e){return new f(null===e.parent?e.name:df(e.parent)+"/"+e.name)}function pf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===lf(e)&&!cf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,pf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,pf(t)))}function ff(e,t,r,n){n&&void 0===t||kf(Ue(e,"value"),t,r)}function gf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Cc(t,(e,t)=>{var r=new f(e);if(kf(n,t,ou(s,r)),".priority"===iu(r)&&!Sf(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=su(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!Tf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(hu);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&uu(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function mf(e,t,r){if(!r||void 0!==t){if(bc(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Sf(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function vf(e,t,r,n){if(!(n&&void 0===r||Tf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function _f(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),Af(e,t,r,n)}function yf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let wf=/[\[\].#$\/\u0000-\u001F\u007F]/,bf=/[\[\].#$\u0000-\u001F\u007F]/,If=10485760,Tf=function(e){return"string"==typeof e&&0!==e.length&&!wf.test(e)},Ef=function(e){return"string"==typeof e&&0!==e.length&&!bf.test(e)},Cf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Ef(e)},Sf=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!bc(e)||e&&"object"==typeof e&&Ce(e,".sv")},kf=function(a,e,t){let o=t instanceof f?new du(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+fu(o));if("function"==typeof e)throw new Error(a+"contains a function "+fu(o)+" with contents = "+e.toString());if(bc(e))throw new Error(a+"contains "+e.toString()+" "+fu(o));if("string"==typeof e&&e.length>If/3&&Be(e)>If)throw new Error(a+"contains a string greater than "+If+" utf8 bytes "+fu(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Cc(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!Tf(e)))throw new Error(a+" contains an invalid key ("+e+") "+fu(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=Be(e),pu(r),kf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=Be(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+fu(o)+" in addition to actual children.")}},Af=function(e,t,r,n){if(!(n&&void 0===r||Ef(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Nf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!Tf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Cf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Rf{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Pf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||cu(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Df(e,t,r){Pf(e,r),Of(e,e=>cu(e,t))}function xf(e,t,r){Pf(e,r),Of(e,e=>uu(e,t)||uu(t,e))}function Of(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),fc&&vc("event: "+a.toString()),Dc(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let Mf="repo_interrupt",Lf=25;class Ff{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Rf,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=cd(),this.transactionQueueTree_=new af,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Uf(a,e,t){if(a.stats_=Kc(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new ld(a.repoInfo_,(e,t,r,n)=>{Bf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>jf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new mu(a.repoInfo_,e,(e,t,r,n)=>{Bf(a,e,t,r,n)},e=>{jf(a,e)},e=>{var r;r=a,Cc(e,(e,t)=>{zf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new fd(a.stats_,a.server_),r=a.repoInfo_.toString(),zc[r]||(zc[r]=e()),zc[r]),a.infoData_=new hd,a.infoSyncTree_=new Pp({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Mp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),zf(a,"connected",!1),a.serverSyncTree_=new Pp({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);xf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Vf(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function qf(e){return Xp({timestamp:Vf(e)})}function Bf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,c,u=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=u;0<(d=i?n?(c=Ae(r,e=>Wu(e)),t=e.serverSyncTree_,s=u,a=c,(c=Hp(t,i))?(o=(c=Gp(c)).path,c=c.queryId,l=lu(o,s),h=Dd.fromObject(a),$p(t,o,new bd(vd(c),l,h))):[]):(o=Wu(r),Fp(e.serverSyncTree_,u,o,i)):n?(c=Ae(r,e=>Wu(e)),s=e.serverSyncTree_,a=u,t=c,l=Dd.fromObject(t),Bp(s,new bd(md(),a,l))):(h=Wu(r),Mp(e.serverSyncTree_,u,h))).length&&(p=eg(e,u)),xf(e.eventQueue_,p,d)}function jf(e,t){if(zf(e,"connected",t),!1===t){var a=e;Yf(a,"onDisconnectEvents");let n=qf(a),i=cd(),s=(dd(a.onDisconnect_,v(),(e,t)=>{var r=rf(e,t,a.serverSyncTree_,n);ud(i,e,r)}),[]);dd(i,v(),(e,t)=>{s=s.concat(Mp(a.serverSyncTree_,e,t));var r=ig(a,e);eg(a,r)}),a.onDisconnect_=cd(),xf(a.eventQueue_,v(),s)}}function zf(e,t,r){var n=new f("/.info/"+t),i=Wu(r),i=(e.infoData_.updateSnapshot(n,i),Mp(e.infoSyncTree_,n,i));xf(e.eventQueue_,n,i)}function Kf(e){return e.nextWriteId_++}function Wf(n,i,e,t,s){Yf(n,"set",{path:i.toString(),value:e,priority:t});var r=qf(n),a=Wu(e,t),o=Vp(n.serverSyncTree_,i),o=nf(a,o,r);let l=Kf(n);r=Dp(n.serverSyncTree_,i,o,l,!0),Pf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||yc("set at "+i+" failed: "+e),Op(n.serverSyncTree_,l,!r));xf(n.eventQueue_,i,r),Jf(0,s,e,t)}),o=ig(n,i);eg(n,o),xf(n.eventQueue_,o,[])}function Hf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{ud(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Jf(0,i,e,t)})}function Gf(r,n,e,i){let s=Wu(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&ud(r.onDisconnect_,n,s),Jf(0,i,e,t)})}function $f(e,t,r){let n;n=".info"===_(t._path)?Lp(e.infoSyncTree_,t,r):Lp(e.serverSyncTree_,t,r),Df(e.eventQueue_,t._path,n)}function Qf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Mf)}function Yf(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),vc(r,...t)}function Jf(e,n,i,s){n&&Dc(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Xf(e,t,r){return Vp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Zf(o,l=o.transactionQueueTree_){if(l||ng(o,l),lf(l)){var h=rg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var c=o;var u=df(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Xf(c,u,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,lu(u,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=u;c.server_.put(s.toString(),i,t=>{Yf(c,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(Op(c.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();ng(c,of(c.transactionQueueTree_,u)),Zf(c,c.transactionQueueTree_),xf(c.eventQueue_,u,r);for(let t=0;t<n.length;t++)Dc(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{yc("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}eg(c,u)}},n)}}else cf(l)&&uf(l,e=>{Zf(o,e)})}function eg(e,t){var r=tg(e,t),n=df(r),r=rg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],c=lu(a,h.path);let e=!1,t;if(g(null!==c,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Lf)e=!0,t="maxretry",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else{var c=Xf(i,h.path,l),u=(h.currentInputSnapshot=c,s[n].update(c.val()));if(void 0!==u){kf("transaction failed: Data returned ",u,h.path);let e=Wu(u);"object"==typeof u&&null!=u&&Ce(u,".priority")||(e=e.updatePriority(c.getPriority()));var u=h.currentWriteId,d=qf(i),c=nf(e,c,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=c,h.currentWriteId=Kf(i),l.splice(l.indexOf(u),1),r=(r=r.concat(Dp(i.serverSyncTree_,h.path,c,h.currentWriteId,h.applyLocally))).concat(Op(i.serverSyncTree_,u,!0))}else e=!0,t="nodata",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0))}xf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}ng(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Dc(o[e]);Zf(i,i.transactionQueueTree_)}return n}function tg(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===lf(n);)n=of(n,r),t=y(t),r=_(t);return n}function rg(e,t){var r=[];return function t(r,e,n){let i=lf(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);uf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function ng(t,r){var n=lf(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,hf(r,0<n.length?n:void 0)}uf(r,e=>{ng(t,e)})}function ig(t,e){var r=df(tg(t,e)),n=of(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{sg(t,e)}),sg(t,n),function t(e,r,n,i){n&&!i&&r(e),uf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{sg(t,e)}),r}function sg(i,s){var a=lf(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(Op(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?hf(s,void 0):a.length=t+1,xf(i.eventQueue_,df(s),e);for(let n=0;n<o.length;n++)Dc(o[n])}}let ag=function(e,t){var r=og(e),n=r.namespace,i=("firebase.com"===r.domain&&_c(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||_c("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||wc(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Vc(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},og=function(n){let i="",s="",a="",o="",l="",h=!0,c="https",u=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(c=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):yc(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===c||"wss"===c,u=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:u,domain:s,subdomain:a,secure:h,scheme:c,pathString:o,namespace:l}},lg="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",hg=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=lg.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=lg.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class cg{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class ug{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class dg{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class pg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Hf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){yf("OnDisconnect.remove",this._path);var e=new Z;return Gf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){yf("OnDisconnect.set",this._path),ff("OnDisconnect.set",e,this._path,!1);var t=new Z;return Gf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){yf("OnDisconnect.setWithPriority",this._path),ff("OnDisconnect.setWithPriority",e,this._path,!1),mf("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Wu(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&ud(i.onDisconnect_,s,r),Jf(0,a,e,t)})}return n.promise}update(e){yf("OnDisconnect.update",this._path),gf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),ke(r)?(vc("onDisconnect().update() called with empty data. Don't do anything."),Jf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Cc(r,(e,t)=>{var r=Wu(t);ud(n.onDisconnect_,ou(i,e),r)}),Jf(0,s,e,t)}),t.promise}}class fg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:iu(this._path)}get ref(){return new _g(this._repo,this._path)}get _queryIdentifier(){var e=od(this._queryParams),e=oc(e);return"{}"===e?"default":e}get _queryObject(){return od(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof fg&&(t=this._repo===e._repo,r=cu(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function gg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function mg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===wu){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==Ic)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Tc)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Sf(t)||null!=r&&!Sf(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Hu||e.getIndex()===$u,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function vg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class _g extends fg{constructor(e,t){super(e,t,new rd,!1)}get parent(){var e=au(this._path);return null===e?null:new _g(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class yg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=Ig(this.ref,e);return new yg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new yg(t,Ig(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function wg(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?Ig(e._root,t):e._root}function bg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ag(t,e._repo.repoInfo_.nodeAdmin),n=(Nf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||_c("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),wg(e,r.path.toString())}function Ig(e,t){return(null===_((e=w(e))._path)?_f:Af)("child","path",t,!1),new _g(e._repo,ou(e._path,t))}function Tg(e,t){e=w(e),yf("set",e._path),ff("set",t,e._path,!1);var r=new Z;return Wf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Eg(e,t){gf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));Yf(a,"update",{path:o.toString(),value:e});let r=!0,n=qf(a),s={};if(Cc(e,(e,t)=>{r=!1,s[e]=rf(ou(o,e),Wu(t),a.serverSyncTree_,n)}),r)vc("update() called with empty data. Don't do anything."),Jf(0,l,"ok",void 0);else{let i=Kf(a);var h=xp(a.serverSyncTree_,o,s,i);Pf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||yc("update at "+o+" failed: "+e),Op(a.serverSyncTree_,i,!r)),n=0<r.length?eg(a,o):o;xf(a.eventQueue_,n,r),Jf(0,l,e,t)}),Cc(e,e=>{var t=ig(a,ou(o,e));eg(a,t)}),xf(a.eventQueue_,o,[])}}return i.promise}function Cg(t){t=w(t);var i,s,a,e=new dg(()=>{}),e=new Sg(e);return i=t._repo,s=t,a=e,(null!=(e=qp(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Wu(e).withIndex(s._queryParams.getIndex());Up(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Mp(i.serverSyncTree_,s._path,r):(t=Kp(i.serverSyncTree_,s),Fp(i.serverSyncTree_,s._path,r,t)),xf(i.eventQueue_,s._path,n),Lp(i.serverSyncTree_,s,a,null,!0),r},e=>(Yf(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new yg(e,new _g(t._repo,t._path),t._queryParams.getIndex()))}class Sg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new cg("value",this,new yg(e.snapshotNode,new _g(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new ug(this,e,t):null}matches(e){return e instanceof Sg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class kg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new ug(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=Ig(new _g(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new cg(e.type,this,new yg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof kg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function Ag(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{$f(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new dg(t,s||void 0);let o="value"===e?new Sg(a):new kg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Up(r.infoSyncTree_,i,t):Up(r.serverSyncTree_,i,t),Df(r.eventQueue_,i._path,e)}return()=>$f(n._repo,n,o)}function Ng(e,t,r,n){return Ag(e,"value",t,r,n)}function Rg(e,t,r,n){Ag(e,"child_added",t,r,n)}function Pg(e,t,r,n){Ag(e,"child_changed",t,r,n)}function Dg(e,t,r,n){Ag(e,"child_moved",t,r,n)}function xg(e,t,r,n){Ag(e,"child_removed",t,r,n)}function Og(e,t,r){let n=null;var i=r?new dg(r):null;"value"===t?n=new Sg(i):t&&(n=new kg(t,i)),$f(e._repo,e,n)}class Mg{}class Lg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){ff("endAt",this._value,e._path,!0);var t=id(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){ff("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wu||r?id(e,t,r):id(e,t,Ic)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){ff("startAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Vg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){ff("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wu||r?nd(e,t,r):nd(e,t,Tc)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class qg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Bg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class jg extends Mg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){gg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Hu(t),t=sd(e._queryParams,t);return mg(t),new fg(e._repo,e._path,t,!0)}}class zg extends Mg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){gg(e,"orderByKey");var t=sd(e._queryParams,wu);return mg(t),new fg(e._repo,e._path,t,!0)}}class Kg extends Mg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){gg(e,"orderByPriority");var t=sd(e._queryParams,I);return mg(t),new fg(e._repo,e._path,t,!0)}}class Wg extends Mg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){gg(e,"orderByValue");var t=sd(e._queryParams,$u);return mg(t),new fg(e._repo,e._path,t,!0)}}class Hg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(ff("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Lg(this._value,this._key)._apply(new Ug(this._value,this._key)._apply(e))}}function Gg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=_g,g(!vp,"__referenceConstructor has already been defined"),vp=t,t=_g,g(!Np,"__referenceConstructor has already been defined"),Np=t;let $g="FIREBASE_DATABASE_EMULATOR_HOST",Qg={},Yg=!1;function Jg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||_c("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),vc("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ag(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[$g]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ag(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var c=i&&l?new Mc(Mc.OWNER):new Oc(e.name,e.options,t),c=(Nf("Invalid Firebase Database URL",a),b(a.path)||_c("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Qg[t.name];var s;return i||(i={},Qg[t.name]=i),(s=i[e.toURLString()])&&_c("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Ff(e,Yg,r,n),i[e.toURLString()]=s})(o,e,c,new xc(e,r)));return new Xg(c,e)}class Xg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Uf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new _g(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Qg[t])&&r[e.key]===e||_c(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Qf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&_c("Cannot call "+e+" on a deleted database.")}}function Zg(){Yc.IS_TRANSPORT_INITIALIZED&&yc("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function em(){Zg(),Hc.forceDisallow()}function tm(){Zg(),Qc.forceDisallow(),Hc.forceAllow()}function rm(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;_c("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&_c('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Mc(Mc.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Mc(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Vc(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function nm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Mf)}function im(e,t){mc(e,t)}let sm={".sv":"timestamp"};class am{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function om(i,e,t){if(i=w(i),yf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=t?.applyLocally??!0;let s=new Z;var n=Ng(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new yg(r,new _g(i._repo,i._path),I),s.resolve(new am(t,n)))},l=n,h=r;Yf(t,"transaction on "+a);var c,n={path:a,update:e,onComplete:o,status:null,order:dc(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Xf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(c=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{kf("transaction failed: Data returned ",c,n.path),n.status=0;var u=of(t.transactionQueueTree_,a),d=lf(u)||[];d.push(n),hf(u,d);let e;"object"==typeof c&&null!==c&&Ce(c,".priority")?(e=Se(c,".priority"),g(Sf(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(u=Vp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=u.getPriority().val());d=qf(t),u=Wu(c,e),c=nf(u,r,d),r=(n.currentOutputSnapshotRaw=u,n.currentOutputSnapshotResolved=c,n.currentWriteId=Kf(t),Dp(t.serverSyncTree_,a,c,n.currentWriteId,n.applyLocally));xf(t.eventQueue_,a,r),Zf(t,t.transactionQueueTree_)}return s.promise}mu.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},mu.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Jh(qt),Dt(new c("database",(e,{instanceIdentifier:t})=>Jg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),u($h,Qh,gD),u($h,Qh,"esm2020");function lm(e){var t="FIREBASE WARNING: "+e;hm.warn(t)}let hm=new tt("@firebase/database-compat");class cm{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class um{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class dm{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),Af("DataSnapshot.child","path",e,!1),new dm(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),Af("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new dm(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new fm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class pm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let i=pm.getCancelAndContextArgs_("Query.on",t,n);var s=(e,t)=>{r.call(i.context,new dm(this.database,e),t)},a=(s.userCallback=r,s.context=i.context,i.cancel?.bind(i.context));switch(e){case"value":return Ng(this._delegate,s,a),r;case"child_added":return Rg(this._delegate,s,a),r;case"child_removed":return xg(this._delegate,s,a),r;case"child_changed":return Pg(this._delegate,s,a),r;case"child_moved":return Dg(this._delegate,s,a),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,Og(this._delegate,e,n)):Og(this._delegate,e)}get(){return Cg(this._delegate).then(e=>new dm(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=pm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new dm(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Rg(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":xg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Dg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new qg(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Bg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return Af("orderByChild","path",e,!1),new jg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new zg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Kg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Wg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,([e=null,t]=[e,t],vf("startAt","key",t,!0),new Ug(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("startAfter","key",t,!0),new Vg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endAt","key",t,!0),new Lg(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endBefore","key",t,!0),new Fg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("equalTo","key",t,!0),new Hg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof pm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new fm(this.database,new _g(this._delegate._repo,this._delegate._path))}}class fm extends pm{constructor(e,t){super(e,new fg(t._repo,t._path,new rd,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new fm(this.database,Ig(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new fm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new fm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=Tg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}yf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Eg(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(yf("setWithPriority",e._path),ff("setWithPriority",t,e._path,!1),mf("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return Wf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,yf("remove",e._path);var e,r=Tg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=om(this._delegate,e,{applyLocally:r}).then(e=>new um(e.committed,new dm(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),yf("setPriority",r._path),mf("setPriority",e,!1),n=new Z,Wf(r._repo,ou(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),yf("push",e._path),ff("push",t,e._path,!0);var r=Vf(e._repo),r=hg(r),n=Ig(e,r);let i=Ig(e,r),s;return s=null!=t?Tg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new fm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new fm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return yf("Reference.onDisconnect",this._delegate._path),new cm(new pg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class gm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:em,forceLongPolling:tm}}useEmulator(e,t,r={}){rm(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof fm?(t=bg(this._delegate,e.toString()),new fm(this,t)):(t=wg(this._delegate,e),new fm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=bg(this._delegate,e);return new fm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Qf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),nm(this._delegate)}}gm.ServerValue={TIMESTAMP:sm,increment:e=>({".sv":{increment:e}})};cr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Jh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new c("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new c("app-check-internal",()=>i,"PRIVATE")),{instance:new gm(Jg(e,l,h,t,a),e),namespace:s}}});let mm=gm.ServerValue;(t=hr).INTERNAL.registerComponent(new c("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new gm(n,r)},"PUBLIC").setServiceProps({Reference:fm,Query:pm,Database:gm,DataSnapshot:dm,enableLogging:im,INTERNAL:cr,ServerValue:mm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.1.0-canary.a09ef786f");var vm,_m,ym,wm,bm,Im,Tm,Em,Cm,Sm,km,Am,Nm="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Rm=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=t+(s^r&(i^s))+n[0]+3614090360&4294967295;a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+(a<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function l(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.v=function(e,t){var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.C;let i=this.h,s=0;for(;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.A=function(){var t=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var r=1;r<t.length-8;++r)t[r]=0;for(var r=8*this.o,n=t.length-8;n<t.length;++n)t[n]=255&r,r/=256;for(this.v(t),t=Array(16),n=r=0;n<4;++n)for(let e=0;e<32;e+=8)t[r++]=this.g[n]>>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new l([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new l([0|e],e<0?-1:0);var t,r,n}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(h(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new l(t,0)}var c=o(0),u=o(1),d=o(16777216);function p(t){if(0==t.h){for(let e=0;e<t.g.length;e++)if(0!=t.g[e])return;return 1}}function f(e){return-1==e.h}function g(e){var t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new l(r,~e.h).add(u)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=u,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);f(a)||0<a.l(e);)a=(s=h(r-=n)).j(t);p(s)&&(s=u),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){var t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new l(r,e.h)}function b(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new l(i,e.h)}(e=l.prototype).m=function(){if(f(this))return-g(this).m();let e=0,t=1;for(let n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*t,t*=4294967296}return e},e.toString=function(t){if((t=t||10)<2||36<t)throw Error("radix out of range: "+t);if(p(this))return"0";if(f(this))return"-"+g(this).toString(t);var r=h(Math.pow(t,6)),n=this;let i="";for(;;){var s=y(n,r).g;let e=((0<(n=m(n,s.j(r))).g.length?n.g[0]:n.h)>>>0).toString(t);if(p(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){var t=Math.max(this.g.length,e.g.length),r=[];let n=0;for(let a=0;a<=t;a++){var i=n+(65535&this.i(a))+(65535&e.i(a)),s=(i>>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new l(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(p(this)||p(t))return c;if(f(this))return f(t)?g(this).j(g(t)):g(g(this).j(t));if(f(t))return g(this.j(g(t)));if(this.l(d)<0&&t.l(d)<0)return h(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let e=0;e<t.g.length;e++){var i=this.i(n)>>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,v(r,2*n+2*e),r[2*n+2*e+1]+=i*o,v(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,v(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,v(r,2*n+2*e+2)}for(t=0;t<e;t++)r[t]=r[2*t+1]<<16|r[2*t];for(t=e;t<2*e;t++)r[t]=0;return new l(r,0)},e.B=function(e){return y(this,e).h},e.and=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new l(r,this.h&e.h)},e.or=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new l(r,this.h|e.h)},e.xor=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new l(r,this.h^e.h)},r.prototype.digest=r.prototype.A,r.prototype.reset=r.prototype.u,r.prototype.update=r.prototype.v,_m=r,l.prototype.multiply=l.prototype.j,l.prototype.modulo=l.prototype.B,l.prototype.compare=l.prototype.l,l.prototype.toNumber=l.prototype.m,l.prototype.getBits=l.prototype.i,l.fromNumber=h,l.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');var n=h(Math.pow(r,8));let i=c;for(let o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),a=parseInt(t.substring(o,o+s),r);i=(s<8?(s=h(Math.pow(r,s)),i.j(s)):i=i.j(n)).add(h(a))}return i},vm=l}).apply(void 0!==Nm?Nm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,L=Object.defineProperty;var F=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Rm&&Rm];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);function U(e,t){if(t)e:{var r=F;e=e.split(".");for(var n=0;n<e.length-1;n++){var i=e[n];if(!(i in r))break e;r=r[i]}(t=t(n=r[e=e[e.length-1]]))!=n&&null!=t&&L(r,e,{configurable:!0,writable:!0,value:t})}}U("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),U("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),U("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var V=V||{},N=this||self;function d(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function q(e,t,r){return e.call.apply(e.bind,arguments)}function v(e,t,r){return(v=q).apply(null,arguments)}function B(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function t(e,s){function t(){}t.prototype=s.prototype,e.Z=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Ob=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}var j="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function z(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function K(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if("array"==(n="object"!=(n=typeof r)?n:r?Array.isArray(r)?"array":n:"null")||"object"==n&&"number"==typeof r.length){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}var W=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new H,e=>e.reset());class H{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let r,n=!1,G=new class{constructor(){this.h=this.g=null}add(e,t){var r=W.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},$=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(Q)}};function Q(){for(var e;e=(()=>{let e=G,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{N.setTimeout(()=>{throw e},0)})(e)}var t=W;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var Y=(()=>{if(!N.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};N.addEventListener("test",r,t),N.removeEventListener("test",r,t)}catch(e){}return e})();function R(e){return/^[\s\xa0]*$/.test(e)}function s(e,t){o.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}t(s,o),s.prototype.init=function(e,t){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,(this.i=e).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var l="closure_listenable_"+(1e6*Math.random()|0),J=0;function X(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++J,this.da=this.fa=!1}function Z(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function ee(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function te(e){var t,r={};for(t in e)r[t]=e[t];return r}let re="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ne(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<re.length;e++)r=re[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}function ie(e){this.src=e,this.g={},this.h=0}function se(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(Z(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ae(e,t,r,n){for(let s=0;s<e.length;++s){var i=e[s];if(!i.da&&i.listener==t&&i.capture==!!r&&i.ha==n)return s}return-1}ie.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ae(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new X(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var oe="closure_lm_"+(1e6*Math.random()|0),le={};function he(t,r,n,i,s){if(i&&i.once)return function t(r,n,i,s,a){if(Array.isArray(n)){for(let e=0;e<n.length;e++)t(r,n[e],i,s,a);return null}i=me(i);return r&&r[l]?r.K(n,i,d(s)?!!s.capture:!!s,a):ce(r,n,i,!0,s,a)}(t,r,n,i,s);if(Array.isArray(r)){for(let e=0;e<r.length;e++)he(t,r[e],n,i,s);return null}return n=me(n),t&&t[l]?t.J(r,n,d(i)?!!i.capture:!!i,s):ce(t,r,n,!1,i,s)}function ce(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=d(i)?!!i.capture:!!i;let o=fe(e);if(o||(e[oe]=o=new ie(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=pe;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=Y?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(de(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ue(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[l]?se(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(de(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=fe(t))?(se(r,e),0==r.h&&(r.src=null,t[oe]=null)):Z(e)))}function de(e){return e in le?le[e]:le[e]="on"+e}function pe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ue(e),r.call(n,t))}function fe(e){return(e=e[oe])instanceof ie?e:null}var ge="__closure_events_fn_"+(1e9*Math.random()>>>0);function me(t){return"function"==typeof t?t:(t[ge]||(t[ge]=function(e){return t.handleEvent(e)}),t[ge])}function a(){i.call(this),this.i=new ie(this),(this.M=this).G=null}function h(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,ne(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=ve(s=t.g=r[a],i,!0,t)&&n;if(n=ve(s=t.g=e,i,!0,t)&&n,n=ve(s,i,!1,t)&&n,r)for(a=0;a<r.length;a++)n=ve(s=t.g=r[a],i,!1,t)&&n}function ve(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let l=0;l<t.length;++l){var s,a,o=t[l];o&&!o.da&&o.capture==r&&(s=o.listener,a=o.ha||o.src,o.fa&&se(e.i,o),i=!1!==s.call(a,n)&&i)}return i&&!n.defaultPrevented}function _e(e){e.g=((e,t)=>{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=v(e.handleEvent,e)}return 2147483647<Number(t)?-1:N.setTimeout(e,t||0)})(()=>{e.g=null,e.i&&(e.i=!1,_e(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[l]=!0,a.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=d(i)?!!i.capture:!!i,n=me(n),t&&t[l]?(t=t.i,(a=String(r).toString())in t.g&&-1<(n=ae(r=t.g[a],n,i,s))&&(Z(r[n]),Array.prototype.splice.call(r,n,1),0==r.length)&&(delete t.g[a],t.h--)):(t=t&&fe(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ae(r,n,i,s):t)?r[t]:null)&&ue(n)}(this,e,t,r,n)},a.prototype.N=function(){if(a.Z.N.call(this),this.i){var t,r=this.i;for(t in r.g){var n=r.g[t];for(let e=0;e<n.length;e++)Z(n[e]);delete r.g[t],r.h--}}this.G=null},a.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},a.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class ye extends i{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:_e(this)}N(){super.N(),this.g&&(N.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function c(e){i.call(this),this.h=e,this.g={}}t(c,i);var we=[];function be(e){ee(e.g,function(e,t){this.g.hasOwnProperty(t)&&ue(e)},e),e.g={}}c.prototype.N=function(){c.Z.N.call(this),be(this)},c.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ie=N.JSON.stringify,Te=N.JSON.parse,Ee=class{stringify(e){return N.JSON.stringify(e,void 0)}parse(e){return N.JSON.parse(e,void 0)}};function Ce(){}function Se(){}var ke={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function Ae(){o.call(this,"d")}function Ne(){o.call(this,"c")}t(Ae,o),t(Ne,o);var u={},Re=null;function Pe(){return Re=Re||new a}function De(e){o.call(this,u.Ia,e)}function xe(){var e=Pe();h(e,new De(e))}function Oe(e,t){o.call(this,u.STAT_EVENT,e),this.stat=t}function P(e){var t=Pe();h(t,new Oe(t,e))}function Me(e,t){o.call(this,u.Ja,e),this.size=t}function _(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return N.setTimeout(function(){e()},t)}function p(){this.g=!0}function D(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(let e=1;e<i.length;e++)i[e]=""}}}return Ie(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}u.Ia="serverreachability",t(De,o),u.STAT_EVENT="statevent",t(Oe,o),u.Ja="timingevent",t(Me,o),p.prototype.ua=function(){this.g=!1},p.prototype.info=function(){};var Le={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function Ue(){}function f(e){return encodeURIComponent(String(e))}function g(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new c(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new Ve}function Ve(){this.i=null,this.g="",this.h=!1}t(Ue,Ce),Ue.prototype.g=function(){return new XMLHttpRequest};var qe=new Ue,Be={},je={};function ze(e,t,r){e.M=1,e.A=ot(y(t)),e.u=r,e.R=!0,Ke(e,null)}function Ke(e,t){e.F=Date.now(),He(e),e.B=y(e.A);var a,o,l,h,c,u,r=e.B,n=e.S,i=(Array.isArray(n)||(n=[String(n)]),wt(r.i,"t",n),e.C=0,r=e.j.L,e.h=new Ve,e.g=tr(e.j,r?t:null,!e.u),0<e.P&&(e.O=new ye(v(e.Y,e,e.g),e.P)),t=e.V,r=e.g,n=e.ba,"readystatechange");Array.isArray(i)||(i&&(we[0]=i.toString()),i=we);for(let d=0;d<i.length;d++){var s=he(r,i[d],n||t.handleEvent,!1,t.h||t);if(!s)break;t.g[s.key]=s}t=e.J?te(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),xe(),a=e.i,o=e.v,l=e.B,h=e.l,c=e.S,u=e.u,a.info(function(){if(a.g)if(u){var t="",r=u.split("&");for(let e=0;e<r.length;e++){var n,i,s=r[e].split("=");1<s.length&&(n=s[0],s=s[1],t=2<=(i=n.split("_")).length&&"type"==i[1]?t+(n+"=")+s+"&":t+(n+"=redacted&"))}}else t=null;else t=u;return"XMLHTTP REQ ("+h+") [attempt "+c+"]: "+o+"\n"+l+"\n"+t})}function We(e){return e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function He(e){e.T=Date.now()+e.H,Ge(e,e.H)}function Ge(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=_(v(e.aa,e),t)}function $e(e){e.D&&(N.clearTimeout(e.D),e.D=null)}function x(e){0==e.j.I||e.K||Jt(e.j,e)}function O(e){$e(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,be(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function Qe(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||et(r.h,e)))if(!e.L&&et(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g){if(!(r.g.F+3e3<e.F))break e;Yt(r),qt(r)}Gt(r),P(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=_(v(r.Va,r),6e3));Ze(r.h)<=1&&r.ta&&(r.ta=void 0)}else S(r,11)}else if(!e.L&&r.g!=e||Yt(r),!R(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,c,u,d,p,f,g=i[t],m=g[0];m<=r.K||(r.K=m,g=g[1],2==r.I?"c"==g[0]?(r.M=g[1],r.ba=g[2],null!=(s=g[3])&&(r.ka=s,r.j.info("VER="+r.ka)),null!=(a=g[4])&&(r.za=a,r.j.info("SVER="+r.za)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.O=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(c=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(c.j=c.l,c.g=new Set,c.h&&(tt(c,c.h),c.h=null)),n.G)&&(u=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.wa=u,b(n.J,n.G,u)),r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),d=e,(n=r).na=er(n,n.L?n.ba:null,n.W),d.L?(rt(n.h,d),p=d,(f=n.O)&&(p.H=f),p.D&&($e(p),He(p)),n.g=d):Ht(n),0<r.i.length&&jt(r)):"stop"!=g[0]&&"close"!=g[0]||S(r,7):3==r.I&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?S(r,7):Vt(r):"noop"!=g[0]&&r.l&&r.l.qa(g),r.A=0))}xe()}catch(e){}}g.prototype.ba=function(e){e=e.target;var t=this.O;t&&3==M(e)?t.j():this.Y(e)},g.prototype.Y=function(e){try{if(e==this.g)e:{var t=M(this.g),r=this.g.ya();this.g.ca();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.la()||Lt(this.g)))){this.K||4!=t||7==r||xe(),$e(this);var n,i,s=this.g.ca(),a=(this.X=s,(e=>{if(!We(e))return e.g.la();var t=Lt(e.g);if(""===t)return"";let r="",n=t.length,i=4==M(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return O(e),x(e),"";e.h.i=new N.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g})(this));if(this.o=200==s,I=this.i,T=this.v,E=this.B,C=this.l,S=this.S,k=t,A=s,I.info(function(){return"XMLHTTP RESP ("+C+") [ attempt "+S+"]: "+T+"\n"+E+"\n"+k+" "+A}),this.o){if(this.U&&!this.L){t:{if(this.g){var o,l=this.g;if((o=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!R(o)){var h=o;break t}}h=null}if(!(e=h)){this.o=!1,this.m=3,P(12),O(this),x(this);break e}D(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,Qe(this,e)}if(this.R){for(e=!0;!this.K&&this.C<a.length;){if(y=a,b=w=void 0,w=(_=this).C,(n=-1==(b=y.indexOf("\n",w))?je:(w=Number(y.substring(w,b)),isNaN(w)?Be:(b+=1)+w>y.length?je:(y=y.slice(b,b+w),_.C=b+w,y)))==je){4==t&&(this.m=4,P(14),e=!1),D(this.i,this.l,null,"[Incomplete Response]");break}if(n==Be){this.m=4,P(15),D(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}D(this.i,this.l,n,null),Qe(this,n)}We(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,P(16),e=!1),this.o=this.o&&e,e?0<a.length&&!this.W&&(this.W=!0,(i=this.j).g==this)&&i.aa&&!i.P&&(i.j.info("Great, no buffering proxy detected. Bytes received: "+a.length),$t(i),i.P=!0,P(11)):(D(this.i,this.l,a,"[Invalid Chunked Response]"),O(this),x(this))}else D(this.i,this.l,a,null),Qe(this,a);4==t&&O(this),this.o&&!this.K&&(4==t?Jt(this.j,this):(this.o=!1,He(this)))}else{{var c=this.g;var u,d,p,f={};c=(c.g&&2<=M(c)&&c.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<c.length;e++)R(c[e])||(u=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(c[e]),d=u[0],"string"==typeof(u=u[1])&&(u=u.trim(),p=f[d]||[],(f[d]=p).push(u)));var g,m=f,v=function(e){return e.join(", ")};for(g in m)v.call(void 0,m[g],g,m)}400==s&&0<a.indexOf("Unknown SID")?(this.m=3,P(12)):(this.m=0,P(13)),O(this),x(this)}}}}catch(e){}var _,y,w,b,I,T,E,C,S,k,A},g.prototype.cancel=function(){this.K=!0,O(this)},g.prototype.aa=function(){this.D=null;var e,t,r=Date.now();0<=r-this.T?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(xe(),P(17)),O(this),this.m=2,x(this)):Ge(this,this.T-r)};var Ye=class{constructor(e,t){this.g=e,this.map=t}};function Je(e){this.l=e||10,e=N.PerformanceNavigationTiming?0<(e=N.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(N.chrome&&N.chrome.loadTimes&&N.chrome.loadTimes()&&N.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Xe(e){return e.h||e.g&&e.g.size>=e.j}function Ze(e){return e.h?1:e.g?e.g.size:0}function et(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function tt(e,t){e.g?e.g.add(t):e.h=t}function rt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Je.prototype.cancel=function(){if(this.i=nt(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var it=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function m(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof m?(this.l=e.l,w(this,e.j),this.o=e.o,this.g=e.g,st(this,e.u),this.h=e.h,at(this,bt(e.i)),this.m=e.m):e&&(t=String(e).match(it))?(this.l=!1,w(this,t[1]||"",!0),this.o=lt(t[2]||""),this.g=lt(t[3]||"",!0),st(this,t[4]),this.h=lt(t[5]||"",!0),at(this,t[6]||"",!0),this.m=lt(t[7]||"")):(this.l=!1,this.i=new mt(null,this.l))}function y(e){return new m(e)}function w(e,t,r){e.j=r?lt(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function st(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof mt?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(I(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(vt(this,t),wt(this,r,e))},n)),n.j=i):(r||(t=ht(t,ft)),e.i=new mt(t,e.l))}function b(e,t,r){e.i.set(t,r)}function ot(e){return b(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function lt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function ht(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ct),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ct(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}m.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(ht(t,ut,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(ht(t,ut,!0),"@"),e.push(f(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.u))||e.push(":",String(r)),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(ht(r,"/"==r.charAt(0)?pt:dt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",ht(r,gt)),e.join("")},m.prototype.resolve=function(e){var t=y(this);let r=!!e.j;r?w(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)st(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e<i.length;){var a=i[e++];"."==a?n&&e==i.length&&s.push(""):".."==a?((1<s.length||1==s.length&&""!=s[0])&&s.pop(),n&&e==i.length&&s.push("")):(s.push(a),n=!0)}n=s.join("/")}else n=i;return r?t.h=n:r=""!==e.i.toString(),r?at(t,bt(e.i)):r=!!e.m,r&&(t.m=e.m),t};var ut=/[#\/\?@]/g,dt=/[#\?:]/g,pt=/[#\?]/g,ft=/[#\?@]/g,gt=/#/g;function mt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function I(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var n=r.i,i=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(n){n=n.split("&");for(let r=0;r<n.length;r++){var s=n[r].indexOf("=");let e,t=null;0<=s?(e=n[r].substring(0,s),t=n[r].substring(s+1)):e=n[r],i(e,t?decodeURIComponent(t.replace(/\+/g," ")):"")}}}}function vt(e,t){I(e),t=T(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function _t(e,t){return I(e),t=T(e,t),e.g.has(t)}function yt(e,t){I(e);let r=[];if("string"==typeof t)_t(e,t)&&(r=r.concat(e.g.get(T(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function wt(e,t,r){vt(e,t),0<r.length&&(e.i=null,e.g.set(T(e,t),z(r)),e.h+=r.length)}function bt(e){var t=new mt;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function T(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function E(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function It(){this.g=new Ee}function Tt(e){this.i=e.Sb||null,this.h=e.ab||!1}function Et(e,t){a.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function Ct(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function St(e){e.readyState=4,e.l=null,e.j=null,e.B=null,kt(e)}function kt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function At(e){let r="";return ee(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Nt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=At(r),"string"==typeof e?null!=r&&f(r):b(e,t,r))}function C(e){a.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(e=mt.prototype).add=function(e,t){I(this),this.i=null,e=T(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){I(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.set=function(e,t){return I(this),this.i=null,_t(this,e=T(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=yt(this,e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";var r=[],e=Array.from(this.g.keys());for(let s=0;s<e.length;s++){var n=f(i=e[s]),i=yt(this,i);for(let t=0;t<i.length;t++){let e=n;""!==i[t]&&(e+="="+f(i[t])),r.push(e)}}return this.i=r.join("&")},t(Tt,Ce),Tt.prototype.g=function(){return new Et(this.i,this.h)},t(Et,a),(e=Et.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,kt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;var t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||N).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,St(this)),this.readyState=0},e.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,kt(this)),this.g)&&(this.readyState=3,kt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==N.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;Ct(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?St:kt)(this),3==this.readyState)&&Ct(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,St(this))},e.Na=function(e){this.g&&(this.response=e,St(this))},e.ga=function(){this.g&&St(this)},e.setRequestHeader=function(e,t){this.A.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Et.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(C,a);var Rt=/^https?$/i,Pt=["POST","PUT"];function Dt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,xt(e),Mt(e)}function xt(e){e.A||(e.A=!0,h(e,"complete"),h(e,"error"))}function Ot(t){if(t.h&&void 0!==V)if(t.v&&4==M(t))setTimeout(t.Ca.bind(t),0);else if(h(t,"readystatechange"),4==M(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(it)[1]||null;!e&&N.self&&N.self.location&&(e=N.self.location.protocol.slice(0,-1)),r=!Rt.test(e?e.toLowerCase():"")}e=r}if(e)h(t,"complete"),h(t,"success");else{t.o=6;try{var s=2<M(t)?t.g.statusText:""}catch(e){s=""}t.l=s+" ["+t.ca()+"]",xt(t)}}finally{Mt(t)}}}function Mt(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);var r=e.g;e.g=null,t||h(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function M(e){return e.g?e.g.readyState:0}function Lt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Ft(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Ut(e){this.za=0,this.i=[],this.j=new p,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Ft("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Ft("baseRetryDelayMs",5e3,e),this.Za=Ft("retryDelaySeedMs",1e4,e),this.Ta=Ft("forwardChannelMaxRetries",2,e),this.va=Ft("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new Je(e&&e.concurrentRequestLimit),this.Ba=new It,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function Vt(e){if(Bt(e),3==e.I){var t=e.V++,r=y(e.J);if(b(r,"SID",e.M),b(r,"RID",t),b(r,"TYPE","terminate"),Kt(e,r),(t=new g(e,e.j,t)).M=2,t.A=ot(y(r)),r=!1,N.navigator&&N.navigator.sendBeacon)try{r=N.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&N.Image&&((new Image).src=t.A,r=!0),r||(t.g=tr(t.j,null),t.g.ea(t.A)),t.F=Date.now(),He(t)}Zt(e)}function qt(e){e.g&&($t(e),e.g.cancel(),e.g=null)}function Bt(e){qt(e),e.v&&(N.clearTimeout(e.v),e.v=null),Yt(e),e.h.cancel(),e.m&&("number"==typeof e.m&&N.clearTimeout(e.m),e.m=null)}function jt(e){var t;Xe(e.h)||e.m||(e.m=!0,t=e.Ea,r||$(),n||(r(),n=!0),G.add(t,e),e.D=0)}function zt(e,t){var r=t?t.l:e.V++,n=y(e.J);b(n,"SID",e.M),b(n,"RID",r),b(n,"AID",e.K),Kt(e,n),e.u&&e.o&&Nt(n,e.u,e.o),r=new g(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=Wt(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),tt(e.h,r),ze(r,n,t)}function Kt(e,r){e.H&&ee(e.H,function(e,t){b(r,t,e)}),e.l&&ee({},function(e,t){b(r,t,e)})}function Wt(e,t,i){i=Math.min(e.i.length,i);var s=e.l?v(e.l.Ka,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{o="req"+o+"_"||"";try{var h,c,u=l instanceof Map?l:Object.entries(l);for([h,c]of u){let e=c;d(c)&&(e=Ie(c)),a.push(o+h+"="+encodeURIComponent(e))}}catch(e){throw a.push(o+"type="+encodeURIComponent("_badmap")),e}}catch(e){s&&s(l)}}if(e){u=a.join("&");break e}}u=void 0}return e=e.i.splice(0,i),t.G=e,u}function Ht(e){var t;e.g||e.v||(e.Y=1,t=e.Da,r||$(),n||(r(),n=!0),G.add(t,e),e.A=0)}function Gt(e){return!(e.g||e.v||3<=e.A)&&(e.Y++,e.v=_(v(e.Da,e),Xt(e,e.A)),e.A++,1)}function $t(e){null!=e.B&&(N.clearTimeout(e.B),e.B=null)}function Qt(e){e.g=new g(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=y(e.na),r=(b(t,"RID","rpc"),b(t,"SID",e.M),b(t,"AID",e.K),b(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&b(t,"TO",e.ia),b(t,"TYPE","xmlhttp"),Kt(e,t),e.u&&e.o&&Nt(t,e.u,e.o),e.O&&(e.g.H=e.O),e.g);e=e.ba,r.M=1,r.A=ot(y(t)),r.u=null,r.R=!0,Ke(r,e)}function Yt(e){null!=e.C&&(N.clearTimeout(e.C),e.C=null)}function Jt(e,t){var r,n,i,s=null;if(e.g==t){Yt(e),$t(e),e.g=null;var a=2}else{if(!et(e.h,t))return;s=t.G,rt(e.h,t),a=1}if(0!=e.I)if(t.o)(1==a?(s=t.u?t.u.length:0,t=Date.now()-t.F,r=e.D,h(a=Pe(),new Me(a,s)),jt):Ht)(e);else if(3==(r=t.m)||0==r&&0<t.X||(1!=a||(i=t,Ze((n=e).h)>=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=_(v(n.Ea,n,i),Xt(n,n.D)),n.D++,0)))&&(2!=a||!Gt(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:S(e,5);break;case 4:S(e,10);break;case 3:S(e,6);break;default:S(e,2)}}function Xt(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function S(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=v(e.bb,e),n=!(i=e.Ua),i=new m(i||"//www.google.com/images/cleardot.gif"),N.location&&"http"==N.location.protocol||w(i,"https"),ot(i),(n?(t,r)=>{var n=new p;if(N.Image){let e=new Image;e.onload=B(E,n,"TestLoadImage: loaded",!0,r,e),e.onerror=B(E,n,"TestLoadImage: error",!1,r,e),e.onabort=B(E,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=B(E,n,"TestLoadImage: timeout",!1,r,e),N.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new p,n=new AbortController,i=setTimeout(()=>{n.abort(),E(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?E(r,0,!0,t):E(r,0,!1,t)}).catch(()=>{clearTimeout(i),E(r,0,!1,t)})})(i.toString(),r)):P(2),e.I=0,e.l&&e.l.pa(t),Zt(e),Bt(e)}function Zt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=nt(e.h)).length&&0==e.i.length||(K(e.ja,t),K(e.ja,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.oa())}function er(e,t,r){var n,i,s=r instanceof m?y(r):new m(r);return""!=s.g?(t&&(s.g=t+"."+s.g),st(s,s.u)):(s=(n=N.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new m(null),s&&w(i,s),t&&(i.g=t),n&&st(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&b(s,r,t),b(s,"VER",e.ka),Kt(e,s),s}function tr(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new C(new Tt({ab:r})):new C(e.ma)).Fa(e.L),t}function rr(){}function nr(){}function k(e,t){a.call(this),this.g=new Ut(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!R(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!R(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new A(this)}function ir(e){Ae.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function sr(){Ne.call(this),this.status=1}function A(e){this.g=e}(e=C.prototype).Fa=function(e){this.H=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=(this.L||qe).g(),this.g.onreadystatechange=j(v(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Dt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=N.FormData&&e instanceof N.FormData,0<=Array.prototype.indexOf.call(Pt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(e),this.v=!1}catch(e){Dt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,h(this,"complete"),h(this,"abort"),Mt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Mt(this,!0)),C.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Ot(this):this.Xa())},e.Xa=function(){Ot(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2<M(this)?this.g.status:-1}catch(e){return-1}},e.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.La=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Te(t)},e.ya=function(){return this.o},e.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Ut.prototype).ka=8,e.I=1,e.connect=function(e,t,r,n){P(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=er(this,null,this.W),jt(this)},e.Ea=function(t){if(this.m)if(this.m=null,1==this.I){if(!t){this.V=Math.floor(1e5*Math.random()),t=this.V++;var r=new g(this,this.j,t);let e=this.o;if(this.U&&(e?ne(e=te(e),this.U):e=this.U),null!==this.u||this.R||(r.J=e,e=null),this.S)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=Wt(this,r,n),b(i=y(this.J),"RID",t),b(i,"CVER",22),this.G&&b(i,"X-HTTP-Session-Id",this.G),Kt(this,i),e&&(this.R?n="headers="+f(At(e))+"&"+n:this.u&&Nt(i,this.u,e)),tt(this.h,r),this.Ra&&b(i,"TYPE","init"),this.S?(b(i,"$req",n),b(i,"SID","null"),r.U=!0,ze(r,i,null)):ze(r,i,n),this.I=2}}else 3==this.I&&(t?zt(this,t):0==this.i.length||Xe(this.h)||zt(this))},e.Da=function(){var e;this.v=null,Qt(this),this.aa&&!(this.P||null==this.g||this.T<=0)&&(e=4*this.T,this.j.info("BP detection timer enabled: "+e),this.B=_(v(this.Wa,this),e))},e.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,P(10),qt(this),Qt(this))},e.Va=function(){null!=this.C&&(this.C=null,qt(this),Gt(this),P(19))},e.bb=function(e){e?(this.j.info("Successfully pinged google.com"),P(2)):(this.j.info("Failed to ping google.com"),P(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=rr.prototype).ra=function(){},e.qa=function(){},e.pa=function(){},e.oa=function(){},e.isActive=function(){return!0},e.Ka=function(){},nr.prototype.g=function(e,t){return new k(e,t)},t(k,a),k.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},k.prototype.close=function(){Vt(this.g)},k.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=Ie(e),e=t),r.i.push(new Ye(r.Ya++,e)),3==r.I&&jt(r)},k.prototype.N=function(){this.g.l=null,delete this.j,Vt(this.g),delete this.g,k.Z.N.call(this)},t(ir,Ae),t(sr,Ne),t(A,rr),A.prototype.ra=function(){h(this.g,"a")},A.prototype.qa=function(e){h(this.g,new ir(e))},A.prototype.pa=function(e){h(this.g,new sr)},A.prototype.oa=function(){h(this.g,"b")},nr.prototype.createWebChannel=nr.prototype.g,k.prototype.send=k.prototype.o,k.prototype.open=k.prototype.m,Sm=function(){return new nr},Cm=Pe,Em=u,Tm={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},Le.NO_ERROR=0,Le.TIMEOUT=8,Le.HTTP_ERROR=6,Im=Le,Fe.COMPLETE="complete",bm=Fe,(Se.EventType=ke).OPEN="a",ke.CLOSE="b",ke.ERROR="c",ke.MESSAGE="d",a.prototype.listen=a.prototype.J,wm=Se,C.prototype.listenOnce=C.prototype.K,C.prototype.getLastError=C.prototype.Ha,C.prototype.getLastErrorCode=C.prototype.ya,C.prototype.getStatus=C.prototype.ca,C.prototype.getResponseJson=C.prototype.La,C.prototype.getResponseText=C.prototype.la,C.prototype.send=C.prototype.ea,C.prototype.setWithCredentials=C.prototype.Fa,ym=C}).apply(void 0!==Rm?Rm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Pm="@firebase/firestore",Dm="4.9.2-canary.a09ef786f";class xm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}xm.UNAUTHENTICATED=new xm(null),xm.GOOGLE_CREDENTIALS=new xm("google-credentials-uid"),xm.FIRST_PARTY=new xm("first-party-uid"),xm.MOCK_USER=new xm("mock-user");let Om="12.6.0-canary.a09ef786f",Mm=new tt("@firebase/firestore");function Lm(){return Mm.logLevel}function E(e,...t){var r;Mm.logLevel<=d.DEBUG&&(r=t.map(Vm),Mm.debug(`Firestore (${Om}): `+e,...r))}function Fm(e,...t){var r;Mm.logLevel<=d.ERROR&&(r=t.map(Vm),Mm.error(`Firestore (${Om}): `+e,...r))}function Um(e,...t){var r;Mm.logLevel<=d.WARN&&(r=t.map(Vm),Mm.warn(`Firestore (${Om}): `+e,...r))}function Vm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function C(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,qm(e,n,r)}function qm(e,t,r){let n=`FIRESTORE (${Om}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Fm(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||qm(t,i,n)}let k={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class A extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Bm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class jm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class zm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(xm.UNAUTHENTICATED))}shutdown(){}}class Km{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class Wm{constructor(e){this.t=e,this.currentUser=xm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Bm,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Bm,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{E("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(E("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Bm))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(E("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new jm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new xm(e)}}class Hm{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=xm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Gm{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Hm(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(xm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class $m{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Qm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&E("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,E("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{E("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):E("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new $m(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new $m(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class Ym{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function N(e,t){return e<t?-1:t<e?1:0}function Jm(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return ev(e)===ev(t)?N(e,t):ev(e)?1:-1}return N(r.length,n.length)}let Xm=55296,Zm=57343;function ev(e){var t=e.charCodeAt(0);return t>=Xm&&t<=Zm}function tv(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function rv(e){return e+"\0"}let nv="__name__";class iv{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&C(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===iv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof iv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=iv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return N(t.length,r.length)}static compareSegments(e,t){var r=iv.isNumericId(e),n=iv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?iv.extractNumericId(e).compare(iv.extractNumericId(t)):Jm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return vm.fromString(e.substring(4,e.length-2))}}class R extends iv{construct(e,t,r){return new R(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new A(k.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new R(r)}static emptyPath(){return new R([])}}let sv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class av extends iv{construct(e,t,r){return new av(e,t,r)}static isValidIdentifier(e){return sv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=av.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===nv}static keyField(){return new av([nv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new A(k.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new A(k.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new A(k.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new A(k.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new av(e)}static emptyPath(){return new av([])}}class P{constructor(e){this.path=e}static fromPath(e){return new P(R.fromString(e))}static fromName(e){return new P(R.fromString(e).popFirst(5))}static empty(){return new P(R.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===R.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return R.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new P(new R(e.slice()))}}function ov(e,t,r){if(!r)throw new A(k.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function lv(e,t,r,n){if(!0===t&&!0===n)throw new A(k.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function hv(e){if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function cv(e){if(P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function uv(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function dv(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":C(12329,{type:typeof e})}function D(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new A(k.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=dv(e);throw new A(k.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function pv(e,t){if(t<=0)throw new A(k.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function fv(e,t){var r={typeString:e};return t&&(r.value=t),r}function gv(e,t){if(!uv(e))throw new A(k.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new A(k.INVALID_ARGUMENT,r);return 1}let mv=-62135596800;class x{static now(){return x.fromMillis(Date.now())}static fromDate(e){return x.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new x(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<mv)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?N(this.nanoseconds,e.nanoseconds):N(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:x._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(gv(e,x._jsonSchema))return new x(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-mv;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}x._jsonSchemaVersion="firestore/timestamp/1.0",x._jsonSchema={type:fv("string",x._jsonSchemaVersion),seconds:fv("number"),nanoseconds:fv("number")};class O{static fromTimestamp(e){return new O(e)}static min(){return new O(new x(0,0))}static max(){return new O(new x(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let vv=-1;class _v{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function yv(e){return e.fields.find(e=>2===e.kind)}function wv(e){return e.fields.filter(e=>2!==e.kind)}_v.UNKNOWN_ID=-1;class bv{constructor(e,t){this.fieldPath=e,this.kind=t}}class Iv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Iv(0,Cv.min())}}function Tv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=O.fromTimestamp(1e9===n?new x(r+1,0):new x(r,n));return new Cv(r,P.empty(),t)}function Ev(e){return new Cv(e.readTime,e.key,vv)}class Cv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Cv(O.min(),P.empty(),vv)}static max(){return new Cv(O.max(),P.empty(),vv)}}function Sv(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=P.comparator(e.documentKey,t.documentKey))?r:N(e.largestBatchId,t.largestBatchId)}let kv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Av{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Nv(e){if(e.code!==k.FAILED_PRECONDITION||e.message!==kv)throw e;E("LocalStore","Unexpectedly lost primary lease")}class M{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&C(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new M((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof M?t:M.resolve(t)}catch(e){return M.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):M.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):M.reject(t)}static resolve(r){return new M((e,t)=>{e(r)})}static reject(r){return new M((e,t)=>{t(r)})}static waitFor(e){return new M((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=M.resolve(!1);for(let r of e)t=t.next(e=>e?M.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new M((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new M((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let Rv="SimpleDb";class Pv{static open(e,t,r,n){try{return new Pv(t,e.transaction(n,r))}catch(e){throw new Mv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Bm,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new Mv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=qv(e.target.error);this.S.reject(new Mv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(E(Rv,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Fv(t)}}class Dv{static delete(e){return E(Rv,"Removing database:",e),Uv(H().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!me()||!Dv.F()&&(e=ae(),t=0<(t=Dv.M(e))&&t<10,r=0<(r=xv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===Dv.M(ae())&&Fm("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(E(Rv,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new Mv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new A(k.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new A(k.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new Mv(s,t))},i.onupgradeneeded=e=>{E(Rv,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{E(Rv,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}$(t){this.q=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=Pv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),M.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(E(Rv,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function xv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Ov{constructor(e){this.U=e,this.K=!1,this.W=null}get isDone(){return this.K}get G(){return this.W}set cursor(e){this.U=e}done(){this.K=!0}j(e){this.W=e}delete(){return Uv(this.U.delete())}}class Mv extends A{constructor(e,t){super(k.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Lv(e){return"IndexedDbTransactionError"===e.name}class Fv{constructor(e){this.store=e}put(e,t){let r;return Uv(r=void 0!==t?(E(Rv,"PUT",this.store.name,e,t),this.store.put(t,e)):(E(Rv,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return E(Rv,"ADD",this.store.name,e,e),Uv(this.store.add(e))}get(t){return Uv(this.store.get(t)).next(e=>(void 0===e&&(e=null),E(Rv,"GET",this.store.name,t,e),e))}delete(e){return E(Rv,"DELETE",this.store.name,e),Uv(this.store.delete(e))}count(){return E(Rv,"COUNT",this.store.name),Uv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new M((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.H(e,(e,t)=>{r.push(t)}).next(()=>r)}}Y(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new M((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Z(e,t){E(Rv,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.X=!1,this.cursor(r));return this.H(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.H(n,t)}te(i){let e=this.cursor({});return new M((r,n)=>{e.onerror=e=>{var t=qv(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}H(e,s){let a=[];return new M((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Ov(n),r=s(n.primaryKey,n.value,t);if(r instanceof M){let e=r.catch(e=>(t.done(),M.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>M.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.X?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Uv(e){return new M((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=qv(e.target.error);n(t)}})}let Vv=!1;function qv(e){let t=Dv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new A("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Vv||(Vv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Bv="IndexBackfiller";class jv{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){E(Bv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();E(Bv,"Documents written: "+e)}catch(e){Lv(e)?E(Bv,"Ignoring IndexedDB error during index backfill: ",e):await Nv(e)}await this.re(6e4)})}}class zv{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return M.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return E(Bv,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(E(Bv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Ev(t);0<Sv(r,n)&&(n=r)}),new Cv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class Kv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let Wv=Kv.ce=-1;function Hv(e){return null==e}function Gv(e){return 0===e&&1/e==-1/0}function $v(e){return"number"==typeof e&&Number.isInteger(e)&&!Gv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Qv="";function Yv(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Jv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Qv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Jv(t)}function Jv(e){return e+Qv+""}function Xv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Qv&&""===r.charAt(1),56145,{path:r}),R.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Qv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&C(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:C(61167,{path:r})}a=t+2}return new R(n)}let Zv="remoteDocuments",e_="owner",t_="owner",r_="mutationQueues",n_="mutations",i_="batchId",s_="userMutationsIndex",a_=["userId","batchId"];function o_(e,t){return[e,Yv(t)]}function l_(e,t,r){return[e,Yv(t),r]}let h_={},c_="documentMutations",u_="remoteDocumentsV14",d_=["prefixPath","collectionGroup","readTime","documentId"],p_="documentKeyIndex",f_=["prefixPath","collectionGroup","documentId"],g_="collectionGroupIndex",m_=["collectionGroup","readTime","prefixPath","documentId"],v_="remoteDocumentGlobal",__="remoteDocumentGlobalKey",y_="targets",w_="queryTargetsIndex",b_=["canonicalId","targetId"],I_="targetDocuments",T_=["targetId","path"],E_="documentTargetsIndex",C_=["path","targetId"],S_="targetGlobalKey",k_="targetGlobal",A_="collectionParents",N_=["collectionId","parent"],R_="clientMetadata",P_="bundles",D_="namedQueries",x_="indexConfiguration",O_="collectionGroupIndex",M_="indexState",L_=["indexId","uid"],F_="sequenceNumberIndex",U_=["uid","sequenceNumber"],V_="indexEntries",q_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],B_="documentKeyIndex",j_=["indexId","uid","orderedDocumentKey"],z_="documentOverlays",K_=["userId","collectionPath","documentId"],W_="collectionPathOverlayIndex",H_=["userId","collectionPath","largestBatchId"],G_="collectionGroupOverlayIndex",$_=["userId","collectionGroup","largestBatchId"],Q_="globals",Y_=[r_,n_,c_,Zv,y_,e_,k_,I_,R_,v_,A_,P_,D_],J_=[...Y_,z_],X_=[r_,n_,c_,u_,y_,e_,k_,I_,R_,v_,A_,P_,D_,z_],Z_=X_,ey=[...Z_,x_,M_,V_],ty=ey,ry=[...ey,Q_],ny=ry;class iy extends Av{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function sy(e,t){var r=e;return Dv.O(r.le,t)}function ay(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function oy(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function ly(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class hy{constructor(e,t){this.comparator=e,this.root=t||uy.EMPTY}insert(e,t){return new hy(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,uy.BLACK,null,null))}remove(e){return new hy(this.comparator,this.root.remove(e,this.comparator).copy(null,null,uy.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new cy(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new cy(this.root,e,this.comparator,!1)}getReverseIterator(){return new cy(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new cy(this.root,e,this.comparator,!0)}}class cy{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class uy{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:uy.RED,this.left=null!=n?n:uy.EMPTY,this.right=null!=i?i:uy.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new uy(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return uy.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return uy.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,uy.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,uy.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw C(43730,{key:this.key,value:this.value});if(this.right.isRed())throw C(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw C(27949);return e+(this.isRed()?0:1)}}uy.EMPTY=null,uy.RED=!0,uy.BLACK=!1,uy.EMPTY=new class{constructor(){this.size=0}get key(){throw C(57766)}get value(){throw C(16141)}get color(){throw C(16727)}get left(){throw C(29726)}get right(){throw C(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new uy(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new hy(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new dy(this.data.getIterator())}getIteratorFrom(e){return new dy(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class dy{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function py(e){return e.hasNext()?e.getNext():void 0}class fy{constructor(e){(this.fields=e).sort(av.comparator)}static empty(){return new fy([])}unionWith(e){let t=new L(av.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new fy(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return tv(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class gy extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class my{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new gy("Invalid base64 string: "+e):e}})(e);return new my(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new my(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return N(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}my.EMPTY_BYTE_STRING=new my("");let vy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function _y(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:yy(t.seconds),nanos:yy(t.nanos)};{let e=0;var r=vy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function yy(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function wy(e){return"string"==typeof e?my.fromBase64String(e):my.fromUint8Array(e)}let by="server_timestamp",Iy="__type__",Ty="__previous_value__",Ey="__local_write_time__";function Cy(e){return(e?.mapValue?.fields||{})[Iy]?.stringValue===by}function Sy(e){var t=e.mapValue.fields[Ty];return Cy(t)?Sy(t):t}function ky(e){var t=_y(e.mapValue.fields[Ey].timestampValue);return new x(t.seconds,t.nanos)}class Ay{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let Ny="(default)";class Ry{constructor(e,t){this.projectId=e,this.database=t||Ny}static empty(){return new Ry("","")}get isDefaultDatabase(){return this.database===Ny}isEqual(e){return e instanceof Ry&&e.projectId===this.projectId&&e.database===this.database}}let Py="__type__",Dy="__max__",xy={mapValue:{fields:{__type__:{stringValue:Dy}}}},Oy="__vector__",My="value",Ly={nullValue:"NULL_VALUE"};function Fy(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Cy(e)?4:Xy(e)?9007199254740991:Yy(e)?10:11:C(28295,{value:e})}function Uy(t,r){if(t===r)return!0;var n,i,s,a,o,e=Fy(t);if(e!==Fy(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return ky(t).isEqual(ky(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=_y(i.timestampValue),o=_y(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,wy(t.bytesValue).isEqual(wy(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,yy((n=t).geoPointValue.latitude)===yy(s.geoPointValue.latitude)&&yy(n.geoPointValue.longitude)===yy(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?yy(h.integerValue)===yy(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=yy(h.doubleValue))===(o=yy(n.doubleValue))?Gv(a)===Gv(o):isNaN(a)&&isNaN(o));case 9:return tv(t.arrayValue.values||[],r.arrayValue.values||[],Uy);case 10:case 11:var l=t,h=r,c=l.mapValue.fields||{},u=h.mapValue.fields||{};if(ay(c)!==ay(u))return!1;for(let e in c)if(c.hasOwnProperty(e)&&(void 0===u[e]||!Uy(c[e],u[e])))return!1;return!0;default:return C(52216,{left:t})}}function Vy(e,t){return void 0!==(e.values||[]).find(e=>Uy(e,t))}function qy(e,n){if(e===n)return 0;var i,s,a,o,l,h,c,u,d=Fy(e),t=Fy(n);if(d!==t)return N(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return N(e.booleanValue,n.booleanValue);case 2:return h=n,c=yy((l=e).integerValue||l.doubleValue),u=yy(h.integerValue||h.doubleValue),c<u?-1:u<c?1:c===u?0:isNaN(c)?isNaN(u)?0:-1:1;case 3:return By(e.timestampValue,n.timestampValue);case 4:return By(ky(e),ky(n));case 5:return Jm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,c=wy(l),u=wy(h),c.compareTo(u);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=N(g[t],m[t]);if(0!==e)return e}return N(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=N(yy(p.latitude),yy(f.latitude)))?o:N(yy(p.longitude),yy(f.longitude));case 9:return jy(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=o[My]?.arrayValue,s=s[My]?.arrayValue,0!==(a=N(o?.values?.length||0,s?.values?.length||0))?a:jy(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===xy.mapValue&&_===xy.mapValue)return 0;if(v===xy.mapValue)return 1;if(_===xy.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Jm(w[r],I[r]);if(0!==e)return e;var T=qy(y[w[r]],b[I[r]]);if(0!==T)return T}return N(w.length,I.length);default:throw C(23264,{he:d})}}function By(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?N(e,t):(r=_y(e),n=_y(t),0!==(i=N(r.seconds,n.seconds))?i:N(r.nanos,n.nanos))}function jy(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=qy(r[i],n[i]);if(e)return e}return N(r.length,n.length)}function zy(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=_y(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>wy(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>P.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):C(61005,{value:e})}(e)}function Ky(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function Wy(e){return!!e&&"integerValue"in e}function Hy(e){return!!e&&"arrayValue"in e}function Gy(e){return e&&"nullValue"in e}function $y(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Qy(e){return e&&"mapValue"in e}function Yy(e){return(e?.mapValue?.fields||{})[Py]?.stringValue===Oy}function Jy(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return oy(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Jy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Jy(t.arrayValue.values[e]);return r}return{...t}}function Xy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Dy}let Zy={mapValue:{fields:{[Py]:{stringValue:Oy},[My]:{arrayValue:{}}}}};function ew(e,t){var r=qy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function tw(e,t){var r=qy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class rw{constructor(e){this.value=e}static empty(){return new rw({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Qy(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Jy(t)}setAll(e){let r=av.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Jy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Qy(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Uy(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Qy(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){oy(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new rw(Jy(this.value))}}class nw{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new nw(e,0,O.min(),O.min(),O.min(),rw.empty(),0)}static newFoundDocument(e,t,r,n){return new nw(e,1,t,O.min(),r,n,0)}static newNoDocument(e,t){return new nw(e,2,t,O.min(),O.min(),rw.empty(),0)}static newUnknownDocument(e,t){return new nw(e,3,t,O.min(),O.min(),rw.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(O.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=rw.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=rw.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=O.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof nw&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new nw(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class iw{constructor(e,t){this.position=e,this.inclusive=t}}function sw(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?P.comparator(P.fromName(s.referenceValue),r.key):qy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function aw(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Uy(e.position[r],t.position[r]))return!1;return!0}class ow{constructor(e,t="asc"){this.field=e,this.dir=t}}class lw{}class F extends lw{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new gw(e,t,r):"array-contains"===t?new yw(e,r):"in"===t?new ww(e,r):"not-in"===t?new bw(e,r):"array-contains-any"===t?new Iw(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?mw:vw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(qy(t,this.value)):null!==t&&Fy(this.value)===Fy(t)&&this.matchesComparison(qy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return C(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends lw{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new U(e,t)}matches(t){return hw(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function hw(e){return"and"===e.op}function cw(e){return"or"===e.op}function uw(e){return dw(e)&&hw(e)}function dw(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function pw(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function fw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+zy(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(fw).join(" ,")+"}":"Filter";var t}class gw extends F{constructor(e,t,r){super(e,t,r),this.key=P.fromName(r.referenceValue)}matches(e){var t=P.comparator(e.key,this.key);return this.matchesComparison(t)}}class mw extends F{constructor(e,t){super(e,"in",t),this.keys=_w(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class vw extends F{constructor(e,t){super(e,"not-in",t),this.keys=_w(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function _w(e,t){return(t.arrayValue?.values||[]).map(e=>P.fromName(e.referenceValue))}class yw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Hy(t)&&Vy(t.arrayValue,this.value)}}class ww extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Vy(this.value.arrayValue,t)}}class bw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Vy(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Vy(this.value.arrayValue,t)}}class Iw extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Hy(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Vy(this.value.arrayValue,e))}}class Tw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function Ew(e,t=null,r=[],n=[],i=null,s=null,a=null){return new Tw(e,t,r,n,i,s,a)}function Cw(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+zy(e.value):uw(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Hv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>zy(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>zy(e)).join(",")),t.Te=e}return t.Te}function Sw(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Uy(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void C(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!aw(e.startAt,t.startAt)&&aw(e.endAt,t.endAt)}function kw(e){return P.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Aw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function Nw(e,r,n){let i=Ly,s=!0;for(let n of Aw(e,r)){let e=Ly,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Ly:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Ky(Ry.empty(),P.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Yy(a)?Zy:{mapValue:{}}:C(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Ly}ew({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];ew({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Rw(e,r,n){let i=xy,s=!0;for(let n of Aw(e,r)){let e=xy,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Ky(Ry.empty(),P.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Zy:"mapValue"in a?Yy(a)?{mapValue:{}}:xy:C(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=xy}0<tw({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<tw({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Pw{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.de=null,this.startAt,this.endAt}}function Dw(e,t,r,n,i,s,a,o){return new Pw(e,t,r,n,i,s,a,o)}function xw(e){return new Pw(e)}function Ow(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function Mw(e){return null!==e.collectionGroup}function Lw(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(av.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new ow(e,r))}),t.has(av.keyField().canonicalString())||n.Ie.push(new ow(av.keyField(),r))}return n.Ie}function Fw(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return Ew(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new ow(e.field,t)});var r=e.endAt?new iw(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new iw(e.startAt.position,e.startAt.inclusive):null;return Ew(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Lw(e))),t.Ee}function Uw(e,t){var r=e.filters.concat([t]);return new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Vw(e,t,r){return new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function qw(e,t){return Sw(Fw(e),Fw(t))&&e.limitType===t.limitType}function Bw(e){return Cw(Fw(e))+"|lt:"+e.limitType}function jw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>fw(e)).join(", ")}]`),Hv(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>zy(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>zy(e)).join(","):t})`})(Fw(e))}; limitType=${e.limitType})`}function zw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):P.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Lw(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Lw(s),i=sw(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Lw(s),i=sw(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Kw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Ww(e){return(t,r)=>{let n=!1;for(var i of Lw(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?P.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?qy(n,i):C(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return C(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Hw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){oy(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return ly(this.inner)}size(){return this.innerSize}}let Gw=new hy(P.comparator);let $w=new hy(P.comparator);function Qw(...e){let t=$w;for(var r of e)t=t.insert(r.key,r);return t}function Yw(e){let r=$w;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Jw(){return new Hw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Xw=new hy(P.comparator),Zw=new L(P.comparator);function V(...e){let t=Zw;for(var r of e)t=t.add(r);return t}let eb=new L(N);function tb(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Gv(t)?"-0":t}}function rb(e){return{integerValue:""+e}}function nb(e,t){return $v(t)?rb(t):tb(e,t)}class ib{constructor(){this._=void 0}}function sb(e,t){return e instanceof ub?Wy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class ab extends ib{}class ob extends ib{constructor(e){super(),this.elements=e}}function lb(e,t){var r=pb(t);for(let t of e.elements)r.some(e=>Uy(e,t))||r.push(t);return{arrayValue:{values:r}}}class hb extends ib{constructor(e){super(),this.elements=e}}function cb(e,t){let r=pb(t);for(let t of e.elements)r=r.filter(e=>!Uy(e,t));return{arrayValue:{values:r}}}class ub extends ib{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function db(e){return yy(e.integerValue||e.doubleValue)}function pb(e){return Hy(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class fb{constructor(e,t){this.field=e,this.transform=t}}class gb{constructor(e,t){this.version=e,this.transformResults=t}}class mb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new mb}static exists(e){return new mb(void 0,e)}static updateTime(e){return new mb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function vb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class _b{}function yb(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new kb(e.key,mb.none()):new Ib(e.key,e.data,mb.none());{var n,i=e.data,s=rw.empty();let t=new L(av.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new Tb(e.key,s,new fy(t.toArray()),mb.none())}}function wb(e,t,r,n){return e instanceof Ib?(s=t,a=r,o=n,vb((i=e).precondition,s)?(l=i.value.clone(),h=Sb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof Tb?(i=t,o=r,s=n,vb((a=e).precondition,i)?(h=Sb(a.fieldTransforms,s,i),(l=i.data).setAll(Eb(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,vb(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function bb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&tv(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof ob&&t instanceof ob||e instanceof hb&&t instanceof hb?tv(e.elements,t.elements,Uy):e instanceof ub&&t instanceof ub?Uy(e.Ae,t.Ae):e instanceof ab&&t instanceof ab)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class Ib extends _b{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class Tb extends _b{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Eb(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function Cb(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Re:r.length,Ve:e.length});for(let c=0;c<r.length;c++){var o=e[c],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[c],n instanceof ob?lb(n,i):n instanceof hb?cb(n,i):s))}return a}function Sb(e,r,n){var i,s,a,o,l,h,c,u=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);u.set(i.field,(s=e,a=t,o=r,c=h=l=void 0,s instanceof ab?(o=o,h=a,c={fields:{[Iy]:{stringValue:by},[Ey]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&Cy(h)?Sy(h):h)&&(c.fields[Ty]=h),{mapValue:c}):s instanceof ob?lb(s,a):s instanceof hb?cb(s,a):(c=sb(o=s,a),l=db(c)+db(o.Ae),Wy(c)&&Wy(o.Ae)?rb(l):tb(o.serializer,l))))}return u}class kb extends _b{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Ab extends _b{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class Nb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let u=0;u<this.mutations.length;u++){var c=this.mutations[u];c.key.isEqual(e.key)&&(r=c,n=e,i=h[u],l=c=o=a=s=void 0,r instanceof Ib?(a=n,o=i,c=(s=r).value.clone(),l=Cb(s.fieldTransforms,a,o.transformResults),c.setAll(l),a.convertToFoundDocument(o.version,c).setHasCommittedMutations()):r instanceof Tb?(s=n,a=i,vb((o=r).precondition,s)?(l=Cb(o.fieldTransforms,s,a.transformResults),(c=s.data).setAll(Eb(o)),c.setAll(l),s.convertToFoundDocument(a.version,c).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=wb(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=wb(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Jw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=yb(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(O.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&tv(this.mutations,e.mutations,(e,t)=>bb(e,t))&&tv(this.baseMutations,e.baseMutations,(e,t)=>bb(e,t))}}class Rb{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Xw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Rb(e,t,r,n)}}class Pb{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
23
|
+
`)}let vi={error:"UNKNOWN_ERROR"};async function _i(e,t=!1,r=!1){var n,i=e.app;Jn(i);let s=Kn(i),a=s.token,o=void 0;if(a&&!Ti(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ti(n)?a=n:await pi(i,void 0)),!t&&a&&Ti(a))return{token:a.token};let l=!1;if(gi())try{var h=await mi(),c=(s.exchangeTokenPromise||(s.exchangeTokenPromise=ei(ti(i,h),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),await s.exchangeTokenPromise);return await pi(i,c),{token:(s.token=c).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),Ei(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await Kn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?ui.warn(e.message):r&&ui.error(e),o=e}let u;return a?o?u=Ti(a)?{token:a.token,internalError:o}:Ei(o):(u={token:a.token},await pi(i,s.token=a)):u=Ei(o),l&&Ii(i,u),u}function yi(t,e,r,n){var i=t.app,i=Kn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ti(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),bi(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>bi(t))}function wi(e,t){var r=Kn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function bi(e){var t=e.app,t=Kn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new $n(async()=>{var e=Kn(n);let t;if((t=e.token?await _i(r,!0):await _i(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=Kn(n);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},Gn.RETRIAL_MIN_WAIT,Gn.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function Ii(e,t){var r;for(r of Kn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ti(e){return 0<e.expireTimeMillis-Date.now()}function Ei(e){return{token:(t=vi,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Ci{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=Kn(this.app).tokenObservers;for(e of t)wi(this.app,e.next);return Promise.resolve()}}function Si(t){return{getToken:e=>_i(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Jn(t),Kn(t)).provider;return gi()?{token:t=(await ei(ti(t,await mi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>yi(t,"INTERNAL",e),removeTokenListener:e=>wi(t.app,e)}}let ki="https://www.google.com/recaptcha/api.js",Ai="https://www.google.com/recaptcha/enterprise.js";function Ni(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Di(t);var e,s=Yn(!1);return s?Pi(t,r,s,i,n):(e=()=>{var e=Yn(!1);if(!e)throw new Error("no recaptcha");Pi(t,r,e,i,n)},(s=document.createElement("script")).src=ki,s.onload=e,document.head.appendChild(s)),n.promise}function Ri(t,r){let n=new Z;Kn(t).reCAPTCHAState={initialized:n};let i=Di(t);var e,s=Yn(!0);return s?Pi(t,r,s,i,n):(e=()=>{var e=Yn(!0);if(!e)throw new Error("no recaptcha");Pi(t,r,e,i,n)},(s=document.createElement("script")).src=Ai,s.onload=e,document.head.appendChild(s)),n.promise}function Pi(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{Kn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{Kn(e).reCAPTCHAState.succeeded=!1}}),(r=Kn(e)).reCAPTCHAState={...r.reCAPTCHAState,widgetId:t},o.resolve(s)})}function Di(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function xi(n){Jn(n);let i=await Kn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=Kn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Oi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Ui(this._throttleData);var e=await xi(this._app).catch(e=>{throw Qn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Qn.create("recaptcha-error");let t;try{t=await ei(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Wn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Fi(Number(e.customData?.httpStatus),this._throttleData),Qn.create("initial-throttle",{time:Xn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ni(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Oi&&this._siteKey===e._siteKey}}class Mi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Ui(this._throttleData);var e=await xi(this._app).catch(e=>{throw Qn.create("recaptcha-error")});if(!Kn(this._app).reCAPTCHAState?.succeeded)throw Qn.create("recaptcha-error");let t;try{t=await ei(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Wn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Fi(Number(e.customData?.httpStatus),this._throttleData),Qn.create("initial-throttle",{time:Xn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ri(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Mi&&this._siteKey===e._siteKey}}class Li{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return{...t,issuedAtTimeMillis:r}}initialize(e){this._app=e}isEqual(e){return e instanceof Li&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Fi(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Ui(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw Qn.create("throttled",{time:Xn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function Vi(e=jt(),r){var t=xt(e=w(e),"app-check");if(zn.initialized||(i=H(),(n=zn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(fi())),gi()&&mi().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw Qn.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(Bn.set(e,t),Bn.get(e)))(a,{...jn});t.activated=!0,t.provider=r,t.cachedTokenPromise=di(a).then(e=>(e&&Ti(e)&&(t.token=e,Ii(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&ui.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return Kn(e).isTokenAutoRefreshEnabled&&yi(s,"INTERNAL",()=>{}),s}let qi="app-check-internal";Dt(new c("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Ci(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(qi).initialize()})),Dt(new c(qi,e=>Si(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),u("@firebase/app-check","0.11.0-canary.bc2b2cdea");let Bi=new we("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class ji{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Oi(e):e instanceof Mi||e instanceof Oi||e instanceof Li?e:new Li({getToken:e.getToken}),this._delegate=Vi(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw Bi.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=Kn(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await _i(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw Bi.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),yi(i,"EXTERNAL",e,t),()=>wi(i.app,e)}throw Bi.create("use-before-activation",{appName:this.app.name})}}let zi=e=>{var t=e.getProvider("app-compat").getImmediate();return new ji(t)};hr.INTERNAL.registerComponent(new c("appCheck-compat",zi,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Mi,ReCaptchaV3Provider:Oi,CustomProvider:Li})),hr.registerVersion("@firebase/app-check-compat","0.4.0-canary.bc2b2cdea");let Ki={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Wi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Hi(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}function Gi(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let $i=Hi,Qi=new we("auth","Firebase",Hi()),Yi=new tt("@firebase/auth");function Ji(e,...t){Yi.logLevel<=d.ERROR&&Yi.error(`Auth (${qt}): `+e,...t)}function Xi(e,...t){throw ns(e,...t)}function Zi(e,...t){return ns(e,...t)}function es(e,t,r){var n={...$i(),[t]:r};return new we("auth","Firebase",n).create(t,{appName:e.name})}function ts(e){return es(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function rs(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Xi(e,"argument-error"),es(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function ns(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Qi.create(e,...t)}function m(e,t,...r){if(!e)throw ns(t,...r)}function is(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Ji(t),new Error(t)}function ss(e,t){e||is(t)}function as(){return"undefined"!=typeof self&&self.location?.href||""}function os(){return"http:"===ls()||"https:"===ls()}function ls(){return"undefined"!=typeof self&&self.location?.protocol||null}class hs{constructor(e,t){ss((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ue()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(os()||ce()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function cs(e,t){ss(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class us{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void is("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void is("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void is("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ds={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},ps=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],fs=new hs(3e4,6e4);function gs(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function ms(i,s,a,o,e={}){return vs(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe({key:i.config.apiKey,...t}).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),{method:s,headers:n,...e});return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),us.fetch()(await ys(i,i.config.apiHost,a,r),n)})}async function vs(t,e,r){t._canInitEmulator=!1;var n={...ds,...e};try{var i=new ws(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw bs(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw bs(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw bs(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw bs(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw es(t,h,l);Xi(t,h)}catch(e){if(e instanceof ye)throw e;Xi(t,"network-request-failed",{message:String(e)})}}async function _s(e,t,r,n,i={}){var s=await ms(e,t,r,n,i);return"mfaPendingCredential"in s&&Xi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ys(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?cs(e.config,i):e.config.apiScheme+"://"+i;if(ps.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class ws{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(Zi(this.auth,"network-request-failed")),fs.get())})}}function bs(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),Zi(e,t,n));return n.customData._tokenResponse=r,n}function Is(e){return void 0!==e&&void 0!==e.getResponse}function Ts(e){return void 0!==e&&void 0!==e.enterprise}class Es{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Cs(e,t){return ms(e,"GET","/v2/recaptchaConfig",gs(e,t))}async function Ss(e,t){return ms(e,"POST","/v1/accounts:lookup",t)}function ks(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function As(e){return 1e3*Number(e)}function Ns(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Ji("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Ji("Failed to decode base64 JWT payload"),null)}catch(e){return Ji("Caught error parsing JWT payload as JSON",e?.toString()),null}}function Rs(e){var t=Ns(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ps(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class Ds{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===e?.code&&this.schedule(!0))}this.schedule()}}class xs{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=ks(this.lastLoginAt),this.creationTime=ks(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Os(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ps(e,Ss(n,{idToken:i})),n=(m(i?.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),n.providerUserInfo?.length?Ms(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ms(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}class Ls{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Rs(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Rs(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await vs(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ys(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders(),r=(r["Content-Type"]="application/x-www-form-urlencoded",{method:"POST",headers:r,body:e});return n.emulatorConfig&&ee(n.emulatorConfig.host)&&(r.credentials="include"),us.fetch()(t,r)})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Ls;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ls,this.toJSON())}_performRefresh(){return is("not implemented")}}function Fs(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Us{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new Ds(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new xs(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){var t=await Ps(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Ns(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),(r="object"==typeof i.firebase?i.firebase:void 0)?.sign_in_provider);return{claims:i,token:n,authTime:ks(As(i.auth_time)),issuedAtTime:ks(As(i.iat)),expirationTime:ks(As(i.exp)),signInProvider:s||null,signInSecondFactor:r?.sign_in_second_factor||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Os(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Us({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Os(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(ts(this.auth)):(e=await this.getIdToken(),await Ps(this,(async(e,t)=>ms(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut())}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:c,emailVerified:u,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(c&&f,e,"internal-error"),Ls.fromJSON(this.name,f)),c=(m("string"==typeof c,e,"internal-error"),Fs(r,e.name),Fs(n,e.name),m("boolean"==typeof u,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Fs(i,e.name),Fs(s,e.name),Fs(a,e.name),Fs(o,e.name),Fs(l,e.name),Fs(h,e.name),new Us({uid:c,auth:e,email:n,emailVerified:u,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(c.providerData=p.map(e=>({...e}))),o&&(c._redirectEventId=o),c}static async _fromIdTokenResponse(e,t,r=!1){var n=new Ls,n=(n.updateFromServerResponse(t),new Us({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Os(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ms(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||i?.length),a=new Ls,a=(a.updateFromIdToken(r),new Us({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new xs(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||i?.length)};return Object.assign(a,s),a}}let Vs=new Map;function qs(e){ss(e instanceof Function,"Expected a class definition");var t=Vs.get(e);return t?ss(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,Vs.set(e,t)),t}class Bs{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Bs.type="NONE";let js=Bs;function zs(e,t,r){return`firebase:${e}:${t}:`+r}class Ks{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=zs(this.userKey,n.apiKey,i),this.fullPersistenceKey=zs("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await Ss(this.auth,{idToken:t}).catch(()=>{}))?Us._fromGetAccountInfoResponse(this.auth,e,t):null:Us._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ks(qs(js),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||qs(js),a=zs(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await Ss(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Us._fromGetAccountInfoResponse(t,h,l)}else e=Us._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch{}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch{}}))),new Ks(s,t,r)}}function Ws(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Qs(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Hs(t)?"Firefox":t.includes("silk/")?"Silk":Js(t)?"Blackberry":Xs(t)?"Webos":Gs(t)?"Safari":!t.includes("chrome/")&&!$s(t)||t.includes("edge/")?Ys(t)?"Android":2===(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?.length?t[1]:"Other":"Chrome"}function Hs(e=ae()){return/firefox\//i.test(e)}function Gs(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function $s(e=ae()){return/crios\//i.test(e)}function Qs(e=ae()){return/iemobile/i.test(e)}function Ys(e=ae()){return/android/i.test(e)}function Js(e=ae()){return/blackberry/i.test(e)}function Xs(e=ae()){return/webos/i.test(e)}function Zs(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ea(e=ae()){return Zs(e)||Ys(e)||Xs(e)||Js(e)||/windows phone/i.test(e)||Qs(e)}function ta(e,t=[]){let r;switch(e){case"Browser":r=Ws(ae());break;case"Worker":r=Ws(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${qt}/`+n}class ra{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}}class na{constructor(e){var t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class ia{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new aa(this),this.idTokenSubscription=new aa(this),this.beforeStateQueue=new ra(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Qi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=qs(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Ks.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await Ss(this,{idToken:e}),r=await Us._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=this.redirectUser?._redirectEventId,r=s?._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||!n?.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Os(e)}catch(e){if("auth/network-request-failed"!==e?.code)return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(ts(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(ts(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(ts(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(qs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await ms(e=this,"GET","/v2/passwordPolicy",gs(e,{})),t=new na(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await ms(e=this,"POST","/v2/accounts:revokeToken",gs(e,t)))}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&qs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ks.create(this,[qs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=this.currentUser?.uid??null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ta(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader()),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:((e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken())?.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Yi.logLevel<=d.WARN)&&Yi.warn(`Auth (${qt}): `+t,...r),e?.token)}}function sa(e){return w(e)}class aa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let oa={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function la(e){return oa.loadJS(e)}function ha(e){return"__"+e+Math.floor(1e6*Math.random())}class ca{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new pa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t=e||1e12;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){return this._widgets.get(e||1e12)?.getResponse()||""}async execute(e){return this._widgets.get(e||1e12)?.execute(),""}}class ua{constructor(){this.enterprise=new da}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class da{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let fa="NO_RECAPTCHA";class ga{constructor(e){this.type="recaptcha-enterprise",this.auth=sa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Ts(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(fa)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new ua).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Cs(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Es(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Ts(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=oa.recaptchaEnterpriseScript;0!==e.length&&(e+=t),la(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function ma(e,t,r,n=!1,i=!1){var s=new ga(e);let a;if(i)a=fa;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s={...t};return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function va(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await ma(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await ma(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")?(t=await ma(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===r._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await ma(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await ma(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function _a(e,t,r){var n=sa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!!r?.disableWarnings),s=ya(t),{host:a,port:o}=(e=>{var t,r=ya(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:wa(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:wa(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function c(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",c):c()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function ya(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function wa(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class ba{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return is("not implemented")}_getIdTokenResponse(e){return is("not implemented")}_linkToIdToken(e,t){return is("not implemented")}_getReauthenticationResolver(e){return is("not implemented")}}async function Ia(e,t){return ms(e,"POST","/v1/accounts:resetPassword",gs(e,t))}async function Ta(e,t){return ms(e,"POST","/v1/accounts:signUp",t)}async function Ea(e,t){return _s(e,"POST","/v1/accounts:signInWithPassword",gs(e,t))}async function Ca(e,t){return ms(e,"POST","/v1/accounts:sendOobCode",gs(e,t))}async function Sa(e,t){return Ca(e,t)}async function ka(e,t){return Ca(e,t)}class Aa extends ba{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Aa(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Aa(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return va(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return va(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ta,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithEmailLink",gs(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Xi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Na(e,t){return _s(e,"POST","/v1/accounts:signInWithIdp",gs(e,t))}class Ra extends ba{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Ra(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Xi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t;let{providerId:r,signInMethod:n,...i}="string"==typeof e?JSON.parse(e):e;return r&&n?((t=new Ra(r,n)).idToken=i.idToken||void 0,t.accessToken=i.accessToken||void 0,t.secret=i.secret,t.nonce=i.nonce,t.pendingToken=i.pendingToken||null,t):null}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(e={},this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=Pe(e)),t}}async function Pa(e,t){return ms(e,"POST","/v1/accounts:sendVerificationCode",gs(e,t))}let Da={USER_NOT_FOUND:"user-not-found"};class xa extends ba{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new xa({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new xa({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await _s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,t));if(r.temporaryProof)throw bs(e,"account-exists-with-different-credential",r);return r})(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return(async(e,t)=>_s(e,"POST","/v1/accounts:signInWithPhoneNumber",gs(e,{...t,operation:"REAUTH"}),Da))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new xa({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Oa{constructor(e){var t=De(xe(e)),r=t.apiKey??null,n=t.oobCode??null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(t.mode??null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){t=De(xe(e=e)).link,r=t?De(xe(t)).deep_link_id:null;var t,r,n=((n=De(xe(e)).deep_link_id)?De(xe(n)).link:null)||n||r||t||e;try{return new Oa(n)}catch{return null}}}class Ma{constructor(){this.providerId=Ma.PROVIDER_ID}static credential(e,t){return Aa._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Oa.parseLink(t);return m(r,"argument-error"),Aa._fromEmailAndCode(e,r.code,r.tenantId)}}Ma.PROVIDER_ID="password",Ma.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ma.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class La{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Fa extends La{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ua extends Fa{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Ra._fromParams(t)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Ra._fromParams({...e,providerId:this.providerId,signInMethod:this.providerId})}static credentialFromResult(e){return Ua.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ua.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Ua(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class Va extends Fa{constructor(){super("facebook.com")}static credential(e){return Ra._fromParams({providerId:Va.PROVIDER_ID,signInMethod:Va.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Va.credentialFromTaggedObject(e)}static credentialFromError(e){return Va.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Va.credential(e.oauthAccessToken)}catch{return null}}}Va.FACEBOOK_SIGN_IN_METHOD="facebook.com",Va.PROVIDER_ID="facebook.com";class qa extends Fa{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ra._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return qa.credential(t,r)}catch{return null}}}qa.GOOGLE_SIGN_IN_METHOD="google.com",qa.PROVIDER_ID="google.com";class Ba extends Fa{constructor(){super("github.com")}static credential(e){return Ra._fromParams({providerId:Ba.PROVIDER_ID,signInMethod:Ba.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Ba.credentialFromTaggedObject(e)}static credentialFromError(e){return Ba.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Ba.credential(e.oauthAccessToken)}catch{return null}}}Ba.GITHUB_SIGN_IN_METHOD="github.com",Ba.PROVIDER_ID="github.com";class ja extends ba{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Na(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Na(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Na(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new ja(t,n):null}static _create(e,t){return new ja(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class za extends La{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return za.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return za.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=ja.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return ja._create(r,t)}catch(e){return null}}}class Ka extends Fa{constructor(){super("twitter.com")}static credential(e,t){return Ra._fromParams({providerId:Ka.PROVIDER_ID,signInMethod:Ka.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Ka.credentialFromTaggedObject(e)}static credentialFromError(e){return Ka.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Ka.credential(t,r)}catch{return null}}}async function Wa(e,t){return _s(e,"POST","/v1/accounts:signUp",gs(e,t))}Ka.TWITTER_SIGN_IN_METHOD="twitter.com",Ka.PROVIDER_ID="twitter.com";class Ha{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Us._fromIdTokenResponse(e,r,n),s=Ga(r);return new Ha({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=Ga(r);return new Ha({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function Ga(e){return e.providerId||("phoneNumber"in e?"phone":null)}class $a extends ye{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,$a.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new $a(e,t,r,n)}}function Qa(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw $a._fromErrorAndOperation(t,e,r,n);throw e})}function Ya(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Ja(e,t){var r=w(e),n=(await Za(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await ms(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ya(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Xa(e,t,r=!1){var n=await Ps(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ha._forOperation(e,"link",n)}async function Za(e,t,r){await Os(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ya(t.providerData).has(r)===e,t.auth,n)}async function eo(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(ts(n));var i="reauthenticate";try{var s=await Ps(e,Qa(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Ns(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ha._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===e?.code&&Xi(n,"user-mismatch"),e}}async function to(e,t,r=!1){var n;return h(e.app)?Promise.reject(ts(e)):(n=await Qa(e,"signIn",t),n=await Ha._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function ro(e,t){return to(sa(e),t)}async function no(e,t){var r=w(e);return await Za(!1,r,t.providerId),Xa(r,t)}async function io(e,t){return eo(w(e),t)}async function so(e,t){var r,n;return h(e.app)?Promise.reject(ts(e)):(n=await _s(r=sa(e),"POST","/v1/accounts:signInWithCustomToken",gs(r,{token:t,returnSecureToken:!0})),n=await Ha._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class ao{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?oo._fromServerResponse(e,t):"totpInfo"in t?lo._fromServerResponse(e,t):Xi(e,"internal-error")}}class oo extends ao{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new oo(t)}}class lo extends ao{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new lo(t)}}function ho(e,t,r){m(0<r.url?.length,e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function co(e){var t=sa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function uo(e,t){await ms(e=w(e),"POST","/v1/accounts:update",gs(e,{oobCode:t}))}async function po(e,t){var r=w(e),n=await Ia(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=ao._fromServerResponse(sa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function fo(e,t){var r=os()?as():"http://localhost",r=(await ms(e=w(e),"POST","/v1/accounts:createAuthUri",gs(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function go(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&ho(r.auth,n,t),await Ca(r.auth,n)).email;r!==e.email&&await e.reload()}async function mo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&ho(n.auth,i,r),await Ca(n.auth,i)).email;n!==e.email&&await e.reload()}async function vo(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ps(n,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function _o(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ps(e,(async(e,t)=>ms(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class yo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class wo extends yo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class bo extends yo{constructor(e,t){super(e,"facebook.com",t)}}class Io extends wo{constructor(e,t){super(e,"github.com",t,"string"==typeof t?.login?t?.login:null)}}class To extends yo{constructor(e,t){super(e,"google.com",t)}}class Eo extends wo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function Co(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&n?.idToken){t=Ns(n.idToken)?.firebase?.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new yo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new bo(a,s);case"github.com":return new Io(a,s);case"google.com":return new To(a,s);case"twitter.com":return new Eo(a,s,n.screenName||null);case"custom":case"anonymous":return new yo(a,null);default:return new yo(a,i,s)}}class So{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new So("enroll",e,t)}static _fromMfaPendingCredential(e){return new So("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return So._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return So._fromIdtoken(e.multiFactorSession.idToken)}return null}}class ko{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=sa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ao._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=So._fromMfaPendingCredential(a.mfaPendingCredential);return new ko(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,{...a,idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var n=await Ha._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ha._forOperation(i.user,i.operationType,r);default:Xi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function Ao(e,t){return ms(e,"POST","/v2/accounts/mfaEnrollment:start",gs(e,t))}class No{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ao._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new No(e)}async getSession(){return So._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ps(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ps(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},ms(r,"POST","/v2/accounts/mfaEnrollment:withdraw",gs(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Ro=new WeakMap;let Po="__sak";class Do{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Po,"1"),this.storage.removeItem(Po),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class xo extends Do{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ea(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}xo.type="LOCAL";let Oo=xo;class Mo extends Do{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Mo.type="SESSION";let Lo=Mo;class Fo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Fo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];s?.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Uo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Fo.receivers=[];class Vo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Uo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function qo(){return window}function Bo(){return void 0!==qo().WorkerGlobalScope&&"function"==typeof qo().importScripts}let jo="firebaseLocalStorageDb",zo="firebaseLocalStorage",Ko="fbase_key";class Wo{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Ho(e,t){return e.transaction([zo],t?"readwrite":"readonly").objectStore(zo)}function Go(){let n=indexedDB.open(jo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(zo,{keyPath:Ko})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(zo)?t(e):(e.close(),e=indexedDB.deleteDatabase(jo),await new Wo(e).toPromise(),t(await Go()))})})}async function $o(e,t,r){var n=Ho(e,!0).put({fbase_key:t,value:r});return new Wo(n).toPromise()}function Qo(e,t){var r=Ho(e,!0).delete(t);return new Wo(r).toPromise()}class Yo{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await Go()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Bo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Fo._getInstance(Bo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e;this.activeServiceWorker=await(async()=>{if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}})(),this.activeServiceWorker&&(this.sender=new Vo(this.activeServiceWorker),e=await this.sender._send("ping",{},800))&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{var e;return indexedDB?(await $o(e=await Go(),Po,"1"),await Qo(e,Po),!0):!1}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>$o(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Ho(e,!1).get(t);return void 0===(r=await new Wo(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Ho(e,!1).getAll();return new Wo(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Yo.type="LOCAL";let Jo=Yo;function Xo(e,t){return ms(e,"POST","/v2/accounts/mfaSignIn:start",gs(e,t))}let Zo=ha("rcb"),el=new hs(3e4,6e4);class tl{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!qo().grecaptcha?.render}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Is(qo().grecaptcha)?Promise.resolve(qo().grecaptcha):new Promise((t,r)=>{let n=qo().setTimeout(()=>{r(Zi(i,"network-request-failed"))},el.get());qo()[Zo]=()=>{qo().clearTimeout(n),delete qo()[Zo];var e=qo().grecaptcha;if(e&&Is(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(Zi(i,"internal-error"))},la(oa.recaptchaV2Script+"?"+Pe({onload:Zo,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(Zi(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!qo().grecaptcha?.render&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class rl{async load(e){return new ca(e)}clearedOneInstance(){}}let nl="recaptcha",il={theme:"light",type:"image"};class sl{constructor(e,t,r={...il}){this.parameters=r,this.type=nl,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=sa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?rl:tl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=qo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(os()&&!Bo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await ms(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class al{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=xa._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ol(t,r,n){if(!t._getRecaptchaConfig())try{e=sa(t),i=await Cs(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Es(i),null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,await(!i.isAnyProviderEnabled()||!new ga(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}var e,i,s,a,o,l,h;try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(s=e.session,"phoneNumber"in e?(m("enroll"===s.type,t,"internal-error"),a={idToken:s.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await va(t,a,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Ao(e,await ll(e,t,n))):Ao(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===s.type,t,"internal-error"),m(o=e.multiFactorHint?.uid||e.multiFactorUid,t,"missing-multi-factor-info"),l={mfaPendingCredential:s.credential,mfaEnrollmentId:o,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await va(t,l,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Xo(e,await ll(e,t,n))):Xo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(h={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await va(t,h,"sendVerificationCode",async(e,t)=>t.captchaResponse===fa?(m(n?.type===nl,e,"argument-error"),Pa(e,await ll(e,t,n))):Pa(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{n?._reset()}}async function ll(e,t,r){m(r.type===nl,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),{...t});return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class hl{constructor(e){this.providerId=hl.PROVIDER_ID,this.auth=sa(e)}verifyPhoneNumber(e,t){return ol(this.auth,e,w(t))}static credential(e,t){return xa._fromVerification(e,t)}static credentialFromResult(e){var t=e;return hl.credentialFromTaggedObject(t)}static credentialFromError(e){return hl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?xa._fromTokenResponse(t,r):null}}function cl(e,t){return t?qs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}hl.PROVIDER_ID="phone",hl.PHONE_SIGN_IN_METHOD="phone";class ul extends ba{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Na(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Na(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Na(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function dl(e){return to(e.auth,new ul(e),e.bypassAuthState)}function pl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),eo(r,new ul(e),e.bypassAuthState)}async function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Xa(r,new ul(e),e.bypassAuthState)}class gl{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return dl;case"linkViaPopup":case"linkViaRedirect":return fl;case"reauthViaPopup":case"reauthViaRedirect":return pl;default:Xi(this.auth,"internal-error")}}resolve(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ss(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let ml=new hs(2e3,1e4);class vl extends gl{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,vl.currentPopupAction&&vl.currentPopupAction.cancel(),vl.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){ss(1===this.filter.length,"Popup operations only handle one event");var e=Uo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(Zi(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(Zi(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,vl.currentPopupAction=null}pollUserCancellation(){let e=()=>{this.authWindow?.window?.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(Zi(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,ml.get())};e()}}vl.currentPopupAction=null;let _l="pendingRedirect",yl=new Map;class wl extends gl{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=yl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=El(t),i=Tl(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}yl.set(this.auth._key(),t)}return this.bypassAuthState||yl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function bl(e,t){return Tl(e)._set(El(t),"true")}function Il(e,t){yl.set(e._key(),t)}function Tl(e){return qs(e._redirectPersistence)}function El(e){return zs(_l,e.config.apiKey,e.name)}function Cl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=sa(e),rs(e,t,La),await n._initializationPromise,await bl(i=cl(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function Sl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(rs(n.auth,t,La),h(n.auth.app))return Promise.reject(ts(n.auth));await n.auth._initializationPromise;var i=cl(n.auth,r),s=(await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),await n.auth._initializationPromise,cl(n.auth,r)),s=(await Za(!1,n,t.providerId),await bl(i,n.auth),await Nl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Al(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(ts(e)):(i=cl(n=sa(e),t),(i=await new wl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Nl(e){var t=Uo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Rl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return Dl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!Dl(e)?(r=e.error.code?.split("auth/")[1]||"internal-error",t.onError(Zi(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Pl(e))}saveEventToCache(e){this.cachedEventUids.add(Pl(e)),this.lastProcessedEventTime=Date.now()}}function Pl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function Dl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===t?.code}async function xl(e,t={}){return ms(e,"GET","/v1/projects",t)}let Ol=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ml=/^https?/;async function Ll(e){if(!e.config.emulator){var t,r=(await xl(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=as(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ml.test(n)&&(Ol.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch{}Xi(e,"unauthorized-domain")}}let Fl=new hs(3e4,6e4);function Ul(){var t=qo().___jsl;if(t?.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Vl(i){return new Promise((e,t)=>{function r(){Ul(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ul(),t(Zi(i,"network-request-failed"))},timeout:Fl.get()})}if(qo().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else{var n;if(!qo().gapi?.load)return n=ha("iframefcb"),qo()[n]=()=>{gapi.load?r():t(Zi(i,"network-request-failed"))},la(oa.gapiScript+"?onload="+n).catch(e=>t(e));r()}}).catch(e=>{throw ql=null,e})}let ql=null;let Bl=new hs(5e3,15e3),jl="__/auth/iframe",zl="emulator/auth/iframe",Kl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Wl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Hl(a){e=a;var e,t,r,n=await(ql=ql||Vl(e)),i=qo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?cs(n,zl):`https://${e.config.authDomain}/`+jl,n={apiKey:n.apiKey,appName:e.name,v:qt},(r=Wl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Kl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=Zi(a,"network-request-failed"),n=qo().setTimeout(()=>{t(r)},Bl.get());function i(){qo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let Gl={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class $l{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ql(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s={...Gl,width:n.toString(),height:i.toString(),top:s,left:a},a=ae().toLowerCase(),s=(r&&(o=$s(a)?"_blank":r),Hs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],Zs(n)&&window.navigator?.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new $l(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new $l(a)}let Yl="__/auth/handler",Jl="emulator/auth/handler",Xl=encodeURIComponent("fac");async function Zl(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:qt,eventId:i};if(t instanceof La){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",ke(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Fa&&0<(u=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=u.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,c=a;for(h of Object.keys(c))void 0===c[h]&&delete c[h];var u=await e._getAppCheckToken(),u=u?`#${Xl}=`+encodeURIComponent(u):"";return`${r=[e.config][0],r.emulator?cs(r,Jl):`https://${r.authDomain}/`+Yl}?`+Pe(c).slice(1)+u}let eh="webStorageSupport";class th{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _openPopup(e,t,r,n){return ss(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()"),Ql(e,await Zl(e,t,r,as(),n),Uo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await Zl(e,t,r,as(),n);return qo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(ss(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Hl(t);let r=new Rl(t);return e.register("authEvent",e=>(m(e?.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(eh,{type:eh},e=>{var t=e?.[0]?.[eh];void 0!==t&&n(!!t),Xi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ll(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ea()||Gs()||Zs()}}let rh=th;class nh extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return is("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new nh(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaEnrollment:finalize",gs(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},ms(e,"POST","/v2/accounts/mfaSignIn:finalize",gs(e,t))}}class ih{constructor(){}static assertion(e){return nh._fromCredential(e)}}ih.FACTOR_ID="phone";or="@firebase/auth",lr="1.11.1-canary.bc2b2cdea";class sh{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t(e?.stsTokenManager.accessToken||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var ah;function oh(){return window}Y()?._authIdTokenMaxAge,oa={loadJS(n){return new Promise((e,r)=>{var t=document.createElement("script");t.setAttribute("src",n),t.onload=e,t.onerror=e=>{var t=Zi("internal-error");t.customData=e,r(t)},t.type="text/javascript",t.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(t)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},ah="Browser",Dt(new c("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:ah,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ta(ah)}),a=new ia(r,n,i,s);return e=a,r=(t=t)?.persistence||[],r=(Array.isArray(r)?r:[r]).map(qs),t?.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,t?.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),Dt(new c("auth-internal",e=>{var t=sa(e.getProvider("auth").getImmediate());return e=t,new sh(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),u(or,lr,(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(ah)),u(or,lr,"esm2020");async function lh(e,t,r){var n=oh().BuildInfo,i=(ss(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(ss(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return Zs()?s.ibi=n.packageName:Ys()?s.apn=n.packageName:Xi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,Zl(e,r,t.type,void 0,t.eventId??void 0,s)}function hh(n){let i=oh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let ch=20;class uh extends Rl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function dh(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<ch;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:Zi(e,"no-auth-event")}}async function ph(e){var t=await gh()._get(mh(e));return t&&await gh()._remove(mh(e)),t}function fh(e,t){i=vh(t=t),r=i.link?decodeURIComponent(i.link):void 0,n=vh(r).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=vh(i).link||i||n||r||t;return i.includes("/__/auth/callback")?(n=(r=((n=vh(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(n.firebaseError)):null)?.code?.split("auth/")?.[1])?Zi(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function gh(){return qs(Oo)}function mh(e){return zs("authEvent",e.config.apiKey,e.name)}function vh(e){var t,r;return e?.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class _h{constructor(){this._redirectPersistence=Lo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new uh(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Xi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,m("function"==typeof(s=oh())?.universalLinks?.subscribe,i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==s?.BuildInfo?.packageName,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.openUrl,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.isAvailable,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.InAppBrowser?.open,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),yl.clear(),await this._originValidation(e),dh(e,r,n)),a=(i=e,r=a,await gh()._set(mh(i),r),await lh(e,a,t));return(async(a,o,l)=>{let h=oh().cordova,c=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=h.plugins.browsertab?.close;"function"==typeof e&&e(),"function"==typeof l?.close&&l.close()}function i(){r=r||window.setTimeout(()=>{e(Zi(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===document?.visibilityState&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Ys()&&document.addEventListener("visibilitychange",s,!1),c=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{c()}})(e,s,await hh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=oh().BuildInfo,r={};Zs()?r.iosBundleId=t.packageName:Ys()?r.androidPackageName=t.packageName:Xi(e,"operation-not-supported-in-this-environment"),await xl(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=oh();let s=setTimeout(async()=>{await ph(n),i.onEvent(wh())},500),a=async e=>{clearTimeout(s);var t=await ph(n);let r=null;t&&e?.url&&(r=fh(t,e.url)),i.onEvent(r||wh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";oh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let yh=_h;function wh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:Zi("no-auth-event")}}function bh(){return self?.location?.protocol||null}function Ih(e=ae()){return!("file:"!==bh()&&"ionic:"!==bh()&&"capacitor:"!==bh()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Th(e=ae()){return de()&&11===document?.documentMode||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Eh(){try{var e=self.localStorage,t=Uo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Th()||me()}catch(e){return Ch()&&me()}return!1}function Ch(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function Sh(){return("http:"===bh()||"https:"===bh()||ce()||Ih())&&!(ue()||le())&&Eh()&&!Ch()}function kh(){return Ih()&&"undefined"!=typeof document}let Ah={LOCAL:"local",NONE:"none",SESSION:"session"},Nh=m,Rh="persistence";async function Ph(e){await e._initializationPromise;var t=Dh(),r=zs(Rh,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function Dh(){try{return("undefined"!=typeof window?window:null)?.sessionStorage||null}catch(e){return null}}let xh=m;class Oh{constructor(){this.browserResolver=qs(rh),this.cordovaResolver=qs(yh),this.underlyingResolver=null,this._redirectPersistence=Lo,this._completeRedirectFn=Al,this._overrideRedirectResult=Il}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return kh()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return xh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!kh()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Mh(e){return e.unwrap()}function Lh(e,t){var r,n,i,s=t.customData?._tokenResponse;"auth/multi-factor-auth-required"===t?.code?t.resolver=new qh(e,(r=t,n=w(e),m((i=r).customData.operationType,n,"argument-error"),m(i.customData._serverResponse?.mfaPendingCredential,n,"argument-error"),ko._fromError(n,i))):s&&(i=Fh(n=t))&&(n.credential=i,n.tenantId=s.tenantId||void 0,n.email=s.email||void 0,n.phoneNumber=s.phoneNumber||void 0)}function Fh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return hl.credentialFromResult(e);var r=t.providerId;if(!r||r===Ki.PASSWORD)return null;let n;switch(r){case Ki.GOOGLE:n=qa;break;case Ki.FACEBOOK:n=Va;break;case Ki.GITHUB:n=Ba;break;case Ki.TWITTER:n=Ka;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?ja._create(r,o):Ra._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Ua(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Uh(t,e){return e.catch(e=>{throw e instanceof ye&&Lh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Fh(e),additionalUserInfo:Co(e),user:Bh.getOrCreate(r)}})}async function Vh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Uh(t,r.confirm(e))}}class qh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Uh(Mh(this.auth),this.resolver.resolveSignIn(e))}}class Bh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Ro.has(t)||Ro.set(t,No._fromUser(t)),Ro.get(t))}static getOrCreate(e){return Bh.USER_MAP.has(e)||Bh.USER_MAP.set(e,new Bh(e)),Bh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Uh(this.auth,no(this._delegate,e))}async linkWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);await Za(!1,n,"phone");var i=await ol(n.auth,t,w(r));return new al(i,e=>no(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e),i=(rs(n.auth,t,La),cl(n.auth,r));return new vl(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async linkWithRedirect(e){return await Ph(sa(this.auth)),kl(this._delegate,e,Oh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Uh(this.auth,io(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Vh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(ts(n.auth)):(i=await ol(n.auth,t,w(r)),new al(i,e=>io(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Uh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(Zi(n.auth,"operation-not-supported-in-this-environment"));rs(n.auth,t,La);var i=cl(n.auth,r);return new vl(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Oh))}async reauthenticateWithRedirect(e){return await Ph(sa(this.auth)),Sl(this._delegate,e,Oh)}sendEmailVerification(e){return go(this._delegate,e)}async unlink(e){return await Ja(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(ts(r.auth)):_o(r,e,null);var t,r}updatePassword(e){return _o(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(ts(r.auth));await Xa(r,t)})(this._delegate,e)}updateProfile(e){return vo(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return mo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}Bh.USER_MAP=new WeakMap;let jh=m;class zh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,jh(r,"invalid-api-key",{appName:e.name}),jh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Oh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=Dh();if(!r)return[];var n=zs(Rh,e,t);switch(r.getItem(n)){case Ah.NONE:return[js];case Ah.LOCAL:return[Jo,Lo];case Ah.SESSION:return[Lo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Jo)||r.push(Jo),"undefined"!=typeof window)for(var n of[Oo,Lo])r.includes(n)||r.push(n);return r.includes(js)||r.push(js),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap(Gi)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?Bh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){_a(this._delegate,e,t)}applyActionCode(e){return uo(this._delegate,e)}checkActionCode(e){return po(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ia(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Uh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(ts(t)):(i=await va(n=sa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Wa,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e}),i=await Ha._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return fo(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===Oa.parseLink(e)?.operation}async getRedirectResult(){jh(Sh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Oh,await sa(e)._initializationPromise;var e,t,r=await Al(e,t,!1);return r?Uh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){sa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Kh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=sa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&ho(n,e,t),await va(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=sa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&ho(n,i,r),await va(n,i,"getOobCode",Sa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Nh(Object.values(Ah).includes(r),t,"invalid-persistence-type"),ue()?Nh(r!==Ah.SESSION,t,"unsupported-persistence-type"):le()?Nh(r===Ah.NONE,t,"unsupported-persistence-type"):Ch()?Nh(r===Ah.NONE||r===Ah.LOCAL&&me(),t,"unsupported-persistence-type"):Nh(r===Ah.NONE||Eh(),t,"unsupported-persistence-type");let n;switch(e){case Ah.SESSION:n=Lo;break;case Ah.LOCAL:var i=await qs(Jo)._isAvailable();n=i?Jo:Oo;break;case Ah.NONE:n=js;break;default:return Xi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Uh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(ts(e)):(await(t=sa(e))._initializationPromise,t.currentUser?.isAnonymous?new Ha({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Wa(t,{returnSecureToken:!0}),r=await Ha._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Uh(this._delegate,ro(this._delegate,e))}signInWithCustomToken(e){return Uh(this._delegate,so(this._delegate,e))}signInWithEmailAndPassword(e,t){return Uh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(ts(r)):ro(w(r),Ma.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(r),e})));var r}signInWithEmailLink(e,t){return Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(ts(e)):(n=w(e),m((i=Ma.credentialWithLink(t,r||as()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),ro(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Vh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(ts(e));let n=sa(e);var i=await ol(n,t,w(r));return new al(i,e=>ro(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return jh(Sh(),this._delegate,"operation-not-supported-in-this-environment"),Uh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(Zi(e,"operation-not-supported-in-this-environment")):(n=sa(e),rs(e,t,La),i=cl(n,r),new vl(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Oh))}async signInWithRedirect(e){return jh(Sh(),this._delegate,"operation-not-supported-in-this-environment"),await Ph(this._delegate),Cl(this._delegate,e,Oh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await po(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Kh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&Bh.getOrCreate(e)),error:t,complete:r}}zh.Persistence=Ah;class Wh{static credential(e,t){return hl.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new hl(Mh(hr.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Wh.PHONE_SIGN_IN_METHOD=hl.PHONE_SIGN_IN_METHOD,Wh.PROVIDER_ID=hl.PROVIDER_ID;let Hh=m;class Gh{constructor(e,t,r=hr.app()){Hh(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new sl(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=hr).INTERNAL.registerComponent(new c("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new zh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Wi.EMAIL_SIGNIN,PASSWORD_RESET:Wi.PASSWORD_RESET,RECOVER_EMAIL:Wi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Wi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Wi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Wi.VERIFY_EMAIL}},EmailAuthProvider:Ma,FacebookAuthProvider:Va,GithubAuthProvider:Ba,GoogleAuthProvider:qa,OAuthProvider:Ua,SAMLAuthProvider:za,PhoneAuthProvider:Wh,PhoneMultiFactorGenerator:ih,RecaptchaVerifier:Gh,TwitterAuthProvider:Ka,Auth:zh,AuthCredential:ba,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.6.1-canary.bc2b2cdea");let $h="@firebase/database",Qh="1.1.0-canary.bc2b2cdea",Yh="";function Jh(e){Yh=e}class Xh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Zh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function ec(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Xh(t)}catch(e){}return new Zh}var tc;function rc(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function nc(t){return function(...e){vc(t,...e)}}function ic(...e){var t="FIREBASE INTERNAL ERROR: "+pc(...e);uc.error(t)}function sc(e,t){return e===t?0:e<t?-1:1}function ac(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function oc(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+oc(e[r[i]]);return n+="}"}function lc(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let hc=ec("localStorage"),cc=ec("sessionStorage"),uc=new tt("@firebase/database"),dc=(()=>{let e=1;return function(){return e++}})(),pc=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=pc.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},fc=null,gc=!0,mc=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(uc.logLevel=d.VERBOSE,fc=uc.log.bind(uc),t&&cc.set("logging_enabled",!0)):"function"==typeof e?fc=e:(fc=null,cc.remove("logging_enabled"))},vc=function(...e){var t;!0===gc&&(gc=!1,null===fc)&&!0===cc.get("logging_enabled")&&mc(!0),fc&&(t=pc.apply(null,e),fc(t))},_c=function(...e){var t="FIREBASE FATAL ERROR: "+pc(...e);throw uc.error(t),new Error(t)},yc=function(...e){var t="FIREBASE WARNING: "+pc(...e);uc.warn(t)},wc=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&yc("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},bc=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Ic="[MIN_NAME]",Tc="[MAX_NAME]",Ec=function(e,t){var r,n;return e===t?0:e===Ic||t===Tc?-1:t===Ic||e===Tc?1:(r=kc(e),n=kc(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Cc(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Sc(e){g(!bc(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function kc(e){if(Nc.test(e)){var t=Number(e);if(t>=Rc&&t<=Pc)return t}return null}function Ac(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Nc=new RegExp("^-?(0*)\\d{1,10}$"),Rc=-2147483648,Pc=2147483647,Dc=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw yc("Exception was thrown by user callback.",e),t},Math.floor(0))}};class xc{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=t?.getImmediate({optional:!0}),this.appCheck||t?.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.appCheckProvider?.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){yc(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Oc{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(vc("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',yc(e)}}class Mc{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Mc.OWNER="owner";let Lc=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Fc="websocket",Uc="long_polling";class Vc{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=hc.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&hc.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function qc(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Fc)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Uc)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Cc(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class Bc{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let jc={},zc={};function Kc(e){var t=e.toString();return jc[t]||(jc[t]=new Bc),jc[t]}class Wc{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Dc(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Hc{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=nc(e),this.stats_=Kc(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),qc(t,Uc,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Wc(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Gc((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Lc.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Hc.forceAllow_=!0}static forceDisallow(){Hc.forceDisallow_=!0}static isAvailable(){return!!Hc.forceAllow_||!(Hc.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=lc(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Gc{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=dc(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Gc.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){vc("frame writing exception"),e.stack&&vc(e.stack),vc(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||vc("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{vc("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let $c=null;"undefined"!=typeof MozWebSocket?$c=MozWebSocket:"undefined"!=typeof WebSocket&&($c=WebSocket);class Qc{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=nc(this.connId),this.stats_=Kc(t),this.connURL=Qc.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Lc.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),qc(e,Fc,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,hc.set("previous_websocket_failure",!0);try{pe(),this.mySock=new $c(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Qc.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==$c&&!Qc.forceDisallow_}static previouslyFailed(){return hc.isInMemoryStorage||!0===hc.get("previous_websocket_failure")}markConnectionHealthy(){hc.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),lc(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Qc.responsesRequiredToBeHealthy=2,Qc.healthyTimeout=3e4;class Yc{static get ALL_TRANSPORTS(){return[Hc,Qc]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=Qc&&Qc.isAvailable();let r=t&&!Qc.previouslyFailed();if(e.webSocketOnly&&(t||yc("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[Qc];else{var n,i=this.transports_=[];for(n of Yc.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Yc.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Yc.globalTransportInitialized_=!1;class Jc{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=nc("c:"+this.id+":"),this.transportManager_=new Yc(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Ac(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=ac("t",e),r=ac("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=ac("t",e),r=ac("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=ac("t",e);if("d"in e){var r=e.d;if("h"===t){var n={...r};this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?ic("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):ic("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&yc("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Ac(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Ac(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(hc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Xc{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Zc{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class eu extends Zc{static getInstance(){return new eu}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let tu=32,ru=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function nu(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function iu(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function su(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function au(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function ou(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function lu(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return lu(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function hu(e,t){var r=su(e,0),n=su(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Ec(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function cu(e,t){if(nu(e)!==nu(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function uu(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(nu(e)>nu(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class du{constructor(e,t){this.errorPrefix_=t,this.parts_=su(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=Be(this.parts_[r]);pu(this)}}function pu(e){if(e.byteLength_>ru)throw new Error(e.errorPrefix_+"has a key path longer than "+ru+" bytes ("+e.byteLength_+").");if(e.parts_.length>tu)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+tu+") or object contains a cycle "+fu(e))}function fu(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class gu extends Zc{static getInstance(){return new gu}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class mu extends Xc{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=mu.nextPersistentConnectionId_++,this.log_=nc("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");gu.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&eu.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(mu.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=Se(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),yc("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):ic("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+mu.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,c]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?vc("getToken() completed but was canceled"):(vc("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=c&&c.token,r=new Jc(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{yc(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&yc(e),o())}}}interrupt(e){vc("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){vc("Resuming connection for reason: "+e),delete this.interruptReasons_[e],ke(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>oc(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){vc("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){vc("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Yh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ue()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=eu.getInstance().currentlyOnline();return ke(this.interruptReasons_)&&e}}mu.nextPersistentConnectionId_=0,mu.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class vu{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(Ic,e),n=new p(Ic,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let _u;class yu extends vu{static get __EMPTY_NODE(){return _u}static set __EMPTY_NODE(e){_u=e}compare(e,t){return Ec(e.name,t.name)}isDefinedOn(e){throw B("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Tc,_u)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,_u)}toString(){return".key"}}let wu=new yu;class bu{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class Iu{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Iu.RED,this.left=null!=n?n:Eu.EMPTY_NODE,this.right=null!=i?i:Eu.EMPTY_NODE}copy(e,t,r,n,i){return new Iu(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Eu.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Eu.EMPTY_NODE;n=r.right.min_(),r=r.copy(n.key,n.value,null,null,r.right.removeMin_())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,Iu.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,Iu.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}Iu.RED=!0,Iu.BLACK=!1;class Tu{copy(e,t,r,n,i){return this}insert(e,t,r){return new Iu(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Eu{constructor(e,t=Eu.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Eu(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,Iu.BLACK,null,null))}remove(e){return new Eu(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Iu.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new bu(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new bu(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new bu(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new bu(this.root_,null,this.comparator_,!0,e)}}function Cu(e,t){return Ec(e.name,t.name)}function Su(e,t){return Ec(e,t)}Eu.EMPTY_NODE=new Tu;let ku;function Au(e){return"number"==typeof e?"number:"+Sc(e):"string:"+e}function Nu(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===ku||e.isEmpty(),"priority of unexpected type."),g(e===ku||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Ru;class Pu{static set __childrenNodeConstructor(e){Ru=e}static get __childrenNodeConstructor(){return Ru}constructor(e,t=Pu.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Nu(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Pu(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Pu.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Pu.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Pu.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===nu(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Pu.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Au(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Sc(this.value_):this.value_),this.lazyHash_=rc(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Pu.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Pu.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Pu.VALUE_TYPE_ORDER.indexOf(t),i=Pu.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Pu.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Du,xu;class Ou extends vu{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Ec(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Tc,new Pu("[PRIORITY-POST]",xu))}makePost(e,t){var r=Du(e);return new p(t,new Pu("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new Ou,Mu=Math.log(2);class Lu{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Mu,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Fu(l,e,h,t){l.sort(e);let c=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new Iu(a,s.node,Iu.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=c(e,i),n=c(i+1,t),s=l[i],a=h?h(s):s,new Iu(a,s.node,Iu.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,c(1+r,n)),r=l[r],i=h?h(r):r,e=new Iu(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,Iu.BLACK):(t(n,Iu.BLACK),t(n,Iu.RED))}return a})(new Lu(l.length));return new Eu(t||e,r)}let Uu,Vu={};class qu{static get Default(){return g((Vu,I),"ChildrenNode.ts has not been loaded"),Uu=Uu||new qu({".priority":Vu},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=Se(this.indexes_,e);if(t)return t instanceof Eu?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==wu,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Fu(r,e.getCompare()):Vu;var o=e.toString(),l={...this.indexSet_},h=(l[o]=e,{...this.indexes_});return h[o]=a,new qu(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=Se(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Vu){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Fu(n,r.getCompare())}return Vu}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new qu(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Vu&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new qu(e,this.indexSet_)}}let Bu;class T{static get EMPTY_NODE(){return Bu=Bu||new T(new Eu(Su),null,qu.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Nu(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Bu}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?Bu:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?Bu:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===nu(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Au(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":rc(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===zu?-1:0}withIndex(e){var t;return e===wu||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===wu||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===wu?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class ju extends T{constructor(){super(new Eu(Su),T.EMPTY_NODE,qu.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let zu=new ju,Ku=(Object.defineProperties(p,{MIN:{value:new p(Ic,T.EMPTY_NODE)},MAX:{value:new p(Tc,zu)}}),yu.__EMPTY_NODE=T.EMPTY_NODE,Pu.__childrenNodeConstructor=T,t=zu,ku=t,t=zu,xu=t,!0);function Wu(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Pu(t,Wu(e));if(s instanceof Array||!Ku){let n=T.EMPTY_NODE;return Cc(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Wu(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Wu(e))}{let n=[],i=!1;return Cc(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Wu(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Fu(n,Cu,e=>e.name,Su),i?(r=Fu(n,I.getCompare()),new T(t,Wu(e),new qu({".priority":r},{".priority":I}))):new T(t,Wu(e),qu.Default))}}Du=Wu;class Hu extends vu{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Ec(e.name,t.name):r}makePost(e,t){var r=Wu(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,zu);return new p(Tc,e)}toString(){return su(this.indexPath_,0).join("/")}}class Gu extends vu{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Ec(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Wu(e);return new p(t,r)}toString(){return".value"}}let $u=new Gu;function Qu(e){return{type:"value",snapshotNode:e}}function Yu(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Ju(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Xu(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Zu{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Ju(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Yu(t,r)):s.trackChildChange(Xu(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Ju(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Xu(e,t,r)):i.trackChildChange(Yu(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class ed{constructor(e){this.indexedFilter_=new Zu(e.getIndex()),this.index_=e.getIndex(),this.startPost_=ed.getStartPost_(e),this.endPost_=ed.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class td{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new ed(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var c=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var u=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=u?(null!=i&&i.trackChildChange(Xu(t,r,c)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Ju(t,c)),u=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Yu(e.name,e.node)),u.updateImmediateChild(e.name,e.node)):u)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Ju(l.name,l.node)),i.trackChildChange(Yu(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class rd{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Ic}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Tc}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new rd;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function nd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function id(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function sd(e,t){var r=e.copy();return r.index_=t,r}function ad(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===$u?"$value":t.index_===wu?"$key":(g(t.index_ instanceof Hu,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function od(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class ld extends Xc{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=nc("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),ld.getListenId_(e,n)),o={};this.listens_[a]=o;var r=ad(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),Se(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=ld.getListenId_(e,t);delete this.listens_[r]}get(e){var t=ad(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){yc("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&yc("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class hd{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function cd(){return{value:null,children:new Map}}function ud(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,cd()),ud(e.children.get(n),t=y(t),r))}function dd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{dd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class pd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r={...e};return this.last_&&Cc(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class fd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new pd(e);var r=1e4+2e4*Math.random();Ac(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Cc(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Ac(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function gd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function md(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function vd(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=tc=tc||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class _d{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=tc.ACK_USER_WRITE,this.source=gd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new _d(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new _d(y(this.path),this.affectedTree,this.revert))}}class yd{constructor(e,t){this.source=e,this.path=t,this.type=tc.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new yd(this.source,v()):new yd(this.source,y(this.path))}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=tc.OVERWRITE}operationForChild(e){return b(this.path)?new wd(this.source,v(),this.snap.getImmediateChild(e)):new wd(this.source,y(this.path),this.snap)}}class bd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=tc.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new wd(this.source,v(),t.value):new bd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new bd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class Id{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Td{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Ed(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Cd(r,i,"child_removed",e,n,t),Cd(r,i,"child_added",e,n,t),Cd(r,i,"child_moved",s,n,t),Cd(r,i,"child_changed",e,n,t),Cd(r,i,"value",e,n,t),i}function Cd(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw B("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Sd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Sd(new Id(t,r,n),e.serverCache)}function Ad(e,t,r,n){return Sd(e.eventCache,new Id(t,r,n))}function Nd(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Rd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Pd;class Dd{static fromObject(e){let r=new Dd(null);return Cc(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Pd=Pd||new Eu(sc)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:ou(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new Dd(null))}set(e,t){var r,n;return b(e)?new Dd(t,this.children):(n=_(e),r=(this.children.get(n)||new Dd(null)).set(y(e),t),n=this.children.insert(n,r),new Dd(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new Dd(null):new Dd(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new Dd(null):new Dd(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new Dd(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Dd(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(ou(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),ou(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),ou(t,n),r):new Dd(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(ou(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class xd{constructor(e){this.writeTree_=e}static empty(){return new xd(new Dd(null))}}function Od(t,r,n){if(b(r))return new xd(new Dd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Dd(n),s=t.writeTree_.setTree(r,s),new xd(s);{var s=i.path;let e=i.value;i=lu(s,r);return e=e.updateChild(i,n),new xd(t.writeTree_.set(s,e))}}function Md(e,r,t){let n=e;return Cc(t,(e,t)=>{n=Od(n,ou(r,e),t)}),n}function Ld(e,t){var r;return b(t)?xd.empty():(r=e.writeTree_.setTree(t,new Dd(null)),new xd(r))}function Fd(e,t){return null!=Ud(e,t)}function Ud(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(lu(r.path,t)):null}function Vd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function qd(e,t){var r;return b(t)?e:null!=(r=Ud(e,t))?new xd(new Dd(r)):new xd(e.writeTree_.subtree(t))}function Bd(e){return e.writeTree_.isEmpty()}function jd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(ou(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(ou(i,".priority"),r)}}}(v(),e.writeTree_,t)}function zd(e,t){return tp(t,e)}function Kd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return uu(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&uu(ou(e.path,r),t))return 1})(l,i.path)?s=!1:uu(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Hd(e.allWrites,Wd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ld(t.visibleWrites,i.path):Cc(i.children,e=>{t.visibleWrites=Ld(t.visibleWrites,ou(i.path,e))}),!0)}function Wd(e){return e.visible}function Hd(e,t,r){let n=xd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)uu(r,s)?(e=lu(r,s),n=Od(n,e,i.snap)):uu(s,r)&&(e=lu(s,r),n=Od(n,v(),i.snap.getChild(e)));else{if(!i.children)throw B("WriteRecord should have .snap or .children");uu(r,s)?(e=lu(r,s),n=Md(n,e,i.children)):uu(s,r)&&(b(e=lu(s,r))?n=Md(n,v(),i.children):(s=Se(i.children,_(e)))&&(i=s.getChild(y(e)),n=Od(n,v(),i)))}}}return n}function Gd(e,t,r,n,i){var s;return n||i?(s=qd(e.visibleWrites,t),!i&&Bd(s)?r:i||null!=r||Fd(s,v())?jd(Hd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(uu(e.path,t)||uu(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ud(e.visibleWrites,t))?s:Bd(s=qd(e.visibleWrites,t))?r:null!=r||Fd(s,v())?jd(s,r||T.EMPTY_NODE):null}function $d(e,t,r,n){return Gd(e.writeTree,e.treePath,t,r,n)}function Qd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ud(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=qd(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=jd(qd(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Vd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Vd(qd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function Yd(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=ou(e,t),Fd(i.visibleWrites,s)?null:Bd(s=qd(i.visibleWrites,s))?n.getChild(t):jd(s,n.getChild(t));var i,s}function Jd(e,t){return r=e.writeTree,e=ou(e.treePath,t),Ud(r.visibleWrites,e);var r}function Xd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var c=qd(o.visibleWrites,e),u=Ud(c,v());if(null!=u)t=u;else{if(null==r)return[];t=jd(c,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Zd(e,t,r){return n=e.writeTree,r=r,i=ou(e.treePath,e=t),null!=(s=Ud(n.visibleWrites,i))?s:r.isCompleteForChild(e)?jd(qd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function ep(e,t){return tp(ou(e.treePath,t),e.writeTree)}function tp(e,t){return{treePath:e,writeTree:t}}class rp{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Xu(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Ju(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Yu(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw B("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Xu(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let np=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class ip{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new Id(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Zd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Rd(this.viewCache_),n=Xd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function sp(e,t,r,n,i){var s=new rp;let a,o;if(r.type===tc.OVERWRITE){var l=r;a=l.source.fromUser?lp(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),op(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===tc.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=ou(s,e);hp(i,_(r))&&(h=lp(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=ou(s,e);hp(i,_(r))||(h=lp(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),up(e,t,l.path,l.children,n,i,o,s))}else if(r.type===tc.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Jd(s,i))return n;{var l=new ip(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?$d(s,Rd(n)):(c=n.serverCache.getNode(),g(c instanceof T,"serverChildren would be complete if leaf node"),Qd(s,c)),t=r.filter.updateFullNode(h,e,a)}else{var c=_(i);let e=Zd(s,c,n.serverCache);null==e&&n.serverCache.isCompleteForChild(c)&&(e=h.getImmediateChild(c)),(t=null!=e?r.filter.updateChild(h,c,e,y(i),l,a):n.eventCache.getNode().hasChild(c)?r.filter.updateChild(h,c,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=$d(s,Rd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Jd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Jd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return op(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new Dd(null);return h.getNode().forEachChild(wu,(e,t)=>{r=r.set(new f(e),t)}),up(e,t,i,r,s,a,l,o)}return t}{let n=new Dd(null);return r.foreach((e,t)=>{var r=ou(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),up(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==tc.LISTEN_COMPLETE)throw B("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Ad(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ap(i,l,e,r,np,n))}var h,c,s=s.getChanges(),i=t,e=a,r=s,u=e.eventCache;return u.isFullyInitialized()&&(h=u.getNode().isLeafNode()||u.getNode().isEmpty(),c=Nd(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!u.getNode().equals(c)||!u.getNode().getPriority().equals(c.getPriority()))&&r.push(Qu(Nd(e))),{viewCache:a,changes:s}}function ap(n,i,s,a,o,l){var h=i.eventCache;if(null!=Jd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(c=Qd(a,(c=Rd(i))instanceof T?c:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),c,l)):(c=$d(a,Rd(i)),n.filter.updateFullNode(i.eventCache.getNode(),c,l));else{var c=_(s);if(".priority"===c){g(1===nu(s),"Can't have a priority with additional path components");var u=h.getNode(),d=Yd(a,s,u,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(u,d):h.getNode()}else{u=y(s);let e;e=h.isCompleteForChild(c)?(r=i.serverCache.getNode(),null!=(d=Yd(a,s,h.getNode(),r))?h.getNode().getImmediateChild(c).updateChild(u,d):h.getNode().getImmediateChild(c)):Zd(a,c,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),c,e,u,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function op(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var c=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=c.updateFullNode(l.getNode(),n,null);else if(c.filtersNodes()&&!l.isFiltered()){var u=l.getNode().updateChild(r,n);h=c.updateFullNode(l.getNode(),u,null)}else{u=_(r);if(!l.isCompleteForPath(r)&&1<nu(r))return t;var d=y(r),p=l.getNode().getImmediateChild(u).updateChild(d,n);h=".priority"===u?c.updatePriority(l.getNode(),p):c.updateChild(l.getNode(),u,p,d,np,null)}u=Ad(t,h,l.isFullyInitialized()||b(r),c.filtersNodes());return ap(e,u,r,i,new ip(i,u,s),o)}function lp(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var c=new ip(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var u=_(n);if(".priority"===u)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(u);let e;e=b(p)?i:null!=(d=c.getCompleteChild(u))?".priority"===iu(p)&&d.getChild(au(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),u,e,p,c,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function hp(e,t){return e.eventCache.isCompleteForChild(t)}function cp(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function up(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,c=(r=b(e)?t:new Dd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;c.hasChild(e)&&(r=cp(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;c.hasChild(e)||r||(r=cp(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),h}class dp{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Zu(r.getIndex()),r=(e=r).loadsAllData()?new Zu(e.getIndex()):new(e.hasLimit()?td:ed)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new Id(a,i.isFullyInitialized(),n.filtersNodes()),i=new Id(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Sd(i,a),this.eventGenerator_=new Td(this.query_)}get query(){return this.query_}}function pp(e){return 0===e.eventRegistrations_.length}function fp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function gp(e,t,r,n){t.type===tc.MERGE&&null!==t.source.queryId&&(g(Rd(e.viewCache_),"We should always have a full cache before handling merges"),g(Nd(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=sp(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,mp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function mp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Ed(e.eventGenerator_,t,r,i)}let vp;class _p{constructor(){this.views=new Map}}function yp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),gp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(gp(s,r,n,i));return e}}function wp(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=$d(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Qd(n,i):T.EMPTY_NODE,!1);a=Sd(new Id(e,t,!1),new Id(i,s,!1));return new dp(r,a)}}function bp(e,t,n,i,s,r){var a=wp(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Yu(e,t))}),a.isFullyInitialized()&&r.push(Qu(a.getNode())),mp(i,r,a.getNode(),s)}}function Ip(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=kp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(fp(h,r,n)),pp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var c=e.views.get(i);c&&(a=a.concat(fp(c,r,n)),pp(c))&&(e.views.delete(i),c.query._queryParams.loadsAllData()||s.push(c.query))}return o&&!kp(e)&&s.push((g(vp,"Reference.ts has not been loaded"),new vp(t._repo,t._path))),{removed:s,events:a}}function Tp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ep(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Rd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Cp(e,t){var r;return t._queryParams.loadsAllData()?Ap(e):(r=t._queryIdentifier,e.views.get(r))}function Sp(e,t){return null!=Cp(e,t)}function kp(e){return null!=Ap(e)}function Ap(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Np;let Rp=1;class Pp{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Dd(null),this.pendingWriteTree_={visibleWrites:xd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Dp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=Od(s.visibleWrites,a,o)),s.lastWriteId=n,i?Bp(e,new wd(gd(),t,r)):[]}function xp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=Md(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Dd.fromObject(r);return Bp(e,new bd(gd(),t,o))}function Op(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(Kd(e.pendingWriteTree_,t)){let t=new Dd(null);return null!=n.snap?t=t.set(v(),!0):Cc(n.children,e=>{t=t.set(new f(e),!0)}),Bp(e,new _d(n.path,t,r))}return[]}function Mp(e,t,r){return Bp(e,new wd(md(),t,r))}function Lp(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Sp(o,t))){var h=Ip(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),c=r.syncPointTree_.findOnPath(a,(e,t)=>kp(t));if(h&&!c){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var u=a.fold((e,t,n)=>{if(t&&kp(t))return[Ap(t)];{let r=[];return t&&(r=Tp(t)),Cc(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<u.length;++e){var d=u[e],p=d.query,d=zp(r,d);r.listenProvider_.startListening(Qp(p),Kp(r,p),d.hashFn,d.onComplete)}}}!c&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Qp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(Wp(e));r.listenProvider_.stopListening(Qp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=Wp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Fp(e,t,r,n){var i,s,a=Hp(e,n);return null!=a?(i=(a=Gp(a)).path,a=a.queryId,s=lu(i,t),$p(e,i,new wd(vd(a),s,r))):[]}function Up(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=lu(e,i);s=s||Ep(t,r),a=a||kp(t)}),e.syncPointTree_.get(i));o?(a=a||kp(o),s=s||Ep(o,v())):(o=new _p,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ep(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,c=Sp(o,t),u=(c||t._queryParams.loadsAllData()||(h=Wp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),u=Rp++,e.queryToTagMap.set(h,u),e.tagToQueryMap.set(u,h)),zd(e.pendingWriteTree_,i));let d=bp(o,t,r,u,s,l);return c||a||n||(h=Cp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=Kp(t,e),s=zp(t,r),s=t.listenProvider_.startListening(Qp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!kp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&kp(t))return[Ap(t).query];{let r=[];return t&&(r=r.concat(Tp(t).map(e=>e.query))),Cc(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Qp(o),Kp(t,o))}}return s})(e,t,h))),d}function Vp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ep(t,lu(e,n));if(r)return r});return Gd(r,n,i,t,!0)}function qp(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=lu(e,n);i=i||Ep(t,r)}),e.syncPointTree_.get(n));r?i=i||Ep(r,v()):(r=new _p,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new Id(i,!0,!1):null,o=zd(e.pendingWriteTree_,t._path);return Nd(wp(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Bp(e,t){return function a(t,o,l,h){{if(b(t.path))return jp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ep(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=ep(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(yp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,zd(e.pendingWriteTree_,v()))}function jp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ep(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=ep(o,e),i=s.operationForChild(e);i&&(l=l.concat(jp(i,t,r,n)))}),l=t?l.concat(yp(t,s,o,a)):l}function zp(o,e){let l=e.query,h=Kp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Hp(t,n))?(i=(a=Gp(a)).path,a=a.queryId,s=lu(i,r),$p(t,i,new yd(vd(a),s))):[]):(n=o,r=l._path,Bp(n,new yd(md(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Lp(o,l,null,i))}}}function Kp(e,t){var r=Wp(t);return e.queryToTagMap.get(r)}function Wp(e){return e._path.toString()+"$"+e._queryIdentifier}function Hp(e,t){return e.tagToQueryMap.get(t)}function Gp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function $p(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),zd(e.pendingWriteTree_,t));return yp(n,r,i,null)}function Qp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Np,"Reference.ts has not been loaded"),new Np(e._repo,e._path)):e}class Yp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new Yp(t)}node(){return this.node_}}class Jp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=ou(this.path_,e);return new Jp(this.syncTree_,t)}node(){return Vp(this.syncTree_,this.path_)}}let Xp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Zp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?ef(e[".sv"],t,r):"object"==typeof e[".sv"]?tf(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},ef=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},tf=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},rf=function(e,t,r,n){return sf(t,new Jp(r,e),n)},nf=function(e,t,r){return sf(e,new Yp(t),r)};function sf(e,n,i){var t,r,s=e.getPriority().val(),s=Zp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Zp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Pu(t,Wu(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Pu(s))),r.forEachChild(I,(e,t)=>{var r=sf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class af{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function of(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=Se(n.node.children,i)||{children:{},childCount:0};n=new af(i,n,s),r=y(r),i=_(r)}return n}function lf(e){return e.node.value}function hf(e,t){e.node.value=t,pf(e)}function cf(e){return 0<e.node.childCount}function uf(r,n){Cc(r.node.children,(e,t)=>{n(new af(e,r,t))})}function df(e){return new f(null===e.parent?e.name:df(e.parent)+"/"+e.name)}function pf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===lf(e)&&!cf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,pf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,pf(t)))}function ff(e,t,r,n){n&&void 0===t||kf(Ue(e,"value"),t,r)}function gf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Cc(t,(e,t)=>{var r=new f(e);if(kf(n,t,ou(s,r)),".priority"===iu(r)&&!Sf(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=su(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!Tf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(hu);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&uu(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function mf(e,t,r){if(!r||void 0!==t){if(bc(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Sf(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function vf(e,t,r,n){if(!(n&&void 0===r||Tf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function _f(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),Af(e,t,r,n)}function yf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let wf=/[\[\].#$\/\u0000-\u001F\u007F]/,bf=/[\[\].#$\u0000-\u001F\u007F]/,If=10485760,Tf=function(e){return"string"==typeof e&&0!==e.length&&!wf.test(e)},Ef=function(e){return"string"==typeof e&&0!==e.length&&!bf.test(e)},Cf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Ef(e)},Sf=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!bc(e)||e&&"object"==typeof e&&Ce(e,".sv")},kf=function(a,e,t){let o=t instanceof f?new du(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+fu(o));if("function"==typeof e)throw new Error(a+"contains a function "+fu(o)+" with contents = "+e.toString());if(bc(e))throw new Error(a+"contains "+e.toString()+" "+fu(o));if("string"==typeof e&&e.length>If/3&&Be(e)>If)throw new Error(a+"contains a string greater than "+If+" utf8 bytes "+fu(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Cc(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!Tf(e)))throw new Error(a+" contains an invalid key ("+e+") "+fu(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=Be(e),pu(r),kf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=Be(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+fu(o)+" in addition to actual children.")}},Af=function(e,t,r,n){if(!(n&&void 0===r||Ef(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Nf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!Tf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Cf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Rf{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Pf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||cu(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Df(e,t,r){Pf(e,r),Of(e,e=>cu(e,t))}function xf(e,t,r){Pf(e,r),Of(e,e=>uu(e,t)||uu(t,e))}function Of(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),fc&&vc("event: "+a.toString()),Dc(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let Mf="repo_interrupt",Lf=25;class Ff{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Rf,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=cd(),this.transactionQueueTree_=new af,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Uf(a,e,t){if(a.stats_=Kc(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new ld(a.repoInfo_,(e,t,r,n)=>{Bf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>jf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new mu(a.repoInfo_,e,(e,t,r,n)=>{Bf(a,e,t,r,n)},e=>{jf(a,e)},e=>{var r;r=a,Cc(e,(e,t)=>{zf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new fd(a.stats_,a.server_),r=a.repoInfo_.toString(),zc[r]||(zc[r]=e()),zc[r]),a.infoData_=new hd,a.infoSyncTree_=new Pp({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Mp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),zf(a,"connected",!1),a.serverSyncTree_=new Pp({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);xf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Vf(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function qf(e){return Xp({timestamp:Vf(e)})}function Bf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,c,u=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=u;0<(d=i?n?(c=Ae(r,e=>Wu(e)),t=e.serverSyncTree_,s=u,a=c,(c=Hp(t,i))?(o=(c=Gp(c)).path,c=c.queryId,l=lu(o,s),h=Dd.fromObject(a),$p(t,o,new bd(vd(c),l,h))):[]):(o=Wu(r),Fp(e.serverSyncTree_,u,o,i)):n?(c=Ae(r,e=>Wu(e)),s=e.serverSyncTree_,a=u,t=c,l=Dd.fromObject(t),Bp(s,new bd(md(),a,l))):(h=Wu(r),Mp(e.serverSyncTree_,u,h))).length&&(p=eg(e,u)),xf(e.eventQueue_,p,d)}function jf(e,t){if(zf(e,"connected",t),!1===t){var a=e;Yf(a,"onDisconnectEvents");let n=qf(a),i=cd(),s=(dd(a.onDisconnect_,v(),(e,t)=>{var r=rf(e,t,a.serverSyncTree_,n);ud(i,e,r)}),[]);dd(i,v(),(e,t)=>{s=s.concat(Mp(a.serverSyncTree_,e,t));var r=ig(a,e);eg(a,r)}),a.onDisconnect_=cd(),xf(a.eventQueue_,v(),s)}}function zf(e,t,r){var n=new f("/.info/"+t),i=Wu(r),i=(e.infoData_.updateSnapshot(n,i),Mp(e.infoSyncTree_,n,i));xf(e.eventQueue_,n,i)}function Kf(e){return e.nextWriteId_++}function Wf(n,i,e,t,s){Yf(n,"set",{path:i.toString(),value:e,priority:t});var r=qf(n),a=Wu(e,t),o=Vp(n.serverSyncTree_,i),o=nf(a,o,r);let l=Kf(n);r=Dp(n.serverSyncTree_,i,o,l,!0),Pf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||yc("set at "+i+" failed: "+e),Op(n.serverSyncTree_,l,!r));xf(n.eventQueue_,i,r),Jf(0,s,e,t)}),o=ig(n,i);eg(n,o),xf(n.eventQueue_,o,[])}function Hf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{ud(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Jf(0,i,e,t)})}function Gf(r,n,e,i){let s=Wu(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&ud(r.onDisconnect_,n,s),Jf(0,i,e,t)})}function $f(e,t,r){let n;n=".info"===_(t._path)?Lp(e.infoSyncTree_,t,r):Lp(e.serverSyncTree_,t,r),Df(e.eventQueue_,t._path,n)}function Qf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Mf)}function Yf(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),vc(r,...t)}function Jf(e,n,i,s){n&&Dc(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Xf(e,t,r){return Vp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Zf(o,l=o.transactionQueueTree_){if(l||ng(o,l),lf(l)){var h=rg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var c=o;var u=df(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Xf(c,u,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,lu(u,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=u;c.server_.put(s.toString(),i,t=>{Yf(c,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(Op(c.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();ng(c,of(c.transactionQueueTree_,u)),Zf(c,c.transactionQueueTree_),xf(c.eventQueue_,u,r);for(let t=0;t<n.length;t++)Dc(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{yc("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}eg(c,u)}},n)}}else cf(l)&&uf(l,e=>{Zf(o,e)})}function eg(e,t){var r=tg(e,t),n=df(r),r=rg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],c=lu(a,h.path);let e=!1,t;if(g(null!==c,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Lf)e=!0,t="maxretry",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else{var c=Xf(i,h.path,l),u=(h.currentInputSnapshot=c,s[n].update(c.val()));if(void 0!==u){kf("transaction failed: Data returned ",u,h.path);let e=Wu(u);"object"==typeof u&&null!=u&&Ce(u,".priority")||(e=e.updatePriority(c.getPriority()));var u=h.currentWriteId,d=qf(i),c=nf(e,c,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=c,h.currentWriteId=Kf(i),l.splice(l.indexOf(u),1),r=(r=r.concat(Dp(i.serverSyncTree_,h.path,c,h.currentWriteId,h.applyLocally))).concat(Op(i.serverSyncTree_,u,!0))}else e=!0,t="nodata",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0))}xf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}ng(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Dc(o[e]);Zf(i,i.transactionQueueTree_)}return n}function tg(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===lf(n);)n=of(n,r),t=y(t),r=_(t);return n}function rg(e,t){var r=[];return function t(r,e,n){let i=lf(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);uf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function ng(t,r){var n=lf(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,hf(r,0<n.length?n:void 0)}uf(r,e=>{ng(t,e)})}function ig(t,e){var r=df(tg(t,e)),n=of(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{sg(t,e)}),sg(t,n),function t(e,r,n,i){n&&!i&&r(e),uf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{sg(t,e)}),r}function sg(i,s){var a=lf(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(Op(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?hf(s,void 0):a.length=t+1,xf(i.eventQueue_,df(s),e);for(let n=0;n<o.length;n++)Dc(o[n])}}let ag=function(e,t){var r=og(e),n=r.namespace,i=("firebase.com"===r.domain&&_c(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||_c("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||wc(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Vc(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},og=function(n){let i="",s="",a="",o="",l="",h=!0,c="https",u=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(c=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):yc(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===c||"wss"===c,u=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:u,domain:s,subdomain:a,secure:h,scheme:c,pathString:o,namespace:l}},lg="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",hg=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=lg.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=lg.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class cg{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class ug{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class dg{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class pg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Hf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){yf("OnDisconnect.remove",this._path);var e=new Z;return Gf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){yf("OnDisconnect.set",this._path),ff("OnDisconnect.set",e,this._path,!1);var t=new Z;return Gf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){yf("OnDisconnect.setWithPriority",this._path),ff("OnDisconnect.setWithPriority",e,this._path,!1),mf("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Wu(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&ud(i.onDisconnect_,s,r),Jf(0,a,e,t)})}return n.promise}update(e){yf("OnDisconnect.update",this._path),gf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),ke(r)?(vc("onDisconnect().update() called with empty data. Don't do anything."),Jf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Cc(r,(e,t)=>{var r=Wu(t);ud(n.onDisconnect_,ou(i,e),r)}),Jf(0,s,e,t)}),t.promise}}class fg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:iu(this._path)}get ref(){return new _g(this._repo,this._path)}get _queryIdentifier(){var e=od(this._queryParams),e=oc(e);return"{}"===e?"default":e}get _queryObject(){return od(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof fg&&(t=this._repo===e._repo,r=cu(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function gg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function mg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===wu){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==Ic)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Tc)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Sf(t)||null!=r&&!Sf(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Hu||e.getIndex()===$u,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function vg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class _g extends fg{constructor(e,t){super(e,t,new rd,!1)}get parent(){var e=au(this._path);return null===e?null:new _g(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class yg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=Ig(this.ref,e);return new yg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new yg(t,Ig(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function wg(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?Ig(e._root,t):e._root}function bg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ag(t,e._repo.repoInfo_.nodeAdmin),n=(Nf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||_c("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),wg(e,r.path.toString())}function Ig(e,t){return(null===_((e=w(e))._path)?_f:Af)("child","path",t,!1),new _g(e._repo,ou(e._path,t))}function Tg(e,t){e=w(e),yf("set",e._path),ff("set",t,e._path,!1);var r=new Z;return Wf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Eg(e,t){gf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));Yf(a,"update",{path:o.toString(),value:e});let r=!0,n=qf(a),s={};if(Cc(e,(e,t)=>{r=!1,s[e]=rf(ou(o,e),Wu(t),a.serverSyncTree_,n)}),r)vc("update() called with empty data. Don't do anything."),Jf(0,l,"ok",void 0);else{let i=Kf(a);var h=xp(a.serverSyncTree_,o,s,i);Pf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||yc("update at "+o+" failed: "+e),Op(a.serverSyncTree_,i,!r)),n=0<r.length?eg(a,o):o;xf(a.eventQueue_,n,r),Jf(0,l,e,t)}),Cc(e,e=>{var t=ig(a,ou(o,e));eg(a,t)}),xf(a.eventQueue_,o,[])}}return i.promise}function Cg(t){t=w(t);var i,s,a,e=new dg(()=>{}),e=new Sg(e);return i=t._repo,s=t,a=e,(null!=(e=qp(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Wu(e).withIndex(s._queryParams.getIndex());Up(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Mp(i.serverSyncTree_,s._path,r):(t=Kp(i.serverSyncTree_,s),Fp(i.serverSyncTree_,s._path,r,t)),xf(i.eventQueue_,s._path,n),Lp(i.serverSyncTree_,s,a,null,!0),r},e=>(Yf(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new yg(e,new _g(t._repo,t._path),t._queryParams.getIndex()))}class Sg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new cg("value",this,new yg(e.snapshotNode,new _g(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new ug(this,e,t):null}matches(e){return e instanceof Sg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class kg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new ug(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=Ig(new _g(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new cg(e.type,this,new yg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof kg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function Ag(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{$f(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new dg(t,s||void 0);let o="value"===e?new Sg(a):new kg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Up(r.infoSyncTree_,i,t):Up(r.serverSyncTree_,i,t),Df(r.eventQueue_,i._path,e)}return()=>$f(n._repo,n,o)}function Ng(e,t,r,n){return Ag(e,"value",t,r,n)}function Rg(e,t,r,n){Ag(e,"child_added",t,r,n)}function Pg(e,t,r,n){Ag(e,"child_changed",t,r,n)}function Dg(e,t,r,n){Ag(e,"child_moved",t,r,n)}function xg(e,t,r,n){Ag(e,"child_removed",t,r,n)}function Og(e,t,r){let n=null;var i=r?new dg(r):null;"value"===t?n=new Sg(i):t&&(n=new kg(t,i)),$f(e._repo,e,n)}class Mg{}class Lg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){ff("endAt",this._value,e._path,!0);var t=id(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){ff("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wu||r?id(e,t,r):id(e,t,Ic)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){ff("startAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Vg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){ff("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wu||r?nd(e,t,r):nd(e,t,Tc)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class qg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Bg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class jg extends Mg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){gg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Hu(t),t=sd(e._queryParams,t);return mg(t),new fg(e._repo,e._path,t,!0)}}class zg extends Mg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){gg(e,"orderByKey");var t=sd(e._queryParams,wu);return mg(t),new fg(e._repo,e._path,t,!0)}}class Kg extends Mg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){gg(e,"orderByPriority");var t=sd(e._queryParams,I);return mg(t),new fg(e._repo,e._path,t,!0)}}class Wg extends Mg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){gg(e,"orderByValue");var t=sd(e._queryParams,$u);return mg(t),new fg(e._repo,e._path,t,!0)}}class Hg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(ff("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Lg(this._value,this._key)._apply(new Ug(this._value,this._key)._apply(e))}}function Gg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=_g,g(!vp,"__referenceConstructor has already been defined"),vp=t,t=_g,g(!Np,"__referenceConstructor has already been defined"),Np=t;let $g="FIREBASE_DATABASE_EMULATOR_HOST",Qg={},Yg=!1;function Jg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||_c("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),vc("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ag(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[$g]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ag(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var c=i&&l?new Mc(Mc.OWNER):new Oc(e.name,e.options,t),c=(Nf("Invalid Firebase Database URL",a),b(a.path)||_c("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Qg[t.name];var s;return i||(i={},Qg[t.name]=i),(s=i[e.toURLString()])&&_c("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Ff(e,Yg,r,n),i[e.toURLString()]=s})(o,e,c,new xc(e,r)));return new Xg(c,e)}class Xg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Uf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new _g(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Qg[t])&&r[e.key]===e||_c(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Qf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&_c("Cannot call "+e+" on a deleted database.")}}function Zg(){Yc.IS_TRANSPORT_INITIALIZED&&yc("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function em(){Zg(),Hc.forceDisallow()}function tm(){Zg(),Qc.forceDisallow(),Hc.forceAllow()}function rm(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;_c("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&_c('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Mc(Mc.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Mc(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Vc(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function nm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Mf)}function im(e,t){mc(e,t)}let sm={".sv":"timestamp"};class am{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function om(i,e,t){if(i=w(i),yf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=t?.applyLocally??!0;let s=new Z;var n=Ng(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new yg(r,new _g(i._repo,i._path),I),s.resolve(new am(t,n)))},l=n,h=r;Yf(t,"transaction on "+a);var c,n={path:a,update:e,onComplete:o,status:null,order:dc(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Xf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(c=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{kf("transaction failed: Data returned ",c,n.path),n.status=0;var u=of(t.transactionQueueTree_,a),d=lf(u)||[];d.push(n),hf(u,d);let e;"object"==typeof c&&null!==c&&Ce(c,".priority")?(e=Se(c,".priority"),g(Sf(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(u=Vp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=u.getPriority().val());d=qf(t),u=Wu(c,e),c=nf(u,r,d),r=(n.currentOutputSnapshotRaw=u,n.currentOutputSnapshotResolved=c,n.currentWriteId=Kf(t),Dp(t.serverSyncTree_,a,c,n.currentWriteId,n.applyLocally));xf(t.eventQueue_,a,r),Zf(t,t.transactionQueueTree_)}return s.promise}mu.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},mu.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Jh(qt),Dt(new c("database",(e,{instanceIdentifier:t})=>Jg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),u($h,Qh,gD),u($h,Qh,"esm2020");function lm(e){var t="FIREBASE WARNING: "+e;hm.warn(t)}let hm=new tt("@firebase/database-compat");class cm{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class um{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class dm{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),Af("DataSnapshot.child","path",e,!1),new dm(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),Af("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new dm(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new fm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class pm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let i=pm.getCancelAndContextArgs_("Query.on",t,n);var s=(e,t)=>{r.call(i.context,new dm(this.database,e),t)},a=(s.userCallback=r,s.context=i.context,i.cancel?.bind(i.context));switch(e){case"value":return Ng(this._delegate,s,a),r;case"child_added":return Rg(this._delegate,s,a),r;case"child_removed":return xg(this._delegate,s,a),r;case"child_changed":return Pg(this._delegate,s,a),r;case"child_moved":return Dg(this._delegate,s,a),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,Og(this._delegate,e,n)):Og(this._delegate,e)}get(){return Cg(this._delegate).then(e=>new dm(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=pm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new dm(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Rg(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":xg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Dg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new qg(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Bg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return Af("orderByChild","path",e,!1),new jg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new zg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Kg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Wg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,([e=null,t]=[e,t],vf("startAt","key",t,!0),new Ug(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("startAfter","key",t,!0),new Vg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endAt","key",t,!0),new Lg(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endBefore","key",t,!0),new Fg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("equalTo","key",t,!0),new Hg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof pm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new fm(this.database,new _g(this._delegate._repo,this._delegate._path))}}class fm extends pm{constructor(e,t){super(e,new fg(t._repo,t._path,new rd,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new fm(this.database,Ig(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new fm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new fm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=Tg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}yf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Eg(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(yf("setWithPriority",e._path),ff("setWithPriority",t,e._path,!1),mf("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return Wf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,yf("remove",e._path);var e,r=Tg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=om(this._delegate,e,{applyLocally:r}).then(e=>new um(e.committed,new dm(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),yf("setPriority",r._path),mf("setPriority",e,!1),n=new Z,Wf(r._repo,ou(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),yf("push",e._path),ff("push",t,e._path,!0);var r=Vf(e._repo),r=hg(r),n=Ig(e,r);let i=Ig(e,r),s;return s=null!=t?Tg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new fm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new fm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return yf("Reference.onDisconnect",this._delegate._path),new cm(new pg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class gm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:em,forceLongPolling:tm}}useEmulator(e,t,r={}){rm(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof fm?(t=bg(this._delegate,e.toString()),new fm(this,t)):(t=wg(this._delegate,e),new fm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=bg(this._delegate,e);return new fm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Qf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),nm(this._delegate)}}gm.ServerValue={TIMESTAMP:sm,increment:e=>({".sv":{increment:e}})};cr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Jh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new c("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new c("app-check-internal",()=>i,"PRIVATE")),{instance:new gm(Jg(e,l,h,t,a),e),namespace:s}}});let mm=gm.ServerValue;(t=hr).INTERNAL.registerComponent(new c("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new gm(n,r)},"PUBLIC").setServiceProps({Reference:fm,Query:pm,Database:gm,DataSnapshot:dm,enableLogging:im,INTERNAL:cr,ServerValue:mm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.1.0-canary.bc2b2cdea");var vm,_m,ym,wm,bm,Im,Tm,Em,Cm,Sm,km,Am,Nm="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Rm=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=t+(s^r&(i^s))+n[0]+3614090360&4294967295;a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+(a<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function l(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.v=function(e,t){var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.C;let i=this.h,s=0;for(;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.A=function(){var t=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var r=1;r<t.length-8;++r)t[r]=0;for(var r=8*this.o,n=t.length-8;n<t.length;++n)t[n]=255&r,r/=256;for(this.v(t),t=Array(16),n=r=0;n<4;++n)for(let e=0;e<32;e+=8)t[r++]=this.g[n]>>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new l([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new l([0|e],e<0?-1:0);var t,r,n}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(h(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new l(t,0)}var c=o(0),u=o(1),d=o(16777216);function p(t){if(0==t.h){for(let e=0;e<t.g.length;e++)if(0!=t.g[e])return;return 1}}function f(e){return-1==e.h}function g(e){var t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new l(r,~e.h).add(u)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=u,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);f(a)||0<a.l(e);)a=(s=h(r-=n)).j(t);p(s)&&(s=u),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){var t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new l(r,e.h)}function b(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new l(i,e.h)}(e=l.prototype).m=function(){if(f(this))return-g(this).m();let e=0,t=1;for(let n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*t,t*=4294967296}return e},e.toString=function(t){if((t=t||10)<2||36<t)throw Error("radix out of range: "+t);if(p(this))return"0";if(f(this))return"-"+g(this).toString(t);var r=h(Math.pow(t,6)),n=this;let i="";for(;;){var s=y(n,r).g;let e=((0<(n=m(n,s.j(r))).g.length?n.g[0]:n.h)>>>0).toString(t);if(p(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){var t=Math.max(this.g.length,e.g.length),r=[];let n=0;for(let a=0;a<=t;a++){var i=n+(65535&this.i(a))+(65535&e.i(a)),s=(i>>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new l(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(p(this)||p(t))return c;if(f(this))return f(t)?g(this).j(g(t)):g(g(this).j(t));if(f(t))return g(this.j(g(t)));if(this.l(d)<0&&t.l(d)<0)return h(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let e=0;e<t.g.length;e++){var i=this.i(n)>>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,v(r,2*n+2*e),r[2*n+2*e+1]+=i*o,v(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,v(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,v(r,2*n+2*e+2)}for(t=0;t<e;t++)r[t]=r[2*t+1]<<16|r[2*t];for(t=e;t<2*e;t++)r[t]=0;return new l(r,0)},e.B=function(e){return y(this,e).h},e.and=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new l(r,this.h&e.h)},e.or=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new l(r,this.h|e.h)},e.xor=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new l(r,this.h^e.h)},r.prototype.digest=r.prototype.A,r.prototype.reset=r.prototype.u,r.prototype.update=r.prototype.v,_m=r,l.prototype.multiply=l.prototype.j,l.prototype.modulo=l.prototype.B,l.prototype.compare=l.prototype.l,l.prototype.toNumber=l.prototype.m,l.prototype.getBits=l.prototype.i,l.fromNumber=h,l.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');var n=h(Math.pow(r,8));let i=c;for(let o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),a=parseInt(t.substring(o,o+s),r);i=(s<8?(s=h(Math.pow(r,s)),i.j(s)):i=i.j(n)).add(h(a))}return i},vm=l}).apply(void 0!==Nm?Nm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,L=Object.defineProperty;var F=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Rm&&Rm];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);function U(e,t){if(t)e:{var r=F;e=e.split(".");for(var n=0;n<e.length-1;n++){var i=e[n];if(!(i in r))break e;r=r[i]}(t=t(n=r[e=e[e.length-1]]))!=n&&null!=t&&L(r,e,{configurable:!0,writable:!0,value:t})}}U("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),U("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),U("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var V=V||{},N=this||self;function d(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function q(e,t,r){return e.call.apply(e.bind,arguments)}function v(e,t,r){return(v=q).apply(null,arguments)}function B(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function t(e,s){function t(){}t.prototype=s.prototype,e.Z=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Ob=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}var j="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function z(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function K(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if("array"==(n="object"!=(n=typeof r)?n:r?Array.isArray(r)?"array":n:"null")||"object"==n&&"number"==typeof r.length){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}var W=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new H,e=>e.reset());class H{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let r,n=!1,G=new class{constructor(){this.h=this.g=null}add(e,t){var r=W.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},$=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(Q)}};function Q(){for(var e;e=(()=>{let e=G,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{N.setTimeout(()=>{throw e},0)})(e)}var t=W;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var Y=(()=>{if(!N.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};N.addEventListener("test",r,t),N.removeEventListener("test",r,t)}catch(e){}return e})();function R(e){return/^[\s\xa0]*$/.test(e)}function s(e,t){o.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}t(s,o),s.prototype.init=function(e,t){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,(this.i=e).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var l="closure_listenable_"+(1e6*Math.random()|0),J=0;function X(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++J,this.da=this.fa=!1}function Z(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function ee(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function te(e){var t,r={};for(t in e)r[t]=e[t];return r}let re="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ne(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<re.length;e++)r=re[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}function ie(e){this.src=e,this.g={},this.h=0}function se(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(Z(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ae(e,t,r,n){for(let s=0;s<e.length;++s){var i=e[s];if(!i.da&&i.listener==t&&i.capture==!!r&&i.ha==n)return s}return-1}ie.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ae(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new X(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var oe="closure_lm_"+(1e6*Math.random()|0),le={};function he(t,r,n,i,s){if(i&&i.once)return function t(r,n,i,s,a){if(Array.isArray(n)){for(let e=0;e<n.length;e++)t(r,n[e],i,s,a);return null}i=me(i);return r&&r[l]?r.K(n,i,d(s)?!!s.capture:!!s,a):ce(r,n,i,!0,s,a)}(t,r,n,i,s);if(Array.isArray(r)){for(let e=0;e<r.length;e++)he(t,r[e],n,i,s);return null}return n=me(n),t&&t[l]?t.J(r,n,d(i)?!!i.capture:!!i,s):ce(t,r,n,!1,i,s)}function ce(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=d(i)?!!i.capture:!!i;let o=fe(e);if(o||(e[oe]=o=new ie(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=pe;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=Y?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(de(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ue(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[l]?se(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(de(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=fe(t))?(se(r,e),0==r.h&&(r.src=null,t[oe]=null)):Z(e)))}function de(e){return e in le?le[e]:le[e]="on"+e}function pe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ue(e),r.call(n,t))}function fe(e){return(e=e[oe])instanceof ie?e:null}var ge="__closure_events_fn_"+(1e9*Math.random()>>>0);function me(t){return"function"==typeof t?t:(t[ge]||(t[ge]=function(e){return t.handleEvent(e)}),t[ge])}function a(){i.call(this),this.i=new ie(this),(this.M=this).G=null}function h(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,ne(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=ve(s=t.g=r[a],i,!0,t)&&n;if(n=ve(s=t.g=e,i,!0,t)&&n,n=ve(s,i,!1,t)&&n,r)for(a=0;a<r.length;a++)n=ve(s=t.g=r[a],i,!1,t)&&n}function ve(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let l=0;l<t.length;++l){var s,a,o=t[l];o&&!o.da&&o.capture==r&&(s=o.listener,a=o.ha||o.src,o.fa&&se(e.i,o),i=!1!==s.call(a,n)&&i)}return i&&!n.defaultPrevented}function _e(e){e.g=((e,t)=>{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=v(e.handleEvent,e)}return 2147483647<Number(t)?-1:N.setTimeout(e,t||0)})(()=>{e.g=null,e.i&&(e.i=!1,_e(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[l]=!0,a.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=d(i)?!!i.capture:!!i,n=me(n),t&&t[l]?(t=t.i,(a=String(r).toString())in t.g&&-1<(n=ae(r=t.g[a],n,i,s))&&(Z(r[n]),Array.prototype.splice.call(r,n,1),0==r.length)&&(delete t.g[a],t.h--)):(t=t&&fe(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ae(r,n,i,s):t)?r[t]:null)&&ue(n)}(this,e,t,r,n)},a.prototype.N=function(){if(a.Z.N.call(this),this.i){var t,r=this.i;for(t in r.g){var n=r.g[t];for(let e=0;e<n.length;e++)Z(n[e]);delete r.g[t],r.h--}}this.G=null},a.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},a.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class ye extends i{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:_e(this)}N(){super.N(),this.g&&(N.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function c(e){i.call(this),this.h=e,this.g={}}t(c,i);var we=[];function be(e){ee(e.g,function(e,t){this.g.hasOwnProperty(t)&&ue(e)},e),e.g={}}c.prototype.N=function(){c.Z.N.call(this),be(this)},c.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ie=N.JSON.stringify,Te=N.JSON.parse,Ee=class{stringify(e){return N.JSON.stringify(e,void 0)}parse(e){return N.JSON.parse(e,void 0)}};function Ce(){}function Se(){}var ke={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function Ae(){o.call(this,"d")}function Ne(){o.call(this,"c")}t(Ae,o),t(Ne,o);var u={},Re=null;function Pe(){return Re=Re||new a}function De(e){o.call(this,u.Ia,e)}function xe(){var e=Pe();h(e,new De(e))}function Oe(e,t){o.call(this,u.STAT_EVENT,e),this.stat=t}function P(e){var t=Pe();h(t,new Oe(t,e))}function Me(e,t){o.call(this,u.Ja,e),this.size=t}function _(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return N.setTimeout(function(){e()},t)}function p(){this.g=!0}function D(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(let e=1;e<i.length;e++)i[e]=""}}}return Ie(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}u.Ia="serverreachability",t(De,o),u.STAT_EVENT="statevent",t(Oe,o),u.Ja="timingevent",t(Me,o),p.prototype.ua=function(){this.g=!1},p.prototype.info=function(){};var Le={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function Ue(){}function f(e){return encodeURIComponent(String(e))}function g(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new c(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new Ve}function Ve(){this.i=null,this.g="",this.h=!1}t(Ue,Ce),Ue.prototype.g=function(){return new XMLHttpRequest};var qe=new Ue,Be={},je={};function ze(e,t,r){e.M=1,e.A=ot(y(t)),e.u=r,e.R=!0,Ke(e,null)}function Ke(e,t){e.F=Date.now(),He(e),e.B=y(e.A);var a,o,l,h,c,u,r=e.B,n=e.S,i=(Array.isArray(n)||(n=[String(n)]),wt(r.i,"t",n),e.C=0,r=e.j.L,e.h=new Ve,e.g=tr(e.j,r?t:null,!e.u),0<e.P&&(e.O=new ye(v(e.Y,e,e.g),e.P)),t=e.V,r=e.g,n=e.ba,"readystatechange");Array.isArray(i)||(i&&(we[0]=i.toString()),i=we);for(let d=0;d<i.length;d++){var s=he(r,i[d],n||t.handleEvent,!1,t.h||t);if(!s)break;t.g[s.key]=s}t=e.J?te(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),xe(),a=e.i,o=e.v,l=e.B,h=e.l,c=e.S,u=e.u,a.info(function(){if(a.g)if(u){var t="",r=u.split("&");for(let e=0;e<r.length;e++){var n,i,s=r[e].split("=");1<s.length&&(n=s[0],s=s[1],t=2<=(i=n.split("_")).length&&"type"==i[1]?t+(n+"=")+s+"&":t+(n+"=redacted&"))}}else t=null;else t=u;return"XMLHTTP REQ ("+h+") [attempt "+c+"]: "+o+"\n"+l+"\n"+t})}function We(e){return e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function He(e){e.T=Date.now()+e.H,Ge(e,e.H)}function Ge(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=_(v(e.aa,e),t)}function $e(e){e.D&&(N.clearTimeout(e.D),e.D=null)}function x(e){0==e.j.I||e.K||Jt(e.j,e)}function O(e){$e(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,be(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function Qe(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||et(r.h,e)))if(!e.L&&et(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g){if(!(r.g.F+3e3<e.F))break e;Yt(r),qt(r)}Gt(r),P(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=_(v(r.Va,r),6e3));Ze(r.h)<=1&&r.ta&&(r.ta=void 0)}else S(r,11)}else if(!e.L&&r.g!=e||Yt(r),!R(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,c,u,d,p,f,g=i[t],m=g[0];m<=r.K||(r.K=m,g=g[1],2==r.I?"c"==g[0]?(r.M=g[1],r.ba=g[2],null!=(s=g[3])&&(r.ka=s,r.j.info("VER="+r.ka)),null!=(a=g[4])&&(r.za=a,r.j.info("SVER="+r.za)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.O=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(c=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(c.j=c.l,c.g=new Set,c.h&&(tt(c,c.h),c.h=null)),n.G)&&(u=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.wa=u,b(n.J,n.G,u)),r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),d=e,(n=r).na=er(n,n.L?n.ba:null,n.W),d.L?(rt(n.h,d),p=d,(f=n.O)&&(p.H=f),p.D&&($e(p),He(p)),n.g=d):Ht(n),0<r.i.length&&jt(r)):"stop"!=g[0]&&"close"!=g[0]||S(r,7):3==r.I&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?S(r,7):Vt(r):"noop"!=g[0]&&r.l&&r.l.qa(g),r.A=0))}xe()}catch(e){}}g.prototype.ba=function(e){e=e.target;var t=this.O;t&&3==M(e)?t.j():this.Y(e)},g.prototype.Y=function(e){try{if(e==this.g)e:{var t=M(this.g),r=this.g.ya();this.g.ca();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.la()||Lt(this.g)))){this.K||4!=t||7==r||xe(),$e(this);var n,i,s=this.g.ca(),a=(this.X=s,(e=>{if(!We(e))return e.g.la();var t=Lt(e.g);if(""===t)return"";let r="",n=t.length,i=4==M(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return O(e),x(e),"";e.h.i=new N.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g})(this));if(this.o=200==s,I=this.i,T=this.v,E=this.B,C=this.l,S=this.S,k=t,A=s,I.info(function(){return"XMLHTTP RESP ("+C+") [ attempt "+S+"]: "+T+"\n"+E+"\n"+k+" "+A}),this.o){if(this.U&&!this.L){t:{if(this.g){var o,l=this.g;if((o=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!R(o)){var h=o;break t}}h=null}if(!(e=h)){this.o=!1,this.m=3,P(12),O(this),x(this);break e}D(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,Qe(this,e)}if(this.R){for(e=!0;!this.K&&this.C<a.length;){if(y=a,b=w=void 0,w=(_=this).C,(n=-1==(b=y.indexOf("\n",w))?je:(w=Number(y.substring(w,b)),isNaN(w)?Be:(b+=1)+w>y.length?je:(y=y.slice(b,b+w),_.C=b+w,y)))==je){4==t&&(this.m=4,P(14),e=!1),D(this.i,this.l,null,"[Incomplete Response]");break}if(n==Be){this.m=4,P(15),D(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}D(this.i,this.l,n,null),Qe(this,n)}We(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,P(16),e=!1),this.o=this.o&&e,e?0<a.length&&!this.W&&(this.W=!0,(i=this.j).g==this)&&i.aa&&!i.P&&(i.j.info("Great, no buffering proxy detected. Bytes received: "+a.length),$t(i),i.P=!0,P(11)):(D(this.i,this.l,a,"[Invalid Chunked Response]"),O(this),x(this))}else D(this.i,this.l,a,null),Qe(this,a);4==t&&O(this),this.o&&!this.K&&(4==t?Jt(this.j,this):(this.o=!1,He(this)))}else{{var c=this.g;var u,d,p,f={};c=(c.g&&2<=M(c)&&c.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<c.length;e++)R(c[e])||(u=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(c[e]),d=u[0],"string"==typeof(u=u[1])&&(u=u.trim(),p=f[d]||[],(f[d]=p).push(u)));var g,m=f,v=function(e){return e.join(", ")};for(g in m)v.call(void 0,m[g],g,m)}400==s&&0<a.indexOf("Unknown SID")?(this.m=3,P(12)):(this.m=0,P(13)),O(this),x(this)}}}}catch(e){}var _,y,w,b,I,T,E,C,S,k,A},g.prototype.cancel=function(){this.K=!0,O(this)},g.prototype.aa=function(){this.D=null;var e,t,r=Date.now();0<=r-this.T?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(xe(),P(17)),O(this),this.m=2,x(this)):Ge(this,this.T-r)};var Ye=class{constructor(e,t){this.g=e,this.map=t}};function Je(e){this.l=e||10,e=N.PerformanceNavigationTiming?0<(e=N.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(N.chrome&&N.chrome.loadTimes&&N.chrome.loadTimes()&&N.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Xe(e){return e.h||e.g&&e.g.size>=e.j}function Ze(e){return e.h?1:e.g?e.g.size:0}function et(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function tt(e,t){e.g?e.g.add(t):e.h=t}function rt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Je.prototype.cancel=function(){if(this.i=nt(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var it=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function m(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof m?(this.l=e.l,w(this,e.j),this.o=e.o,this.g=e.g,st(this,e.u),this.h=e.h,at(this,bt(e.i)),this.m=e.m):e&&(t=String(e).match(it))?(this.l=!1,w(this,t[1]||"",!0),this.o=lt(t[2]||""),this.g=lt(t[3]||"",!0),st(this,t[4]),this.h=lt(t[5]||"",!0),at(this,t[6]||"",!0),this.m=lt(t[7]||"")):(this.l=!1,this.i=new mt(null,this.l))}function y(e){return new m(e)}function w(e,t,r){e.j=r?lt(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function st(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof mt?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(I(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(vt(this,t),wt(this,r,e))},n)),n.j=i):(r||(t=ht(t,ft)),e.i=new mt(t,e.l))}function b(e,t,r){e.i.set(t,r)}function ot(e){return b(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function lt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function ht(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ct),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ct(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}m.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(ht(t,ut,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(ht(t,ut,!0),"@"),e.push(f(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.u))||e.push(":",String(r)),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(ht(r,"/"==r.charAt(0)?pt:dt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",ht(r,gt)),e.join("")},m.prototype.resolve=function(e){var t=y(this);let r=!!e.j;r?w(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)st(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e<i.length;){var a=i[e++];"."==a?n&&e==i.length&&s.push(""):".."==a?((1<s.length||1==s.length&&""!=s[0])&&s.pop(),n&&e==i.length&&s.push("")):(s.push(a),n=!0)}n=s.join("/")}else n=i;return r?t.h=n:r=""!==e.i.toString(),r?at(t,bt(e.i)):r=!!e.m,r&&(t.m=e.m),t};var ut=/[#\/\?@]/g,dt=/[#\?:]/g,pt=/[#\?]/g,ft=/[#\?@]/g,gt=/#/g;function mt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function I(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var n=r.i,i=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(n){n=n.split("&");for(let r=0;r<n.length;r++){var s=n[r].indexOf("=");let e,t=null;0<=s?(e=n[r].substring(0,s),t=n[r].substring(s+1)):e=n[r],i(e,t?decodeURIComponent(t.replace(/\+/g," ")):"")}}}}function vt(e,t){I(e),t=T(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function _t(e,t){return I(e),t=T(e,t),e.g.has(t)}function yt(e,t){I(e);let r=[];if("string"==typeof t)_t(e,t)&&(r=r.concat(e.g.get(T(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function wt(e,t,r){vt(e,t),0<r.length&&(e.i=null,e.g.set(T(e,t),z(r)),e.h+=r.length)}function bt(e){var t=new mt;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function T(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function E(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function It(){this.g=new Ee}function Tt(e){this.i=e.Sb||null,this.h=e.ab||!1}function Et(e,t){a.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function Ct(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function St(e){e.readyState=4,e.l=null,e.j=null,e.B=null,kt(e)}function kt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function At(e){let r="";return ee(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Nt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=At(r),"string"==typeof e?null!=r&&f(r):b(e,t,r))}function C(e){a.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(e=mt.prototype).add=function(e,t){I(this),this.i=null,e=T(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){I(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.set=function(e,t){return I(this),this.i=null,_t(this,e=T(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=yt(this,e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";var r=[],e=Array.from(this.g.keys());for(let s=0;s<e.length;s++){var n=f(i=e[s]),i=yt(this,i);for(let t=0;t<i.length;t++){let e=n;""!==i[t]&&(e+="="+f(i[t])),r.push(e)}}return this.i=r.join("&")},t(Tt,Ce),Tt.prototype.g=function(){return new Et(this.i,this.h)},t(Et,a),(e=Et.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,kt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;var t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||N).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,St(this)),this.readyState=0},e.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,kt(this)),this.g)&&(this.readyState=3,kt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==N.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;Ct(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?St:kt)(this),3==this.readyState)&&Ct(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,St(this))},e.Na=function(e){this.g&&(this.response=e,St(this))},e.ga=function(){this.g&&St(this)},e.setRequestHeader=function(e,t){this.A.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Et.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(C,a);var Rt=/^https?$/i,Pt=["POST","PUT"];function Dt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,xt(e),Mt(e)}function xt(e){e.A||(e.A=!0,h(e,"complete"),h(e,"error"))}function Ot(t){if(t.h&&void 0!==V)if(t.v&&4==M(t))setTimeout(t.Ca.bind(t),0);else if(h(t,"readystatechange"),4==M(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(it)[1]||null;!e&&N.self&&N.self.location&&(e=N.self.location.protocol.slice(0,-1)),r=!Rt.test(e?e.toLowerCase():"")}e=r}if(e)h(t,"complete"),h(t,"success");else{t.o=6;try{var s=2<M(t)?t.g.statusText:""}catch(e){s=""}t.l=s+" ["+t.ca()+"]",xt(t)}}finally{Mt(t)}}}function Mt(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);var r=e.g;e.g=null,t||h(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function M(e){return e.g?e.g.readyState:0}function Lt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Ft(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Ut(e){this.za=0,this.i=[],this.j=new p,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Ft("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Ft("baseRetryDelayMs",5e3,e),this.Za=Ft("retryDelaySeedMs",1e4,e),this.Ta=Ft("forwardChannelMaxRetries",2,e),this.va=Ft("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new Je(e&&e.concurrentRequestLimit),this.Ba=new It,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function Vt(e){if(Bt(e),3==e.I){var t=e.V++,r=y(e.J);if(b(r,"SID",e.M),b(r,"RID",t),b(r,"TYPE","terminate"),Kt(e,r),(t=new g(e,e.j,t)).M=2,t.A=ot(y(r)),r=!1,N.navigator&&N.navigator.sendBeacon)try{r=N.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&N.Image&&((new Image).src=t.A,r=!0),r||(t.g=tr(t.j,null),t.g.ea(t.A)),t.F=Date.now(),He(t)}Zt(e)}function qt(e){e.g&&($t(e),e.g.cancel(),e.g=null)}function Bt(e){qt(e),e.v&&(N.clearTimeout(e.v),e.v=null),Yt(e),e.h.cancel(),e.m&&("number"==typeof e.m&&N.clearTimeout(e.m),e.m=null)}function jt(e){var t;Xe(e.h)||e.m||(e.m=!0,t=e.Ea,r||$(),n||(r(),n=!0),G.add(t,e),e.D=0)}function zt(e,t){var r=t?t.l:e.V++,n=y(e.J);b(n,"SID",e.M),b(n,"RID",r),b(n,"AID",e.K),Kt(e,n),e.u&&e.o&&Nt(n,e.u,e.o),r=new g(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=Wt(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),tt(e.h,r),ze(r,n,t)}function Kt(e,r){e.H&&ee(e.H,function(e,t){b(r,t,e)}),e.l&&ee({},function(e,t){b(r,t,e)})}function Wt(e,t,i){i=Math.min(e.i.length,i);var s=e.l?v(e.l.Ka,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{o="req"+o+"_"||"";try{var h,c,u=l instanceof Map?l:Object.entries(l);for([h,c]of u){let e=c;d(c)&&(e=Ie(c)),a.push(o+h+"="+encodeURIComponent(e))}}catch(e){throw a.push(o+"type="+encodeURIComponent("_badmap")),e}}catch(e){s&&s(l)}}if(e){u=a.join("&");break e}}u=void 0}return e=e.i.splice(0,i),t.G=e,u}function Ht(e){var t;e.g||e.v||(e.Y=1,t=e.Da,r||$(),n||(r(),n=!0),G.add(t,e),e.A=0)}function Gt(e){return!(e.g||e.v||3<=e.A)&&(e.Y++,e.v=_(v(e.Da,e),Xt(e,e.A)),e.A++,1)}function $t(e){null!=e.B&&(N.clearTimeout(e.B),e.B=null)}function Qt(e){e.g=new g(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=y(e.na),r=(b(t,"RID","rpc"),b(t,"SID",e.M),b(t,"AID",e.K),b(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&b(t,"TO",e.ia),b(t,"TYPE","xmlhttp"),Kt(e,t),e.u&&e.o&&Nt(t,e.u,e.o),e.O&&(e.g.H=e.O),e.g);e=e.ba,r.M=1,r.A=ot(y(t)),r.u=null,r.R=!0,Ke(r,e)}function Yt(e){null!=e.C&&(N.clearTimeout(e.C),e.C=null)}function Jt(e,t){var r,n,i,s=null;if(e.g==t){Yt(e),$t(e),e.g=null;var a=2}else{if(!et(e.h,t))return;s=t.G,rt(e.h,t),a=1}if(0!=e.I)if(t.o)(1==a?(s=t.u?t.u.length:0,t=Date.now()-t.F,r=e.D,h(a=Pe(),new Me(a,s)),jt):Ht)(e);else if(3==(r=t.m)||0==r&&0<t.X||(1!=a||(i=t,Ze((n=e).h)>=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=_(v(n.Ea,n,i),Xt(n,n.D)),n.D++,0)))&&(2!=a||!Gt(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:S(e,5);break;case 4:S(e,10);break;case 3:S(e,6);break;default:S(e,2)}}function Xt(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function S(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=v(e.bb,e),n=!(i=e.Ua),i=new m(i||"//www.google.com/images/cleardot.gif"),N.location&&"http"==N.location.protocol||w(i,"https"),ot(i),(n?(t,r)=>{var n=new p;if(N.Image){let e=new Image;e.onload=B(E,n,"TestLoadImage: loaded",!0,r,e),e.onerror=B(E,n,"TestLoadImage: error",!1,r,e),e.onabort=B(E,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=B(E,n,"TestLoadImage: timeout",!1,r,e),N.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new p,n=new AbortController,i=setTimeout(()=>{n.abort(),E(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?E(r,0,!0,t):E(r,0,!1,t)}).catch(()=>{clearTimeout(i),E(r,0,!1,t)})})(i.toString(),r)):P(2),e.I=0,e.l&&e.l.pa(t),Zt(e),Bt(e)}function Zt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=nt(e.h)).length&&0==e.i.length||(K(e.ja,t),K(e.ja,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.oa())}function er(e,t,r){var n,i,s=r instanceof m?y(r):new m(r);return""!=s.g?(t&&(s.g=t+"."+s.g),st(s,s.u)):(s=(n=N.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new m(null),s&&w(i,s),t&&(i.g=t),n&&st(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&b(s,r,t),b(s,"VER",e.ka),Kt(e,s),s}function tr(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new C(new Tt({ab:r})):new C(e.ma)).Fa(e.L),t}function rr(){}function nr(){}function k(e,t){a.call(this),this.g=new Ut(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!R(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!R(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new A(this)}function ir(e){Ae.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function sr(){Ne.call(this),this.status=1}function A(e){this.g=e}(e=C.prototype).Fa=function(e){this.H=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=(this.L||qe).g(),this.g.onreadystatechange=j(v(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Dt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=N.FormData&&e instanceof N.FormData,0<=Array.prototype.indexOf.call(Pt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(e),this.v=!1}catch(e){Dt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,h(this,"complete"),h(this,"abort"),Mt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Mt(this,!0)),C.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Ot(this):this.Xa())},e.Xa=function(){Ot(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2<M(this)?this.g.status:-1}catch(e){return-1}},e.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.La=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Te(t)},e.ya=function(){return this.o},e.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Ut.prototype).ka=8,e.I=1,e.connect=function(e,t,r,n){P(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=er(this,null,this.W),jt(this)},e.Ea=function(t){if(this.m)if(this.m=null,1==this.I){if(!t){this.V=Math.floor(1e5*Math.random()),t=this.V++;var r=new g(this,this.j,t);let e=this.o;if(this.U&&(e?ne(e=te(e),this.U):e=this.U),null!==this.u||this.R||(r.J=e,e=null),this.S)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=Wt(this,r,n),b(i=y(this.J),"RID",t),b(i,"CVER",22),this.G&&b(i,"X-HTTP-Session-Id",this.G),Kt(this,i),e&&(this.R?n="headers="+f(At(e))+"&"+n:this.u&&Nt(i,this.u,e)),tt(this.h,r),this.Ra&&b(i,"TYPE","init"),this.S?(b(i,"$req",n),b(i,"SID","null"),r.U=!0,ze(r,i,null)):ze(r,i,n),this.I=2}}else 3==this.I&&(t?zt(this,t):0==this.i.length||Xe(this.h)||zt(this))},e.Da=function(){var e;this.v=null,Qt(this),this.aa&&!(this.P||null==this.g||this.T<=0)&&(e=4*this.T,this.j.info("BP detection timer enabled: "+e),this.B=_(v(this.Wa,this),e))},e.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,P(10),qt(this),Qt(this))},e.Va=function(){null!=this.C&&(this.C=null,qt(this),Gt(this),P(19))},e.bb=function(e){e?(this.j.info("Successfully pinged google.com"),P(2)):(this.j.info("Failed to ping google.com"),P(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=rr.prototype).ra=function(){},e.qa=function(){},e.pa=function(){},e.oa=function(){},e.isActive=function(){return!0},e.Ka=function(){},nr.prototype.g=function(e,t){return new k(e,t)},t(k,a),k.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},k.prototype.close=function(){Vt(this.g)},k.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=Ie(e),e=t),r.i.push(new Ye(r.Ya++,e)),3==r.I&&jt(r)},k.prototype.N=function(){this.g.l=null,delete this.j,Vt(this.g),delete this.g,k.Z.N.call(this)},t(ir,Ae),t(sr,Ne),t(A,rr),A.prototype.ra=function(){h(this.g,"a")},A.prototype.qa=function(e){h(this.g,new ir(e))},A.prototype.pa=function(e){h(this.g,new sr)},A.prototype.oa=function(){h(this.g,"b")},nr.prototype.createWebChannel=nr.prototype.g,k.prototype.send=k.prototype.o,k.prototype.open=k.prototype.m,Sm=function(){return new nr},Cm=Pe,Em=u,Tm={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},Le.NO_ERROR=0,Le.TIMEOUT=8,Le.HTTP_ERROR=6,Im=Le,Fe.COMPLETE="complete",bm=Fe,(Se.EventType=ke).OPEN="a",ke.CLOSE="b",ke.ERROR="c",ke.MESSAGE="d",a.prototype.listen=a.prototype.J,wm=Se,C.prototype.listenOnce=C.prototype.K,C.prototype.getLastError=C.prototype.Ha,C.prototype.getLastErrorCode=C.prototype.ya,C.prototype.getStatus=C.prototype.ca,C.prototype.getResponseJson=C.prototype.La,C.prototype.getResponseText=C.prototype.la,C.prototype.send=C.prototype.ea,C.prototype.setWithCredentials=C.prototype.Fa,ym=C}).apply(void 0!==Rm?Rm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Pm="@firebase/firestore",Dm="4.9.2-canary.bc2b2cdea";class xm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}xm.UNAUTHENTICATED=new xm(null),xm.GOOGLE_CREDENTIALS=new xm("google-credentials-uid"),xm.FIRST_PARTY=new xm("first-party-uid"),xm.MOCK_USER=new xm("mock-user");let Om="12.6.0-canary.bc2b2cdea",Mm=new tt("@firebase/firestore");function Lm(){return Mm.logLevel}function E(e,...t){var r;Mm.logLevel<=d.DEBUG&&(r=t.map(Vm),Mm.debug(`Firestore (${Om}): `+e,...r))}function Fm(e,...t){var r;Mm.logLevel<=d.ERROR&&(r=t.map(Vm),Mm.error(`Firestore (${Om}): `+e,...r))}function Um(e,...t){var r;Mm.logLevel<=d.WARN&&(r=t.map(Vm),Mm.warn(`Firestore (${Om}): `+e,...r))}function Vm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function C(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,qm(e,n,r)}function qm(e,t,r){let n=`FIRESTORE (${Om}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Fm(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||qm(t,i,n)}let k={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class A extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Bm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class jm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class zm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(xm.UNAUTHENTICATED))}shutdown(){}}class Km{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class Wm{constructor(e){this.t=e,this.currentUser=xm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Bm,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Bm,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{E("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(E("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Bm))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(E("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new jm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new xm(e)}}class Hm{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=xm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Gm{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Hm(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(xm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class $m{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Qm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&E("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,E("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{E("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):E("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new $m(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new $m(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class Ym{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function N(e,t){return e<t?-1:t<e?1:0}function Jm(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return ev(e)===ev(t)?N(e,t):ev(e)?1:-1}return N(r.length,n.length)}let Xm=55296,Zm=57343;function ev(e){var t=e.charCodeAt(0);return t>=Xm&&t<=Zm}function tv(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function rv(e){return e+"\0"}let nv="__name__";class iv{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&C(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===iv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof iv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=iv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return N(t.length,r.length)}static compareSegments(e,t){var r=iv.isNumericId(e),n=iv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?iv.extractNumericId(e).compare(iv.extractNumericId(t)):Jm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return vm.fromString(e.substring(4,e.length-2))}}class R extends iv{construct(e,t,r){return new R(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new A(k.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new R(r)}static emptyPath(){return new R([])}}let sv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class av extends iv{construct(e,t,r){return new av(e,t,r)}static isValidIdentifier(e){return sv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=av.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===nv}static keyField(){return new av([nv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new A(k.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new A(k.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new A(k.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new A(k.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new av(e)}static emptyPath(){return new av([])}}class P{constructor(e){this.path=e}static fromPath(e){return new P(R.fromString(e))}static fromName(e){return new P(R.fromString(e).popFirst(5))}static empty(){return new P(R.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===R.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return R.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new P(new R(e.slice()))}}function ov(e,t,r){if(!r)throw new A(k.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function lv(e,t,r,n){if(!0===t&&!0===n)throw new A(k.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function hv(e){if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function cv(e){if(P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function uv(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function dv(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":C(12329,{type:typeof e})}function D(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new A(k.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=dv(e);throw new A(k.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function pv(e,t){if(t<=0)throw new A(k.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function fv(e,t){var r={typeString:e};return t&&(r.value=t),r}function gv(e,t){if(!uv(e))throw new A(k.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new A(k.INVALID_ARGUMENT,r);return 1}let mv=-62135596800;class x{static now(){return x.fromMillis(Date.now())}static fromDate(e){return x.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new x(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<mv)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?N(this.nanoseconds,e.nanoseconds):N(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:x._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(gv(e,x._jsonSchema))return new x(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-mv;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}x._jsonSchemaVersion="firestore/timestamp/1.0",x._jsonSchema={type:fv("string",x._jsonSchemaVersion),seconds:fv("number"),nanoseconds:fv("number")};class O{static fromTimestamp(e){return new O(e)}static min(){return new O(new x(0,0))}static max(){return new O(new x(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let vv=-1;class _v{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function yv(e){return e.fields.find(e=>2===e.kind)}function wv(e){return e.fields.filter(e=>2!==e.kind)}_v.UNKNOWN_ID=-1;class bv{constructor(e,t){this.fieldPath=e,this.kind=t}}class Iv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Iv(0,Cv.min())}}function Tv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=O.fromTimestamp(1e9===n?new x(r+1,0):new x(r,n));return new Cv(r,P.empty(),t)}function Ev(e){return new Cv(e.readTime,e.key,vv)}class Cv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Cv(O.min(),P.empty(),vv)}static max(){return new Cv(O.max(),P.empty(),vv)}}function Sv(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=P.comparator(e.documentKey,t.documentKey))?r:N(e.largestBatchId,t.largestBatchId)}let kv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Av{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Nv(e){if(e.code!==k.FAILED_PRECONDITION||e.message!==kv)throw e;E("LocalStore","Unexpectedly lost primary lease")}class M{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&C(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new M((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof M?t:M.resolve(t)}catch(e){return M.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):M.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):M.reject(t)}static resolve(r){return new M((e,t)=>{e(r)})}static reject(r){return new M((e,t)=>{t(r)})}static waitFor(e){return new M((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=M.resolve(!1);for(let r of e)t=t.next(e=>e?M.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new M((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new M((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let Rv="SimpleDb";class Pv{static open(e,t,r,n){try{return new Pv(t,e.transaction(n,r))}catch(e){throw new Mv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Bm,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new Mv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=qv(e.target.error);this.S.reject(new Mv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(E(Rv,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Fv(t)}}class Dv{static delete(e){return E(Rv,"Removing database:",e),Uv(H().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!me()||!Dv.F()&&(e=ae(),t=0<(t=Dv.M(e))&&t<10,r=0<(r=xv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===Dv.M(ae())&&Fm("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(E(Rv,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new Mv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new A(k.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new A(k.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new Mv(s,t))},i.onupgradeneeded=e=>{E(Rv,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{E(Rv,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}$(t){this.q=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=Pv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),M.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(E(Rv,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function xv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Ov{constructor(e){this.U=e,this.K=!1,this.W=null}get isDone(){return this.K}get G(){return this.W}set cursor(e){this.U=e}done(){this.K=!0}j(e){this.W=e}delete(){return Uv(this.U.delete())}}class Mv extends A{constructor(e,t){super(k.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Lv(e){return"IndexedDbTransactionError"===e.name}class Fv{constructor(e){this.store=e}put(e,t){let r;return Uv(r=void 0!==t?(E(Rv,"PUT",this.store.name,e,t),this.store.put(t,e)):(E(Rv,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return E(Rv,"ADD",this.store.name,e,e),Uv(this.store.add(e))}get(t){return Uv(this.store.get(t)).next(e=>(void 0===e&&(e=null),E(Rv,"GET",this.store.name,t,e),e))}delete(e){return E(Rv,"DELETE",this.store.name,e),Uv(this.store.delete(e))}count(){return E(Rv,"COUNT",this.store.name),Uv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new M((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.H(e,(e,t)=>{r.push(t)}).next(()=>r)}}Y(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new M((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Z(e,t){E(Rv,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.X=!1,this.cursor(r));return this.H(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.H(n,t)}te(i){let e=this.cursor({});return new M((r,n)=>{e.onerror=e=>{var t=qv(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}H(e,s){let a=[];return new M((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Ov(n),r=s(n.primaryKey,n.value,t);if(r instanceof M){let e=r.catch(e=>(t.done(),M.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>M.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.X?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Uv(e){return new M((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=qv(e.target.error);n(t)}})}let Vv=!1;function qv(e){let t=Dv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new A("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Vv||(Vv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Bv="IndexBackfiller";class jv{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){E(Bv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();E(Bv,"Documents written: "+e)}catch(e){Lv(e)?E(Bv,"Ignoring IndexedDB error during index backfill: ",e):await Nv(e)}await this.re(6e4)})}}class zv{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return M.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return E(Bv,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(E(Bv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Ev(t);0<Sv(r,n)&&(n=r)}),new Cv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class Kv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let Wv=Kv.ce=-1;function Hv(e){return null==e}function Gv(e){return 0===e&&1/e==-1/0}function $v(e){return"number"==typeof e&&Number.isInteger(e)&&!Gv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Qv="";function Yv(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Jv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Qv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Jv(t)}function Jv(e){return e+Qv+""}function Xv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Qv&&""===r.charAt(1),56145,{path:r}),R.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Qv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&C(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:C(61167,{path:r})}a=t+2}return new R(n)}let Zv="remoteDocuments",e_="owner",t_="owner",r_="mutationQueues",n_="mutations",i_="batchId",s_="userMutationsIndex",a_=["userId","batchId"];function o_(e,t){return[e,Yv(t)]}function l_(e,t,r){return[e,Yv(t),r]}let h_={},c_="documentMutations",u_="remoteDocumentsV14",d_=["prefixPath","collectionGroup","readTime","documentId"],p_="documentKeyIndex",f_=["prefixPath","collectionGroup","documentId"],g_="collectionGroupIndex",m_=["collectionGroup","readTime","prefixPath","documentId"],v_="remoteDocumentGlobal",__="remoteDocumentGlobalKey",y_="targets",w_="queryTargetsIndex",b_=["canonicalId","targetId"],I_="targetDocuments",T_=["targetId","path"],E_="documentTargetsIndex",C_=["path","targetId"],S_="targetGlobalKey",k_="targetGlobal",A_="collectionParents",N_=["collectionId","parent"],R_="clientMetadata",P_="bundles",D_="namedQueries",x_="indexConfiguration",O_="collectionGroupIndex",M_="indexState",L_=["indexId","uid"],F_="sequenceNumberIndex",U_=["uid","sequenceNumber"],V_="indexEntries",q_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],B_="documentKeyIndex",j_=["indexId","uid","orderedDocumentKey"],z_="documentOverlays",K_=["userId","collectionPath","documentId"],W_="collectionPathOverlayIndex",H_=["userId","collectionPath","largestBatchId"],G_="collectionGroupOverlayIndex",$_=["userId","collectionGroup","largestBatchId"],Q_="globals",Y_=[r_,n_,c_,Zv,y_,e_,k_,I_,R_,v_,A_,P_,D_],J_=[...Y_,z_],X_=[r_,n_,c_,u_,y_,e_,k_,I_,R_,v_,A_,P_,D_,z_],Z_=X_,ey=[...Z_,x_,M_,V_],ty=ey,ry=[...ey,Q_],ny=ry;class iy extends Av{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function sy(e,t){var r=e;return Dv.O(r.le,t)}function ay(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function oy(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function ly(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class hy{constructor(e,t){this.comparator=e,this.root=t||uy.EMPTY}insert(e,t){return new hy(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,uy.BLACK,null,null))}remove(e){return new hy(this.comparator,this.root.remove(e,this.comparator).copy(null,null,uy.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new cy(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new cy(this.root,e,this.comparator,!1)}getReverseIterator(){return new cy(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new cy(this.root,e,this.comparator,!0)}}class cy{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class uy{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:uy.RED,this.left=null!=n?n:uy.EMPTY,this.right=null!=i?i:uy.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new uy(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return uy.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return uy.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,uy.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,uy.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw C(43730,{key:this.key,value:this.value});if(this.right.isRed())throw C(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw C(27949);return e+(this.isRed()?0:1)}}uy.EMPTY=null,uy.RED=!0,uy.BLACK=!1,uy.EMPTY=new class{constructor(){this.size=0}get key(){throw C(57766)}get value(){throw C(16141)}get color(){throw C(16727)}get left(){throw C(29726)}get right(){throw C(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new uy(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new hy(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new dy(this.data.getIterator())}getIteratorFrom(e){return new dy(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class dy{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function py(e){return e.hasNext()?e.getNext():void 0}class fy{constructor(e){(this.fields=e).sort(av.comparator)}static empty(){return new fy([])}unionWith(e){let t=new L(av.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new fy(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return tv(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class gy extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class my{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new gy("Invalid base64 string: "+e):e}})(e);return new my(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new my(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return N(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}my.EMPTY_BYTE_STRING=new my("");let vy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function _y(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:yy(t.seconds),nanos:yy(t.nanos)};{let e=0;var r=vy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function yy(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function wy(e){return"string"==typeof e?my.fromBase64String(e):my.fromUint8Array(e)}let by="server_timestamp",Iy="__type__",Ty="__previous_value__",Ey="__local_write_time__";function Cy(e){return(e?.mapValue?.fields||{})[Iy]?.stringValue===by}function Sy(e){var t=e.mapValue.fields[Ty];return Cy(t)?Sy(t):t}function ky(e){var t=_y(e.mapValue.fields[Ey].timestampValue);return new x(t.seconds,t.nanos)}class Ay{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let Ny="(default)";class Ry{constructor(e,t){this.projectId=e,this.database=t||Ny}static empty(){return new Ry("","")}get isDefaultDatabase(){return this.database===Ny}isEqual(e){return e instanceof Ry&&e.projectId===this.projectId&&e.database===this.database}}let Py="__type__",Dy="__max__",xy={mapValue:{fields:{__type__:{stringValue:Dy}}}},Oy="__vector__",My="value",Ly={nullValue:"NULL_VALUE"};function Fy(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Cy(e)?4:Xy(e)?9007199254740991:Yy(e)?10:11:C(28295,{value:e})}function Uy(t,r){if(t===r)return!0;var n,i,s,a,o,e=Fy(t);if(e!==Fy(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return ky(t).isEqual(ky(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=_y(i.timestampValue),o=_y(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,wy(t.bytesValue).isEqual(wy(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,yy((n=t).geoPointValue.latitude)===yy(s.geoPointValue.latitude)&&yy(n.geoPointValue.longitude)===yy(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?yy(h.integerValue)===yy(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=yy(h.doubleValue))===(o=yy(n.doubleValue))?Gv(a)===Gv(o):isNaN(a)&&isNaN(o));case 9:return tv(t.arrayValue.values||[],r.arrayValue.values||[],Uy);case 10:case 11:var l=t,h=r,c=l.mapValue.fields||{},u=h.mapValue.fields||{};if(ay(c)!==ay(u))return!1;for(let e in c)if(c.hasOwnProperty(e)&&(void 0===u[e]||!Uy(c[e],u[e])))return!1;return!0;default:return C(52216,{left:t})}}function Vy(e,t){return void 0!==(e.values||[]).find(e=>Uy(e,t))}function qy(e,n){if(e===n)return 0;var i,s,a,o,l,h,c,u,d=Fy(e),t=Fy(n);if(d!==t)return N(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return N(e.booleanValue,n.booleanValue);case 2:return h=n,c=yy((l=e).integerValue||l.doubleValue),u=yy(h.integerValue||h.doubleValue),c<u?-1:u<c?1:c===u?0:isNaN(c)?isNaN(u)?0:-1:1;case 3:return By(e.timestampValue,n.timestampValue);case 4:return By(ky(e),ky(n));case 5:return Jm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,c=wy(l),u=wy(h),c.compareTo(u);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=N(g[t],m[t]);if(0!==e)return e}return N(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=N(yy(p.latitude),yy(f.latitude)))?o:N(yy(p.longitude),yy(f.longitude));case 9:return jy(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=o[My]?.arrayValue,s=s[My]?.arrayValue,0!==(a=N(o?.values?.length||0,s?.values?.length||0))?a:jy(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===xy.mapValue&&_===xy.mapValue)return 0;if(v===xy.mapValue)return 1;if(_===xy.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Jm(w[r],I[r]);if(0!==e)return e;var T=qy(y[w[r]],b[I[r]]);if(0!==T)return T}return N(w.length,I.length);default:throw C(23264,{he:d})}}function By(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?N(e,t):(r=_y(e),n=_y(t),0!==(i=N(r.seconds,n.seconds))?i:N(r.nanos,n.nanos))}function jy(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=qy(r[i],n[i]);if(e)return e}return N(r.length,n.length)}function zy(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=_y(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>wy(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>P.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):C(61005,{value:e})}(e)}function Ky(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function Wy(e){return!!e&&"integerValue"in e}function Hy(e){return!!e&&"arrayValue"in e}function Gy(e){return e&&"nullValue"in e}function $y(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Qy(e){return e&&"mapValue"in e}function Yy(e){return(e?.mapValue?.fields||{})[Py]?.stringValue===Oy}function Jy(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return oy(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Jy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Jy(t.arrayValue.values[e]);return r}return{...t}}function Xy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Dy}let Zy={mapValue:{fields:{[Py]:{stringValue:Oy},[My]:{arrayValue:{}}}}};function ew(e,t){var r=qy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function tw(e,t){var r=qy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class rw{constructor(e){this.value=e}static empty(){return new rw({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Qy(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Jy(t)}setAll(e){let r=av.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Jy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Qy(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Uy(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Qy(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){oy(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new rw(Jy(this.value))}}class nw{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new nw(e,0,O.min(),O.min(),O.min(),rw.empty(),0)}static newFoundDocument(e,t,r,n){return new nw(e,1,t,O.min(),r,n,0)}static newNoDocument(e,t){return new nw(e,2,t,O.min(),O.min(),rw.empty(),0)}static newUnknownDocument(e,t){return new nw(e,3,t,O.min(),O.min(),rw.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(O.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=rw.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=rw.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=O.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof nw&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new nw(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class iw{constructor(e,t){this.position=e,this.inclusive=t}}function sw(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?P.comparator(P.fromName(s.referenceValue),r.key):qy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function aw(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Uy(e.position[r],t.position[r]))return!1;return!0}class ow{constructor(e,t="asc"){this.field=e,this.dir=t}}class lw{}class F extends lw{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new gw(e,t,r):"array-contains"===t?new yw(e,r):"in"===t?new ww(e,r):"not-in"===t?new bw(e,r):"array-contains-any"===t?new Iw(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?mw:vw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(qy(t,this.value)):null!==t&&Fy(this.value)===Fy(t)&&this.matchesComparison(qy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return C(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends lw{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new U(e,t)}matches(t){return hw(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function hw(e){return"and"===e.op}function cw(e){return"or"===e.op}function uw(e){return dw(e)&&hw(e)}function dw(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function pw(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function fw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+zy(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(fw).join(" ,")+"}":"Filter";var t}class gw extends F{constructor(e,t,r){super(e,t,r),this.key=P.fromName(r.referenceValue)}matches(e){var t=P.comparator(e.key,this.key);return this.matchesComparison(t)}}class mw extends F{constructor(e,t){super(e,"in",t),this.keys=_w(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class vw extends F{constructor(e,t){super(e,"not-in",t),this.keys=_w(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function _w(e,t){return(t.arrayValue?.values||[]).map(e=>P.fromName(e.referenceValue))}class yw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Hy(t)&&Vy(t.arrayValue,this.value)}}class ww extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Vy(this.value.arrayValue,t)}}class bw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Vy(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Vy(this.value.arrayValue,t)}}class Iw extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Hy(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Vy(this.value.arrayValue,e))}}class Tw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function Ew(e,t=null,r=[],n=[],i=null,s=null,a=null){return new Tw(e,t,r,n,i,s,a)}function Cw(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+zy(e.value):uw(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Hv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>zy(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>zy(e)).join(",")),t.Te=e}return t.Te}function Sw(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Uy(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void C(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!aw(e.startAt,t.startAt)&&aw(e.endAt,t.endAt)}function kw(e){return P.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Aw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function Nw(e,r,n){let i=Ly,s=!0;for(let n of Aw(e,r)){let e=Ly,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Ly:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Ky(Ry.empty(),P.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Yy(a)?Zy:{mapValue:{}}:C(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Ly}ew({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];ew({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Rw(e,r,n){let i=xy,s=!0;for(let n of Aw(e,r)){let e=xy,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Ky(Ry.empty(),P.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Zy:"mapValue"in a?Yy(a)?{mapValue:{}}:xy:C(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=xy}0<tw({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<tw({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Pw{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.de=null,this.startAt,this.endAt}}function Dw(e,t,r,n,i,s,a,o){return new Pw(e,t,r,n,i,s,a,o)}function xw(e){return new Pw(e)}function Ow(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function Mw(e){return null!==e.collectionGroup}function Lw(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(av.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new ow(e,r))}),t.has(av.keyField().canonicalString())||n.Ie.push(new ow(av.keyField(),r))}return n.Ie}function Fw(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return Ew(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new ow(e.field,t)});var r=e.endAt?new iw(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new iw(e.startAt.position,e.startAt.inclusive):null;return Ew(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Lw(e))),t.Ee}function Uw(e,t){var r=e.filters.concat([t]);return new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Vw(e,t,r){return new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function qw(e,t){return Sw(Fw(e),Fw(t))&&e.limitType===t.limitType}function Bw(e){return Cw(Fw(e))+"|lt:"+e.limitType}function jw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>fw(e)).join(", ")}]`),Hv(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>zy(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>zy(e)).join(","):t})`})(Fw(e))}; limitType=${e.limitType})`}function zw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):P.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Lw(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Lw(s),i=sw(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Lw(s),i=sw(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Kw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Ww(e){return(t,r)=>{let n=!1;for(var i of Lw(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?P.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?qy(n,i):C(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return C(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Hw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){oy(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return ly(this.inner)}size(){return this.innerSize}}let Gw=new hy(P.comparator);let $w=new hy(P.comparator);function Qw(...e){let t=$w;for(var r of e)t=t.insert(r.key,r);return t}function Yw(e){let r=$w;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Jw(){return new Hw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Xw=new hy(P.comparator),Zw=new L(P.comparator);function V(...e){let t=Zw;for(var r of e)t=t.add(r);return t}let eb=new L(N);function tb(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Gv(t)?"-0":t}}function rb(e){return{integerValue:""+e}}function nb(e,t){return $v(t)?rb(t):tb(e,t)}class ib{constructor(){this._=void 0}}function sb(e,t){return e instanceof ub?Wy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class ab extends ib{}class ob extends ib{constructor(e){super(),this.elements=e}}function lb(e,t){var r=pb(t);for(let t of e.elements)r.some(e=>Uy(e,t))||r.push(t);return{arrayValue:{values:r}}}class hb extends ib{constructor(e){super(),this.elements=e}}function cb(e,t){let r=pb(t);for(let t of e.elements)r=r.filter(e=>!Uy(e,t));return{arrayValue:{values:r}}}class ub extends ib{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function db(e){return yy(e.integerValue||e.doubleValue)}function pb(e){return Hy(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class fb{constructor(e,t){this.field=e,this.transform=t}}class gb{constructor(e,t){this.version=e,this.transformResults=t}}class mb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new mb}static exists(e){return new mb(void 0,e)}static updateTime(e){return new mb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function vb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class _b{}function yb(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new kb(e.key,mb.none()):new Ib(e.key,e.data,mb.none());{var n,i=e.data,s=rw.empty();let t=new L(av.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new Tb(e.key,s,new fy(t.toArray()),mb.none())}}function wb(e,t,r,n){return e instanceof Ib?(s=t,a=r,o=n,vb((i=e).precondition,s)?(l=i.value.clone(),h=Sb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof Tb?(i=t,o=r,s=n,vb((a=e).precondition,i)?(h=Sb(a.fieldTransforms,s,i),(l=i.data).setAll(Eb(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,vb(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function bb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&tv(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof ob&&t instanceof ob||e instanceof hb&&t instanceof hb?tv(e.elements,t.elements,Uy):e instanceof ub&&t instanceof ub?Uy(e.Ae,t.Ae):e instanceof ab&&t instanceof ab)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class Ib extends _b{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class Tb extends _b{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Eb(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function Cb(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Re:r.length,Ve:e.length});for(let c=0;c<r.length;c++){var o=e[c],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[c],n instanceof ob?lb(n,i):n instanceof hb?cb(n,i):s))}return a}function Sb(e,r,n){var i,s,a,o,l,h,c,u=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);u.set(i.field,(s=e,a=t,o=r,c=h=l=void 0,s instanceof ab?(o=o,h=a,c={fields:{[Iy]:{stringValue:by},[Ey]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&Cy(h)?Sy(h):h)&&(c.fields[Ty]=h),{mapValue:c}):s instanceof ob?lb(s,a):s instanceof hb?cb(s,a):(c=sb(o=s,a),l=db(c)+db(o.Ae),Wy(c)&&Wy(o.Ae)?rb(l):tb(o.serializer,l))))}return u}class kb extends _b{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Ab extends _b{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class Nb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let u=0;u<this.mutations.length;u++){var c=this.mutations[u];c.key.isEqual(e.key)&&(r=c,n=e,i=h[u],l=c=o=a=s=void 0,r instanceof Ib?(a=n,o=i,c=(s=r).value.clone(),l=Cb(s.fieldTransforms,a,o.transformResults),c.setAll(l),a.convertToFoundDocument(o.version,c).setHasCommittedMutations()):r instanceof Tb?(s=n,a=i,vb((o=r).precondition,s)?(l=Cb(o.fieldTransforms,s,a.transformResults),(c=s.data).setAll(Eb(o)),c.setAll(l),s.convertToFoundDocument(a.version,c).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=wb(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=wb(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Jw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=yb(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(O.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&tv(this.mutations,e.mutations,(e,t)=>bb(e,t))&&tv(this.baseMutations,e.baseMutations,(e,t)=>bb(e,t))}}class Rb{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Xw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Rb(e,t,r,n)}}class Pb{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
24
24
|
largestBatchId: ${this.largestBatchId},
|
|
25
25
|
mutation: ${this.mutation.toString()}
|
|
26
26
|
}`}}class Db{constructor(e,t){this.count=e,this.unchangedNames=t}}function xb(e){switch(e){case k.OK:return C(64938);case k.CANCELLED:case k.UNKNOWN:case k.DEADLINE_EXCEEDED:case k.RESOURCE_EXHAUSTED:case k.INTERNAL:case k.UNAVAILABLE:case k.UNAUTHENTICATED:return!1;case k.INVALID_ARGUMENT:case k.NOT_FOUND:case k.ALREADY_EXISTS:case k.PERMISSION_DENIED:case k.FAILED_PRECONDITION:case k.ABORTED:case k.OUT_OF_RANGE:case k.UNIMPLEMENTED:case k.DATA_LOSS:return!0;default:return C(15467,{code:e})}}function Ob(e){if(void 0===e)return Fm("GRPC error has no .code"),k.UNKNOWN;switch(e){case km.OK:return k.OK;case km.CANCELLED:return k.CANCELLED;case km.UNKNOWN:return k.UNKNOWN;case km.DEADLINE_EXCEEDED:return k.DEADLINE_EXCEEDED;case km.RESOURCE_EXHAUSTED:return k.RESOURCE_EXHAUSTED;case km.INTERNAL:return k.INTERNAL;case km.UNAVAILABLE:return k.UNAVAILABLE;case km.UNAUTHENTICATED:return k.UNAUTHENTICATED;case km.INVALID_ARGUMENT:return k.INVALID_ARGUMENT;case km.NOT_FOUND:return k.NOT_FOUND;case km.ALREADY_EXISTS:return k.ALREADY_EXISTS;case km.PERMISSION_DENIED:return k.PERMISSION_DENIED;case km.FAILED_PRECONDITION:return k.FAILED_PRECONDITION;case km.ABORTED:return k.ABORTED;case km.OUT_OF_RANGE:return k.OUT_OF_RANGE;case km.UNIMPLEMENTED:return k.UNIMPLEMENTED;case km.DATA_LOSS:return k.DATA_LOSS;default:return C(39323,{code:e})}}(e=km=km||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";function Mb(){return new TextEncoder}let Lb=new vm([4294967295,4294967295],0);function Fb(e){var t=Mb().encode(e),r=new _m;return r.update(t),new Uint8Array(r.digest())}function Ub(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new vm([r,n],0),new vm([i,t],0)]}class Vb{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new qb("Invalid padding: "+t);if(r<0)throw new qb("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new qb("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new qb("Invalid padding when bitmap length is 0: "+t);this.ge=8*e.length-t,this.pe=vm.fromNumber(this.ge)}ye(e,t,r){let n=e.add(t.multiply(vm.fromNumber(r)));return(n=1===n.compare(Lb)?new vm([n.getBits(0),n.getBits(1)],0):n).modulo(this.pe).toNumber()}we(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.ge)return!1;let t=Fb(e),[r,n]=Ub(t);for(let i=0;i<this.hashCount;i++){let e=this.ye(r,n,i);if(!this.we(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new Vb(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.ge){let e=Fb(i),[t,r]=Ub(e);for(let n=0;n<this.hashCount;n++){let e=this.ye(t,r,n);this.Se(e)}}}Se(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class qb extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Bb{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,jb.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Bb(O.min(),n,new hy(N),Gw,V())}}class jb{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new jb(r,t,V(),V(),V())}}class zb{constructor(e,t,r,n){this.be=e,this.removedTargetIds=t,this.key=r,this.De=n}}class Kb{constructor(e,t){this.targetId=e,this.Ce=t}}class Wb{constructor(e,t,r=my.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Hb{constructor(){this.ve=0,this.Fe=Qb(),this.Me=my.EMPTY_BYTE_STRING,this.xe=!1,this.Oe=!0}get current(){return this.xe}get resumeToken(){return this.Me}get Ne(){return 0!==this.ve}get Be(){return this.Oe}Le(e){0<e.approximateByteSize()&&(this.Oe=!0,this.Me=e)}ke(){let r=V(),n=V(),i=V();return this.Fe.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:C(38017,{changeType:t})}}),new jb(this.Me,this.xe,r,n,i)}qe(){this.Oe=!1,this.Fe=Qb()}Qe(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}$e(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}Ue(){this.ve+=1}Ke(){--this.ve,S(0<=this.ve,3241,{ve:this.ve})}We(){this.Oe=!0,this.xe=!0}}class Gb{constructor(e){this.Ge=e,this.ze=new Map,this.je=Gw,this.Je=$b(),this.He=$b(),this.Ye=new hy(N)}Ze(e){for(var t of e.be)e.De&&e.De.isFoundDocument()?this.Xe(t,e.De):this.et(t,e.key,e.De);for(var r of e.removedTargetIds)this.et(r,e.key,e.De)}tt(r){this.forEachTarget(r,e=>{var t=this.nt(e);switch(r.state){case 0:this.rt(e)&&t.Le(r.resumeToken);break;case 1:t.Ke(),t.Ne||t.qe(),t.Le(r.resumeToken);break;case 2:t.Ke(),t.Ne||this.removeTarget(e);break;case 3:this.rt(e)&&(t.We(),t.Le(r.resumeToken));break;case 4:this.rt(e)&&(this.it(e),t.Le(r.resumeToken));break;default:C(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.ze.forEach((e,t)=>{this.rt(t)&&r(t)})}st(n){let i=n.targetId,e=n.Ce.count,t=this.ot(i);if(t){var r=t.target;if(kw(r))if(0===e){let e=new P(r.path);this.et(i,e,nw.newNoDocument(e,O.min()))}else S(1===e,20013,{expectedCount:e});else{let r=this._t(i);if(r!==e){let e=this.ut(n),t=e?this.ct(e,n,r):1;if(0!==t){this.it(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ye=this.Ye.insert(i,e)}}}}}ut(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=wy(t).toUint8Array()}catch(e){if(e instanceof gy)return Um("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new Vb(i,r,n)}catch(e){return Um(e instanceof qb?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.ge?null:s}ct(e,t,r){return t.Ce.count===r-this.Pt(e,t.targetId)?0:2}Pt(r,n){var e=this.Ge.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.Ge.ht(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.et(n,e,null),i++)}),i}Tt(n){let i=new Map,s=(this.ze.forEach((e,t)=>{var r=this.ot(t);if(r){if(e.current&&kw(r.target)){let e=new P(r.target.path);this.It(e).has(t)||this.Et(t,e)||this.et(t,e,nw.newNoDocument(e,n))}e.Be&&(i.set(t,e.ke()),e.qe())}}),V());this.He.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.je.forEach((e,t)=>t.setReadTime(n));var e=new Bb(n,i,this.Ye,this.je,s);return this.je=Gw,this.Je=$b(),this.He=$b(),this.Ye=new hy(N),e}Xe(e,t){var r;this.rt(e)&&(r=this.Et(e,t.key)?2:0,this.nt(e).Qe(t.key,r),this.je=this.je.insert(t.key,t),this.Je=this.Je.insert(t.key,this.It(t.key).add(e)),this.He=this.He.insert(t.key,this.dt(t.key).add(e)))}et(e,t,r){var n;this.rt(e)&&(n=this.nt(e),this.Et(e,t)?n.Qe(t,1):n.$e(t),this.He=this.He.insert(t,this.dt(t).delete(e)),this.He=this.He.insert(t,this.dt(t).add(e)),r)&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){var t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ue(e){this.nt(e).Ue()}nt(e){let t=this.ze.get(e);return t||(t=new Hb,this.ze.set(e,t)),t}dt(e){let t=this.He.get(e);return t||(t=new L(N),this.He=this.He.insert(e,t)),t}It(e){let t=this.Je.get(e);return t||(t=new L(N),this.Je=this.Je.insert(e,t)),t}rt(e){var t=null!==this.ot(e);return t||E("WatchChangeAggregator","Detected inactive target",e),t}ot(e){var t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(t){this.ze.set(t,new Hb),this.Ge.getRemoteKeysForTarget(t).forEach(e=>{this.et(t,e,null)})}Et(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function $b(){return new hy(P.comparator)}function Qb(){return new hy(P.comparator)}let Yb={asc:"ASCENDING",desc:"DESCENDING"},Jb={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Xb={and:"AND",or:"OR"};class Zb{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function eI(e,t){return e.useProto3Json||Hv(t)?t:{value:t}}function tI(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function rI(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function nI(e){return S(!!e,49232),O.fromTimestamp((t=_y(e),new x(t.seconds,t.nanos)));var t}function iI(e,t){return sI(e,t).canonicalString()}function sI(e,t){e=e;var r=new R(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function aI(e){var t=R.fromString(e);return S(SI(t),10190,{key:t.toString()}),t}function oI(e,t){return iI(e.databaseId,t.path)}function lI(e,t){var r=aI(t);if(r.get(1)!==e.databaseId.projectId)throw new A(k.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new A(k.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new P(dI(r))}function hI(e,t){return iI(e.databaseId,t)}function cI(e){var t=aI(e);return 4===t.length?R.emptyPath():dI(t)}function uI(e){return new R(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function dI(e){return S(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function pI(e,t,r){return{name:oI(e,t),fields:r.value.mapValue.fields}}function fI(e,t,r){var n=lI(e,t.name),i=nI(t.updateTime),s=t.createTime?nI(t.createTime):O.min(),a=new rw({mapValue:{fields:t.fields}}),n=nw.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function gI(e,t){let r;if(t instanceof Ib)r={update:pI(e,t.key,t.value)};else if(t instanceof kb)r={delete:oI(e,t.key)};else if(t instanceof Tb)r={update:pI(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof Ab))return C(16599,{Vt:t.type});r={verify:oI(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof ab)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof ob)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof hb)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof ub)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw C(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,tI(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:C(27497))),r;var n}function mI(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?mb.updateTime(nI(s.updateTime)):void 0!==s.exists?mb.exists(s.exists):mb.none():mb.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)S("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new ab;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new ob(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new hb(e)}else"increment"in r?t=new ub(e,r.increment):C(16584,{proto:r});var n=av.fromServerFormat(r.fieldPath);return new fb(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=lI(i,t.update.name),l=new rw({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new fy(a.map(e=>av.fromServerFormat(e)));return new Tb(o,l,e,r,n)}return new Ib(o,l,r,n)}if(t.delete){let e=lI(i,t.delete);return new kb(e,r)}if(t.verify){let e=lI(i,t.verify);return new Ab(e,r)}return C(1463,{proto:t})}function vI(e,n){return e&&0<e.length?(S(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?nI(t.updateTime):nI(r);return e.isEqual(O.min())&&(e=nI(r)),new gb(e,t.transformResults||[])}})):[]}function _I(e,t){return{documents:[hI(e,t.path)]}}function yI(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=hI(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof F?(e=>{if("=="===e.op){if($y(e.value))return{unaryFilter:{field:EI(e.field),op:"IS_NAN"}};if(Gy(e.value))return{unaryFilter:{field:EI(e.field),op:"IS_NULL"}}}else if("!="===e.op){if($y(e.value))return{unaryFilter:{field:EI(e.field),op:"IS_NOT_NAN"}};if(Gy(e.value))return{unaryFilter:{field:EI(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:EI(e.field),op:II(e.op),value:e.value}}})(e):e instanceof U?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:TI(e.op),filters:t}}})(e):C(54877,{filter:e})}(U.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:EI((e=e).field),direction:(e=e.dir,Yb[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=eI(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{ft:r,parent:i}}function wI(e){let t=cI(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){S(1===i,65062);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=CI(i.unaryFilter.field);return F.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=CI(i.unaryFilter.field);return F.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=CI(i.unaryFilter.field);return F.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=CI(i.unaryFilter.field);return F.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return C(61313);default:return C(60726)}})(e):void 0!==e.fieldFilter?(e=>F.create(CI(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return C(58110);default:return C(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>U.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return C(1026)}})(e.compositeFilter.op)))(e):C(30097,{filter:e})}(e))instanceof U&&uw(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new ow(CI(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),h=(n.limit&&(l=(e=n.limit,Hv(i="object"==typeof e?e.value:e)?null:i)),null),c=(n.startAt&&(h=(e=n.startAt,i=!!e.before,r=e.values||[],new iw(r,i))),null);return n.endAt&&(c=(e=n.endAt,r=!e.before,i=e.values||[],new iw(i,r))),Dw(t,s,o,a,l,"F",h,c)}function bI(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return C(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function II(e){return Jb[e]}function TI(e){return Xb[e]}function EI(e){return{fieldPath:e.canonicalString()}}function CI(e){return av.fromServerFormat(e.fieldPath)}function SI(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class kI{constructor(e,t,r,n,i=O.min(),s=O.min(),a=my.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new kI(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new kI(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new kI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new kI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class AI{constructor(e){this.yt=e}}function NI(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:RI(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:oI(e=e.yt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:tI(e,r.version.toTimestamp()),createTime:tI(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:PI(t.version)};else{if(!t.isUnknownDocument())return C(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:PI(t.version)}}return i}function RI(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function PI(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function DI(e){var t=new x(e.seconds,e.nanoseconds);return O.fromTimestamp(t)}function xI(t,r){let e=(r.baseMutations||[]).map(e=>mI(t.yt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>mI(t.yt,e)),i=x.fromMillis(r.localWriteTimeMs);return new Nb(r.batchId,i,e,n)}function OI(e){var t,r=DI(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?DI(e.lastLimboFreeSnapshotVersion):O.min(),i=void 0!==e.query.documents?(t=e.query,S(1===(i=t.documents.length),1966,{count:i}),Fw(xw(cI(t.documents[0])))):Fw(wI(e.query));return new kI(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,my.fromBase64String(e.resumeToken))}function MI(e,t){var r=PI(t.snapshotVersion),n=PI(t.lastLimboFreeSnapshotVersion),i=kw(t.target)?_I(e.yt,t.target):yI(e.yt,t.target).ft,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:Cw(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function LI(e){var t=wI({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Vw(t,t.limit,"L"):t}function FI(e,t){return new Pb(t.largestBatchId,mI(e.yt,t.overlayMutation))}function UI(e,t){var r=t.path.lastSegment();return[e,Yv(t.path.popLast()),r]}function VI(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:PI(n.readTime),documentKey:Yv(n.documentKey.path),largestBatchId:n.largestBatchId}}class qI{getBundleMetadata(e,t){return BI(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:DI(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return BI(e).put({bundleId:(e=t).id,createTime:PI(nI(e.createTime)),version:e.version})}getNamedQuery(e,t){return jI(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:LI(e.bundledQuery),readTime:DI(e.readTime)}})}saveNamedQuery(e,t){return jI(e).put({name:(e=t).name,readTime:PI(nI(e.readTime)),bundledQuery:e.bundledQuery})}}function BI(e){return sy(e,P_)}function jI(e){return sy(e,D_)}class zI{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){var r=t.uid||"";return new zI(e,r)}getOverlay(e,t){return KI(e).get(UI(this.userId,t)).next(e=>e?FI(this.serializer,e):null)}getOverlays(e,t){let r=Jw();return M.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new Pb(i,t);s.push(this.St(n,r))}),M.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Yv(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(KI(r).Z(W_,t))}),M.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Jw(),i=Yv(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return KI(e).J(W_,s).next(e=>{for(var t of e){let e=FI(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Jw(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return KI(e).ee({index:G_,range:n},(e,t,r)=>{var n=FI(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}St(e,t){return KI(e).put(((e,t,r)=>{var[,n,i]=UI(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:gI(e.yt,r.mutation)}})(this.serializer,this.userId,t))}}function KI(e){return sy(e,z_)}class WI{bt(e){return sy(e,Q_)}getSessionToken(e){return this.bt(e).get("sessionToken").next(e=>{var t=e?.value;return t?my.fromUint8Array(t):my.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.bt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class HI{constructor(){}Dt(e,t){this.Ct(e,t),t.vt()}Ct(t,r){if("nullValue"in t)this.Ft(r,5);else if("booleanValue"in t)this.Ft(r,10),r.Mt(t.booleanValue?1:0);else if("integerValue"in t)this.Ft(r,15),r.Mt(yy(t.integerValue));else if("doubleValue"in t){var e=yy(t.doubleValue);isNaN(e)?this.Ft(r,13):(this.Ft(r,15),Gv(e)?r.Mt(0):r.Mt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Ft(r,20),"string"==typeof e&&(e=_y(e)),r.xt(""+(e.seconds||"")),r.Mt(e.nanos||0)}else"stringValue"in t?(this.Ot(t.stringValue,r),this.Nt(r)):"bytesValue"in t?(this.Ft(r,30),r.Bt(wy(t.bytesValue)),this.Nt(r)):"referenceValue"in t?this.Lt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Ft(r,45),r.Mt(e.latitude||0),r.Mt(e.longitude||0)):"mapValue"in t?Xy(t)?this.Ft(r,Number.MAX_SAFE_INTEGER):Yy(t)?this.kt(t.mapValue,r):(this.qt(t.mapValue,r),this.Nt(r)):"arrayValue"in t?(this.Qt(t.arrayValue,r),this.Nt(r)):C(19022,{$t:t})}Ot(e,t){this.Ft(t,25),this.Ut(e,t)}Ut(e,t){t.xt(e)}qt(e,t){var r=e.fields||{};this.Ft(t,55);for(let e of Object.keys(r))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){var r=e.fields||{},n=(this.Ft(t,53),My),i=r[n].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(yy(i)),this.Ot(n,t),this.Ct(r[n],t)}Qt(e,t){var r=e.values||[];this.Ft(t,50);for(let e of r)this.Ct(e,t)}Lt(e,t){this.Ft(t,37),P.fromName(e).path.forEach(e=>{this.Ft(t,60),this.Ut(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}HI.Kt=new HI;function GI(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class $I{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Wt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Ht()}Yt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Gt(e);else if(e<2048)this.Gt(960|e>>>6),this.Gt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Gt(480|e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e);else{let e=t.codePointAt(0);this.Gt(240|e>>>18),this.Gt(128|63&e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e)}}this.zt()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Jt(480|e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Ht()}Xt(e){var t=this.en(e),r=GI(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}nn(e){var t=this.en(e),r=GI(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}rn(){this.sn(255),this.sn(255)}_n(){this.an(255),this.an(255)}reset(){this.position=0}seed(e){this.tn(e.length),this.buffer.set(e,this.position),this.position+=e.length}un(){return this.buffer.slice(0,this.position)}en(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}Gt(e){var t=255&e;0==t?(this.sn(0),this.sn(255)):255==t?(this.sn(255),this.sn(0)):this.sn(t)}Jt(e){var t=255&e;0==t?(this.an(0),this.an(255)):255==t?(this.an(255),this.an(0)):this.an(e)}zt(){this.sn(0),this.sn(1)}Ht(){this.an(0),this.an(1)}sn(e){this.tn(1),this.buffer[this.position++]=e}an(e){this.tn(1),this.buffer[this.position++]=~e}tn(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class QI{constructor(e){this.cn=e}Bt(e){this.cn.Wt(e)}xt(e){this.cn.Yt(e)}Mt(e){this.cn.Xt(e)}vt(){this.cn.rn()}}class YI{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class JI{constructor(){this.cn=new $I,this.ln=new QI(this.cn),this.hn=new YI(this.cn)}seed(e){this.cn.seed(e)}Pn(e){return 0===e?this.ln:this.hn}un(){return this.cn.un()}reset(){this.cn.reset()}}class XI{constructor(e,t,r,n){this.Tn=e,this.In=t,this.En=r,this.dn=n}An(){var e=this.dn.length,t=0===e||255===this.dn[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.dn,0),t!==e?r.set([0],this.dn.length):++r[r.length-1],new XI(this.Tn,this.In,this.En,r)}Rn(e,t,r){return{indexId:this.Tn,uid:e,arrayValue:tT(this.En),directionalValue:tT(this.dn),orderedDocumentKey:tT(t),documentKey:r.path.toArray()}}Vn(e,t,r){var n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function ZI(e,t){var r=e.Tn-t.Tn;return 0!=r||0!==(r=eT(e.En,t.En))||0!==(r=eT(e.dn,t.dn))?r:P.comparator(e.In,t.In)}function eT(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}function tT(r){if(ge()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function rT(e){if("string"!=typeof e)return e;var t=e,r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}class nT{constructor(e){this.mn=new L((e,t)=>av.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.fn=e.orderBy,this.gn=[];for(var t of e.filters){let e=t;e.isInequality()?this.mn=this.mn.add(e):this.gn.push(e)}}get pn(){return 1<this.mn.size}yn(e){if(S(e.collectionGroup===this.collectionId,49279),this.pn)return!1;let t=yv(e);if(void 0!==t&&!this.wn(t))return!1;var r=wv(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.wn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.mn.size){let t=this.mn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.Sn(t,e)||!this.bn(this.fn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.fn.length||!this.bn(this.fn[s++],e))return!1}}return!0}Dn(){if(this.pn)return null;let e=new L(av.comparator);var t,r,n=[];for(t of this.gn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new bv(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new bv(t.field,0))));for(r of this.fn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new bv(r.field,"asc"===r.dir?0:1)));return new _v(_v.UNKNOWN_ID,this.collectionId,n,Iv.empty())}wn(e){for(var t of this.gn)if(this.Sn(t,e))return!0;return!1}Sn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}bn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function iT(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(S(e instanceof F||e instanceof U,34018),e instanceof F)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=U.create(r,e.op);return n=cT(n),oT(n)?n:(S(n instanceof U,64498),S(hw(n),40251),S(1<n.filters.length,57927),n.filters.reduce((e,t)=>lT(e,t)))}(function t(r){if(S(r instanceof F||r instanceof U,20012),r instanceof F){if(r instanceof ww){let e=r.value.arrayValue?.values?.map(e=>F.create(r.field,"==",e))||[];return U.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return U.create(e,r.op)}(e)),S(oT(t),7391),sT(t)||aT(t)?[t]:t.getFilters())}function sT(e){return e instanceof F}function aT(e){return e instanceof U&&uw(e)}function oT(e){return sT(e)||aT(e)||(e=>{if(e instanceof U&&cw(e)){for(var t of e.getFilters())if(!sT(t)&&!aT(t))return!1;return!0}return!1})(e)}function lT(e,t){var r,n;return S(e instanceof F||e instanceof U,38388),S(t instanceof F||t instanceof U,25473),cT(e instanceof F?t instanceof F?(r=e,n=t,U.create([r,n],"and")):hT(e,t):t instanceof F?hT(t,e):((e,t)=>{if(S(0<e.filters.length&&0<t.filters.length,48005),hw(e)&&hw(t))return pw(e,t.getFilters());let r=cw(e)?e:t,n=cw(e)?t:e,i=r.filters.map(e=>lT(e,n));return U.create(i,"or")})(e,t))}function hT(t,e){var r;return hw(e)?pw(e,t.getFilters()):(r=e.filters.map(e=>lT(t,e)),U.create(r,"or"))}function cT(t){if(S(t instanceof F||t instanceof U,11850),t instanceof F)return t;var e=t.getFilters();if(1===e.length)return cT(e[0]);if(dw(t))return t;let r=e.map(e=>cT(e)),n=[];return r.forEach(e=>{e instanceof F?n.push(e):e instanceof U&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:U.create(n,t.op)}class uT{constructor(){this.Cn=new dT}addToCollectionParentIndex(e,t){return this.Cn.add(t),M.resolve()}getCollectionParents(e,t){return M.resolve(this.Cn.getEntries(t))}addFieldIndex(e,t){return M.resolve()}deleteFieldIndex(e,t){return M.resolve()}deleteAllFieldIndexes(e){return M.resolve()}createTargetIndexes(e,t){return M.resolve()}getDocumentsMatchingTarget(e,t){return M.resolve(null)}getIndexType(e,t){return M.resolve(0)}getFieldIndexes(e,t){return M.resolve([])}getNextCollectionGroupToUpdate(e){return M.resolve(null)}getMinOffset(e,t){return M.resolve(Cv.min())}getMinOffsetFromCollectionGroup(e,t){return M.resolve(Cv.min())}updateCollectionGroup(e,t,r){return M.resolve()}updateIndexEntries(e,t){return M.resolve()}}class dT{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new L(R.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new L(R.comparator)).toArray()}}let pT="IndexedDbIndexManager",fT=new Uint8Array(0);class gT{constructor(e,t){this.databaseId=t,this.vn=new dT,this.Fn=new Hw(e=>Cw(e),(e,t)=>Sw(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.vn.has(t)?M.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.vn.add(t)}),n={collectionId:n,parent:Yv(r)},mT(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[rv(r),""],!1,!0);return mT(e).J(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(Xv(t.parent))}return n})}addFieldIndex(e,r){let t=_T(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=yT(e);return i.next(e=>{t.put(VI(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=_T(e),n=yT(e),i=vT(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=_T(e),r=vT(e),n=yT(e);return t.Z().next(()=>r.Z()).next(()=>n.Z())}createTargetIndexes(r,e){return M.forEach(this.Mn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new nT(t).Dn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,u){let d=vT(e),r=!0,n=new Map;return M.forEach(this.Mn(u),t=>this.xn(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let h=V(),c=[];return M.forEach(n,(e,t)=>{E(pT,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Cw(u));var r,n=((t,e)=>{var r=yv(e);if(void 0!==r)for(let e of Aw(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of wv(r))for(let e of Aw(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of wv(e)){let e=(0===r.kind?Nw:Rw)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new iw(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of wv(e)){let e=(0===r.kind?Rw:Nw)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new iw(n,i)})(t,e),o=this.On(e,t,s),l=this.On(e,t,a),i=this.Nn(e,t,i),n=this.Bn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return M.forEach(n,e=>d.Y(e,u.limit).next(e=>{e.forEach(e=>{var t=P.fromSegments(e.documentKey);h.has(t)||(h=h.add(t),c.push(t))})}))}).next(()=>c)}return M.resolve(null)})}Mn(t){let e=this.Fn.get(t);return e||(e=0===t.filters.length?[t]:iT(U.create(t.filters,"and")).map(e=>Ew(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Fn.set(t,e)),e}Bn(i,s,a,o,l,h,c){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),u=e/(null!=s?s.length:1),d=[];for(let p=0;p<e;++p){let t=s?this.Ln(s[p/u]):fT,e=this.kn(i,t,a[p%u],o),r=this.qn(i,t,l[p%u],h),n=c.map(e=>this.kn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}kn(e,t,r,n){var i=new XI(e,P.empty(),t,r);return n?i:i.An()}qn(e,t,r,n){var i=new XI(e,P.empty(),t,r);return n?i.An():i}xn(e,t){let n=new nT(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.yn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.Mn(t);return M.forEach(n,t=>this.xn(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new L(av.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}Qn(e,t){var r,n=new JI;for(r of wv(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.Pn(r.kind);HI.Kt.Dt(e,i)}return n.un()}Ln(e){var t=new JI;return HI.Kt.Dt(e,t.Pn(0)),t.un()}$n(e,t){var r,n=new JI;return HI.Kt.Dt(Ky(this.databaseId,t),n.Pn(0===(r=wv(e)).length?0:r[r.length-1].kind)),n.un()}Nn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new JI),0);for(var o of wv(e)){let t=i[a++];for(let r of s)if(this.Un(n,o.fieldPath)&&Hy(t))s=this.Kn(s,o,t);else{let e=r.Pn(o.kind);HI.Kt.Dt(t,e)}}return this.Wn(s)}On(e,t,r){return this.Nn(e,t,r.position)}Wn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Kn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new JI;e.seed(t.un()),HI.Kt.Dt(r,e.Pn(n.kind)),s.push(e)}return s}Un(e,t){return!!e.filters.find(e=>e instanceof F&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=_T(e),n=yT(e);return(t?r.J(O_,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let s=[];return M.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new Iv(e.sequenceNumber,new Cv(DI(e.readTime),new P(Xv(e.documentKey)),e.largestBatchId)):Iv.empty(),n=t.fields.map(([e,t])=>new bv(av.fromServerFormat(e),t)),new _v(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:N(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=_T(e),s=yT(e);return this.Gn(e).next(t=>i.J(O_,IDBKeyRange.bound(r,r)).next(e=>M.forEach(e,e=>s.put(VI(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return M.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?M.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),M.forEach(e,r=>this.zn(i,t,r).next(e=>{var t=this.jn(n,r);return e.isEqual(t)?M.resolve():this.Jn(i,n,r,e,t)}))))})}Hn(e,t,r,n){return vT(e).put(n.Rn(this.uid,this.$n(r,t.key),t.key))}Yn(e,t,r,n){return vT(e).delete(n.Vn(this.uid,this.$n(r,t.key),t.key))}zn(e,r,n){var t=vT(e);let i=new L(ZI);return t.ee({index:B_,range:IDBKeyRange.only([n.indexId,this.uid,tT(this.$n(n,r))])},(e,t)=>{i=i.add(new XI(n.indexId,r,rT(t.arrayValue),rT(t.directionalValue)))}).next(()=>i)}jn(t,r){let n=new L(ZI);var i=this.Qn(r,t);if(null!=i){let e=yv(r);if(null!=e){var s=t.data.field(e.fieldPath);if(Hy(s))for(let e of s.arrayValue.values||[])n=n.add(new XI(r.indexId,t.key,this.Ln(e),i))}else n=n.add(new XI(r.indexId,t.key,fT,i))}return n}Jn(t,r,s,e,a){E(pT,"Updating index entries for document '%s'",r.key);let o=[];{var l=ZI,h=e=>{o.push(this.Hn(t,r,s,e))},c=e=>{o.push(this.Yn(t,r,s,e))},u=e.getIterator(),d=a.getIterator();let n=py(u),i=py(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=l(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(h(i),i=py(d)):r?(c(n),n=py(u)):(n=py(u),i=py(d))}}return M.waitFor(o)}Gn(e){let n=1;return yT(e).ee({index:F_,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>ZI(e,t)).filter((e,t,r)=>!t||0!==ZI(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=ZI(s,r),t=ZI(s,n);if(0===e)i[0]=r.An();else if(0<e&&t<0)i.push(s),i.push(s.An());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Zn(i[a],i[a+1]))return[];let e=i[a].Vn(this.uid,fT,P.empty()),t=i[a+1].Vn(this.uid,fT,P.empty());s.push(IDBKeyRange.bound(e,t))}return s}Zn(e,t){return 0<ZI(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(wT)}getMinOffset(t,e){return M.mapArray(this.Mn(e),e=>this.xn(t,e).next(e=>e||C(44426))).next(wT)}}function mT(e){return sy(e,A_)}function vT(e){return sy(e,V_)}function _T(e){return sy(e,x_)}function yT(e){return sy(e,M_)}function wT(e){S(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;Sv(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new Cv(t.readTime,t.documentKey,r)}let bT={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class IT{static withCacheSize(e){return new IT(e,IT.DEFAULT_COLLECTION_PERCENTILE,IT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function TT(t,r,n){let e=t.store(n_),i=t.store(c_),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{S(1===o,47070,{batchId:n.batchId})}));let h=[];for(let t of n.mutations){let e=l_(r,t.key.path,n.batchId);s.push(i.delete(e)),h.push(t.key)}return M.waitFor(s).next(()=>h)}function ET(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw C(14731);t=e.noDocument}return JSON.stringify(t).length}IT.DEFAULT_COLLECTION_PERCENTILE=10,IT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,IT.DEFAULT=new IT(41943040,IT.DEFAULT_COLLECTION_PERCENTILE,IT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),IT.DISABLED=new IT(-1,0,0);class CT{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Xn={}}static wt(e,t,r,n){S(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new CT(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return kT(e).ee({index:s_,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(u,d,p,f){let g=AT(u),m=kT(u);return m.add({}).next(t=>{S("number"==typeof t,49019);let e=new Nb(t,d,p,f),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>gI(i.yt,e)),l=a.mutations.map(e=>gI(i.yt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let h=new L((e,t)=>N(e.canonicalString(),t.canonicalString()));for(let c of f){let e=l_(this.userId,c.key.path,t);h=h.add(c.key.path.popLast()),n.push(m.put(r)),n.push(g.put(e,h_))}return h.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(u,e))}),u.addOnCommittedListener(()=>{this.Xn[t]=e.keys()}),M.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return kT(e).get(t).next(e=>e?(S(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),xI(this.serializer,e)):null)}er(e,r){return this.Xn[r]?M.resolve(this.Xn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Xn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return kT(e).ee({index:s_,range:r},(e,t,r)=>{t.userId===this.userId&&(S(t.batchId>=n,47524,{tr:n}),i=xI(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=Wv;return kT(e).ee({index:s_,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,Wv],[this.userId,Number.POSITIVE_INFINITY]);return kT(e).J(s_,t).next(e=>e.map(e=>xI(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=o_(this.userId,l.path),t=IDBKeyRange.lowerBound(e),h=[];return AT(o).ee({range:t},(t,e,r)=>{let[n,i,s]=t,a=Xv(i);if(n===this.userId&&l.path.isEqual(a))return kT(o).get(s).next(e=>{if(!e)throw C(61480,{nr:t,batchId:s});S(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),h.push(xI(this.serializer,e))});r.done()}).next(()=>h)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new L(N),r=[];return e.forEach(a=>{var e=o_(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=AT(t).ee({range:e},(e,t,r)=>{var[n,i,s]=e,i=Xv(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),M.waitFor(r).next(()=>this.rr(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=o_(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new L(N);return AT(e).ee({range:n},(e,t,r)=>{var[n,i,s]=e,i=Xv(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.rr(e,l))}rr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(kT(e).get(t).next(e=>{if(null===e)throw C(35274,{batchId:t});S(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(xI(this.serializer,e))}))}),M.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return TT(t.le,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.ir(r.batchId)}),M.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}ir(e){delete this.Xn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return M.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return AT(r).ee({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=Xv(t[1]);n.push(e)}else r.done()}).next(()=>{S(0===n.length,56720,{sr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return ST(e,this.userId,t)}_r(e){return NT(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:Wv,lastStreamToken:""})}}function ST(e,s,t){let r=o_(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return AT(e).ee({range:n,X:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function kT(e){return sy(e,n_)}function AT(e){return sy(e,c_)}function NT(e){return sy(e,r_)}class RT{constructor(e){this.ar=e}next(){return this.ar+=2,this.ar}static ur(){return new RT(0)}static cr(){return new RT(-1)}}class PT{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.lr(r).next(e=>{var t=new RT(e.highestTargetId);return e.highestTargetId=t.next(),this.hr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.lr(e).next(e=>O.fromTimestamp(new x(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.lr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.lr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.hr(t,e)))}addTargetData(t,r){return this.Pr(t,r).next(()=>this.lr(t).next(e=>(e.targetCount+=1,this.Tr(r,e),this.hr(t,e))))}updateTargetData(e,t){return this.Pr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>DT(t).delete(e.targetId)).next(()=>this.lr(t)).next(e=>(S(0<e.targetCount,8065),--e.targetCount,this.hr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return DT(n).ee((e,t)=>{var r=OI(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>M.waitFor(o)).next(()=>a)}forEachTarget(e,n){return DT(e).ee((e,t)=>{var r=OI(t);n(r)})}lr(e){return xT(e).get(S_).next(e=>(S(null!==e,2888),e))}hr(e,t){return xT(e).put(S_,t)}Pr(e,t){return DT(e).put(MI(this.serializer,t))}Tr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.lr(e).next(e=>e.targetCount)}getTargetData(e,i){var t=Cw(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return DT(e).ee({range:t,index:w_},(e,t,r)=>{var n=OI(t);Sw(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=OT(r);return e.forEach(e=>{var t=Yv(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),M.waitFor(i)}removeMatchingKeys(r,e,n){let i=OT(r);return M.forEach(e,e=>{var t=Yv(e.path);return M.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=OT(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=OT(e);let i=V();return n.ee({range:r,X:!0},(e,t,r)=>{var n=Xv(e[1]),n=new P(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Yv(t.path),r=IDBKeyRange.bound([r],[rv(r)],!1,!0);let n=0;return OT(e).ee({index:E_,X:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}At(e,t){return DT(e).get(t).next(e=>e?OI(e):null)}}function DT(e){return sy(e,y_)}function xT(e){return sy(e,k_)}function OT(e){return sy(e,I_)}let MT="LruGarbageCollector";function LT([e,t],[r,n]){var i=N(e,r);return 0===i?N(t,n):i}class FT{constructor(e){this.Ir=e,this.buffer=new L(LT),this.Er=0}dr(){return++this.Er}Ar(e){var t=[e,this.dr()];if(this.buffer.size<this.Ir)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();LT(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class UT{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Vr(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Vr(e){E(MT,`Garbage collection scheduled in ${e}ms`),this.Rr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Lv(e)?E(MT,"Ignoring IndexedDB error during garbage collection: ",e):await Nv(e)}await this.Vr(3e5)})}}class VT{constructor(e,t){this.mr=e,this.params=t}calculateTargetCount(e,t){return this.mr.gr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return M.resolve(Kv.ce);let r=new FT(t);return this.mr.forEachTarget(e,e=>r.Ar(e.sequenceNumber)).next(()=>this.mr.pr(e,e=>r.Ar(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.mr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.mr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector","Garbage collection skipped; disabled"),M.resolve(bT)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),bT):this.yr(t,r))}getCacheSize(e){return this.mr.getCacheSize(e)}yr(t,r){let n,i,s,a,o,l,h,c=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(E("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,l=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(h=Date.now(),Lm()<=d.DEBUG&&E("LruGarbageCollector",`LRU Garbage Collection
|
|
27
27
|
Counted targets in ${a-c}ms
|
|
28
28
|
Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(l-o)+"ms\n"+` Removed ${e} documents in `+(h-l)+"ms\n"+`Total Duration: ${h-c}ms`),M.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function qT(e,t){return new VT(e,t)}class BT{constructor(e,t){this.db=e,this.garbageCollector=qT(this,t)}gr(e){let r=this.wr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}wr(e){let t=0;return this.pr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}pr(e,r){return this.Sr(e,(e,t)=>r(t))}addReference(e,t,r){return jT(e,r)}removeReference(e,t,r){return jT(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return jT(e,t)}br(e,r){{var n=e,i=r;let t=!1;return NT(n).te(e=>ST(n,e,i).next(e=>(e&&(t=!0),M.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.Sr(r,(t,e)=>{if(e<=n){let e=this.br(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,O.min()),OT(r).delete([0,Yv(t.path)])))});s.push(e)}}).next(()=>M.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return jT(e,t)}Sr(e,n){var t=OT(e);let i,s=Kv.ce;return t.ee({index:E_},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==Kv.ce&&n(new P(Xv(i)),s),s=r,i=t):s=Kv.ce}).next(()=>{s!==Kv.ce&&n(new P(Xv(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function jT(e,t){return OT(e).put((e=e.currentSequenceNumber,{targetId:0,path:Yv(t.path),sequenceNumber:e}))}class zT{constructor(){this.changes=new Hw(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,nw.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?M.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class KT{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return $T(e).put(r)}removeEntry(e,t,r){return $T(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],RI(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.Dr(t,e)))}getEntry(e,r){let n=nw.newInvalidDocument(r);return $T(e).ee({index:p_,range:IDBKeyRange.only(QT(r))},(e,t)=>{n=this.Cr(r,t)}).next(()=>n)}vr(e,r){let n={size:0,document:nw.newInvalidDocument(r)};return $T(e).ee({index:p_,range:IDBKeyRange.only(QT(r))},(e,t)=>{n={document:this.Cr(r,t),size:ET(t)}}).next(()=>n)}getEntries(e,t){let n=Gw;return this.Fr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r)}).next(()=>n)}Mr(e,t){let n=Gw,i=new hy(P.comparator);return this.Fr(e,t,(e,t)=>{var r=this.Cr(e,t);n=n.insert(e,r),i=i.insert(e,ET(t))}).next(()=>({documents:n,Or:i}))}Fr(e,t,i){if(t.isEmpty())return M.resolve();let r=new L(JT),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(QT(r.first()),QT(r.last()))),s=r.getIterator(),a=s.getNext();return $T(e).ee({index:p_,range:n},(e,t,r)=>{for(var n=P.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&JT(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.j(QT(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),RI(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return $T(e).J(IDBKeyRange.bound(a,r,!0)).next(e=>{s?.incrementDocumentReadCount(e.length);let t=Gw;for(let r of e){let e=this.Cr(P.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(zw(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=Gw;var n=YT(t,r),a=YT(t,Cv.max());return $T(e).ee({index:g_,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Cr(P.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new HT(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return GT(e).get(__).next(e=>(S(!!e,20021),e))}Dr(e,t){return GT(e).put(__,t)}Cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=fI(e.yt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=P.fromSegments(r.noDocument.path),t=DI(r.noDocument.readTime);n=nw.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return C(56709);{let e=P.fromSegments(r.unknownDocument.path),t=DI(r.unknownDocument.version);n=nw.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new x(e[0],e[1]),O.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(O.min()))return e}return nw.newInvalidDocument(e)}}function WT(e){return new KT(e)}class HT extends zT{constructor(e,t){super(),this.Nr=e,this.trackRemovals=t,this.Br=new Hw(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new L((e,t)=>N(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Br.get(t);if(a.push(this.Nr.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=NI(this.Nr.serializer,r),i=(l=l.add(t.path.popLast()),ET(n));o+=i-e.size,a.push(this.Nr.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=NI(this.Nr.serializer,r.convertToNoDocument(O.min()));a.push(this.Nr.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Nr.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Nr.updateMetadata(s,o)),M.waitFor(a)}getFromCache(e,t){return this.Nr.vr(e,t).next(e=>(this.Br.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Nr.Mr(e,t).next(({documents:r,Or:e})=>(e.forEach((e,t)=>{this.Br.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function GT(e){return sy(e,v_)}function $T(e){return sy(e,u_)}function QT(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function YT(e,t){var r=t.documentKey.path.toArray();return[e,RI(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function JT(e,t){var r=e.path.toArray(),n=t.path.toArray();let i=0;for(let s=0;s<r.length-2&&s<n.length-2;++s)if(i=N(r[s],n[s]))return i;return(i=N(r.length,n.length))||(i=N(r[r.length-2],n[n.length-2]))||N(r[r.length-1],n[n.length-1])}class XT{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class ZT{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(t,r){let n=null;return this.documentOverlayCache.getOverlay(t,r).next(e=>(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&wb(n.mutation,e,fy.empty(),x.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,V()).next(()=>e))}getLocalViewOfDocuments(e,t,r=V()){let n=Jw();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Qw();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=Jw();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,V()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=Gw,a=Jw(),r=Jw();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof Tb)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),wb(r.mutation,t,r.mutation.getFieldMask(),x.now())):a.set(t.key,fy.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>r.set(e,new XT(t,a.get(e)??null))),r))}recalculateAndSaveOverlays(a,o){let l=Jw(),h=new hy((e,t)=>e-t),c=V();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=l.get(e)||fy.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(h.get(n.batchId)||V()).add(e),h=h.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=h.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=Jw();r.forEach(e=>{var t;c.has(e)||(null!==(t=yb(o.get(e),l.get(e)))&&n.set(e,t),c=c.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return M.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,P.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):Mw(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0<o-r.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-r.size):M.resolve(Jw());let n=vv,i=r;return e.next(e=>M.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?M.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,V())).next(e=>({batchId:n,changes:Yw(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new P(t)).next(e=>{let t=Qw();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=Qw();return this.indexManager.getCollectionParents(n,o).next(e=>M.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Pw(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,nw.newInvalidDocument(r)))});let i=Qw();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&wb(r.mutation,t,fy.empty(),x.now()),zw(s,t)&&(i=i.insert(e,t))}),i})}}class eE{constructor(e){this.serializer=e,this.Lr=new Map,this.kr=new Map}getBundleMetadata(e,t){return M.resolve(this.Lr.get(t))}saveBundleMetadata(e,t){return this.Lr.set(t.id,{id:t.id,version:t.version,createTime:nI(t.createTime)}),M.resolve()}getNamedQuery(e,t){return M.resolve(this.kr.get(t))}saveNamedQuery(e,t){return this.kr.set(t.name,{name:(t=t).name,query:LI(t.bundledQuery),readTime:nI(t.readTime)}),M.resolve()}}class tE{constructor(){this.overlays=new hy(P.comparator),this.qr=new Map}getOverlay(e,t){return M.resolve(this.overlays.get(t))}getOverlays(e,t){let r=Jw();return M.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.St(r,n,t)}),M.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.qr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.qr.delete(r)),M.resolve()}getOverlaysForCollection(e,r,n){let i=Jw(),s=r.length+1,t=new P(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return M.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new hy((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Jw(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=Jw(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return M.resolve(a)}St(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.qr.get(n.largestBatchId).delete(r.key);this.qr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new Pb(t,r));let i=this.qr.get(t);void 0===i&&(i=V(),this.qr.set(t,i)),this.qr.set(t,i.add(r.key))}}class rE{constructor(){this.sessionToken=my.EMPTY_BYTE_STRING}getSessionToken(e){return M.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,M.resolve()}}class nE{constructor(){this.Qr=new L(iE.$r),this.Ur=new L(iE.Kr)}isEmpty(){return this.Qr.isEmpty()}addReference(e,t){var r=new iE(e,t);this.Qr=this.Qr.add(r),this.Ur=this.Ur.add(r)}Wr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Gr(new iE(e,t))}zr(e,t){e.forEach(e=>this.removeReference(e,t))}jr(e){let t=new P(new R([])),r=new iE(t,e),n=new iE(t,e+1),i=[];return this.Ur.forEachInRange([r,n],e=>{this.Gr(e),i.push(e.key)}),i}Jr(){this.Qr.forEach(e=>this.Gr(e))}Gr(e){this.Qr=this.Qr.delete(e),this.Ur=this.Ur.delete(e)}Hr(e){var t=new P(new R([])),r=new iE(t,e),t=new iE(t,e+1);let n=V();return this.Ur.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new iE(e,0),t=this.Qr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class iE{constructor(e,t){this.key=e,this.Yr=t}static $r(e,t){return P.comparator(e.key,t.key)||N(e.Yr,t.Yr)}static Kr(e,t){return N(e.Yr,t.Yr)||P.comparator(e.key,t.key)}}class sE{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.tr=1,this.Zr=new L(iE.$r)}checkEmpty(e){return M.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.tr,s=(this.tr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new Nb(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Zr=this.Zr.add(new iE(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return M.resolve(s)}lookupMutationBatch(e,t){return M.resolve(this.Xr(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.ei(t+1),r=r<0?0:r;return M.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return M.resolve(0===this.mutationQueue.length?Wv:this.tr-1)}getAllMutationBatches(e){return M.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new iE(t,0),n=new iE(t,Number.POSITIVE_INFINITY),i=[];return this.Zr.forEachInRange([r,n],e=>{var t=this.Xr(e.Yr);i.push(t)}),M.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new L(N);return t.forEach(e=>{var t=new iE(e,0),r=new iE(e,Number.POSITIVE_INFINITY);this.Zr.forEachInRange([t,r],e=>{n=n.add(e.Yr)})}),M.resolve(this.ti(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;P.isDocumentKey(i)||(i=i.child(""));var s=new iE(new P(i),0);let a=new L(N);return this.Zr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Yr)),!0)},s),M.resolve(this.ti(a))}ti(e){let r=[];return e.forEach(e=>{var t=this.Xr(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){S(0===this.ni(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Zr;return M.forEach(n.mutations,e=>{var t=new iE(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Zr=i})}ir(e){}containsKey(e,t){var r=new iE(t,0),r=this.Zr.firstAfterOrEqual(r);return M.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,M.resolve()}ni(e,t){return this.ei(e)}ei(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Xr(e){var t=this.ei(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class aE{constructor(e){this.ri=e,this.docs=new hy(P.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.ri(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return M.resolve(r?r.document.mutableCopy():nw.newInvalidDocument(t))}getEntries(e,t){let r=Gw;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():nw.newInvalidDocument(e))}),M.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=Gw,a=r.path,t=new P(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||Sv(Ev(t),n)<=0||(i.has(t.key)||zw(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return M.resolve(s)}getAllFromCollectionGroup(e,t,r,n){C(9500)}ii(e,t){return M.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new oE(this)}getSize(e){return M.resolve(this.size)}}class oE extends zT{constructor(e){super(),this.Nr=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Nr.addEntry(r,t)):this.Nr.removeEntry(e)}),M.waitFor(n)}getFromCache(e,t){return this.Nr.getEntry(e,t)}getAllFromCache(e,t){return this.Nr.getEntries(e,t)}}class lE{constructor(e){this.persistence=e,this.si=new Hw(e=>Cw(e),Sw),this.lastRemoteSnapshotVersion=O.min(),this.highestTargetId=0,this.oi=0,this._i=new nE,this.targetCount=0,this.ai=RT.ur()}forEachTarget(e,r){return this.si.forEach((e,t)=>r(t)),M.resolve()}getLastRemoteSnapshotVersion(e){return M.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return M.resolve(this.oi)}allocateTargetId(e){return this.highestTargetId=this.ai.next(),M.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.oi&&(this.oi=t),M.resolve()}Pr(e){this.si.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.ai=new RT(t),this.highestTargetId=t),e.sequenceNumber>this.oi&&(this.oi=e.sequenceNumber)}addTargetData(e,t){return this.Pr(t),this.targetCount+=1,M.resolve()}updateTargetData(e,t){return this.Pr(t),M.resolve()}removeTargetData(e,t){return this.si.delete(t.target),this._i.jr(t.targetId),--this.targetCount,M.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.si.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.si.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),M.waitFor(a).next(()=>s)}getTargetCount(e){return M.resolve(this.targetCount)}getTargetData(e,t){var r=this.si.get(t)||null;return M.resolve(r)}addMatchingKeys(e,t,r){return this._i.Wr(t,r),M.resolve()}removeMatchingKeys(t,e,r){this._i.zr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),M.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this._i.jr(t),M.resolve()}getMatchingKeysForTargetId(e,t){var r=this._i.Hr(t);return M.resolve(r)}containsKey(e,t){return M.resolve(this._i.containsKey(t))}}class hE{constructor(e,t){this.ui={},this.overlays={},this.ci=new Kv(0),this.li=!1,this.li=!0,this.hi=new rE,this.referenceDelegate=e(this),this.Pi=new lE(this),this.indexManager=new uT,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Ti(e),new aE(e)),this.serializer=new AI(t),this.Ii=new eE(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.li=!1,Promise.resolve()}get started(){return this.li}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new tE,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.ui[e.toKey()];return r||(r=new sE(t,this.referenceDelegate),this.ui[e.toKey()]=r),r}getGlobalsCache(){return this.hi}getTargetCache(){return this.Pi}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ii}runTransaction(e,t,r){E("MemoryPersistence","Starting transaction:",e);let n=new cE(this.ci.next());return this.referenceDelegate.Ei(),r(n).next(e=>this.referenceDelegate.di(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ai(t,r){return M.or(Object.values(this.ui).map(e=>()=>e.containsKey(t,r)))}}class cE extends Av{constructor(e){super(),this.currentSequenceNumber=e}}class uE{constructor(e){this.persistence=e,this.Ri=new nE,this.Vi=null}static mi(e){return new uE(e)}get fi(){if(this.Vi)return this.Vi;throw C(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.fi.delete(r.toString()),M.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.fi.add(r.toString()),M.resolve()}markPotentiallyOrphaned(e,t){return this.fi.add(t.toString()),M.resolve()}removeTarget(e,t){this.Ri.jr(t.targetId).forEach(e=>this.fi.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.fi.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ei(){this.Vi=new Set}di(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return M.forEach(this.fi,e=>{let t=P.fromPath(e);return this.gi(r,t).next(e=>{e||n.removeEntry(t,O.min())})}).next(()=>(this.Vi=null,n.apply(r)))}updateLimboDocument(e,t){return this.gi(e,t).next(e=>{e?this.fi.delete(t.toString()):this.fi.add(t.toString())})}Ti(e){return 0}gi(e,t){return M.or([()=>M.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ai(e,t)])}}class dE{constructor(e,t){this.persistence=e,this.pi=new Hw(e=>Yv(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=qT(this,t)}static mi(e,t){return new dE(e,t)}Ei(){}di(e){return M.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}gr(e){let r=this.wr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}wr(e){let t=0;return this.pr(e,e=>{t++}).next(()=>t)}pr(r,n){return M.forEach(this.pi,(e,t)=>this.br(r,e,t).next(e=>e?M.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.ii(e,t=>this.br(e,t,r).next(e=>{e||(n++,i.removeEntry(t,O.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.pi.set(t,e.currentSequenceNumber),M.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.pi.set(r,e.currentSequenceNumber),M.resolve()}removeReference(e,t,r){return this.pi.set(r,e.currentSequenceNumber),M.resolve()}updateLimboDocument(e,t){return this.pi.set(t,e.currentSequenceNumber),M.resolve()}Ti(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(Fy(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=Sy(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return wy(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return oy(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw C(13486,{value:e})}}(e.data.value)),t}br(e,t,r){return M.or([()=>this.persistence.Ai(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.pi.get(t);return M.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class pE{constructor(e){this.serializer=e}k(t,e,r,n){let s=new Pv("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(e_),(i=t).createObjectStore(r_,{keyPath:"userId"}),i.createObjectStore(n_,{keyPath:i_,autoIncrement:!0}).createIndex(s_,a_,{unique:!0}),i.createObjectStore(c_),fE(t),t.createObjectStore(Zv));let a=M.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(I_),i.deleteObjectStore(y_),i.deleteObjectStore(k_),fE(t)),a=a.next(()=>{return e=s,t=e.store(k_),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:O.min().toTimestamp(),targetCount:0},t.put(S_,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(n_).J().next(e=>{n.deleteObjectStore(n_),n.createObjectStore(n_,{keyPath:i_,autoIncrement:!0}).createIndex(s_,a_,{unique:!0});let t=i.store(n_),r=e.map(e=>t.put(e));return M.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(R_,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.yi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(v_),this.wi(s)))),r<7&&7<=n&&(a=a.next(()=>this.Si(s))),r<8&&8<=n&&(a=a.next(()=>this.bi(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.Di(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(P_,{keyPath:"bundleId"}),t.createObjectStore(D_,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(z_,{keyPath:K_})).createIndex(W_,H_,{unique:!1}),e.createIndex(G_,$_,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(u_,{keyPath:d_})).createIndex(p_,f_),e.createIndex(g_,m_)}).next(()=>this.Ci(t,s)).next(()=>t.deleteObjectStore(Zv))),r<14&&14<=n&&(a=a.next(()=>this.Fi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(x_,{keyPath:"indexId",autoIncrement:!0}).createIndex(O_,"collectionGroup",{unique:!1}),e.createObjectStore(M_,{keyPath:L_}).createIndex(F_,U_,{unique:!1}),e.createObjectStore(V_,{keyPath:q_}).createIndex(B_,j_,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(M_).clear()}).next(()=>{e.objectStore(V_).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(Q_,{keyPath:"name"})})),a=r<18&&18<=n&&ge()?a.next(()=>{e.objectStore(M_).clear()}).next(()=>{e.objectStore(V_).clear()}):a}wi(t){let r=0;return t.store(Zv).ee((e,t)=>{r+=ET(t)}).next(()=>{var e={byteSize:r};return t.store(v_).put(__,e)})}yi(n){let e=n.store(r_),t=n.store(n_);return e.J().next(e=>M.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,Wv],[r.userId,r.lastAcknowledgedBatchId]);return t.J(s_,e).next(e=>M.forEach(e,e=>{S(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=xI(this.serializer,e);return TT(n,r.userId,t).next(()=>{})}))}))}Si(e){let a=e.store(I_),t=e.store(Zv);return e.store(k_).get(S_).next(i=>{let s=[];return t.ee((e,t)=>{let r=new R(e),n=[0,Yv(r)];s.push(a.get(n).next(e=>e?M.resolve():(e=r,a.put({targetId:0,path:Yv(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>M.waitFor(s))})}bi(e,t){e.createObjectStore(A_,{keyPath:N_});let n=t.store(A_),i=new dT,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Yv(t)})}};return t.store(Zv).ee({X:!0},(e,t)=>{var r=new R(e);return s(r.popLast())}).next(()=>t.store(c_).ee({X:!0},([,e],t)=>{var r=Xv(e);return s(r.popLast())}))}Di(e){let n=e.store(y_);return n.ee((e,t)=>{var r=OI(t),r=MI(this.serializer,r);return n.put(r)})}Ci(e,s){let t=s.store(Zv),a=[];return t.ee((e,t)=>{var r,n=s.store(u_),i=((r=t).document?new P(R.fromString(r.document.name).popFirst(5)):r.noDocument?P.fromSegments(r.noDocument.path):r.unknownDocument?P.fromSegments(r.unknownDocument.path):C(36783)).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>M.waitFor(a))}Fi(e,s){let t=s.store(n_),a=WT(this.serializer),o=new hE(uE.mi,this.serializer.yt);return t.J().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??V();xI(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),M.forEach(r,(e,t)=>{var r=new xm(t),n=zI.wt(this.serializer,r),i=o.getIndexManager(r),r=CT.wt(r,this.serializer,i,o.referenceDelegate);return new ZT(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new iy(s,Kv.ce),e).next()})})}}function fE(e){e.createObjectStore(I_,{keyPath:T_}).createIndex(E_,C_,{unique:!0}),e.createObjectStore(y_,{keyPath:"targetId"}).createIndex(w_,b_,{unique:!0}),e.createObjectStore(k_)}let gE="IndexedDbPersistence",mE="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class vE{constructor(e,t,r,n,i,s,a,o,l,h,c=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Mi=i,this.window=s,this.document=a,this.xi=l,this.Oi=h,this.Ni=c,this.ci=null,this.li=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Bi=null,this.inForeground=!1,this.Li=null,this.ki=null,this.qi=Number.NEGATIVE_INFINITY,this.Qi=e=>Promise.resolve(),!vE.v())throw new A(k.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new BT(this,n),this.$i=t+"main",this.serializer=new AI(o),this.Ui=new Dv(this.$i,this.Ni,new pE(this.serializer)),this.hi=new WI,this.Pi=new PT(this.referenceDelegate,this.serializer),this.remoteDocumentCache=WT(this.serializer),this.Ii=new qI,this.window&&this.window.localStorage?this.Ki=this.window.localStorage:(this.Ki=null,!1===h&&Fm(gE,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.Wi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Gi(),this.zi(),this.ji(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Pi.getHighestSequenceNumber(e));throw new A(k.FAILED_PRECONDITION,mE)}).then(e=>{this.ci=new Kv(e,this.xi)}).then(()=>{this.li=!0}).catch(e=>(this.Ui&&this.Ui.close(),Promise.reject(e)))}Ji(t){return this.Qi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ui.$(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Mi.enqueueAndForget(async()=>{this.started&&await this.Wi()}))}Wi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>yE(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Hi(t).next(e=>{e||(this.isPrimary=!1,this.Mi.enqueueRetryable(()=>this.Qi(!1)))})}).next(()=>this.Yi(t)).next(e=>this.isPrimary&&!e?this.Zi(t).next(()=>!1):!!e&&this.Xi(t).next(()=>!0))).catch(e=>{if(Lv(e))return E(gE,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return E(gE,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Mi.enqueueRetryable(()=>this.Qi(e)),this.isPrimary=e})}Hi(e){return _E(e).get(t_).next(e=>M.resolve(this.es(e)))}ts(e){return yE(e).delete(this.clientId)}async ns(){if(this.isPrimary&&!this.rs(this.qi,18e5)){this.qi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=sy(e,R_);return n.J().next(e=>{let t=this.ss(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return M.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Ki)for(var t of e)this.Ki.removeItem(this._s(t.clientId))}}ji(){this.ki=this.Mi.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.Wi().then(()=>this.ns()).then(()=>this.ji()))}es(e){return!!e&&e.ownerId===this.clientId}Yi(t){return this.Oi?M.resolve(!0):_E(t).get(t_).next(e=>{if(null!==e&&this.rs(e.leaseTimestampMs,5e3)&&!this.us(e.ownerId)){if(this.es(e)&&this.networkEnabled)return!0;if(!this.es(e)){if(e.allowTabSynchronization)return!1;throw new A(k.FAILED_PRECONDITION,mE)}}return!(!this.networkEnabled||!this.inForeground)||yE(t).J().next(e=>void 0===this.ss(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&E(gE,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.li=!1,this.cs(),this.ki&&(this.ki.cancel(),this.ki=null),this.ls(),this.hs(),await this.Ui.runTransaction("shutdown","readwrite",[e_,R_],e=>{let t=new iy(e,Kv.ce);return this.Zi(t).next(()=>this.ts(t))}),this.Ui.close(),this.Ps()}ss(e,t){return e.filter(e=>this.rs(e.updateTimeMs,t)&&!this.us(e.clientId))}Ts(){return this.runTransaction("getActiveClients","readonly",e=>yE(e).J().next(e=>this.ss(e,18e5).map(e=>e.clientId)))}get started(){return this.li}getGlobalsCache(){return this.hi}getMutationQueue(e,t){return CT.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Pi}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new gT(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return zI.wt(this.serializer,e)}getBundleCache(){return this.Ii}runTransaction(t,r,n){E(gE,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.Ni)?ny:17===e?ry:16===e?ty:15===e?ey:14===e?Z_:13===e?X_:12===e?J_:11===e?Y_:void C(60245);let a;return this.Ui.runTransaction(t,i,s,e=>(a=new iy(e,this.ci?this.ci.next():Kv.ce),"readwrite-primary"===r?this.Hi(a).next(e=>!!e||this.Yi(a)).next(e=>{if(e)return n(a);throw Fm(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Mi.enqueueRetryable(()=>this.Qi(!1)),new A(k.FAILED_PRECONDITION,kv)}).next(e=>this.Xi(a).next(()=>e)):this.Is(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Is(e){return _E(e).get(t_).next(e=>{if(null!==e&&this.rs(e.leaseTimestampMs,5e3)&&!this.us(e.ownerId)&&!this.es(e)&&!(this.Oi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new A(k.FAILED_PRECONDITION,mE)})}Xi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return _E(e).put(t_,t)}static v(){return Dv.v()}Zi(e){let t=_E(e);return t.get(t_).next(e=>this.es(e)?(E(gE,"Releasing primary lease."),t.delete(t_)):M.resolve())}rs(e,t){var r=Date.now();return!(e<r-t||r<e&&(Fm(`Detected an update time that is in the future: ${e} > `+r),1))}Gi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Li=()=>{this.Mi.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.Wi()))},this.document.addEventListener("visibilitychange",this.Li),this.inForeground="visible"===this.document.visibilityState)}ls(){this.Li&&(this.document.removeEventListener("visibilitychange",this.Li),this.Li=null)}zi(){"function"==typeof this.window?.addEventListener&&(this.Bi=()=>{this.cs();var e=/(?:Version|Mobile)\/1[456]/;fe()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Mi.enterRestrictedMode(!0),this.Mi.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Bi))}hs(){this.Bi&&(this.window.removeEventListener("pagehide",this.Bi),this.Bi=null)}us(e){try{var t=null!==this.Ki?.getItem(this._s(e));return E(gE,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return Fm(gE,"Failed to get zombied client id.",e),!1}}cs(){if(this.Ki)try{this.Ki.setItem(this._s(this.clientId),String(Date.now()))}catch(e){Fm("Failed to set zombie client id.",e)}}Ps(){if(this.Ki)try{this.Ki.removeItem(this._s(this.clientId))}catch(e){}}_s(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function _E(e){return sy(e,e_)}function yE(e){return sy(e,R_)}function wE(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class bE{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Es=r,this.ds=n}static As(e,t){let r=V(),n=V();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new bE(e,t.fromCache,r,n)}}class IE{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class TE{constructor(){this.Rs=!1,this.Vs=!1,this.fs=100,this.gs=fe()?8:0<xv(ae())?6:4}initialize(e,t){this.ps=e,this.indexManager=t,this.Rs=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.ys(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ws(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new IE;return this.Ss(r,n,t).next(e=>{if(i.result=e,this.Vs)return this.bs(r,n,t,e.size)})}}).next(()=>i.result)}bs(e,t,r,n){return r.documentReadCount<this.fs?(Lm()<=d.DEBUG&&E("QueryEngine","SDK will not create cache indexes for query:",jw(t),"since it only creates cache indexes for collection contains","more than or equal to",this.fs,"documents"),M.resolve()):(Lm()<=d.DEBUG&&E("QueryEngine","Query:",jw(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.gs*n?(Lm()<=d.DEBUG&&E("QueryEngine","The SDK decides to create cache indexes for query:",jw(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Fw(t))):M.resolve())}ys(i,s){if(Ow(s))return M.resolve(null);let t=Fw(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=Vw(s,null,"F"),t=Fw(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=V(...e);return this.ps.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.Ds(s,r);return this.Cs(s,t,n,e.readTime)?this.ys(i,Vw(s,null,"F")):this.vs(i,t,s,e)}))})))}ws(r,n,i,s){return Ow(n)||s.isEqual(O.min())?M.resolve(null):this.ps.getDocuments(r,i).next(e=>{var t=this.Ds(n,e);return this.Cs(n,t,i,s)?M.resolve(null):(Lm()<=d.DEBUG&&E("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),jw(n)),this.vs(r,t,n,Tv(s,vv)).next(e=>e))})}Ds(r,e){let n=new L(Ww(r));return e.forEach((e,t)=>{zw(r,t)&&(n=n.add(t))}),n}Cs(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}Ss(e,t,r){return Lm()<=d.DEBUG&&E("QueryEngine","Using full collection scan to execute query:",jw(t)),this.ps.getDocumentsMatchingQuery(e,t,Cv.min(),r)}vs(e,r,t,n){return this.ps.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let EE="LocalStore",CE=3e8;class SE{constructor(e,t,r,n){this.persistence=e,this.Fs=t,this.serializer=n,this.Ms=new hy(N),this.xs=new Hw(e=>Cw(e),Sw),this.Os=new Map,this.Ns=e.getRemoteDocumentCache(),this.Pi=e.getTargetCache(),this.Ii=e.getBundleCache(),this.Bs(r)}Bs(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new ZT(this.Ns,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Ns.setIndexManager(this.indexManager),this.Fs.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Ms))}}function kE(e,t,r,n){return new SE(e,t,r,n)}async function AE(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.Bs(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=V();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({Ls:e,removedBatchIds:t,addedBatchIds:r}))})})}function NE(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.Ns.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=M.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);S(null!==t,48541),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=V();for(let r=0;r<e.mutationResults.length;++r)0<e.mutationResults[r].transformResults.length&&(t=t.add(e.batch.mutations[r].key));return t})(n))).next(()=>i.localDocuments.getDocuments(e,t))})}function RE(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Pi.getLastRemoteSnapshotVersion(e))}function PE(e,h){let c=e,u=h.snapshotVersion,d=c.Ms;return c.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=c.Ns.newChangeBuffer({trackRemovals:!0}),l=(d=c.Ms,[]),t=(h.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(c.Pi.removeMatchingKeys(o,t.removedDocuments,r).next(()=>c.Pi.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==h.targetMismatches.get(r)?e=e.withResumeToken(my.EMPTY_BYTE_STRING,O.min()).withLastLimboFreeSnapshotVersion(O.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,u)),d=d.insert(r,e),n=a,i=e,s=t,(0===n.resumeToken.approximateByteSize()||i.snapshotVersion.toMicroseconds()-n.snapshotVersion.toMicroseconds()>=CE||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(c.Pi.updateTargetData(o,e))}}),Gw),r=V();if(h.documentUpdates.forEach(e=>{h.resolvedLimboDocuments.has(e)&&l.push(c.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(DE(o,e,h.documentUpdates).next(e=>{t=e.ks,r=e.qs})),!u.isEqual(O.min())){let e=c.Pi.getLastRemoteSnapshotVersion(o).next(e=>c.Pi.setTargetsMetadata(o,o.currentSequenceNumber,u));l.push(e)}return M.waitFor(l).next(()=>e.apply(o)).next(()=>c.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(c.Ms=d,e))}function DE(e,s,t){let r=V(),a=V();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=Gw;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(O.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0<t.version.compareTo(r.version)||0===t.version.compareTo(r.version)&&r.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):E(EE,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{ks:i,qs:a}})}function xE(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Pi.getTargetData(t,n).next(e=>e?(r=e,M.resolve(r)):i.Pi.allocateTargetId(t).next(e=>(r=new kI(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Pi.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Ms.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.Ms=i.Ms.insert(e.targetId,e),i.xs.set(n,e.targetId)),e})}async function OE(e,t,r){let n=e,i=n.Ms.get(t),s=r?"readwrite":"readwrite-primary";try{r||await n.persistence.runTransaction("Release target",s,e=>n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!Lv(e))throw e;E(EE,`Failed to update sequence numbers for target ${t}: `+e)}n.Ms=n.Ms.remove(t),n.xs.delete(i.target)}function ME(e,a,o){let l=e,h=O.min(),c=V();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=Fw(a),(void 0!==(s=(i=e).xs.get(n))?M.resolve(i.Ms.get(s)):i.Pi.getTargetData(r,n)).next(e=>{if(e)return h=e.lastLimboFreeSnapshotVersion,l.Pi.getMatchingKeysForTargetId(t,e.targetId).next(e=>{c=e})}).next(()=>l.Fs.getDocumentsMatchingQuery(t,a,o?h:O.min(),o?c:V())).next(e=>(UE(l,Kw(a),e),{documents:e,Qs:c}));var e,r,n,i,s})}function LE(e,t){let r=e,n=r.Pi,i=r.Ms.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.At(e,t).next(e=>e?e.target:null))}function FE(e,t){let r=e,n=r.Os.get(t)||O.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.Ns.getAllFromCollectionGroup(e,t,Tv(n,vv),Number.MAX_SAFE_INTEGER)).then(e=>(UE(r,t,e),e))}function UE(e,t,r){let n=e.Os.get(t)||O.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Os.set(t,n)}let VE="firestore_clients";function qE(e,t){return VE+`_${e}_`+t}let BE="firestore_mutations";function jE(e,t,r){let n=BE+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let zE="firestore_targets";function KE(e,t){return zE+`_${e}_`+t}let WE="SharedClientState";class HE{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Ws(e,t,r){var n=JSON.parse(r);let i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new A(n.error.code,n.error.message)),s?new HE(e,t,n.state,i):(Fm(WE,`Failed to parse mutation state for ID '${t}': `+r),null)}Gs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class GE{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Ws(e,t){var r=JSON.parse(t);let n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new A(r.error.code,r.error.message)),i?new GE(e,r.state,n):(Fm(WE,`Failed to parse target state for ID '${e}': `+t),null)}Gs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class $E{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Ws(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=eb;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=$v(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new $E(e,i):(Fm(WE,`Failed to parse client data for instance '${e}': `+t),null)}}class QE{constructor(e,t){this.clientId=e,this.onlineState=t}static Ws(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new QE(t.clientId,t.onlineState):(Fm(WE,"Failed to parse online state: "+e),null)}}class YE{constructor(){this.activeTargetIds=eb}zs(e){this.activeTargetIds=this.activeTargetIds.add(e)}js(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Gs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class JE{constructor(e,t,r,n,i){this.window=e,this.Mi=t,this.persistenceKey=r,this.Js=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Hs=this.Ys.bind(this),this.Zs=new hy(N),this.started=!1,this.Xs=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.eo=qE(this.persistenceKey,this.Js),this.no="firestore_sequence_number_"+this.persistenceKey,this.Zs=this.Zs.insert(this.Js,new YE),this.ro=new RegExp(`^${VE}_${s}_([^_]*)$`),this.io=new RegExp(`^${BE}_${s}_(\\d+)(?:_(.*))?$`),this.so=new RegExp(`^${zE}_${s}_(\\d+)$`),this.oo="firestore_online_state_"+this.persistenceKey,this._o="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Hs)}static v(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.Ts();for(let r of e)if(r!==this.Js){let e=this.getItem(qE(this.persistenceKey,r));var t;e&&(t=$E.Ws(r,e))&&(this.Zs=this.Zs.insert(t.clientId,t))}this.ao();let r=this.storage.getItem(this.oo);if(r){let e=this.uo(r);e&&this.co(e)}for(let e of this.Xs)this.Ys(e);this.Xs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.no,JSON.stringify(e))}getAllActiveQueryTargets(){return this.lo(this.Zs)}isActiveQueryTarget(r){let n=!1;return this.Zs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.ho(e,"pending")}updateMutationState(e,t,r){this.ho(e,t,r),this.Po(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(KE(this.persistenceKey,t));var n;e&&(n=GE.Ws(t,e))&&(r=n.state)}return e&&this.To.zs(t),this.ao(),r}removeLocalQueryTarget(e){this.To.js(e),this.ao()}isLocalQueryTarget(e){return this.To.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(KE(this.persistenceKey,e))}updateQueryState(e,t,r){this.Io(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.Po(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Eo(e)}notifyBundleLoaded(e){this.Ao(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Hs),this.removeItem(this.eo),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return E(WE,"READ",e,t),t}setItem(e,t){E(WE,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){E(WE,"REMOVE",e),this.storage.removeItem(e)}Ys(e){let t=e;t.storageArea===this.storage&&(E(WE,"EVENT",t.key,t.newValue),t.key===this.eo?Fm("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Mi.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.ro.test(t.key))return null==t.newValue?(e=this.Ro(t.key),this.Vo(e,null)):(e=this.mo(t.key,t.newValue))?this.Vo(e.clientId,e):void 0;if(this.io.test(t.key)){if(null!==t.newValue){var e=this.fo(t.key,t.newValue);if(e)return this.po(e)}}else if(this.so.test(t.key)){if(null!==t.newValue){var e=this.yo(t.key,t.newValue);if(e)return this.wo(e)}}else if(t.key===this.oo){if(null!==t.newValue){var e=this.uo(t.newValue);if(e)return this.co(e)}}else t.key===this.no?(e=(e=>{let t=Kv.ce;if(null!=e)try{var r=JSON.parse(e);S("number"==typeof r,30636,{So:e}),t=r}catch(e){Fm(WE,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==Kv.ce&&this.sequenceNumberHandler(e):t.key===this._o&&(e=this.bo(t.newValue),await Promise.all(e.map(e=>this.syncEngine.Do(e))))}}else this.Xs.push(t)}))}get To(){return this.Zs.get(this.Js)}ao(){this.setItem(this.eo,this.To.Gs())}ho(e,t,r){var n=new HE(this.currentUser,e,t,r),i=jE(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Gs())}Po(e){var t=jE(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Eo(e){var t={clientId:this.Js,onlineState:e};this.storage.setItem(this.oo,JSON.stringify(t))}Io(e,t,r){var n=KE(this.persistenceKey,e),i=new GE(e,t,r);this.setItem(n,i.Gs())}Ao(e){var t=JSON.stringify(Array.from(e));this.setItem(this._o,t)}Ro(e){var t=this.ro.exec(e);return t?t[1]:null}mo(e,t){var r=this.Ro(e);return $E.Ws(r,t)}fo(e,t){var r=this.io.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return HE.Ws(new xm(r),n,t)}yo(e,t){var r=this.so.exec(e),r=Number(r[1]);return GE.Ws(r,t)}uo(e){return QE.Ws(e)}bo(e){return JSON.parse(e)}async po(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.Co(e.batchId,e.state,e.error);E(WE,"Ignoring mutation for non-active user "+e.user.uid)}wo(e){return this.syncEngine.vo(e.targetId,e.state,e.error)}Vo(e,t){let r=t?this.Zs.insert(e,t):this.Zs.remove(e),n=this.lo(this.Zs),i=this.lo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Fo(s,a).then(()=>{this.Zs=r})}co(e){this.Zs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}lo(e){let r=eb;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class XE{constructor(){this.Mo=new YE,this.xo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.Mo.zs(e),this.xo[e]||"not-current"}updateQueryState(e,t,r){this.xo[e]=t}removeLocalQueryTarget(e){this.Mo.js(e)}isLocalQueryTarget(e){return this.Mo.activeTargetIds.has(e)}clearQueryState(e){delete this.xo[e]}getAllActiveQueryTargets(){return this.Mo.activeTargetIds}isActiveQueryTarget(e){return this.Mo.activeTargetIds.has(e)}start(){return this.Mo=new YE,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class ZE{Oo(e){}shutdown(){}}let e0="ConnectivityMonitor";class t0{constructor(){this.No=()=>this.Bo(),this.Lo=()=>this.ko(),this.qo=[],this.Qo()}Oo(e){this.qo.push(e)}shutdown(){window.removeEventListener("online",this.No),window.removeEventListener("offline",this.Lo)}Qo(){window.addEventListener("online",this.No),window.addEventListener("offline",this.Lo)}Bo(){E(e0,"Network connectivity changed: AVAILABLE");for(var e of this.qo)e(0)}ko(){E(e0,"Network connectivity changed: UNAVAILABLE");for(var e of this.qo)e(1)}static v(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let r0=null;function n0(){return null===r0?r0=268435456+Math.round(2147483648*Math.random()):r0++,"0x"+r0.toString(16)}let i0="RestConnection",s0={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class a0{constructor(e){this.Yo=e.Yo,this.Zo=e.Zo}Xo(e){this.e_=e}t_(e){this.n_=e}r_(e){this.i_=e}onMessage(e){this.s_=e}close(){this.Zo()}send(e){this.Yo(e)}o_(){this.e_()}__(){this.n_()}a_(e){this.i_(e)}u_(e){this.s_(e)}}let o0="WebChannelConnection";class l0 extends class{get $o(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Uo=t+"://"+e.host,this.Ko=`projects/${r}/databases/`+n,this.Wo=this.databaseId.database===Ny?"project_id="+r:`project_id=${r}&database_id=`+n}Go(t,e,r,n,i){let s=n0(),a=this.zo(t,e.toUriEncodedString());E(i0,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Ko,"x-goog-request-params":this.Wo},l=(this.jo(o,n,i),new URL(a)).host,l=ee(l);return this.Jo(t,a,o,r,l).then(e=>(E(i0,`Received RPC '${t}' ${s}: `,e),e),e=>{throw Um(i0,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Ho(e,t,r,n,i,s){return this.Go(e,t,r,n,i)}jo(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+Om,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}zo(e,t){var r=s0[e];return this.Uo+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.c_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}Jo(l,t,r,n,e){let h=n0();return new Promise((s,a)=>{let o=new ym;o.setWithCredentials(!0),o.listenOnce(bm.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case Im.NO_ERROR:var e=o.getResponseJson();E(o0,`XHR for RPC '${l}' ${h} received:`,JSON.stringify(e)),s(e);break;case Im.TIMEOUT:E(o0,`RPC '${l}' ${h} timed out`),a(new A(k.DEADLINE_EXCEEDED,"Request time out"));break;case Im.HTTP_ERROR:var t=o.getStatus();if(E(o0,`RPC '${l}' ${h} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=(e=Array.isArray(e)?e[0]:e)?.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(k).indexOf(i)?i:k.UNKNOWN;a(new A(e,r.message))}else a(new A(k.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new A(k.UNAVAILABLE,"Connection failed."));break;default:C(9055,{l_:l,streamId:h,h_:o.getLastErrorCode(),P_:o.getLastError()})}}finally{E(o0,`RPC '${l}' ${h} completed.`)}var n,i});var e=JSON.stringify(n);E(o0,`RPC '${l}' ${h} sending request:`,n),o.send(t,"POST",e,r,15)})}T_(i,e,t){let s=n0(),r=[this.Uo,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Sm(),a=Cm(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.jo(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var h=r.join("");E(o0,`Creating RPC '${i}' stream ${s}: `+h,o);let c=n.createWebChannel(h,o),u=(this.I_(c),!1),d=!1,p=new a0({Yo:e=>{d?E(o0,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(u||(E(o0,`Opening RPC '${i}' stream ${s} transport.`),c.open(),u=!0),E(o0,`RPC '${i}' stream ${s} sending:`,e),c.send(e))},Zo:()=>c.close()}),f=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(c,wm.EventType.OPEN,()=>{d||(E(o0,`RPC '${i}' stream ${s} transport opened.`),p.o_())}),f(c,wm.EventType.CLOSE,()=>{d||(d=!0,E(o0,`RPC '${i}' stream ${s} transport closed`),p.a_(),this.E_(c))}),f(c,wm.EventType.ERROR,e=>{d||(d=!0,Um(o0,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),p.a_(new A(k.UNAVAILABLE,"The operation could not be completed")))}),f(c,wm.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(S(!!t,16349),t),n=n?.error||n[0]?.error;if(n){E(o0,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=km[e];if(void 0!==t)return Ob(t)})(e),r=n.message;void 0===t&&(t=k.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,p.a_(new A(t,r)),c.close()}else E(o0,`RPC '${i}' stream ${s} received:`,t),p.u_(t)}}),f(a,Em.STAT_EVENT,e=>{e.stat===Tm.PROXY?E(o0,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===Tm.NOPROXY&&E(o0,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{p.__()},0),p}terminate(){this.c_.forEach(e=>e.close()),this.c_=[]}I_(e){this.c_.push(e)}E_(t){this.c_=this.c_.filter(e=>e===t)}}function h0(){return"undefined"!=typeof window?window:null}function c0(){return"undefined"!=typeof document?document:null}function u0(e){return new Zb(e,!0)}class d0{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Mi=e,this.timerId=t,this.d_=r,this.A_=n,this.R_=i,this.V_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.V_=0}g_(){this.V_=this.R_}p_(e){this.cancel();var t=Math.floor(this.V_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);0<n&&E("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.V_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.m_=this.Mi.enqueueAfterDelay(this.timerId,n,()=>(this.f_=Date.now(),e())),this.V_*=this.A_,this.V_<this.d_&&(this.V_=this.d_),this.V_>this.R_&&(this.V_=this.R_)}w_(){null!==this.m_&&(this.m_.skipDelay(),this.m_=null)}cancel(){null!==this.m_&&(this.m_.cancel(),this.m_=null)}y_(){return(Math.random()-.5)*this.V_}}let p0="PersistentStream";class f0{constructor(e,t,r,n,i,s,a,o){this.Mi=e,this.S_=r,this.b_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.D_=0,this.C_=null,this.v_=null,this.stream=null,this.F_=0,this.M_=new d0(e,t)}x_(){return 1===this.state||5===this.state||this.O_()}O_(){return 2===this.state||3===this.state}start(){this.F_=0,4!==this.state?this.auth():this.N_()}async stop(){this.x_()&&await this.close(0)}B_(){this.state=0,this.M_.reset()}L_(){this.O_()&&null===this.C_&&(this.C_=this.Mi.enqueueAfterDelay(this.S_,6e4,()=>this.k_()))}q_(e){this.Q_(),this.stream.send(e)}async k_(){if(this.O_())return this.close(0)}Q_(){this.C_&&(this.C_.cancel(),this.C_=null)}U_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.Q_(),this.U_(),this.M_.cancel(),this.D_++,4!==e?this.M_.reset():t&&t.code===k.RESOURCE_EXHAUSTED?(Fm(t.toString()),Fm("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===k.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.K_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.r_(t)}K_(){}auth(){this.state=1;let e=this.W_(this.D_),r=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.D_===r&&this.G_(e,t)},t=>{e(()=>{var e=new A(k.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.W_(this.D_);this.stream=this.j_(e,t),this.stream.Xo(()=>{r(()=>this.listener.Xo())}),this.stream.t_(()=>{r(()=>(this.state=2,this.v_=this.Mi.enqueueAfterDelay(this.b_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.t_()))}),this.stream.r_(e=>{r(()=>this.z_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.F_?this.J_(e):this.onNext(e))})}N_(){this.state=5,this.M_.p_(async()=>{this.state=0,this.start()})}z_(e){return E(p0,"close with error: "+e),this.stream=null,this.close(4,e)}W_(t){return e=>{this.Mi.enqueueAndForget(()=>this.D_===t?e():(E(p0,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class g0 extends f0{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}j_(e,t){return this.connection.T_("Listen",e,t)}J_(e){return this.onNext(e)}onNext(e){this.M_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(l=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===l?1:"REMOVE"===l?2:"CURRENT"===l?3:"RESET"===l?4:C(39313,{state:l}),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(S(void 0===l||"string"==typeof l,58123),my.fromBase64String(l||"")):(S(void 0===l||l instanceof Buffer||l instanceof Uint8Array,16193),my.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?k.UNKNOWN:Ob(l.code),new A(a,l.message||""));r=new Wb(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,lI(e,n.document.name)),s=nI(n.document.updateTime),a=n.document.createTime?nI(n.document.createTime):O.min(),o=new rw({mapValue:{fields:n.document.fields}}),i=nw.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new zb(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,lI(e,n.document)),o=n.readTime?nI(n.readTime):O.min(),i=nw.newNoDocument(s,o),s=n.removedTargetIds||[];r=new zb([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,lI(e,o.document)),s=o.removedTargetIds||[];r=new zb([],s,n,null)}else{if(!("filter"in t))return C(11601,{Rt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new Db(i,o),n=e.targetId;r=new Kb(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?nI(r.readTime):O.min();return this.listener.H_(t,r)}Y_(e){var t={},r=(t.database=uI(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=kw(e)?{documents:_I(t,e)}:{query:yI(t,e).ft}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=rI(t,r.resumeToken);let e=eI(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(O.min())){n.readTime=tI(t,r.snapshotVersion.toTimestamp());let e=eI(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),bI(this.serializer,e));r&&(t.labels=r),this.q_(t)}Z_(e){var t={};t.database=uI(this.serializer),t.removeTarget=e,this.q_(t)}}class m0 extends f0{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get X_(){return 0<this.F_}start(){this.lastStreamToken=void 0,super.start()}K_(){this.X_&&this.ea([])}j_(e,t){return this.connection.T_("Write",e,t)}J_(e){return S(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,S(!e.writeResults||0===e.writeResults.length,55816),this.listener.ta()}onNext(e){S(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.M_.reset();var t=vI(e.writeResults,e.commitTime),r=nI(e.commitTime);return this.listener.na(r,t)}ra(){var e={};e.database=uI(this.serializer),this.q_(e)}ea(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>gI(this.serializer,e))};this.q_(t)}}class v0 extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.ia=!1}sa(){if(this.ia)throw new A(k.FAILED_PRECONDITION,"The client has already been terminated.")}Go(r,n,i,s){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Go(r,sI(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===k.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new A(k.UNKNOWN,e.toString())})}Ho(r,n,i,s,a){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Ho(r,sI(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===k.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new A(k.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class _0{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.oa=0,this._a=null,this.aa=!0}ua(){0===this.oa&&(this.ca("Unknown"),this._a=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this._a=null,this.la("Backend didn't respond within 10 seconds."),this.ca("Offline"),Promise.resolve())))}ha(e){"Online"===this.state?this.ca("Unknown"):(this.oa++,1<=this.oa&&(this.Pa(),this.la("Connection failed 1 times. Most recent error: "+e.toString()),this.ca("Offline")))}set(e){this.Pa(),this.oa=0,"Online"===e&&(this.aa=!1),this.ca(e)}ca(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}la(e){var t=`Could not reach Cloud Firestore backend. ${e}
|
|
29
29
|
This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.aa?(Fm(t),this.aa=!1):E("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let y0="RemoteStore";class w0{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ta=[],this.Ia=new Map,this.Ea=new Set,this.da=[],this.Aa=i,this.Aa.Oo(e=>{r.enqueueAndForget(async()=>{var e;N0(this)&&(E(y0,"Restarting streams for network reachability change."),(e=this).Ea.add(4),await I0(e),e.Ra.set("Unknown"),e.Ea.delete(4),await b0(e))})}),this.Ra=new _0(r,n)}}async function b0(e){if(N0(e))for(var t of e.da)await t(!0)}async function I0(e){for(var t of e.da)await t(!1)}function T0(e,t){var r=e;r.Ia.has(t.targetId)||(r.Ia.set(t.targetId,t),A0(r)?k0(r):U0(r).O_()&&C0(r,t))}function E0(e,t){var r=e,n=U0(r);r.Ia.delete(t),n.O_()&&S0(r,t),0===r.Ia.size&&(n.O_()?n.L_():N0(r)&&r.Ra.set("Unknown"))}function C0(e,t){var r;e.Va.Ue(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(O.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),U0(e).Y_(t)}function S0(e,t){e.Va.Ue(t),U0(e).Z_(t)}function k0(t){t.Va=new Gb({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),At:e=>t.Ia.get(e)||null,ht:()=>t.datastore.serializer.databaseId}),U0(t).start(),t.Ra.ua()}function A0(e){return N0(e)&&!U0(e).x_()&&0<e.Ia.size}function N0(e){return 0===e.Ea.size}function R0(e){e.Va=void 0}async function P0(e,t,r){if(!Lv(t))throw t;e.Ea.add(1),await I0(e),e.Ra.set("Offline"),r=r||(()=>RE(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{E(y0,"Retrying IndexedDB access"),await r(),e.Ea.delete(1),await b0(e)})}function D0(t,r){return r().catch(e=>P0(t,e,r))}async function x0(e){var t,r,n,i,s=e,a=V0(s);let o=0<s.Ta.length?s.Ta[s.Ta.length-1].batchId:Wv;for(;N0(i=s)&&i.Ta.length<10;)try{let e=await((e,t)=>{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=Wv),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.Ta.length&&a.L_();break}o=e.batchId,t=s,r=e,n=void 0,t.Ta.push(r),(n=V0(t)).O_()&&n.X_&&n.ea(r.mutations)}catch(e){await P0(s,e)}O0(s)&&M0(s)}function O0(e){return N0(e)&&!V0(e).x_()&&0<e.Ta.length}function M0(e){V0(e).start()}async function L0(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),E(y0,"RemoteStore received new credentials"),N0(r));r.Ea.add(3),await I0(r),n&&r.Ra.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.Ea.delete(3),await b0(r)}async function F0(e,t){var r=e;t?(r.Ea.delete(2),await b0(r)):(r.Ea.add(2),await I0(r),r.Ra.set("Unknown"))}function U0(t){return t.ma||(t.ma=(e=t.datastore,r=t.asyncQueue,n={Xo:(async function(e){e.Ra.set("Online")}).bind(null,t),t_:(async function(r){r.Ia.forEach((e,t)=>{C0(r,e)})}).bind(null,t),r_:(async function(e,t){R0(e),A0(e)?(e.Ra.ha(t),k0(e)):e.Ra.set("Unknown")}).bind(null,t),H_:(async function(t,e,r){if(t.Ra.set("Online"),e instanceof Wb&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Ia.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Ia.delete(n),i.Va.removeTarget(n))}catch(r){E(y0,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await P0(t,r)}else if(e instanceof zb?t.Va.Ze(e):e instanceof Kb?t.Va.st(e):t.Va.tt(e),!r.isEqual(O.min()))try{let e=await RE(t.localStore);0<=r.compareTo(e)&&(l=r,(h=(o=t).Va.Tt(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.Ia.get(t))&&o.Ia.set(t,r.withResumeToken(e.resumeToken,l))}),h.targetMismatches.forEach((e,t)=>{var r=o.Ia.get(e);r&&(o.Ia.set(e,r.withResumeToken(my.EMPTY_BYTE_STRING,r.snapshotVersion)),S0(o,e),r=new kI(r.target,e,t,r.sequenceNumber),C0(o,r))}),await o.remoteSyncer.applyRemoteEvent(h))}catch(e){E(y0,"Failed to raise snapshot:",e),await P0(t,e)}var o,l,h}).bind(null,t)},(i=e).sa(),new g0(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.ma.B_(),A0(t)?k0(t):t.Ra.set("Unknown")):(await t.ma.stop(),R0(t))})),t.ma;var e,r,n,i}function V0(t){return t.fa||(t.fa=(e=t.datastore,r=t.asyncQueue,n={Xo:()=>Promise.resolve(),t_:(async function(e){V0(e).ra()}).bind(null,t),r_:(async function(e,t){if(t&&V0(e).X_){var r=e,n=t;if(xb(t=n.code)&&t!==k.ABORTED){let e=r.Ta.shift();V0(r).B_(),await D0(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await x0(r)}await 0}O0(e)&&M0(e)}).bind(null,t),ta:(async function(e){var t,r=V0(e);for(t of e.Ta)r.ea(t.mutations)}).bind(null,t),na:(async function(e,t,r){let n=e.Ta.shift(),i=Rb.from(n,t,r);await D0(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await x0(e)}).bind(null,t)},(i=e).sa(),new m0(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.da.push(async e=>{e?(t.fa.B_(),await x0(t)):(await t.fa.stop(),0<t.Ta.length&&(E(y0,`Stopping write stream with ${t.Ta.length} pending writes`),t.Ta=[]))})),t.fa;var e,r,n,i}class q0{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new Bm,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new q0(e,t,s,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new A(k.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function B0(e,t){if(Fm("AsyncQueue",t+": "+e),Lv(e))return new A(k.UNAVAILABLE,t+": "+e);throw e}class j0{static emptySet(e){return new j0(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||P.comparator(e.key,t.key):(e,t)=>P.comparator(e.key,t.key),this.keyedMap=Qw(),this.sortedSet=new hy(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof j0))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new j0;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class z0{constructor(){this.ga=new hy(P.comparator)}track(e){var t=e.doc.key,r=this.ga.get(t);!r||0!==e.type&&3===r.type?this.ga=this.ga.insert(t,e):3===e.type&&1!==r.type?this.ga=this.ga.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.ga=this.ga.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.ga=this.ga.remove(t):1===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):C(63341,{Rt:e,pa:r})}ya(){let r=[];return this.ga.inorderTraversal((e,t)=>{r.push(t)}),r}}class K0{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new K0(e,t,j0.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&qw(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n].type!==r[n].type||!t[n].doc.isEqual(r[n].doc))return!1;return!0}}class W0{constructor(){this.wa=void 0,this.Sa=[]}ba(){return this.Sa.some(e=>e.Da())}}class H0{constructor(){this.queries=G0(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e,r,t,n;e=this,r=new A(k.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=G0(),n.forEach((e,t)=>{for(let e of t.Sa)e.onError(r)})}}function G0(){return new Hw(e=>Bw(e),qw)}async function $0(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.ba()&&r.Da()&&(n=2):(s=new W0,n=r.Da()?0:1);try{switch(n){case 0:s.wa=await e.onListen(i,!0);break;case 1:s.wa=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=B0(t,`Initialization of query '${jw(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.Sa.push(r),r.va(e.onlineState),s.wa&&r.Fa(s.wa)&&Y0(e)}async function Q0(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.Sa.indexOf(t);0<=e&&(s.Sa.splice(e,1),0===s.Sa.length?i=t.Da()?0:1:!s.ba()&&t.Da()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function Y0(e){e.Ca.forEach(e=>{e.next()})}(Am=Am||{}).Ma="default",Am.Cache="cache";class J0{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new K0(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Oa?this.Ba(t)&&(this.xa.next(t),e=!0):this.La(t,this.onlineState)&&(this.ka(t),e=!0),this.Na=t,e}onError(e){this.xa.error(e)}va(e){this.onlineState=e;let t=!1;return this.Na&&!this.Oa&&this.La(this.Na,e)&&(this.ka(this.Na),t=!0),t}La(e,t){return!e.fromCache||!this.Da()||(!this.options.qa||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Ba(e){var t;return 0<e.docChanges.length||(t=this.Na&&this.Na.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}ka(e){e=K0.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Oa=!0,this.xa.next(e)}Da(){return this.options.source!==Am.Cache}}class X0{constructor(e,t){this.Qa=e,this.byteLength=t}$a(){return"metadata"in this.Qa}}class Z0{constructor(e){this.serializer=e}$s(e){return lI(this.serializer,e)}Us(e){return e.metadata.exists?fI(this.serializer,e.document,!1):nw.newNoDocument(this.$s(e.metadata.name),this.Ks(e.metadata.readTime))}Ks(e){return nI(e)}}class eC{constructor(e,t){this.Ua=e,this.serializer=t,this.Ka=[],this.Wa=[],this.collectionGroups=new Set,this.progress=tC(e)}get queries(){return this.Ka}get documents(){return this.Wa}Ga(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.Qa.namedQuery?this.Ka.push(e.Qa.namedQuery):e.Qa.documentMetadata?(this.Wa.push({metadata:e.Qa.documentMetadata}),e.Qa.documentMetadata.exists||++t,r=R.fromString(e.Qa.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.Qa.document&&(this.Wa[this.Wa.length-1].document=e.Qa.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}za(e){let r=new Map,n=new Z0(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.$s(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||V()).add(e);r.set(t,s)}}return r}async ja(e){let t=await(async(r,n,e,t)=>{let i=r,s=V(),a=Gw;for(let r of e){let e=n.$s(r.metadata.name),t=(r.document&&(s=s.add(e)),n.Us(r));t.setReadTime(n.Ks(r.metadata.readTime)),a=a.insert(e,t)}let o=i.Ns.newChangeBuffer({trackRemovals:!0}),l=await xE(i,(r=t,Fw(xw(R.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>DE(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Pi.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Pi.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.ks,e.qs)).next(()=>e.ks)))})(e,new Z0(this.serializer),this.Wa,this.Ua.id),r=this.za(this.documents);for(let t of this.Ka)await(async(e,r,n=V())=>{let i=await xE(e,Fw(LI(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=nI(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Ii.saveNamedQuery(e,r):(t=i.withResumeToken(my.EMPTY_BYTE_STRING,t),s.Ms=s.Ms.insert(t.targetId,t),s.Pi.updateTargetData(e,t).next(()=>s.Pi.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Pi.addMatchingKeys(e,n,i.targetId)).next(()=>s.Ii.saveNamedQuery(e,r)))})})(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ja:this.collectionGroups,Ha:t}}}function tC(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class rC{constructor(e){this.key=e}}class nC{constructor(e){this.key=e}}class iC{constructor(e,t){this.query=e,this.Ya=t,this.Za=null,this.hasCachedResults=!1,this.current=!1,this.Xa=V(),this.mutatedKeys=V(),this.eu=Ww(e),this.tu=new j0(this.eu)}get nu(){return this.Ya}ru(e,t){let o=t?t.iu:new z0,l=(t||this).tu,h=(t||this).mutatedKeys,c=l,u=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,p="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=zw(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.su(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.eu(n,d)||p&&this.eu(n,p)<0)&&(u=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||p)&&(u=!0),a&&(h=n?(c=c.add(n),s?h.add(e):h.delete(e)):(c=c.delete(e),h.delete(e)))}),null!==this.query.limit)for(;c.size>this.query.limit;){let e="F"===this.query.limitType?c.last():c.first();c=c.delete(e.key),h=h.delete(e.key),o.track({type:1,doc:e})}return{tu:c,iu:o,Cs:u,mutatedKeys:h}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.tu,s=(this.tu=e.tu,this.mutatedKeys=e.mutatedKeys,e.iu.ya()),a=(s.sort((e,t)=>{return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return C(20277,{Rt:e})}})(r)-i(n)||this.eu(e.doc,t.doc);var r,n,i}),this.ou(r),n=n??!1,t&&!n?this._u():[]),o=0===this.Xa.size&&this.current&&!n?1:0,l=o!==this.Za;return this.Za=o,0!==s.length||l?{snapshot:new K0(this.query,e.tu,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),au:a}:{au:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({tu:this.tu,iu:new z0,mutatedKeys:this.mutatedKeys,Cs:!1},!1)):{au:[]}}uu(e){return!this.Ya.has(e)&&!!this.tu.has(e)&&!this.tu.get(e).hasLocalMutations}ou(e){e&&(e.addedDocuments.forEach(e=>this.Ya=this.Ya.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ya=this.Ya.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let t=this.Xa,r=(this.Xa=V(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Xa=this.Xa.add(e.key))}),[]);return t.forEach(e=>{this.Xa.has(e)||r.push(new nC(e))}),this.Xa.forEach(e=>{t.has(e)||r.push(new rC(e))}),r}cu(e){this.Ya=e.Qs,this.Xa=V();var t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return K0.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Za,this.hasCachedResults)}}let sC="SyncEngine";class aC{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class oC{constructor(e){this.key=e,this.hu=!1}}class lC{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.Pu={},this.Tu=new Hw(e=>Bw(e),qw),this.Iu=new Map,this.Eu=new Set,this.du=new hy(P.comparator),this.Au=new Map,this.Ru=new nE,this.Vu={},this.mu=new Map,this.fu=RT.cr(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function hC(e,t,r,n){var i=await xE(e.localStore,Fw(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await cC(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&T0(e.remoteStore,i),o}async function cC(n,e,t,r,i){n.pu=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ru(r);i.Cs&&(i=await ME(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return wC(e,t.targetId,s.au),s.snapshot})(n,e,t,r);var s=await ME(n.localStore,e,!0),a=new iC(e,s.Qs),s=a.ru(s.documents),o=jb.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(wC(n,t,s.au),new aC(e,t,a));return n.Tu.set(e,o),n.Iu.has(t)?n.Iu.get(t).push(e):n.Iu.set(t,[e]),s.snapshot}async function uC(t,e,r){var n=kC(t);try{let t=await((e,i)=>{let s=e,a=x.now(),o=i.reduce((e,t)=>e.add(t.key),V()),l,h;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=Gw,r=V();return s.Ns.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{l=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=sb(i.transform,e||null);null!=t&&(n=null===n?rw.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new Tb(r.key,e,function i(e){let s=[];return oy(e.fields,(e,r)=>{var n=new av([e]);if(Qy(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new fy(s)}(e.value.mapValue),mb.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(h=e).applyToLocalDocumentSet(l,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:h.batchId,changes:Yw(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Vu[i.currentUser.toKey()];e=(e=e||new hy(N)).insert(s,a),i.Vu[i.currentUser.toKey()]=e}await IC(n,t.changes),await x0(n.remoteStore)}catch(t){let e=B0(t,"Failed to persist write");r.reject(e)}}async function dC(e,t){let n=e;try{let e=await PE(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Au.get(t);r&&(S(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0<e.addedDocuments.size?r.hu=!0:0<e.modifiedDocuments.size?S(r.hu,14607):0<e.removedDocuments.size&&(S(r.hu,42227),r.hu=!1))}),await IC(n,e,t)}catch(e){await Nv(e)}}function pC(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.Tu.forEach((e,t)=>{var r=t.view.va(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.Sa)e.va(a)&&(r=!0)}),r&&Y0(o)}n.length&&s.Pu.H_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function fC(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(S(null!==e,37113),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);vC(n,t,r),mC(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await IC(n,e)}catch(r){await Nv(r)}}async function gC(t,r){let n=t;N0(n.remoteStore)||E(sC,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===Wv?r.resolve():((i=n.mu.get(e)||[]).push(r),n.mu.set(e,i))}catch(t){let e=B0(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function mC(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function vC(e,t,r){var n=e;let i=n.Vu[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Vu[n.currentUser.toKey()]=i}}function _C(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Iu.get(e))t.Tu.delete(n),r&&t.Pu.yu(n,r);t.Iu.delete(e),t.isPrimaryClient&&t.Ru.jr(e).forEach(e=>{t.Ru.containsKey(e)||yC(t,e)})}function yC(e,t){e.Eu.delete(t.path.canonicalString());var r=e.du.get(t);null!==r&&(E0(e.remoteStore,r),e.du=e.du.remove(t),e.Au.delete(r),bC(e))}function wC(e,t,r){for(var n of r)n instanceof rC?(e.Ru.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.du.get(a)||i.Eu.has(o)||(E(sC,"New document in limbo: "+a),i.Eu.add(o),bC(i))):n instanceof nC?(E(sC,"Document no longer in limbo: "+n.key),e.Ru.removeReference(n.key,t),e.Ru.containsKey(n.key)||yC(e,n.key)):C(19791,{wu:n});var i,s,a,o}function bC(e){for(;0<e.Eu.size&&e.du.size<e.maxConcurrentLimboResolutions;){var t=e.Eu.values().next().value,t=(e.Eu.delete(t),new P(R.fromString(t))),r=e.fu.next();e.Au.set(r,new oC(t)),e.du=e.du.insert(t,r),T0(e.remoteStore,new kI(Fw(xw(t.path)),r,"TargetPurposeLimboResolution",Kv.ce))}}async function IC(e,t,n){let s=e,i=[],a=[],o=[];if(!s.Tu.isEmpty()){s.Tu.forEach((e,r)=>{o.push(s.pu(r,t,n).then(e=>{var t;(e||n)&&s.isPrimaryClient&&(t=e?!e.fromCache:n?.targetChanges.get(r.targetId)?.current,s.sharedClientState.updateQueryState(r.targetId,t?"current":"not-current")),e&&(i.push(e),t=bE.As(r.targetId,e),a.push(t))}))}),await Promise.all(o),s.Pu.H_(i);{var r=s.localStore,l=a;let i=r;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>M.forEach(l,t=>M.forEach(t.Es,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>M.forEach(t.ds,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(r){if(!Lv(r))throw r;E(EE,"Failed to update sequence numbers: "+r)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.Ms.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Ms=i.Ms.insert(n,r)}}}}}async function TC(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.er(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):M.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await x0(i.remoteStore):"acknowledged"===r||"rejected"===r?(vC(i,t,n||null),mC(i,t),i.localStore.mutationQueue.ir(t)):C(6720,"Unknown batchState",{Su:r}),await IC(i,s)):E(sC,"Cannot apply mutation batch with id: "+t)}async function EC(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.Iu.get(r);if(e&&0!==e.length){t=await xE(a.localStore,Fw(e[0]));for(let r of e){let e=a.Tu.get(r),t=(n=e,s=i=void 0,s=await ME((i=a).localStore,n.query,!0),s=n.view.cu(s),i.isPrimaryClient&&wC(i,n.targetId,s.au),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await LE(a.localStore,r);t=await xE(a.localStore,e),await cC(a,CC(e),r,!1,t.resumeToken)}o.push(t)}return a.Pu.H_(l),o}function CC(e){return Dw(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function SC(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=dC.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Au.get(t);if(r&&r.hu)return V().add(r.key);{let r=V(),e=n.Iu.get(t);if(e)for(let t of e){let e=n.Tu.get(t);r=r.unionWith(e.view.nu)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Au.get(n)),s=r&&r.key;if(s){let e=new hy(P.comparator),t=(e=e.insert(s,nw.newNoDocument(s,O.min())),V().add(s)),r=new Bb(O.min(),new Map,new hy(N),e,t);await dC(i,r),i.du=i.du.remove(s),i.Au.delete(n),bC(i)}else await OE(i.localStore,n,!1).then(()=>_C(i,n,t)).catch(Nv)}).bind(null,t),t.Pu.H_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.Sa)e.Fa(r)&&(i=!0);t.wa=r}}i&&Y0(n)}).bind(null,t.eventManager),t.Pu.yu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.Sa)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function kC(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await NE(r.localStore,t);vC(r,n,null),mC(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await IC(r,e)}catch(e){await Nv(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=fC.bind(null,t),t}function AC(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=nI(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Ii.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(tC(i));var s=new eC(i,r.serializer);let t=await r.bu();for(;t;){let e=await s.Ga(t);e&&n._updateProgress(e),t=await r.bu()}var a=await s.ja(e.localStore);return await IC(e,a.Ha,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Ii.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Ja)}catch(e){return Um(sC,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class NC{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=u0(e.databaseInfo.databaseId),this.sharedClientState=this.Du(e),this.persistence=this.Cu(e),await this.persistence.start(),this.localStore=this.vu(e),this.gcScheduler=this.Fu(e,this.localStore),this.indexBackfillerScheduler=this.Mu(e,this.localStore)}Fu(e,t){return null}Mu(e,t){return null}vu(e){return kE(this.persistence,new TE,e.initialUser,this.serializer)}Cu(e){return new hE(uE.mi,this.serializer)}Du(e){return new XE}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}NC.provider={build:()=>new NC};class RC extends NC{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){S(this.persistence.referenceDelegate instanceof dE,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new UT(r,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?IT.withCacheSize(this.cacheSizeBytes):IT.DEFAULT;return new hE(e=>dE.mi(e,t),this.serializer)}}class PC extends NC{constructor(e,t,r){super(),this.xu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.xu.initialize(this,e),await kC(this.xu.syncEngine),await x0(this.xu.remoteStore),await this.persistence.Ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){return kE(this.persistence,new TE,e.initialUser,this.serializer)}Fu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new UT(r,e.asyncQueue,t)}Mu(e,t){var r=new zv(t,this.persistence);return new jv(e.asyncQueue,r)}Cu(e){var t=wE(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?IT.withCacheSize(this.cacheSizeBytes):IT.DEFAULT;return new vE(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,h0(),c0(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Du(e){return new XE}}class DC extends PC{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.xu.syncEngine;this.sharedClientState instanceof JE&&(this.sharedClientState.syncEngine={Co:TC.bind(null,t),vo:(async function(e,r,n,t){var i=e;if(i.gu)E(sC,"Ignoring unexpected query state notification.");else{var s=i.Iu.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await FE(i.localStore,Kw(s[0])),t=Bb.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,my.EMPTY_BYTE_STRING);await IC(i,e,t);break}case"rejected":await OE(i.localStore,r,!0),_C(i,r,t);break;default:C(64155,n)}}}).bind(null,t),Fo:(async function(e,t,n){let i=SC(e);if(i.gu){for(let r of t)if(i.Iu.has(r)&&i.sharedClientState.isActiveQueryTarget(r))E(sC,"Adding an already active target "+r);else{let e=await LE(i.localStore,r),t=await xE(i.localStore,e);await cC(i,CC(e),t.targetId,!1,t.resumeToken),T0(i.remoteStore,t)}for(let r of n)i.Iu.has(r)&&await OE(i.localStore,r,!1).then(()=>{E0(i.remoteStore,r),_C(i,r)}).catch(Nv)}}).bind(null,t),Ts:(function(e){return e.localStore.persistence.Ts()}).bind(null,t),Do:(async function(e,t){let r=e;return FE(r.localStore,t).then(e=>IC(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ji(async e=>{{var t=this.xu.syncEngine,s=e;let i=t;if(SC(i),kC(i),!0===s&&!0!==i.gu){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await EC(i,e.toArray());i.gu=!0,await F0(i.remoteStore,!0);for(let e of t)T0(i.remoteStore,e)}else if(!1===s&&!1!==i.gu){let r=[],n=Promise.resolve();i.Iu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(_C(i,t),OE(i.localStore,t,!0))),E0(i.remoteStore,t)}),await n,await EC(i,r);{s=i;let r=s;r.Au.forEach((e,t)=>{E0(r.remoteStore,t)}),r.Ru.Jr(),r.Au=new Map,r.du=new hy(P.comparator)}i.gu=!1,await F0(i.remoteStore,!1)}}await 0,this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}Du(e){var t,r=h0();if(JE.v(r))return t=wE(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new JE(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new A(k.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class xC{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>pC(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){E(sC,"User change. New user:",t.toKey());let e=await AE(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).mu.forEach(e=>{e.forEach(e=>{e.reject(new A(k.CANCELLED,n))})}),r.mu.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await IC(i,e.Ls)}}).bind(null,this.syncEngine),await F0(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new H0}createDatastore(e){var t,r,n,i=u0(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new l0(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new v0(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>pC(this.syncEngine,e,0),i=new(t0.v()?t0:ZE),new w0(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new lC(r,n,i,s,a,e),t&&(o.gu=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,E(y0,"RemoteStore shutting down."),t.Ea.add(5),await I0(t),t.Aa.shutdown(),await!t.Ra.set("Unknown"),this.datastore?.terminate(),this.eventManager?.terminate()}}function OC(t,r=10240){let n=0;return{async read(){var e;return n<t.byteLength?(e={value:t.slice(n,n+r),done:!1},n+=r,e):{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}xC.provider={build:()=>new xC};class MC{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ou(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ou(this.observer.error,e):Fm("Uncaught Error in snapshot listener:",e.toString()))}Nu(){this.muted=!0}Ou(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class LC{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new Bm,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.$a()?this.metadata.resolve(e.Qa.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
|
|
30
|
-
`+JSON.stringify(e?.Qa)))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async bu(){return await this.getMetadata(),this.ku()}async ku(){var e,t,r=await this.qu();return null===r?null:(t=this.Lu.decode(r),e=Number(t),isNaN(e)&&this.Qu(`length string (${t}) is not valid number`),t=await this.$u(e),new X0(JSON.parse(t),r.length+e))}Uu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async qu(){for(;this.Uu()<0&&!await this.Ku(););var e,t;return 0===this.buffer.length?null:((e=this.Uu())<0&&this.Qu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async $u(e){for(;this.buffer.length<e;)await this.Ku()&&this.Qu("Reached the end of bundle when more is expected.");var t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Qu(e){throw this.Bu.cancel(),new Error("Invalid bundle format: "+e)}async Ku(){var e,t=await this.Bu.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class FC{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new A(k.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let l=e,r={documents:t.map(e=>oI(l.serializer,e))},n=await l.Ho("BatchGetDocuments",l.serializer.databaseId,R.emptyPath(),r,t.length),h=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,S(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=lI(r,n.found.name),s=nI(n.found.updateTime),o=n.found.createTime?nI(n.found.createTime):O.min(),a=new rw({mapValue:{fields:n.found.fields}}),nw.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,S(!!(n=e).missing,3894),S(!!n.readTime,22933),i=lI(r,n.missing),s=nI(n.readTime),nw.newNoDocument(i,s)):C(7234,{result:e});h.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=h.get(e.toString());S(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new kb(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=P.fromPath(t);this.mutations.push(new Ab(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>gI(t.serializer,e))};await t.Go("Commit",t.serializer.databaseId,R.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw C(50498,{Gu:e.constructor.name});t=O.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new A(k.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(O.min())?mb.exists(!1):mb.updateTime(t):mb.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return mb.exists(!0);if(t.isEqual(O.min()))throw new A(k.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return mb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class UC{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new d0(this.asyncQueue,"transaction_retry")}ju(){--this.zu,this.Ju()}Ju(){this.M_.p_(async()=>{let t=new FC(this.datastore),e=this.Hu(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Yu(e)}))}).catch(e=>{this.Yu(e)})})}Hu(e){try{var t=this.updateFunction(e);return!Hv(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Yu(e){0<this.zu&&this.Zu(e)?(--this.zu,this.asyncQueue.enqueueAndForget(()=>(this.Ju(),Promise.resolve()))):this.deferred.reject(e)}Zu(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!xb(t))}}let VC="FirestoreClient";class qC{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=xm.UNAUTHENTICATED,this.clientId=Ym.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{E(VC,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(E(VC,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new Bm;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=B0(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function BC(e,t){e.asyncQueue.verifyOperationInProgress(),E(VC,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await AE(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function jC(e,r){e.asyncQueue.verifyOperationInProgress();var t=await zC(e);E(VC,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>L0(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>L0(r.remoteStore,t)),e._onlineComponents=r}async function zC(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){E(VC,"Using user provided OfflineComponentProvider");try{await BC(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===k.FAILED_PRECONDITION||n.code===k.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;Um("Error using user provided cache. Falling back to memory cache: "+r),await BC(t,new NC)}}else E(VC,"Using default OfflineComponentProvider"),await BC(t,new RC(void 0));var n;return t._offlineComponents}async function KC(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(E(VC,"Using user provided OnlineComponentProvider"),await jC(e,e._uninitializedComponentsProvider._online)):(E(VC,"Using default OnlineComponentProvider"),await jC(e,new xC))),e._onlineComponents}function WC(e){return zC(e).then(e=>e.persistence)}function HC(e){return zC(e).then(e=>e.localStore)}function GC(e){return KC(e).then(e=>e.remoteStore)}function $C(e){return KC(e).then(e=>e.syncEngine)}async function QC(e){var t=await KC(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=SC(e);let i;var s=n.Tu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.lu()):await hC(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Tu.get(t),s=n.Iu.get(i.targetId);1<s.length?(n.Iu.set(i.targetId,s.filter(e=>!qw(e,t))),n.Tu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await OE(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&E0(n.remoteStore,i.targetId),_C(n,i.targetId)}).catch(Nv)):(_C(n,i.targetId),await OE(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await hC(SC(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Tu.get(t),i=r.Iu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),E0(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function YC(r){return r.asyncQueue.enqueue(async()=>{var e=await WC(r),t=await GC(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ea.add(0),await I0(t),t.Ra.set("Offline")})(t)})}function JC(e,t){let r=new Bm;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new A(k.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=B0(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await HC(e),t,r)),r.promise}function XC(e,t,h={}){let c=new Bm;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await QC(e),s=e.asyncQueue,a=t,o=h,l=c;let r=new MC({next:e=>{r.Nu(),s.enqueueAndForget(()=>Q0(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new A(k.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new A(k.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new J0(xw(a.path),r,{includeMetadataChanges:!0,qa:!0});return $0(i,n)}}),c.promise}function ZC(e,t){let r=new Bm;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await ME(e,t,!0),i=new iC(t,n.Qs),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=B0(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await HC(e),t,r)),r.promise}function eS(o,l,h={}){let c=new Bm;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await QC(o),i=o.asyncQueue,e=l,s=h,a=c;let t=new MC({next:e=>{t.Nu(),i.enqueueAndForget(()=>Q0(n,r)),e.fromCache&&"server"===s.source?a.reject(new A(k.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new J0(e,t,{includeMetadataChanges:!0,qa:!0});return $0(n,r)}}),c.promise}function tS(r,e){let n=new MC(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await QC(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.Nu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await QC(r),t=n,e.Ca.delete(t)})}}function rS(e,t,r,n){r=r,t=u0(t),s="string"==typeof r?Mb().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return OC(e,t);if(e instanceof ArrayBuffer)return OC(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new LC(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{AC(await $C(e),i,n)})}function nS(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await HC(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ii.getNamedQuery(e,r))}})}function iS(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let sS=new Map,aS="firestore.googleapis.com";class oS{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new A(k.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=aS,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new A(k.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}lv("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=iS(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30<t.timeoutSeconds)throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class lS{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new oS({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new A(k.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new A(k.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new oS(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new zm;switch(e.type){case"firstParty":return new Gm(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new A(k.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=sS.get(e))&&(E("ComponentProvider","Removing Datastore"),sS.delete(e),t.terminate()),Promise.resolve();var e,t}}class hS{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new hS(this.firestore,e,this._query)}}class q{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new cS(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new q(this.firestore,e,this._key)}toJSON(){return{type:q._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(gv(t,q._jsonSchema))return new q(e,r||null,new P(R.fromString(t.referencePath)))}}q._jsonSchemaVersion="firestore/documentReference/1.0",q._jsonSchema={type:fv("string",q._jsonSchemaVersion),referencePath:fv("string")};class cS extends hS{constructor(e,t,r){super(e,t,xw(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new q(this.firestore,null,new P(e))}withConverter(e){return new cS(this.firestore,e,this._path)}}function uS(e,t,...r){var n;if(e=w(e),ov("collection","path",t),e instanceof lS)return cv(n=R.fromString(t,...r)),new cS(e,null,n);if(e instanceof q||e instanceof cS)return cv(n=e._path.child(R.fromString(t,...r))),new cS(e.firestore,null,n);throw new A(k.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function dS(e,t,...r){var n;if(e=w(e),ov("doc","path",t=1===arguments.length?Ym.newId():t),e instanceof lS)return hv(n=R.fromString(t,...r)),new q(e,null,new P(n));if(e instanceof q||e instanceof cS)return hv(n=e._path.child(R.fromString(t,...r))),new q(e.firestore,e instanceof cS?e.converter:null,new P(n));throw new A(k.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function pS(e,t){return e=w(e),t=w(t),(e instanceof q||e instanceof cS)&&(t instanceof q||t instanceof cS)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function fS(e,t){return e=w(e),t=w(t),e instanceof hS&&t instanceof hS&&e.firestore===t.firestore&&qw(e._query,t._query)&&e.converter===t.converter}let gS="AsyncQueue";class mS{constructor(e=Promise.resolve()){this.Xu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new d0(this,"async_queue_retry"),this._c=()=>{var e=c0();e&&E(gS,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;var t=c0();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){var t;this.ec||(this.ec=!0,this.sc=e||!1,(t=c0())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c))}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new Bm;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Xu.push(e),this.lc()))}async lc(){if(0!==this.Xu.length){try{await this.Xu[0](),this.Xu.shift(),this.M_.reset()}catch(e){if(!Lv(e))throw e;E(gS,"Operation failed with retryable error: "+e)}0<this.Xu.length&&this.M_.p_(()=>this.lc())}}cc(e){var t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,Fm("INTERNAL UNHANDLED ERROR: ",vS(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t}enqueueAfterDelay(e,t,r){this.uc(),-1<this.oc.indexOf(e)&&(t=0);var n=q0.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&C(47125,{Pc:vS(this.nc)})}verifyOperationInProgress(){}async Tc(){for(var e;await(e=this.ac),e!==this.ac;);}Ic(e){for(var t of this.tc)if(t.timerId===e)return!0;return!1}Ec(t){return this.Tc().then(()=>{this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.tc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Tc()})}dc(e){this.oc.push(e)}hc(e){var t=this.tc.indexOf(e);this.tc.splice(t,1)}}function vS(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function _S(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class yS{constructor(){this._progressObserver={},this._taskCompletionResolver=new Bm,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var wS,bS;class IS extends lS{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new mS,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new mS(e),this._firestoreClient=void 0,await e)}}function TS(e){if(e._terminated)throw new A(k.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||ES(e),e._firestoreClient}function ES(e){var t,r,n,i,s=e._freezeSettings(),a=(i=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=s,new Ay(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,iS(n.experimentalLongPollingOptions),n.useFetchStreams,n.isUsingEmulator));e._componentsProvider||s.localCache?._offlineComponentProvider&&s.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider}),e._firestoreClient=new qC(e._authCredentials,e._appCheckCredentials,e._queue,a,e._componentsProvider&&(i=e._componentsProvider,s=i?._online.build(),{_offline:i?._offline.build(s),_online:s}))}function CS(e,t,r){if((e=D(e,IS))._firestoreClient||e._terminated)throw new A(k.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new A(k.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},ES(e)}function SS(r){if(r._initialized&&!r._terminated)throw new A(k.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new Bm;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=wE(r._databaseId,r._persistenceKey),await(Dv.v()?(t=e+"main",void await Dv.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function kS(e){return(r=TS(e=D(e,IS))).asyncQueue.enqueue(async()=>{var e=await WC(r),t=await GC(r);return e.setNetworkEnabled(!0),(e=t).Ea.delete(0),b0(e)});var r}class AS{constructor(e){this._byteString=e}static fromBase64String(e){try{return new AS(my.fromBase64String(e))}catch(e){throw new A(k.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new AS(my.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:AS._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(gv(e,AS._jsonSchema))return AS.fromBase64String(e.bytes)}}AS._jsonSchemaVersion="firestore/bytes/1.0",AS._jsonSchema={type:fv("string",AS._jsonSchemaVersion),bytes:fv("string")};class NS{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new A(k.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new av(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class RS{constructor(e){this._methodName=e}}class PS{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new A(k.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new A(k.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return N(this._lat,e._lat)||N(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:PS._jsonSchemaVersion}}static fromJSON(e){if(gv(e,PS._jsonSchema))return new PS(e.latitude,e.longitude)}}PS._jsonSchemaVersion="firestore/geoPoint/1.0",PS._jsonSchema={type:fv("string",PS._jsonSchemaVersion),latitude:fv("number"),longitude:fv("number")};class DS{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}toJSON(){return{type:DS._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(gv(e,DS._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new DS(e.vectorValues);throw new A(k.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}DS._jsonSchemaVersion="firestore/vectorValue/1.0",DS._jsonSchema={type:fv("string",DS._jsonSchemaVersion),vectorValues:fv("object")};let xS=/^__.*__$/;class OS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new Tb(e,this.data,this.fieldMask,t,this.fieldTransforms):new Ib(e,this.data,t,this.fieldTransforms)}}class MS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new Tb(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function LS(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw C(40011,{Ac:e})}}class FS{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Rc(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ac(){return this.settings.Ac}Vc(e){return new FS({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}mc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.gc(e),t}yc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.Rc(),t}wc(e){return this.Vc({path:void 0,fc:!0})}Sc(e){return nk(e,this.settings.methodName,this.settings.bc||!1,this.path,this.settings.Dc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Rc(){if(this.path)for(let e=0;e<this.path.length;e++)this.gc(this.path.get(e))}gc(e){if(0===e.length)throw this.Sc("Document fields must not be empty");if(LS(this.Ac)&&xS.test(e))throw this.Sc('Document fields cannot begin and end with "__"')}}class US{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||u0(e)}Cc(e,t,r,n=!1){return new FS({Ac:e,methodName:t,Dc:r,path:av.emptyPath(),fc:!1,bc:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function VS(e){var t=e._freezeSettings(),r=u0(e._databaseId);return new US(e._databaseId,!!t.ignoreUndefinedProperties,r)}function qS(e,n,i,t,r,s={}){var a=e.Cc(s.merge||s.mergeFields?2:0,n,i,r),o=(ZS("Data must be an object, but it was:",a,t),JS(t,a));let l,h;if(s.merge)l=new fy(a.fieldMask),h=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=ek(n,r,i);if(!a.contains(e))throw new A(k.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);ik(t,e)||t.push(e)}l=new fy(t),h=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,h=a.fieldTransforms;return new OS(new rw(o),l,h)}class BS extends RS{_toFieldTransform(e){if(2!==e.Ac)throw 1===e.Ac?e.Sc(this._methodName+"() can only appear at the top level of your update data"):e.Sc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof BS}}function jS(e,t,r){return new FS({Ac:3,Dc:t.settings.Dc,methodName:e._methodName,fc:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class zS extends RS{_toFieldTransform(e){return new fb(e.path,new ab)}isEqual(e){return e instanceof zS}}class KS extends RS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=jS(this,e,!0),r=this.vc.map(e=>YS(e,t)),n=new ob(r);return new fb(e.path,n)}isEqual(e){return e instanceof KS&&Ne(this.vc,e.vc)}}class WS extends RS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=jS(this,e,!0),r=this.vc.map(e=>YS(e,t)),n=new hb(r);return new fb(e.path,n)}isEqual(e){return e instanceof WS&&Ne(this.vc,e.vc)}}class HS extends RS{constructor(e,t){super(e),this.Fc=t}_toFieldTransform(e){var t=new ub(e.serializer,nb(e.serializer,this.Fc));return new fb(e.path,t)}isEqual(e){return e instanceof HS&&this.Fc===e.Fc}}function GS(e,i,s,t){let a=e.Cc(1,i,s),o=(ZS("Data must be an object, but it was:",a,t),[]),l=rw.empty();oy(t,(e,t)=>{var r=rk(i,e,s),n=(t=w(t),a.yc(r));if(t instanceof BS)o.push(r);else{let e=YS(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new fy(o);return new MS(l,r,a.fieldTransforms)}function $S(e,t,r,n,i,s){var a=e.Cc(1,t,r),o=[ek(t,n,r)],l=[i];if(s.length%2!=0)throw new A(k.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(ek(t,s[p])),l.push(s[p+1]);var h=[],c=rw.empty();for(let f=o.length-1;0<=f;--f)if(!ik(h,o[f])){let t=o[f];var u=w(l[f]);let r=a.yc(t);if(u instanceof BS)h.push(t);else{let e=YS(u,r);null!=e&&(h.push(t),c.set(t,e))}}var d=new fy(h);return new MS(c,d,a.fieldTransforms)}function QS(e,t,r,n=!1){return YS(r,e.Cc(n?4:3,t))}function YS(e,r){if(XS(e=w(e)))return ZS("Unsupported field value:",r,e),JS(e,r);if(e instanceof RS){{var t=e;var n=r;if(!LS(n.Ac))throw n.Sc(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Sc(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.fc&&4!==r.Ac)throw r.Sc("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=YS(s,a.wc(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=w(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return nb(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return h=x.fromDate(t),{timestampValue:tI(n.serializer,h)};if(t instanceof x)return h=new x(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:tI(n.serializer,h)};if(t instanceof PS)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof AS)return{bytesValue:rI(n.serializer,t._byteString)};if(t instanceof q){var h=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(h))return{referenceValue:iI(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Sc(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${h.projectId}/`+h.database)}if(t instanceof DS)return e=t,l=n,{mapValue:{fields:{[Py]:{stringValue:Oy},[My]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Sc("VectorValues must only contain numeric values.");return tb(l.serializer,e)})}}}}};throw n.Sc("Unsupported field value: "+dv(t))}function JS(e,n){let i={};return ly(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):oy(e,(e,t)=>{var r=YS(t,n.mc(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function XS(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof x||e instanceof PS||e instanceof AS||e instanceof q||e instanceof RS||e instanceof DS)}function ZS(e,t,r){var n;if(!XS(r)||!uv(r))throw"an object"===(n=dv(r))?t.Sc(e+" a custom object"):t.Sc(e+" "+n)}function ek(e,t,r){if((t=w(t))instanceof NS)return t._internalPath;if("string"==typeof t)return rk(e,t);throw nk("Field path arguments must be of type string or ",e,!1,void 0,r)}let tk=new RegExp("[~\\*/\\[\\]]");function rk(t,r,n){if(0<=r.search(tk))throw nk(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new NS(...r.split("."))._internalPath}catch(e){throw nk(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function nk(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,l=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(l+=" (found",s&&(l+=" in field "+n),a&&(l+=" in document "+i),l+=")"),new A(k.INVALID_ARGUMENT,o+e+l)}function ik(e,t){return e.some(e=>e.isEqual(t))}class sk{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new q(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new ak(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(ok("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class ak extends sk{data(){return super.data()}}function ok(e,t){return"string"==typeof t?rk(e,t):(t instanceof NS?t:t._delegate)._internalPath}function lk(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new A(k.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class hk{}class ck extends hk{}function uk(e,t,...r){let n=[];t instanceof hk&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof dk).length;if(1<i||0<i&&0<s)throw new A(k.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class dk extends ck{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new dk(e,t,r)}_apply(e){var t=this._parse(e);return wk(e._query,t),new hS(e.firestore,e.converter,Uw(e._query,t))}_parse(e){var t=VS(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new A(k.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){yk(l,o);let e=[];for(let t of l)e.push(_k(a,n,t));r={arrayValue:{values:e}}}else r=_k(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||yk(l,o),r=QS(s,i,l,"in"===o||"not-in"===o);return F.create(e,o,r)}}}(class extends hk{});class pk extends ck{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new pk(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new ow(t,r)})(e._query,this._field,this._direction);return new hS(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Pw(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class fk extends ck{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new fk(e,t,r)}_apply(e){return new hS(e.firestore,e.converter,Vw(e._query,this._limit,this._limitType))}}class gk extends ck{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new gk(e,t,r)}_apply(e){var t,r=vk(e,this.type,this._docOrFields,this._inclusive);return new hS(e.firestore,e.converter,(e=e._query,t=r,new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class mk extends ck{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new mk(e,t,r)}_apply(e){var t,r=vk(e,this.type,this._docOrFields,this._inclusive);return new hS(e.firestore,e.converter,(e=e._query,t=r,new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function vk(e,r,n,i){if(n[0]=w(n[0]),n[0]instanceof sk){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,h=i;if(!l)throw new A(k.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var c=[];for(let t of Lw(s))if(t.field.isKeyField())c.push(Ky(a,l.key));else{let e=l.data.field(t.field);if(Cy(e))throw new A(k.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new A(k.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}c.push(e)}return new iw(c,h)}var t=VS(e.firestore),u=e._query,d=e.firestore._databaseId,p=t,f=r,g=n,o=i,m=u.explicitOrderBy;if(g.length>m.length)throw new A(k.INVALID_ARGUMENT,`Too many arguments provided to ${f}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var v=[];for(let y=0;y<g.length;y++){var _=g[y];if(m[y].field.isKeyField()){if("string"!=typeof _)throw new A(k.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${f}(), but got a `+typeof _);if(!Mw(u)&&-1!==_.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${f}() must be a plain document ID, but '${_}' contains a slash.`);let e=u.path.child(R.fromString(_));if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${f}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new P(e);v.push(Ky(d,t))}else{let e=QS(p,f,_);v.push(e)}}return new iw(v,o)}function _k(e,t,r){if("string"==typeof(r=w(r))){if(""===r)throw new A(k.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Mw(t)&&-1!==r.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(R.fromString(r));if(P.isDocumentKey(n))return Ky(e,new P(n));throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof q)return Ky(e,r._key);throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${dv(r)}.`)}function yk(e,t){if(!Array.isArray(e)||0===e.length)throw new A(k.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function wk(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new A(k.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new A(k.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class bk{convertValue(e,t="none"){switch(Fy(e)){case 0:return null;case 1:return e.booleanValue;case 2:return yy(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(wy(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw C(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return oy(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[My].arrayValue?.values?.map(e=>yy(e.doubleValue));return new DS(t)}convertGeoPoint(e){return new PS(yy(e.latitude),yy(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=Sy(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(ky(e));default:return null}}convertTimestamp(e){var t=_y(e);return new x(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=R.fromString(e),n=(S(SI(r),9688,{name:e}),new Ry(r.get(1),r.get(3))),r=new P(r.popFirst(5));return n.isEqual(t)||Fm(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function Ik(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class Tk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new AS(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}class Ek{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class Ck extends sk{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new Sk(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(ok("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=Ck._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}Ck._jsonSchemaVersion="firestore/documentSnapshot/1.0",Ck._jsonSchema={type:fv("string",Ck._jsonSchemaVersion),bundleSource:fv("string","DocumentSnapshot"),bundleName:fv("string"),bundle:fv("string")};class Sk extends Ck{data(e={}){return super.data(e)}}class kk{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new Ek(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new Sk(this._firestore,this._userDataWriter,e.key,e,new Ek(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new A(k.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new Sk(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Ek(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new Sk(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Ek(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return C(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=kk._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=Ym.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function Ak(e,t){return e instanceof Ck&&t instanceof Ck?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof kk&&t instanceof kk&&e._firestore===t._firestore&&fS(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}kk._jsonSchemaVersion="firestore/querySnapshot/1.0",kk._jsonSchema={type:fv("string",kk._jsonSchemaVersion),bundleSource:fv("string","QuerySnapshot"),bundleName:fv("string"),bundle:fv("string")};class Nk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new AS(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}function Rk(e,t,r){e=D(e,q);var n=D(e.firestore,IS),i=Ik(e.converter,t,r);return xk(n,[qS(VS(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,mb.none())])}function Pk(e,t,r,...n){e=D(e,q);var i=D(e.firestore,IS),s=VS(i);return xk(i,[("string"==typeof(t=w(t))||t instanceof NS?$S(s,"updateDoc",e._key,t,r,n):GS(s,"updateDoc",e._key,t)).toMutation(e._key,mb.exists(!0))])}function Dk(n,...i){n=w(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||_S(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(_S(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,l;if(n instanceof q)o=D(n.firestore,IS),l=xw(n._key.path),a={next:e=>{i[s]&&i[s](Ok(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=D(n,hS),r=(o=D(t.firestore,IS),l=t._query,new Nk(o));a={next:e=>{i[s]&&i[s](new kk(o,r,t,e))},error:i[s+1],complete:i[s+2]},lk(n._query)}{var h=TS(o),c=l,u=r,d=a;let e=new MC(d),t=new J0(c,e,u);return h.asyncQueue.enqueueAndForget(async()=>$0(await QC(h),t)),()=>{e.Nu(),h.asyncQueue.enqueueAndForget(async()=>Q0(await QC(h),t))}}}function xk(t,r){{var n=TS(t),i=r;let e=new Bm;return n.asyncQueue.enqueueAndForget(async()=>uC(await $C(n),i,e)),e.promise}}function Ok(e,t,r){var n=r.docs.get(t._key),i=new Nk(e);return new Ck(e,i,t._key,n,new Ek(r.hasPendingWrites,r.fromCache),t.converter)}let Mk={maxAttempts:5};class Lk{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=VS(e)}set(e,t,r){this._verifyNotCommitted();var n=Fk(e,this._firestore),i=Ik(n.converter,t,r),i=qS(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,mb.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=Fk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof NS?$S(this._dataReader,"WriteBatch.update",i._key,t,r,n):GS(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,mb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=Fk(e,this._firestore);return this._mutations=this._mutations.concat(new kb(t._key,mb.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new A(k.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Fk(e,t){if((e=w(e)).firestore!==t)throw new A(k.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class Uk extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=VS(e)}get(e){let r=Fk(e,this._firestore),n=new Tk(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return C(24041);var t=e[0];if(t.isFoundDocument())return new sk(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new sk(this._firestore,n,r._key,null,r.converter);throw C(18433,{doc:t})})}set(e,t,r){var n=Fk(e,this._firestore),i=Ik(n.converter,t,r),i=qS(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=Fk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof NS?$S(this._dataReader,"Transaction.update",i._key,t,r,n):GS(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=Fk(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=Fk(e,this._firestore),r=new Nk(this._firestore);return super.get(e).then(e=>new Ck(this._firestore,r,t._key,e._document,new Ek(!1,!1),t.converter))}}function Vk(r,n,e){r=D(r,IS);var i={...Mk,...e};if(i.maxAttempts<1)throw new A(k.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=TS(r),a=e=>n(new Uk(r,e)),o=i;let t=new Bm;return s.asyncQueue.enqueueAndForget(async()=>{var e=await KC(s).then(e=>e.datastore);new UC(s.asyncQueue,e,o,a,t).ju()}),t.promise}}wS=!0,gD=qt,Om=gD,Dt(new c("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new IS(new Wm(e.getProvider("auth-internal")),new Qm(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new Ry(e.options.projectId,t);throw new A(k.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:wS,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),u(Pm,Dm,_N),u(Pm,Dm,"esm2020");function qk(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new A("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Bk(){if("undefined"==typeof Uint8Array)throw new A("unimplemented","Uint8Arrays are not available in this environment.")}function jk(){if("undefined"==typeof atob)throw new A("unimplemented","Blobs are unavailable in Firestore in this environment.")}class zk{constructor(e){this._delegate=e}static fromBase64String(e){return jk(),new zk(AS.fromBase64String(e))}static fromUint8Array(e){return Bk(),new zk(AS.fromUint8Array(e))}toBase64(){return jk(),this._delegate.toBase64()}toUint8Array(){return Bk(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function Kk(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class Wk{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};Um("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return CS(e,xC.provider,{build:e=>new PC(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{Um("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();CS(e,xC.provider,{build:e=>new DC(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return SS(e._delegate)}}class Hk{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof Ry||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||Um("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(i,s,a={}){{var[i,s,a,o={}]=[this._delegate,i,s,a];i=D(i,lS);let e=ee(s),t=i._getSettings(),r={...t,emulatorOptions:i._getEmulatorOptions()},n=s+":"+a;e&&(te("https://"+n),se("Firestore",!0)),t.host!==aS&&t.host!==n&&Um("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l={...t,host:n,ssl:e,emulatorOptions:o};if(!Ne(l,r)&&(i._setSettings(l),o.mockUserToken)){let t,r;if("string"==typeof o.mockUserToken)t=o.mockUserToken,r=xm.MOCK_USER;else{t=re(o.mockUserToken,i._app?.options.projectId);let e=o.mockUserToken.sub||o.mockUserToken.user_id;if(!e)throw new A(k.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new xm(e)}i._authCredentials=new Km(new jm(t,r))}}}enableNetwork(){return kS(this._delegate)}disableNetwork(){return YC(TS(D(this._delegate,IS)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,lv("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=TS(t=D(t,IS));let e=new Bm;return r.asyncQueue.enqueueAndForget(async()=>gC(await $C(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,tS(TS(t=D(t,IS)),_S(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new A("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new aA(this,uS(this._delegate,e))}catch(e){throw Xk(e,"collection()","Firestore.collection()")}}doc(e){try{return new Jk(this,dS(this._delegate,e))}catch(e){throw Xk(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new nA(this,((e,t)=>{if(e=D(e,lS),ov("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new hS(e,null,(e=t,new Pw(R.emptyPath(),e)))})(this._delegate,e))}catch(e){throw Xk(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return Vk(this._delegate,e=>t(new $k(this,e)))}batch(){return TS(this._delegate),new Qk(new Lk(this._delegate,e=>xk(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=TS(t=D(t,IS)),n=new yS,rS(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,nS(TS(t=D(t,IS)),e).then(e=>e?new hS(t,null,e.query):null).then(e=>e?new nA(this,e):null);var t}}class Gk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new zk(new AS(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Jk.forKey(t,this.firestore,null)}}class $k{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}get(e){let t=oA(e);return this._delegate.get(t).then(e=>new tA(this._firestore,new Ck(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=oA(e);return r?(qk("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=oA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=oA(e);return this._delegate.delete(t),this}}class Qk{constructor(e){this._delegate=e}set(e,t,r){var n=oA(e);return r?(qk("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=oA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=oA(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Yk{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Sk(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new rA(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=Yk.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Yk(e,new Gk(e),t),n.set(t,i)),i}}Yk.INSTANCES=new WeakMap;class Jk{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}static forPath(e,t,r){if(e.length%2!=0)throw new A("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Jk(t,new q(t._delegate,r,new P(e)))}static forKey(e,t,r){return new Jk(t,new q(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new aA(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new aA(this.firestore,uS(this._delegate,e))}catch(e){throw Xk(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=w(e))instanceof q&&pS(this._delegate,e)}set(e,t){t=qk("DocumentReference.set",t);try{return t?Rk(this._delegate,e,t):Rk(this._delegate,e)}catch(e){throw Xk(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Pk(this._delegate,e):Pk(this._delegate,e,t,...r)}catch(e){throw Xk(e,"updateDoc()","DocumentReference.update()")}}delete(){return xk(D((e=this._delegate).firestore,IS),[new kb(e._key,mb.none())]);var e}onSnapshot(...e){var t=Zk(e),r=eA(e,e=>new tA(this.firestore,new Ck(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Dk(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=D(t,q);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return JC(e,t._key).then(e=>new Ck(r,n,t._key,e,new Ek(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=D(t,q);let r=D(t.firestore,IS);return XC(TS(r),t._key,{source:"server"}).then(e=>Ok(r,t,e))}:t=>{t=D(t,q);let r=D(t.firestore,IS);return XC(TS(r),t._key).then(e=>Ok(r,t,e))})(this._delegate)).then(e=>new tA(this.firestore,new Ck(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Jk(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Xk(e,t,r){return e.message=e.message.replace(t,r),e}function Zk(e){for(var t of e)if("object"==typeof t&&!Kk(t))return t;return{}}function eA(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=Kk(e[0])?e[0]:Kk(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]}).error?.bind(r),complete:r.complete?.bind(r)}}class tA{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Jk(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return Ak(this._delegate,e._delegate)}}class rA extends tA{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||C(57014,e),t}}class nA{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}where(e,t,r){try{return new nA(this.firestore,uk(this._delegate,(n=r,i=t,s=ok("where",e),dk._create(s,i,n))))}catch(e){throw Xk(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new nA(this.firestore,uk(this._delegate,([r,n="asc"]=[e,t],i=n,s=ok("orderBy",r),pk._create(s,i))))}catch(e){throw Xk(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new nA(this.firestore,uk(this._delegate,(pv("limit",t=e),fk._create("limit",t,"F"))))}catch(e){throw Xk(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new nA(this.firestore,uk(this._delegate,(pv("limitToLast",t=e),fk._create("limitToLast",t,"L"))))}catch(e){throw Xk(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],gk._create("startAt",t,!0))))}catch(e){throw Xk(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],gk._create("startAfter",t,!1))))}catch(e){throw Xk(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],mk._create("endBefore",t,!1))))}catch(e){throw Xk(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],mk._create("endAt",t,!0))))}catch(e){throw Xk(e,"endAt()","Query.endAt()")}var t}isEqual(e){return fS(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return ZC(e,t._query).then(e=>new kk(r,n,t,e))}:"server"===e?.source?t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return eS(e,t._query,{source:"server"}).then(e=>new kk(r,n,t,e))}:t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return lk(t._query),eS(e,t._query).then(e=>new kk(r,n,t,e))})(this._delegate)).then(e=>new sA(this.firestore,new kk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Zk(e),r=eA(e,e=>new sA(this.firestore,new kk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Dk(this._delegate,t,r)}withConverter(e){return new nA(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class iA{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new rA(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class sA{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new nA(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new rA(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new iA(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new rA(this._firestore,e))})}isEqual(e){return Ak(this._delegate,e._delegate)}}class aA extends nA{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new Jk(this.firestore,e):null}doc(e){try{return void 0===e?new Jk(this.firestore,dS(this._delegate)):new Jk(this.firestore,dS(this._delegate,e))}catch(e){throw Xk(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=D(e.firestore,IS),n=dS(e),i=Ik(e.converter,t);return xk(r,[qS(VS(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,mb.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Jk(this.firestore,e))}isEqual(e){return pS(this._delegate,e._delegate)}withConverter(e){return new aA(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function oA(e){return D(e,q)}class lA{static serverTimestamp(){var e=new zS("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new lA(e)}static delete(){var e=new BS("deleteField");return e._methodName="FieldValue.delete",new lA(e)}static arrayUnion(...e){[...e]=[...e];var t=new KS("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new lA(t)}static arrayRemove(...e){[...e]=[...e];var t=new WS("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new lA(t)}static increment(e){e=e;var t=new HS("increment",e);return t._methodName="FieldValue.increment",new lA(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let hA={Firestore:Hk,GeoPoint:PS,Timestamp:x,Blob:zk,Transaction:$k,WriteBatch:Qk,DocumentReference:Jk,DocumentSnapshot:tA,Query:nA,QueryDocumentSnapshot:rA,QuerySnapshot:sA,CollectionReference:aA,FieldPath:class Gx{constructor(...e){this._delegate=new NS(...e)}static documentId(){return new Gx(av.keyField().canonicalString())}isEqual(e){return(e=w(e))instanceof NS&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:lA,setLogLevel:function(e){e=e,Mm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=hr,bS=(e,t)=>new Hk(e,t,new Wk),t.INTERNAL.registerComponent(new c("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return bS(t,r)},"PUBLIC").setServiceProps({...hA})),t.registerVersion("@firebase/firestore-compat","0.4.2-canary.a09ef786f");let cA="type.googleapis.com/google.protobuf.Int64Value",uA="type.googleapis.com/google.protobuf.UInt64Value";function dA(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function pA(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>pA(e));if("function"==typeof e||"object"==typeof e)return dA(e,e=>pA(e));throw new Error("Data cannot be encoded in JSON: "+e)}function fA(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case cA:case uA:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>fA(e)):"function"==typeof e||"object"==typeof e?dA(e,e=>fA(e)):e}let gA="functions",mA={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class vA extends ye{constructor(e,t,r){super(gA+"/"+e,t||""),this.details=r,Object.setPrototypeOf(this,vA.prototype)}}function _A(e,t){let r=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),n=r,i=void 0;try{var s=t&&t.error;if(s){let e=s.status;if("string"==typeof e){if(!mA[e])return new vA("internal","internal");r=mA[e],n=e}var a=s.message;"string"==typeof a&&(n=a),void 0!==(i=s.details)&&(i=fA(i))}}catch(e){}return"ok"===r?null:new vA(r,n,i)}class yA{constructor(e,t,r,n){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||r.get().then(e=>this.messaging=e,()=>{}),this.appCheck||n?.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{return(await this.auth.getToken())?.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let wA="us-central1",bA=/^data: (.*?)(?:\n|$)/;class IA{constructor(e,t,r,n,i=wA,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new yA(e,t,r,n),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin+("/"===a.pathname?"":a.pathname),this.region=wA}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function TA(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),SA(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),kA(r,n,e,t||{});var r,n},e}function EA(e){return e.emulatorOrigin&&ee(e.emulatorOrigin)?"include":void 0}async function CA(e,t){var r={},n=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return n.authToken&&(r.Authorization="Bearer "+n.authToken),n.messagingToken&&(r["Firebase-Instance-ID-Token"]=n.messagingToken),null!==n.appCheckToken&&(r["X-Firebase-AppCheck"]=n.appCheckToken),r}async function SA(e,t,r,n){var i={data:r=pA(r)},s=await CA(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new vA("deadline-exceeded","deadline-exceeded"))},r)}),cancel:()=>{n&&clearTimeout(n)}}})(n.timeout||7e4),i=await Promise.race([(async(e,t,r,n,i)=>{r["Content-Type"]="application/json";let s;try{s=await n(e,{method:"POST",body:JSON.stringify(t),headers:r,credentials:EA(i)})}catch(e){return{status:0,json:null}}let a=null;try{a=await s.json()}catch(e){}return{status:s.status,json:a}})(t,i,s,e.fetchImpl,e),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new vA("cancelled","Firebase Functions instance was deleted.");s=_A(i.status,i.json);if(s)throw s;if(!i.json)throw new vA("internal","Response is not valid JSON object.");let o=i.json.data;if(void 0===(o=void 0===o?i.json.result:o))throw new vA("internal","Response is missing data field.");return{data:fA(o)}}async function kA(e,t,r,n){var i={data:r=pA(r)},s=await CA(e,n);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(i),headers:s,signal:n?.signal,credentials:EA(e)})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new vA("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=_A(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,l;i=new Promise((e,t)=>{o=e,l=t}),n?.signal?.addEventListener("abort",()=>{var e=new vA("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let h=((a,s,o,l)=>{let h=(e,t)=>{var r=e.match(bA);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(fA(i.result)):"message"in i?t.enqueue(fA(i.message)):"error"in i&&(n=_A(0,i),t.error(n),o(n))}catch(e){e instanceof vA&&(t.error(e),o(e))}}},c=new TextDecoder;return new ReadableStream({start(i){let s="";return async function r(){if(l?.aborted){let e=new vA("cancelled","Request was cancelled");return i.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await a.read();if(e)s.trim()&&h(s.trim(),i),i.close();else{if(!l?.aborted){let e=(s+=c.decode(t,{stream:!0})).split("\n");s=e.pop()||"";for(var n of e)n.trim()&&h(n.trim(),i);return r()}{let e=new vA("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof vA?e:_A(0,null);i.error(t),o(t)}}()},cancel(){return a.cancel()}})})(s,o,l,n?.signal);return{stream:{[Symbol.asyncIterator](){let r=h.getReader();return{async next(){var{value:e,done:t}=await r.read();return{value:e,done:t}},async return(){return await r.cancel(),{done:!0,value:void 0}}}}},data:i}}let AA="@firebase/functions",NA="0.13.1-canary.a09ef786f";function RA(e,t,r){var n;e=w(e),r=r,n=ee(t=t),e.emulatorOrigin=`http${n?"s":""}://${t}:`+r,n&&(te(e.emulatorOrigin+"/backends"),se("Functions",!0))}function PA(e,t,r){return n=w(e),i=t,s=r,(a=e=>SA(n,i,e,s||{})).stream=(e,t)=>kA(n,i,e,t||{}),a;var n,i,s,a}Dt(new c(gA,(e,{instanceIdentifier:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new IA(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),u(AA,NA,r),u(AA,NA,"esm2020");var DA,xA,OA;class MA{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return TA(w(this._delegate),e,t)}httpsCallableFromURL(e,t){return PA(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new ye("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new ye("functions","Port missing in origin provided to useFunctionsEmulator()");return RA(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return RA(this._delegate,e,t)}}let LA="us-central1",FA=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:t??LA});return new MA(r,n)};or={Functions:MA},hr.INTERNAL.registerComponent(new c("functions-compat",FA,"PUBLIC").setServiceProps(or).setMultipleInstances(!0)),hr.registerVersion("@firebase/functions-compat","0.4.1-canary.a09ef786f");let UA="/firebase-messaging-sw.js",VA="/firebase-cloud-messaging-push-scope",qA="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",BA="https://fcmregistrations.googleapis.com/v1",jA="google.c.a.c_id",zA="google.c.a.c_l",KA="google.c.a.ts",WA="google.c.a.e",HA=1e4;function GA(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(gD=DA=DA||{}).PUSH_RECEIVED="push-received",gD.NOTIFICATION_CLICKED="notification-clicked";let $A="fcm_token_details_db",QA=5,YA="fcm_token_object_Store";async function JA(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes($A))return null;let o=null;return(await gt($A,QA,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(YA)&&(i=await(s=n.objectStore(YA)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:GA(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:GA(s.auth),p256dh:GA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:GA(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:GA(s.auth),p256dh:GA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:GA(s.vapidKey)}}))}})).close(),await mt($A),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(o)?o:null}let XA="firebase-messaging-database",ZA=1,e1="firebase-messaging-store",t1=null;function r1(){return t1=t1||gt(XA,ZA,{upgrade:(e,t)=>{0===t&&e.createObjectStore(e1)}})}async function n1(e){var t=s1(e),t=await(await r1()).transaction(e1).objectStore(e1).get(t);return t||((t=await JA(e.appConfig.senderId))?(await i1(e,t),t):void 0)}async function i1(e,t){var r=s1(e),n=(await r1()).transaction(e1,"readwrite");return await n.objectStore(e1).put(t,r),await n.done,t}function s1({appConfig:e}){return e.appId}let a1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function o1(e,t){var r={method:"DELETE",headers:await h1(e)};try{var n,i=await(await fetch(l1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,a1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw a1.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function l1({projectId:e}){return BA+`/projects/${e}/registrations`}async function h1({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function c1({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==qA&&(i.web.applicationPubKey=n),i}let u1=6048e5;async function d1(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:GA(a.getKey("auth")),p256dh:GA(a.getKey("p256dh"))},o=await n1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+u1?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await h1(e),n=c1(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(l1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw a1.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,a1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw a1.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await i1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await o1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return f1(e.firebaseDependencies,a)}async function p1(e){var t,r=await n1(e.firebaseDependencies),r=(r&&(await o1(e.firebaseDependencies,r.token),r=s1(e.firebaseDependencies),await(t=(await r1()).transaction(e1,"readwrite")).objectStore(e1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function f1(e,t){var r={token:await(async(e,t)=>{var r=await h1(e),n=c1(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(l1(e.appConfig),r);i=await s.json()}catch(e){throw a1.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,a1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw a1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await i1(e,r),r.token}function g1(e){var t,r,n,i={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return r=i,(t=e).notification&&(r.notification={},(n=t.notification.title)&&(r.notification.title=n),(n=t.notification.body)&&(r.notification.body=n),(n=t.notification.image)&&(r.notification.image=n),n=t.notification.icon)&&(r.notification.icon=n),t=i,(r=e).data&&(t.data=r.data),t=i,((r=e).fcmOptions||r.notification?.click_action)&&(t.fcmOptions={},(n=r.fcmOptions?.link??r.notification?.click_action)&&(t.fcmOptions.link=n),n=r.fcmOptions?.analytics_label)&&(t.fcmOptions.analyticsLabel=n),i}var m1="AzSCbw63g1R0nCw85jG8",v1="Iaya3yLKwmgvh7cF0q4",_1=[];for(let $x=0;$x<m1.length;$x++)_1.push(m1.charAt($x)),$x<v1.length&&_1.push(v1.charAt($x));function y1(e){return a1.create("missing-app-config-values",{valueName:e})}_1.join("");class w1{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw y1("App Configuration Object");if(!e.name)throw y1("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw y1(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}async function b1(e){try{e.swRegistration=await navigator.serviceWorker.register(UA,{scope:VA}),e.swRegistration.update().catch(()=>{}),i=e.swRegistration,await new Promise((t,e)=>{let r=setTimeout(()=>e(new Error(`Service worker not registered after ${HA} ms`)),HA),n=i.installing||i.waiting;i.active?(clearTimeout(r),t()):n?n.onstatechange=e=>{"activated"===e.target?.state&&(n.onstatechange=null,clearTimeout(r),t())}:(clearTimeout(r),e(new Error("No incoming service worker found.")))})}catch(e){throw a1.create("failed-service-worker-registration",{browserErrorMessage:e?.message})}var i}async function I1(e,t){if(!navigator)throw a1.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw a1.create("permission-blocked");n=e,await!((r=t?.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=qA));var r=e,n=t?.serviceWorkerRegistration;if(n||r.swRegistration||await b1(r),n||!r.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw a1.create("invalid-sw-registration");r.swRegistration=n}return await 0,d1(e)}async function T1(e,t,r){var n=(e=>{switch(e){case DA.NOTIFICATION_CLICKED:return"notification_open";case DA.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[jA],message_name:r[zA],message_time:r[KA],message_device_time:Math.floor(Date.now()/1e3)})}async function E1(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===DA.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(g1(n)):e.onMessageHandler.next(g1(n))),"object"==typeof(t=r=n.data))&&t&&jA in t&&"1"===r[WA]&&await T1(e,n.messageType,r)}let C1="@firebase/messaging",S1="0.12.23-canary.a09ef786f",k1=e=>{let t=new w1(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>E1(t,e)),t},A1=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>I1(t,e)}};function N1(e){return(async e=>{if(navigator)return e.swRegistration||await b1(e),p1(e);throw a1.create("only-available-in-window")})(e=w(e))}function R1(e,t){var r=e=w(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw a1.create("only-available-in-window")}Dt(new c("messaging",k1,"PUBLIC")),Dt(new c("messaging-internal",A1,"PRIVATE")),u(C1,S1),u(C1,S1,"esm2020");let P1="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",D1="https://fcmregistrations.googleapis.com/v1",x1="FCM_MSG",O1="google.c.a.c_id",M1=3,L1=1;function F1(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(_N=xA=xA||{})[_N.DATA_MESSAGE=1]="DATA_MESSAGE",_N[_N.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(t=OA=OA||{}).PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked";let U1="fcm_token_details_db",V1=5,q1="fcm_token_object_Store";async function B1(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(U1))return null;let o=null;return(await gt(U1,V1,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(q1)&&(i=await(s=n.objectStore(q1)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:F1(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:F1(s.auth),p256dh:F1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:F1(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:F1(s.auth),p256dh:F1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:F1(s.vapidKey)}}))}})).close(),await mt(U1),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(o)?o:null}let j1="firebase-messaging-database",z1=1,K1="firebase-messaging-store",W1=null;function H1(){return W1=W1||gt(j1,z1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(K1)}})}async function G1(e){var t=Q1(e),t=await(await H1()).transaction(K1).objectStore(K1).get(t);return t||((t=await B1(e.appConfig.senderId))?(await $1(e,t),t):void 0)}async function $1(e,t){var r=Q1(e),n=(await H1()).transaction(K1,"readwrite");return await n.objectStore(K1).put(t,r),await n.done,t}function Q1({appConfig:e}){return e.appId}let Y1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function J1(e,t){var r={method:"DELETE",headers:await Z1(e)};try{var n,i=await(await fetch(X1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,Y1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw Y1.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function X1({projectId:e}){return D1+`/projects/${e}/registrations`}async function Z1({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function eN({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==P1&&(i.web.applicationPubKey=n),i}let tN=6048e5;async function rN(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:F1(a.getKey("auth")),p256dh:F1(a.getKey("p256dh"))},o=await G1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+tN?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await Z1(e),n=eN(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(X1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw Y1.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Y1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw Y1.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await $1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await J1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return iN(e.firebaseDependencies,a)}async function nN(e){var t,r=await G1(e.firebaseDependencies),r=(r&&(await J1(e.firebaseDependencies,r.token),r=Q1(e.firebaseDependencies),await(t=(await H1()).transaction(K1,"readwrite")).objectStore(K1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function iN(e,t){var r={token:await(async(e,t)=>{var r=await Z1(e),n=eN(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(X1(e.appConfig),r);i=await s.json()}catch(e){throw Y1.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Y1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw Y1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await $1(e,r),r.token}var sN="AzSCbw63g1R0nCw85jG8",aN="Iaya3yLKwmgvh7cF0q4",oN=[];for(let Qx=0;Qx<sN.length;Qx++)oN.push(sN.charAt(Qx)),Qx<aN.length&&oN.push(aN.charAt(Qx));async function lN(e,t){var r=((e,t)=>{var r={};return e.from&&(r.project_number=e.from),e.fcmMessageId&&(r.message_id=e.fcmMessageId),r.instance_id=t,r.message_type=(e.notification?xA.DISPLAY_NOTIFICATION:xA.DATA_MESSAGE).toString(),r.sdk_platform=M1.toString(),r.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(r.collapse_key=e.collapse_key),r.event=L1.toString(),e.fcmOptions?.analytics_label&&(r.analytics_label=e.fcmOptions?.analytics_label),r})(t,await e.firebaseDependencies.installations.getId()),n=r,t=t.productId,r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:n}),t&&(r.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(r)}async function hN(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await lN(t,r);var n,i,s,a=await uN();if(a.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=OA.PUSH_RECEIVED;for(o of e)o.postMessage(l)}else r.notification&&await(e=>{var t=e.actions,r=Notification.maxActions;return t&&r&&t.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`),self.registration.showNotification(e.title??"",e)})(((a={...(e=r).notification}).data={[x1]:e},a)),t&&t.onBackgroundMessageHandler&&(a={from:(e=r).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=a,(n=e).notification&&(i.notification={},(s=n.notification.title)&&(i.notification.title=s),(s=n.notification.body)&&(i.notification.body=s),(s=n.notification.image)&&(i.notification.image=s),s=n.notification.icon)&&(i.notification.icon=s),n=a,(i=e).data&&(n.data=i.data),n=a,((i=e).fcmOptions||i.notification?.click_action)&&(n.fcmOptions={},(s=i.fcmOptions?.link??i.notification?.click_action)&&(n.fcmOptions.link=s),s=i.fcmOptions?.analytics_label)&&(n.fcmOptions.analyticsLabel=s),r=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(r):t.onBackgroundMessageHandler.next(r))}}async function cN(e){var t=e.notification?.data?.[x1];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var r=(e=>{var t=e.fcmOptions?.link??e.notification?.click_action;return t||((e=>"object"==typeof e&&e&&O1 in e)(e.data)?self.location.origin:null)})(t);if(r){var n,i=new URL(r,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await(async e=>{var t;for(t of await uN()){var r=new URL(t.url,self.location.href);if(e.host===r.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(r),n=3e3,await new Promise(e=>{setTimeout(e,n)})),e)return t.messageType=OA.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function uN(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function dN(e){return Y1.create("missing-app-config-values",{valueName:e})}oN.join("");class pN{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw dN("App Configuration Object");if(!e.name)throw dN("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw dN(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}let fN=e=>{let t=new pN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(hN(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var r;(r=e.newSubscription)?(r=await G1(t.firebaseDependencies),await nN(t),t.vapidKey=r?.subscriptionOptions?.vapidKey??P1,await rN(t)):await nN(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(cN(e))}),t};function gN(e,t){var r=e=w(e),e=t;if(void 0!==self.document)throw Y1.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}Dt(new c("messaging-sw",fN,"PUBLIC"));var mN,vN,_N;class yN{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>I1(e=w(e),t))(this._delegate,e)}async deleteToken(){return N1(this._delegate)}onMessage(e){return R1(this._delegate,e)}onBackgroundMessage(e){return gN(this._delegate,e)}}let wN=e=>self&&"ServiceWorkerGlobalScope"in self?new yN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new yN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),bN={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?me()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&me()&&_e()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};hr.INTERNAL.registerComponent(new c("messaging-compat",wN,"PUBLIC").setServiceProps(bN)),hr.registerVersion("@firebase/messaging-compat","0.2.23-canary.a09ef786f");let IN="firebasestorage.googleapis.com",TN="storageBucket";class EN extends ye{constructor(e,t,r=0){super(CN(e),`Firebase Storage: ${t} (${CN(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,EN.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return CN(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+`
|
|
31
|
-
`+this.customData.serverResponse:this.message=this._baseMessage}}function CN(e){return"storage/"+e}function SN(){return new EN(mN.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function kN(){return new EN(mN.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function AN(){return new EN(mN.CANCELED,"User canceled the upload/download.")}function NN(){return new EN(mN.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function RN(e){return new EN(mN.INVALID_ARGUMENT,e)}function PN(){return new EN(mN.APP_DELETED,"The Firebase app was deleted.")}function DN(e){return new EN(mN.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function xN(e,t){return new EN(mN.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function ON(e){throw new EN(mN.INTERNAL_ERROR,"Internal error: "+e)}(r=mN=mN||{}).UNKNOWN="unknown",r.OBJECT_NOT_FOUND="object-not-found",r.BUCKET_NOT_FOUND="bucket-not-found",r.PROJECT_NOT_FOUND="project-not-found",r.QUOTA_EXCEEDED="quota-exceeded",r.UNAUTHENTICATED="unauthenticated",r.UNAUTHORIZED="unauthorized",r.UNAUTHORIZED_APP="unauthorized-app",r.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",r.INVALID_CHECKSUM="invalid-checksum",r.CANCELED="canceled",r.INVALID_EVENT_NAME="invalid-event-name",r.INVALID_URL="invalid-url",r.INVALID_DEFAULT_BUCKET="invalid-default-bucket",r.NO_DEFAULT_BUCKET="no-default-bucket",r.CANNOT_SLICE_BLOB="cannot-slice-blob",r.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",r.NO_DOWNLOAD_URL="no-download-url",r.INVALID_ARGUMENT="invalid-argument",r.INVALID_ARGUMENT_COUNT="invalid-argument-count",r.APP_DELETED="app-deleted",r.INVALID_ROOT_OPERATION="invalid-root-operation",r.INVALID_FORMAT="invalid-format",r.INTERNAL_ERROR="internal-error",r.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class MN{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=MN.makeFromUrl(t,e)}catch(e){return new MN(t,"")}if(""===r.path)return r;throw e=t,new EN(mN.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var n="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+n+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${n}/o(/([^?#]*).*)?$`,"i"),o=t===IN?"(?:storage.googleapis.com|storage.cloud.google.com)":t,l=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${o}/${n}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let d=0;d<l.length;d++){var h=l[d],c=h.regex.exec(e);if(c){var u=c[h.indices.bucket];let e=c[h.indices.path];e=e||"",r=new MN(u,e),h.postModify(r);break}}if(null==r)throw t=e,new EN(mN.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class LN{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function FN(e){return"string"==typeof e||e instanceof String}function UN(e){return VN()&&e instanceof Blob}function VN(){return"undefined"!=typeof Blob}function qN(e,t,r,n){if(n<t)throw RN(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw RN(`Invalid value for '${e}'. Expected ${r} or less.`)}function BN(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function jN(e){var t,r,n=encodeURIComponent;let i="?";for(t in e)e.hasOwnProperty(t)&&(r=n(t)+"="+n(e[t]),i=i+r+"&");return i=i.slice(0,-1)}function zN(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(gD=vN=vN||{})[gD.NO_ERROR=0]="NO_ERROR",gD[gD.NETWORK_ERROR=1]="NETWORK_ERROR",gD[gD.ABORT=2]="ABORT";class KN{constructor(e,t,r,n,i,s,a,o,l,h,c,u=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=l,this.progressCallback_=h,this.connectionFactory_=c,this.retry=u,this.isUsingEmulator=d,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(i,e)=>{if(e)i(!1,new WN(!1,null,!0));else{let r=this.connectionFactory_(),n=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;var e=r.getErrorCode()===vN.NO_ERROR,t=r.getStatus();!e||zN(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===vN.ABORT,i(!1,new WN(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new WN(e,r)))})}},t=(e,t)=>{var r=this.resolve_,n=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?r(s):r()}catch(e){n(e)}else null!==i?((s=SN()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?PN:AN)()):n(kN())};this.canceled_?t(0,new WN(!1,null,!0)):this.backoffId_=((t,r,e)=>{let n=1,i=null,s=null,a=!1,o=0;function l(){return 2===o}let h=!1;function c(...e){h||(h=!0,r.apply(null,e))}function u(e){i=setTimeout(()=>{i=null,t(p,l())},e)}function d(){s&&clearTimeout(s)}function p(e,...t){if(h)d();else if(e)d(),c.call(null,e,...t);else if(l()||a)d(),c.call(null,e,...t);else{n<64&&(n*=2);let e;u(e=1===o?(o=2,0):1e3*(n+Math.random()))}}let f=!1;function g(e){f||(f=!0,d(),h)||(null!==i?(e||(o=2),clearTimeout(i),u(0)):e||(o=1))}return u(0),s=setTimeout(()=>{g(a=!0)},e),g})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class WN{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function HN(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var n=new r;for(let e=0;e<t.length;e++)n.append(t[e]);return n.getBlob()}if(VN())return new Blob(t);throw new EN(mN.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function GN(e){if("undefined"==typeof atob)throw new EN(mN.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let $N={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class QN{constructor(e,t){this.data=e,this.contentType=t||null}}function YN(e,t){switch(e){case $N.RAW:return new QN(JN(t));case $N.BASE64:case $N.BASE64URL:return new QN(XN(e,t));case $N.DATA_URL:return new QN((r=t,(n=new ZN(r)).base64?XN($N.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw xN($N.DATA_URL,"Malformed data URL.")}return JN(t)})(n.rest)),(r=t,new ZN(r).contentType))}var r,n;throw SN()}function JN(t){var r,n,i=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);e<=127?i.push(e):e<=2047?i.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,n=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&n,i.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):i.push(239,191,189):56320==(64512&e)?i.push(239,191,189):i.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(i)}function XN(t,e){switch(t){case $N.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw xN(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case $N.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw xN(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=GN(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw xN(t,"Invalid character found")}var s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class ZN{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw xN($N.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,n,t=t[1]||null;null!=t&&(this.base64=(n=";base64",(r=t).length>=n.length&&r.substring(r.length-n.length)===n),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class eR{constructor(e,t){let r=0,n="";UN(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){var r,n,i,s;return UN(this.data_)?(r=this.data_,i=e,s=t,null===(r=(n=r).webkitSlice?n.webkitSlice(i,s):n.mozSlice?n.mozSlice(i,s):n.slice?n.slice(i,s):null)?null:new eR(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new eR(r,!0))}static getBlob(...e){if(VN())return i=e.map(e=>e instanceof eR?e.data_:e),new eR(HN.apply(null,i));{var i=e.map(e=>FN(e)?YN($N.RAW,e).data:e.data_);let t=0,r=(i.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),n=0;return i.forEach(e=>{for(let t=0;t<e.length;t++)r[n++]=e[t]}),new eR(r,!0)}}uploadData(){return this.data_}}function tR(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function rR(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function nR(e,t){return t}class iR{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||nR}}let sR=null;function aR(){var e,t;return sR||((e=[]).push(new iR("bucket")),e.push(new iR("generation")),e.push(new iR("metageneration")),e.push(new iR("name","fullPath",!0)),(t=new iR("name")).xform=function(e,t){return!FN(t=t)||t.length<2?t:rR(t)},e.push(t),(t=new iR("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new iR("timeCreated")),e.push(new iR("updated")),e.push(new iR("md5Hash",null,!0)),e.push(new iR("cacheControl",null,!0)),e.push(new iR("contentDisposition",null,!0)),e.push(new iR("contentEncoding",null,!0)),e.push(new iR("contentLanguage",null,!0)),e.push(new iR("contentType",null,!0)),e.push(new iR("metadata","customMetadata",!0)),sR=e),sR}function oR(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new MN(e,t);return n._makeStorageReference(e)}})}function lR(e,t,r){var n=tR(t);if(null===n)return null;var t=e,i=n,s=r,a={type:"file"},o=s.length;for(let h=0;h<o;h++){var l=s[h];a[l.local]=l.xform(a,i[l.server])}return oR(a,t),a}function hR(e,t){var r={},n=t.length;for(let s=0;s<n;s++){var i=t[s];i.writable&&(r[i.server]=e[i.local])}return JSON.stringify(r)}let cR="prefixes",uR="items";function dR(e,t,r){var n=tR(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[cR])for(var o of r[cR]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new MN(s,o));a.prefixes.push(o)}if(r[uR])for(var l of r[uR]){l=i._makeStorageReference(new MN(s,l.name));a.items.push(l)}return a}class pR{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function fR(e){if(!e)throw SN()}function gR(n,i){return function(e,t){var r=lR(n,t,i);return fR(null!==r),r}}function mR(n,i){return function(e,t){var r=dR(n,i,t);return fR(null!==r),r}}function vR(o,n){return function(e,t){var r=lR(o,t,n);fR(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=tR(t)))return null;if(!FN(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let n=encodeURIComponent;return r.split(",").map(e=>{var t=i.bucket,r=i.fullPath;return BN("/b/"+n(t)+"/o/"+n(r),s,a)+jN({alt:"media",token:e})})[0]}}}function _R(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new EN(mN.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new EN(mN.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new EN(mN.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new EN(mN.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function yR(n){let i=_R(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new EN(mN.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function wR(e,t,r){var n=BN(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new pR(n,"GET",gR(e,r),i);return n.errorHandler=yR(t),n}function bR(e,t,r){var n=Object.assign({},r);return n.fullPath=e.path,n.size=t.size(),n.contentType||(n.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),n}function IR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),l=(a["Content-Type"]="multipart/related; boundary="+o,bR(t,n,i)),h="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+hR(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",h=eR.getBlob(h,n,o);if(null===h)throw NN();o={name:l.fullPath},l=BN(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new pR(l,"POST",gR(e,r),s);return l.urlParams=o,l.headers=a,l.body=h.uploadData(),l.errorHandler=_R(t),l}class TR{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function ER(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){fR(!1)}return fR(!!r&&-1!==(t||["active"]).indexOf(r)),r}function CR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=bR(t,n,i),o={name:a.fullPath},s=BN(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+n.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=hR(a,r),h=e.maxUploadRetryTime;s=new pR(s,"POST",function(e){ER(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){fR(!1)}return fR(FN(t)),t},h);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=_R(t),s}function SR(e,t,r,i){var n=e.maxUploadRetryTime,n=new pR(r,"POST",function(e){var t=ER(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){fR(!1)}r||fR(!1);var n=Number(r);return fR(!isNaN(n)),new TR(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=_R(t),n}function kR(e,a,t,o,r,l,n,i){let h=new TR(0,0);if(n?(h.current=n.current,h.total=n.total):(h.current=0,h.total=o.size()),o.size()!==h.total)throw new EN(mN.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=h.total-h.current;let c=s;0<r&&(c=Math.min(c,r));var u=h.current,d=u+c;let p="";s={"X-Goog-Upload-Command":p=0===c?"finalize":s===c?"upload, finalize":"upload","X-Goog-Upload-Offset":""+h.current},u=o.slice(u,d);if(null===u)throw NN();d=a.maxUploadRetryTime,d=new pR(t,"POST",function(e,t){var r=ER(e,["active","final"]),n=h.current+c,i=o.size();let s;return s="final"===r?gR(a,l)(e,t):null,new TR(n,i,"final"===r,s)},d);return d.headers=s,d.body=u.uploadData(),d.progressCallback=i||null,d.errorHandler=_R(e),d}let AR={STATE_CHANGED:"state_changed"},NR={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function RR(e){switch(e){case"running":case"pausing":case"canceling":return NR.RUNNING;case"paused":return NR.PAUSED;case"success":return NR.SUCCESS;case"canceled":return NR.CANCELED;default:return NR.ERROR}}class PR{constructor(e,t,r){var n;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=t??void 0,this.complete=r??void 0):(this.next=(n=e).next,this.error=n.error,this.complete=n.complete)}}function DR(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class xR extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=vN.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=vN.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=vN.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw ON("cannot .send() more than once");if(ee(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==i)for(var s in i)i.hasOwnProperty(s)&&this.xhr_.setRequestHeader(s,i[s].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw ON("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw ON("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw ON("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw ON("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function OR(){return new xR}class MR{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=aR(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(mN.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(zN(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=kN()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(mN.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=CR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let n=this._uploadUrl;this._resolveToken((e,t)=>{var r=SR(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let i=262144*this._chunkMultiplier,s=new TR(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=kR(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var n=this._ref.storage._makeRequest(r,OR,e,t,!1);(this._request=n).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=wR(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=IR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=AN(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=RR(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,n){let i=new PR(t||void 0,r||void 0,n||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(RR(this._state)){case NR.SUCCESS:DR(this._resolve.bind(null,this.snapshot))();break;case NR.CANCELED:case NR.ERROR:DR(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(RR(this._state)){case NR.RUNNING:case NR.PAUSED:e.next&&DR(e.next.bind(e,this.snapshot))();break;case NR.SUCCESS:e.complete&&DR(e.complete.bind(e))();break;case NR.CANCELED:case NR.ERROR:default:e.error&&DR(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class LR{constructor(e,t){this._service=e,t instanceof MN?this._location=t:this._location=MN.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new LR(e,t)}get root(){var e=new MN(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return rR(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new MN(this._location.bucket,r),new LR(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw DN(e)}}function FR(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await UR(t,i);r.prefixes.push(...s.prefixes);r.items.push(...s.items);null!=s.nextPageToken&&await e(t,r,s.nextPageToken)}(e,t).then(()=>t)}function UR(e,t){null!=t&&"number"==typeof t.maxResults&&qN("options.maxResults",1,1e3,t.maxResults);var r,n,i,s,a,o=t||{},l=(t=e.storage,r=e._location,n="/",i=o.pageToken,s=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",n&&0<n.length&&(o.delimiter=n),i&&(o.pageToken=i),s&&(o.maxResults=s),a=BN(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new pR(a,"GET",mR(t,r.bucket),l)).urlParams=o,a.errorHandler=_R(r),a);return e.storage.makeRequestWithTokens(l,OR)}function VR(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=aR(),s=BN(n.fullServerUrl(),r.host,r._protocol),a=hR(t,i),o=r.maxOperationRetryTime,(s=new pR(s,"PATCH",gR(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=yR(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,OR)}function qR(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=aR(),i=BN(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new pR(i,"GET",vR(t,n),s)).errorHandler=yR(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,OR).then(e=>{if(null===e)throw new EN(mN.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function BR(e){e._throwIfRoot("deleteObject");t=e.storage,n=BN((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new pR(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=yR(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,OR)}function jR(e,t){r=e._location.path,n=t.split("/").filter(e=>0<e.length).join("/");var r,n=0===r.length?n:r+"/"+n,n=new MN(e._location.bucket,n);return new LR(e.storage,n)}function zR(e,t){if(e instanceof HR){var r=e;if(null==r._bucket)throw new EN(mN.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+TN+"' property when initializing the app?");r=new LR(r,r._bucket);return null!=t?zR(r,t):r}return void 0!==t?jR(e,t):e}function KR(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof HR)return r=e,n=t,new LR(r,n);throw RN("To use ref(service, url), the first argument must be a Storage instance.")}return zR(e,t);var r,n}function WR(e,t){var r=t?.[TN];return null==r?null:MN.makeFromBucketSpec(r,e)}class HR{constructor(e,t,r,n,i,s=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=i,this._isUsingEmulator=s,this._bucket=null,this._host=IN,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?MN.makeFromBucketSpec(n,this._host):WR(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=MN.makeFromBucketSpec(this._url,e):this._bucket=WR(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){qN("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){qN("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new LR(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new LN(PN());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],c=jN(t.urlParams),c=t.url+c,u=Object.assign({},t.headers),h=u,(n=n)&&(h["X-Firebase-GMPID"]=n),h=u,null!==(n=i)&&0<n.length&&(h.Authorization="Firebase "+n),u["X-Firebase-Storage-Version"]="webjs/"+(a??"AppManager"),i=u,null!==(h=r)&&(i["X-Firebase-AppCheck"]=h);let e=new KN(c,t.method,u,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,s,o,l);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,l,h,c,u}async makeRequestWithTokens(e,t){var[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let GR="@firebase/storage",$R="0.14.0-canary.a09ef786f";function QR(e,t,r){return e=w(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new MR(e,new eR(t),r)}function YR(e){return e=w(e),(e=e)._throwIfRoot("getMetadata"),t=wR(e.storage,e._location,aR()),e.storage.makeRequestWithTokens(t,OR);var t}function JR(e,t){return KR(e=w(e),t)}function XR(e,t,r,n={}){var i;[e,t,r,n={}]=[e,t,r,n],e.host=t+":"+r,(i=((i=ee(t))&&(te(`https://${e.host}/b`),se("Storage",!0)),e._isUsingEmulator=!0,e._protocol=i?"https":"http",n).mockUserToken)&&(e._overrideAuthToken="string"==typeof i?i:re(i,e.app.options.projectId))}function ZR(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new HR(r,n,i,t,qt)}Dt(new c("storage",ZR,"PUBLIC").setMultipleInstances(!0)),u(GR,$R,""),u(GR,$R,"esm2020");class eP{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class tP{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new eP(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new eP(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new eP(e,this,this._ref)):{next:t.next?e=>t.next(new eP(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,r||void 0,n||void 0)}}class rP{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new nP(e,this._service))}get items(){return this._delegate.items.map(e=>new nP(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class nP{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=jR(this._delegate,e);return new nP(t,this.storage)}get root(){return new nP(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new nP(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new tP(QR(this._delegate,e,t),this)}putString(e,t=$N.RAW,r){this._throwIfRoot("putString");var n=YN(t,e),i={...r};return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new tP(new MR(this._delegate,new eR(n.data,!0),i),this)}listAll(){return FR(w(this._delegate)).then(e=>new rP(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,UR(t=w(t),e).then(e=>new rP(e,this.storage));var t}getMetadata(){return YR(this._delegate)}updateMetadata(e){return VR(w(this._delegate),e)}getDownloadURL(){return qR(w(this._delegate))}delete(){return this._throwIfRoot("delete"),BR(w(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw DN(e)}}class iP{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(sP(e))throw RN("ref() expected a child path but got a URL, use refFromURL instead.");return new nP(JR(this._delegate,e),this)}refFromURL(e){if(!sP(e))throw RN("refFromURL() expected a full URL but got a child path, use ref() instead.");try{MN.makeFromUrl(e,this._delegate.host)}catch(e){throw RN("refFromUrl() expected a valid full URL but got an invalid one.")}return new nP(JR(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){XR(this._delegate,e,t,r)}}function sP(e){return/^[A-Za-z]+:\/\//.test(e)}function aP(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new iP(r,n)}_N=hr,Nm={TaskState:NR,TaskEvent:AR,StringFormat:$N,Storage:iP,Reference:nP},_N.INTERNAL.registerComponent(new c("storage-compat",aP,"PUBLIC").setServiceProps(Nm).setMultipleInstances(!0)),_N.registerVersion("@firebase/storage-compat","0.4.0-canary.a09ef786f");function oP(e){if("loading"===document.readyState)return"loading";var t=vP();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function lP(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:_P(n)+(n.classList&&n.classList.value&&n.classList.value.trim()&&n.classList.value.trim().length?"."+n.classList.value.trim().replace(/\s+/g,"."):"");if(r.length+i.length>(t||100)-1)return r||i;if(r=r?i+">"+r:i,n.id)break;e=n.parentNode}}catch(e){}return r}function hP(i,e){var a,o,s,l;a=function(e){r={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(n=(n=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||n[0])&&(r={largestShiftTarget:lP(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:oP(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=AP(function(){function e(e){e.forEach(function(e){var t,r;e.hadRecentInput||(t=i[0],r=i[i.length-1],n&&e.startTime-r.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,i.push(e)):(n=e.value,i=[e]))}),n>r.value&&(r.value=n,r.entries=i,t())}var t,r=TP("CLS",0),n=0,i=[],s=EP("layout-shift",e);s&&(t=CP(a,r,FP,o.reportAllChanges),kP(function(){e(s.takeRecords()),t(!0)}),bP(function(){r=TP("CLS",n=0),t=CP(a,r,FP,o.reportAllChanges),SP(function(){return t()})}),setTimeout(t,0))}),l=l||{},MP(function(){var t,r=OP(),n=TP("FCP"),i=EP("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-IP(),0),n.entries.push(e),t(!0))})});i&&(t=CP(s,n,LP,l.reportAllChanges),bP(function(e){n=TP("FCP"),t=CP(s,n,LP,l.reportAllChanges),SP(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function cP(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},MP(function(){var e;zP();function t(t){YP(function(){t.forEach(QP);var e=GP();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=TP("INP"),n=EP("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=CP(s,r,JP,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),kP(function(){t(n.takeRecords()),i(!0)}),bP(function(){HP=jP(),KP.length=0,WP.clear(),r=TP("INP"),i=CP(s,r,JP,a.reportAllChanges)}))}))}function uP(e){XP=XP.concat(e),iD()}function dP(){10<rD.size&&rD.forEach(function(e,t){WP.has(t)||rD.delete(t)});var r=KP.map(function(e){return tD.get(e.entries[0])}),n=ZP.length-50;ZP=ZP.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<ZP.length;e++){var t=ZP[e];sD(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=XP.length-1-50;XP=XP.filter(function(e,t){return e.startTime>eD&&s<t||i.has(e)}),nD=-1}function pP(l,e){mP=mP||EP("long-animation-frame",uP),cP(function(e){t=(e=e).entries[0],o=tD.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=sD(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||rD.get(t.interactionId),a=[t.startTime+t.duration,n].concat(i.map(function(e){return e.startTime+e.duration})),a=Math.max.apply(Math,a),s={interactionTarget:lP(s),interactionTargetElement:s,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:a,processedEventEntries:o,longAnimationFrameEntries:i,inputDelay:r-t.startTime,processingDuration:n-r,presentationDelay:Math.max(a-n,0),loadState:oP(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function fP(h,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=vP())&&(a=t.activationStart||0,n=(r=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===r.url})[0],l=Math.max(0,t.responseStart-a),i=Math.max(l,n?(n.requestStart||n.startTime)-a:0),s=Math.max(i,n?n.responseEnd-a:0),a=Math.max(s,r.startTime-a),o={element:lP(r.element),timeToFirstByte:l,resourceLoadDelay:i-l,resourceLoadDuration:s-i,elementRenderDelay:a-s,navigationEntry:t,lcpEntry:r},r.url&&(o.url=r.url),n)&&(o.lcpResourceEntry=n);var t,r,n,i,s,a,o,l=Object.assign(e,{attribution:o});h(l)},o=e||{},MP(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-IP(),0),i.entries=[e],t())})}var t,r,n=OP(),i=TP("LCP"),s=EP("largest-contentful-paint",e);s&&(t=CP(a,i,aD,o.reportAllChanges),r=AP(function(){oD[i.id]||(e(s.takeRecords()),s.disconnect(),oD[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return YP(r)},{once:!0,capture:!0})}),kP(r),bP(function(e){i=TP("LCP"),t=CP(a,i,aD,o.reportAllChanges),SP(function(){i.value=performance.now()-e.timeStamp,oD[i.id]=!0,t(!0)})}))})}var gP,mP,vP=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},_P=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},yP=-1,wP=function(){return yP},bP=function(t){addEventListener("pageshow",function(e){e.persisted&&(yP=e.timeStamp,t(e))},!0)},IP=function(){var e=vP();return e&&e.activationStart||0},TP=function(e,t){var r=vP(),n="navigate";return 0<=wP()?n="back-forward-cache":r&&(document.prerendering||0<IP()?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},EP=function(e,t,r){try{var n;if(PerformanceObserver.supportedEntryTypes.includes(e))return(n=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},r||{})),n}catch(e){}},CP=function(t,r,n,i){var s,a;return function(e){0<=r.value&&(e||i)&&((a=r.value-(s||0))||void 0===s)&&(s=r.value,r.delta=a,r.rating=(e=r.value)>n[1]?"poor":e>n[0]?"needs-improvement":"good",t(r))}},SP=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},kP=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},AP=function(e){var t=!1;return function(){t||(e(),t=!0)}},NP=-1,RP=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},PP=function(e){"hidden"===document.visibilityState&&-1<NP&&(NP="visibilitychange"===e.type?e.timeStamp:0,xP())},DP=function(){addEventListener("visibilitychange",PP,!0),addEventListener("prerenderingchange",PP,!0)},xP=function(){removeEventListener("visibilitychange",PP,!0),removeEventListener("prerenderingchange",PP,!0)},OP=function(){return NP<0&&(NP=RP(),DP(),bP(function(){setTimeout(function(){NP=RP(),DP()},0)})),{get firstHiddenTime(){return NP}}},MP=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},LP=[1800,3e3],FP=[.1,.25],UP=0,VP=1/0,qP=0,BP=function(e){e.forEach(function(e){e.interactionId&&(VP=Math.min(VP,e.interactionId),qP=Math.max(qP,e.interactionId),UP=qP?(qP-VP)/7+1:0)})},jP=function(){return gP?UP:performance.interactionCount||0},zP=function(){"interactionCount"in performance||(gP=gP||EP("event",BP,{type:"event",buffered:!0,durationThreshold:0}))},KP=[],WP=new Map,HP=0,GP=function(){var e=Math.min(KP.length-1,Math.floor((jP()-HP)/50));return KP[e]},$P=[],QP=function(t){var e,r;$P.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=KP[KP.length-1],((e=WP.get(t.interactionId))||KP.length<10||t.duration>r.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(r={id:t.interactionId,latency:t.duration,entries:[t]},WP.set(r.id,r),KP.push(r)),KP.sort(function(e,t){return t.latency-e.latency}),10<KP.length)&&KP.splice(10).forEach(function(e){return WP.delete(e.id)}))},YP=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=AP(e),"hidden"===document.visibilityState?e():(r=t(e),kP(e)),r},JP=[200,500],XP=[],ZP=[],eD=0,tD=new WeakMap,rD=new Map,nD=-1,iD=function(){nD<0&&(nD=YP(dP))},sD=($P.push(function(e){e.interactionId&&e.target&&!rD.has(e.interactionId)&&rD.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;eD=Math.max(eD,e.processingEnd);for(var n=ZP.length-1;0<=n;n--){var i=ZP[n];if(Math.abs(r-i.renderTime)<=8){(t=i).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:r,entries:[e]},ZP.push(t)),!e.interactionId&&"first-input"!==e.entryType||tD.set(e,t),iD()}),function(e,t){for(var r,n=[],i=0;r=XP[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),aD=[2500,4e3],oD={};let lD="@firebase/performance",hD="0.7.9-canary.a09ef786f",cD=hD,uD="FB-PERF-TRACE-MEASURE",dD="@firebase/performance/config",pD="@firebase/performance/configexpire";var fD,t,r,gD,e="Performance";let mD=new we("performance",e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),vD=new tt(e);vD.logLevel=d.INFO;let _D,yD;class wD{constructor(e){if(!(this.window=e))throw mD.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=fP,this.onINP=pP,this.onCLS=hP}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,r){this.performance&&this.performance.measure&&this.performance.measure(e,t,r)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&_e()?!!me()||(vD.info("IndexedDB is not supported by current browser"),!1):(vD.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,r){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())r(t)}).observe({entryTypes:[e]})}static getInstance(){return _D=void 0===_D?new wD(yD):_D}}let bD;function ID(e,t){var r=e.length-t.length;if(r<0||1<r)throw mD.create("invalid String merger input");var n=[];for(let i=0;i<e.length;i++)n.push(e.charAt(i)),t.length>i&&n.push(t.charAt(i));return n.join("")}let TD;class ED{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=ID("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=ID("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12,this.logMaxFlushSize=40}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return TD=void 0===TD?new ED:TD}}(t=fD=fD||{})[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN";let CD=["firebase_","google_","ga_"],SD=new RegExp("^[a-zA-Z]\\w*$");function kD(e){var t=e.options?.appId;if(t)return t;throw mD.create("no app id")}let AD="0.0.1",ND={loggingEnabled:!0},RD="FIREBASE_INSTALLATIONS_AUTH";function PD(e,t){var n,i,r=(()=>{var e=wD.getInstance().localStorage;if(e){var t=e.getItem(pD);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(dD);if(t)try{return JSON.parse(t)}catch{}}}})();return r?(xD(r),Promise.resolve()):(i=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((n=e).installations).then(e=>{var t=(e=>{var t=e.options?.projectId;if(t)return t;throw mD.create("no project id")})(n.app),r=(e=>{var t=e.options?.apiKey;if(t)return t;throw mD.create("no api key")})(n.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+r,{method:"POST",headers:{Authorization:RD+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:kD(n.app),app_version:cD,sdk_version:AD})});return fetch(t).then(e=>{if(e.ok)return e.json();throw mD.create("RC response not ok")})}).catch(()=>{vD.info(DD)}).then(xD).then(e=>{var t;e=e,t=wD.getInstance().localStorage,e&&t&&(t.setItem(dD,JSON.stringify(e)),t.setItem(pD,String(Date.now()+60*ED.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let DD="Could not fetch config, will use default configs";function xD(e){var t,r;return e&&(t=ED.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=ND.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):ND.logSource&&(t.logSource=ND.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:ND.logEndPointUrl&&(t.logEndPointUrl=ND.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:ND.transportKey&&(t.transportKey=ND.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==ND.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=ND.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==ND.tracesSamplingRate&&(t.tracesSamplingRate=ND.tracesSamplingRate),r.fpr_log_max_flush_size?t.logMaxFlushSize=Number(r.fpr_log_max_flush_size):ND.logMaxFlushSize&&(t.logMaxFlushSize=ND.logMaxFlushSize),t.logTraceAfterSampling=OD(t.tracesSamplingRate),t.logNetworkAfterSampling=OD(t.networkRequestsSamplingRate)),e}function OD(e){return Math.random()<=e}let MD=1,LD;function FD(e){var r;return MD=2,LD=LD||(r=e,(()=>{let r=wD.getInstance().document;return new Promise(t=>{if(r&&"complete"!==r.readyState){let e=()=>{"complete"===r.readyState&&(r.removeEventListener("readystatechange",e),t())};r.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=r.installations,(t=e.getId()).then(e=>{bD=e}),t;var e,t}).then(e=>PD(r,e)).then(()=>UD(),()=>UD()))}function UD(){MD=3}let VD=1e4,qD=1e3,BD=3,jD=65536,zD=new TextEncoder,KD=BD,WD=[],HD=!1;function GD(e){setTimeout(()=>{if(!(KD<=0)){if(0<WD.length){let e=WD.splice(0,qD),t=$D(e);(e=>{var t=ED.getInstance().getFlTransportFullUrl();return zD.encode(e).length<=jD&&navigator.sendBeacon&&navigator.sendBeacon(t,e)?Promise.resolve():fetch(t,{method:"POST",body:e})})(t).then(()=>{KD=BD}).catch(()=>{WD=[...e,...WD],KD--,vD.info(`Tries left: ${KD}.`),GD(VD)})}GD(VD)}},e)}function $D(e){var t=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),t={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:ED.getInstance().logSource,log_event:t};return JSON.stringify(t)}function QD(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw mD.create("invalid cc log");WD=[...WD,e]}}function YD(){for(var e,t=ED.getInstance().getFlTransportFullUrl();0<WD.length;){var r=WD.splice(-ED.getInstance().logMaxFlushSize),n=$D(r);if(!navigator.sendBeacon||!navigator.sendBeacon(t,n)){WD=[...WD,...r];break}}0<WD.length&&(e=$D(WD),fetch(t,{method:"POST",body:e}).catch(()=>{vD.info("Failed flushing queued events.")}))}let JD;function XD(e,t){(JD=JD||{send:QD(tx),flush:YD}).send(e,t)}function ZD(e){var t=ED.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&wD.getInstance().requiredApisAvailable()&&(3===MD?ex(e):FD(e.performanceController).then(()=>ex(e),()=>ex(e)))}function ex(e){var t;bD&&(t=ED.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&XD(e,1)}function tx(e,t){var r,n;return 0===t?(r={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},r={application_info:rx(e.performanceController.app),network_request_metric:r},JSON.stringify(r)):(r={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(r.counters=t.counters),n=t.getAttributes(),0!==Object.keys(n).length&&(r.custom_attributes=n),n={application_info:rx(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function rx(e){return{google_app_id:kD(e),app_instance_id:bD,web_app_info:{sdk_version:cD,page_url:wD.getInstance().getUrl(),service_worker_status:(t=wD.getInstance().navigator)?.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(wD.getInstance().document.visibilityState){case"visible":return fD.VISIBLE;case"hidden":return fD.HIDDEN;default:return fD.UNKNOWN}})(),effective_connection_type:(()=>{var e=wD.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function nx(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=wD.getInstance().getTimeOrigin(),i=Math.floor(1e3*(s.startTime+i)),r=s.responseStart?Math.floor(1e3*(s.responseStart-s.startTime)):void 0,n=Math.floor(1e3*(s.responseEnd-s.startTime)),s={performanceController:e,url:s.name&&s.name.split("?")[0],responsePayloadBytes:s.transferSize,startTimeUs:i,timeToResponseInitiatedUs:r,timeToResponseCompletedUs:n},t=s,(i=ED.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&XD(t,0)}let ix=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class sx{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=wD.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=n||`${uD}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw mD.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw mD.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),ZD(this)}record(e,t,r){if(e<=0)throw mD.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw mD.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),r&&r.attributes&&(this.customAttributes={...r.attributes}),r&&r.metrics)for(var n of Object.keys(r.metrics))isNaN(Number(r.metrics[n]))||(this.counters[n]=Math.floor(Number(r.metrics[n])));ZD(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(n=e,i=this.name,0===n.length||100<n.length||!(i&&i.startsWith("_wt_")&&-1<ix.indexOf(n))&&n.startsWith("_"))throw mD.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=t??0,(r=Math.floor(i))<i&&vD.info(`Metric value should be an Integer, setting the value as : ${r}.`),r)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var r,n,i=!(0===(r=e).length||40<r.length||CD.some(e=>r.startsWith(e))||!r.match(SD)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw mD.create("invalid attribute name",{attributeName:e});if(!s)throw mD.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return{...this.customAttributes}}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,r,n,i){var s=wD.getInstance().getUrl();if(s){var s=new sx(e,"_wt_"+s,!0),a=Math.floor(1e3*wD.getInstance().getTimeOrigin());s.setStartTime(a),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));r&&((a=r.find(e=>"first-paint"===e.name))&&a.startTime&&s.putMetric("_fp",Math.floor(1e3*a.startTime)),(a=r.find(e=>"first-contentful-paint"===e.name))&&a.startTime&&s.putMetric("_fcp",Math.floor(1e3*a.startTime)),i)&&s.putMetric("_fid",Math.floor(1e3*i)),this.addWebVitalMetric(s,"_lcp","lcp_element",n.lcp),this.addWebVitalMetric(s,"_cls","cls_largestShiftTarget",n.cls),this.addWebVitalMetric(s,"_inp","inp_interactionTarget",n.inp),ZD(s),JD&&JD.flush()}}static addWebVitalMetric(e,t,r,n){n&&(e.putMetric(t,Math.floor(1e3*n.value)),n.elementAttribution)&&(100<n.elementAttribution.length?e.putAttribute(r,n.elementAttribution.substring(0,100)):e.putAttribute(r,n.elementAttribution))}static createUserTimingTrace(e,t){ZD(new sx(e,t,!1,t))}}let ax={},ox=!1,lx;function hx(n){bD&&(setTimeout(()=>{{var t=n;let e=wD.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>ux(t)):e.document.addEventListener("unload",()=>ux(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&ux(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{lx=e}),e.onLCP(e=>{ax.lcp={value:e.value,elementAttribution:e.attribution?.element}}),e.onCLS(e=>{ax.cls={value:e.value,elementAttribution:e.attribution?.largestShiftTarget}}),e.onINP(e=>{ax.inp={value:e.value,elementAttribution:e.attribution?.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=wD.getInstance();for(e of r.getEntriesByType("resource"))nx(t,e);r.setupObserver("resource",e=>nx(t,e))},0),setTimeout(()=>{var e,t=n,r=wD.getInstance();for(e of r.getEntriesByType("measure"))cx(t,e);r.setupObserver("measure",e=>cx(t,e))},0))}function cx(e,t){var r=t.name;r.substring(0,uD.length)!==uD&&sx.createUserTimingTrace(e,r)}function ux(r){if(!ox){ox=!0;var n=wD.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{sx.createOobTrace(r,e,t,ax,lx)},0)}}class dx{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==e?.dataCollectionEnabled&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==e?.instrumentationEnabled&&(this.instrumentationEnabled=e.instrumentationEnabled),wD.getInstance().requiredApisAvailable()?ve().then(e=>{e&&(HD||(GD(5500),HD=!0),FD(this).then(()=>hx(this),()=>hx(this)),this.initialized=!0)}).catch(e=>{vD.info("Environment doesn't support IndexedDB: "+e)}):vD.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){ED.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return ED.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){ED.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return ED.getInstance().dataCollectionEnabled}}let px="[DEFAULT]";let fx=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==px)throw mD.create("FB not default");if("undefined"==typeof window)throw mD.create("no window");e=window,yD=e;r=new dx(r,n);return r._init(t),r};Dt(new c("performance",fx,"PUBLIC")),u(lD,hD),u(lD,hD,"esm2020");class gx{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=w(t),new sx(t,e);var t}}function mx(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new gx(t,r)}(r=hr).INTERNAL.registerComponent(new c("performance-compat",mx,"PUBLIC")),r.registerVersion("@firebase/performance-compat","0.2.22-canary.a09ef786f");let vx="@firebase/remote-config",_x="0.7.0-canary.a09ef786f";class yx{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let wx=new we("remoteconfig","Remote Config",{"already-initialized":"Remote Config already initialized","registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser","custom-signal-max-allowed-signals":"Setting more than {$maxSignals} custom signals is not supported.","stream-error":"The stream was not able to connect to the backend: {$originalErrorMessage}.","realtime-unavailable":"The Realtime service is unavailable: {$originalErrorMessage}","update-message-invalid":"The stream invalidation message was unparsable: {$originalErrorMessage}","update-not-fetched":"Unable to fetch the latest config: {$originalErrorMessage}"});let bx=["1","true","t","yes","y","on"];class Ix{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=bx.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function Tx(e){var t=w(e),[r,n]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(r&&r.config&&r.eTag&&r.templateVersion&&r.eTag!==n)&&(await Promise.all([t._storageCache.setActiveConfig(r.config),t._storage.setActiveConfigEtag(r.eTag),t._storage.setActiveConfigTemplateVersion(r.templateVersion)]),!0)}function Ex(e){let t=w(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function Cx(t){var r=w(t);let e=new yx;setTimeout(async()=>{e.abort()},r.settings.fetchTimeoutMillis);var n,i=r._storageCache.getCustomSignals();i&&r._logger.debug("Fetching config with custom signals: "+JSON.stringify(i));try{await r._client.fetch({cacheMaxAgeMillis:r.settings.minimumFetchIntervalMillis,signal:e,customSignals:i}),await r._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";i=(n=e)instanceof ye&&-1!==n.code.indexOf(t)?"throttle":"failure";throw await r._storageCache.setLastFetchStatus(i),e}}function Sx(r){var e,t,n=w(r);return[e={},t={}]=[n._storageCache.getActiveConfig(),n.defaultConfig],Object.keys({...e,...t}).reduce((e,t)=>(e[t]=kx(r,t),e),{})}function kx(e,t){var r=w(e),n=(r._isInitializationComplete||r._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),r._storageCache.getActiveConfig());return n&&void 0!==n[t]?new Ix("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new Ix("default",String(r.defaultConfig[t])):(r._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new Ix("static"))}class Ax{constructor(e,t,r,n){this.client=e,this.storage=t,this.storageCache=r,this.logger=n}isCachedDataFresh(e,t){var r;return t?(r=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${r}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r=r<=e}.`),r):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,r]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(r&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return r;e.eTag=r&&r.eTag;t=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&r.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(r),t}}class Nx{constructor(e,t,r,n,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=r,this.projectId=n,this.apiKey=i,this.appId=s}async fetch(r){var e,[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":r.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:r.customSignals},n={method:"POST",headers:s,body:JSON.stringify(t)},s=fetch(i,n),t=new Promise((e,t)=>{r.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([s,t]),a=await s}catch(e){let t="fetch-client-network";throw"AbortError"===e?.name&&(t="fetch-timeout"),wx.create(t,{originalErrorMessage:e?.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let l,h,c;if(200===a.status){let e;try{e=await a.json()}catch(e){throw wx.create("fetch-client-parse",{originalErrorMessage:e?.message})}l=e.entries,h=e.state,c=e.templateVersion}if("INSTANCE_STATE_UNSPECIFIED"===h?o=500:"NO_CHANGE"===h?o=304:"NO_TEMPLATE"!==h&&"EMPTY_CONFIG"!==h||(l={}),304!==o&&200!==o)throw wx.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l,templateVersion:c}}}class Rx{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:r}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(wx.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var n=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),n}catch(e){if((e=>{var t;return e instanceof ye&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+He(r),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class Px{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,r,n,i,s){this.app=e,this._client=t,this._storageCache=r,this._storage=n,this._logger=i,this._realtimeHandler=s,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function Dx(e,t){var r=e.target.error||void 0;return wx.create(t,{originalErrorMessage:r&&r?.message})}let xx="app_namespace_store";class Ox{getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}getCustomSignals(){return this.get("custom_signals")}getRealtimeBackoffMetadata(){return this.get("realtime_backoff_metadata")}setRealtimeBackoffMetadata(e){return this.set("realtime_backoff_metadata",e)}getActiveConfigTemplateVersion(){return this.get("last_known_template_version")}setActiveConfigTemplateVersion(e){return this.set("last_known_template_version",e)}}class Mx extends Ox{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(Dx(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(xx,{keyPath:"compositeKey"})}}catch(e){r(wx.create("storage-open",{originalErrorMessage:e?.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=r,this.openDbPromise=n}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([xx],"readwrite"),r=Fx(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",r,t),r}async getWithTransaction(s,a){return new Promise((r,t)=>{var e=a.objectStore(xx),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(Dx(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(wx.create("storage-get",{originalErrorMessage:e?.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(xx),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(Dx(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(wx.create("storage-set",{originalErrorMessage:e?.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([xx],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([xx],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([xx],"readwrite").objectStore(xx),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(Dx(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(wx.create("storage-delete",{originalErrorMessage:e?.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class Lx extends Ox{constructor(){super(...arguments),this.storage={}}async get(e){return Promise.resolve(this.storage[e])}async set(e,t){return this.storage[e]=t,Promise.resolve(void 0)}async delete(e){return this.storage[e]=void 0,Promise.resolve()}async setCustomSignals(e){var t=this.storage.custom_signals||{};return this.storage.custom_signals=Fx(e,t),Promise.resolve(this.storage.custom_signals)}}function Fx(e,t){var r={...t,...e},r=Object.fromEntries(Object.entries(r).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(r).length)throw wx.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class Ux{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),r=this.storage.getActiveConfig(),n=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await r),e=(t&&(this.activeConfig=t),await n);e&&(this.customSignals=e)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}async setCustomSignals(e){this.customSignals=await this.storage.setCustomSignals(e)}}class Vx extends class{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}{static getInstance(){return new Vx}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}let qx="featureDisabled",Bx="retryIntervalSeconds",jx="latestTemplateVersionNumber";class zx{constructor(e,t,r,n,i,s,a,o,l,h){this.firebaseInstallations=e,this.storage=t,this.sdkVersion=r,this.namespace=n,this.projectId=i,this.apiKey=s,this.appId=a,this.logger=o,this.storageCache=l,this.cachingClient=h,this.observers=new Set,this.isConnectionActive=!1,this.isRealtimeDisabled=!1,this.httpRetriesRemaining=8,this.isInBackground=!1,this.decoder=new TextDecoder("utf-8"),this.isClosingConnection=!1,this.propagateError=t=>this.observers.forEach(e=>e.error?.(t)),this.isStatusCodeRetryable=e=>!e||[408,429,502,503,504].includes(e),this.setRetriesRemaining(),Vx.getInstance().on("visible",this.onVisibilityChange,this)}async setRetriesRemaining(){var e=(await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0;this.httpRetriesRemaining=Math.max(8-e,1)}async updateBackoffMetadataWithLastFailedStreamConnectionTime(e){var t=((await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0)+1,r=He(t,6e4,2);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(e.getTime()+r),numFailedStreams:t})}async updateBackoffMetadataWithRetryInterval(e){var t=Date.now(),t=new Date(t+1e3*e);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:t,numFailedStreams:0}),await this.retryHttpConnectionWhenBackoffEnds()}async closeRealtimeHttpConnection(){if(!this.isClosingConnection){this.isClosingConnection=!0;try{this.reader&&await this.reader.cancel()}catch(e){this.logger.debug("Failed to cancel the reader, connection was lost.")}finally{this.reader=void 0}this.controller&&(await this.controller.abort(),this.controller=void 0),this.isClosingConnection=!1}}async resetRealtimeBackoff(){await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(-1),numFailedStreams:0})}resetRetryCount(){this.httpRetriesRemaining=8}async establishRealtimeConnection(e,t,r,n){var i=await this.storage.getActiveConfigEtag(),s=await this.storage.getActiveConfigTemplateVersion(),i={"X-Goog-Api-Key":this.apiKey,"X-Goog-Firebase-Installations-Auth":r,"Content-Type":"application/json",Accept:"application/json","If-None-Match":i||"*","Content-Encoding":"gzip"},s={project:this.projectId,namespace:this.namespace,lastKnownVersionNumber:s,appId:this.appId,sdkVersion:this.sdkVersion,appInstanceId:t};return await fetch(e,{method:"POST",headers:i,body:JSON.stringify(s),signal:n})}getRealtimeUrl(){var e=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfigrealtime.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:streamFetchInvalidations?key=`+this.apiKey;return new URL(e)}async createRealtimeConnection(){var[e,t]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken(!1)]),r=(this.controller=new AbortController,this.getRealtimeUrl());return await this.establishRealtimeConnection(r,e,t,this.controller.signal)}async retryHttpConnectionWhenBackoffEnds(){let e=await this.storage.getRealtimeBackoffMetadata();e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0};var t=new Date(e.backoffEndTimeMillis).getTime(),r=Date.now(),t=Math.max(0,t-r);await this.makeRealtimeHttpConnection(t)}setIsHttpConnectionRunning(e){this.isConnectionActive=e}checkAndSetHttpConnectionFlagIfNotRunning(){var e=this.canEstablishStreamConnection();return e&&this.setIsHttpConnectionRunning(!0),e}fetchResponseIsUpToDate(e,t){return null!=e.config&&e.templateVersion?e.templateVersion>=t:"success"===this.storageCache.getLastFetchStatus()}parseAndValidateConfigUpdateMessage(e){var t=e.indexOf("{"),r=e.indexOf("}",t);return t<0||r<0||r<=t?"":e.substring(t,r+1)}isEventListenersEmpty(){return 0===this.observers.size}getRandomInt(e){return Math.floor(Math.random()*e)}executeAllListenerCallbacks(t){this.observers.forEach(e=>e.next(t))}getChangedParams(e,t){var r,n,i=new Set,s=new Set(Object.keys(e||{})),a=new Set(Object.keys(t||{}));for(r of s)a.has(r)&&e[r]===t[r]||i.add(r);for(n of a)s.has(n)||i.add(n);return i}async fetchLatestConfig(e,r){var n=e-1,i=3-n,s=this.storageCache.getCustomSignals(),a=(s&&this.logger.debug("Fetching config with custom signals: "+JSON.stringify(s)),new yx);try{var o,l={cacheMaxAgeMillis:0,signal:a,customSignals:s,fetchType:"REALTIME",fetchAttempt:i},h=await this.cachingClient.fetch(l);let t=await this.storage.getActiveConfig();if(this.fetchResponseIsUpToDate(h,r))if(null==h.config)this.logger.debug("The fetch succeeded, but the backend had no updates.");else{null==t&&(t={});let e=this.getChangedParams(h.config,t);0===e.size?this.logger.debug("Config was fetched, but no params changed."):(o={getUpdatedKeys(){return new Set(e)}},this.executeAllListenerCallbacks(o))}else this.logger.debug("Fetched template version is the same as SDK's current version. Retrying fetch."),await this.autoFetch(n,r)}catch(e){a=e instanceof Error?e.message:String(e),s=wx.create("update-not-fetched",{originalErrorMessage:"Failed to auto-fetch config update: "+a});this.propagateError(s)}}async autoFetch(e,r){var t;if(0===e)t=wx.create("update-not-fetched",{originalErrorMessage:"Unable to fetch the latest version of the template."}),this.propagateError(t);else{let t=1e3*this.getRandomInt(4);await new Promise(e=>setTimeout(e,t)),await this.fetchLatestConfig(e,r)}}async handleNotifications(e){let t="";for(;;){var{done:r,value:n}=await e.read();if(r)break;if(r=this.decoder.decode(n,{stream:!0}),t+=r,r.includes("}")&&0!==(t=this.parseAndValidateConfigUpdateMessage(t)).length){try{var i,s,a,o=JSON.parse(t);if(this.isEventListenersEmpty())break;if(qx in o&&!0===o[qx]){var l=wx.create("realtime-unavailable",{originalErrorMessage:"The server is temporarily unavailable. Try again in a few minutes."});this.propagateError(l);break}jx in o&&(i=await this.storage.getActiveConfigTemplateVersion(),s=Number(o[jx]),i)&&i<s&&await this.autoFetch(3,s),Bx in o&&(a=Number(o[Bx]),await this.updateBackoffMetadataWithRetryInterval(a))}catch(e){this.logger.debug("Unable to parse latest config update message.",e);n=e instanceof Error?e.message:String(e);this.propagateError(wx.create("update-message-invalid",{originalErrorMessage:n}))}t=""}}}async listenForNotifications(e){try{await this.handleNotifications(e)}catch(e){this.isInBackground||this.logger.debug("Real-time connection was closed due to an exception.")}}async prepareAndBeginRealtimeHttpStream(){if(this.checkAndSetHttpConnectionFlagIfNotRunning()){let e=await this.storage.getRealtimeBackoffMetadata();var r=(e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0}).backoffEndTimeMillis.getTime();if(Date.now()<r)await this.retryHttpConnectionWhenBackoffEnds();else{let e,t;try{e=await this.createRealtimeConnection(),t=e.status,e.ok&&e.body&&(this.resetRetryCount(),await this.resetRealtimeBackoff(),n=e.body.getReader(),this.reader=n,await this.listenForNotifications(n))}catch(e){this.isInBackground?this.resetRetryCount():this.logger.debug("Exception connecting to real-time RC backend. Retrying the connection...:",e)}finally{await this.closeRealtimeHttpConnection(),this.setIsHttpConnectionRunning(!1);var n,r=!this.isInBackground&&(void 0===t||this.isStatusCodeRetryable(t));r&&await this.updateBackoffMetadataWithLastFailedStreamConnectionTime(new Date),r||e?.ok?await this.retryHttpConnectionWhenBackoffEnds():(n="Unable to connect to the server. HTTP status code: "+t,r=wx.create("stream-error",{originalErrorMessage:n}),this.propagateError(r))}}}}canEstablishStreamConnection(){var e=0<this.observers.size,t=!this.isRealtimeDisabled,r=!this.isConnectionActive,n=!this.isInBackground;return e&&t&&r&&n}async makeRealtimeHttpConnection(t){var e;this.canEstablishStreamConnection()&&(0<this.httpRetriesRemaining?(this.httpRetriesRemaining--,await new Promise(e=>setTimeout(e,t)),this.prepareAndBeginRealtimeHttpStream()):this.isInBackground||(e=wx.create("stream-error",{originalErrorMessage:"Unable to connect to the server. Check your connection and try again."}),this.propagateError(e)))}async beginRealtime(){0<this.observers.size&&await this.makeRealtimeHttpConnection(0)}addObserver(e){this.observers.add(e),this.beginRealtime()}removeObserver(e){this.observers.has(e)&&this.observers.delete(e)}async onVisibilityChange(e){this.isInBackground=!e,e?await this.beginRealtime():await this.closeRealtimeHttpConnection()}}async function Kx(){if(!me())return!1;try{return await ve()}catch(e){return!1}}Dt(new c("remote-config",function(e,{options:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:s,appId:a}=r.options;if(!i)throw wx.create("registration-project-id");if(!s)throw wx.create("registration-api-key");if(!a)throw wx.create("registration-app-id");var o=t?.templateId||"firebase",l=me()?new Mx(a,r.name,o):new Lx,h=new Ux(l),c=new tt(vx),u=(c.logLevel=d.ERROR,new Nx(n,qt,o,i,s,a)),u=new Rx(u,l),u=new Ax(u,l,h,c),n=new zx(n,l,qt,o,i,s,a,c,h,u),o=new Px(r,u,h,l,c,n);return Ex(o),o},"PUBLIC").setMultipleInstances(!0)),u(vx,_x),u(vx,_x,"esm2020");class Wx{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return Tx(this._delegate)}ensureInitialized(){return Ex(this._delegate)}fetch(){return Cx(this._delegate)}fetchAndActivate(){return(async e=>(await Cx(e=w(e)),Tx(e)))(this._delegate)}getAll(){return Sx(this._delegate)}getBoolean(e){return kx(w(this._delegate),e).asBoolean()}getNumber(e){return kx(w(this._delegate),e).asNumber()}getString(e){return kx(w(this._delegate),e).asString()}getValue(e){return kx(this._delegate,e)}setLogLevel(e){var t=this._delegate,r=w(t);switch(e){case"debug":r._logger.logLevel=d.DEBUG;break;case"silent":r._logger.logLevel=d.SILENT;break;default:r._logger.logLevel=d.ERROR}}}function Hx(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new Wx(r,n)}return(gD=hr).INTERNAL.registerComponent(new c("remoteConfig-compat",Hx,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Kx})),gD.registerVersion("@firebase/remote-config-compat","0.2.20-canary.a09ef786f"),console.warn(`
|
|
30
|
+
`+JSON.stringify(e?.Qa)))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async bu(){return await this.getMetadata(),this.ku()}async ku(){var e,t,r=await this.qu();return null===r?null:(t=this.Lu.decode(r),e=Number(t),isNaN(e)&&this.Qu(`length string (${t}) is not valid number`),t=await this.$u(e),new X0(JSON.parse(t),r.length+e))}Uu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async qu(){for(;this.Uu()<0&&!await this.Ku(););var e,t;return 0===this.buffer.length?null:((e=this.Uu())<0&&this.Qu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async $u(e){for(;this.buffer.length<e;)await this.Ku()&&this.Qu("Reached the end of bundle when more is expected.");var t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Qu(e){throw this.Bu.cancel(),new Error("Invalid bundle format: "+e)}async Ku(){var e,t=await this.Bu.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class FC{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new A(k.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let l=e,r={documents:t.map(e=>oI(l.serializer,e))},n=await l.Ho("BatchGetDocuments",l.serializer.databaseId,R.emptyPath(),r,t.length),h=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,S(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=lI(r,n.found.name),s=nI(n.found.updateTime),o=n.found.createTime?nI(n.found.createTime):O.min(),a=new rw({mapValue:{fields:n.found.fields}}),nw.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,S(!!(n=e).missing,3894),S(!!n.readTime,22933),i=lI(r,n.missing),s=nI(n.readTime),nw.newNoDocument(i,s)):C(7234,{result:e});h.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=h.get(e.toString());S(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new kb(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=P.fromPath(t);this.mutations.push(new Ab(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>gI(t.serializer,e))};await t.Go("Commit",t.serializer.databaseId,R.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw C(50498,{Gu:e.constructor.name});t=O.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new A(k.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(O.min())?mb.exists(!1):mb.updateTime(t):mb.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return mb.exists(!0);if(t.isEqual(O.min()))throw new A(k.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return mb.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class UC{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new d0(this.asyncQueue,"transaction_retry")}ju(){--this.zu,this.Ju()}Ju(){this.M_.p_(async()=>{let t=new FC(this.datastore),e=this.Hu(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Yu(e)}))}).catch(e=>{this.Yu(e)})})}Hu(e){try{var t=this.updateFunction(e);return!Hv(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Yu(e){0<this.zu&&this.Zu(e)?(--this.zu,this.asyncQueue.enqueueAndForget(()=>(this.Ju(),Promise.resolve()))):this.deferred.reject(e)}Zu(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!xb(t))}}let VC="FirestoreClient";class qC{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=xm.UNAUTHENTICATED,this.clientId=Ym.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{E(VC,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(E(VC,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new Bm;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=B0(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function BC(e,t){e.asyncQueue.verifyOperationInProgress(),E(VC,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await AE(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function jC(e,r){e.asyncQueue.verifyOperationInProgress();var t=await zC(e);E(VC,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>L0(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>L0(r.remoteStore,t)),e._onlineComponents=r}async function zC(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){E(VC,"Using user provided OfflineComponentProvider");try{await BC(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===k.FAILED_PRECONDITION||n.code===k.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;Um("Error using user provided cache. Falling back to memory cache: "+r),await BC(t,new NC)}}else E(VC,"Using default OfflineComponentProvider"),await BC(t,new RC(void 0));var n;return t._offlineComponents}async function KC(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(E(VC,"Using user provided OnlineComponentProvider"),await jC(e,e._uninitializedComponentsProvider._online)):(E(VC,"Using default OnlineComponentProvider"),await jC(e,new xC))),e._onlineComponents}function WC(e){return zC(e).then(e=>e.persistence)}function HC(e){return zC(e).then(e=>e.localStore)}function GC(e){return KC(e).then(e=>e.remoteStore)}function $C(e){return KC(e).then(e=>e.syncEngine)}async function QC(e){var t=await KC(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=SC(e);let i;var s=n.Tu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.lu()):await hC(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Tu.get(t),s=n.Iu.get(i.targetId);1<s.length?(n.Iu.set(i.targetId,s.filter(e=>!qw(e,t))),n.Tu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await OE(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&E0(n.remoteStore,i.targetId),_C(n,i.targetId)}).catch(Nv)):(_C(n,i.targetId),await OE(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await hC(SC(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Tu.get(t),i=r.Iu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),E0(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function YC(r){return r.asyncQueue.enqueue(async()=>{var e=await WC(r),t=await GC(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ea.add(0),await I0(t),t.Ra.set("Offline")})(t)})}function JC(e,t){let r=new Bm;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new A(k.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=B0(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await HC(e),t,r)),r.promise}function XC(e,t,h={}){let c=new Bm;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await QC(e),s=e.asyncQueue,a=t,o=h,l=c;let r=new MC({next:e=>{r.Nu(),s.enqueueAndForget(()=>Q0(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new A(k.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new A(k.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new J0(xw(a.path),r,{includeMetadataChanges:!0,qa:!0});return $0(i,n)}}),c.promise}function ZC(e,t){let r=new Bm;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await ME(e,t,!0),i=new iC(t,n.Qs),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=B0(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await HC(e),t,r)),r.promise}function eS(o,l,h={}){let c=new Bm;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await QC(o),i=o.asyncQueue,e=l,s=h,a=c;let t=new MC({next:e=>{t.Nu(),i.enqueueAndForget(()=>Q0(n,r)),e.fromCache&&"server"===s.source?a.reject(new A(k.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new J0(e,t,{includeMetadataChanges:!0,qa:!0});return $0(n,r)}}),c.promise}function tS(r,e){let n=new MC(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await QC(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.Nu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await QC(r),t=n,e.Ca.delete(t)})}}function rS(e,t,r,n){r=r,t=u0(t),s="string"==typeof r?Mb().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return OC(e,t);if(e instanceof ArrayBuffer)return OC(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new LC(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{AC(await $C(e),i,n)})}function nS(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await HC(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Ii.getNamedQuery(e,r))}})}function iS(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let sS=new Map,aS="firestore.googleapis.com";class oS{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new A(k.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=aS,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new A(k.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}lv("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=iS(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30<t.timeoutSeconds)throw new A(k.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class lS{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new oS({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new A(k.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new A(k.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new oS(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new zm;switch(e.type){case"firstParty":return new Gm(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new A(k.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=sS.get(e))&&(E("ComponentProvider","Removing Datastore"),sS.delete(e),t.terminate()),Promise.resolve();var e,t}}class hS{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new hS(this.firestore,e,this._query)}}class q{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new cS(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new q(this.firestore,e,this._key)}toJSON(){return{type:q._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(gv(t,q._jsonSchema))return new q(e,r||null,new P(R.fromString(t.referencePath)))}}q._jsonSchemaVersion="firestore/documentReference/1.0",q._jsonSchema={type:fv("string",q._jsonSchemaVersion),referencePath:fv("string")};class cS extends hS{constructor(e,t,r){super(e,t,xw(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new q(this.firestore,null,new P(e))}withConverter(e){return new cS(this.firestore,e,this._path)}}function uS(e,t,...r){var n;if(e=w(e),ov("collection","path",t),e instanceof lS)return cv(n=R.fromString(t,...r)),new cS(e,null,n);if(e instanceof q||e instanceof cS)return cv(n=e._path.child(R.fromString(t,...r))),new cS(e.firestore,null,n);throw new A(k.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function dS(e,t,...r){var n;if(e=w(e),ov("doc","path",t=1===arguments.length?Ym.newId():t),e instanceof lS)return hv(n=R.fromString(t,...r)),new q(e,null,new P(n));if(e instanceof q||e instanceof cS)return hv(n=e._path.child(R.fromString(t,...r))),new q(e.firestore,e instanceof cS?e.converter:null,new P(n));throw new A(k.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function pS(e,t){return e=w(e),t=w(t),(e instanceof q||e instanceof cS)&&(t instanceof q||t instanceof cS)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function fS(e,t){return e=w(e),t=w(t),e instanceof hS&&t instanceof hS&&e.firestore===t.firestore&&qw(e._query,t._query)&&e.converter===t.converter}let gS="AsyncQueue";class mS{constructor(e=Promise.resolve()){this.Xu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new d0(this,"async_queue_retry"),this._c=()=>{var e=c0();e&&E(gS,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;var t=c0();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){var t;this.ec||(this.ec=!0,this.sc=e||!1,(t=c0())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c))}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new Bm;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Xu.push(e),this.lc()))}async lc(){if(0!==this.Xu.length){try{await this.Xu[0](),this.Xu.shift(),this.M_.reset()}catch(e){if(!Lv(e))throw e;E(gS,"Operation failed with retryable error: "+e)}0<this.Xu.length&&this.M_.p_(()=>this.lc())}}cc(e){var t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,Fm("INTERNAL UNHANDLED ERROR: ",vS(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t}enqueueAfterDelay(e,t,r){this.uc(),-1<this.oc.indexOf(e)&&(t=0);var n=q0.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&C(47125,{Pc:vS(this.nc)})}verifyOperationInProgress(){}async Tc(){for(var e;await(e=this.ac),e!==this.ac;);}Ic(e){for(var t of this.tc)if(t.timerId===e)return!0;return!1}Ec(t){return this.Tc().then(()=>{this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.tc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Tc()})}dc(e){this.oc.push(e)}hc(e){var t=this.tc.indexOf(e);this.tc.splice(t,1)}}function vS(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}function _S(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class yS{constructor(){this._progressObserver={},this._taskCompletionResolver=new Bm,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var wS,bS;class IS extends lS{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new mS,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new mS(e),this._firestoreClient=void 0,await e)}}function TS(e){if(e._terminated)throw new A(k.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||ES(e),e._firestoreClient}function ES(e){var t,r,n,i,s=e._freezeSettings(),a=(i=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=s,new Ay(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,iS(n.experimentalLongPollingOptions),n.useFetchStreams,n.isUsingEmulator));e._componentsProvider||s.localCache?._offlineComponentProvider&&s.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:s.localCache._offlineComponentProvider,_online:s.localCache._onlineComponentProvider}),e._firestoreClient=new qC(e._authCredentials,e._appCheckCredentials,e._queue,a,e._componentsProvider&&(i=e._componentsProvider,s=i?._online.build(),{_offline:i?._offline.build(s),_online:s}))}function CS(e,t,r){if((e=D(e,IS))._firestoreClient||e._terminated)throw new A(k.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new A(k.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},ES(e)}function SS(r){if(r._initialized&&!r._terminated)throw new A(k.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new Bm;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=wE(r._databaseId,r._persistenceKey),await(Dv.v()?(t=e+"main",void await Dv.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function kS(e){return(r=TS(e=D(e,IS))).asyncQueue.enqueue(async()=>{var e=await WC(r),t=await GC(r);return e.setNetworkEnabled(!0),(e=t).Ea.delete(0),b0(e)});var r}class AS{constructor(e){this._byteString=e}static fromBase64String(e){try{return new AS(my.fromBase64String(e))}catch(e){throw new A(k.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new AS(my.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:AS._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(gv(e,AS._jsonSchema))return AS.fromBase64String(e.bytes)}}AS._jsonSchemaVersion="firestore/bytes/1.0",AS._jsonSchema={type:fv("string",AS._jsonSchemaVersion),bytes:fv("string")};class NS{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new A(k.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new av(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class RS{constructor(e){this._methodName=e}}class PS{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new A(k.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new A(k.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return N(this._lat,e._lat)||N(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:PS._jsonSchemaVersion}}static fromJSON(e){if(gv(e,PS._jsonSchema))return new PS(e.latitude,e.longitude)}}PS._jsonSchemaVersion="firestore/geoPoint/1.0",PS._jsonSchema={type:fv("string",PS._jsonSchemaVersion),latitude:fv("number"),longitude:fv("number")};class DS{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}toJSON(){return{type:DS._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(gv(e,DS._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new DS(e.vectorValues);throw new A(k.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}DS._jsonSchemaVersion="firestore/vectorValue/1.0",DS._jsonSchema={type:fv("string",DS._jsonSchemaVersion),vectorValues:fv("object")};let xS=/^__.*__$/;class OS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new Tb(e,this.data,this.fieldMask,t,this.fieldTransforms):new Ib(e,this.data,t,this.fieldTransforms)}}class MS{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new Tb(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function LS(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw C(40011,{Ac:e})}}class FS{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Rc(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ac(){return this.settings.Ac}Vc(e){return new FS({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}mc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.gc(e),t}yc(e){var t=this.path?.child(e),t=this.Vc({path:t,fc:!1});return t.Rc(),t}wc(e){return this.Vc({path:void 0,fc:!0})}Sc(e){return nk(e,this.settings.methodName,this.settings.bc||!1,this.path,this.settings.Dc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Rc(){if(this.path)for(let e=0;e<this.path.length;e++)this.gc(this.path.get(e))}gc(e){if(0===e.length)throw this.Sc("Document fields must not be empty");if(LS(this.Ac)&&xS.test(e))throw this.Sc('Document fields cannot begin and end with "__"')}}class US{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||u0(e)}Cc(e,t,r,n=!1){return new FS({Ac:e,methodName:t,Dc:r,path:av.emptyPath(),fc:!1,bc:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function VS(e){var t=e._freezeSettings(),r=u0(e._databaseId);return new US(e._databaseId,!!t.ignoreUndefinedProperties,r)}function qS(e,n,i,t,r,s={}){var a=e.Cc(s.merge||s.mergeFields?2:0,n,i,r),o=(ZS("Data must be an object, but it was:",a,t),JS(t,a));let l,h;if(s.merge)l=new fy(a.fieldMask),h=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=ek(n,r,i);if(!a.contains(e))throw new A(k.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);ik(t,e)||t.push(e)}l=new fy(t),h=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,h=a.fieldTransforms;return new OS(new rw(o),l,h)}class BS extends RS{_toFieldTransform(e){if(2!==e.Ac)throw 1===e.Ac?e.Sc(this._methodName+"() can only appear at the top level of your update data"):e.Sc(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof BS}}function jS(e,t,r){return new FS({Ac:3,Dc:t.settings.Dc,methodName:e._methodName,fc:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class zS extends RS{_toFieldTransform(e){return new fb(e.path,new ab)}isEqual(e){return e instanceof zS}}class KS extends RS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=jS(this,e,!0),r=this.vc.map(e=>YS(e,t)),n=new ob(r);return new fb(e.path,n)}isEqual(e){return e instanceof KS&&Ne(this.vc,e.vc)}}class WS extends RS{constructor(e,t){super(e),this.vc=t}_toFieldTransform(e){let t=jS(this,e,!0),r=this.vc.map(e=>YS(e,t)),n=new hb(r);return new fb(e.path,n)}isEqual(e){return e instanceof WS&&Ne(this.vc,e.vc)}}class HS extends RS{constructor(e,t){super(e),this.Fc=t}_toFieldTransform(e){var t=new ub(e.serializer,nb(e.serializer,this.Fc));return new fb(e.path,t)}isEqual(e){return e instanceof HS&&this.Fc===e.Fc}}function GS(e,i,s,t){let a=e.Cc(1,i,s),o=(ZS("Data must be an object, but it was:",a,t),[]),l=rw.empty();oy(t,(e,t)=>{var r=rk(i,e,s),n=(t=w(t),a.yc(r));if(t instanceof BS)o.push(r);else{let e=YS(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new fy(o);return new MS(l,r,a.fieldTransforms)}function $S(e,t,r,n,i,s){var a=e.Cc(1,t,r),o=[ek(t,n,r)],l=[i];if(s.length%2!=0)throw new A(k.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(ek(t,s[p])),l.push(s[p+1]);var h=[],c=rw.empty();for(let f=o.length-1;0<=f;--f)if(!ik(h,o[f])){let t=o[f];var u=w(l[f]);let r=a.yc(t);if(u instanceof BS)h.push(t);else{let e=YS(u,r);null!=e&&(h.push(t),c.set(t,e))}}var d=new fy(h);return new MS(c,d,a.fieldTransforms)}function QS(e,t,r,n=!1){return YS(r,e.Cc(n?4:3,t))}function YS(e,r){if(XS(e=w(e)))return ZS("Unsupported field value:",r,e),JS(e,r);if(e instanceof RS){{var t=e;var n=r;if(!LS(n.Ac))throw n.Sc(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Sc(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.fc&&4!==r.Ac)throw r.Sc("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=YS(s,a.wc(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=w(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return nb(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return h=x.fromDate(t),{timestampValue:tI(n.serializer,h)};if(t instanceof x)return h=new x(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:tI(n.serializer,h)};if(t instanceof PS)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof AS)return{bytesValue:rI(n.serializer,t._byteString)};if(t instanceof q){var h=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(h))return{referenceValue:iI(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Sc(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${h.projectId}/`+h.database)}if(t instanceof DS)return e=t,l=n,{mapValue:{fields:{[Py]:{stringValue:Oy},[My]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Sc("VectorValues must only contain numeric values.");return tb(l.serializer,e)})}}}}};throw n.Sc("Unsupported field value: "+dv(t))}function JS(e,n){let i={};return ly(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):oy(e,(e,t)=>{var r=YS(t,n.mc(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function XS(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof x||e instanceof PS||e instanceof AS||e instanceof q||e instanceof RS||e instanceof DS)}function ZS(e,t,r){var n;if(!XS(r)||!uv(r))throw"an object"===(n=dv(r))?t.Sc(e+" a custom object"):t.Sc(e+" "+n)}function ek(e,t,r){if((t=w(t))instanceof NS)return t._internalPath;if("string"==typeof t)return rk(e,t);throw nk("Field path arguments must be of type string or ",e,!1,void 0,r)}let tk=new RegExp("[~\\*/\\[\\]]");function rk(t,r,n){if(0<=r.search(tk))throw nk(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new NS(...r.split("."))._internalPath}catch(e){throw nk(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function nk(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,l=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(l+=" (found",s&&(l+=" in field "+n),a&&(l+=" in document "+i),l+=")"),new A(k.INVALID_ARGUMENT,o+e+l)}function ik(e,t){return e.some(e=>e.isEqual(t))}class sk{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new q(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new ak(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(ok("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class ak extends sk{data(){return super.data()}}function ok(e,t){return"string"==typeof t?rk(e,t):(t instanceof NS?t:t._delegate)._internalPath}function lk(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new A(k.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class hk{}class ck extends hk{}function uk(e,t,...r){let n=[];t instanceof hk&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof dk).length;if(1<i||0<i&&0<s)throw new A(k.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class dk extends ck{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new dk(e,t,r)}_apply(e){var t=this._parse(e);return wk(e._query,t),new hS(e.firestore,e.converter,Uw(e._query,t))}_parse(e){var t=VS(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new A(k.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){yk(l,o);let e=[];for(let t of l)e.push(_k(a,n,t));r={arrayValue:{values:e}}}else r=_k(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||yk(l,o),r=QS(s,i,l,"in"===o||"not-in"===o);return F.create(e,o,r)}}}(class extends hk{});class pk extends ck{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new pk(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new A(k.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new ow(t,r)})(e._query,this._field,this._direction);return new hS(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Pw(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class fk extends ck{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new fk(e,t,r)}_apply(e){return new hS(e.firestore,e.converter,Vw(e._query,this._limit,this._limitType))}}class gk extends ck{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new gk(e,t,r)}_apply(e){var t,r=vk(e,this.type,this._docOrFields,this._inclusive);return new hS(e.firestore,e.converter,(e=e._query,t=r,new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class mk extends ck{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new mk(e,t,r)}_apply(e){var t,r=vk(e,this.type,this._docOrFields,this._inclusive);return new hS(e.firestore,e.converter,(e=e._query,t=r,new Pw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function vk(e,r,n,i){if(n[0]=w(n[0]),n[0]instanceof sk){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,h=i;if(!l)throw new A(k.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var c=[];for(let t of Lw(s))if(t.field.isKeyField())c.push(Ky(a,l.key));else{let e=l.data.field(t.field);if(Cy(e))throw new A(k.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new A(k.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}c.push(e)}return new iw(c,h)}var t=VS(e.firestore),u=e._query,d=e.firestore._databaseId,p=t,f=r,g=n,o=i,m=u.explicitOrderBy;if(g.length>m.length)throw new A(k.INVALID_ARGUMENT,`Too many arguments provided to ${f}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var v=[];for(let y=0;y<g.length;y++){var _=g[y];if(m[y].field.isKeyField()){if("string"!=typeof _)throw new A(k.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${f}(), but got a `+typeof _);if(!Mw(u)&&-1!==_.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${f}() must be a plain document ID, but '${_}' contains a slash.`);let e=u.path.child(R.fromString(_));if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${f}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new P(e);v.push(Ky(d,t))}else{let e=QS(p,f,_);v.push(e)}}return new iw(v,o)}function _k(e,t,r){if("string"==typeof(r=w(r))){if(""===r)throw new A(k.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Mw(t)&&-1!==r.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(R.fromString(r));if(P.isDocumentKey(n))return Ky(e,new P(n));throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof q)return Ky(e,r._key);throw new A(k.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${dv(r)}.`)}function yk(e,t){if(!Array.isArray(e)||0===e.length)throw new A(k.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function wk(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new A(k.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new A(k.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class bk{convertValue(e,t="none"){switch(Fy(e)){case 0:return null;case 1:return e.booleanValue;case 2:return yy(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(wy(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw C(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return oy(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[My].arrayValue?.values?.map(e=>yy(e.doubleValue));return new DS(t)}convertGeoPoint(e){return new PS(yy(e.latitude),yy(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=Sy(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(ky(e));default:return null}}convertTimestamp(e){var t=_y(e);return new x(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=R.fromString(e),n=(S(SI(r),9688,{name:e}),new Ry(r.get(1),r.get(3))),r=new P(r.popFirst(5));return n.isEqual(t)||Fm(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function Ik(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class Tk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new AS(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}class Ek{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class Ck extends sk{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new Sk(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(ok("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=Ck._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}Ck._jsonSchemaVersion="firestore/documentSnapshot/1.0",Ck._jsonSchema={type:fv("string",Ck._jsonSchemaVersion),bundleSource:fv("string","DocumentSnapshot"),bundleName:fv("string"),bundle:fv("string")};class Sk extends Ck{data(e={}){return super.data(e)}}class kk{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new Ek(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new Sk(this._firestore,this._userDataWriter,e.key,e,new Ek(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new A(k.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new Sk(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Ek(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new Sk(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Ek(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return C(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new A(k.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=kk._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=Ym.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function Ak(e,t){return e instanceof Ck&&t instanceof Ck?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof kk&&t instanceof kk&&e._firestore===t._firestore&&fS(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}kk._jsonSchemaVersion="firestore/querySnapshot/1.0",kk._jsonSchema={type:fv("string",kk._jsonSchemaVersion),bundleSource:fv("string","QuerySnapshot"),bundleName:fv("string"),bundle:fv("string")};class Nk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new AS(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new q(this.firestore,null,t)}}function Rk(e,t,r){e=D(e,q);var n=D(e.firestore,IS),i=Ik(e.converter,t,r);return xk(n,[qS(VS(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,mb.none())])}function Pk(e,t,r,...n){e=D(e,q);var i=D(e.firestore,IS),s=VS(i);return xk(i,[("string"==typeof(t=w(t))||t instanceof NS?$S(s,"updateDoc",e._key,t,r,n):GS(s,"updateDoc",e._key,t)).toMutation(e._key,mb.exists(!0))])}function Dk(n,...i){n=w(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||_S(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(_S(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,l;if(n instanceof q)o=D(n.firestore,IS),l=xw(n._key.path),a={next:e=>{i[s]&&i[s](Ok(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=D(n,hS),r=(o=D(t.firestore,IS),l=t._query,new Nk(o));a={next:e=>{i[s]&&i[s](new kk(o,r,t,e))},error:i[s+1],complete:i[s+2]},lk(n._query)}{var h=TS(o),c=l,u=r,d=a;let e=new MC(d),t=new J0(c,e,u);return h.asyncQueue.enqueueAndForget(async()=>$0(await QC(h),t)),()=>{e.Nu(),h.asyncQueue.enqueueAndForget(async()=>Q0(await QC(h),t))}}}function xk(t,r){{var n=TS(t),i=r;let e=new Bm;return n.asyncQueue.enqueueAndForget(async()=>uC(await $C(n),i,e)),e.promise}}function Ok(e,t,r){var n=r.docs.get(t._key),i=new Nk(e);return new Ck(e,i,t._key,n,new Ek(r.hasPendingWrites,r.fromCache),t.converter)}let Mk={maxAttempts:5};class Lk{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=VS(e)}set(e,t,r){this._verifyNotCommitted();var n=Fk(e,this._firestore),i=Ik(n.converter,t,r),i=qS(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,mb.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=Fk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof NS?$S(this._dataReader,"WriteBatch.update",i._key,t,r,n):GS(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,mb.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=Fk(e,this._firestore);return this._mutations=this._mutations.concat(new kb(t._key,mb.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new A(k.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function Fk(e,t){if((e=w(e)).firestore!==t)throw new A(k.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class Uk extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=VS(e)}get(e){let r=Fk(e,this._firestore),n=new Tk(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return C(24041);var t=e[0];if(t.isFoundDocument())return new sk(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new sk(this._firestore,n,r._key,null,r.converter);throw C(18433,{doc:t})})}set(e,t,r){var n=Fk(e,this._firestore),i=Ik(n.converter,t,r),i=qS(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=Fk(e,this._firestore),s="string"==typeof(t=w(t))||t instanceof NS?$S(this._dataReader,"Transaction.update",i._key,t,r,n):GS(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=Fk(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=Fk(e,this._firestore),r=new Nk(this._firestore);return super.get(e).then(e=>new Ck(this._firestore,r,t._key,e._document,new Ek(!1,!1),t.converter))}}function Vk(r,n,e){r=D(r,IS);var i={...Mk,...e};if(i.maxAttempts<1)throw new A(k.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=TS(r),a=e=>n(new Uk(r,e)),o=i;let t=new Bm;return s.asyncQueue.enqueueAndForget(async()=>{var e=await KC(s).then(e=>e.datastore);new UC(s.asyncQueue,e,o,a,t).ju()}),t.promise}}wS=!0,gD=qt,Om=gD,Dt(new c("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new IS(new Wm(e.getProvider("auth-internal")),new Qm(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new Ry(e.options.projectId,t);throw new A(k.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:wS,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),u(Pm,Dm,_N),u(Pm,Dm,"esm2020");function qk(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new A("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Bk(){if("undefined"==typeof Uint8Array)throw new A("unimplemented","Uint8Arrays are not available in this environment.")}function jk(){if("undefined"==typeof atob)throw new A("unimplemented","Blobs are unavailable in Firestore in this environment.")}class zk{constructor(e){this._delegate=e}static fromBase64String(e){return jk(),new zk(AS.fromBase64String(e))}static fromUint8Array(e){return Bk(),new zk(AS.fromUint8Array(e))}toBase64(){return jk(),this._delegate.toBase64()}toUint8Array(){return Bk(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function Kk(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class Wk{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};Um("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return CS(e,xC.provider,{build:e=>new PC(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{Um("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();CS(e,xC.provider,{build:e=>new DC(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return SS(e._delegate)}}class Hk{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof Ry||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||Um("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(i,s,a={}){{var[i,s,a,o={}]=[this._delegate,i,s,a];i=D(i,lS);let e=ee(s),t=i._getSettings(),r={...t,emulatorOptions:i._getEmulatorOptions()},n=s+":"+a;e&&(te("https://"+n),se("Firestore",!0)),t.host!==aS&&t.host!==n&&Um("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l={...t,host:n,ssl:e,emulatorOptions:o};if(!Ne(l,r)&&(i._setSettings(l),o.mockUserToken)){let t,r;if("string"==typeof o.mockUserToken)t=o.mockUserToken,r=xm.MOCK_USER;else{t=re(o.mockUserToken,i._app?.options.projectId);let e=o.mockUserToken.sub||o.mockUserToken.user_id;if(!e)throw new A(k.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new xm(e)}i._authCredentials=new Km(new jm(t,r))}}}enableNetwork(){return kS(this._delegate)}disableNetwork(){return YC(TS(D(this._delegate,IS)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,lv("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=TS(t=D(t,IS));let e=new Bm;return r.asyncQueue.enqueueAndForget(async()=>gC(await $C(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,tS(TS(t=D(t,IS)),_S(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new A("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new aA(this,uS(this._delegate,e))}catch(e){throw Xk(e,"collection()","Firestore.collection()")}}doc(e){try{return new Jk(this,dS(this._delegate,e))}catch(e){throw Xk(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new nA(this,((e,t)=>{if(e=D(e,lS),ov("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new A(k.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new hS(e,null,(e=t,new Pw(R.emptyPath(),e)))})(this._delegate,e))}catch(e){throw Xk(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return Vk(this._delegate,e=>t(new $k(this,e)))}batch(){return TS(this._delegate),new Qk(new Lk(this._delegate,e=>xk(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=TS(t=D(t,IS)),n=new yS,rS(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,nS(TS(t=D(t,IS)),e).then(e=>e?new hS(t,null,e.query):null).then(e=>e?new nA(this,e):null);var t}}class Gk extends bk{constructor(e){super(),this.firestore=e}convertBytes(e){return new zk(new AS(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Jk.forKey(t,this.firestore,null)}}class $k{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}get(e){let t=oA(e);return this._delegate.get(t).then(e=>new tA(this._firestore,new Ck(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=oA(e);return r?(qk("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=oA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=oA(e);return this._delegate.delete(t),this}}class Qk{constructor(e){this._delegate=e}set(e,t,r){var n=oA(e);return r?(qk("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=oA(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=oA(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Yk{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Sk(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new rA(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=Yk.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Yk(e,new Gk(e),t),n.set(t,i)),i}}Yk.INSTANCES=new WeakMap;class Jk{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}static forPath(e,t,r){if(e.length%2!=0)throw new A("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Jk(t,new q(t._delegate,r,new P(e)))}static forKey(e,t,r){return new Jk(t,new q(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new aA(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new aA(this.firestore,uS(this._delegate,e))}catch(e){throw Xk(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=w(e))instanceof q&&pS(this._delegate,e)}set(e,t){t=qk("DocumentReference.set",t);try{return t?Rk(this._delegate,e,t):Rk(this._delegate,e)}catch(e){throw Xk(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Pk(this._delegate,e):Pk(this._delegate,e,t,...r)}catch(e){throw Xk(e,"updateDoc()","DocumentReference.update()")}}delete(){return xk(D((e=this._delegate).firestore,IS),[new kb(e._key,mb.none())]);var e}onSnapshot(...e){var t=Zk(e),r=eA(e,e=>new tA(this.firestore,new Ck(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Dk(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=D(t,q);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return JC(e,t._key).then(e=>new Ck(r,n,t._key,e,new Ek(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=D(t,q);let r=D(t.firestore,IS);return XC(TS(r),t._key,{source:"server"}).then(e=>Ok(r,t,e))}:t=>{t=D(t,q);let r=D(t.firestore,IS);return XC(TS(r),t._key).then(e=>Ok(r,t,e))})(this._delegate)).then(e=>new tA(this.firestore,new Ck(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Jk(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Xk(e,t,r){return e.message=e.message.replace(t,r),e}function Zk(e){for(var t of e)if("object"==typeof t&&!Kk(t))return t;return{}}function eA(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=Kk(e[0])?e[0]:Kk(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]}).error?.bind(r),complete:r.complete?.bind(r)}}class tA{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Jk(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return Ak(this._delegate,e._delegate)}}class rA extends tA{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||C(57014,e),t}}class nA{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Gk(e)}where(e,t,r){try{return new nA(this.firestore,uk(this._delegate,(n=r,i=t,s=ok("where",e),dk._create(s,i,n))))}catch(e){throw Xk(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new nA(this.firestore,uk(this._delegate,([r,n="asc"]=[e,t],i=n,s=ok("orderBy",r),pk._create(s,i))))}catch(e){throw Xk(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new nA(this.firestore,uk(this._delegate,(pv("limit",t=e),fk._create("limit",t,"F"))))}catch(e){throw Xk(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new nA(this.firestore,uk(this._delegate,(pv("limitToLast",t=e),fk._create("limitToLast",t,"L"))))}catch(e){throw Xk(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],gk._create("startAt",t,!0))))}catch(e){throw Xk(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],gk._create("startAfter",t,!1))))}catch(e){throw Xk(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],mk._create("endBefore",t,!1))))}catch(e){throw Xk(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new nA(this.firestore,uk(this._delegate,([...t]=[...e],mk._create("endAt",t,!0))))}catch(e){throw Xk(e,"endAt()","Query.endAt()")}var t}isEqual(e){return fS(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return ZC(e,t._query).then(e=>new kk(r,n,t,e))}:"server"===e?.source?t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return eS(e,t._query,{source:"server"}).then(e=>new kk(r,n,t,e))}:t=>{t=D(t,hS);let r=D(t.firestore,IS),e=TS(r),n=new Nk(r);return lk(t._query),eS(e,t._query).then(e=>new kk(r,n,t,e))})(this._delegate)).then(e=>new sA(this.firestore,new kk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Zk(e),r=eA(e,e=>new sA(this.firestore,new kk(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Dk(this._delegate,t,r)}withConverter(e){return new nA(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class iA{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new rA(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class sA{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new nA(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new rA(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new iA(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new rA(this._firestore,e))})}isEqual(e){return Ak(this._delegate,e._delegate)}}class aA extends nA{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new Jk(this.firestore,e):null}doc(e){try{return void 0===e?new Jk(this.firestore,dS(this._delegate)):new Jk(this.firestore,dS(this._delegate,e))}catch(e){throw Xk(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=D(e.firestore,IS),n=dS(e),i=Ik(e.converter,t);return xk(r,[qS(VS(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,mb.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Jk(this.firestore,e))}isEqual(e){return pS(this._delegate,e._delegate)}withConverter(e){return new aA(this.firestore,e?this._delegate.withConverter(Yk.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function oA(e){return D(e,q)}class lA{static serverTimestamp(){var e=new zS("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new lA(e)}static delete(){var e=new BS("deleteField");return e._methodName="FieldValue.delete",new lA(e)}static arrayUnion(...e){[...e]=[...e];var t=new KS("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new lA(t)}static arrayRemove(...e){[...e]=[...e];var t=new WS("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new lA(t)}static increment(e){e=e;var t=new HS("increment",e);return t._methodName="FieldValue.increment",new lA(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let hA={Firestore:Hk,GeoPoint:PS,Timestamp:x,Blob:zk,Transaction:$k,WriteBatch:Qk,DocumentReference:Jk,DocumentSnapshot:tA,Query:nA,QueryDocumentSnapshot:rA,QuerySnapshot:sA,CollectionReference:aA,FieldPath:class Gx{constructor(...e){this._delegate=new NS(...e)}static documentId(){return new Gx(av.keyField().canonicalString())}isEqual(e){return(e=w(e))instanceof NS&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:lA,setLogLevel:function(e){e=e,Mm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=hr,bS=(e,t)=>new Hk(e,t,new Wk),t.INTERNAL.registerComponent(new c("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return bS(t,r)},"PUBLIC").setServiceProps({...hA})),t.registerVersion("@firebase/firestore-compat","0.4.2-canary.bc2b2cdea");let cA="type.googleapis.com/google.protobuf.Int64Value",uA="type.googleapis.com/google.protobuf.UInt64Value";function dA(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function pA(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>pA(e));if("function"==typeof e||"object"==typeof e)return dA(e,e=>pA(e));throw new Error("Data cannot be encoded in JSON: "+e)}function fA(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case cA:case uA:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>fA(e)):"function"==typeof e||"object"==typeof e?dA(e,e=>fA(e)):e}let gA="functions",mA={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class vA extends ye{constructor(e,t,r){super(gA+"/"+e,t||""),this.details=r,Object.setPrototypeOf(this,vA.prototype)}}function _A(e,t){let r=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),n=r,i=void 0;try{var s=t&&t.error;if(s){let e=s.status;if("string"==typeof e){if(!mA[e])return new vA("internal","internal");r=mA[e],n=e}var a=s.message;"string"==typeof a&&(n=a),void 0!==(i=s.details)&&(i=fA(i))}}catch(e){}return"ok"===r?null:new vA(r,n,i)}class yA{constructor(e,t,r,n){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=r.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||r.get().then(e=>this.messaging=e,()=>{}),this.appCheck||n?.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{return(await this.auth.getToken())?.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let wA="us-central1",bA=/^data: (.*?)(?:\n|$)/;class IA{constructor(e,t,r,n,i=wA,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new yA(e,t,r,n),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin+("/"===a.pathname?"":a.pathname),this.region=wA}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function TA(i,s,a){var e=e=>{return e=e,r=a||{},n=(t=i)._url(s),SA(t,n,e,r);var t,r,n};return e.stream=(e,t)=>{return e=e,t=t,n=(r=i)._url(s),kA(r,n,e,t||{});var r,n},e}function EA(e){return e.emulatorOrigin&&ee(e.emulatorOrigin)?"include":void 0}async function CA(e,t){var r={},n=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return n.authToken&&(r.Authorization="Bearer "+n.authToken),n.messagingToken&&(r["Firebase-Instance-ID-Token"]=n.messagingToken),null!==n.appCheckToken&&(r["X-Firebase-AppCheck"]=n.appCheckToken),r}async function SA(e,t,r,n){var i={data:r=pA(r)},s=await CA(e,n),a=(r=>{let n=null;return{promise:new Promise((e,t)=>{n=setTimeout(()=>{t(new vA("deadline-exceeded","deadline-exceeded"))},r)}),cancel:()=>{n&&clearTimeout(n)}}})(n.timeout||7e4),i=await Promise.race([(async(e,t,r,n,i)=>{r["Content-Type"]="application/json";let s;try{s=await n(e,{method:"POST",body:JSON.stringify(t),headers:r,credentials:EA(i)})}catch(e){return{status:0,json:null}}let a=null;try{a=await s.json()}catch(e){}return{status:s.status,json:a}})(t,i,s,e.fetchImpl,e),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new vA("cancelled","Firebase Functions instance was deleted.");s=_A(i.status,i.json);if(s)throw s;if(!i.json)throw new vA("internal","Response is not valid JSON object.");let o=i.json.data;if(void 0===(o=void 0===o?i.json.result:o))throw new vA("internal","Response is missing data field.");return{data:fA(o)}}async function kA(e,t,r,n){var i={data:r=pA(r)},s=await CA(e,n);s["Content-Type"]="application/json",s.Accept="text/event-stream";let a;try{a=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(i),headers:s,signal:n?.signal,credentials:EA(e)})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new vA("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=_A(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,l;i=new Promise((e,t)=>{o=e,l=t}),n?.signal?.addEventListener("abort",()=>{var e=new vA("cancelled","Request was cancelled.");l(e)}),s=a.body.getReader();let h=((a,s,o,l)=>{let h=(e,t)=>{var r=e.match(bA);if(r){r=r[1];try{var n,i=JSON.parse(r);"result"in i?s(fA(i.result)):"message"in i?t.enqueue(fA(i.message)):"error"in i&&(n=_A(0,i),t.error(n),o(n))}catch(e){e instanceof vA&&(t.error(e),o(e))}}},c=new TextDecoder;return new ReadableStream({start(i){let s="";return async function r(){if(l?.aborted){let e=new vA("cancelled","Request was cancelled");return i.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await a.read();if(e)s.trim()&&h(s.trim(),i),i.close();else{if(!l?.aborted){let e=(s+=c.decode(t,{stream:!0})).split("\n");s=e.pop()||"";for(var n of e)n.trim()&&h(n.trim(),i);return r()}{let e=new vA("cancelled","Request was cancelled");i.error(e),o(e),void await a.cancel()}}}catch(e){let t=e instanceof vA?e:_A(0,null);i.error(t),o(t)}}()},cancel(){return a.cancel()}})})(s,o,l,n?.signal);return{stream:{[Symbol.asyncIterator](){let r=h.getReader();return{async next(){var{value:e,done:t}=await r.read();return{value:e,done:t}},async return(){return await r.cancel(),{done:!0,value:void 0}}}}},data:i}}let AA="@firebase/functions",NA="0.13.1-canary.bc2b2cdea";function RA(e,t,r){var n;e=w(e),r=r,n=ee(t=t),e.emulatorOrigin=`http${n?"s":""}://${t}:`+r,n&&(te(e.emulatorOrigin+"/backends"),se("Functions",!0))}function PA(e,t,r){return n=w(e),i=t,s=r,(a=e=>SA(n,i,e,s||{})).stream=(e,t)=>kA(n,i,e,t||{}),a;var n,i,s,a}Dt(new c(gA,(e,{instanceIdentifier:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new IA(r,n,i,s,t)},"PUBLIC").setMultipleInstances(!0)),u(AA,NA,r),u(AA,NA,"esm2020");var DA,xA,OA;class MA{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return TA(w(this._delegate),e,t)}httpsCallableFromURL(e,t){return PA(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new ye("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new ye("functions","Port missing in origin provided to useFunctionsEmulator()");return RA(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return RA(this._delegate,e,t)}}let LA="us-central1",FA=(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("functions").getImmediate({identifier:t??LA});return new MA(r,n)};or={Functions:MA},hr.INTERNAL.registerComponent(new c("functions-compat",FA,"PUBLIC").setServiceProps(or).setMultipleInstances(!0)),hr.registerVersion("@firebase/functions-compat","0.4.1-canary.bc2b2cdea");let UA="/firebase-messaging-sw.js",VA="/firebase-cloud-messaging-push-scope",qA="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",BA="https://fcmregistrations.googleapis.com/v1",jA="google.c.a.c_id",zA="google.c.a.c_l",KA="google.c.a.ts",WA="google.c.a.e",HA=1e4;function GA(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(gD=DA=DA||{}).PUSH_RECEIVED="push-received",gD.NOTIFICATION_CLICKED="notification-clicked";let $A="fcm_token_details_db",QA=5,YA="fcm_token_object_Store";async function JA(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes($A))return null;let o=null;return(await gt($A,QA,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(YA)&&(i=await(s=n.objectStore(YA)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:GA(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:GA(s.auth),p256dh:GA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:GA(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:GA(s.auth),p256dh:GA(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:GA(s.vapidKey)}}))}})).close(),await mt($A),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(o)?o:null}let XA="firebase-messaging-database",ZA=1,e1="firebase-messaging-store",t1=null;function r1(){return t1=t1||gt(XA,ZA,{upgrade:(e,t)=>{0===t&&e.createObjectStore(e1)}})}async function n1(e){var t=s1(e),t=await(await r1()).transaction(e1).objectStore(e1).get(t);return t||((t=await JA(e.appConfig.senderId))?(await i1(e,t),t):void 0)}async function i1(e,t){var r=s1(e),n=(await r1()).transaction(e1,"readwrite");return await n.objectStore(e1).put(t,r),await n.done,t}function s1({appConfig:e}){return e.appId}let a1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function o1(e,t){var r={method:"DELETE",headers:await h1(e)};try{var n,i=await(await fetch(l1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,a1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw a1.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function l1({projectId:e}){return BA+`/projects/${e}/registrations`}async function h1({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function c1({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==qA&&(i.web.applicationPubKey=n),i}let u1=6048e5;async function d1(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:GA(a.getKey("auth")),p256dh:GA(a.getKey("p256dh"))},o=await n1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+u1?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await h1(e),n=c1(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(l1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw a1.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,a1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw a1.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await i1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await o1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return f1(e.firebaseDependencies,a)}async function p1(e){var t,r=await n1(e.firebaseDependencies),r=(r&&(await o1(e.firebaseDependencies,r.token),r=s1(e.firebaseDependencies),await(t=(await r1()).transaction(e1,"readwrite")).objectStore(e1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function f1(e,t){var r={token:await(async(e,t)=>{var r=await h1(e),n=c1(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(l1(e.appConfig),r);i=await s.json()}catch(e){throw a1.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,a1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw a1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await i1(e,r),r.token}function g1(e){var t,r,n,i={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return r=i,(t=e).notification&&(r.notification={},(n=t.notification.title)&&(r.notification.title=n),(n=t.notification.body)&&(r.notification.body=n),(n=t.notification.image)&&(r.notification.image=n),n=t.notification.icon)&&(r.notification.icon=n),t=i,(r=e).data&&(t.data=r.data),t=i,((r=e).fcmOptions||r.notification?.click_action)&&(t.fcmOptions={},(n=r.fcmOptions?.link??r.notification?.click_action)&&(t.fcmOptions.link=n),n=r.fcmOptions?.analytics_label)&&(t.fcmOptions.analyticsLabel=n),i}var m1="AzSCbw63g1R0nCw85jG8",v1="Iaya3yLKwmgvh7cF0q4",_1=[];for(let $x=0;$x<m1.length;$x++)_1.push(m1.charAt($x)),$x<v1.length&&_1.push(v1.charAt($x));function y1(e){return a1.create("missing-app-config-values",{valueName:e})}_1.join("");class w1{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw y1("App Configuration Object");if(!e.name)throw y1("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw y1(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}async function b1(e){try{e.swRegistration=await navigator.serviceWorker.register(UA,{scope:VA}),e.swRegistration.update().catch(()=>{}),i=e.swRegistration,await new Promise((t,e)=>{let r=setTimeout(()=>e(new Error(`Service worker not registered after ${HA} ms`)),HA),n=i.installing||i.waiting;i.active?(clearTimeout(r),t()):n?n.onstatechange=e=>{"activated"===e.target?.state&&(n.onstatechange=null,clearTimeout(r),t())}:(clearTimeout(r),e(new Error("No incoming service worker found.")))})}catch(e){throw a1.create("failed-service-worker-registration",{browserErrorMessage:e?.message})}var i}async function I1(e,t){if(!navigator)throw a1.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw a1.create("permission-blocked");n=e,await!((r=t?.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=qA));var r=e,n=t?.serviceWorkerRegistration;if(n||r.swRegistration||await b1(r),n||!r.swRegistration){if(!(n instanceof ServiceWorkerRegistration))throw a1.create("invalid-sw-registration");r.swRegistration=n}return await 0,d1(e)}async function T1(e,t,r){var n=(e=>{switch(e){case DA.NOTIFICATION_CLICKED:return"notification_open";case DA.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(n,{message_id:r[jA],message_name:r[zA],message_time:r[KA],message_device_time:Math.floor(Date.now()/1e3)})}async function E1(e,t){var r,n=t.data;n.isFirebaseMessaging&&(e.onMessageHandler&&n.messageType===DA.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(g1(n)):e.onMessageHandler.next(g1(n))),"object"==typeof(t=r=n.data))&&t&&jA in t&&"1"===r[WA]&&await T1(e,n.messageType,r)}let C1="@firebase/messaging",S1="0.12.23-canary.bc2b2cdea",k1=e=>{let t=new w1(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>E1(t,e)),t},A1=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>I1(t,e)}};function N1(e){return(async e=>{if(navigator)return e.swRegistration||await b1(e),p1(e);throw a1.create("only-available-in-window")})(e=w(e))}function R1(e,t){var r=e=w(e),e=t;if(navigator)return r.onMessageHandler=e,()=>{r.onMessageHandler=null};throw a1.create("only-available-in-window")}Dt(new c("messaging",k1,"PUBLIC")),Dt(new c("messaging-internal",A1,"PRIVATE")),u(C1,S1),u(C1,S1,"esm2020");let P1="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",D1="https://fcmregistrations.googleapis.com/v1",x1="FCM_MSG",O1="google.c.a.c_id",M1=3,L1=1;function F1(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(_N=xA=xA||{})[_N.DATA_MESSAGE=1]="DATA_MESSAGE",_N[_N.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(t=OA=OA||{}).PUSH_RECEIVED="push-received",t.NOTIFICATION_CLICKED="notification-clicked";let U1="fcm_token_details_db",V1=5,q1="fcm_token_object_Store";async function B1(a){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(U1))return null;let o=null;return(await gt(U1,V1,{upgrade:async(e,t,r,n)=>{var i,s;t<2||e.objectStoreNames.contains(q1)&&(i=await(s=n.objectStore(q1)).index("fcmSenderId").get(a),await s.clear(),i)&&(2===t?(s=i).auth&&s.p256dh&&s.endpoint&&(o={token:s.fcmToken,createTime:s.createTime??Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:F1(s.vapidKey)}}):3===t?(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:F1(s.auth),p256dh:F1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:F1(s.vapidKey)}}):4===t&&(s=i,o={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:F1(s.auth),p256dh:F1(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:F1(s.vapidKey)}}))}})).close(),await mt(U1),await mt("fcm_vapid_details_db"),await mt("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(o)?o:null}let j1="firebase-messaging-database",z1=1,K1="firebase-messaging-store",W1=null;function H1(){return W1=W1||gt(j1,z1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(K1)}})}async function G1(e){var t=Q1(e),t=await(await H1()).transaction(K1).objectStore(K1).get(t);return t||((t=await B1(e.appConfig.senderId))?(await $1(e,t),t):void 0)}async function $1(e,t){var r=Q1(e),n=(await H1()).transaction(K1,"readwrite");return await n.objectStore(K1).put(t,r),await n.done,t}function Q1({appConfig:e}){return e.appId}let Y1=new we("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function J1(e,t){var r={method:"DELETE",headers:await Z1(e)};try{var n,i=await(await fetch(X1(e.appConfig)+"/"+t,r)).json();if(i.error)throw n=i.error.message,Y1.create("token-unsubscribe-failed",{errorInfo:n})}catch(e){throw Y1.create("token-unsubscribe-failed",{errorInfo:e?.toString()})}}function X1({projectId:e}){return D1+`/projects/${e}/registrations`}async function Z1({appConfig:e,installations:t}){var r=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+r})}function eN({p256dh:e,auth:t,endpoint:r,vapidKey:n}){var i={web:{endpoint:r,auth:t,p256dh:e}};return n!==P1&&(i.web.applicationPubKey=n),i}let tN=6048e5;async function rN(e){var t,r,n,i,s,a=await(async(e,t)=>{var r=await e.pushManager.getSubscription();return r||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),r=atob(t),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n})(t)})})(e.swRegistration,e.vapidKey),a={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:a.endpoint,auth:F1(a.getKey("auth")),p256dh:F1(a.getKey("p256dh"))},o=await G1(e.firebaseDependencies);if(o){if(t=o.subscriptionOptions,r=a.vapidKey===t.vapidKey,n=a.endpoint===t.endpoint,i=a.auth===t.auth,s=a.p256dh===t.p256dh,r&&n&&i&&s)return Date.now()>=o.createTime+tN?(async(e,t)=>{try{var r=await(async(e,t)=>{var r=await Z1(e),n=eN(t.subscriptionOptions),r={method:"PATCH",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(X1(e.appConfig)+"/"+t.token,r);i=await s.json()}catch(e){throw Y1.create("token-update-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Y1.create("token-update-failed",{errorInfo:n});if(i.token)return i.token;throw Y1.create("token-update-no-token")})(e.firebaseDependencies,t),n={...t,token:r,createTime:Date.now()};return await $1(e.firebaseDependencies,n),r}catch(e){throw e}})(e,{token:o.token,createTime:Date.now(),subscriptionOptions:a}):o.token;try{await J1(e.firebaseDependencies,o.token)}catch(e){console.warn(e)}}return iN(e.firebaseDependencies,a)}async function nN(e){var t,r=await G1(e.firebaseDependencies),r=(r&&(await J1(e.firebaseDependencies,r.token),r=Q1(e.firebaseDependencies),await(t=(await H1()).transaction(K1,"readwrite")).objectStore(K1).delete(r),await t.done),await e.swRegistration.pushManager.getSubscription());return!r||r.unsubscribe()}async function iN(e,t){var r={token:await(async(e,t)=>{var r=await Z1(e),n=eN(t),r={method:"POST",headers:r,body:JSON.stringify(n)};let i;try{var s=await fetch(X1(e.appConfig),r);i=await s.json()}catch(e){throw Y1.create("token-subscribe-failed",{errorInfo:e?.toString()})}if(i.error)throw n=i.error.message,Y1.create("token-subscribe-failed",{errorInfo:n});if(i.token)return i.token;throw Y1.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await $1(e,r),r.token}var sN="AzSCbw63g1R0nCw85jG8",aN="Iaya3yLKwmgvh7cF0q4",oN=[];for(let Qx=0;Qx<sN.length;Qx++)oN.push(sN.charAt(Qx)),Qx<aN.length&&oN.push(aN.charAt(Qx));async function lN(e,t){var r=((e,t)=>{var r={};return e.from&&(r.project_number=e.from),e.fcmMessageId&&(r.message_id=e.fcmMessageId),r.instance_id=t,r.message_type=(e.notification?xA.DISPLAY_NOTIFICATION:xA.DATA_MESSAGE).toString(),r.sdk_platform=M1.toString(),r.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(r.collapse_key=e.collapse_key),r.event=L1.toString(),e.fcmOptions?.analytics_label&&(r.analytics_label=e.fcmOptions?.analytics_label),r})(t,await e.firebaseDependencies.installations.getId()),n=r,t=t.productId,r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:n}),t&&(r.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(r)}async function hN(e,t){var r=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(r){t.deliveryMetricsExportedToBigQueryEnabled&&await lN(t,r);var n,i,s,a=await uN();if(a.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var o,e=a,l=r;l.isFirebaseMessaging=!0,l.messageType=OA.PUSH_RECEIVED;for(o of e)o.postMessage(l)}else r.notification&&await(e=>{var t=e.actions,r=Notification.maxActions;return t&&r&&t.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`),self.registration.showNotification(e.title??"",e)})(((a={...(e=r).notification}).data={[x1]:e},a)),t&&t.onBackgroundMessageHandler&&(a={from:(e=r).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=a,(n=e).notification&&(i.notification={},(s=n.notification.title)&&(i.notification.title=s),(s=n.notification.body)&&(i.notification.body=s),(s=n.notification.image)&&(i.notification.image=s),s=n.notification.icon)&&(i.notification.icon=s),n=a,(i=e).data&&(n.data=i.data),n=a,((i=e).fcmOptions||i.notification?.click_action)&&(n.fcmOptions={},(s=i.fcmOptions?.link??i.notification?.click_action)&&(n.fcmOptions.link=s),s=i.fcmOptions?.analytics_label)&&(n.fcmOptions.analyticsLabel=s),r=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(r):t.onBackgroundMessageHandler.next(r))}}async function cN(e){var t=e.notification?.data?.[x1];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var r=(e=>{var t=e.fcmOptions?.link??e.notification?.click_action;return t||((e=>"object"==typeof e&&e&&O1 in e)(e.data)?self.location.origin:null)})(t);if(r){var n,i=new URL(r,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await(async e=>{var t;for(t of await uN()){var r=new URL(t.url,self.location.href);if(e.host===r.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(r),n=3e3,await new Promise(e=>{setTimeout(e,n)})),e)return t.messageType=OA.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function uN(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function dN(e){return Y1.create("missing-app-config-values",{valueName:e})}oN.join("");class pN{constructor(e,t,r){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var n=(e=>{if(!e||!e.options)throw dN("App Configuration Object");if(!e.name)throw dN("App Name");var t,r=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!r[t])throw dN(t);return{appName:e.name,projectId:r.projectId,apiKey:r.apiKey,appId:r.appId,senderId:r.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:n,installations:t,analyticsProvider:r}}_delete(){return Promise.resolve()}}let fN=e=>{let t=new pN(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(hN(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var r;(r=e.newSubscription)?(r=await G1(t.firebaseDependencies),await nN(t),t.vapidKey=r?.subscriptionOptions?.vapidKey??P1,await rN(t)):await nN(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(cN(e))}),t};function gN(e,t){var r=e=w(e),e=t;if(void 0!==self.document)throw Y1.create("only-available-in-sw");return r.onBackgroundMessageHandler=e,()=>{r.onBackgroundMessageHandler=null}}Dt(new c("messaging-sw",fN,"PUBLIC"));var mN,vN,_N;class yN{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>I1(e=w(e),t))(this._delegate,e)}async deleteToken(){return N1(this._delegate)}onMessage(e){return R1(this._delegate,e)}onBackgroundMessage(e){return gN(this._delegate,e)}}let wN=e=>self&&"ServiceWorkerGlobalScope"in self?new yN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new yN(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),bN={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?me()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&me()&&_e()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};hr.INTERNAL.registerComponent(new c("messaging-compat",wN,"PUBLIC").setServiceProps(bN)),hr.registerVersion("@firebase/messaging-compat","0.2.23-canary.bc2b2cdea");let IN="firebasestorage.googleapis.com",TN="storageBucket";class EN extends ye{constructor(e,t,r=0){super(CN(e),`Firebase Storage: ${t} (${CN(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,EN.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return CN(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+`
|
|
31
|
+
`+this.customData.serverResponse:this.message=this._baseMessage}}function CN(e){return"storage/"+e}function SN(){return new EN(mN.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function kN(){return new EN(mN.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function AN(){return new EN(mN.CANCELED,"User canceled the upload/download.")}function NN(){return new EN(mN.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function RN(e){return new EN(mN.INVALID_ARGUMENT,e)}function PN(){return new EN(mN.APP_DELETED,"The Firebase app was deleted.")}function DN(e){return new EN(mN.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function xN(e,t){return new EN(mN.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function ON(e){throw new EN(mN.INTERNAL_ERROR,"Internal error: "+e)}(r=mN=mN||{}).UNKNOWN="unknown",r.OBJECT_NOT_FOUND="object-not-found",r.BUCKET_NOT_FOUND="bucket-not-found",r.PROJECT_NOT_FOUND="project-not-found",r.QUOTA_EXCEEDED="quota-exceeded",r.UNAUTHENTICATED="unauthenticated",r.UNAUTHORIZED="unauthorized",r.UNAUTHORIZED_APP="unauthorized-app",r.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",r.INVALID_CHECKSUM="invalid-checksum",r.CANCELED="canceled",r.INVALID_EVENT_NAME="invalid-event-name",r.INVALID_URL="invalid-url",r.INVALID_DEFAULT_BUCKET="invalid-default-bucket",r.NO_DEFAULT_BUCKET="no-default-bucket",r.CANNOT_SLICE_BLOB="cannot-slice-blob",r.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",r.NO_DOWNLOAD_URL="no-download-url",r.INVALID_ARGUMENT="invalid-argument",r.INVALID_ARGUMENT_COUNT="invalid-argument-count",r.APP_DELETED="app-deleted",r.INVALID_ROOT_OPERATION="invalid-root-operation",r.INVALID_FORMAT="invalid-format",r.INTERNAL_ERROR="internal-error",r.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class MN{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=MN.makeFromUrl(t,e)}catch(e){return new MN(t,"")}if(""===r.path)return r;throw e=t,new EN(mN.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var n="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+n+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${n}/o(/([^?#]*).*)?$`,"i"),o=t===IN?"(?:storage.googleapis.com|storage.cloud.google.com)":t,l=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${o}/${n}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let d=0;d<l.length;d++){var h=l[d],c=h.regex.exec(e);if(c){var u=c[h.indices.bucket];let e=c[h.indices.path];e=e||"",r=new MN(u,e),h.postModify(r);break}}if(null==r)throw t=e,new EN(mN.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class LN{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function FN(e){return"string"==typeof e||e instanceof String}function UN(e){return VN()&&e instanceof Blob}function VN(){return"undefined"!=typeof Blob}function qN(e,t,r,n){if(n<t)throw RN(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<n)throw RN(`Invalid value for '${e}'. Expected ${r} or less.`)}function BN(e,t,r){let n=null==r?"https://"+t:t;return`${r}://${n}/v0`+e}function jN(e){var t,r,n=encodeURIComponent;let i="?";for(t in e)e.hasOwnProperty(t)&&(r=n(t)+"="+n(e[t]),i=i+r+"&");return i=i.slice(0,-1)}function zN(e,t){var r=500<=e&&e<600,n=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return r||n||i}(gD=vN=vN||{})[gD.NO_ERROR=0]="NO_ERROR",gD[gD.NETWORK_ERROR=1]="NETWORK_ERROR",gD[gD.ABORT=2]="ABORT";class KN{constructor(e,t,r,n,i,s,a,o,l,h,c,u=!0,d=!1){this.url_=e,this.method_=t,this.headers_=r,this.body_=n,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=l,this.progressCallback_=h,this.connectionFactory_=c,this.retry=u,this.isUsingEmulator=d,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(i,e)=>{if(e)i(!1,new WN(!1,null,!0));else{let r=this.connectionFactory_(),n=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(n),r.send(this.url_,this.method_,this.isUsingEmulator,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(n),this.pendingConnection_=null;var e=r.getErrorCode()===vN.NO_ERROR,t=r.getStatus();!e||zN(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===vN.ABORT,i(!1,new WN(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),i(!0,new WN(e,r)))})}},t=(e,t)=>{var r=this.resolve_,n=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?r(s):r()}catch(e){n(e)}else null!==i?((s=SN()).serverResponse=i.getErrorText(),this.errorCallback_?n(this.errorCallback_(i,s)):n(s)):t.canceled?n((this.appDelete_?PN:AN)()):n(kN())};this.canceled_?t(0,new WN(!1,null,!0)):this.backoffId_=((t,r,e)=>{let n=1,i=null,s=null,a=!1,o=0;function l(){return 2===o}let h=!1;function c(...e){h||(h=!0,r.apply(null,e))}function u(e){i=setTimeout(()=>{i=null,t(p,l())},e)}function d(){s&&clearTimeout(s)}function p(e,...t){if(h)d();else if(e)d(),c.call(null,e,...t);else if(l()||a)d(),c.call(null,e,...t);else{n<64&&(n*=2);let e;u(e=1===o?(o=2,0):1e3*(n+Math.random()))}}let f=!1;function g(e){f||(f=!0,d(),h)||(null!==i?(e||(o=2),clearTimeout(i),u(0)):e||(o=1))}return u(0),s=setTimeout(()=>{g(a=!0)},e),g})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class WN{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function HN(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var n=new r;for(let e=0;e<t.length;e++)n.append(t[e]);return n.getBlob()}if(VN())return new Blob(t);throw new EN(mN.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function GN(e){if("undefined"==typeof atob)throw new EN(mN.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let $N={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class QN{constructor(e,t){this.data=e,this.contentType=t||null}}function YN(e,t){switch(e){case $N.RAW:return new QN(JN(t));case $N.BASE64:case $N.BASE64URL:return new QN(XN(e,t));case $N.DATA_URL:return new QN((r=t,(n=new ZN(r)).base64?XN($N.BASE64,n.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw xN($N.DATA_URL,"Malformed data URL.")}return JN(t)})(n.rest)),(r=t,new ZN(r).contentType))}var r,n;throw SN()}function JN(t){var r,n,i=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);e<=127?i.push(e):e<=2047?i.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,n=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&n,i.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):i.push(239,191,189):56320==(64512&e)?i.push(239,191,189):i.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(i)}function XN(t,e){switch(t){case $N.BASE64:var r=-1!==e.indexOf("-"),n=-1!==e.indexOf("_");if(r||n)throw xN(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case $N.BASE64URL:n=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(n||r)throw xN(t,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=GN(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw xN(t,"Invalid character found")}var s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class ZN{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw xN($N.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,n,t=t[1]||null;null!=t&&(this.base64=(n=";base64",(r=t).length>=n.length&&r.substring(r.length-n.length)===n),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class eR{constructor(e,t){let r=0,n="";UN(e)?(this.data_=e,r=e.size,n=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=n}size(){return this.size_}type(){return this.type_}slice(e,t){var r,n,i,s;return UN(this.data_)?(r=this.data_,i=e,s=t,null===(r=(n=r).webkitSlice?n.webkitSlice(i,s):n.mozSlice?n.mozSlice(i,s):n.slice?n.slice(i,s):null)?null:new eR(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new eR(r,!0))}static getBlob(...e){if(VN())return i=e.map(e=>e instanceof eR?e.data_:e),new eR(HN.apply(null,i));{var i=e.map(e=>FN(e)?YN($N.RAW,e).data:e.data_);let t=0,r=(i.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),n=0;return i.forEach(e=>{for(let t=0;t<e.length;t++)r[n++]=e[t]}),new eR(r,!0)}}uploadData(){return this.data_}}function tR(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function rR(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function nR(e,t){return t}class iR{constructor(e,t,r,n){this.server=e,this.local=t||e,this.writable=!!r,this.xform=n||nR}}let sR=null;function aR(){var e,t;return sR||((e=[]).push(new iR("bucket")),e.push(new iR("generation")),e.push(new iR("metageneration")),e.push(new iR("name","fullPath",!0)),(t=new iR("name")).xform=function(e,t){return!FN(t=t)||t.length<2?t:rR(t)},e.push(t),(t=new iR("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new iR("timeCreated")),e.push(new iR("updated")),e.push(new iR("md5Hash",null,!0)),e.push(new iR("cacheControl",null,!0)),e.push(new iR("contentDisposition",null,!0)),e.push(new iR("contentEncoding",null,!0)),e.push(new iR("contentLanguage",null,!0)),e.push(new iR("contentType",null,!0)),e.push(new iR("metadata","customMetadata",!0)),sR=e),sR}function oR(r,n){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new MN(e,t);return n._makeStorageReference(e)}})}function lR(e,t,r){var n=tR(t);if(null===n)return null;var t=e,i=n,s=r,a={type:"file"},o=s.length;for(let h=0;h<o;h++){var l=s[h];a[l.local]=l.xform(a,i[l.server])}return oR(a,t),a}function hR(e,t){var r={},n=t.length;for(let s=0;s<n;s++){var i=t[s];i.writable&&(r[i.server]=e[i.local])}return JSON.stringify(r)}let cR="prefixes",uR="items";function dR(e,t,r){var n=tR(r);if(null===n)return null;var i=e,s=t,r=n,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[cR])for(var o of r[cR]){o=o.replace(/\/$/,""),o=i._makeStorageReference(new MN(s,o));a.prefixes.push(o)}if(r[uR])for(var l of r[uR]){l=i._makeStorageReference(new MN(s,l.name));a.items.push(l)}return a}class pR{constructor(e,t,r,n){this.url=e,this.method=t,this.handler=r,this.timeout=n,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function fR(e){if(!e)throw SN()}function gR(n,i){return function(e,t){var r=lR(n,t,i);return fR(null!==r),r}}function mR(n,i){return function(e,t){var r=dR(n,i,t);return fR(null!==r),r}}function vR(o,n){return function(e,t){var r=lR(o,t,n);fR(null!==r);{var i=r,s=o.host,a=o._protocol;if(null===(r=tR(t)))return null;if(!FN(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let n=encodeURIComponent;return r.split(",").map(e=>{var t=i.bucket,r=i.fullPath;return BN("/b/"+n(t)+"/o/"+n(r),s,a)+jN({alt:"media",token:e})})[0]}}}function _R(i){return function(e,t){let r;var n;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new EN(mN.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new EN(mN.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(n=i.bucket,new EN(mN.QUOTA_EXCEEDED,"Quota for bucket '"+n+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(n=i.path,new EN(mN.UNAUTHORIZED,"User does not have permission to access '"+n+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function yR(n){let i=_R(n);return function(e,t){let r=i(e,t);return(r=404===e.getStatus()?(e=n.path,new EN(mN.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function wR(e,t,r){var n=BN(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime,n=new pR(n,"GET",gR(e,r),i);return n.errorHandler=yR(t),n}function bR(e,t,r){var n=Object.assign({},r);return n.fullPath=e.path,n.size=t.size(),n.contentType||(n.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),n}function IR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),l=(a["Content-Type"]="multipart/related; boundary="+o,bR(t,n,i)),h="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+hR(l,r)+"\r\n--"+o+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",o="\r\n--"+o+"--",h=eR.getBlob(h,n,o);if(null===h)throw NN();o={name:l.fullPath},l=BN(s,e.host,e._protocol),s=e.maxUploadRetryTime,l=new pR(l,"POST",gR(e,r),s);return l.urlParams=o,l.headers=a,l.body=h.uploadData(),l.errorHandler=_R(t),l}class TR{constructor(e,t,r,n){this.current=e,this.total=t,this.finalized=!!r,this.metadata=n||null}}function ER(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){fR(!1)}return fR(!!r&&-1!==(t||["active"]).indexOf(r)),r}function CR(e,t,r,n,i){var s=t.bucketOnlyServerUrl(),a=bR(t,n,i),o={name:a.fullPath},s=BN(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+n.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=hR(a,r),h=e.maxUploadRetryTime;s=new pR(s,"POST",function(e){ER(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){fR(!1)}return fR(FN(t)),t},h);return s.urlParams=o,s.headers=l,s.body=a,s.errorHandler=_R(t),s}function SR(e,t,r,i){var n=e.maxUploadRetryTime,n=new pR(r,"POST",function(e){var t=ER(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){fR(!1)}r||fR(!1);var n=Number(r);return fR(!isNaN(n)),new TR(n,i.size(),"final"===t)},n);return n.headers={"X-Goog-Upload-Command":"query"},n.errorHandler=_R(t),n}function kR(e,a,t,o,r,l,n,i){let h=new TR(0,0);if(n?(h.current=n.current,h.total=n.total):(h.current=0,h.total=o.size()),o.size()!==h.total)throw new EN(mN.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=h.total-h.current;let c=s;0<r&&(c=Math.min(c,r));var u=h.current,d=u+c;let p="";s={"X-Goog-Upload-Command":p=0===c?"finalize":s===c?"upload, finalize":"upload","X-Goog-Upload-Offset":""+h.current},u=o.slice(u,d);if(null===u)throw NN();d=a.maxUploadRetryTime,d=new pR(t,"POST",function(e,t){var r=ER(e,["active","final"]),n=h.current+c,i=o.size();let s;return s="final"===r?gR(a,l)(e,t):null,new TR(n,i,"final"===r,s)},d);return d.headers=s,d.body=u.uploadData(),d.progressCallback=i||null,d.errorHandler=_R(e),d}let AR={STATE_CHANGED:"state_changed"},NR={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function RR(e){switch(e){case"running":case"pausing":case"canceling":return NR.RUNNING;case"paused":return NR.PAUSED;case"success":return NR.SUCCESS;case"canceled":return NR.CANCELED;default:return NR.ERROR}}class PR{constructor(e,t,r){var n;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=t??void 0,this.complete=r??void 0):(this.next=(n=e).next,this.error=n.error,this.complete=n.complete)}}function DR(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class xR extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=vN.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=vN.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=vN.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,n,i){if(this.sent_)throw ON("cannot .send() more than once");if(ee(e)&&r&&(this.xhr_.withCredentials=!0),this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==i)for(var s in i)i.hasOwnProperty(s)&&this.xhr_.setRequestHeader(s,i[s].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw ON("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw ON("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw ON("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw ON("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function OR(){return new xR}class MR{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=aR(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(mN.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(zN(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=kN()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(mN.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=CR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let n=this._uploadUrl;this._resolveToken((e,t)=>{var r=SR(this._ref.storage,this._ref._location,n,this._blob),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let i=262144*this._chunkMultiplier,s=new TR(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=kR(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var n=this._ref.storage._makeRequest(r,OR,e,t,!1);(this._request=n).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=wR(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=IR(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,OR,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=AN(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=RR(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,n){let i=new PR(t||void 0,r||void 0,n||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(RR(this._state)){case NR.SUCCESS:DR(this._resolve.bind(null,this.snapshot))();break;case NR.CANCELED:case NR.ERROR:DR(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(RR(this._state)){case NR.RUNNING:case NR.PAUSED:e.next&&DR(e.next.bind(e,this.snapshot))();break;case NR.SUCCESS:e.complete&&DR(e.complete.bind(e))();break;case NR.CANCELED:case NR.ERROR:default:e.error&&DR(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class LR{constructor(e,t){this._service=e,t instanceof MN?this._location=t:this._location=MN.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new LR(e,t)}get root(){var e=new MN(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return rR(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new MN(this._location.bucket,r),new LR(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw DN(e)}}function FR(e){let t={prefixes:[],items:[]};return async function e(t,r,n){let i={pageToken:n};let s=await UR(t,i);r.prefixes.push(...s.prefixes);r.items.push(...s.items);null!=s.nextPageToken&&await e(t,r,s.nextPageToken)}(e,t).then(()=>t)}function UR(e,t){null!=t&&"number"==typeof t.maxResults&&qN("options.maxResults",1,1e3,t.maxResults);var r,n,i,s,a,o=t||{},l=(t=e.storage,r=e._location,n="/",i=o.pageToken,s=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",n&&0<n.length&&(o.delimiter=n),i&&(o.pageToken=i),s&&(o.maxResults=s),a=BN(a=r.bucketOnlyServerUrl(),t.host,t._protocol),l=t.maxOperationRetryTime,(a=new pR(a,"GET",mR(t,r.bucket),l)).urlParams=o,a.errorHandler=_R(r),a);return e.storage.makeRequestWithTokens(l,OR)}function VR(e,t){e._throwIfRoot("updateMetadata");r=e.storage,n=e._location,t=t,i=aR(),s=BN(n.fullServerUrl(),r.host,r._protocol),a=hR(t,i),o=r.maxOperationRetryTime,(s=new pR(s,"PATCH",gR(r,i),o)).headers={"Content-Type":"application/json; charset=utf-8"},s.body=a,s.errorHandler=yR(n);var r,n,i,s,a,o=s;return e.storage.makeRequestWithTokens(o,OR)}function qR(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,n=aR(),i=BN(r.fullServerUrl(),t.host,t._protocol),s=t.maxOperationRetryTime,(i=new pR(i,"GET",vR(t,n),s)).errorHandler=yR(r);var t,r,n,i,s=i;return e.storage.makeRequestWithTokens(s,OR).then(e=>{if(null===e)throw new EN(mN.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function BR(e){e._throwIfRoot("deleteObject");t=e.storage,n=BN((r=e._location).fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new pR(n,"DELETE",function(e,t){},i)).successCodes=[200,204],n.errorHandler=yR(r);var t,r,n,i=n;return e.storage.makeRequestWithTokens(i,OR)}function jR(e,t){r=e._location.path,n=t.split("/").filter(e=>0<e.length).join("/");var r,n=0===r.length?n:r+"/"+n,n=new MN(e._location.bucket,n);return new LR(e.storage,n)}function zR(e,t){if(e instanceof HR){var r=e;if(null==r._bucket)throw new EN(mN.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+TN+"' property when initializing the app?");r=new LR(r,r._bucket);return null!=t?zR(r,t):r}return void 0!==t?jR(e,t):e}function KR(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof HR)return r=e,n=t,new LR(r,n);throw RN("To use ref(service, url), the first argument must be a Storage instance.")}return zR(e,t);var r,n}function WR(e,t){var r=t?.[TN];return null==r?null:MN.makeFromBucketSpec(r,e)}class HR{constructor(e,t,r,n,i,s=!1){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=n,this._firebaseVersion=i,this._isUsingEmulator=s,this._bucket=null,this._host=IN,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=n?MN.makeFromBucketSpec(n,this._host):WR(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=MN.makeFromBucketSpec(this._url,e):this._bucket=WR(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){qN("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){qN("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new LR(this,e)}_makeRequest(t,r,n,i,s=!0){if(this._deleted)return new LN(PN());{[t,n,i,r,s,a,o=!0,l=!1]=[t,this._appId,n,i,r,this._firebaseVersion,s,this._isUsingEmulator],c=jN(t.urlParams),c=t.url+c,u=Object.assign({},t.headers),h=u,(n=n)&&(h["X-Firebase-GMPID"]=n),h=u,null!==(n=i)&&0<n.length&&(h.Authorization="Firebase "+n),u["X-Firebase-Storage-Version"]="webjs/"+(a??"AppManager"),i=u,null!==(h=r)&&(i["X-Firebase-AppCheck"]=h);let e=new KN(c,t.method,u,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,s,o,l);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,l,h,c,u}async makeRequestWithTokens(e,t){var[r,n]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,n).getPromise()}}let GR="@firebase/storage",$R="0.14.0-canary.bc2b2cdea";function QR(e,t,r){return e=w(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new MR(e,new eR(t),r)}function YR(e){return e=w(e),(e=e)._throwIfRoot("getMetadata"),t=wR(e.storage,e._location,aR()),e.storage.makeRequestWithTokens(t,OR);var t}function JR(e,t){return KR(e=w(e),t)}function XR(e,t,r,n={}){var i;[e,t,r,n={}]=[e,t,r,n],e.host=t+":"+r,(i=((i=ee(t))&&(te(`https://${e.host}/b`),se("Storage",!0)),e._isUsingEmulator=!0,e._protocol=i?"https":"http",n).mockUserToken)&&(e._overrideAuthToken="string"==typeof i?i:re(i,e.app.options.projectId))}function ZR(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new HR(r,n,i,t,qt)}Dt(new c("storage",ZR,"PUBLIC").setMultipleInstances(!0)),u(GR,$R,""),u(GR,$R,"esm2020");class eP{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class tP{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new eP(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new eP(e,this,this._ref))},e)}on(e,t,r,n){let i=void 0;return t&&(i="function"==typeof t?e=>t(new eP(e,this,this._ref)):{next:t.next?e=>t.next(new eP(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,r||void 0,n||void 0)}}class rP{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new nP(e,this._service))}get items(){return this._delegate.items.map(e=>new nP(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class nP{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=jR(this._delegate,e);return new nP(t,this.storage)}get root(){return new nP(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new nP(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new tP(QR(this._delegate,e,t),this)}putString(e,t=$N.RAW,r){this._throwIfRoot("putString");var n=YN(t,e),i={...r};return null==i.contentType&&null!=n.contentType&&(i.contentType=n.contentType),new tP(new MR(this._delegate,new eR(n.data,!0),i),this)}listAll(){return FR(w(this._delegate)).then(e=>new rP(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,UR(t=w(t),e).then(e=>new rP(e,this.storage));var t}getMetadata(){return YR(this._delegate)}updateMetadata(e){return VR(w(this._delegate),e)}getDownloadURL(){return qR(w(this._delegate))}delete(){return this._throwIfRoot("delete"),BR(w(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw DN(e)}}class iP{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(sP(e))throw RN("ref() expected a child path but got a URL, use refFromURL instead.");return new nP(JR(this._delegate,e),this)}refFromURL(e){if(!sP(e))throw RN("refFromURL() expected a full URL but got a child path, use ref() instead.");try{MN.makeFromUrl(e,this._delegate.host)}catch(e){throw RN("refFromUrl() expected a valid full URL but got an invalid one.")}return new nP(JR(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){XR(this._delegate,e,t,r)}}function sP(e){return/^[A-Za-z]+:\/\//.test(e)}function aP(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("storage").getImmediate({identifier:t});return new iP(r,n)}_N=hr,Nm={TaskState:NR,TaskEvent:AR,StringFormat:$N,Storage:iP,Reference:nP},_N.INTERNAL.registerComponent(new c("storage-compat",aP,"PUBLIC").setServiceProps(Nm).setMultipleInstances(!0)),_N.registerVersion("@firebase/storage-compat","0.4.0-canary.bc2b2cdea");function oP(e){if("loading"===document.readyState)return"loading";var t=vP();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function lP(e,t){var r="";try{for(;e&&9!==e.nodeType;){var n=e,i=n.id?"#"+n.id:_P(n)+(n.classList&&n.classList.value&&n.classList.value.trim()&&n.classList.value.trim().length?"."+n.classList.value.trim().replace(/\s+/g,"."):"");if(r.length+i.length>(t||100)-1)return r||i;if(r=r?i+">"+r:i,n.id)break;e=n.parentNode}}catch(e){}return r}function hP(i,e){var a,o,s,l;a=function(e){r={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(n=(n=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||n[0])&&(r={largestShiftTarget:lP(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:oP(t.startTime)});var t,r,n=Object.assign(e,{attribution:r});i(n)},o=e||{},s=AP(function(){function e(e){e.forEach(function(e){var t,r;e.hadRecentInput||(t=i[0],r=i[i.length-1],n&&e.startTime-r.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,i.push(e)):(n=e.value,i=[e]))}),n>r.value&&(r.value=n,r.entries=i,t())}var t,r=TP("CLS",0),n=0,i=[],s=EP("layout-shift",e);s&&(t=CP(a,r,FP,o.reportAllChanges),kP(function(){e(s.takeRecords()),t(!0)}),bP(function(){r=TP("CLS",n=0),t=CP(a,r,FP,o.reportAllChanges),SP(function(){return t()})}),setTimeout(t,0))}),l=l||{},MP(function(){var t,r=OP(),n=TP("FCP"),i=EP("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(i.disconnect(),e.startTime<r.firstHiddenTime)&&(n.value=Math.max(e.startTime-IP(),0),n.entries.push(e),t(!0))})});i&&(t=CP(s,n,LP,l.reportAllChanges),bP(function(e){n=TP("FCP"),t=CP(s,n,LP,l.reportAllChanges),SP(function(){n.value=performance.now()-e.timeStamp,t(!0)})}))})}function cP(s,a){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(a=a||{},MP(function(){var e;zP();function t(t){YP(function(){t.forEach(QP);var e=GP();e&&e.latency!==r.value&&(r.value=e.latency,r.entries=e.entries,i())})}var r=TP("INP"),n=EP("event",t,{durationThreshold:null!=(e=a.durationThreshold)?e:40}),i=CP(s,r,JP,a.reportAllChanges);n&&(n.observe({type:"first-input",buffered:!0}),kP(function(){t(n.takeRecords()),i(!0)}),bP(function(){HP=jP(),KP.length=0,WP.clear(),r=TP("INP"),i=CP(s,r,JP,a.reportAllChanges)}))}))}function uP(e){XP=XP.concat(e),iD()}function dP(){10<rD.size&&rD.forEach(function(e,t){WP.has(t)||rD.delete(t)});var r=KP.map(function(e){return tD.get(e.entries[0])}),n=ZP.length-50;ZP=ZP.filter(function(e,t){return n<=t||r.includes(e)});for(var i=new Set,e=0;e<ZP.length;e++){var t=ZP[e];sD(t.startTime,t.processingEnd).forEach(function(e){i.add(e)})}var s=XP.length-1-50;XP=XP.filter(function(e,t){return e.startTime>eD&&s<t||i.has(e)}),nD=-1}function pP(l,e){mP=mP||EP("long-animation-frame",uP),cP(function(e){t=(e=e).entries[0],o=tD.get(t),r=t.processingStart,n=o.processingEnd,o=o.entries.sort(function(e,t){return e.processingStart-t.processingStart}),i=sD(t.startTime,n),s=(s=e.entries.find(function(e){return e.target}))&&s.target||rD.get(t.interactionId),a=[t.startTime+t.duration,n].concat(i.map(function(e){return e.startTime+e.duration})),a=Math.max.apply(Math,a),s={interactionTarget:lP(s),interactionTargetElement:s,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:a,processedEventEntries:o,longAnimationFrameEntries:i,inputDelay:r-t.startTime,processingDuration:n-r,presentationDelay:Math.max(a-n,0),loadState:oP(t.startTime)};var t,r,n,i,s,a,o=Object.assign(e,{attribution:s});l(o)},e)}function fP(h,e){var a,o;a=function(e){o={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=vP())&&(a=t.activationStart||0,n=(r=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===r.url})[0],l=Math.max(0,t.responseStart-a),i=Math.max(l,n?(n.requestStart||n.startTime)-a:0),s=Math.max(i,n?n.responseEnd-a:0),a=Math.max(s,r.startTime-a),o={element:lP(r.element),timeToFirstByte:l,resourceLoadDelay:i-l,resourceLoadDuration:s-i,elementRenderDelay:a-s,navigationEntry:t,lcpEntry:r},r.url&&(o.url=r.url),n)&&(o.lcpResourceEntry=n);var t,r,n,i,s,a,o,l=Object.assign(e,{attribution:o});h(l)},o=e||{},MP(function(){function e(e){(e=o.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<n.firstHiddenTime&&(i.value=Math.max(e.startTime-IP(),0),i.entries=[e],t())})}var t,r,n=OP(),i=TP("LCP"),s=EP("largest-contentful-paint",e);s&&(t=CP(a,i,aD,o.reportAllChanges),r=AP(function(){oD[i.id]||(e(s.takeRecords()),s.disconnect(),oD[i.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return YP(r)},{once:!0,capture:!0})}),kP(r),bP(function(e){i=TP("LCP"),t=CP(a,i,aD,o.reportAllChanges),SP(function(){i.value=performance.now()-e.timeStamp,oD[i.id]=!0,t(!0)})}))})}var gP,mP,vP=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},_P=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},yP=-1,wP=function(){return yP},bP=function(t){addEventListener("pageshow",function(e){e.persisted&&(yP=e.timeStamp,t(e))},!0)},IP=function(){var e=vP();return e&&e.activationStart||0},TP=function(e,t){var r=vP(),n="navigate";return 0<=wP()?n="back-forward-cache":r&&(document.prerendering||0<IP()?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},EP=function(e,t,r){try{var n;if(PerformanceObserver.supportedEntryTypes.includes(e))return(n=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},r||{})),n}catch(e){}},CP=function(t,r,n,i){var s,a;return function(e){0<=r.value&&(e||i)&&((a=r.value-(s||0))||void 0===s)&&(s=r.value,r.delta=a,r.rating=(e=r.value)>n[1]?"poor":e>n[0]?"needs-improvement":"good",t(r))}},SP=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},kP=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},AP=function(e){var t=!1;return function(){t||(e(),t=!0)}},NP=-1,RP=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},PP=function(e){"hidden"===document.visibilityState&&-1<NP&&(NP="visibilitychange"===e.type?e.timeStamp:0,xP())},DP=function(){addEventListener("visibilitychange",PP,!0),addEventListener("prerenderingchange",PP,!0)},xP=function(){removeEventListener("visibilitychange",PP,!0),removeEventListener("prerenderingchange",PP,!0)},OP=function(){return NP<0&&(NP=RP(),DP(),bP(function(){setTimeout(function(){NP=RP(),DP()},0)})),{get firstHiddenTime(){return NP}}},MP=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},LP=[1800,3e3],FP=[.1,.25],UP=0,VP=1/0,qP=0,BP=function(e){e.forEach(function(e){e.interactionId&&(VP=Math.min(VP,e.interactionId),qP=Math.max(qP,e.interactionId),UP=qP?(qP-VP)/7+1:0)})},jP=function(){return gP?UP:performance.interactionCount||0},zP=function(){"interactionCount"in performance||(gP=gP||EP("event",BP,{type:"event",buffered:!0,durationThreshold:0}))},KP=[],WP=new Map,HP=0,GP=function(){var e=Math.min(KP.length-1,Math.floor((jP()-HP)/50));return KP[e]},$P=[],QP=function(t){var e,r;$P.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(r=KP[KP.length-1],((e=WP.get(t.interactionId))||KP.length<10||t.duration>r.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(r={id:t.interactionId,latency:t.duration,entries:[t]},WP.set(r.id,r),KP.push(r)),KP.sort(function(e,t){return t.latency-e.latency}),10<KP.length)&&KP.splice(10).forEach(function(e){return WP.delete(e.id)}))},YP=function(e){var t=self.requestIdleCallback||self.setTimeout,r=-1;return e=AP(e),"hidden"===document.visibilityState?e():(r=t(e),kP(e)),r},JP=[200,500],XP=[],ZP=[],eD=0,tD=new WeakMap,rD=new Map,nD=-1,iD=function(){nD<0&&(nD=YP(dP))},sD=($P.push(function(e){e.interactionId&&e.target&&!rD.has(e.interactionId)&&rD.set(e.interactionId,e.target)},function(e){var t,r=e.startTime+e.duration;eD=Math.max(eD,e.processingEnd);for(var n=ZP.length-1;0<=n;n--){var i=ZP[n];if(Math.abs(r-i.renderTime)<=8){(t=i).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:r,entries:[e]},ZP.push(t)),!e.interactionId&&"first-input"!==e.entryType||tD.set(e,t),iD()}),function(e,t){for(var r,n=[],i=0;r=XP[i];i++)if(!(r.startTime+r.duration<e)){if(r.startTime>t)break;n.push(r)}return n}),aD=[2500,4e3],oD={};let lD="@firebase/performance",hD="0.7.9-canary.bc2b2cdea",cD=hD,uD="FB-PERF-TRACE-MEASURE",dD="@firebase/performance/config",pD="@firebase/performance/configexpire";var fD,t,r,gD,e="Performance";let mD=new we("performance",e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),vD=new tt(e);vD.logLevel=d.INFO;let _D,yD;class wD{constructor(e){if(!(this.window=e))throw mD.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=fP,this.onINP=pP,this.onCLS=hP}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,r){this.performance&&this.performance.measure&&this.performance.measure(e,t,r)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&_e()?!!me()||(vD.info("IndexedDB is not supported by current browser"),!1):(vD.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,r){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())r(t)}).observe({entryTypes:[e]})}static getInstance(){return _D=void 0===_D?new wD(yD):_D}}let bD;function ID(e,t){var r=e.length-t.length;if(r<0||1<r)throw mD.create("invalid String merger input");var n=[];for(let i=0;i<e.length;i++)n.push(e.charAt(i)),t.length>i&&n.push(t.charAt(i));return n.join("")}let TD;class ED{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=ID("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=ID("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12,this.logMaxFlushSize=40}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return TD=void 0===TD?new ED:TD}}(t=fD=fD||{})[t.UNKNOWN=0]="UNKNOWN",t[t.VISIBLE=1]="VISIBLE",t[t.HIDDEN=2]="HIDDEN";let CD=["firebase_","google_","ga_"],SD=new RegExp("^[a-zA-Z]\\w*$");function kD(e){var t=e.options?.appId;if(t)return t;throw mD.create("no app id")}let AD="0.0.1",ND={loggingEnabled:!0},RD="FIREBASE_INSTALLATIONS_AUTH";function PD(e,t){var n,i,r=(()=>{var e=wD.getInstance().localStorage;if(e){var t=e.getItem(pD);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(dD);if(t)try{return JSON.parse(t)}catch{}}}})();return r?(xD(r),Promise.resolve()):(i=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((n=e).installations).then(e=>{var t=(e=>{var t=e.options?.projectId;if(t)return t;throw mD.create("no project id")})(n.app),r=(e=>{var t=e.options?.apiKey;if(t)return t;throw mD.create("no api key")})(n.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+r,{method:"POST",headers:{Authorization:RD+" "+e},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:kD(n.app),app_version:cD,sdk_version:AD})});return fetch(t).then(e=>{if(e.ok)return e.json();throw mD.create("RC response not ok")})}).catch(()=>{vD.info(DD)}).then(xD).then(e=>{var t;e=e,t=wD.getInstance().localStorage,e&&t&&(t.setItem(dD,JSON.stringify(e)),t.setItem(pD,String(Date.now()+60*ED.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let DD="Could not fetch config, will use default configs";function xD(e){var t,r;return e&&(t=ED.getInstance(),void 0!==(r=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(r.fpr_enabled):t.loggingEnabled=ND.loggingEnabled,r.fpr_log_source?t.logSource=Number(r.fpr_log_source):ND.logSource&&(t.logSource=ND.logSource),r.fpr_log_endpoint_url?t.logEndPointUrl=r.fpr_log_endpoint_url:ND.logEndPointUrl&&(t.logEndPointUrl=ND.logEndPointUrl),r.fpr_log_transport_key?t.transportKey=r.fpr_log_transport_key:ND.transportKey&&(t.transportKey=ND.transportKey),void 0!==r.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(r.fpr_vc_network_request_sampling_rate):void 0!==ND.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=ND.networkRequestsSamplingRate),void 0!==r.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(r.fpr_vc_trace_sampling_rate):void 0!==ND.tracesSamplingRate&&(t.tracesSamplingRate=ND.tracesSamplingRate),r.fpr_log_max_flush_size?t.logMaxFlushSize=Number(r.fpr_log_max_flush_size):ND.logMaxFlushSize&&(t.logMaxFlushSize=ND.logMaxFlushSize),t.logTraceAfterSampling=OD(t.tracesSamplingRate),t.logNetworkAfterSampling=OD(t.networkRequestsSamplingRate)),e}function OD(e){return Math.random()<=e}let MD=1,LD;function FD(e){var r;return MD=2,LD=LD||(r=e,(()=>{let r=wD.getInstance().document;return new Promise(t=>{if(r&&"complete"!==r.readyState){let e=()=>{"complete"===r.readyState&&(r.removeEventListener("readystatechange",e),t())};r.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=r.installations,(t=e.getId()).then(e=>{bD=e}),t;var e,t}).then(e=>PD(r,e)).then(()=>UD(),()=>UD()))}function UD(){MD=3}let VD=1e4,qD=1e3,BD=3,jD=65536,zD=new TextEncoder,KD=BD,WD=[],HD=!1;function GD(e){setTimeout(()=>{if(!(KD<=0)){if(0<WD.length){let e=WD.splice(0,qD),t=$D(e);(e=>{var t=ED.getInstance().getFlTransportFullUrl();return zD.encode(e).length<=jD&&navigator.sendBeacon&&navigator.sendBeacon(t,e)?Promise.resolve():fetch(t,{method:"POST",body:e})})(t).then(()=>{KD=BD}).catch(()=>{WD=[...e,...WD],KD--,vD.info(`Tries left: ${KD}.`),GD(VD)})}GD(VD)}},e)}function $D(e){var t=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),t={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:ED.getInstance().logSource,log_event:t};return JSON.stringify(t)}function QD(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw mD.create("invalid cc log");WD=[...WD,e]}}function YD(){for(var e,t=ED.getInstance().getFlTransportFullUrl();0<WD.length;){var r=WD.splice(-ED.getInstance().logMaxFlushSize),n=$D(r);if(!navigator.sendBeacon||!navigator.sendBeacon(t,n)){WD=[...WD,...r];break}}0<WD.length&&(e=$D(WD),fetch(t,{method:"POST",body:e}).catch(()=>{vD.info("Failed flushing queued events.")}))}let JD;function XD(e,t){(JD=JD||{send:QD(tx),flush:YD}).send(e,t)}function ZD(e){var t=ED.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&wD.getInstance().requiredApisAvailable()&&(3===MD?ex(e):FD(e.performanceController).then(()=>ex(e),()=>ex(e)))}function ex(e){var t;bD&&(t=ED.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&XD(e,1)}function tx(e,t){var r,n;return 0===t?(r={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},r={application_info:rx(e.performanceController.app),network_request_metric:r},JSON.stringify(r)):(r={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(r.counters=t.counters),n=t.getAttributes(),0!==Object.keys(n).length&&(r.custom_attributes=n),n={application_info:rx(t.performanceController.app),trace_metric:r},JSON.stringify(n))}function rx(e){return{google_app_id:kD(e),app_instance_id:bD,web_app_info:{sdk_version:cD,page_url:wD.getInstance().getUrl(),service_worker_status:(t=wD.getInstance().navigator)?.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(wD.getInstance().document.visibilityState){case"visible":return fD.VISIBLE;case"hidden":return fD.HIDDEN;default:return fD.UNKNOWN}})(),effective_connection_type:(()=>{var e=wD.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function nx(e,t){var r,n,i,s=t;s&&void 0!==s.responseStart&&(i=wD.getInstance().getTimeOrigin(),i=Math.floor(1e3*(s.startTime+i)),r=s.responseStart?Math.floor(1e3*(s.responseStart-s.startTime)):void 0,n=Math.floor(1e3*(s.responseEnd-s.startTime)),s={performanceController:e,url:s.name&&s.name.split("?")[0],responsePayloadBytes:s.transferSize,startTimeUs:i,timeToResponseInitiatedUs:r,timeToResponseCompletedUs:n},t=s,(i=ED.getInstance()).instrumentationEnabled)&&(r=t.url,n=i.logEndPointUrl.split("?")[0],s=i.flTransportEndpointUrl.split("?")[0],r!==n)&&r!==s&&i.loggingEnabled&&i.logNetworkAfterSampling&&XD(t,0)}let ix=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class sx{constructor(e,t,r=!1,n){this.performanceController=e,this.name=t,this.isAuto=r,this.state=1,this.customAttributes={},this.counters={},this.api=wD.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=n||`${uD}-${this.randomId}-`+this.name,n&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw mD.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw mD.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),ZD(this)}record(e,t,r){if(e<=0)throw mD.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw mD.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),r&&r.attributes&&(this.customAttributes={...r.attributes}),r&&r.metrics)for(var n of Object.keys(r.metrics))isNaN(Number(r.metrics[n]))||(this.counters[n]=Math.floor(Number(r.metrics[n])));ZD(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(n=e,i=this.name,0===n.length||100<n.length||!(i&&i.startsWith("_wt_")&&-1<ix.indexOf(n))&&n.startsWith("_"))throw mD.create("invalid custom metric name",{customMetricName:e});var r,n,i;this.counters[e]=(i=t??0,(r=Math.floor(i))<i&&vD.info(`Metric value should be an Integer, setting the value as : ${r}.`),r)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var r,n,i=!(0===(r=e).length||40<r.length||CD.some(e=>r.startsWith(e))||!r.match(SD)),s=0!==(n=t).length&&n.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw mD.create("invalid attribute name",{attributeName:e});if(!s)throw mD.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return{...this.customAttributes}}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,r,n,i){var s=wD.getInstance().getUrl();if(s){var s=new sx(e,"_wt_"+s,!0),a=Math.floor(1e3*wD.getInstance().getTimeOrigin());s.setStartTime(a),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));r&&((a=r.find(e=>"first-paint"===e.name))&&a.startTime&&s.putMetric("_fp",Math.floor(1e3*a.startTime)),(a=r.find(e=>"first-contentful-paint"===e.name))&&a.startTime&&s.putMetric("_fcp",Math.floor(1e3*a.startTime)),i)&&s.putMetric("_fid",Math.floor(1e3*i)),this.addWebVitalMetric(s,"_lcp","lcp_element",n.lcp),this.addWebVitalMetric(s,"_cls","cls_largestShiftTarget",n.cls),this.addWebVitalMetric(s,"_inp","inp_interactionTarget",n.inp),ZD(s),JD&&JD.flush()}}static addWebVitalMetric(e,t,r,n){n&&(e.putMetric(t,Math.floor(1e3*n.value)),n.elementAttribution)&&(100<n.elementAttribution.length?e.putAttribute(r,n.elementAttribution.substring(0,100)):e.putAttribute(r,n.elementAttribution))}static createUserTimingTrace(e,t){ZD(new sx(e,t,!1,t))}}let ax={},ox=!1,lx;function hx(n){bD&&(setTimeout(()=>{{var t=n;let e=wD.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>ux(t)):e.document.addEventListener("unload",()=>ux(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&ux(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{lx=e}),e.onLCP(e=>{ax.lcp={value:e.value,elementAttribution:e.attribution?.element}}),e.onCLS(e=>{ax.cls={value:e.value,elementAttribution:e.attribution?.largestShiftTarget}}),e.onINP(e=>{ax.inp={value:e.value,elementAttribution:e.attribution?.interactionTarget}})}},0),setTimeout(()=>{var e,t=n,r=wD.getInstance();for(e of r.getEntriesByType("resource"))nx(t,e);r.setupObserver("resource",e=>nx(t,e))},0),setTimeout(()=>{var e,t=n,r=wD.getInstance();for(e of r.getEntriesByType("measure"))cx(t,e);r.setupObserver("measure",e=>cx(t,e))},0))}function cx(e,t){var r=t.name;r.substring(0,uD.length)!==uD&&sx.createUserTimingTrace(e,r)}function ux(r){if(!ox){ox=!0;var n=wD.getInstance();let e=n.getEntriesByType("navigation"),t=n.getEntriesByType("paint");setTimeout(()=>{sx.createOobTrace(r,e,t,ax,lx)},0)}}class dx{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==e?.dataCollectionEnabled&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==e?.instrumentationEnabled&&(this.instrumentationEnabled=e.instrumentationEnabled),wD.getInstance().requiredApisAvailable()?ve().then(e=>{e&&(HD||(GD(5500),HD=!0),FD(this).then(()=>hx(this),()=>hx(this)),this.initialized=!0)}).catch(e=>{vD.info("Environment doesn't support IndexedDB: "+e)}):vD.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){ED.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return ED.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){ED.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return ED.getInstance().dataCollectionEnabled}}let px="[DEFAULT]";let fx=(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate();if(r.name!==px)throw mD.create("FB not default");if("undefined"==typeof window)throw mD.create("no window");e=window,yD=e;r=new dx(r,n);return r._init(t),r};Dt(new c("performance",fx,"PUBLIC")),u(lD,hD),u(lD,hD,"esm2020");class gx{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=w(t),new sx(t,e);var t}}function mx(e){var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("performance").getImmediate();return new gx(t,r)}(r=hr).INTERNAL.registerComponent(new c("performance-compat",mx,"PUBLIC")),r.registerVersion("@firebase/performance-compat","0.2.22-canary.bc2b2cdea");let vx="@firebase/remote-config",_x="0.7.0-canary.bc2b2cdea";class yx{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let wx=new we("remoteconfig","Remote Config",{"already-initialized":"Remote Config already initialized","registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser","custom-signal-max-allowed-signals":"Setting more than {$maxSignals} custom signals is not supported.","stream-error":"The stream was not able to connect to the backend: {$originalErrorMessage}.","realtime-unavailable":"The Realtime service is unavailable: {$originalErrorMessage}","update-message-invalid":"The stream invalidation message was unparsable: {$originalErrorMessage}","update-not-fetched":"Unable to fetch the latest config: {$originalErrorMessage}"});let bx=["1","true","t","yes","y","on"];class Ix{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=bx.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function Tx(e){var t=w(e),[r,n]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(r&&r.config&&r.eTag&&r.templateVersion&&r.eTag!==n)&&(await Promise.all([t._storageCache.setActiveConfig(r.config),t._storage.setActiveConfigEtag(r.eTag),t._storage.setActiveConfigTemplateVersion(r.templateVersion)]),!0)}function Ex(e){let t=w(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function Cx(t){var r=w(t);let e=new yx;setTimeout(async()=>{e.abort()},r.settings.fetchTimeoutMillis);var n,i=r._storageCache.getCustomSignals();i&&r._logger.debug("Fetching config with custom signals: "+JSON.stringify(i));try{await r._client.fetch({cacheMaxAgeMillis:r.settings.minimumFetchIntervalMillis,signal:e,customSignals:i}),await r._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";i=(n=e)instanceof ye&&-1!==n.code.indexOf(t)?"throttle":"failure";throw await r._storageCache.setLastFetchStatus(i),e}}function Sx(r){var e,t,n=w(r);return[e={},t={}]=[n._storageCache.getActiveConfig(),n.defaultConfig],Object.keys({...e,...t}).reduce((e,t)=>(e[t]=kx(r,t),e),{})}function kx(e,t){var r=w(e),n=(r._isInitializationComplete||r._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),r._storageCache.getActiveConfig());return n&&void 0!==n[t]?new Ix("remote",n[t]):r.defaultConfig&&void 0!==r.defaultConfig[t]?new Ix("default",String(r.defaultConfig[t])):(r._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new Ix("static"))}class Ax{constructor(e,t,r,n){this.client=e,this.storage=t,this.storageCache=r,this.logger=n}isCachedDataFresh(e,t){var r;return t?(r=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${r}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r=r<=e}.`),r):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,r]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(r&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return r;e.eTag=r&&r.eTag;t=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&r.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(r),t}}class Nx{constructor(e,t,r,n,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=r,this.projectId=n,this.apiKey=i,this.appId=s}async fetch(r){var e,[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":r.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:r.customSignals},n={method:"POST",headers:s,body:JSON.stringify(t)},s=fetch(i,n),t=new Promise((e,t)=>{r.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([s,t]),a=await s}catch(e){let t="fetch-client-network";throw"AbortError"===e?.name&&(t="fetch-timeout"),wx.create(t,{originalErrorMessage:e?.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let l,h,c;if(200===a.status){let e;try{e=await a.json()}catch(e){throw wx.create("fetch-client-parse",{originalErrorMessage:e?.message})}l=e.entries,h=e.state,c=e.templateVersion}if("INSTANCE_STATE_UNSPECIFIED"===h?o=500:"NO_CHANGE"===h?o=304:"NO_TEMPLATE"!==h&&"EMPTY_CONFIG"!==h||(l={}),304!==o&&200!==o)throw wx.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:l,templateVersion:c}}}class Rx{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:r}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(wx.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var n=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),n}catch(e){if((e=>{var t;return e instanceof ye&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+He(r),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class Px{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,r,n,i,s){this.app=e,this._client=t,this._storageCache=r,this._storage=n,this._logger=i,this._realtimeHandler=s,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function Dx(e,t){var r=e.target.error||void 0;return wx.create(t,{originalErrorMessage:r&&r?.message})}let xx="app_namespace_store";class Ox{getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}getCustomSignals(){return this.get("custom_signals")}getRealtimeBackoffMetadata(){return this.get("realtime_backoff_metadata")}setRealtimeBackoffMetadata(e){return this.set("realtime_backoff_metadata",e)}getActiveConfigTemplateVersion(){return this.get("last_known_template_version")}setActiveConfigTemplateVersion(e){return this.set("last_known_template_version",e)}}class Mx extends Ox{constructor(e,t,r,n=(()=>new Promise((t,r)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{r(Dx(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(xx,{keyPath:"compositeKey"})}}catch(e){r(wx.create("storage-open",{originalErrorMessage:e?.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=r,this.openDbPromise=n}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([xx],"readwrite"),r=Fx(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",r,t),r}async getWithTransaction(s,a){return new Promise((r,t)=>{var e=a.objectStore(xx),n=this.createCompositeKey(s);try{var i=e.get(n);i.onerror=e=>{t(Dx(e,"storage-get"))},i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)}}catch(e){t(wx.create("storage-get",{originalErrorMessage:e?.message}))}})}async setWithTransaction(s,a,o){return new Promise((e,t)=>{var r=o.objectStore(xx),n=this.createCompositeKey(s);try{var i=r.put({compositeKey:n,value:a});i.onerror=e=>{t(Dx(e,"storage-set"))},i.onsuccess=()=>{e()}}catch(e){t(wx.create("storage-set",{originalErrorMessage:e?.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([xx],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var r=(await this.openDbPromise).transaction([xx],"readwrite");return this.setWithTransaction(e,t,r)}async delete(s){let a=await this.openDbPromise;return new Promise((e,t)=>{var r=a.transaction([xx],"readwrite").objectStore(xx),n=this.createCompositeKey(s);try{var i=r.delete(n);i.onerror=e=>{t(Dx(e,"storage-delete"))},i.onsuccess=()=>{e()}}catch(e){t(wx.create("storage-delete",{originalErrorMessage:e?.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class Lx extends Ox{constructor(){super(...arguments),this.storage={}}async get(e){return Promise.resolve(this.storage[e])}async set(e,t){return this.storage[e]=t,Promise.resolve(void 0)}async delete(e){return this.storage[e]=void 0,Promise.resolve()}async setCustomSignals(e){var t=this.storage.custom_signals||{};return this.storage.custom_signals=Fx(e,t),Promise.resolve(this.storage.custom_signals)}}function Fx(e,t){var r={...t,...e},r=Object.fromEntries(Object.entries(r).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(r).length)throw wx.create("custom-signal-max-allowed-signals",{maxSignals:100});return r}class Ux{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),r=this.storage.getActiveConfig(),n=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await r),e=(t&&(this.activeConfig=t),await n);e&&(this.customSignals=e)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}async setCustomSignals(e){this.customSignals=await this.storage.setCustomSignals(e)}}class Vx extends class{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}{static getInstance(){return new Vx}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}let qx="featureDisabled",Bx="retryIntervalSeconds",jx="latestTemplateVersionNumber";class zx{constructor(e,t,r,n,i,s,a,o,l,h){this.firebaseInstallations=e,this.storage=t,this.sdkVersion=r,this.namespace=n,this.projectId=i,this.apiKey=s,this.appId=a,this.logger=o,this.storageCache=l,this.cachingClient=h,this.observers=new Set,this.isConnectionActive=!1,this.isRealtimeDisabled=!1,this.httpRetriesRemaining=8,this.isInBackground=!1,this.decoder=new TextDecoder("utf-8"),this.isClosingConnection=!1,this.propagateError=t=>this.observers.forEach(e=>e.error?.(t)),this.isStatusCodeRetryable=e=>!e||[408,429,502,503,504].includes(e),this.setRetriesRemaining(),Vx.getInstance().on("visible",this.onVisibilityChange,this)}async setRetriesRemaining(){var e=(await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0;this.httpRetriesRemaining=Math.max(8-e,1)}async updateBackoffMetadataWithLastFailedStreamConnectionTime(e){var t=((await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0)+1,r=He(t,6e4,2);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(e.getTime()+r),numFailedStreams:t})}async updateBackoffMetadataWithRetryInterval(e){var t=Date.now(),t=new Date(t+1e3*e);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:t,numFailedStreams:0}),await this.retryHttpConnectionWhenBackoffEnds()}async closeRealtimeHttpConnection(){if(!this.isClosingConnection){this.isClosingConnection=!0;try{this.reader&&await this.reader.cancel()}catch(e){this.logger.debug("Failed to cancel the reader, connection was lost.")}finally{this.reader=void 0}this.controller&&(await this.controller.abort(),this.controller=void 0),this.isClosingConnection=!1}}async resetRealtimeBackoff(){await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(-1),numFailedStreams:0})}resetRetryCount(){this.httpRetriesRemaining=8}async establishRealtimeConnection(e,t,r,n){var i=await this.storage.getActiveConfigEtag(),s=await this.storage.getActiveConfigTemplateVersion(),i={"X-Goog-Api-Key":this.apiKey,"X-Goog-Firebase-Installations-Auth":r,"Content-Type":"application/json",Accept:"application/json","If-None-Match":i||"*","Content-Encoding":"gzip"},s={project:this.projectId,namespace:this.namespace,lastKnownVersionNumber:s,appId:this.appId,sdkVersion:this.sdkVersion,appInstanceId:t};return await fetch(e,{method:"POST",headers:i,body:JSON.stringify(s),signal:n})}getRealtimeUrl(){var e=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfigrealtime.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:streamFetchInvalidations?key=`+this.apiKey;return new URL(e)}async createRealtimeConnection(){var[e,t]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken(!1)]),r=(this.controller=new AbortController,this.getRealtimeUrl());return await this.establishRealtimeConnection(r,e,t,this.controller.signal)}async retryHttpConnectionWhenBackoffEnds(){let e=await this.storage.getRealtimeBackoffMetadata();e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0};var t=new Date(e.backoffEndTimeMillis).getTime(),r=Date.now(),t=Math.max(0,t-r);await this.makeRealtimeHttpConnection(t)}setIsHttpConnectionRunning(e){this.isConnectionActive=e}checkAndSetHttpConnectionFlagIfNotRunning(){var e=this.canEstablishStreamConnection();return e&&this.setIsHttpConnectionRunning(!0),e}fetchResponseIsUpToDate(e,t){return null!=e.config&&e.templateVersion?e.templateVersion>=t:"success"===this.storageCache.getLastFetchStatus()}parseAndValidateConfigUpdateMessage(e){var t=e.indexOf("{"),r=e.indexOf("}",t);return t<0||r<0||r<=t?"":e.substring(t,r+1)}isEventListenersEmpty(){return 0===this.observers.size}getRandomInt(e){return Math.floor(Math.random()*e)}executeAllListenerCallbacks(t){this.observers.forEach(e=>e.next(t))}getChangedParams(e,t){var r,n,i=new Set,s=new Set(Object.keys(e||{})),a=new Set(Object.keys(t||{}));for(r of s)a.has(r)&&e[r]===t[r]||i.add(r);for(n of a)s.has(n)||i.add(n);return i}async fetchLatestConfig(e,r){var n=e-1,i=3-n,s=this.storageCache.getCustomSignals(),a=(s&&this.logger.debug("Fetching config with custom signals: "+JSON.stringify(s)),new yx);try{var o,l={cacheMaxAgeMillis:0,signal:a,customSignals:s,fetchType:"REALTIME",fetchAttempt:i},h=await this.cachingClient.fetch(l);let t=await this.storage.getActiveConfig();if(this.fetchResponseIsUpToDate(h,r))if(null==h.config)this.logger.debug("The fetch succeeded, but the backend had no updates.");else{null==t&&(t={});let e=this.getChangedParams(h.config,t);0===e.size?this.logger.debug("Config was fetched, but no params changed."):(o={getUpdatedKeys(){return new Set(e)}},this.executeAllListenerCallbacks(o))}else this.logger.debug("Fetched template version is the same as SDK's current version. Retrying fetch."),await this.autoFetch(n,r)}catch(e){a=e instanceof Error?e.message:String(e),s=wx.create("update-not-fetched",{originalErrorMessage:"Failed to auto-fetch config update: "+a});this.propagateError(s)}}async autoFetch(e,r){var t;if(0===e)t=wx.create("update-not-fetched",{originalErrorMessage:"Unable to fetch the latest version of the template."}),this.propagateError(t);else{let t=1e3*this.getRandomInt(4);await new Promise(e=>setTimeout(e,t)),await this.fetchLatestConfig(e,r)}}async handleNotifications(e){let t="";for(;;){var{done:r,value:n}=await e.read();if(r)break;if(r=this.decoder.decode(n,{stream:!0}),t+=r,r.includes("}")&&0!==(t=this.parseAndValidateConfigUpdateMessage(t)).length){try{var i,s,a,o=JSON.parse(t);if(this.isEventListenersEmpty())break;if(qx in o&&!0===o[qx]){var l=wx.create("realtime-unavailable",{originalErrorMessage:"The server is temporarily unavailable. Try again in a few minutes."});this.propagateError(l);break}jx in o&&(i=await this.storage.getActiveConfigTemplateVersion(),s=Number(o[jx]),i)&&i<s&&await this.autoFetch(3,s),Bx in o&&(a=Number(o[Bx]),await this.updateBackoffMetadataWithRetryInterval(a))}catch(e){this.logger.debug("Unable to parse latest config update message.",e);n=e instanceof Error?e.message:String(e);this.propagateError(wx.create("update-message-invalid",{originalErrorMessage:n}))}t=""}}}async listenForNotifications(e){try{await this.handleNotifications(e)}catch(e){this.isInBackground||this.logger.debug("Real-time connection was closed due to an exception.")}}async prepareAndBeginRealtimeHttpStream(){if(this.checkAndSetHttpConnectionFlagIfNotRunning()){let e=await this.storage.getRealtimeBackoffMetadata();var r=(e=e||{backoffEndTimeMillis:new Date(-1),numFailedStreams:0}).backoffEndTimeMillis.getTime();if(Date.now()<r)await this.retryHttpConnectionWhenBackoffEnds();else{let e,t;try{e=await this.createRealtimeConnection(),t=e.status,e.ok&&e.body&&(this.resetRetryCount(),await this.resetRealtimeBackoff(),n=e.body.getReader(),this.reader=n,await this.listenForNotifications(n))}catch(e){this.isInBackground?this.resetRetryCount():this.logger.debug("Exception connecting to real-time RC backend. Retrying the connection...:",e)}finally{await this.closeRealtimeHttpConnection(),this.setIsHttpConnectionRunning(!1);var n,r=!this.isInBackground&&(void 0===t||this.isStatusCodeRetryable(t));r&&await this.updateBackoffMetadataWithLastFailedStreamConnectionTime(new Date),r||e?.ok?await this.retryHttpConnectionWhenBackoffEnds():(n="Unable to connect to the server. HTTP status code: "+t,r=wx.create("stream-error",{originalErrorMessage:n}),this.propagateError(r))}}}}canEstablishStreamConnection(){var e=0<this.observers.size,t=!this.isRealtimeDisabled,r=!this.isConnectionActive,n=!this.isInBackground;return e&&t&&r&&n}async makeRealtimeHttpConnection(t){var e;this.canEstablishStreamConnection()&&(0<this.httpRetriesRemaining?(this.httpRetriesRemaining--,await new Promise(e=>setTimeout(e,t)),this.prepareAndBeginRealtimeHttpStream()):this.isInBackground||(e=wx.create("stream-error",{originalErrorMessage:"Unable to connect to the server. Check your connection and try again."}),this.propagateError(e)))}async beginRealtime(){0<this.observers.size&&await this.makeRealtimeHttpConnection(0)}addObserver(e){this.observers.add(e),this.beginRealtime()}removeObserver(e){this.observers.has(e)&&this.observers.delete(e)}async onVisibilityChange(e){this.isInBackground=!e,e?await this.beginRealtime():await this.closeRealtimeHttpConnection()}}async function Kx(){if(!me())return!1;try{return await ve()}catch(e){return!1}}Dt(new c("remote-config",function(e,{options:t}){var r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:s,appId:a}=r.options;if(!i)throw wx.create("registration-project-id");if(!s)throw wx.create("registration-api-key");if(!a)throw wx.create("registration-app-id");var o=t?.templateId||"firebase",l=me()?new Mx(a,r.name,o):new Lx,h=new Ux(l),c=new tt(vx),u=(c.logLevel=d.ERROR,new Nx(n,qt,o,i,s,a)),u=new Rx(u,l),u=new Ax(u,l,h,c),n=new zx(n,l,qt,o,i,s,a,c,h,u),o=new Px(r,u,h,l,c,n);return Ex(o),o},"PUBLIC").setMultipleInstances(!0)),u(vx,_x),u(vx,_x,"esm2020");class Wx{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return Tx(this._delegate)}ensureInitialized(){return Ex(this._delegate)}fetch(){return Cx(this._delegate)}fetchAndActivate(){return(async e=>(await Cx(e=w(e)),Tx(e)))(this._delegate)}getAll(){return Sx(this._delegate)}getBoolean(e){return kx(w(this._delegate),e).asBoolean()}getNumber(e){return kx(w(this._delegate),e).asNumber()}getString(e){return kx(w(this._delegate),e).asString()}getValue(e){return kx(this._delegate,e)}setLogLevel(e){var t=this._delegate,r=w(t);switch(e){case"debug":r._logger.logLevel=d.DEBUG;break;case"silent":r._logger.logLevel=d.SILENT;break;default:r._logger.logLevel=d.ERROR}}}function Hx(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("remote-config").getImmediate({identifier:t});return new Wx(r,n)}return(gD=hr).INTERNAL.registerComponent(new c("remoteConfig-compat",Hx,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Kx})),gD.registerVersion("@firebase/remote-config-compat","0.2.20-canary.bc2b2cdea"),console.warn(`
|
|
32
32
|
It looks like you're using the development build of the Firebase JS SDK.
|
|
33
33
|
When deploying Firebase apps to production, it is advisable to only import
|
|
34
34
|
the individual SDK components you intend to use.
|
|
@@ -37,5 +37,5 @@ For the CDN builds, these are available in the following manner
|
|
|
37
37
|
(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):
|
|
38
38
|
|
|
39
39
|
https://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js
|
|
40
|
-
`),hr.registerVersion("firebase","12.6.0-canary.
|
|
40
|
+
`),hr.registerVersion("firebase","12.6.0-canary.bc2b2cdea","compat-cdn"),hr});
|
|
41
41
|
//# sourceMappingURL=firebase-compat.js.map
|