PageSourceSearch

https://preferencesai.io/_next/static/chunks/3baeblfhtprii.js

js preferencesai.io collected 2026-10-04 06:45:39 UTC 429,470 bytes, 9 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76009,e=>{"use strict";var t=e.i(47167);e.i(14539);var r=e.i(92953);e.i(51718);var n=e.i(44124);e.i(36180);var i=e.i(69185),i=i;function s(e){return!!(e.projectId&&e.apiKey&&e.appId)}function a(){try{let e=JSON.parse('{"apiKey":"AIzaSyDDTltBPSfl1VcUDf_x-UL8d1oY5PBcHOA","appId":"1:87103015006:web:7c8175ccac2ac1d4f90ccf","authDomain":"pai-website-490508.firebaseapp.com","databaseURL":"","messagingSenderId":"87103015006","projectId":"pai-website-490508","storageBucket":"pai-website-490508.firebasestorage.app"}');if(s(e))return e}catch{}let e={apiKey:t.default.env.NEXT_PUBLIC_FIREBASE_API_KEY??"",authDomain:t.default.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN??"",projectId:t.default.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID??"",storageBucket:t.default.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET??"",messagingSenderId:t.default.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID??"",appId:t.default.env.NEXT_PUBLIC_FIREBASE_APP_ID??"",measurementId:t.default.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID??""};return s(e)?e:null}let o=null,l=null,u=null;function h(){if(o)return o;if((0,r.getApps)().length)return o=(0,r.getApp)();let e=a();if(!e)throw Error("Firebase client SDK is not configured. Copy .env.local.example to .env.local and set NEXT_PUBLIC_FIREBASE_* values from Firebase Console → Project Settings → Your apps.");return o=(0,r.initializeApp)(e)}function c(){return l||(l=(0,n.getAuth)(h()))}new Proxy({},{get:(e,t)=>c()[t]});let d=new Proxy({},{get:(e,t)=>(u||(u=(0,i.aX)(h(),"pai-website-db")))[t]});e.s(["db",0,d,"getAppInstance",0,h,"getAuthInstance",0,c,"isFirebaseConfigured",0,function(){return(0,r.getApps)().length>0?!!(0,r.getApp)().options.projectId:null!==a()}],76009)},92953,97427,8070,83877,44435,e=>{"use strict";var t,r;let n,i,s,a=function(e){let t=[],r=0;for(let n=0;n<e.length;n++){let i=e.charCodeAt(n);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:((64512&i)==55296&&n+1<e.length&&(64512&e.charCodeAt(n+1))==56320?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128)}return t},o=function(e){let t=[],r=0,n=0;for(;r<e.length;){let i=e[r++];if(i<128)t[n++]=String.fromCharCode(i);else if(i>191&&i<224){let s=e[r++];t[n++]=String.fromCharCode((31&i)<<6|63&s)}else if(i>239&&i<365){let s=((7&i)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(s>>10)),t[n++]=String.fromCharCode(56320+(1023&s))}else{let s=e[r++],a=e[r++];t[n++]=String.fromCharCode((15&i)<<12|(63&s)<<6|63&a)}}return t.join("")},l={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){let i=e[t],s=t+1<e.length,a=s?e[t+1]:0,o=t+2<e.length,l=o?e[t+2]:0,u=i>>2,h=(3&i)<<4|a>>4,c=(15&a)<<2|l>>6,d=63&l;!o&&(d=64,s||(c=64)),n.push(r[u],r[h],r[c],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(a(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):o(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){let i=r[e.charAt(t++)],s=t<e.length?r[e.charAt(t)]:0,a=++t<e.length?r[e.charAt(t)]:64,o=++t<e.length?r[e.charAt(t)]:64;if(++t,null==i||null==s||null==a||null==o)throw new u;let l=i<<2|s>>4;if(n.push(l),64!==a){let e=s<<4&240|a>>2;if(n.push(e),64!==o){let e=a<<6&192|o;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};
1class u extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let h=function(e){let t=a(e);return l.encodeByteArray(t,!0)},c=function(e){return h(e).replace(/\./g,"")},d=()=>{try{return{config:{apiKey:"AIzaSyDDTltBPSfl1VcUDf_x-UL8d1oY5PBcHOA",appId:"1:87103015006:web:7c8175ccac2ac1d4f90ccf",authDomain:"pai-website-490508.firebaseapp.com",databaseURL:"",messagingSenderId:"87103015006",projectId:"pai-website-490508",storageBucket:"pai-website-490508.firebasestorage.app"},emulatorHosts:{}}}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}},f=e=>d()?.emulatorHosts?.[e],p=()=>d()?.config;class g{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,r))}}}function m(){return"u">typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function y(){let t=d()?.forceEnvironment;if("node"===t)return!0;if("browser"===t)return!1;try{return"[object process]"===Object.prototype.toString.call(e.g.process)}catch(e){return!1}}function v(){return"u">typeof WorkerGlobalScope&&"u">typeof self&&self instanceof WorkerGlobalScope}function w(){try{return"object"==typeof indexedDB}catch(e){return!1}}function I(){return new Promise((e,t)=>{try{let r=!0,n="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(n);i.onsuccess=()=>{i.result.close(),r||self.indexedDB.deleteDatabase(n),e(!0)},i.onupgradeneeded=()=>{r=!1},i.onerror=()=>{t(i.error?.message||"")}}catch(e){t(e)}})}class b extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,b.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,E.prototype.create)}}class E{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r,n;let i=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],o=a?(r=a,n=i,r.replace(_,(e,t)=>{let r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",l=`${this.serviceName}: ${o} (${s}).`;return new b(s,l,i)}}let _=/\{\$([^}]+)}/g;function T(e,t){if(e===t)return!0;let r=Object.keys(e),n=Object.keys(t);for(let i of r){if(!n.includes(i))return!1;let r=e[i],s=t[i];if(S(r)&&S(s)){if(!T(r,s))return!1}else if(r!==s)return!1}for(let e of n)if(!r.includes(e))return!1;return!0}function S(e){return null!==e&&"object"==typeof e}class C{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(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}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 Error("Missing Observer.");void 0===(n=!function(e,t){if("object"!=typeof e||null===e)return!1;for(let r of t)if(r in e&&"function"==typeof e[r])return!0;return!1}(e,["next","error","complete"])?{next:e,error:t,complete:r}:e).next&&(n.next=A),void 0===n.error&&(n.error=A),void 0===n.complete&&(n.complete=A);let 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-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"u">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 A(){}async function k(e){return(await fetch(e,{credentials:"include"})).ok}e.s(["Deferred",0,g,"ErrorFactory",0,E,"FirebaseError",0,b,"areCookiesEnabled",0,function(){return!("u"<typeof navigator)&&!!navigator.cookieEnabled},"base64Decode",0,function(e){try{return l.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},"base64urlEncodeWithoutPadding",0,c,"calculateBackoffMillis",0,function(e,t=1e3,r=2){let n=t*Math.pow(r,e),i=Math.round(.5*n*(Math.random()-.5)*2);return Math.min(144e5,n+i)},"createMockUserToken",0,function(e,t){if(e.uid)throw Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(!i)throw Error("mockUserToken must contain 'sub' or 'user_id' field!");let s={iss:`https://securetoken.google.com/${r}`,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e};return[c(JSON.stringify({alg:"none",type:"JWT"})),c(JSON.stringify(s)),""].join(".")},"createSubscribe",0,function(e,t){let r=new C(e,t);return r.subscribe.bind(r)},"deepEqual",0,T,"extractQuerystring",0,function(e){let t=e.indexOf("?");if(!t)return"";let r=e.indexOf("#",t);return e.substring(t,r>0?r:void 0)},"getDefaultAppConfig",0,p,"getDefaultEmulatorHost",0,f,"getDefaultEmulatorHostnameAndPort",0,e=>{let t=f(e);
1if(!t)return;let r=t.lastIndexOf(":");if(r<=0||r+1===t.length)throw Error(`Invalid host ${t} with no separate hostname and port!`);let n=parseInt(t.substring(r+1),10);return"["===t[0]?[t.substring(1,r-1),n]:[t.substring(0,r),n]},"getExperimentalSetting",0,e=>d()?.[`_${e}`],"getGlobal",0,function(){return"u">typeof self?self:"u">typeof window?window:e.g},"getModularInstance",0,function(e){return e&&e._delegate?e._delegate:e},"getUA",0,m,"isBrowser",0,function(){return"u">typeof window||v()},"isBrowserExtension",0,function(){let e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id},"isCloudWorkstation",0,function(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}},"isCloudflareWorker",0,function(){return"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent},"isEmpty",0,function(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0},"isIE",0,function(){let e=m();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0},"isIndexedDBAvailable",0,w,"isMobileCordova",0,function(){return"u">typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(m())},"isReactNative",0,function(){return"object"==typeof navigator&&"ReactNative"===navigator.product},"isSafari",0,function(){return!y()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")},"isSafariOrWebkit",0,function(){return!y()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")},"isWebWorker",0,v,"pingServer",0,k,"querystring",0,function(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("&"):""},"querystringDecode",0,function(e){let t={};return e.replace(/^\?/,"").split("&").forEach(e=>{if(e){let[r,n]=e.split("=");
1t[decodeURIComponent(r)]=decodeURIComponent(n)}}),t},"validateIndexedDBOpenable",0,I],97427);class x{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 D="[DEFAULT]";class N{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){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new g;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let r=this.getOrInitializeService({instanceIdentifier:t});r&&e.resolve(r)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}if(r)return null;throw Error(`Service ${this.name} is not available`)}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:D})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let r=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:r});t.resolve(e)}catch(e){}}}}clearInstance(e=D){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let 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=D){return this.instances.has(e)}getOptions(e=D){return this.instancesOptions.get(e)||{}}initialize(e={}){let{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`);let n=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[e,t]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(e)&&t.resolve(n);return n}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);let i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var r;let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===D?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch{}return n||null}normalizeInstanceIdentifier(e=D){return this.component?this.component.multipleInstances?e:D:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class R{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw 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){if(this.providers.has(e))return this.providers.get(e);let t=new N(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}e.s(["Component",0,x,"ComponentContainer",0,R],8070);let P=[];(t=r||(r={}))[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";let O={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},L=r.INFO,M={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},V=(e,t,...r)=>{if(t<e.logLevel)return;let n=new Date().toISOString(),i=M[t];if(i)console[i](`[${n}]  ${e.name}:`,...r);
1else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)};class F{constructor(e){this.name=e,this._logLevel=L,this._logHandler=V,this._userLogHandler=null,P.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?O[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw 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,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}e.s(["LogLevel",0,r,"Logger",0,F,"setLogLevel",0,function(e){P.forEach(t=>{t.setLogLevel(e)})},"setUserLogHandler",0,function(e,t){for(let n of P){let i=null;t&&t.level&&(i=O[t.level]),null===e?n.userLogHandler=null:n.userLogHandler=(t,n,...s)=>{let a=s.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(" ");n>=(i??t.logLevel)&&e({level:r[n].toLowerCase(),message:a,args:s,type:t.name})}}}],83877);let U=new WeakMap,B=new WeakMap,j=new WeakMap,q=new WeakMap,z=new WeakMap,K={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return B.get(e);if("objectStoreNames"===t)return e.objectStoreNames||j.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return $(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function $(e){if(e instanceof IDBRequest){let t;return(t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{t($(e.result)),n()},s=()=>{r(e.error),n()};e.addEventListener("success",i),e.addEventListener("error",s)})).then(t=>{t instanceof IDBCursor&&U.set(t,e)}).catch(()=>{}),z.set(t,e),t}if(q.has(e))return q.get(e);let t=function(e){if("function"==typeof e)return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(G(this),t),$(U.get(this))}:function(...t){return $(e.apply(G(this),t))}:function(t,...r){let n=e.call(G(this),t,...r);return j.set(n,t.sort?t.sort():[t]),$(n)};return e instanceof IDBTransaction&&function(e){if(B.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{t(),n()},s=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});B.set(e,t)}(e),(n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(t=>e instanceof t)?new Proxy(e,K):e}(e);return t!==e&&(q.set(e,t),z.set(t,e)),t}let G=e=>z.get(e);function H(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t),o=$(a);return n&&a.addEventListener("upgradeneeded",e=>{n($(a.result),e.oldVersion,e.newVersion,$(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}let W=["get","getKey","getAll","getAllKeys","count"],Q=["put","add","delete","clear"],J=new Map;function Y(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(J.get(t))return J.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,i=Q.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||W.includes(r)))return;let s=async function(e,...t){let s=this.transaction(e,i?"readwrite":"readonly"),a=s.store;
1return n&&(a=a.index(t.shift())),(await Promise.all([a[r](...t),i&&s.done]))[0]};return J.set(t,s),s}K={...s=K,get:(e,t,r)=>Y(e,t)||s.get(e,t,r),has:(e,t)=>!!Y(e,t)||s.has(e,t)},e.s(["openDB",0,H],44435);class X{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{let t;if(t=e.getComponent(),t?.type!=="VERSION")return null;{let t=e.getImmediate();return`${t.library}/${t.version}`}}).filter(e=>e).join(" ")}}let Z="@firebase/app",ee="0.14.11",et=new F("@firebase/app"),er="[DEFAULT]",en={[Z]:"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"},ei=new Map,es=new Map,ea=new Map;function eo(e,t){try{e.container.addComponent(t)}catch(r){et.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,r)}}function el(e){let t=e.name;if(ea.has(t))return et.debug(`There were multiple attempts to register component ${t}.`),!1;for(let r of(ea.set(t,e),ei.values()))eo(r,e);for(let t of es.values())eo(t,e);return!0}function eu(e,t){let r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}let eh=new E("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.","invali
1d-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 ec{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 x("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 eh.create("app-deleted",{appName:this._name})}}function ed(e,t={}){let r=e;"object"!=typeof t&&(t={name:t});let n={name:er,automaticDataCollectionEnabled:!0,...t},i=n.name;if("string"!=typeof i||!i)throw eh.create("bad-app-name",{appName:String(i)});if(r||(r=p()),!r)throw eh.create("no-options");let s=ei.get(i);if(s)if(T(r,s.options)&&T(n,s.config))return s;else throw eh.create("duplicate-app",{appName:i});let a=new R(i);for(let e of ea.values())a.addComponent(e);let o=new ec(r,n,a);return ei.set(i,o),o}function ef(e,t,r){let n=en[e]??e;r&&(n+=`-${r}`);let i=n.match(/\s|\//),s=t.match(/\s|\//);if(i||s){let e=[`Unable to register library "${n}" with version "${t}":`];i&&e.push(`library name "${n}" contains illegal characters (whitespace or "/")`),i&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),et.warn(e.join(" "));return}el(new x(`${n}-version`,()=>({library:n,version:t}),"VERSION"))}let ep="firebase-heartbeat-store",eg=null;function em(){return eg||(eg=H("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(ep)}catch(e){console.warn(e)}}}).catch(e=>{throw eh.create("idb-open",{originalErrorMessage:e.message})})),eg}async function ey(e){try{let t=(await em()).transaction(ep),r=await t.objectStore(ep).get(ew(e));return await t.done,r}catch(e){if(e instanceof b)et.warn(e.message);else{let t=eh.create("idb-get",{originalErrorMessage:e?.message});et.warn(t.message)}}}async function ev(e,t){try{let r=(await em()).transaction(ep,"readwrite"),n=r.objectStore(ep);await n.put(t,ew(e)),await r.done}catch(e){if(e instanceof b)et.warn(e.message);else{let t=eh.create("idb-set",{originalErrorMessage:e?.message});et.warn(t.message)}}}function ew(e){return`${e.name}!${e.options.appId}`}class eI{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new eE(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{let e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=eb();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===t||this._heartbeatsCache.heartbeats.some(e=>e.date===t))return;if(this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats.length>30){let e=function(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)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){et.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||0===this._heartbeatsCache.heartbeats.length)return"";let e=eb(),{heartbeatsToSend:t,unsentEntries:r}=function(e,t=1024){let r=[],n=e.slice();for(let i of e){let e=r.find(e=>e.agent===i.agent);if(e){if(e.dates.push(i.date),e_(r)>t){e.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),e_(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}}(this._heartbeatsCache.heartbeats),n=c(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,r.length>0?(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 eb(){return new Date().toISOString().substring(0,10)}class eE{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!w()&&I().then(()=>!0).catch(()=>!1)}async read(){if(!await this._canUseIndexedDBPromise)return{heartbeats:[]};{let e=await ey(this.app);return e?.heartbeats?e:{heartbeats:[]}}}async overwrite(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return ev(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return ev(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function e_(e){return c(JSON.stringify({version:2,heartbeats:e})).length}el(new x("platform-logger",e=>new X(e),"PRIVATE")),el(new x("heartbeat",e=>new eI(e),"PRIVATE")),ef(Z,ee,""),ef(Z,ee,"esm2020"),ef("fire-js",""),e.s(["SDK_VERSION",0,"12.12.0","_getProvider",0,eu,"_isFirebaseServerApp",0,function(e){return null!=e&&void 0!==e.settings},"_registerComponent",0,el,"_removeServiceInstance",0,function(e,t,r=er){eu(e,t).clearInstance(r)},"getApp",0,function(e=er){let t=ei.get(e);if(!t&&e===er&&p())return ed();if(!t)throw eh.create("no-app",{appName:e});return t},"getApps",0,function(){return Array.from(ei.values())},"initializeApp",0,ed,"registerVersion",0,ef],92953)},44124,e=>{"use strict";var t=e.i(49146);e.s(["getAuth",()=>t.p])},14539,e=>{"use strict";(0,e.i(92953).registerVersion)("firebase","12.12.1","app"),e.s([])},51718,49146,e=>{"use strict";var t,r=e.i(92953),n=e.i(97427),i=e.i(83877),s=e.i(8070);function a(){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."}}let o=new n.ErrorFactory("auth","Firebase",a()),l=new i.Logger("@firebase/auth");function u(e,...t){l.logLevel<=i.LogLevel.ERROR&&l.error(`Auth (${r.SDK_VERSION}): ${e}`,...t)}function h(e,...t){throw p(e,...t)}function c(e,...t){return p(e,...t)}function d(e,t,r){let i={...a(),[t]:r};return new n.ErrorFactory("auth","Firebase",i).create(t,{appName:e.n
1ame})}function f(e){return d(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function p(e,...t){if("string"!=typeof e){let r=t[0],n=[...t.slice(1)];return n[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)}return o.create(e,...t)}function g(e,t,...r){if(!e)throw p(t,...r)}function m(e){let t="INTERNAL ASSERTION FAILED: "+e;throw u(t),Error(t)}function y(){return"u">typeof self&&self.location?.href||""}function v(){return"u">typeof self&&self.location?.protocol||null}class w{constructor(e,t){this.shortDelay=e,this.longDelay=t,function(e,t){e||m(t)}(t>e,"Short delay should be less than long delay!"),this.isMobile=(0,n.isMobileCordova)()||(0,n.isReactNative)()}get(){return!("u">typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===v()||"https:"===v()||(0,n.isBrowserExtension)()||"connection"in navigator))||navigator.onLine?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function I(e,t){var r,n;r=e.emulator,n="Emulator should always be set here",r||m(n);let{url:i}=e.emulator;return t?`${i}${t.startsWith("/")?t.slice(1):t}`:i}class b{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl?this.fetchImpl:"u">typeof self&&"fetch"in self?self.fetch:"u">typeof globalThis&&globalThis.fetch?globalThis.fetch:"u">typeof fetch?fetch:void m("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"u">typeof self&&"Headers"in self?self.Headers:"u">typeof globalThis&&globalThis.Headers?globalThis.Headers:"u">typeof Headers?Headers:void m("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"u">typeof self&&"Response"in self?self.Response:"u">typeof globalThis&&globalThis.Response?globalThis.Response:"u">typeof Response?Response:void m("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}let E={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-rec
1aptcha-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"},_=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],T=new w(3e4,6e4);function S(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function C(e,t,r,i,s={}){return A(e,s,async()=>{let s={},a={};i&&("GET"===t?a=i:s={body:JSON.stringify(i)});let o=(0,n.querystring)({key:e.config.apiKey,...a}).slice(1),l=await e._getAdditionalHeaders();l["Content-Type"]="application/json",e.languageCode&&(l["X-Firebase-Locale"]=e.languageCode);let u={method:t,headers:l,...s};return(0,n.isCloudflareWorker)()||(u.referrerPolicy="no-referrer"),e.emulatorConfig&&(0,n.isCloudWorkstation)(e.emulatorConfig.host)&&(u.credentials="include"),b.fetch()(await x(e,e.config.apiHost,r,o),u)})}async function A(e,t,r){e._canInitEmulator=!1;let i={...E,...t};try{let t=new D(e),n=await Promise.race([r(),t.promise]);t.clearNetworkTimeout();let s=await n.json();if("needConfirmation"in s)throw N(e,"account-exists-with-different-credential",s);if(n.ok&&!("errorMessage"in s))return s;{let[t,r]=(n.ok?s.errorMessage:s.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw N(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===t)throw N(e,"email-already-in-use",s);if("USER_DISABLED"===t)throw N(e,"user-disabled",s);let a=i[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw d(e,a,r);h(e,a)}}catch(t){if(t instanceof n.FirebaseError)throw t;h(e,"network-request-failed",{message:String(t)})}}async function k(e,t,r,n,i={}){let s=await C(e,t,r,n,i);return"mfaPendingCredential"in s&&h(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function x(e,t,r,n){let i=`${t}${r}?${n}`,s=e.config.emulator?I(e.config,i):`${e.config.apiScheme}://${i}`;return _.includes(r)&&(await e._persistenceManagerAvailable,"COOKIE"===e._getPersistenceType())?e._getPersistence()._getFinalTarget(s).toString():s}class D{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(c(this.auth,"network-request-failed")),T.get())})}}function N(e,t,r){let n={appName:e.name};r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber);let i=c(e,t,n);return i.customData._tokenResponse=r,i}function R(e){return void 0!==e&&void 0!==e.enterprise}class P{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)switch(t.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}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 O(e,t){return C(e,"GET","/v2/recaptchaConfig",S(e,t))}async function L(e,t){return C(e,"POST","/v1/accounts:delete",t)}async function M(e,t){return C(e,"POST","/v1/accounts:lookup",t)}function V(e){if(e)try{let t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}async function F(e,t=!1){let r=(0,n.getModularInstance)(e),i=await r.getIdToken(t),s=B(i);g(s&&s.exp&&s.auth_time&&s.iat,r.auth,"internal-error");let a="object"==typeof s.firebase?s.firebase:void 0,o=a?.sign_in_provider;return{claims:s,token:i,authTime:V(U(s.auth_time)),issuedAtTime:V(U(s.iat)),expirationTime:V(U(s.exp)),signInProvider:o||null,signInSecondFactor:a?.sign_in_second_factor||null}}function U(e){return 1e3*Number(e)}function B(e){let[t,r,i]=e.split(".");if(void 0===t||void 0===r||void 0===i)return u("JWT malformed, contained fewer than 3 sections"),null;try{let e=(0,n.base64Decode)(r);if(!e)return u("Failed to decode base64 JWT payload"),null;return JSON.parse(e)}catch(e){return u("Caught error parsing JWT payload as JSON",e?.toString()),null}}function j(e){let t=B(e);return g(t,"internal-error"),g(void 0!==t.exp,"internal-error"),g(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function q(e,t,r=!1){if(r)return t;try{return await t}catch(t){throw t instanceof n.FirebaseError&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class z{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){if(!e)return this.errorBackoff=3e4,Math.max(0,(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5);{let e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}}class K{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=V(this.lastLoginAt),this.creationTime=V(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function $(e){var t,r;let n=e.auth,i=await e.getIdToken(),s=await q(e,M(n,{idToken:i}));g(s?.users.length,n,"internal-error");let a=s.users[0];e._notifyReloadListener(a);let o=a.providerUserInfo?.length?H(a.providerUserInfo):[],l=(t=e.providerData,r=o,[...t.filter(e=>!r.some(t=>t.providerId===e.providerId)),...r]),u=e.isAnonymous,h=!(e.email&&a.passwordHash)&&!l?.length;Object.assign(e,{uid:a.localId,displayName:a.displayName||null,photoURL:a.photoUrl||null,email:a.email||null,emailVerified:a.emailVerified||!1,phoneNumber:a.phoneNumber||null,tenantId:a.tenantId||null,providerData:l,metadata:new K(a.createdAt,a.lastLoginAt),isAnonymous:!!u&&h})}async function G(e){let t=(0,n.getModularInstance)(e);await $(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}function H(e){return e.map(({providerId:e,...t})=>
1({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function W(e,t){let r=await A(e,{},async()=>{let r=(0,n.querystring)({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:i,apiKey:s}=e.config,a=await x(e,i,"/v1/token",`key=${s}`),o=await e._getAdditionalHeaders();o["Content-Type"]="application/x-www-form-urlencoded";let l={method:"POST",headers:o,body:r};return e.emulatorConfig&&(0,n.isCloudWorkstation)(e.emulatorConfig.host)&&(l.credentials="include"),b.fetch()(a,l)});return{accessToken:r.access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token}}async function Q(e,t){return C(e,"POST","/v2/accounts:revokeToken",S(e,t))}class J{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){g(e.idToken,"internal-error"),g(void 0!==e.idToken,"internal-error"),g(void 0!==e.refreshToken,"internal-error");let t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):j(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){g(0!==e.length,"internal-error");let t=j(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(g(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){let{accessToken:r,refreshToken:n,expiresIn:i}=await W(e,t);this.updateTokensAndExpiration(r,n,Number(i))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){let{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new J;return r&&(g("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(g("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(g("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 J,this.toJSON())}_performRefresh(){return m("not implemented")}}function Y(e,t){g("string"==typeof e||void 0===e,"internal-error",{appName:t})}class X{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new z(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 K(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){let t=await q(this,this.stsTokenManager.getToken(this.auth,e));return g(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return F(this,e)}reload(){return G(this)}_assign(e){this!==e&&(g(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){let t=new X({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){g(!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 $(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if((0,r._isFirebaseServerApp)(this.auth.app))return Promise.reject(f(this.auth));let e=await this.getIdToken();return await q(this,L(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,isA
1nonymous: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){let 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,u=t.lastLoginAt??void 0,{uid:h,emailVerified:c,isAnonymous:d,providerData:f,stsTokenManager:p}=t;g(h&&p,e,"internal-error");let m=J.fromJSON(this.name,p);g("string"==typeof h,e,"internal-error"),Y(r,e.name),Y(n,e.name),g("boolean"==typeof c,e,"internal-error"),g("boolean"==typeof d,e,"internal-error"),Y(i,e.name),Y(s,e.name),Y(a,e.name),Y(o,e.name),Y(l,e.name),Y(u,e.name);let y=new X({uid:h,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:m,createdAt:l,lastLoginAt:u});return f&&Array.isArray(f)&&(y.providerData=f.map(e=>({...e}))),o&&(y._redirectEventId=o),y}static async _fromIdTokenResponse(e,t,r=!1){let n=new J;n.updateFromServerResponse(t);let i=new X({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r});return await $(i),i}static async _fromGetAccountInfoResponse(e,t,r){let n=t.users[0];g(void 0!==n.localId,"internal-error");let i=void 0!==n.providerUserInfo?H(n.providerUserInfo):[],s=!(n.email&&n.passwordHash)&&!i?.length,a=new J;a.updateFromIdToken(r);let o=new X({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s});return Object.assign(o,{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 K(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash)&&!i?.length}),o}}let Z=new Map;function ee(e){var t,r;t="Expected a class definition",e instanceof Function||m(t);let n=Z.get(e);return n?(r="Instance stored in cache mismatched with class",n instanceof e||m(r)):(n=new e,Z.set(e,n)),n}class et{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}function er(e,t,r){return`firebase:${e}:${t}:${r}`}et.type="NONE";class en{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;const{config:n,name:i}=this.auth;this.fullUserKey=er(this.userKey,n.apiKey,i),this.fullPersistenceKey=er("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(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if("string"==typeof e){let t=await M(this.auth,{idToken:e}).catch(()=>void 0);return t?X._fromGetAccountInfoResponse(this.auth,t,e):null}return X._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,r="authUser"){if(!t.length)return new en(ee(et),e,r);let n=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e),i=n[0]||ee(et),s=er(r,e.config.apiKey,e.name),a=null;for(let r of t)try{let t=await r._get(s);if(t){let n;if("string"==typeof t){let r=await M(e,{idToken:t}).catch(()=>void 0);if(!r)break;n=await X._fromGetAccountInfoResponse(e,r,t)}else n=X._fromJSON(e,t);r!==i&&(a=n),i=r;break}}catch{}let o=n.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&o.length&&(i=o[0],a&&await i._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch{}}))),new en(i,e,r)}}function ei(e){let t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";{if(el(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(es(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(eh(t))return"Blackberry";if(ec(t))return"Webos";if(ea(t))return"Safari";if((t.includes("chrome/")||eo(t))&&!t.includes("edge/"))return"Chrome";if(eu(t))return"Android";let r=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);if(r?.length===2)return r[1]}return"Other"}function es(e=(0,n.getUA)()){return/firefox\//i.test(e)}function ea(e=(0,n.getUA)()){let t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function eo(e=(0,n.getUA)()){return/crios\//i.test(e)}function el(e=(0,n.getUA)()){return/iemobile/i.test(e)}function eu(e=(0,n.getUA)()){return/android/i.test(e)}function eh(e=(0,n.getUA)()){return/blackberry/i.test(e)}function ec(e=(0,n.getUA)()){return/webos/i.test(e)}function ed(e=(0,n.getUA)()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ef(e=(0,n.getUA)()){return ed(e)||eu(e)||ec(e)||eh(e)||/windows phone/i.test(e)||el(e)}function ep(e,t=[]){let i;switch(e){case"Browser":i=ei((0,n.getUA)());break;case"Worker":i=`${ei((0,n.getUA)())}-${e}`;break;default:i=e}let s=t.length?t.join(","):"FirebaseCore-web";return`${i}/JsCore/${r.SDK_VERSION}/${s}`}class eg{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=t=>new Promise((r,n)=>{try{let n=e(t);r(n)}catch(e){n(e)}});r.onAbort=t,this.queue.push(r);let n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){for(let e of(t.reverse(),t))try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}async function em(e,t={}){return C(e,"GET","/v2/passwordPolicy",S(e,t))}class ey{constructor(e){const 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){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&
1(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){let r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){let r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&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 ev{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 eI(this),this.idTokenSubscription=new eI(this),this.beforeStateQueue=new eg(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=o,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=ee(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted){if(this.persistenceManager=await en.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(){if(this._deleted)return;let e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{let t=await M(this,{idToken:e}),r=await X._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((0,r._isFirebaseServerApp)(this.app)){let e=this.app.settings.authIdToken;return e?new Promise(t=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(t,t))}):this.directlySetCurrentUser(null)}let t=await this.assertedPersistence.getCurrentUser(),n=t,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let t=this.redirectUser?._redirectEventId,r=n?._redirectEventId,s=await this.tryRedirectSignIn(e);(!t||t===r)&&s?.user&&(n=s.user,i=!0)}if(!n)return this.directlySetCurrentUser(null);if(!n._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(n)}catch(e){n=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return n?this.reloadAndSetCurrentUserOrClear(n):this.directlySetCurrentUser(null)}return(g(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===n._redirectEventId)?this.directlySetCurrentUser(n):this.reloadAndSetCurrentUserOrClear(n)}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 $(e)}catch(e){if(e?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("u"<typeof navigator)return null;let e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}
1async updateCurrentUser(e){if((0,r._isFirebaseServerApp)(this.app))return Promise.reject(f(this));let t=e?(0,n.getModularInstance)(e):null;return t&&g(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&&g(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(0,r._isFirebaseServerApp)(this.app)?Promise.reject(f(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return(0,r._isFirebaseServerApp)(this.app)?Promise.reject(f(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(ee(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let 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(){let e=new ey(await em(this));null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new n.ErrorFactory("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((e,t)=>{if(this.currentUser)e();else{let r=this.onAuthStateChanged(()=>{r(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await Q(this,t)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&ee(e)||this._popupRedirectResolver;g(t,this,"argument-error"),this.redirectPersistenceManager=await en.create(this,[ee(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return 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(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,r,n){if(this._deleted)return()=>{};let i="function"==typeof t?t:t.next.bind(t),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(g(a,this,"internal-error"),a.then(()=>{s||i(this.currentUser)}),"function"==typeof t){let i=e.addObserver(t,r,n);return()=>{s=!0,i()}}{let r=e.addObserver(t);return()=>{s=!0,r()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,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 g(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ep(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){if((0,r._isFirebaseServerApp)(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&function(e,...t){l.logLevel<=i.LogLevel.WARN&&l.warn(`Auth (${r.SDK_VERSION}): ${e}`,...t)}(`Error while retrieving App Check token: ${e.error}`),e?.token}}function ew(e){return(0,n.getModularInstance)(e)}class eI{constructor(e){this.auth=e,this.observer=null,this.addObserver=(0,n.createSubscribe)(e=>this.observer=e)}get next(){return g(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let eb={async loadJS(){throw Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function eE(e){return`__${e}${Math.floor(1e6*Math.random())}`}class e_{constructor(){this.enterprise=new eT}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class eT{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}let eS="NO_RECAPTCHA";class eC{constructor(e){this.type="recaptcha-enterprise",this.auth=ew(e)}async verify(e="verify",t=!1){async function r(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise(async(t,r)=>
1{O(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(n=>{if(void 0===n.recaptchaKey)r(Error("recaptcha Enterprise site key undefined"));else{let r=new P(n);return null==e.tenantId?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,t(r.siteKey)}}).catch(e=>{r(e)})})}function n(t,r,n){let i=window.grecaptcha;R(i)?i.enterprise.ready(()=>{i.enterprise.execute(t,{action:e}).then(e=>{r(e)}).catch(()=>{r(eS)})}):n(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new e_().execute("siteKey",{action:"verify"}):new Promise((e,i)=>{r(this.auth).then(r=>{if(!t&&R(window.grecaptcha))n(r,e,i);else{var s;if("u"<typeof window)return void i(Error("RecaptchaVerifier is only supported in browser"));let t=eb.recaptchaEnterpriseScript;0!==t.length&&(t+=r),(s=t,eb.loadJS(s)).then(()=>{n(r,e,i)}).catch(e=>{i(e)})}}).catch(e=>{i(e)})})}}async function eA(e,t,r,n=!1,i=!1){let s,a=new eC(e);if(i)s=eS;else try{s=await a.verify(r)}catch(e){s=await a.verify(r,!0)}let o={...t};if("mfaSmsEnrollment"===r||"mfaSmsSignIn"===r){if("phoneEnrollmentInfo"in o){let e=o.phoneEnrollmentInfo.phoneNumber,t=o.phoneEnrollmentInfo.recaptchaToken;Object.assign(o,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:t,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in o){let e=o.phoneSignInInfo.recaptchaToken;Object.assign(o,{phoneSignInInfo:{recaptchaToken:e,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return o}return n?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}async function ek(e,t,r,n,i){if("EMAIL_PASSWORD_PROVIDER"===i)if(!e._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER"))return n(e,t).catch(async i=>{if("auth/missing-recaptcha-token"!==i.code)return Promise.reject(i);{console.log(`${r} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let i=await eA(e,t,r,"getOobCode"===r);return n(e,i)}});else{let i=await eA(e,t,r,"getOobCode"===r);return n(e,i)}if("PHONE_PROVIDER"!==i)return Promise.reject(i+" provider is not supported.");if(e._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let i=await eA(e,t,r);return n(e,i).catch(async i=>{if(e._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&("auth/missing-recaptcha-token"===i.code||"auth/invalid-app-credential"===i.code)){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${r} flow.`);let i=await eA(e,t,r,!1,!0);return n(e,i)}return Promise.reject(i)})}{let i=await eA(e,t,r,!1,!0);return n(e,i)}}async function ex(e){let t=ew(e),r=new P(await O(t,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}));null==t.tenantId?t._agentRecaptchaConfig=r:t._tenantRecaptchaConfigs[t.tenantId]=r,r.isAnyProviderEnabled()&&new eC(t).verify()}function eD(e){let t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function eN(e){if(!e)return null;let t=Number(e);return isNaN(t)?null:t}class eR{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return m("not implemented")}_getIdTokenResponse(e){return m("not implemented")}_linkToIdToken(e,t){return m("not implemented")}_getReauthenticationResolver(e){return m("not implemented")}}async function eP(e,t){return C(e,"POST","/v1/accounts:signUp",t)}async function eO(e,t){return k(e,"POST","/v1/accounts:signInWithPassword",S(e,t))}async function eL(e,t){return k(e,"POST","/v1/accounts:signInWithEmailLink",S(e,t))}async function eM(e,t){return k(e,"POST","/v1/accounts:signInWithEmailLink",S(e,t))}class eV extends eR{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new eV(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new eV(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);else if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return ek(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"}
1,"signInWithPassword",eO,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return eL(e,{email:this._email,oobCode:this._password});default:h(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return ek(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",eP,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return eM(e,{idToken:t,email:this._email,oobCode:this._password});default:h(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function eF(e,t){return k(e,"POST","/v1/accounts:signInWithIdp",S(e,t))}class eU extends eR{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new eU(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):h("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,n
1once:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let{providerId:t,signInMethod:r,...n}="string"==typeof e?JSON.parse(e):e;if(!t||!r)return null;let i=new eU(t,r);return i.idToken=n.idToken||void 0,i.accessToken=n.accessToken||void 0,i.secret=n.secret,i.nonce=n.nonce,i.pendingToken=n.pendingToken||null,i}_getIdTokenResponse(e){return eF(e,this.buildRequest())}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,eF(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,eF(e,t)}buildRequest(){let e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=(0,n.querystring)(t)}return e}}async function eB(e,t){return C(e,"POST","/v1/accounts:sendVerificationCode",S(e,t))}async function ej(e,t){return k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,t))}async function eq(e,t){let r=await k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,t));if(r.temporaryProof)throw N(e,"account-exists-with-different-credential",r);return r}let ez={USER_NOT_FOUND:"user-not-found"};async function eK(e,t){return k(e,"POST","/v1/accounts:signInWithPhoneNumber",S(e,{...t,operation:"REAUTH"}),ez)}class e$ extends eR{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new e$({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new e$({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return ej(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return eq(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return eK(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){let 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){"string"==typeof e&&(e=JSON.parse(e));let{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e;return r||t||n||i?new e$({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class eG{constructor(e){const t=(0,n.querystringDecode)((0,n.extractQuerystring)(e)),r=t.apiKey??null,i=t.oobCode??null,s=function(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);g(r&&i&&s,"argument-error"),this.apiKey=r,this.operation=s,this.code=i,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t,r,i,s=(r=(t=(0,n.querystringDecode)((0,n.extractQuerystring)(e)).link)?(0,n.querystringDecode)((0,n.extractQuerystring)(t)).deep_link_id:null,((i=(0,n.querystringDecode)((0,n.extractQuerystring)(e)).deep_link_id)?(0,n.querystringDecode)((0,n.extractQuerystring)(i)).link:null)||i||r||t||e);try{return new eG(s)}catch{return null}}}class eH{constructor(){this.providerId=eH.PROVIDER_ID}static credential(e,t){return eV._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let r=eG.parseLink(t);return g(r,"argument-error"),eV._fromEmailAndCode(e,r.code,r.tenantId)}}eH.PROVIDER_ID="password",eH.EMAIL_PASSWORD_SIGN_IN_METHOD="password",eH.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class eW{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 eQ extends eW{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class eJ extends eQ{constructor(){super("facebook.com")}static credential(e){return eU._fromParams({providerId:eJ.PROVIDER_ID,signInMethod:eJ.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return eJ.credentialFromTaggedObject(e)}static credentialFromError(e){return eJ.credentialFromTaggedObject(e.customData||{})}
1static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return eJ.credential(e.oauthAccessToken)}catch{return null}}}eJ.FACEBOOK_SIGN_IN_METHOD="facebook.com",eJ.PROVIDER_ID="facebook.com";class eY extends eQ{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return eU._fromParams({providerId:eY.PROVIDER_ID,signInMethod:eY.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return eY.credentialFromTaggedObject(e)}static credentialFromError(e){return eY.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return eY.credential(t,r)}catch{return null}}}eY.GOOGLE_SIGN_IN_METHOD="google.com",eY.PROVIDER_ID="google.com";class eX extends eQ{constructor(){super("github.com")}static credential(e){return eU._fromParams({providerId:eX.PROVIDER_ID,signInMethod:eX.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return eX.credentialFromTaggedObject(e)}static credentialFromError(e){return eX.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return eX.credential(e.oauthAccessToken)}catch{return null}}}eX.GITHUB_SIGN_IN_METHOD="github.com",eX.PROVIDER_ID="github.com";class eZ extends eQ{constructor(){super("twitter.com")}static credential(e,t){return eU._fromParams({providerId:eZ.PROVIDER_ID,signInMethod:eZ.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return eZ.credentialFromTaggedObject(e)}static credentialFromError(e){return eZ.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return eZ.credential(t,r)}catch{return null}}}eZ.TWITTER_SIGN_IN_METHOD="twitter.com",eZ.PROVIDER_ID="twitter.com";class e0{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){return new e0({user:await X._fromIdTokenResponse(e,r,n),providerId:e1(r),_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){return await e._updateTokensIfNecessary(r,!0),new e0({user:e,providerId:e1(r),_tokenResponse:r,operationType:t})}}function e1(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class e2 extends n.FirebaseError{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,e2.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 e2(e,t,r,n)}}function e3(e,t,r,n){return("reauthenticate"===t?r._getReauthenticationResolver(e):r._getIdTokenResponse(e)).catch(r=>{if("auth/multi-factor-auth-required"===r.code)throw e2._fromErrorAndOperation(e,r,t,n);throw r})}async function e4(e,t,r=!1){let n=await q(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return e0._forOperation(e,"link",n)}async function e5(e,t,n=!1){let{auth:i}=e;if((0,r._isFirebaseServerApp)(i.app))return Promise.reject(f(i));let s="reauthenticate";try{let r=await q(e,e3(i,s,t,e),n);g(r.idToken,i,"internal-error");let a=B(r.idToken);g(a,i,"internal-error");let{sub:o}=a;return g(e.uid===o,i,"user-mismatch"),e0._forOperation(e,s,r)}catch(e){throw e?.code==="auth/user-not-found"&&h(i,"user-mismatch"),e}}async function e6(e,t,n=!1){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(f(e));let i="signIn",s=await e3(e,i,t),a=await e0._fromIdTokenResponse(e,i,s);return n||await e._updateCurrentUser(a.user),a}async function e8(e,t){return e6(ew(e),t)}async function e9(e){let t=ew(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}function e7(e,t){return C(e,"POST","/v2/accounts/mfaEnrollment:start",S(e,t))}new WeakMap;let te="__sak";class tt{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{if(!this.storage)return Promise.resolve(!1);return this.storage.setItem(te,"1"),this.storage.removeItem(te),Promise.resolve(!0)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){let 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 tr extends tt{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ef(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(let t of Object.keys(this.listeners)){let r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}
1onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)});let r=e.key;t?this.detachListener():this.stopPolling();let i=()=>{let e=this.storage.getItem(r);(t||this.localCache[r]!==e)&&this.notifyListeners(r,e)},s=this.storage.getItem(r);(0,n.isIE)()&&10===document.documentMode&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(t?JSON.parse(t):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){let t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}tr.type="LOCAL";class tn extends tt{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}tn.type="SESSION";class ti{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(t=>t.isListeningto(e));if(t)return t;let r=new ti(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let{eventId:t,eventType:r,data:n}=e.data,i=this.handlersMap[r];if(!i?.size)return;e.ports[0].postMessage({status:"ack",eventId:t,eventType:r});let s=Array.from(i).map(async t=>t(e.origin,n)),a=await Promise.all(s.map(async e=>{try{let t=await e;return{fulfilled:!0,value:t}}catch(e){return{fulfilled:!1,reason:e}}}));e.ports[0].postMessage({status:"done",eventId:t,eventType:r,response:a})}_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 ts(e="",t=10){let r="";for(let e=0;e<t;e++)r+=Math.floor(10*Math.random());return e+r}ti.receivers=[];class ta{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,r=50){let n,i,s="u">typeof MessageChannel?new MessageChannel:null;if(!s)throw Error("connection_unavailable");return new Promise((a,o)=>{let l=ts("",20);s.port1.start();let u=setTimeout(()=>{o(Error("unsupported_event"))},r);i={messageChannel:s,onMessage(e){if(e.data.eventId===l)switch(e.data.status){case"ack":clearTimeout(u),n=setTimeout(()=>{o(Error("timeout"))},3e3);break;case"done":clearTimeout(n),a(e.data.response);break;default:clearTimeout(u),clearTimeout(n),o(Error("invalid_response"))}}},this.handlers.add(i),s.port1.addEventListener("message",i.onMessage),this.target.postMessage({eventType:e,eventId:l,data:t},[s.port2])}).finally(()=>{i&&this.removeMessageHandler(i)})}}function to(){return window}function tl(){return void 0!==to().WorkerGlobalScope&&"function"==typeof to().importScripts}async function tu(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}let th="firebaseLocalStorageDb",tc="firebaseLocalStorage",td="fbase_key";class tf{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>
1{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function tp(e,t){return e.transaction([tc],t?"readwrite":"readonly").objectStore(tc)}function tg(){let e=indexedDB.open(th,1);return new Promise((t,r)=>{e.addEventListener("error",()=>{r(e.error)}),e.addEventListener("upgradeneeded",()=>{let t=e.result;try{t.createObjectStore(tc,{keyPath:td})}catch(e){r(e)}}),e.addEventListener("success",async()=>{let r=e.result;r.objectStoreNames.contains(tc)?t(r):(r.close(),await new tf(indexedDB.deleteDatabase(th)).toPromise(),t(await tg()))})})}async function tm(e,t,r){return new tf(tp(e,!0).put({[td]:t,value:r})).toPromise()}async function ty(e,t){let r=tp(e,!1).get(t),n=await new tf(r).toPromise();return void 0===n?null:n.value}function tv(e,t){return new tf(tp(e,!0).delete(t)).toPromise()}class tw{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 tg()),this.db}async _withRetries(e){let t=0;for(;;)try{let t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return tl()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=ti._getInstance(tl()?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(){if(this.activeServiceWorker=await tu(),!this.activeServiceWorker)return;this.sender=new ta(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&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{if(!indexedDB)return!1;let e=await tg();return await tm(e,te,"1"),await tv(e,te),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(r=>tm(r,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(t=>ty(t,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>tv(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(e=>new tf(tp(e,!1).getAll()).toPromise());if(!e||0!==this.pendingWrites)return[];let t=[],r=new Set;if(0!==e.length)for(let{fbase_key:n,value:i}of e)r.add(n),JSON.stringify(this.localCache[n])!==JSON.stringify(i)&&(this.notifyListeners(n,i),t.push(n));for(let e of Object.keys(this.localCache))this.localCache[e]&&!r.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;let r=this.listeners[e];if(r)for(let e of Array.from(r))e(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()}}function tI(e,t){return C(e,"POST","/v2/accounts/mfaSignIn:start",S(e,t))}tw.type="LOCAL",eE("rcb"),new w(3e4,6e4);let tb="recaptcha";async function tE(e,t,r){if(!e._getRecaptchaConfig())try{await ex(e)}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let n;if(n="string"==typeof t?{phoneNumber:t}
1:t,"session"in n){let t=n.session;if("phoneNumber"in n){g("enroll"===t.type,e,"internal-error");let i={idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},s=async(e,t)=>{if(t.phoneEnrollmentInfo.captchaResponse===eS){g(r?.type===tb,e,"argument-error");let n=await t_(e,t,r);return e7(e,n)}return e7(e,t)},a=ek(e,i,"mfaSmsEnrollment",s,"PHONE_PROVIDER");return(await a.catch(e=>Promise.reject(e))).phoneSessionInfo.sessionInfo}{g("signin"===t.type,e,"internal-error");let i=n.multiFactorHint?.uid||n.multiFactorUid;g(i,e,"missing-multi-factor-info");let s={mfaPendingCredential:t.credential,mfaEnrollmentId:i,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},a=async(e,t)=>{if(t.phoneSignInInfo.captchaResponse===eS){g(r?.type===tb,e,"argument-error");let n=await t_(e,t,r);return tI(e,n)}return tI(e,t)},o=ek(e,s,"mfaSmsSignIn",a,"PHONE_PROVIDER");return(await o.catch(e=>Promise.reject(e))).phoneResponseInfo.sessionInfo}}{let t={phoneNumber:n.phoneNumber,clientType:"CLIENT_TYPE_WEB"},i=async(e,t)=>{if(t.captchaResponse===eS){g(r?.type===tb,e,"argument-error");let n=await t_(e,t,r);return eB(e,n)}return eB(e,t)},s=ek(e,t,"sendVerificationCode",i,"PHONE_PROVIDER");return(await s.catch(e=>Promise.reject(e))).sessionInfo}}finally{r?._reset()}}async function t_(e,t,r){g(r.type===tb,e,"argument-error");let n=await r.verify();g("string"==typeof n,e,"argument-error");let i={...t};if("phoneEnrollmentInfo"in i){let e=i.phoneEnrollmentInfo.phoneNumber,t=i.phoneEnrollmentInfo.captchaResponse,r=i.phoneEnrollmentInfo.clientType,s=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:n,captchaResponse:t,clientType:r,recaptchaVersion:s}}),i}if(!("phoneSignInInfo"in i))return Object.assign(i,{recaptchaToken:n}),i;{let e=i.phoneSignInInfo.captchaResponse,t=i.phoneSignInInfo.clientType,r=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:n,captchaResponse:e,clientType:t,recaptchaVersion:r}}),i}}class tT{constructor(e){this.providerId=tT.PROVIDER_ID,this.auth=ew(e)}verifyPhoneNumber(e,t){return tE(this.auth,e,(0,n.getModularInstance)(t))}static credential(e,t){return e$._fromVerification(e,t)}static credentialFromResult(e){return tT.credentialFromTaggedObject(e)}static credentialFromError(e){return tT.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:r}=e;return t&&r?e$._fromTokenResponse(t,r):null}}function tS(e,t){return t?ee(t):(g(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}tT.PROVIDER_ID="phone",tT.PHONE_SIGN_IN_METHOD="phone";class tC extends eR{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return eF(e,this._buildIdpRequest())}_linkToIdToken(e,t){return eF(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return eF(e,this._buildIdpRequest())}_buildIdpRequest(e){let 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 tA(e){return e6(e.auth,new tC(e),e.bypassAuthState)}function tk(e){let{auth:t,user:r}=e;return g(r,t,"internal-error"),e5(r,new tC(e),e.bypassAuthState)}async function tx(e){let{auth:t,user:r}=e;return g(r,t,"internal-error"),e4(r,new tC(e),e.bypassAuthState)}class tD{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){let{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)return void this.reject(s);let o={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)(o))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return tA;case"linkViaPopup":case"linkViaRedirect":return tx;case"reauthViaPopup":case"reauthViaRedirect":return tk;default:h(this.auth,"internal-error")}}resolve(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||m(r),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){var t,r;t=this.pendingPromise,r="Pending promise was never set",t||m(r),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let tN=new w(2e3,1e4);async function tR(e,t,n){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(c(e,"operation-not-supported-in-this-environment"));let i=ew(e);if(!(t instanceof eW))throw eW.name!==t.constructor.name&&h(e,"argument-error"),d(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`);let s=tS(i,n);return new tP(i,"signInViaPopup",t,s).executeNotNull()}class tP extends tD{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,tP.currentPopupAction&&tP.currentPopupAction.cancel(),tP.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return g(e,this.auth,"internal-error"),e}async onExecution(){var e,t;e=1===this.filter.length,t="Popup operations only handle one event",e||m(t);let r=ts();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],r),this.authWindow.associatedEvent=r,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(c(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(c(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,tP.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(c(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,tN.get())};e()}}tP.currentPopupAction=null;let tO=new Map;class tL extends tD{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let e=tO.get(this.auth._key());if(!e){try{let t=await tM(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}tO.set(this.auth._key(),e)}return this.bypassAuthState||tO.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);
1if("unknown"===e.type)return void this.resolve(null);if(e.eventId){let t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function tM(e,t){var r;let n=er("pendingRedirect",(r=t).config.apiKey,r.name),i=ee(e._redirectPersistence);if(!await i._isAvailable())return!1;let s=await i._get(n)==="true";return await i._remove(n),s}function tV(e,t){tO.set(e._key(),t)}async function tF(e,t,n=!1){if((0,r._isFirebaseServerApp)(e.app))return Promise.reject(f(e));let i=ew(e),s=tS(i,t),a=new tL(i,s,n),o=await a.execute();return o&&!n&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,t)),o}class tU{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(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(t=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return tj(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!tj(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(c(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(tB(e))}saveEventToCache(e){this.cachedEventUids.add(tB(e)),this.lastProcessedEventTime=Date.now()}}function tB(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function tj({type:e,error:t}){return"unknown"===e&&t?.code==="auth/no-auth-event"}async function tq(e,t={}){return C(e,"GET","/v1/projects",t)}let tz=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,tK=/^https?/;async function t$(e){if(e.config.emulator)return;let{authorizedDomains:t}=await tq(e);for(let e of t)try{if(function(e){let t=y(),{protocol:r,hostname:n}=new URL(t);if(e.startsWith("chrome-extension://")){let i=new URL(e);return""===i.hostname&&""===n?"chrome-extension:"===r&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===r&&i.hostname===n}if(!tK.test(r))return!1;if(tz.test(e))return n===e;let i=e.replace(/\./g,"\\.");return RegExp("^(.+\\."+i+"|"+i+")$","i").test(n)}(e))return}catch{}h(e,"unauthorized-domain")}let tG=new w(3e4,6e4);function tH(){let e=to().___jsl;if(e?.H){for(let t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}}let tW=null,tQ=new w(5e3,15e3),tJ={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},tY=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function tX(e){let t,i,s,a,o,l=await (tW=tW||new Promise((t,r)=>{function n(){tH(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{tH(),r(c(e,"network-request-failed"))},timeout:tG.get()})}if(to().gapi?.iframes?.Iframe)t(gapi.iframes.getContext());else if(to().gapi?.load)n();else{var i;let t=eE("iframefcb");return to()[t]=()=>{gapi.load?n():r(c(e,"network-request-failed"))},(i=`${eb.gapiScript}?onload=${t}`,eb.loadJS(i)).catch(e=>r(e))}}).catch(e=>{throw tW=null,e})),u=to().gapi;return g(u,e,"internal-error"),l.open({where:document.body,url:(g((t=e.config).authDomain,e,"auth-domain-config-required"),i=t.emulator?I(t,"emulator/auth/iframe"):`https://${e.config.authDomain}
1/__/auth/iframe`,s={apiKey:t.apiKey,appName:e.name,v:r.SDK_VERSION},(a=tY.get(e.config.apiHost))&&(s.eid=a),(o=e._getFrameworks()).length&&(s.fw=o.join(",")),`${i}?${(0,n.querystring)(s).slice(1)}`),messageHandlersFilter:u.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:tJ,dontclear:!0},t=>new Promise(async(r,n)=>{await t.restyle({setHideOnLeave:!1});let i=c(e,"network-request-failed"),s=to().setTimeout(()=>{n(i)},tQ.get());function a(){to().clearTimeout(s),r(t)}t.ping(a).then(a,()=>{n(i)})}))}let tZ={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class t0{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}let t1=encodeURIComponent("fac");async function t2(e,t,i,s,a,o){g(e.config.authDomain,e,"auth-domain-config-required"),g(e.config.apiKey,e,"invalid-api-key");let l={apiKey:e.config.apiKey,appName:e.name,authType:i,redirectUrl:s,v:r.SDK_VERSION,eventId:a};if(t instanceof eW)for(let[r,i]of(t.setDefaultLanguage(e.languageCode),l.providerId=t.providerId||"",(0,n.isEmpty)(t.getCustomParameters())||(l.customParameters=JSON.stringify(t.getCustomParameters())),Object.entries(o||{})))l[r]=i;if(t instanceof eQ){let e=t.getScopes().filter(e=>""!==e);e.length>0&&(l.scopes=e.join(","))}for(let t of(e.tenantId&&(l.tid=e.tenantId),Object.keys(l)))void 0===l[t]&&delete l[t];let u=await e._getAppCheckToken(),h=u?`#${t1}=${encodeURIComponent(u)}`:"";return`${function({config:e}){return e.emulator?I(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${(0,n.querystring)(l).slice(1)}${h}`}let t3="webStorageSupport",t4=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=tn,this._completeRedirectFn=tF,this._overrideRedirectResult=tV}async _openPopup(e,t,r,i){var s,a;s=this.eventManagers[e._key()]?.manager,a="_initialize() not called before _openPopup()",s||m(a);let o=await t2(e,t,r,y(),i);return function(e,t,r,i=500,s=600){let a=Math.max((window.screen.availHeight-s)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString(),l="",u={...tZ,width:i.toString(),height:s.toString(),top:a,left:o},h=(0,n.getUA)().toLowerCase();r&&(l=eo(h)?"_blank":r),es(h)&&(t=t||"http://localhost",u.scrollbars="yes");let c=Object.entries(u).reduce((e,[t,r])=>`${e}${t}=${r},`,"");if(function(e=(0,n.getUA)()){return ed(e)&&!!window.navigator?.standalone}(h)&&"_self"!==l){var d,f;let e,r;return d=t||"",f=l,(e=document.createElement("a")).href=d,e.target=f,(r=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),e.dispatchEvent(r),new t0(null)}let p=window.open(t||"",l,c);g(p,e,"popup-blocked");try{p.focus()}catch(e){}return new t0(p)}(e,o,ts())}async _openRedirect(e,t,r,n){var i;return await this._originValidation(e),i=await t2(e,t,r,y(),n),to().location.href=i,new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){var r;let{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(r="If manager is not set, promise should be",n||m(r),n)}let n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(e){let t=await tX(e),r=new tU(e);return t.register("authEvent",t=>(g(t?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(t.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=t,r}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(t3,{type:t3},r=>{let n=r?.[0]?.[t3];void 0!==n&&t(!!n),h(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=t$(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ef()||ea()||ed()}};var t5="@firebase/auth",t6="1.13.0";class t8{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(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;let t=this.auth.onIdTokenChanged(t=>{e(t?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){g(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}let t9=(0,n.getExperimentalSetting)("authIdTokenMaxAge")||300,t7=null;eb={loadJS:e=>
1new Promise((t,r)=>{let n=document.createElement("script");n.setAttribute("src",e),n.onload=t,n.onerror=e=>{let t=c("internal-error");t.customData=e,r(t)},n.type="text/javascript",n.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(n)}),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="},t="Browser",(0,r._registerComponent)(new s.Component("auth",(e,{options:r})=>{let n,i,s=e.getProvider("app").getImmediate(),a=e.getProvider("heartbeat"),o=e.getProvider("app-check-internal"),{apiKey:l,authDomain:u}=s.options;g(l&&!l.includes(":"),"invalid-api-key",{appName:s.name});let h=new ev(s,a,o,{apiKey:l,authDomain:u,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ep(t)});return i=(Array.isArray(n=r?.persistence||[])?n:[n]).map(ee),r?.errorMap&&h._updateErrorMap(r.errorMap),h._initializeWithPersistence(i,r?.popupRedirectResolver),h},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),(0,r._registerComponent)(new s.Component("auth-internal",e=>new t8(ew(e.getProvider("auth").getImmediate())),"PRIVATE").setInstantiationMode("EXPLICIT")),(0,r.registerVersion)(t5,t6,function(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}}(t)),(0,r.registerVersion)(t5,t6,"esm2020"),e.s(["D",0,function(e){return(0,n.getModularInstance)(e).signOut()},"Y",0,eY,"ac",0,function(e,t,i){return(0,r._isFirebaseServerApp)(e.app)?Promise.reject(f(e)):e8((0,n.getModularInstance)(e),eH.credential(t,i)).catch(async t=>{throw"auth/password-does-not-meet-requirements"===t.code&&e9(e),t})},"d",0,tR,"p",0,function(e=(0,r.getApp)()){let t=(0,r._getProvider)(e,"auth");if(t.isInitialized())return t.getImmediate();let i=function(e,t){let i=(0,r._getProvider)(e,"auth");if(i.isInitialized()){let e=i.getImmediate(),r=i.getOptions();if((0,n.deepEqual)(r,t??{}))return e;h(e,"already-initialized")}return i.initialize({options:t})}(e,{popupRedirectResolver:t4,persistence:[tw,tr,tn]}),s=(0,n.getExperimentalSetting)("authTokenSyncURL");if(s&&"boolean"==typeof isSecureContext&&isSecureContext){let e=new URL(s,location.origin);if(location.origin===e.origin){let t,r=(t=e.toString(),async e=>{let r=e&&await e.getIdTokenResult(),n=r&&(new Date().getTime()-Date.parse(r.issuedAtTime))/1e3;if(n&&n>t9)return;let i=r?.token;t7!==i&&(t7=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});(0,n.getModularInstance)(i).beforeAuthStateChanged(r,()=>r(i.currentUser)),(0,n.getModularInstance)(i).onIdTokenChanged(e=>r(e),void 0,void 0)}}let a=(0,n.getDefaultEmulatorHost)("auth");return a&&function(e,t){let r=ew(e);g(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");let i=eD(t),{host:s,port:a}=function(e){let t=eD(e),r=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!r)return{host:"",port:null};let n=r[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(n);if(i){let e=i[1];return{host:e,port:eN(n.substr(e.length+1))}}{let[e,t]=n.split(":");return{host:e,port:eN(t)}}}(t),o=null===a?"":`:${a}`,l={url:`${i}//${s}${o}/`},u=Object.freeze({host:s,port:a,protocol:i.replace(":",""),options:Object.freeze({disableWarnings:!1})});if(!r._canInitEmulator){g(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),g((0,n.deepEqual)(l,r.config.emulator)&&(0,n.deepEqual)(u,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=l,r.emulatorConfig=u,r.settings.appVerificationDisabledForTesting=!0,(0,n.isCloudWorkstation)(s)?(0,n.pingServer)(`${i}//${s}${o}`):function(){function e(){let 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)}"u">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."),"u">typeof window&&"u">typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(i,`http://${a}`),i},"z",0,function(e,t,r,i){return(0,n.getModularInstance)(e).onAuthStateChanged(t,r,i)}],49146),e.s([],51718)},36180,69185,63802,e=>{"use strict";var t,r,n,i,s,a,o,l,u,h,c,d,f,p,g=e.i(92953),m=e.i(8070),y=e.i(47167),v=e.i(67034),w=e.i(97427),I="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,b={};(function(){function e(){this.blockSize=-1,this.blockSize=64,this.g=[,,,,],this.C=Array(this.blockSize),this.o=this.h=0,this.u()}var n=function(){this.blockSize=-1};function i(){}function s(e,t,r){r||(r=0);let 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],i=e.g[2];let s=e.g[3],a;a=t+(s^r&(i^s))+n[0]+0xd76aa478|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[1]+0xe8c7b756|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[2]+0x242070db|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[3]+0xc1bdceee|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[4]+0xf57c0faf|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[5]+0x4787c62a|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[6]+0xa8304613|0,a=r+(t^(i=s+(a<<17|a>>>
115))&(s^t))+n[7]+0xfd469501|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[8]+0x698098d8|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[9]+0x8b44f7af|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[10]+0xffff5bb1|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[11]+0x895cd7be|0,a=t+(s^(r=i+(a<<22|a>>>10))&(i^s))+n[12]+0x6b901122|0,a=s+(i^(t=r+(a<<7|a>>>25))&(r^i))+n[13]+0xfd987193|0,a=i+(r^(s=t+(a<<12|a>>>20))&(t^r))+n[14]+0xa679438e|0,a=r+(t^(i=s+(a<<17|a>>>15))&(s^t))+n[15]+0x49b40821|0,r=i+(a<<22|a>>>10),a=t+(i^s&(r^i))+n[1]+0xf61e2562|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[6]+0xc040b340|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[11]+0x265e5a51|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[0]+0xe9b6c7aa|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[5]+0xd62f105d|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[10]+0x2441453|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[15]+0xd8a1e681|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[4]+0xe7d3fbc8|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[9]+0x21e1cde6|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[14]+0xc33707d6|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[3]+0xf4d50d87|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[8]+0x455a14ed|0,r=i+(a<<20|a>>>12),a=t+(i^s&(r^i))+n[13]+0xa9e3e905|0,t=r+(a<<5|a>>>27),a=s+(r^i&(t^r))+n[2]+0xfcefa3f8|0,s=t+(a<<9|a>>>23),a=i+(t^r&(s^t))+n[7]+0x676f02d9|0,i=s+(a<<14|a>>>18),a=r+(s^t&(i^s))+n[12]+0x8d2a4c8a|0,a=t+((r=i+(a<<20|a>>>12))^i^s)+n[5]+0xfffa3942|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[8]+0x8771f681|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[11]+0x6d9d6122|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[14]+0xfde5380c|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[1]+0xa4beea44|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[4]+0x4bdecfa9|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[7]+0xf6bb4b60|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[10]+0xbebfbc70|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[13]+0x289b7ec6|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[0]+0xeaa127fa|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[3]+0xd4ef3085|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[6]+0x4881d05|0,a=t+((r=i+(a<<23|a>>>9))^i^s)+n[9]+0xd9d4d039|0,a=s+((t=r+(a<<4|a>>>28))^r^i)+n[12]+0xe6db99e5|0,a=i+((s=t+(a<<11|a>>>21))^t^r)+n[15]+0x1fa27cf8|0,a=r+((i=s+(a<<16|a>>>16))^s^t)+n[2]+0xc4ac5665|0,r=i+(a<<23|a>>>9),a=t+(i^(r|~s))+n[0]+0xf4292244|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[7]+0x432aff97|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[14]+0xab9423a7|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[5]+0xfc93a039|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[12]+0x655b59c3|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[3]+0x8f0ccc92|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[10]+0xffeff47d|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[1]+0x85845dd1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[8]+0x6fa87e4f|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[15]+0xfe2ce6e0|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[6]+0xa3014314|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[13]+0x4e0811a1|0,r=i+(a<<21|a>>>11),a=t+(i^(r|~s))+n[4]+0xf7537e82|0,t=r+(a<<6|a>>>26),a=s+(r^(t|~i))+n[11]+0xbd3af235|0,s=t+(a<<10|a>>>22),a=i+(t^(s|~r))+n[2]+0x2ad7d2bb|0,i=s+(a<<15|a>>>17),a=r+(s^(i|~t))+n[9]+0xeb86d391|0,e.g[0]=e.g[0]+t|0,e.g[1]=e.g[1]+(i+(a<<21|a>>>11))|0,e.g[2]=e.g[2]+i|0,e.g[3]=e.g[3]+s|0}function a(e,t){this.h=t;let r=[],n=!0;for(let i=e.length-1;i>=0;i--){let s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}i.prototype=n.prototype,e.F=n.prototype,e.prototype=new i,e.prototype.constructor=e,e.D=function(e,t,r){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return n.prototype[t].apply(e,i)},e.prototype.u=function(){this.g[0]=0x67452301,this.g[1]=0xefcdab89,this.g[2]=0x98badcfe,this.g[3]=0x10325476,this.o=this.h=0},e.prototype.v=function(e,t){void 0===t&&(t=e.length);let r=t-this.blockSize,n=this.C,i=this.h,a=0;for(;a<t;){if(0==i)for(;a<=r;)s(this,e,a),a+=this.blockSize;if("string"==typeof e){for(;a<t;)if(n[i++]=e.charCodeAt(a++),i==this.blockSize){s(this,n),i=0;break}}else for(;a<t;)if(n[i++]=e[a++],i==this.blockSize){s(this,n),i=0;break}}this.h=i,this.o+=t},e.prototype.A=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;t=8*this.o;for(var r=e.length-8;r<e.length;++r)e[r]=255&t,t/=256;for(this.v(e),e=Array(16),t=0,r=0;r<4;++r)for(let n=0;n<32;n+=8)e[t++]=this.g[r]>>>n&255;return e};var o,l={};function u(e){var t;return -128<=e&&e<128?(t=function(e){return new a([0|e],e<0?-1:0)},Object.prototype.hasOwnProperty.call(l,e)?l[e]:l[e]=t(e)):new a([0|e],e<0?-1:0)}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return m(h(-e));let t=[],r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=0x100000000;return new a(t,0)}var c=u(0),d=u(1),f=u(0x1000000);function p(e){if(0!=e.h)return!1;for(let t=0;t<e.g.length;t++)if(0!=e.g[t])return!1;return!0}function g(e){return -1==e.h}function m(e){let t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new a(r,~e.h).add(d)}function y(e,t){return e.add(m(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function w(e,t){this.g=e,this.h=t}function I(e,t){if(p(t))throw Error("division by zero");if(p(e))return new w(c,c);if(g(e))return t=I(m(e),t),new w(m(t.g),m(t.h));if(g(t))return t=I(e,m(t)),new w(m(t.g),t.h);if(e.g.length>
130){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=d,n=t;0>=n.l(e);)r=E(r),n=E(n);var i=_(r,1),s=_(n,1);for(n=_(n,2),r=_(r,2);!p(n);){var a=s.add(n);0>=a.l(e)&&(i=i.add(r),s=a),n=_(n,1),r=_(r,1)}return t=y(e,i.j(t)),new w(i,t)}for(i=c;e.l(t)>=0;){for(n=(n=Math.ceil(Math.log(r=Math.max(1,Math.floor(e.m()/t.m())))/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);g(a)||a.l(e)>0;)r-=n,a=(s=h(r)).j(t);p(s)&&(s=d),i=i.add(s),e=y(e,a)}return new w(i,e)}function E(e){let 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 a(r,e.h)}function _(e,t){let r=t>>5;t%=32;let n=e.g.length-r,i=[];for(let s=0;s<n;s++)i[s]=t>0?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new a(i,e.h)}(o=a.prototype).m=function(){if(g(this))return-m(this).m();let e=0,t=1;for(let r=0;r<this.g.length;r++){let n=this.i(r);e+=(n>=0?n:0x100000000+n)*t,t*=0x100000000}return e},o.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(g(this))return"-"+m(this).toString(e);let t=h(Math.pow(e,6));var r=this;let n="";for(;;){let i=I(r,t).g,s=(((r=y(r,i.j(t))).g.length>0?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},o.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},o.l=function(e){return g(e=y(this,e))?-1:+!p(e)},o.abs=function(){return g(this)?m(this):this},o.add=function(e){let t=Math.max(this.g.length,e.g.length),r=[],n=0;for(let i=0;i<=t;i++){let t=n+(65535&this.i(i))+(65535&e.i(i)),s=(t>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16);n=s>>>16,t&=65535,s&=65535,r[i]=s<<16|t}return new a(r,-0x80000000&r[r.length-1]?-1:0)},o.j=function(e){if(p(this)||p(e))return c;if(g(this))return g(e)?m(this).j(m(e)):m(m(this).j(e));if(g(e))return m(this.j(m(e)));if(0>this.l(f)&&0>e.l(f))return h(this.m()*e.m());let t=this.g.length+e.g.length,r=[];for(var n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let t=0;t<e.g.length;t++){let i=this.i(n)>>>16,s=65535&this.i(n),a=e.i(t)>>>16,o=65535&e.i(t);r[2*n+2*t]+=s*o,v(r,2*n+2*t),r[2*n+2*t+1]+=i*o,v(r,2*n+2*t+1),r[2*n+2*t+1]+=s*a,v(r,2*n+2*t+1),r[2*n+2*t+2]+=i*a,v(r,2*n+2*t+2)}for(e=0;e<t;e++)r[e]=r[2*e+1]<<16|r[2*e];for(e=t;e<2*t;e++)r[e]=0;return new a(r,0)},o.B=function(e){return I(this,e).h},o.and=function(e){let 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 a(r,this.h&e.h)},o.or=function(e){let 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 a(r,this.h|e.h)},o.xor=function(e){let 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 a(r,this.h^e.h)},e.prototype.digest=e.prototype.A,e.prototype.reset=e.prototype.u,e.prototype.update=e.prototype.v,r=b.Md5=e,a.prototype.add=a.prototype.add,a.prototype.multiply=a.prototype.j,a.prototype.modulo=a.prototype.B,a.prototype.compare=a.prototype.l,a.prototype.toNumber=a.prototype.m,a.prototype.toString=a.prototype.toString,a.prototype.getBits=a.prototype.i,a.fromNumber=h,a.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 m(e(t.substring(1),r));if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character');let n=h(Math.pow(r,8)),i=c;for(let e=0;e<t.length;e+=8){var s=Math.min(8,t.length-e);let a=parseInt(t.substring(e,e+s),r);s<8?(s=h(Math.pow(r,s)),i=i.j(s).add(h(a))):i=(i=i.j(n)).add(h(a))}return i},t=b.Integer=a}).apply(void 0!==I?I:"u">typeof self?self:"u">typeof window?window:{});var E=e.i(83877),_="u">typeof globalThis?globalThis:"u">typeof window?window:e.g,T={};(function(){var e,t,r=Object.defineProperty,c=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof _&&_];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 d(e,t){if(t)e:{var n=c;e=e.split(".");for(var i=0;i<e.length-1;i++){var s=e[i];if(!(s in n))break e;n=n[s]}(t=t(i=n[e=e[e.length-1]]))!=i&&null!=t&&r(n,e,{configurable:!0,writable:!0,value:t})}}d("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),d("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),d("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 f=f||{},p=this||self;function g(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function m(e,t,r){return e.call.apply(e.bind,arguments)}function y(e,t,r){return(y=m).apply(null,arguments)}
1function v(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}}function w(e,t){function r(){}r.prototype=t.prototype,e.Z=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.Ob=function(e,r,n){for(var i=Array(arguments.length-2),s=2;s<arguments.length;s++)i[s-2]=arguments[s];return t.prototype[r].apply(e,i)}}var I="u">typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function b(e){let t=e.length;if(t>0){let r=Array(t);for(let n=0;n<t;n++)r[n]=e[n];return r}return[]}function E(e,t){for(let t=1;t<arguments.length;t++){let n=arguments[t];var r=typeof n;if("array"==(r="object"!=r?r:n?Array.isArray(n)?"array":r:"null")||"object"==r&&"number"==typeof n.length){r=e.length||0;let t=n.length||0;e.length=r+t;for(let i=0;i<t;i++)e[r+i]=n[i]}else e.push(n)}}var S=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return this.h>0?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new C,e=>e.reset());class C{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 A,k=!1,x=new class{constructor(){this.h=this.g=null}add(e,t){let r=S.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},D=()=>{let e=Promise.resolve(void 0);A=()=>{e.then(N)}};function N(){let e;for(var t;e=null,x.g&&(e=x.g,x.g=x.g.next,x.g||(x.h=null),e.next=null),t=e;){try{t.h.call(t.g)}catch(e){!function(e){p.setTimeout(()=>{throw e},0)}(e)}S.j(t),S.h<100&&(S.h++,t.next=S.g,S.g=t)}k=!1}function R(){this.u=this.u,this.C=this.C}function P(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}R.prototype.u=!1,R.prototype.dispose=function(){this.u||(this.u=!0,this.N())},R.prototype[Symbol.dispose]=function(){this.dispose()},R.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},P.prototype.h=function(){this.defaultPrevented=!0};var O=function(){if(!p.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{let e=()=>{};p.addEventListener("test",e,t),p.removeEventListener("test",e,t)}catch(e){}return e}();function L(e){return/^[\s\xa0]*$/.test(e)}function M(e,t){P.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)}w(M,P),M.prototype.init=function(e,t){let 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,e.defaultPrevented&&M.Z.h.call(this)},M.prototype.h=function(){M.Z.h.call(this);let e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var V="closure_listenable_"+(1e6*Math.random()|0),F=0;function U(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=++F,this.da=this.fa=!1}function B(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function j(e,t,r){for(let n in e)t.call(r,e[n],n,e)}function q(e){let t={};for(let r in e)t[r]=e[r];return t}let z="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function K(e,t){let r,n;for(let t=1;t<arguments.length;t++){for(r in n=arguments[t])e[r]=n[r];for(let t=0;t<z.length;t++)r=z[t],Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}}function $(e){this.src=e,this.g={},this.h=0}function G(e,t){let r=t.type;if(r in e.g){var n,i=e.g[r],s=Array.prototype.indexOf.call(i,t,void 0);(n=s>=0)&&Array.prototype.splice.call(i,s,1),n&&(B(t),0==e.g[r].length&&(delete e.g[r],e.h--))}}function H(e,t,r,n){for(let i=0;i<e.length;++i){let s=e[i];if(!s.da&&s.listener==t&&!!r==s.capture&&s.ha==n)return i}return -1}$.prototype.add=function(e,t,r,n,i){let s=e.toString();(e=this.g[s])||(e=this.g[s]=[],this.h++);let a=H(e,t,n,i);return a>-1?(t=e[a],r||(t.fa=!1)):((t=new U(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var W="closure_lm_"+(1e6*Math.random()|0),Q={};function J(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");let a=g(i)?!!i.capture:!!i,o=ee(e);
1if(o||(e[W]=o=new $(e)),(r=o.add(t,r,n,a,s)).proxy)return r;if(n=function e(t){return Z.call(e.src,e.listener,t)},r.proxy=n,n.src=e,n.listener=r,e.addEventListener)O||(i=a),void 0===i&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(X(t.toString()),n);else if(e.addListener&&e.removeListener)e.addListener(n);else throw Error("addEventListener and attachEvent are unavailable.");return r}function Y(e){if("number"!=typeof e&&e&&!e.da){var t=e.src;if(t&&t[V])G(t.i,e);else{var r=e.type,n=e.proxy;t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(X(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ee(t))?(G(r,e),0==r.h&&(r.src=null,t[W]=null)):B(e)}}}function X(e){return e in Q?Q[e]:Q[e]="on"+e}function Z(e,t){if(e.da)e=!0;else{t=new M(t,this);let r=e.listener,n=e.ha||e.src;e.fa&&Y(e),e=r.call(n,t)}return e}function ee(e){return(e=e[W])instanceof $?e:null}var et="__closure_events_fn_"+(1e9*Math.random()>>>0);function er(e){return"function"==typeof e?e:(e[et]||(e[et]=function(t){return e.handleEvent(t)}),e[et])}function en(){R.call(this),this.i=new $(this),this.M=this,this.G=null}function ei(e,t){let r,n;var i,s=e.G;if(s)for(i=[];s;s=s.G)i.push(s);if(e=e.M,s=t.type||t,"string"==typeof t)t=new P(t,e);else if(t instanceof P)t.target=t.target||e;else{var a=t;K(t=new P(s,e),a)}if(a=!0,i)for(n=i.length-1;n>=0;n--)a=es(r=t.g=i[n],s,!0,t)&&a;if(a=es(r=t.g=e,s,!0,t)&&a,a=es(r,s,!1,t)&&a,i)for(n=0;n<i.length;n++)a=es(r=t.g=i[n],s,!1,t)&&a}function es(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let s=0;s<t.length;++s){let a=t[s];if(a&&!a.da&&a.capture==r){let t=a.listener,r=a.ha||a.src;a.fa&&G(e.i,a),i=!1!==t.call(r,n)&&i}}return i&&!n.defaultPrevented}w(en,R),en.prototype[V]=!0,en.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=g(i)?!!i.capture:!!i,n=er(n),t&&t[V])?(t=t.i,(a=String(r).toString())in t.g&&(n=H(r=t.g[a],n,i,s))>-1&&(B(r[n]),Array.prototype.splice.call(r,n,1),0==r.length&&(delete t.g[a],t.h--))):t&&(t=ee(t))&&(r=t.g[r.toString()],t=-1,r&&(t=H(r,n,i,s)),(n=t>-1?r[t]:null)&&Y(n))}(this,e,t,r,n)},en.prototype.N=function(){if(en.Z.N.call(this),this.i){var e=this.i;for(let t in e.g){let r=e.g[t];for(let e=0;e<r.length;e++)B(r[e]);delete e.g[t],e.h--}}this.G=null},en.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},en.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class ea extends R{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:function e(t){t.g=function(e,t){if("function"!=typeof e)if(e&&"function"==typeof e.handleEvent)e=y(e.handleEvent,e);else throw Error("Invalid listener argument");return Number(t)>0x7fffffff?-1:p.setTimeout(e,t||0)}(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);let r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(p.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function eo(e){R.call(this),this.h=e,this.g={}}w(eo,R);var el=[];function eu(e){j(e.g,function(e,t){this.g.hasOwnProperty(t)&&Y(e)},e),e.g={}}eo.prototype.N=function(){eo.Z.N.call(this),eu(this)},eo.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var eh=p.JSON.stringify,ec=p.JSON.parse,ed=class{stringify(e){return p.JSON.stringify(e,void 0)}parse(e){return p.JSON.parse(e,void 0)}};function ef(){}function ep(){}var eg={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function em(){P.call(this,"d")}function ey(){P.call(this,"c")}w(em,P),w(ey,P);var ev={},ew=null;function eI(){return ew=ew||new en}function eb(e){P.call(this,ev.Ia,e)}function eE(e){let t=eI();ei(t,new eb(t))}function e_(e,t){P.call(this,ev.STAT_EVENT,e),this.stat=t}function eT(e){let t=eI();ei(t,new e_(t,e))}function eS(e,t){P.call(this,ev.Ja,e),this.size=t}function eC(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return p.setTimeout(function(){e()},t)}function eA(){this.g=!0}function ek(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+function(e,t){if(!e.g)return t;if(!t)return null;try{let s=JSON.parse(t);if(s){for(e=0;e<s.length;e++)if(Array.isArray(s[e])){var r=s[e];if(!(r.length<2)){var n=r[1];if(Array.isArray(n)&&!(n.length<1)){var i=n[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(let e=1;e<n.length;e++)n[e]=""}}}}return eh(s)}catch(e){return t}}(e,r)+(n?" "+n:"")})}ev.Ia="serverreachability",w(eb,P),ev.STAT_EVENT="statevent",w(e_,P),ev.Ja="timingevent",w(eS,P),eA.prototype.ua=function(){this.g=!1},eA.prototype.info=function(){};var ex={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},eD={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function eN(){}function eR(e){return encodeURIComponent(String(e))}function eP(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new eo(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 eO}function eO(){this.i=null,this.g="",this.h=!1}w(eN,ef),eN.prototype.g=function(){return new XMLHttpRequest},e=new eN;var eL={},eM={};function eV(e,t,r){e.M=1,e.A=e8(e2(t)),e.u=r,e.R=!0,eF(e,null)}function eF(e,t){e.F=Date.now(),eB(e),e.B=e2(e.A);var r,n,i,s,a,o,l=e.B,u=e.S;Array.isArray(u)||(u=[String(u)]),tc(l.i,"t",u),e.C=0,l=e.j.L,e.h=new eO,e.g=tY(e.j,l?t:null,!e.u),e.P>0&&(e.O=new ea(y(e.Y,e,e.g),e.P)),t=e.V,l=e.g,u=e.ba;var h="readystatechange";Array.isArray(h)||(h&&(el[0]=h.toString()),h=el);for(let e=0;e<h.length;e++){let r=function e(t,r,n,i,s){if(i&&i.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=er(n),t&&t[V]?t.K(r,n,g(i)?!!i.capture:!!i,s):J(t,r,n,!0,i,s)}(t,r,n,i,s);if(Array.isArray(r)){for(let a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}return n=er(n),t&&t[V]?t.J(r,n,g(i)?!!i.capture:!!i,s):J(t,r,n,!1,i,s)}(l,h[e],u||t.handleEvent,!1,t.h||t);if(!r)break;t.g[r.key]=r}t=e.J?q(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)),eE(),r=e.i,n=e.v,i=e.B,s=e.l,a=e.S,o=e.u,r.info(function(){if(r.g)if(o){var e="",t=o.split("&");for(let r=0;r<t.length;r++){var l=t[r].split("=");if(l.length>1){let t=l[0];l=l[1];let r=t.split("_");e=r.length>=2&&"type"==r[1]?e+(t+"=")+l+"&":e+(t+"=redacted&")}}}else e=null;else e=o;return"XMLHTTP REQ ("+s+") [attempt "+a+"]: "+n+"\n"+i+"\n"+e})}function eU(e){return!!e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function eB(e){e.T=Date.now()+e.H,ej(e,e.H)}function ej(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=eC(y(e.aa,e),t)}function eq(e){e.D&&(p.clearTimeout(e.D),e.D=null)}function ez(e){0==e.j.I||e.K||tG(e.j,e)}function eK(e){eq(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,eu(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dis
1pose())}function e$(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||eJ(r.h,e))){if(!e.L&&eJ(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)t$(r),tL(r);else break e;tq(r),eT(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=eC(y(r.Va,r),6e3));1>=eQ(r.h)&&r.ta&&(r.ta=void 0)}else tW(r,11)}else if((e.L||r.g==e)&&t$(r),!L(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){let o=i[t],l=o[0];if(!(l<=r.K))if(r.K=l,o=o[1],2==r.I)if("c"==o[0]){r.M=o[1],r.ba=o[2];let t=o[3];null!=t&&(r.ka=t,r.j.info("VER="+r.ka));let i=o[4];null!=i&&(r.za=i,r.j.info("SVER="+r.za));let l=o[5];null!=l&&"number"==typeof l&&l>0&&(r.O=n=1.5*l,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r;let u=e.g;if(u){let e=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(e){var s=n.h;s.g||-1==e.indexOf("spdy")&&-1==e.indexOf("quic")&&-1==e.indexOf("h2")||(s.j=s.l,s.g=new Set,s.h&&(eY(s,s.h),s.h=null))}if(n.G){let e=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null;e&&(n.wa=e,e6(n.J,n.G,e))}}if(r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),(n=r).na=tJ(n,n.L?n.ba:null,n.W),e.L){eX(n.h,e);var a=n.O;a&&(e.H=a),e.D&&(eq(e),eB(e)),n.g=e}else tj(n);r.i.length>0&&tV(r)}else"stop"!=o[0]&&"close"!=o[0]||tW(r,7);else 3==r.I&&("stop"==o[0]||"close"==o[0]?"stop"==o[0]?tW(r,7):tO(r):"noop"!=o[0]&&r.l&&r.l.qa(o),r.A=0)}}eE(4)}catch(e){}}eP.prototype.ba=function(e){e=e.target;let t=this.O;t&&3==tD(e)?t.j():this.Y(e)},eP.prototype.Y=function(e){try{if(e==this.g)e:{let d=tD(this.g),f=this.g.ya(),g=this.g.ca();if(!(d<3)&&(3!=d||this.g&&(this.h.h||this.g.la()||tN(this.g)))){this.K||4!=d||7==f||(8==f||g<=0?eE(3):eE(2)),eq(this);var t=this.g.ca();this.X=t;var r=function(e){if(!eU(e))return e.g.la();let t=tN(e.g);if(""===t)return"";let r="",n=t.length,i=4==tD(e.g);if(!e.h.i){if("u"<typeof TextDecoder)return eK(e),ez(e),"";e.h.i=new p.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==t,n=this.i,i=this.v,s=this.B,a=this.l,o=this.S,n.info(function(){return"XMLHTTP RESP ("+a+") [ attempt "+o+"]: "+i+"\n"+s+"\n"+d+" "+t}),this.o){if(this.U&&!this.L){t:{if(this.g){var n,i,s,a,o,l,u=this.g;if((l=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!L(l)){var h=l;break t}}h=null}if(e=h)ek(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,e$(this,e);else{this.o=!1,this.m=3,eT(12),eK(this),ez(this);break e}}if(this.R){let t;for(e=!0;!this.K&&this.C<r.length;)if((t=function(e,t){var r=e.C,n=t.indexOf("\n",r);return -1==n?eM:isNaN(r=Number(t.substring(r,n)))?eL:(n+=1)+r>t.length?eM:(t=t.slice(n,n+r),e.C=n+r,t)}(this,r))==eM){4==d&&(this.m=4,eT(14),e=!1),ek(this.i,this.l,null,"[Incomplete Response]");break}else if(t==eL){this.m=4,eT(15),ek(this.i,this.l,r,"[Invalid Chunk]"),e=!1;break}else ek(this.i,this.l,t,null),e$(this,t);if(eU(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=d||0!=r.length||this.h.h||(this.m=1,eT(16),e=!1),this.o=this.o&&e,e){if(r.length>0&&!this.W){this.W=!0;var c=this.j;c.g==this&&c.aa&&!c.P&&(c.j.info("Great, no buffering proxy detected. Bytes received: "+r.length),tz(c),c.P=!0,eT(11))}}else ek(this.i,this.l,r,"[Invalid Chunked Response]"),eK(this),ez(this)}else ek(this.i,this.l,r,null),e$(this,r);4==d&&eK(this),this.o&&!this.K&&(4==d?tG(this.j,this):(this.o=!1,eB(this)))}else(function(e){let t={};e=(e.g&&tD(e)>=2&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let n=0;n<e.length;n++){if(L(e[n]))continue;var r=function(e){var t=1;e=e.split(":");let r=[];for(;t>0&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r}(e[n]);let i=r[0];if("string"!=typeof(r=r[1]))continue;r=r.trim();let s=t[i]||[];t[i]=s,s.push(r)}var n=function(e){return e.join(", ")};for(let e in t)n.call(void 0,t[e],e,t)})(this.g),400==t&&r.indexOf("Unknown SID")>0?(this.m=3,eT(12)):(this.m=0,eT(13)),eK(this),ez(this)}}}catch(e){}finally{}},eP.prototype.cancel=function(){this.K=!0,eK(this)},eP.prototype.aa=function(){var e,t;this.D=null;let r=Date.now();r-this.T>=0?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(eE(),eT(17)),eK(this),this.m=2,ez(this)):ej(this,this.T-r)};var eG=class{constructor(e,t){this.g=e,this.map=t}};function eH(e){this.l=e||10,e=p.PerformanceNavigationTiming?(e=p.performance.getEntriesByType("navigation")).length>0&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(p.chrome&&p.chrome.loadTimes&&p.chrome.loadTimes()&&p.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,this.j>1&&(this.g=new Set),this.h=null,this.i=[]}function eW(e){return!!e.h||!!e.g&&e.g.size>=e.j}function eQ(e){return e.h?1:e.g?e.g.size:0}function eJ(e,t){return e.h?e.h==t:!!e.g&&e.g.has(t)}function eY(e,t){e.g?e.g.add(t):e.h=t}function eX(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function eZ(e){if(null!=e.h)return e.i.concat(e.h.G);if(null!=e.g&&0!==e.g.size){let t=e.i;for(let r of e.g.values())t=t.concat(r.G);return t}return b(e.i)}eH.prototype.cancel=function(){if(this.i=eZ(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(let e of this.g.values())e.cancel();this.g.clear()}};var e0=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function e1(e){let t;this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1,e instanceof e1?(this.l=e.l,e3(this,e.j),this.o=e.o,this.g=e.g,e4(this,e.u),this.h=e.h,e5(this,td(e.i)),this.m=e.m):e&&(t=String(e).match(e0))?(this.l=!1,e3(this,t[1]||"",!0),this.o=e9(t[2]||""),this.g=e9(t[3]||"",!0),e4(this,t[4]),this.h=e9(t[5]||"",!0),e5(this,t[6]||"",!0),this.m=e9(t[7]||"")):(this.l=!1,this.i=new ta(null,this.l))}function e2(e){return new e1(e)}function e3(e,t,r){e.j=r?e9(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function e4(e,t){if(t){if(isNaN(t=Number(t))||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function e5(e,t,r){var n,i;t instanceof ta?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(to(n),n.i=null,n.g.forEach(function(e,t){let r=t.toLowerCase();t!=r&&(tl(this,t),tc(this,r,e))},n)),n.j=i):(r||(t=e7(t,ti)),e.i=new ta(t,e.l))}function e6(e,t,r){e.i.set(t,r)}function e8(e){return e6(e,"zx",Math.floor(0x80000000*Math.random()).toString(36)+Math.abs(Math.floor(0x80000000*Math.random())^Date.now()).toString(36)),e}function e9(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function e7(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,te),r&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function te(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}e1.prototype.toString=function(){let e=[];var t=this.j;t&&e.push(e7(t,tt,!0),":");var r=this.g;return(r||"file"==t)&&(e.push("//"),(t=this.o)&&e.push(e7(t,tt,!0),"@"),e.push(eR(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(e7(r,"/"==r.charAt(0)?tn:tr,!0))
1),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",e7(r,ts)),e.join("")},e1.prototype.resolve=function(e){let t=e2(this),r=!!e.j;r?e3(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)e4(t,e.u);else if(r=!!e.h){if("/"!=n.charAt(0))if(this.g&&!this.h)n="/"+n;else{var i=t.h.lastIndexOf("/");-1!=i&&(n=t.h.slice(0,i+1)+n)}if(".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){n=0==i.lastIndexOf("/",0),i=i.split("/");let e=[];for(let t=0;t<i.length;){let r=i[t++];"."==r?n&&t==i.length&&e.push(""):".."==r?((e.length>1||1==e.length&&""!=e[0])&&e.pop(),n&&t==i.length&&e.push("")):(e.push(r),n=!0)}n=e.join("/")}else n=i}return r?t.h=n:r=""!==e.i.toString(),r?e5(t,td(e.i)):r=!!e.m,r&&(t.m=e.m),t};var tt=/[#\/\?@]/g,tr=/[#\?:]/g,tn=/[#\?]/g,ti=/[#\?@]/g,ts=/#/g;function ta(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function to(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,t){if(e){e=e.split("&");for(let r=0;r<e.length;r++){let n=e[r].indexOf("="),i,s=null;n>=0?(i=e[r].substring(0,n),s=e[r].substring(n+1)):i=e[r],t(i,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(e.i,function(t,r){e.add(decodeURIComponent(t.replace(/\+/g," ")),r)}))}function tl(e,t){to(e),t=tf(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function tu(e,t){return to(e),t=tf(e,t),e.g.has(t)}function th(e,t){to(e);let r=[];if("string"==typeof t)tu(e,t)&&(r=r.concat(e.g.get(tf(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function tc(e,t,r){tl(e,t),r.length>0&&(e.i=null,e.g.set(tf(e,t),b(r)),e.h+=r.length)}function td(e){let t=new ta;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function tf(e,t){return t=String(t),e.j&&(t=t.toLowerCase()),t}function tp(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function tg(){this.g=new ed}function tm(e){this.i=e.Sb||null,this.h=e.ab||!1}function ty(e,t){en.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 tv(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function tw(e){e.readyState=4,e.l=null,e.j=null,e.B=null,tI(e)}function tI(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function tb(e){let t="";return j(e,function(e,r){t+=r,t+=":",t+=e,t+="\r\n"}),t}function tE(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=tb(r),"string"==typeof e?null!=r&&eR(r):e6(e,t,r))}function t_(e){en.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}(t=ta.prototype).add=function(e,t){to(this),this.i=null,e=tf(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},t.forEach=function(e,t){to(this),this.g.forEach(function(r,n){r.forEach(function(r){e.call(t,r,n,this)},this)},this)},t.set=function(e,t){return to(this),this.i=null,tu(this,e=tf(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},t.get=function(e,t){return e&&(e=th(this,e)).length>0?String(e[0]):t},t.toString=function(){if(this.i)return this.i;if(!this.g)return"";let e=[],t=Array.from(this.g.keys());for(let n=0;n<t.length;n++){var r=t[n];let i=eR(r);r=th(this,r);for(let t=0;t<r.length;t++){let n=i;""!==r[t]&&(n+="="+eR(r[t])),e.push(n)}}return this.i=e.join("&")},w(tm,ef),tm.prototype.g=function(){return new ty(this.i,this.h)},w(ty,en),(t=ty.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,tI(this)},t.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;let t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||p).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},t.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(()=>{}),this.readyState>=1&&this.g&&4!=this.readyState&&(this.g=!1,tw(this)),this.readyState=0},t.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,tI(this)),this.g&&(this.readyState=3,tI(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==p.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;tv(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},t.Ma=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var t=e.value?e.value:new Uint8Array(0);(t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t)}e.done?tw(this):tI(this),3==this.readyState&&tv(this)}},t.Oa=function(e){this.g&&(this.response=this.responseText=e,tw(this))},t.Na=function(e){this.g&&(this.response=e,tw(this))},t.ga=function(){this.g&&tw(this)},t.setRequestHeader=function(e,t){this.A.append(e,t)},t.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},t.getAllResponseHeaders=function(){if(!this.h)return"";let e=[],t=this.h.entries();for(var r=t.next();!r.done;)e.push((r=r.value)[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(ty.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),w(t_,en);var tT=/^https?$/i,tS=["POST","PUT"];function tC(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,tA(e),tx(e)}function tA(e){e.A||(e.A=!0,ei(e,"complete"),ei(e,"error"))}function tk(e){if(e.h&&void 0!==f){if(e.v&&4==tD(e))setTimeout(e.Ca.bind(e),0);else if(ei(e,"readystatechange"),4==tD(e)){e.h=!1;try{let s=e.ca();switch(s){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var t,r,n=!0;break;default:n=!1}if(!(t=n)){if(r=0===s){let t=String(e.D).match(e0)[1]||null;!t&&p.self&&p.self.location&&(t=p.self.location.protocol.slice(0,-1)),r=!tT.test(t?t.toLowerCase():"")}t=r}if(t)ei(e,"complete"),ei(e,"success");else{e.o=6;try{var i=tD(e)>2?e.g.statusText:""}catch(e){i=""}e.l=i+" ["+e.ca()+"]",tA(e)}}finally{tx(e)}}}}function tx(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);let r=e.g;e.g=null,t||ei(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function tD(e){return e.g?e.g.readyState:0}function tN(e){try{if(!e.g)return null;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}}
1function tR(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function tP(e){this.za=0,this.i=[],this.j=new eA,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=tR("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=tR("baseRetryDelayMs",5e3,e),this.Za=tR("retryDelaySeedMs",1e4,e),this.Ta=tR("forwardChannelMaxRetries",2,e),this.va=tR("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 eH(e&&e.concurrentRequestLimit),this.Ba=new tg,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&&e.longPollingTimeout>0&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function tO(e){if(tM(e),3==e.I){var t=e.V++,r=e2(e.J);if(e6(r,"SID",e.M),e6(r,"RID",t),e6(r,"TYPE","terminate"),tU(e,r),(t=new eP(e,e.j,t)).M=2,t.A=e8(e2(r)),r=!1,p.navigator&&p.navigator.sendBeacon)try{r=p.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&p.Image&&((new Image).src=t.A,r=!0),r||(t.g=tY(t.j,null),t.g.ea(t.A)),t.F=Date.now(),eB(t)}tQ(e)}function tL(e){e.g&&(tz(e),e.g.cancel(),e.g=null)}function tM(e){tL(e),e.v&&(p.clearTimeout(e.v),e.v=null),t$(e),e.h.cancel(),e.m&&("number"==typeof e.m&&p.clearTimeout(e.m),e.m=null)}function tV(e){if(!eW(e.h)&&!e.m){e.m=!0;var t=e.Ea;A||D(),k||(A(),k=!0),x.add(t,e),e.D=0}}function tF(e,t){var r;r=t?t.l:e.V++;let n=e2(e.J);e6(n,"SID",e.M),e6(n,"RID",r),e6(n,"AID",e.K),tU(e,n),e.u&&e.o&&tE(n,e.u,e.o),r=new eP(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=tB(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),eY(e.h,r),eV(r,n,t)}function tU(e,t){e.H&&j(e.H,function(e,r){e6(t,r,e)}),e.l&&j({},function(e,r){e6(t,r,e)})}function tB(e,t,r){r=Math.min(e.i.length,r);let n=e.l?y(e.l.Ka,e.l,e):null;e:{var i=e.i;let t=-1;for(;;){let e=["count="+r];-1==t?r>0?(t=i[0].g,e.push("ofs="+t)):t=0:e.push("ofs="+t);let o=!0;for(let l=0;l<r;l++){var s=i[l].g;let r=i[l].map;if((s-=t)<0)t=Math.max(0,i[l].g-100),o=!1;else try{s="req"+s+"_";try{var a=r instanceof Map?r:Object.entries(r);for(let[t,r]of a){let n=r;g(r)&&(n=eh(r)),e.push(s+t+"="+encodeURIComponent(n))}}catch(t){throw e.push(s+"type="+encodeURIComponent("_badmap")),t}}catch(e){n&&n(r)}}if(o){a=e.join("&");break e}}a=void 0}return t.G=e=e.i.splice(0,r),a}function tj(e){if(!e.g&&!e.v){e.Y=1;var t=e.Da;A||D(),k||(A(),k=!0),x.add(t,e),e.A=0}}function tq(e){return!e.g&&!e.v&&!(e.A>=3)&&(e.Y++,e.v=eC(y(e.Da,e),tH(e,e.A)),e.A++,!0)}function tz(e){null!=e.B&&(p.clearTimeout(e.B),e.B=null)}function tK(e){e.g=new eP(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=e2(e.na);e6(t,"RID","rpc"),e6(t,"SID",e.M),e6(t,"AID",e.K),e6(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&e6(t,"TO",e.ia),e6(t,"TYPE","xmlhttp"),tU(e,t),e.u&&e.o&&tE(t,e.u,e.o),e.O&&(e.g.H=e.O);var r=e.g;e=e.ba,r.M=1,r.A=e8(e2(t)),r.u=null,r.R=!0,eF(r,e)}function t$(e){null!=e.C&&(p.clearTimeout(e.C),e.C=null)}function tG(e,t){var r,n=null;if(e.g==t){t$(e),tz(e),e.g=null;var i=2}else{if(!eJ(e.h,t))return;n=t.G,eX(e.h,t),i=1}if(0!=e.I){if(t.o)if(1==i){n=t.u?t.u.length:0,t=Date.now()-t.F;var s=e.D;ei(i=eI(),new eS(i,n)),tV(e)}else tj(e);else if(3==(s=t.m)||0==s&&t.X>0||!(1==i&&(r=t,!(eQ(e.h)>=e.h.j-!!e.m)&&(e.m?(e.i=r.G.concat(e.i),!0):1!=e.I&&2!=e.I&&!(e.D>=(e.Sa?0:e.Ta))&&(e.m=eC(y(e.Ea,e,r),tH(e,e.D)),e.D++,!0)))||2==i&&tq(e)))switch(n&&n.length>0&&((t=e.h).i=t.i.concat(n)),s){case 1:tW(e,5);break;case 4:tW(e,10);break;case 3:tW(e,6);break;default:tW(e,2)}}}function tH(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function tW(e,t){if(e.j.info("Error code "+t),2==t){let t,s,a;var r,n=y(e.bb,e),i=e.Ua;let o=!i;i=new e1(i||"//www.google.com/images/cleardot.gif"),p.location&&"http"==p.location.protocol||e3(i,"https"),e8(i),o?function(e,t){let r=new eA;if(p.Image){let n=new Image;n.onload=v(tp,r,"TestLoadImage: loaded",!0,t,n),n.onerror=v(tp,r,"TestLoadImage: error",!1,t,n),n.onabort=v(tp,r,"TestLoadImage: abort",!1,t,n),n.ontimeout=v(tp,r,"TestLoadImage: timeout",!1,t,n),p.setTimeout(function(){n.ontimeout&&n.ontimeout()},1e4),n.src=e}else t(!1)}(i.toString(),n):(r=i.toString(),t=new eA,s=new AbortController,a=setTimeout(()=>{s.abort(),tp(t,"TestPingServer: timeout",!1,n)},1e4),fetch(r,{signal:s.signal}).then(e=>{clearTimeout(a),e.ok?tp(t,"TestPingServer: ok",!0,n):tp(t,"TestPingServer: server error",!1,n)}).catch(()=>{clearTimeout(a),tp(t,"TestPingServer: error",!1,n)}))}else eT(2);e.I=0,e.l&&e.l.pa(t),tQ(e),tM(e)}function tQ(e){if(e.I=0,e.ja=[],e.l){let t=eZ(e.h);(0!=t.length||0!=e.i.length)&&(E(e.ja,t),E(e.ja,e.i),e.h.i.length=0,b(e.i),e.i.length=0),e.l.oa()}}
1function tJ(e,t,r){var n=r instanceof e1?e2(r):new e1(r);if(""!=n.g)t&&(n.g=t+"."+n.g),e4(n,n.u);else{var i=p.location;n=i.protocol,t=t?t+"."+i.hostname:i.hostname,i=+i.port;let e=new e1(null);n&&e3(e,n),t&&(e.g=t),i&&e4(e,i),r&&(e.h=r),n=e}return r=e.G,t=e.wa,r&&t&&e6(n,r,t),e6(n,"VER",e.ka),tU(e,n),n}function tY(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=new t_(e.Aa&&!e.ma?new tm({ab:r}):e.ma)).Fa(e.L),t}function tX(){}function tZ(){}function t0(e,t){en.call(this),this.g=new tP(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)&&!L(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!L(t)&&(this.g.G=t,null!==(e=this.h)&&t in e&&t in(e=this.h)&&delete e[t]),this.j=new t3(this)}function t1(e){em.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(let 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 t2(){ey.call(this),this.status=1}function t3(e){this.g=e}(t=t_.prototype).Fa=function(e){this.H=e},t.ea=function(t,r,n,i){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+t);r=r?r.toUpperCase():"GET",this.D=t,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=this.L?this.L.g():e.g(),this.g.onreadystatechange=I(y(this.Ca,this));try{this.B=!0,this.g.open(r,String(t),!0),this.B=!1}catch(e){tC(this,e);return}if(t=n||"",n=new Map(this.headers),i)if(Object.getPrototypeOf(i)===Object.prototype)for(var s in i)n.set(s,i[s]);else if("function"==typeof i.keys&&"function"==typeof i.get)for(let e of i.keys())n.set(e,i.get(e));else throw Error("Unknown input type for opt_headers: "+String(i));for(let[e,a]of(i=Array.from(n.keys()).find(e=>"content-type"==e.toLowerCase()),s=p.FormData&&t instanceof p.FormData,!(Array.prototype.indexOf.call(tS,r,void 0)>=0)||i||s||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),n))this.g.setRequestHeader(e,a);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(t),this.v=!1}catch(e){tC(this,e)}},t.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,ei(this,"complete"),ei(this,"abort"),tx(this))},t.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),tx(this,!0)),t_.Z.N.call(this)},t.Ca=function(){this.u||(this.B||this.v||this.j?tk(this):this.Xa())},t.Xa=function(){tk(this)},t.isActive=function(){return!!this.g},t.ca=function(){try{return tD(this)>2?this.g.status:-1}catch(e){return -1}},t.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},t.La=function(e){if(this.g){var t=this.g.responseText;return e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ec(t)}},t.ya=function(){return this.o},t.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(t=tP.prototype).ka=8,t.I=1,t.connect=function(e,t,r,n){eT(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=tJ(this,null,this.W),tV(this)},t.Ea=function(e){if(this.m)if(this.m=null,1==this.I){if(!e){this.V=Math.floor(1e5*Math.random()),e=this.V++;let i=new eP(this,this.j,e),s=this.o;if(this.U&&(s?K(s=q(s),this.U):s=this.U),null!==this.u||this.R||(i.J=s,s=null),this.S)e:{for(var t=0,r=0;r<this.i.length;r++){t:{var n=this.i[r];if("__data__"in n.map&&"string"==typeof(n=n.map.__data__)){n=n.length;break t}n=void 0}if(void 0===n)break;if((t+=n)>4096){t=r;break e}if(4096===t||r===this.i.length-1){t=r+1;break e}}t=1e3}else t=1e3;t=tB(this,i,t),e6(r=e2(this.J),"RID",e),e6(r,"CVER",22),this.G&&e6(r,"X-HTTP-Session-Id",this.G),tU(this,r),s&&(this.R?t="headers="+eR(tb(s))+"&"+t:this.u&&tE(r,this.u,s)),eY(this.h,i),this.Ra&&e6(r,"TYPE","init"),this.S?(e6(r,"$req",t),e6(r,"SID","null"),i.U=!0,eV(i,r,null)):eV(i,r,t),this.I=2}}else 3==this.I&&(e?tF(this,e):0==this.i.length||eW(this.h)||tF(this))}
1,t.Da=function(){if(this.v=null,tK(this),this.aa&&!(this.P||null==this.g||this.T<=0)){var e=4*this.T;this.j.info("BP detection timer enabled: "+e),this.B=eC(y(this.Wa,this),e)}},t.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,eT(10),tL(this),tK(this))},t.Va=function(){null!=this.C&&(this.C=null,tL(this),tq(this),eT(19))},t.bb=function(e){e?(this.j.info("Successfully pinged google.com"),eT(2)):(this.j.info("Failed to ping google.com"),eT(1))},t.isActive=function(){return!!this.l&&this.l.isActive(this)},(t=tX.prototype).ra=function(){},t.qa=function(){},t.pa=function(){},t.oa=function(){},t.isActive=function(){return!0},t.Ka=function(){},tZ.prototype.g=function(e,t){return new t0(e,t)},w(t0,en),t0.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},t0.prototype.close=function(){tO(this.g)},t0.prototype.o=function(e){var t=this.g;if("string"==typeof e){var r={};r.__data__=e,e=r}else this.v&&((r={}).__data__=eh(e),e=r);t.i.push(new eG(t.Ya++,e)),3==t.I&&tV(t)},t0.prototype.N=function(){this.g.l=null,delete this.j,tO(this.g),delete this.g,t0.Z.N.call(this)},w(t1,em),w(t2,ey),w(t3,tX),t3.prototype.ra=function(){ei(this.g,"a")},t3.prototype.qa=function(e){ei(this.g,new t1(e))},t3.prototype.pa=function(e){ei(this.g,new t2)},t3.prototype.oa=function(){ei(this.g,"b")},tZ.prototype.createWebChannel=tZ.prototype.g,t0.prototype.send=t0.prototype.o,t0.prototype.open=t0.prototype.m,t0.prototype.close=t0.prototype.close,h=T.createWebChannelTransport=function(){return new tZ},u=T.getStatEventTarget=function(){return eI()},l=T.Event=ev,o=T.Stat={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},ex.NO_ERROR=0,ex.TIMEOUT=8,ex.HTTP_ERROR=6,a=T.ErrorCode=ex,eD.COMPLETE="complete",s=T.EventType=eD,ep.EventType=eg,eg.OPEN="a",eg.CLOSE="b",eg.ERROR="c",eg.MESSAGE="d",en.prototype.listen=en.prototype.J,i=T.WebChannel=ep,T.FetchXmlHttpFactory=tm,t_.prototype.listenOnce=t_.prototype.K,t_.prototype.getLastError=t_.prototype.Ha,t_.prototype.getLastErrorCode=t_.prototype.ya,t_.prototype.getStatus=t_.prototype.ca,t_.prototype.getResponseJson=t_.prototype.La,t_.prototype.getResponseText=t_.prototype.la,t_.prototype.send=t_.prototype.ea,t_.prototype.setWithCredentials=t_.prototype.Fa,n=T.XhrIo=t_}).apply(void 0!==_?_:"u">typeof self?self:"u">typeof window?window:{});class S{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}}S.UNAUTHENTICATED=new S(null),S.GOOGLE_CREDENTIALS=new S("google-credentials-uid"),S.FIRST_PARTY=new S("first-party-uid"),S.MOCK_USER=new S("mock-user");let C="12.12.0";function A(e){C=e}let k=new E.Logger("@firebase/firestore");function x(){return k.logLevel}function D(e,...t){if(k.logLevel<=E.LogLevel.DEBUG){let r=t.map(P);k.debug(`Firestore (${C}): ${e}`,...r)}}function N(e,...t){if(k.logLevel<=E.LogLevel.ERROR){let r=t.map(P);k.error(`Firestore (${C}): ${e}`,...r)}}function R(e,...t){if(k.logLevel<=E.LogLevel.WARN){let r=t.map(P);k.warn(`Firestore (${C}): ${e}`,...r)}}function P(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(t){return e}}function O(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,L(e,n,r)}function L(e,t,r){let n=`FIRESTORE (${C}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw N(n),Error(n)}function M(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||L(t,i,n)}let V={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",UNIMPLEMENT
1ED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class F extends w.FirebaseError{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class U{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class B{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class j{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(S.UNAUTHENTICATED))}shutdown(){}}class q{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 z{constructor(e){this.t=e,this.currentUser=S.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,t){M(void 0===this.o,42304);let r=this.i,n=e=>this.i!==r?(r=this.i,t(e)):Promise.resolve(),i=new U;this.o=()=>{this.i++,this.currentUser=this.u(),i.resolve(),i=new U,e.enqueueRetryable(()=>n(this.currentUser))};let s=()=>{let t=i;e.enqueueRetryable(async()=>{await t.promise,await n(this.currentUser)})},a=e=>{D("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),s())};this.t.onInit(e=>a(e)),setTimeout(()=>{if(!this.auth){let e=this.t.getImmediate({optional:!0});e?a(e):(D("FirebaseAuthCredentialsProvider","Auth not yet detected"),i.resolve(),i=new U)}},0),s()}getToken(){let e=this.i,t=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(t).then(t=>this.i!==e?(D("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):t?(M("string"==typeof t.accessToken,31837,{l:t}),new B(t.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(){let e=this.auth&&this.auth.getUid();return M(null===e||"string"==typeof e,2055,{h:e}),new S(e)}}class K{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=S.FIRST_PARTY,this.R=new Map}A(){return this.I?this.I():null}get headers(){this.R.set("X-Goog-AuthUser",this.P);let e=this.A();return e&&this.R.set("Authorization",e),this.T&&this.R.set("X-Goog-Iam-Authorization-Token",this.T),this.R}}class ${constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new K(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(S.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class G{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class H{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,(0,g._isFirebaseServerApp)(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(e,t){M(void 0===this.o,3512);let r=e=>{null!=e.error&&D("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);let r=e.token!==this.m;return this.m=e.token,D("FirebaseAppCheckTokenProvider",`Received ${r?"new":"existing"} token.`),r?t(e.token):Promise.resolve()};this.o=t=>{e.enqueueRetryable(()=>r(t))};let n=e=>{D("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.V.onInit(e=>n(e)),setTimeout(()=>{if(!this.appCheck){let e=this.V.getImmediate({optional:!0});e?n(e):D("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){if(this.p)return Promise.resolve(new G(this.p));let e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(M("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new G(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 W{static newId(){let e=62*Math.floor(256/62),t="";for(;t.length<20;){let r=function(){let e="u">typeof self&&(self.crypto||self.msCrypto),t=new Uint8Array(40);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(t);else for(let e=0;e<40;
1e++)t[e]=Math.floor(256*Math.random());return t}();for(let n=0;n<r.length;++n)t.length<20&&r[n]<e&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(r[n]%62))}return t}}function Q(e,t){return e<t?-1:+(e>t)}function J(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=e.charAt(n),i=t.charAt(n);if(r!==i)return Y(r)===Y(i)?Q(r,i):Y(r)?1:-1}return Q(e.length,t.length)}function Y(e){let t=e.charCodeAt(0);return t>=55296&&t<=57343}function X(e,t,r){return e.length===t.length&&e.every((e,n)=>r(e,t[n]))}let Z="__name__";class ee{constructor(e,t,r){void 0===t?t=0:t>e.length&&O(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&O(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===ee.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof ee?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+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(e,t){let r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=ee.compareSegments(e.get(n),t.get(n));if(0!==r)return r}return Q(e.length,t.length)}static compareSegments(e,t){let r=ee.isNumericId(e),n=ee.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?ee.extractNumericId(e).compare(ee.extractNumericId(t)):J(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return t.fromString(e.substring(4,e.length-2))}}class et extends ee{construct(e,t,r){return new et(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){let t=[];for(let r of e){if(r.indexOf("//")>=0)throw new F(V.INVALID_ARGUMENT,`Invalid segment (${r}). Paths must not contain // in them.`);t.push(...r.split("/").filter(e=>e.length>0))}return new et(t)}static emptyPath(){return new et([])}}let er=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class en extends ee{construct(e,t,r){return new en(e,t,r)}static isValidIdentifier(e){return er.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),en.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Z}static keyField(){return new en([Z])}static fromServerFormat(e){let t=[],r="",n=0,i=()=>{if(0===r.length)throw new F(V.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(r),r=""},s=!1;for(;n<e.length;){let t=e[n];if("\\"===t){if(n+1===e.length)throw new F(V.INVALID_ARGUMENT,"Path has trailing escape character: "+e);let t=e[n+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new F(V.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);r+=t,n+=2}else"`"===t?s=!s:"."!==t||s?r+=t:i(),n++}if(i(),s)throw new F(V.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new en(t)}static emptyPath(){return new en([])}}class ei{constructor(e){this.path=e}static fromPath(e){return new ei(et.fromString(e))}static fromName(e){return new ei(et.fromString(e).popFirst(5))}static empty(){return new ei(et.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&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===et.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return et.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new ei(new et(e.slice()))}}function es(e,t,r){if(!r)throw new F(V.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function ea(e){if(!ei.isDocumentKey(e))throw new F(V.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function eo(e){if(ei.isDocumentKey(e))throw new F(V.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function el(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function eu(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{var t;let r=(t=e).constructor?t.constructor.name:null;return r?`a custom ${r} object`:"an object"}}return"function"==typeof e?"a function":O(12329,{type:typeof e})}function eh(e,t){if("_delegate"in e&&(e=e._delegate),!(e instanceof t)){if(t.name===e.constructor.name)throw new F(V.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{let r=eu(e);throw new F(V.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${r}`)}}return e}function ec(e,t){let r={typeString:e};return t&&(r.value=t),r}function ed(e,t){let r;if(!el(e))throw new F(V.INVALID_ARGUMENT,"JSON must be an object");for(let n in t)if(t[n]){let 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}let 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 F(V.INVALID_ARGUMENT,r);return!0}class ef{static now(){return ef.fromMillis(Date.now())}static fromDate(e){return ef.fromMillis(e.getTime())}static fromMillis(e){let t=Math.floor(e/1e3),r=Math.floor((e-1e3*t)*1e6);return new ef(t,r)}constructor(e,t){if(this.seconds=e,this.nanoseconds=t,t<0||t>=1e9)throw new F(V.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-0xe7791f700||e>=0x3afff44180)throw new F(V.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?Q(this.nanoseconds,e.nanoseconds):Q(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:ef._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(ed(e,ef._jsonSchema))return new ef(e.seconds,e.nanoseconds)}valueOf(){return String(this.seconds- -0xe7791f700).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}
1}ef._jsonSchemaVersion="firestore/timestamp/1.0",ef._jsonSchema={type:ec("string",ef._jsonSchemaVersion),seconds:ec("number"),nanoseconds:ec("number")};class ep{static fromTimestamp(e){return new ep(e)}static min(){return new ep(new ef(0,0))}static max(){return new ep(new ef(0x3afff4417f,0x3b9ac9ff))}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}}class eg{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function em(e){return e.fields.find(e=>2===e.kind)}function ey(e){return e.fields.filter(e=>2!==e.kind)}function ev(e,t){let r=Q(e.collectionGroup,t.collectionGroup);if(0!==r)return r;for(let n=0;n<Math.min(e.fields.length,t.fields.length);++n)if(0!==(r=function(e,t){let r=en.comparator(e.fieldPath,t.fieldPath);return 0!==r?r:Q(e.kind,t.kind)}(e.fields[n],t.fields[n])))return r;return Q(e.fields.length,t.fields.length)}eg.UNKNOWN_ID=-1;class ew{constructor(e,t){this.fieldPath=e,this.kind=t}}class eI{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new eI(0,e_.min())}}function eb(e,t){let r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1;return new e_(ep.fromTimestamp(1e9===n?new ef(r+1,0):new ef(r,n)),ei.empty(),t)}function eE(e){return new e_(e.readTime,e.key,-1)}class e_{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new e_(ep.min(),ei.empty(),-1)}static max(){return new e_(ep.max(),ei.empty(),-1)}}function eT(e,t){let r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=ei.comparator(e.documentKey,t.documentKey))?r:Q(e.largestBatchId,t.largestBatchId)}let eS="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class eC{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function eA(e){if(e.code!==V.FAILED_PRECONDITION||e.message!==eS)throw e;D("LocalStore","Unexpectedly lost primary lease")}class ek{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(e,t){return this.callbackAttached&&O(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(t,this.error):this.wrapSuccess(e,this.result):new ek((r,n)=>{this.nextCallback=t=>{this.wrapSuccess(e,t).next(r,n)},this.catchCallback=e=>{this.wrapFailure(t,e).next(r,n)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{let t=e();return t instanceof ek?t:ek.resolve(t)}catch(e){return ek.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):ek.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):ek.reject(t)}static resolve(e){return new ek((t,r)=>{t(e)})}static reject(e){return new ek((t,r)=>{r(e)})}static waitFor(e){return new ek((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=ek.resolve(!1);for(let r of e)t=t.next(e=>e?ek.resolve(e):r());return t}static forEach(e,t){let r=[];return e.forEach((e,n)=>{r.push(t.call(this,e,n))}),this.waitFor(r)}static mapArray(e,t){return new ek((r,n)=>{let i=e.length,s=Array(i),a=0;for(let o=0;o<i;o++){let l=o;t(e[l]).next(e=>{s[l]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(e,t){return new ek((r,n)=>{let i=()=>{!0===e()?t().next(()=>{i()},n):r()};i()})}}let ex="SimpleDb";class eD{static open(e,t,r,n){try{return new eD(t,e.transaction(n,r))}catch(e){throw new eO(t,e)}}constructor(e,t){this.action=e,this.transaction=t,this.aborted=!1,this.S=new U,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{t.error?this.S.reject(new eO(e,t.error)):this.S.resolve()},this.transaction.onerror=t=>{let r=eU(t.target.error);this.S.reject(new eO(e,r))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(D(ex,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){let e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){return new eM(this.transaction.objectStore(e))}}class eN{static delete(e){return D(ex,"Removing database:",e),eV((0,w.getGlobal)().indexedDB.deleteDatabase(e)).toPromise()}static v(){if(!(0,w.isIndexedDBAvailable)())return!1;if(eN.F())return!0;
1let e=(0,w.getUA)(),t=eN.M(e),r=eR(e);return!(e.indexOf("MSIE ")>0||e.indexOf("Trident/")>0||e.indexOf("Edge/")>0||0<t&&t<10||0<r&&r<4.5)}static F(){return void 0!==y.default&&"YES"===y.default.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){let t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i);return Number(t?t[1].split("_").slice(0,2).join("."):"-1")}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===eN.M((0,w.getUA)())&&N("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(e){return this.db||(D(ex,"Opening database:",this.name),this.db=await new Promise((t,r)=>{let n=indexedDB.open(this.name,this.version);n.onsuccess=e=>{t(e.target.result)},n.onblocked=()=>{r(new eO(e,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},n.onerror=t=>{let n=t.target.error;"VersionError"===n.name?r(new F(V.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"===n.name?r(new F(V.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: "+n)):r(new eO(e,n))},n.onupgradeneeded=e=>{D(ex,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);let t=e.target.result;this.N.k(t,n.transaction,e.oldVersion,this.version).next(()=>{D(ex,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}K(e){this.q=e,this.db&&(this.db.onversionchange=t=>e(t))}async runTransaction(e,t,r,n){let i="readonly"===t,s=0;for(;;){++s;try{this.db=await this.L(e);let t=eD.open(this.db,e,i?"readonly":"readwrite",r),s=n(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),ek.reject(e))).toPromise();return s.catch(()=>{}),await t.D,s}catch(t){let e="FirebaseError"!==t.name&&s<3;if(D(ex,"Transaction failed with error:",t.message,"Retrying:",e),this.close(),!e)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}function eR(e){let t=e.match(/Android ([\d.]+)/i);return Number(t?t[1].split(".").slice(0,2).join("."):"-1")}class eP{constructor(e){this.U=e,this.$=!1,this.W=null}get isDone(){return this.$}get G(){return this.W}set cursor(e){this.U=e}done(){this.$=!0}j(e){this.W=e}delete(){return eV(this.U.delete())}}class eO extends F{constructor(e,t){super(V.UNAVAILABLE,`IndexedDB transaction '${e}' failed: ${t}`),this.name="IndexedDbTransactionError"}}function eL(e){return"IndexedDbTransactionError"===e.name}class eM{constructor(e){this.store=e}put(e,t){let r;return void 0!==t?(D(ex,"PUT",this.store.name,e,t),r=this.store.put(t,e)):(D(ex,"PUT",this.store.name,"<auto-key>",e),r=this.store.put(e)),eV(r)}add(e){return D(ex,"ADD",this.store.name,e,e),eV(this.store.add(e))}get(e){return eV(this.store.get(e)).next(t=>(void 0===t&&(t=null),D(ex,"GET",this.store.name,e,t),t))}delete(e){return D(ex,"DELETE",this.store.name,e),eV(this.store.delete(e))}count(){return D(ex,"COUNT",this.store.name),eV(this.store.count())}J(e,t){let r=this.options(e,t),n=r.index?this.store.index(r.index):this.store;if("function"==typeof n.getAll){let e=n.getAll(r.range);return new ek((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(r),t=[];return this.H(e,(e,r)=>{t.push(r)}).next(()=>t)}}Z(e,t){let r=this.store.getAll(e,null===t?void 0:t);return new ek((e,t)=>{r.onerror=e=>{t(e.target.error)},r.onsuccess=t=>{e(t.target.result)}})}X(e,t){D(ex,"DELETE ALL",this.store.name);let r=this.options(e,t);r.Y=!1;let n=this.cursor(r);return this.H(n,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);let n=this.cursor(r);return this.H(n,t)}te(e){let t=this.cursor({});return new ek((r,n)=>{t.onerror=e=>{n(eU(e.target.error))},t.onsuccess=t=>{let n=t.target.result;n?e(n.primaryKey,n.value).next(e=>{e?n.continue():r()}):r()}})}H(e,t){let r=[];return new ek((n,i)=>{e.onerror=e=>{i(e.target.error)},e.onsuccess=e=>{let i=e.target.result;if(!i)return void n();let s=new eP(i),a=t(i.primaryKey,i.value,s);if(a instanceof ek){let e=a.catch(e=>(s.done(),ek.reject(e)));r.push(e)}s.isDone?n():null===s.G?i.continue():i.continue(s.G)}}).next(()=>ek.waitFor(r))}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";if(e.reverse&&(t="prev"),e.index){let r=this.store.index(e.index);return e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)}return this.store.openCursor(e.range,t)}}function eV(e){return new ek((t,r)=>{e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(eU(e.target.error))}})}let eF=!1;function eU(e){let t=eN.M((0,w.getUA)());if(t>=12.2&&t<13){let t="An internal error was encountered in the Indexed Database server";if(e.message.indexOf(t)>=0){let e=new F("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 eF||(eF=!0,setTimeout(()=>{throw e},0)),e}}return e}let eB="IndexBackfiller";class ej{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){D(eB,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{let e=await this.ne.ie();D(eB,`Documents written: ${e}`)}catch(e){eL(e)?D(eB,"Ignoring IndexedDB error during index backfill: ",e):await eA(e)}await this.re(6e4)})}}class eq{constructor(e,t){this.localStore=e,this.persistence=t}async ie(e=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",t=>this.se(t,e))}se(e,t){let r=new Set,n=t,i=!0;
1return ek.doWhile(()=>!0===i&&n>0,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return D(eB,`Processing collection: ${t}`),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(e,t,r){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(e,t).next(n=>this.localStore.localDocuments.getNextDocuments(e,t,n,r).next(r=>{let i=r.changes;return this.localStore.indexManager.updateIndexEntries(e,i).next(()=>this._e(n,r)).next(r=>(D(eB,`Updating offset: ${r}`),this.localStore.indexManager.updateCollectionGroup(e,t,r))).next(()=>i.size)}))}_e(e,t){let r=e;return t.changes.forEach((e,t)=>{let n=eE(t);eT(n,r)>0&&(r=n)}),new e_(r.readTime,r.documentKey,Math.max(t.batchId,e.largestBatchId))}}class ez{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(){let e=++this.previousValue;return this.ue&&this.ue(e),e}}function eK(e){return null==e}function e$(e){return 0===e&&1/e==-1/0}function eG(e){return"number"==typeof e&&Number.isInteger(e)&&!e$(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}function eH(e){let t="";for(let r=0;r<e.length;r++)t.length>0&&(t+="\x01\x01"),t=function(e,t){let r=t,n=e.length;for(let t=0;t<n;t++){let n=e.charAt(t);switch(n){case"\0":r+="\x01\x10";break;case"\x01":r+="\x01\x11";break;default:r+=n}}return r}(e.get(r),t);return t+"\x01\x01"}ez.ce=-1;function eW(e){let t=e.length;if(M(t>=2,64408,{path:e}),2===t)return M("\x01"===e.charAt(0)&&"\x01"===e.charAt(1),56145,{path:e}),et.emptyPath();let r=t-2,n=[],i="";for(let s=0;s<t;){let t=e.indexOf("\x01",s);switch((t<0||t>r)&&O(50515,{path:e}),e.charAt(t+1)){case"\x01":let a,o=e.substring(s,t);0===i.length?a=o:(i+=o,a=i,i=""),n.push(a);break;case"\x10":i+=e.substring(s,t),i+="\0";break;case"\x11":i+=e.substring(s,t+1);break;default:O(61167,{path:e})}s=t+2}return new et(n)}let eQ="remoteDocuments",eJ="owner",eY="owner",eX="mutationQueues",eZ="mutations",e0="batchId",e1="userMutationsIndex",e2=["userId","batchId"],e3={},e4="documentMutations",e5="remoteDocumentsV14",e6=["prefixPath","collectionGroup","readTime","documentId"],e8="documentKeyIndex",e9=["prefixPath","collectionGroup","documentId"],e7="collectionGroupIndex",te=["collectionGroup","readTime","prefixPath","documentId"],tt="remoteDocumentGlobal",tr="remoteDocumentGlobalKey",tn="targets",ti="queryTargetsIndex",ts=["canonicalId","targetId"],ta="targetDocuments",to=["targetId","path"],tl="documentTargetsIndex",tu=["path","targetId"],th="targetGlobalKey",tc="targetGlobal",td="collectionParents",tf=["collectionId","parent"],tp="clientMetadata",tg="bundles",tm="namedQueries",ty="indexConfiguration",tv="collectionGroupIndex",tw="indexState",tI=["indexId","uid"],tb="sequenceNumberIndex",tE=["uid","sequenceNumber"],t_="indexEntries",tT=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],tS="documentKeyIndex",tC=["indexId","uid","orderedDocumentKey"],tA="documentOverlays",tk=["userId","collectionPath","documentId"],tx="collectionPathOverlayIndex",tD=["userId","collectionPath","largestBatchId"],tN="collectionGroupOverlayIndex",tR=["userId","collectionGroup","largestBatchId"],tP="globals",tO=[eX,eZ,e4,eQ,tn,eJ,tc,ta,tp,tt,td,tg,tm],tL=[...tO,tA],tM=[eX,eZ,e4,e5,tn,eJ,tc,ta,tp,tt,td,tg,tm,tA],tV=[...tM,ty,tw,t_],tF=[...tV,tP];class tU extends eC{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function tB(e,t){return eN.O(e.le,t)}function tj(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function tq(e,t){for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function tz(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class tK{constructor(e,t){this.comparator=e,this.root=t||tG.EMPTY}insert(e,t){return new tK(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,tG.BLACK,null,null))}remove(e){return new tK(this.comparator,this.root.remove(e,this.comparator).copy(null,null,tG.BLACK,null,
1null))}get(e){let t=this.root;for(;!t.isEmpty();){let r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:r>0&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){let n=this.comparator(e,r.key);if(0===n)return t+r.left.size;n<0?r=r.left:(t+=r.left.size+1,r=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(e){this.inorderTraversal((t,r)=>(e(t,r),!1))}toString(){let e=[];return this.inorderTraversal((t,r)=>(e.push(`${t}:${r}`),!1)),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new t$(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new t$(this.root,e,this.comparator,!1)}getReverseIterator(){return new t$(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new t$(this.root,e,this.comparator,!0)}}class t${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(),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 this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;let e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class tG{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:tG.RED,this.left=null!=n?n:tG.EMPTY,this.right=null!=i?i:tG.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new tG(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){let 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 tG.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),(e=e.copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(0>t(e,n.key))n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()||(n=n.moveRedLeft()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed()&&(n=n.rotateRight()),n.right.isEmpty()||n.right.isRed()||n.right.left.isRed()||(n=n.moveRedRight()),0===t(e,n.key)){if(n.right.isEmpty())return tG.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.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=(e=e.rotateRight()).colorFlip()),e}rotateLeft(){let e=this.copy(null,null,tG.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){let e=this.copy(null,null,tG.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){let 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(){return Math.pow(2,this.check())<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw O(43730,{key:this.key,value:this.value});if(this.right.isRed())throw O(14113,{key:this.key,value:this.value});let e=this.left.check();if(e!==this.right.check())throw O(27949);return e+ +!this.isRed()}}
1tG.EMPTY=null,tG.RED=!0,tG.BLACK=!1,tG.EMPTY=new class{constructor(){this.size=0}get key(){throw O(57766)}get value(){throw O(16141)}get color(){throw O(16727)}get left(){throw O(29726)}get right(){throw O(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new tG(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 tH{constructor(e){this.comparator=e,this.data=new tK(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(e){this.data.inorderTraversal((t,r)=>(e(t),!1))}forEachInRange(e,t){let r=this.data.getIteratorFrom(e[0]);for(;r.hasNext();){let n=r.getNext();if(this.comparator(n.key,e[1])>=0)return;t(n.key)}}forEachWhile(e,t){let r;for(r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){let t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new tW(this.data.getIterator())}getIteratorFrom(e){return new tW(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 tH)||this.size!==e.size)return!1;let t=this.data.getIterator(),r=e.data.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(0!==this.comparator(e,n))return!1}return!0}toArray(){let e=[];return this.forEach(t=>{e.push(t)}),e}toString(){let e=[];return this.forEach(t=>e.push(t)),"SortedSet("+e.toString()+")"}copy(e){let t=new tH(this.comparator);return t.data=e,t}}class tW{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function tQ(e){return e.hasNext()?e.getNext():void 0}class tJ{constructor(e){this.fields=e,e.sort(en.comparator)}static empty(){return new tJ([])}unionWith(e){let t=new tH(en.comparator);for(let e of this.fields)t=t.add(e);for(let r of e)t=t.add(r);return new tJ(t.toArray())}covers(e){for(let t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return X(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class tY extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class tX{constructor(e){this.binaryString=e}static fromBase64String(e){return new tX(function(e){try{return atob(e)}catch(e){throw"u">typeof DOMException&&e instanceof DOMException?new tY("Invalid base64 string: "+e):e}}(e))}static fromUint8Array(e){return new tX(function(e){let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t}(e))}[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 btoa(this.binaryString)}toUint8Array(){var e=this.binaryString;let 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 Q(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}tX.EMPTY_BYTE_STRING=new tX("");let tZ=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function t0(e){if(M(!!e,39018),"string"==typeof e){let t=0,r=tZ.exec(e);if(M(!!r,46558,{timestamp:e}),r[1]){let e=r[1];t=Number(e=(e+"000000000").substr(0,9))}return{seconds:Math.floor(new Date(e).getTime()/1e3),nanos:t}}return{seconds:t1(e.seconds),nanos:t1(e.nanos)}}function t1(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function t2(e){return"string"==typeof e?tX.fromBase64String(e):tX.fromUint8Array(e)}let t3="server_timestamp",t4="__type__",t5="__previous_value__",t6="__local_write_time__";function t8(e){return(e?.mapValue?.fields||{})[t4]?.stringValue===t3}function t9(e){let t=e.mapValue.fields[t5];return t8(t)?t9(t):t}function t7(e){let t=t0(e.mapValue.fields[t6].timestampValue);return new ef(t.seconds,t.nanos)}class re{constructor(e,t,r,n,i,s,a,o,l,u,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=u,this.apiKey=h}}let rt="(default)";class rr{constructor(e,t){this.projectId=e,this.database=t||rt}static empty(){return new rr("","")}get isDefaultDatabase(){return this.database===rt}isEqual(e){return e instanceof rr&&e.projectId===this.projectId&&e.database===this.database}}function rn(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new F(V.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new rr(e.options.projectId,t)}let ri="__type__",rs="__max__",ra={mapValue:{fields:{__type__:{stringValue:rs}}}},ro="__vector__",rl="value",ru={nullValue:"NULL_VALUE"};function rh(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?t8(e)?4:rS(e)?0x1fffffffffffff:r_(e)?10:11:O(28295,{value:e})}function rc(e,t){if(e===t)return!0;let r=rh(e);if(r!==rh(t))return!1;switch(r){case 0:case 0x1fffffffffffff:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return t7(e).isEqual(t7(t));case 3:if("string"==typeof e.timestampValue&&"string"==typeof t.timestampValue&&e.timestampValue.length===t.timestampValue.length)return e.timestampValue===t.timestampValue;let n=t0(e.timestampValue),i=t0(t.timestampValue);return n.seconds===i.seconds&&n.nanos===i.nanos;case 5:return e.stringValue===t.stringValue;case 6:return t2(e.bytesValue).isEqual(t2(t.bytesValue));case 7:return e.referenceValue===t.referenceValue;case 8:return t1(e.geoPointValue.latitude)===t1(t.geoPointValue.latitude)&&t1(e.geoPointValue.longitude)===t1(t.geoPointValue.longitude);case 2:if("integerValue"in e&&"integerValue"in t)return t1(e.integerValue)===t1(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){let r=t1(e.doubleValue),n=t1(t.doubleValue);return r===n?e$(r)===e$(n):isNaN(r)&&isNaN(n)}return!1;case 9:return X(e.arrayValue.values||[],t.arrayValue.values||[],rc);case 10:case 11:let s=e.mapValue.fields||{},a=t.mapValue.fields||{};
1if(tj(s)!==tj(a))return!1;for(let e in s)if(s.hasOwnProperty(e)&&(void 0===a[e]||!rc(s[e],a[e])))return!1;return!0;default:return O(52216,{left:e})}}function rd(e,t){return void 0!==(e.values||[]).find(e=>rc(e,t))}function rf(e,t){var r,n,i,s,a,o;if(e===t)return 0;let l=rh(e),u=rh(t);if(l!==u)return Q(l,u);switch(l){case 0:case 0x1fffffffffffff:return 0;case 1:return Q(e.booleanValue,t.booleanValue);case 2:let h,c;return h=t1(e.integerValue||e.doubleValue),h<(c=t1(t.integerValue||t.doubleValue))?-1:h>c?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return rp(e.timestampValue,t.timestampValue);case 4:return rp(t7(e),t7(t));case 5:return J(e.stringValue,t.stringValue);case 6:let d,f;return r=e.bytesValue,n=t.bytesValue,d=t2(r),f=t2(n),d.compareTo(f);case 7:return function(e,t){let r=e.split("/"),n=t.split("/");for(let e=0;e<r.length&&e<n.length;e++){let t=Q(r[e],n[e]);if(0!==t)return t}return Q(r.length,n.length)}(e.referenceValue,t.referenceValue);case 8:let p;return i=e.geoPointValue,s=t.geoPointValue,0!==(p=Q(t1(i.latitude),t1(s.latitude)))?p:Q(t1(i.longitude),t1(s.longitude));case 9:return rg(e.arrayValue,t.arrayValue);case 10:let g,m,y,v,w;return a=e.mapValue,o=t.mapValue,g=a.fields||{},m=o.fields||{},y=g[rl]?.arrayValue,v=m[rl]?.arrayValue,0!==(w=Q(y?.values?.length||0,v?.values?.length||0))?w:rg(y,v);case 11:return function(e,t){if(e===ra.mapValue&&t===ra.mapValue)return 0;if(e===ra.mapValue)return 1;if(t===ra.mapValue)return -1;let r=e.fields||{},n=Object.keys(r),i=t.fields||{},s=Object.keys(i);n.sort(),s.sort();for(let e=0;e<n.length&&e<s.length;++e){let t=J(n[e],s[e]);if(0!==t)return t;let a=rf(r[n[e]],i[s[e]]);if(0!==a)return a}return Q(n.length,s.length)}(e.mapValue,t.mapValue);default:throw O(23264,{he:l})}}function rp(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return Q(e,t);let r=t0(e),n=t0(t),i=Q(r.seconds,n.seconds);return 0!==i?i:Q(r.nanos,n.nanos)}function rg(e,t){let r=e.values||[],n=t.values||[];for(let e=0;e<r.length&&e<n.length;++e){let t=rf(r[e],n[e]);if(t)return t}return Q(r.length,n.length)}function rm(e){var t,r;let n;return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(n=t0(e.timestampValue),`time(${n.seconds},${n.nanos})`):"stringValue"in e?e.stringValue:"bytesValue"in e?t2(e.bytesValue).toBase64():"referenceValue"in e?(t=e.referenceValue,ei.fromName(t).toString()):"geoPointValue"in e?(r=e.geoPointValue,`geo(${r.latitude},${r.longitude})`):"arrayValue"in e?function(e){let t="[",r=!0;for(let n of e.values||[])r?r=!1:t+=",",t+=rm(n);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(let i of t)n?n=!1:r+=",",r+=`${i}:${rm(e.fields[i])}`;return r+"}"}(e.mapValue):O(61005,{value:e})}function ry(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function rv(e){return!!e&&"integerValue"in e}function rw(e){return!!e&&"arrayValue"in e}function rI(e){return!!e&&"nullValue"in e}function rb(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function rE(e){return!!e&&"mapValue"in e}function r_(e){return(e?.mapValue?.fields||{})[ri]?.stringValue===ro}function rT(e){if(e.geoPointValue)return{geoPointValue:{...e.geoPointValue}};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:{...e.timestampValue}};if(e.mapValue){let t={mapValue:{fields:{}}};return tq(e.mapValue.fields,(e,r)=>t.mapValue.fields[e]=rT(r)),t}if(e.arrayValue){let t={arrayValue:{values:[]}};for(let r=0;r<(e.arrayValue.values||[]).length;++r)t.arrayValue.values[r]=rT(e.arrayValue.values[r]);return t}return{...e}}function rS(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===rs}let rC={mapValue:{fields:{[ri]:{stringValue:ro},[rl]:{arrayValue:{}}}}};function rA(e,t){let r=rf(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function rk(e,t){let r=rf(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class rx{constructor(e){this.value=e}static empty(){return new rx({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let t=this.value;for(let r=0;r<e.length-1;++r)if(!rE(t=(t.mapValue.fields||{})[e.get(r)]))return null;return(t=(t.mapValue.fields||{})[e.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=rT(t)}setAll(e){let t=en.emptyPath(),r={},n=[];e.forEach((e,i)=>{if(!t.isImmediateParentOf(i)){let e=this.getFieldsMap(t);this.applyChanges(e,r,n),r={},n=[],t=i.popLast()}e?r[i.lastSegment()]=rT(e):n.push(i.lastSegment())});let i=this.getFieldsMap(t);this.applyChanges(i,r,n)}delete(e){let t=this.field(e.popLast());rE(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return rc(this.value,e.value)}getFieldsMap(e){let t=this.value;t.mapValue.fields||(t.mapValue={fields:{}});for(let r=0;r<e.length;++r){let n=t.mapValue.fields[e.get(r)];rE(n)&&n.mapValue.fields||(n={mapValue:{fields:{}}},t.mapValue.fields[e.get(r)]=n),t=n}return t.mapValue.fields}
1applyChanges(e,t,r){for(let n of(tq(t,(t,r)=>e[t]=r),r))delete e[n]}clone(){return new rx(rT(this.value))}}class rD{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 rD(e,0,ep.min(),ep.min(),ep.min(),rx.empty(),0)}static newFoundDocument(e,t,r,n){return new rD(e,1,t,ep.min(),r,n,0)}static newNoDocument(e,t){return new rD(e,2,t,ep.min(),ep.min(),rx.empty(),0)}static newUnknownDocument(e,t){return new rD(e,3,t,ep.min(),ep.min(),rx.empty(),2)}convertToFoundDocument(e,t){return this.createTime.isEqual(ep.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=rx.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=rx.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ep.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 rD&&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 rD(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 rN{constructor(e,t){this.position=e,this.inclusive=t}}function rR(e,t,r){let n=0;for(let i=0;i<e.position.length;i++){let s=t[i],a=e.position[i];if(n=s.field.isKeyField()?ei.comparator(ei.fromName(a.referenceValue),r.key):rf(a,r.data.field(s.field)),"desc"===s.dir&&(n*=-1),0!==n)break}return n}function rP(e,t){if(null===e)return null===t;if(null===t||e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!rc(e.position[r],t.position[r]))return!1;return!0}class rO{constructor(e,t="asc"){this.field=e,this.dir=t}}class rL{}class rM extends rL{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 rz(e,t,r):"array-contains"===t?new rH(e,r):"in"===t?new rW(e,r):"not-in"===t?new rQ(e,r):"array-contains-any"===t?new rJ(e,r):new rM(e,t,r)}static createKeyFieldInFilter(e,t,r){return"in"===t?new rK(e,r):new r$(e,r)}matches(e){let t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(rf(t,this.value)):null!==t&&rh(this.value)===rh(t)&&this.matchesComparison(rf(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 e>0;case">=":return e>=0;default:return O(47266,{operator:this.op})}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class rV extends rL{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new rV(e,t)}matches(e){return rF(this)?void 0===this.filters.find(t=>!t.matches(e)):void 0!==this.filters.find(t=>t.matches(e))}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 rF(e){return"and"===e.op}function rU(e){return"or"===e.op}function rB(e){return rj(e)&&rF(e)}function rj(e){for(let t of e.filters)if(t instanceof rV)return!1;return!0}function rq(e,t){let r=e.filters.concat(t);return rV.create(r,e.op)}class rz extends rM{constructor(e,t,r){super(e,t,r),this.key=ei.fromName(r.referenceValue)}matches(e){let t=ei.comparator(e.key,this.key);return this.matchesComparison(t)}}class rK extends rM{constructor(e,t){super(e,"in",t),this.keys=rG("in",t)}matches(e){return this.keys.some(t=>t.isEqual(e.key))}}class r$ extends rM{constructor(e,t){super(e,"not-in",t),this.keys=rG("not-in",t)}matches(e){return!this.keys.some(t=>t.isEqual(e.key))}}function rG(e,t){return(t.arrayValue?.values||[]).map(e=>ei.fromName(e.referenceValue))}class rH extends rM{constructor(e,t){super(e,"array-contains",t)}matches(e){let t=e.data.field(this.field);return rw(t)&&rd(t.arrayValue,this.value)}}class rW extends rM{constructor(e,t){super(e,"in",t)}matches(e){let t=e.data.field(this.field);return null!==t&&rd(this.value.arrayValue,t)}}class rQ extends rM{constructor(e,t){super(e,"not-in",t)}matches(e){if(rd(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;let t=e.data.field(this.field);return null!==t&&void 0===t.nullValue&&!rd(this.value.arrayValue,t)}}class rJ extends rM{constructor(e,t){super(e,"array-contains-any",t)}matches(e){let t=e.data.field(this.field);return!(!rw(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>rd(this.value.arrayValue,e))}}class rY{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 rX(e,t=null,r=[],n=[],i=null,s=null,a=null){return new rY(e,t,r,n,i,s,a)}function rZ(e){if(null===e.Te){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map(e=>(function e(t){if(t instanceof rM)return t.field.canonicalString()+t.op.toString()+rm(t.value);if(rB(t))return t.filters.map(t=>e(t)).join(",");{let r=t.filters.map(t=>e(t)).join(",");return`${t.op}(${r})`}})(e)).join(","),t+="|ob:",t+=e.orderBy.map(e=>e.field.canonicalString()+e.dir).join(","),eK(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>rm(e)).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>rm(e)).join(",")),e.Te=t}return e.Te}function r0(e,t){if(e.limit!==t.limit||e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++){var r,n;if(r=e.orderBy[i],n=t.orderBy[i],!(r.dir===n.dir&&r.field.isEqual(n.field)))return!1}if(e.filters.length!==t.filters.length)return!1;for(let r=0;r<e.filters.length;r++)if(!function e(t,r){return t instanceof rM?r instanceof rM&&t.op===r.op&&t.field.isEqual(r.field)&&rc(t.value,r.value):t instanceof rV?r instanceof rV&&t.op===r.op&&t.filters.length===r.filters.length&&t.filters.reduce((t,n,i)=>t&&e(n,r.filters[i]),!0):void O(19439)}(e.filters[r],t.filters[r]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!rP(e.startAt,t.startAt)&&rP(e.endAt,t.endAt)}function r1(e){return ei.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function r2(e,t){return e.filters.filter(e=>e instanceof rM&&e.field.isEqual(t))}function r3(e,t,r){let n=ru,i=!0;for(let r of r2(e,t)){let e=ru,t=!0;switch(r.op){case"<":case"<=":var s;
1e="nullValue"in(s=r.value)?ru:"booleanValue"in s?{booleanValue:!1}:"integerValue"in s||"doubleValue"in s?{doubleValue:NaN}:"timestampValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in s?{stringValue:""}:"bytesValue"in s?{bytesValue:""}:"referenceValue"in s?ry(rr.empty(),ei.empty()):"geoPointValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in s?{arrayValue:{}}:"mapValue"in s?r_(s)?rC:{mapValue:{}}:O(35942,{value:s});break;case"==":case"in":case">=":e=r.value;break;case">":e=r.value,t=!1;break;case"!=":case"not-in":e=ru}0>rA({value:n,inclusive:i},{value:e,inclusive:t})&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];0>rA({value:n,inclusive:i},{value:e,inclusive:r.inclusive})&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}function r4(e,t,r){let n=ra,i=!0;for(let r of r2(e,t)){let e=ra,t=!0;switch(r.op){case">=":case">":var s;e="nullValue"in(s=r.value)?{booleanValue:!1}:"booleanValue"in s?{doubleValue:NaN}:"integerValue"in s||"doubleValue"in s?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in s?{stringValue:""}:"stringValue"in s?{bytesValue:""}:"bytesValue"in s?ry(rr.empty(),ei.empty()):"referenceValue"in s?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in s?{arrayValue:{}}:"arrayValue"in s?rC:"mapValue"in s?r_(s)?{mapValue:{}}:ra:O(61959,{value:s}),t=!1;break;case"==":case"in":case"<=":e=r.value;break;case"<":e=r.value,t=!1;break;case"!=":case"not-in":e=ra}rk({value:n,inclusive:i},{value:e,inclusive:t})>0&&(n=e,i=t)}if(null!==r){for(let s=0;s<e.orderBy.length;++s)if(e.orderBy[s].field.isEqual(t)){let e=r.position[s];rk({value:n,inclusive:i},{value:e,inclusive:r.inclusive})>0&&(n=e,i=r.inclusive);break}}return{value:n,inclusive:i}}class r5{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.Ee=null,this.Ie=null,this.Re=null,this.startAt,this.endAt}}function r6(e){return new r5(e)}function r8(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 r9(e){return null!==e.collectionGroup}function r7(e){if(null===e.Ee){let t;e.Ee=[];let r=new Set;for(let t of e.explicitOrderBy)e.Ee.push(t),r.add(t.field.canonicalString());let n=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";(t=new tH(en.comparator),e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t).forEach(t=>{r.has(t.canonicalString())||t.isKeyField()||e.Ee.push(new rO(t,n))}),r.has(en.keyField().canonicalString())||e.Ee.push(new rO(en.keyField(),n))}return e.Ee}function ne(e){return e.Ie||(e.Ie=nt(e,r7(e))),e.Ie}function nt(e,t){if("F"===e.limitType)return rX(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);{t=t.map(e=>{let t="desc"===e.dir?"asc":"desc";return new rO(e.field,t)});let r=e.endAt?new rN(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new rN(e.startAt.position,e.startAt.inclusive):null;return rX(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)}}function nr(e,t){let r=e.filters.concat([t]);return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function nn(e,t){let r=e.explicitOrderBy.concat([t]);return new r5(e.path,e.collectionGroup,r,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)}function ni(e,t,r){return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function ns(e,t){return r0(ne(e),ne(t))&&e.limitType===t.limitType}function na(e){return`${rZ(ne(e))}|lt:${e.limitType}`}function no(e){var t;let r;return`Query(target=${r=(t=ne(e)).path.canonicalString(),null!==t.collectionGroup&&(r+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(r+=`, filters: [${t.filters.map(e=>(function e(t){return t instanceof rM?`${t.field.canonicalString()} ${t.op} ${rm(t.value)}`:t instanceof rV?t.op.toString()+" {"+t.getFilters().map(e).join(" ,")+"}":"Filter"})(e)).join(", ")}]`),eK(t.limit)||(r+=", limit: "+t.limit),t.orderBy.length>0&&(r+=`, orderBy: [${t.orderBy.map(e=>`${e.field.canonicalString()} (${e.dir})`).join(", ")}]`),t.startAt&&(r+=", startAt: ",r+=t.startAt.inclusive?"b:":"a:",r+=t.startAt.position.map(e=>rm(e)).join(",")),t.endAt&&(r+=", endAt: ",r+=t.endAt.inclusive?"a:":"b:",r+=t.endAt.position.map(e=>rm(e)).join(",")),`Target(${r})`}; limitType=${e.limitType})`}function nl(e,t){var r,n,i,s;let a,o,l;
1return t.isFoundDocument()&&(a=t.key.path,null!==e.collectionGroup?t.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(a):ei.isDocumentKey(e.path)?e.path.isEqual(a):e.path.isImmediateParentOf(a))&&function(e,t){for(let r of r7(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return!1;return!0}(e,t)&&function(e,t){for(let r of e.filters)if(!r.matches(t))return!1;return!0}(e,t)&&(r=e,n=t,(!r.startAt||(i=r.startAt,o=rR(i,r7(r),n),i.inclusive?!!(o<=0):!!(o<0)))&&(!r.endAt||(s=r.endAt,l=rR(s,r7(r),n),s.inclusive?!!(l>=0):!!(l>0))))}function nu(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function nh(e){return(t,r)=>{let n=!1;for(let i of r7(e)){let e=function(e,t,r){var n;let i,s,a=e.field.isKeyField()?ei.comparator(t.key,r.key):(n=e.field,i=t.data.field(n),s=r.data.field(n),null!==i&&null!==s?rf(i,s):O(42886));switch(e.dir){case"asc":return a;case"desc":return -1*a;default:return O(19790,{direction:e.dir})}}(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class nc{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0!==r){for(let[t,n]of r)if(this.equalsFn(t,e))return n}}has(e){return void 0!==this.get(e)}set(e,t){let r=this.mapKeyFn(e),n=this.inner[r];if(void 0===n)return this.inner[r]=[[e,t]],void this.innerSize++;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],e))return void(n[r]=[e,t]);n.push([e,t]),this.innerSize++}delete(e){let t=this.mapKeyFn(e),r=this.inner[t];if(void 0===r)return!1;for(let n=0;n<r.length;n++)if(this.equalsFn(r[n][0],e))return 1===r.length?delete this.inner[t]:r.splice(n,1),this.innerSize--,!0;return!1}forEach(e){tq(this.inner,(t,r)=>{for(let[t,n]of r)e(t,n)})}isEmpty(){return tz(this.inner)}size(){return this.innerSize}}let nd=new tK(ei.comparator),nf=new tK(ei.comparator);function np(...e){let t=nf;for(let r of e)t=t.insert(r.key,r);return t}function ng(e){let t=nf;return e.forEach((e,r)=>t=t.insert(e,r.overlayedDocument)),t}function nm(){return new nc(e=>e.toString(),(e,t)=>e.isEqual(t))}let ny=new tK(ei.comparator),nv=new tH(ei.comparator);function nw(...e){let t=nv;for(let r of e)t=t.add(r);return t}let nI=new tH(Q);function nb(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:e$(t)?"-0":t}}function nE(e){return{integerValue:""+e}}class n_{constructor(){this._=void 0}}function nT(e,t){return e instanceof nD?rv(t)||t&&"doubleValue"in t?t:{integerValue:0}:null}class nS extends n_{}class nC extends n_{constructor(e){super(),this.elements=e}}function nA(e,t){let r=nR(t);for(let t of e.elements)r.some(e=>rc(e,t))||r.push(t);return{arrayValue:{values:r}}}class nk extends n_{constructor(e){super(),this.elements=e}}function nx(e,t){let r=nR(t);for(let t of e.elements)r=r.filter(e=>!rc(e,t));return{arrayValue:{values:r}}}class nD extends n_{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function nN(e){return t1(e.integerValue||e.doubleValue)}function nR(e){return rw(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class nP{constructor(e,t){this.field=e,this.transform=t}}class nO{constructor(e,t){this.version=e,this.transformResults=t}}class nL{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new nL}static exists(e){return new nL(void 0,e)}static updateTime(e){return new nL(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 nM(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class nV{}function nF(e,t){if(!e.hasLocalMutations||t&&0===t.fields.length)return null;if(null===t)return e.isNoDocument()?new nG(e.key,nL.none()):new nj(e.key,e.data,nL.none());{let r=e.data,n=rx.empty(),i=new tH(en.comparator);for(let e of t.fields)if(!i.has(e)){let t=r.field(e);null===t&&e.length>1&&(e=e.popLast(),t=r.field(e)),null===t?n.delete(e):n.set(e,t),i=i.add(e)}return new nq(e.key,n,new tJ(i.toArray()),nL.none())}}function nU(e,t,r,n){return e instanceof nj?function(e,t,r,n){if(!nM(e.precondition,t))return r;let i=e.value.clone(),s=n$(e.fieldTransforms,n,t);return i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,r,n):e instanceof nq?function(e,t,r,n){if(!nM(e.precondition,t))return r;let i=n$(e.fieldTransforms,n,t),s=t.data;return(s.setAll(nz(e)),s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null===r)?null:r.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,r,n):nM(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):r}function nB(e,t){var r,n;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)&&X(r,n,(e,t)=>{var r,n;return e.field.isEqual(t.field)&&(r=e.transform,n=t.transform,r instanceof nC&&n instanceof nC||r instanceof nk&&n instanceof nk?X(r.elements,n.elements,rc):r instanceof nD&&n instanceof nD?rc(r.Ae,n.Ae):r instanceof nS&&n instanceof nS)})))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask))}class nj extends nV{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.prec
1ondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class nq extends nV{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 nz(e){let t=new Map;return e.fieldMask.fields.forEach(r=>{if(!r.isEmpty()){let n=e.data.field(r);t.set(r,n)}}),t}function nK(e,t,r){let n=new Map;M(e.length===r.length,32656,{Ve:r.length,de:e.length});for(let s=0;s<r.length;s++){var i;let a=e[s],o=a.transform,l=t.data.field(a.field);n.set(a.field,(i=r[s],o instanceof nC?nA(o,l):o instanceof nk?nx(o,l):i))}return n}function n$(e,t,r){let n=new Map;for(let i of e){let e=i.transform,s=r.data.field(i.field);n.set(i.field,function(e,t,r){var n;let i,s,a;return e instanceof nS?(n=t,i={fields:{[t4]:{stringValue:t3},[t6]:{timestampValue:{seconds:r.seconds,nanos:r.nanoseconds}}}},n&&t8(n)&&(n=t9(n)),n&&(i.fields[t5]=n),{mapValue:i}):e instanceof nC?nA(e,t):e instanceof nk?nx(e,t):(a=nN(s=nT(e,t))+nN(e.Ae),rv(s)&&rv(e.Ae)?nE(a):nb(e.serializer,a))}(e,s,t))}return n}class nG extends nV{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class nH extends nV{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class nW{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){let r=t.mutationResults;for(let t=0;t<this.mutations.length;t++){let n=this.mutations[t];n.key.isEqual(e.key)&&function(e,t,r){let n,i;e instanceof nj?(n=e.value.clone(),i=nK(e.fieldTransforms,t,r.transformResults),n.setAll(i),t.convertToFoundDocument(r.version,n).setHasCommittedMutations()):e instanceof nq?function(e,t,r){if(!nM(e.precondition,t))return t.convertToUnknownDocument(r.version);let n=nK(e.fieldTransforms,t,r.transformResults),i=t.data;i.setAll(nz(e)),i.setAll(n),t.convertToFoundDocument(r.version,i).setHasCommittedMutations()}(e,t,r):t.convertToNoDocument(r.version).setHasCommittedMutations()}(n,e,r[t])}}applyToLocalView(e,t){for(let r of this.baseMutations)r.key.isEqual(e.key)&&(t=nU(r,e,t,this.localWriteTime));for(let r of this.mutations)r.key.isEqual(e.key)&&(t=nU(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(e,t){let r=nm();return this.mutations.forEach(n=>{let i=e.get(n.key),s=i.overlayedDocument,a=this.applyToLocalView(s,i.mutatedFields),o=nF(s,a=t.has(n.key)?null:a);null!==o&&r.set(n.key,o),s.isValidDocument()||s.convertToNoDocument(ep.min())}),r}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),nw())}isEqual(e){return this.batchId===e.batchId&&X(this.mutations,e.mutations,(e,t)=>nB(e,t))&&X(this.baseMutations,e.baseMutations,(e,t)=>nB(e,t))}}class nQ{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){M(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=ny,i=e.mutations;for(let e=0;e<i.length;e++)n=n.insert(i[e].key,r[e].version);return new nQ(e,t,r,n)}}class nJ{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{
2      largestBatchId: ${this.largestBatchId},
3      mutation: ${this.mutation.toString()}
4    }`}}class nY{constructor(e,t){this.count=e,this.unchangedNames=t}}function nX(e){switch(e){case V.OK:return O(64938);case V.CANCELLED:case V.UNKNOWN:case V.DEADLINE_EXCEEDED:case V.RESOURCE_EXHAUSTED:case V.INTERNAL:case V.UNAVAILABLE:case V.UNAUTHENTICATED:return!1;case V.INVALID_ARGUMENT:case V.NOT_FOUND:case V.ALREADY_EXISTS:case V.PERMISSION_DENIED:case V.FAILED_PRECONDITION:case V.ABORTED:case V.OUT_OF_RANGE:case V.UNIMPLEMENTED:case V.DATA_LOSS:return!0;default:return O(15467,{code:e})}}function nZ(e){if(void 0===e)return N("GRPC error has no .code"),V.UNKNOWN;switch(e){case c.OK:return V.OK;case c.CANCELLED:return V.CANCELLED;case c.UNKNOWN:return V.UNKNOWN;case c.DEADLINE_EXCEEDED:return V.DEADLINE_EXCEEDED;case c.RESOURCE_EXHAUSTED:return V.RESOURCE_EXHAUSTED;case c.INTERNAL:return V.INTERNAL;case c.UNAVAILABLE:return V.UNAVAILABLE;case c.UNAUTHENTICATED:return V.UNAUTHENTICATED;case c.INVALID_ARGUMENT:return V.INVALID_ARGUMENT;case c.NOT_FOUND:return V.NOT_FOUND;case c.ALREADY_EXISTS:return V.ALREADY_EXISTS;case c.PERMISSION_DENIED:return V.PERMISSION_DENIED;case c.FAILED_PRECONDITION:return V.FAILED_PRECONDITION;case c.ABORTED:return V.ABORTED;case c.OUT_OF_RANGE:return V.OUT_OF_RANGE;
4case c.UNIMPLEMENTED:return V.UNIMPLEMENTED;case c.DATA_LOSS:return V.DATA_LOSS;default:return O(39323,{code:e})}}(d=c||(c={}))[d.OK=0]="OK",d[d.CANCELLED=1]="CANCELLED",d[d.UNKNOWN=2]="UNKNOWN",d[d.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",d[d.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",d[d.NOT_FOUND=5]="NOT_FOUND",d[d.ALREADY_EXISTS=6]="ALREADY_EXISTS",d[d.PERMISSION_DENIED=7]="PERMISSION_DENIED",d[d.UNAUTHENTICATED=16]="UNAUTHENTICATED",d[d.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",d[d.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",d[d.ABORTED=10]="ABORTED",d[d.OUT_OF_RANGE=11]="OUT_OF_RANGE",d[d.UNIMPLEMENTED=12]="UNIMPLEMENTED",d[d.INTERNAL=13]="INTERNAL",d[d.UNAVAILABLE=14]="UNAVAILABLE",d[d.DATA_LOSS=15]="DATA_LOSS";let n0=null;function n1(){return new TextEncoder}let n2=new t([0xffffffff,0xffffffff],0);function n3(e){let t=n1().encode(e),n=new r;return n.update(t),new Uint8Array(n.digest())}function n4(e){let r=new DataView(e.buffer),n=r.getUint32(0,!0),i=r.getUint32(4,!0),s=r.getUint32(8,!0),a=r.getUint32(12,!0);return[new t([n,i],0),new t([s,a],0)]}class n5{constructor(e,r,n){if(this.bitmap=e,this.padding=r,this.hashCount=n,r<0||r>=8)throw new n6(`Invalid padding: ${r}`);if(n<0||e.length>0&&0===this.hashCount)throw new n6(`Invalid hash count: ${n}`);if(0===e.length&&0!==r)throw new n6(`Invalid padding when bitmap length is 0: ${r}`);this.ge=8*e.length-r,this.pe=t.fromNumber(this.ge)}ye(e,r,n){let i=e.add(r.multiply(t.fromNumber(n)));return 1===i.compare(n2)&&(i=new t([i.getBits(0),i.getBits(1)],0)),i.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,r]=n4(n3(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);if(!this.we(n))return!1}return!0}static create(e,t,r){let n=new n5(new Uint8Array(Math.ceil(e/8)),e%8==0?0:8-e%8,t);return r.forEach(e=>n.insert(e)),n}insert(e){if(0===this.ge)return;let[t,r]=n4(n3(e));for(let e=0;e<this.hashCount;e++){let n=this.ye(t,r,e);this.Se(n)}}Se(e){let t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class n6 extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class n8{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){let n=new Map;return n.set(e,n9.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new n8(ep.min(),n,new tK(Q),nd,nw())}}class n9{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 n9(r,t,nw(),nw(),nw())}}class n7{constructor(e,t,r,n){this.be=e,this.removedTargetIds=t,this.key=r,this.De=n}}class ie{constructor(e,t){this.targetId=e,this.Ce=t}}class it{constructor(e,t,r=tX.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class ir{constructor(){this.ve=0,this.Fe=ia(),this.Me=tX.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){e.approximateByteSize()>0&&(this.Oe=!0,this.Me=e)}ke(){let e=nw(),t=nw(),r=nw();return this.Fe.forEach((n,i)=>{switch(i){case 0:e=e.add(n);break;case 2:t=t.add(n);break;case 1:r=r.add(n);break;default:O(38017,{changeType:i})}}),new n9(this.Me,this.xe,e,t,r)}qe(){this.Oe=!1,this.Fe=ia()}Ke(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}Ue(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}$e(){this.ve+=1}We(){this.ve-=1,M(this.ve>=0,3241,{ve:this.ve})}Qe(){this.Oe=!0,this.xe=!0}}class ii{constructor(e){this.Ge=e,this.ze=new Map,this.je=nd,this.Je=is(),this.He=is(),this.Ze=new tK(Q)}Xe(e){for(let t of e.be)e.De&&e.De.isFoundDocument()?this.Ye(t,e.De):this.et(t,e.key,e.De);for(let t of e.removedTargetIds)this.et(t,e.key,e.De)}tt(e){this.forEachTarget(e,t=>{let r=this.nt(t);switch(e.state){case 0:this.rt(t)&&r.Le(e.resumeToken);break;case 1:r.We(),r.Ne||r.qe(),r.Le(e.resumeToken);break;case 2:r.We(),r.Ne||this.removeTarget(t);break;case 3:this.rt(t)&&(r.Qe(),r.Le(e.resumeToken));break;case 4:this.rt(t)&&(this.it(t),r.Le(e.resumeToken));break;default:O(56790,{state:e.state})}})}forEachTarget(e,t){e.targetIds.length>0?e.targetIds.forEach(t):this.ze.forEach((e,r)=>{this.rt(r)&&t(r)})}st(e){let t=e.targetId,r=e.Ce.count,n=this.ot(t);if(n){let a=n.target;if(r1(a))if(0===r){let e=new ei(a.path);this.et(t,e,rD.newNoDocument(e,ep.min()))}else M(1===r,20013,{expectedCount:r});else{let n=this._t(t);if(n!==r){var i,s;let r,a,o=this.ut(e),l=o?this.ct(o,e,n):1;0!==l&&(this.it(t),this.Ze=this.Ze.insert(t,2===l?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch")),n0?.o((i=e.Ce,s=this.Ge.ht(),r={localCacheCount:n,existenceFilterCount:i.count,databaseId:s.database,projectId:s.projectId},(a=i.unchangedNames)&&(r.bloomFilter={applied:0===l,hashCount:a?.hashCount??0,bitmapLength:a?.bits?.bitmap?.length??0,padding:a?.bits?.padding??0,mightContain:e=>o?.mightContain(e)??!1}),r))}}}}ut(e){let t,r,n=e.Ce.unchangedNames;if(!n||!n.bits)return null;let{bits:{bitmap:i="",padding:s=0},hashCount:a=0}=n;try{t=t2(i).toUint8Array()}catch(e){if(e instanceof tY)return R("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{r=new n5(t,s,a)}catch(e){return R(e instanceof n6?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===r.ge?null:r}ct(e,t,r){return 2*(t.Ce.count!==r-this.Pt(e,t.targetId))}Pt(e,t){let r=this.Ge.getRemoteKeysForTarget(t),n=0;return r.forEach(r=>{let i=this.Ge.ht(),s=`projects/${i.projectId}/databases/${i.database}/documents/${r.path.canonicalString()}`;e.mightContain(s)||(this.et(t,r,null),n++)}),n}Tt(e){let t=new Map;this.ze.forEach((r,n)=>{let i=this.ot(n);if(i){if(r.current&&r1(i.target)){let t=new ei(i.target.path);this.Et(t).has(n)||this.It(n,t)||this.et(n,t,rD.newNoDocument(t,e))}r.Be&&(t.set(n,r.ke()),r.qe())}});let r=nw();this.He.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{let t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(n=!1,!1)}),n&&(r=r.add(e))}),this.je.forEach((t,r)=>r.setReadTime(e));let n=new n8(e,t,this.Ze,this.je,r);return this.je=nd,this.Je=is(),this.He=is(),this.Ze=new tK(Q),n}Ye(e,t){if(!this.rt(e))return;
4let r=2*!!this.It(e,t.key);this.nt(e).Ke(t.key,r),this.je=this.je.insert(t.key,t),this.Je=this.Je.insert(t.key,this.Et(t.key).add(e)),this.He=this.He.insert(t.key,this.Rt(t.key).add(e))}et(e,t,r){if(!this.rt(e))return;let n=this.nt(e);this.It(e,t)?n.Ke(t,1):n.Ue(t),this.He=this.He.insert(t,this.Rt(t).delete(e)),this.He=this.He.insert(t,this.Rt(t).add(e)),r&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){let t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}$e(e){this.nt(e).$e()}nt(e){let t=this.ze.get(e);return t||(t=new ir,this.ze.set(e,t)),t}Rt(e){let t=this.He.get(e);return t||(t=new tH(Q),this.He=this.He.insert(e,t)),t}Et(e){let t=this.Je.get(e);return t||(t=new tH(Q),this.Je=this.Je.insert(e,t)),t}rt(e){let t=null!==this.ot(e);return t||D("WatchChangeAggregator","Detected inactive target",e),t}ot(e){let t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(e){this.ze.set(e,new ir),this.Ge.getRemoteKeysForTarget(e).forEach(t=>{this.et(e,t,null)})}It(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function is(){return new tK(ei.comparator)}function ia(){return new tK(ei.comparator)}let io={asc:"ASCENDING",desc:"DESCENDING"},il={"<":"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"},iu={and:"AND",or:"OR"};class ih{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ic(e,t){return e.useProto3Json||eK(t)?t:{value:t}}function id(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 ip(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function ig(e){let t;return M(!!e,49232),ep.fromTimestamp(new ef((t=t0(e)).seconds,t.nanos))}function im(e,t){return iy(e,t).canonicalString()}function iy(e,t){let r=new et(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function iv(e){let t=et.fromString(e);return M(iO(t),10190,{key:t.toString()}),t}function iw(e,t){return im(e.databaseId,t.path)}function iI(e,t){let r=iv(t);if(r.get(1)!==e.databaseId.projectId)throw new F(V.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 F(V.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new ei(iT(r))}function ib(e,t){return im(e.databaseId,t)}function iE(e){let t=iv(e);return 4===t.length?et.emptyPath():iT(t)}function i_(e){return new et(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function iT(e){return M(e.length>4&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function iS(e,t,r){return{name:iw(e,t),fields:r.value.mapValue.fields}}function iC(e,t,r){let n=iI(e,t.name),i=ig(t.updateTime),s=t.createTime?ig(t.createTime):ep.min(),a=new rx({mapValue:{fields:t.fields}}),o=rD.newFoundDocument(n,i,s,a);return r&&o.setHasCommittedMutations(),r?o.setHasCommittedMutations():o}function iA(e,t){var r,n;let i;if(t instanceof nj)i={update:iS(e,t.key,t.value)};else if(t instanceof nG)i={delete:iw(e,t.key)};else if(t instanceof nq){let r;i={update:iS(e,t.key,t.data),updateMask:(n=t.fieldMask,r=[],n.fields.forEach(e=>r.push(e.canonicalString())),{fieldPaths:r})}}else{if(!(t instanceof nH))return O(16599,{dt:t.type});i={verify:iw(e,t.key)}}return t.fieldTransforms.length>0&&(i.updateTransforms=t.fieldTransforms.map(e=>(function(e){let t=e.transform;if(t instanceof nS)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof nC)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof nk)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof nD)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw O(20930,{transform:e.transform})})(e))),t.precondition.isNone||(i.currentDocument=void 0!==(r=t.precondition).updateTime?{updateTime:id(e,r.updateTime.toTimestamp())}:void 0!==r.exists?{exists:r.exists}:O(27497)),i}function ik(e,t){var r;let n=t.currentDocument?void 0!==(r=t.currentDocument).updateTime?nL.updateTime(ig(r.updateTime)):void 0!==r.exists?nL.exists(r.exists):nL.none():nL.none(),i=t.updateTransforms?t.updateTransforms.map(t=>{let r;return r=null,"setToServerValue"in t?(M("REQUEST_TIME"===t.setToServerValue,16630,{proto:t}),r=new nS):"appendMissingElements"in t?r=new nC(t.appendMissingElements.values||[]):"removeAllFromArray"in t?r=new nk(t.removeAllFromArray.values||[]):"increment"in t?r=new nD(e,t.increment):O(16584,{proto:t}),new nP(en.fromServerFormat(t.fieldPath),r)}):[];if(t.update){t.update.name;let r=iI(e,t.update.name),s=new rx({mapValue:{fields:t.update.fields}});return t.updateMask?new nq(r,s,new tJ((t.updateMask.fieldPaths||[]).map(e=>en.fromServerFormat(e))),n,i):new nj(r,s,n,i)}return t.delete?new nG(iI(e,t.delete),n):t.verify?new nH(iI(e,t.verify),n):O(1463,{proto:t})}function ix(e,t){return{documents:[ib(e,t.path)]}}function iD(e,t){var r,n;let i,s={structuredQuery:{}},a=t.path;null!==t.collectionGroup?(i=a,s.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=a.popLast(),s.structuredQuery.from=[{collectionId:a.lastSegment()}]),s.parent=ib(e,i);let o=function(e){if(0!==e.length)return function e(t){var r;let n;return t instanceof rM?function(e){if("=="===e.op){if(rb(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NAN"}};if(rI(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(rb(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NOT_NA
4N"}};if(rI(e.value))return{unaryFilter:{field:iR(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:iR(e.field),op:il[e.op],value:e.value}}}(t):t instanceof rV?1===(n=(r=t).getFilters().map(t=>e(t))).length?n[0]:{compositeFilter:{op:iu[r.op],filters:n}}:O(54877,{filter:t})}(rV.create(e,"and"))}(t.filters);o&&(s.structuredQuery.where=o);let l=function(e){if(0!==e.length)return e.map(e=>({field:iR(e.field),direction:io[e.dir]}))}(t.orderBy);l&&(s.structuredQuery.orderBy=l);let u=ic(e,t.limit);return null!==u&&(s.structuredQuery.limit=u),t.startAt&&(s.structuredQuery.startAt={before:(r=t.startAt).inclusive,values:r.position}),t.endAt&&(s.structuredQuery.endAt={before:!(n=t.endAt).inclusive,values:n.position}),{ft:s,parent:i}}function iN(e){var t,r,n;let i,s,a,o,l=iE(e.parent),u=e.structuredQuery,h=u.from?u.from.length:0,c=null;if(h>0){M(1===h,65062);let e=u.from[0];e.allDescendants?c=e.collectionId:l=l.child(e.collectionId)}let d=[];u.where&&(d=(i=function e(t){return void 0!==t.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":let t=iP(e.unaryFilter.field);return rM.create(t,"==",{doubleValue:NaN});case"IS_NULL":let r=iP(e.unaryFilter.field);return rM.create(r,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let n=iP(e.unaryFilter.field);return rM.create(n,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let i=iP(e.unaryFilter.field);return rM.create(i,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return O(61313);default:return O(60726)}}(t):void 0!==t.fieldFilter?rM.create(iP(t.fieldFilter.field),function(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 O(58110);default:return O(50506)}}(t.fieldFilter.op),t.fieldFilter.value):void 0!==t.compositeFilter?rV.create(t.compositeFilter.filters.map(t=>e(t)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return O(1026)}}(t.compositeFilter.op)):O(30097,{filter:t})}(u.where))instanceof rV&&rB(i)?i.getFilters():[i]);let f=[];u.orderBy&&(f=u.orderBy.map(e=>new rO(iP(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))));let p=null;u.limit&&(p=eK(s="object"==typeof(t=u.limit)?t.value:t)?null:s);let g=null;u.startAt&&(a=!!(r=u.startAt).before,g=new rN(r.values||[],a));let m=null;return u.endAt&&(o=!(n=u.endAt).before,m=new rN(n.values||[],o)),new r5(l,c,f,d,p,"F",g,m)}function iR(e){return{fieldPath:e.canonicalString()}}function iP(e){return en.fromServerFormat(e.fieldPath)}function iO(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}function iL(e){return!!e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}class iM{constructor(e,t,r,n,i=ep.min(),s=ep.min(),a=tX.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 iM(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new iM(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class iV{constructor(e){this.yt=e}}function iF(e,t){let r=t.key,n={prefixPath:r.getCollectionPath().popLast().toArray(),collectionGroup:r.collectionGroup,documentId:r.path.lastSegment(),readTime:iU(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument()){var i;n.document={name:iw(i=e.yt,t.key),fields:t.data.value.mapValue.fields,updateTime:id(i,t.version.toTimestamp()),createTime:id(i,t.createTime.toTimestamp())}}else if(t.isNoDocument())n.noDocument={path:r.path.toArray(),readTime:iB(t.version)};else{if(!t.isUnknownDocument())return O(57904,{document:t});n.unknownDocument={path:r.path.toArray(),version:iB(t.version)}}return n}function iU(e){let t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function iB(e){let t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function ij(e){let t=new ef(e.seconds,e.nanoseconds);return ep.fromTimestamp(t)}function iq(e,t){let r=(t.baseMutations||[]).map(t=>ik(e.yt,t));for(let e=0;e<t.mutations.length-1;++e){let r=t.mutations[e];e+1<t.mutations.length&&void 0!==t.mutations[e+1].transform&&(r.updateTransforms=t.mutations[e+1].transform.fieldTransforms,t.mutations.splice(e+1,1),++e)}let n=t.mutations.map(t=>ik(e.yt,t)),i=ef.fromMillis(t.localWriteTimeMs);return new nW(t.batchId,i,r,n)}function iz(e){var t;let r,n=ij(e.readTime),i=void 0!==e.lastLimboFreeSnapshotVersion?ij(e.lastLimboFreeSnapshotVersion):ep.min();return new iM(void 0!==e.query.documents?(M(1===(r=(t=e.query).documents.length),1966,{count:r}),ne(r6(iE(t.documents[0])))):ne(iN(e.query)),e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,n,i,tX.fromBase64String(e.resumeToken))}function iK(e,t){let r,n=iB(t.snapshotVersion),i=iB(t.lastLimboFreeSnapshotVersion);r=r1(t.target)?ix(e.yt,t.target):iD(e.yt,t.target).ft;let s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:rZ(t.target),readTime:n,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:i,query:r}}function i$(e){let t=iN({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?ni(t,t.limit,"L"):t}function iG(e,t){return new nJ(t.largestBatchId,ik(e.yt,t.overlayMutation))}function iH(e,t){let r=t.path.lastSegment();return[e,eH(t.path.popLast()),r]}function iW(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:iB(n.readTime),documentKey:eH(n.documentKey.path),largestBatchId:n.largestBatchId}}class iQ{getBundleMetadata(e,t){return tB(e,tg).get(t).next(e=>{if(e)return{id:e.bundleId,createTime:ij(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return tB(e,tg).put({bundleId:t.id,createTime:iB(ig(t.createTime)),version:t.version})}getNamedQuery(e,t){return tB(e,tm).get(t).next(e=>{if(e)return{name:e.name,query:i$(e.bundledQuery),readTime:ij(e.readTime)}})}saveNamedQuery(e,t){return tB(e,tm).put({name:t.name,readTime:iB(ig(t.readTime)),bundledQuery:t.bundledQuery})}}
4class iJ{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){return new iJ(e,t.uid||"")}getOverlay(e,t){return tB(e,tA).get(iH(this.userId,t)).next(e=>e?iG(this.serializer,e):null)}getOverlays(e,t){let r=nm();return ek.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){let n=[];return r.forEach((r,i)=>{let s=new nJ(t,i);n.push(this.St(e,s))}),ek.waitFor(n)}removeOverlaysForBatchId(e,t,r){let n=new Set;t.forEach(e=>n.add(eH(e.getCollectionPath())));let i=[];return n.forEach(t=>{let n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,r+1],!1,!0);i.push(tB(e,tA).X(tx,n))}),ek.waitFor(i)}getOverlaysForCollection(e,t,r){let n=nm(),i=eH(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,1/0],!0);return tB(e,tA).J(tx,s).next(e=>{for(let t of e){let e=iG(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,n){let i,s=nm(),a=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,1/0],!0);return tB(e,tA).ee({index:tN,range:a},(e,t,r)=>{let a=iG(this.serializer,t);s.size()<n||a.largestBatchId===i?(s.set(a.getKey(),a),i=a.largestBatchId):r.done()}).next(()=>s)}St(e,t){return tB(e,tA).put(function(e,t,r){let[n,i,s]=iH(t,r.mutation.key);return{userId:t,collectionPath:i,documentId:s,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:iA(e.yt,r.mutation)}}(this.serializer,this.userId,t))}}class iY{bt(e){return tB(e,tP)}getSessionToken(e){return this.bt(e).get("sessionToken").next(e=>{let t=e?.value;return t?tX.fromUint8Array(t):tX.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.bt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class iX{Dt(e,t){this.Ct(e,t),t.vt()}Ct(e,t){if("nullValue"in e)this.Ft(t,5);else if("booleanValue"in e)this.Ft(t,10),t.Mt(+!!e.booleanValue);else if("integerValue"in e)this.Ft(t,15),t.Mt(t1(e.integerValue));else if("doubleValue"in e){let r=t1(e.doubleValue);isNaN(r)?this.Ft(t,13):(this.Ft(t,15),e$(r)?t.Mt(0):t.Mt(r))}else if("timestampValue"in e){let r=e.timestampValue;this.Ft(t,20),"string"==typeof r&&(r=t0(r)),t.xt(`${r.seconds||""}`),t.Mt(r.nanos||0)}else if("stringValue"in e)this.Ot(e.stringValue,t),this.Nt(t);else if("bytesValue"in e)this.Ft(t,30),t.Bt(t2(e.bytesValue)),this.Nt(t);else if("referenceValue"in e)this.Lt(e.referenceValue,t);else if("geoPointValue"in e){let r=e.geoPointValue;this.Ft(t,45),t.Mt(r.latitude||0),t.Mt(r.longitude||0)}else"mapValue"in e?rS(e)?this.Ft(t,Number.MAX_SAFE_INTEGER):r_(e)?this.kt(e.mapValue,t):(this.qt(e.mapValue,t),this.Nt(t)):"arrayValue"in e?(this.Kt(e.arrayValue,t),this.Nt(t)):O(19022,{Ut:e})}Ot(e,t){this.Ft(t,25),this.$t(e,t)}$t(e,t){t.xt(e)}qt(e,t){let r=e.fields||{};for(let e of(this.Ft(t,55),Object.keys(r)))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){let r=e.fields||{};this.Ft(t,53);let n=r[rl].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(t1(n)),this.Ot(rl,t),this.Ct(r[rl],t)}Kt(e,t){let r=e.values||[];for(let e of(this.Ft(t,50),r))this.Ct(e,t)}Lt(e,t){this.Ft(t,37),ei.fromName(e).path.forEach(e=>{this.Ft(t,60),this.$t(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}function iZ(e){return Math.ceil((64-function(e){let t=0;for(let r=0;r<8;++r){let n=function(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[r]);if(t+=n,8!==n)break}return t}(e))/8)}iX.Wt=new iX;class i0{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Qt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){let t=e[Symbol.iterator](),r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Ht()}Zt(e){for(let 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()}Xt(e){for(let 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()}Yt(e){let t=this.en(e),r=iZ(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=255&t[e]}nn(e){let t=this.en(e),r=iZ(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let e=t.length-r;e<t.length;++e)this.buffer[this.position++]=~(255&t[e])}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){let t,r=((t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1),new Uint8Array(t.buffer)),n=!!(128&r[0]);r[0]^=n?255:128;for(let e=1;e<r.length;++e)r[e]^=255*!!n;return r}Gt(e){let t=255&e;0===t?(this.sn(0),this.sn(255)):255===t?(this.sn(255),this.sn(0)):this.sn(t)}Jt(e){let 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){let t=e+this.position;if(t<=this.buffer.length)return;let r=2*this.buffer.length;r<t&&(r=t);let n=new Uint8Array(r);n.set(this.buffer),this.buffer=n}}class i1{constructor(e){this.cn=e}Bt(e){this.cn.Qt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.Yt(e)}vt(){this.cn.rn()}}class i2{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Xt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class i3{constructor(){this.cn=new i0,this.ascending=new i1(this.cn),this.descending=new i2(this.cn)}seed(e){this.cn.seed(e)}ln(e){return 0===e?this.ascending:this.descending}un(){return this.cn.un()}reset(){this.cn.reset()}}class i4{constructor(e,t,r,n){this.hn=e,this.Pn=t,this.Tn=r,this.En=n}In(){let e=this.En.length,t=0===e||255===this.En[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.En,0),t!==e?r.set([0],this.En.length):++r[r.length-1],new i4(this.hn,this.Pn,this.Tn,r)}Rn(e,t,r){return{indexId:this.hn,uid:e,arrayValue:i8(this.Tn),directionalValue:i8(this.En),orderedDocumentKey:i8(t),documentKey:r.path.toArray()}}An(e,t,r){let n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function i5(e,t){let r=e.hn-t.hn;return 0!==r||0!==(r=i6(e.Tn,t.Tn))||0!==(r=i6(e.En,t.En))?r:ei.comparator(e.Pn,t.Pn)}function i6(e,t){for(let r=0;r<e.length&&r<t.length;++r){let n=e[r]-t[r];if(0!==n)return n}return e.length-t.length}function i8(e){return(0,w.isSafariOrWebkit)()?function(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}(e):e}function i9(e){return"string"!=typeof e?e:function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(e)}class i7{constructor(e){for(const t of(this.Vn=new tH((e,t)=>en.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.dn=e.orderBy,this.mn=[],e.filters))t.isInequality()?this.Vn=this.Vn.add(t):this.mn.push(t)}get fn(){return this.Vn.size>1}gn(e){if(M(e.collectionGroup===this.collectionId,49279),this.fn)return!1;let t=em(e);
4if(void 0!==t&&!this.pn(t))return!1;let r=ey(e),n=new Set,i=0,s=0;for(;i<r.length&&this.pn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i===r.length)return!0;if(this.Vn.size>0){let e=this.Vn.getIterator().getNext();if(!n.has(e.field.canonicalString())){let t=r[i];if(!this.yn(e,t)||!this.wn(this.dn[s++],t))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.dn.length||!this.wn(this.dn[s++],e))return!1}return!0}Sn(){if(this.fn)return null;let e=new tH(en.comparator),t=[];for(let r of this.mn)if(!r.field.isKeyField())if("array-contains"===r.op||"array-contains-any"===r.op)t.push(new ew(r.field,2));else{if(e.has(r.field))continue;e=e.add(r.field),t.push(new ew(r.field,0))}for(let r of this.dn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),t.push(new ew(r.field,+("asc"!==r.dir))));return new eg(eg.UNKNOWN_ID,this.collectionId,t,eI.empty())}pn(e){for(let t of this.mn)if(this.yn(t,e))return!0;return!1}yn(e,t){if(void 0===e||!e.field.isEqual(t.fieldPath))return!1;let r="array-contains"===e.op||"array-contains-any"===e.op;return 2===t.kind===r}wn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function se(e){return e instanceof rM}function st(e){return e instanceof rV&&rB(e)}function sr(e){return se(e)||st(e)||function(e){if(e instanceof rV&&rU(e)){for(let t of e.getFilters())if(!se(t)&&!st(t))return!1;return!0}return!1}(e)}function sn(e,t){return M(e instanceof rM||e instanceof rV,38388),M(t instanceof rM||t instanceof rV,25473),ss(e instanceof rM?t instanceof rM?rV.create([e,t],"and"):si(e,t):t instanceof rM?si(t,e):function(e,t){if(M(e.filters.length>0&&t.filters.length>0,48005),rF(e)&&rF(t))return rq(e,t.getFilters());let r=rU(e)?e:t,n=rU(e)?t:e,i=r.filters.map(e=>sn(e,n));return rV.create(i,"or")}(e,t))}function si(e,t){if(rF(t))return rq(t,e.getFilters());{let r=t.filters.map(t=>sn(e,t));return rV.create(r,"or")}}function ss(e){if(M(e instanceof rM||e instanceof rV,11850),e instanceof rM)return e;let t=e.getFilters();if(1===t.length)return ss(t[0]);if(rj(e))return e;let r=t.map(e=>ss(e)),n=[];return r.forEach(t=>{t instanceof rM?n.push(t):t instanceof rV&&(t.op===e.op?n.push(...t.filters):n.push(t))}),1===n.length?n[0]:rV.create(n,e.op)}class sa{constructor(){this.bn=new so}addToCollectionParentIndex(e,t){return this.bn.add(t),ek.resolve()}getCollectionParents(e,t){return ek.resolve(this.bn.getEntries(t))}addFieldIndex(e,t){return ek.resolve()}deleteFieldIndex(e,t){return ek.resolve()}deleteAllFieldIndexes(e){return ek.resolve()}createTargetIndexes(e,t){return ek.resolve()}getDocumentsMatchingTarget(e,t){return ek.resolve(null)}getIndexType(e,t){return ek.resolve(0)}getFieldIndexes(e,t){return ek.resolve([])}getNextCollectionGroupToUpdate(e){return ek.resolve(null)}getMinOffset(e,t){return ek.resolve(e_.min())}getMinOffsetFromCollectionGroup(e,t){return ek.resolve(e_.min())}updateCollectionGroup(e,t,r){return ek.resolve()}updateIndexEntries(e,t){return ek.resolve()}}class so{constructor(){this.index={}}add(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new tH(et.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){let t=e.lastSegment(),r=e.popLast(),n=this.index[t];return n&&n.has(r)}getEntries(e){return(this.index[e]||new tH(et.comparator)).toArray()}}let sl="IndexedDbIndexManager",su=new Uint8Array(0);class sh{constructor(e,t){this.databaseId=t,this.Dn=new so,this.Cn=new nc(e=>rZ(e),(e,t)=>r0(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){if(!this.Dn.has(t)){let r=t.lastSegment(),n=t.popLast();e.addOnCommittedListener(()=>{this.Dn.add(t)});let i={collectionId:r,parent:eH(n)};return tB(e,td).put(i)}return ek.resolve()}getCollectionParents(e,t){let r=[],n=IDBKeyRange.bound([t,""],[t+"\0",""],!1,!0);return tB(e,td).J(n).next(e=>{for(let n of e){if(n.collectionId!==t)break;r.push(eW(n.parent))}return r})}addFieldIndex(e,t){let r=tB(e,ty),n={indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;let i=r.add(n);if(t.indexState){let r=tB(e,tw);return i.next(e=>{r.put(iW(e,this.uid,t.indexState.sequenceNumber,t.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=tB(e,ty),n=tB(e,tw),i=tB(e,t_);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=tB(e,ty),r=tB(e,t_),n=tB(e,tw);return t.X().next(()=>r.X()).next(()=>n.X())}
4createTargetIndexes(e,t){return ek.forEach(this.vn(t),t=>this.getIndexType(e,t).next(r=>{if(0===r||1===r){let r=new i7(t).Sn();if(null!=r)return this.addFieldIndex(e,r)}}))}getDocumentsMatchingTarget(e,t){let r=tB(e,t_),n=!0,i=new Map;return ek.forEach(this.vn(t),t=>this.Fn(e,t).next(e=>{n&&(n=!!e),i.set(t,e)})).next(()=>{if(n){let e=nw(),n=[];return ek.forEach(i,(i,s)=>{D(sl,`Using index id=${i.indexId}|cg=${i.collectionGroup}|f=${i.fields.map(e=>`${e.fieldPath}:${e.kind}`).join(",")} to execute ${rZ(t)}`);let a=function(e,t){let r=em(t);if(void 0===r)return null;for(let t of r2(e,r.fieldPath))switch(t.op){case"array-contains-any":return t.value.arrayValue.values||[];case"array-contains":return[t.value]}return null}(s,i),o=function(e,t){let r=new Map;for(let n of ey(t))for(let t of r2(e,n.fieldPath))switch(t.op){case"==":case"in":r.set(n.fieldPath.canonicalString(),t.value);break;case"not-in":case"!=":return r.set(n.fieldPath.canonicalString(),t.value),Array.from(r.values())}return null}(s,i),l=function(e,t){let r=[],n=!0;for(let i of ey(t)){let t=0===i.kind?r3(e,i.fieldPath,e.startAt):r4(e,i.fieldPath,e.startAt);r.push(t.value),n&&(n=t.inclusive)}return new rN(r,n)}(s,i),u=function(e,t){let r=[],n=!0;for(let i of ey(t)){let t=0===i.kind?r4(e,i.fieldPath,e.endAt):r3(e,i.fieldPath,e.endAt);r.push(t.value),n&&(n=t.inclusive)}return new rN(r,n)}(s,i),h=this.Mn(i,s,l),c=this.Mn(i,s,u),d=this.xn(i,s,o),f=this.On(i.indexId,a,h,l.inclusive,c,u.inclusive,d);return ek.forEach(f,i=>r.Z(i,t.limit).next(t=>{t.forEach(t=>{let r=ei.fromSegments(t.documentKey);e.has(r)||(e=e.add(r),n.push(r))})}))}).next(()=>n)}return ek.resolve(null)})}vn(e){let t=this.Cn.get(e);return t||(t=0===e.filters.length?[e]:(function(e){if(0===e.getFilters().length)return[];let t=function e(t){if(M(t instanceof rM||t instanceof rV,34018),t instanceof rM)return t;if(1===t.filters.length)return e(t.filters[0]);let r=t.filters.map(t=>e(t)),n=rV.create(r,t.op);return sr(n=ss(n))?n:(M(n instanceof rV,64498),M(rF(n),40251),M(n.filters.length>1,57927),n.filters.reduce((e,t)=>sn(e,t)))}(function e(t){if(M(t instanceof rM||t instanceof rV,20012),t instanceof rM){if(t instanceof rW){let e=t.value.arrayValue?.values?.map(e=>rM.create(t.field,"==",e))||[];return rV.create(e,"or")}return t}let r=t.filters.map(t=>e(t));return rV.create(r,t.op)}(e));return M(sr(t),7391),se(t)||st(t)?[t]:t.getFilters()})(rV.create(e.filters,"and")).map(t=>rX(e.path,e.collectionGroup,e.orderBy,t.getFilters(),e.limit,e.startAt,e.endAt)),this.Cn.set(e,t)),t}On(e,t,r,n,i,s,a){let o=(null!=t?t.length:1)*Math.max(r.length,i.length),l=o/(null!=t?t.length:1),u=[];for(let h=0;h<o;++h){let o=t?this.Nn(t[h/l]):su,c=this.Bn(e,o,r[h%l],n),d=this.Ln(e,o,i[h%l],s),f=a.map(t=>this.Bn(e,o,t,!0));u.push(...this.createRange(c,d,f))}return u}Bn(e,t,r,n){let i=new i4(e,ei.empty(),t,r);return n?i:i.In()}Ln(e,t,r,n){let i=new i4(e,ei.empty(),t,r);return n?i.In():i}Fn(e,t){let r=new i7(t),n=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,n).next(e=>{let t=null;for(let n of e)r.gn(n)&&(!t||n.fields.length>t.fields.length)&&(t=n);return t})}getIndexType(e,t){let r=2,n=this.vn(t);return ek.forEach(n,t=>this.Fn(e,t).next(e=>{e?0!==r&&e.fields.length<function(e){let t=new tH(en.comparator),r=!1;for(let n of e.filters)for(let e of n.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?r=!0:t=t.add(e.field));for(let r of e.orderBy)r.field.isKeyField()||(t=t.add(r.field));return t.size+ +!!r}(t)&&(r=1):r=0})).next(()=>null!==t.limit&&n.length>1&&2===r?1:r)}kn(e,t){let r=new i3;for(let n of ey(e)){let e=t.data.field(n.fieldPath);if(null==e)return null;let i=r.ln(n.kind);iX.Wt.Dt(e,i)}return r.un()}Nn(e){let t=new i3;return iX.Wt.Dt(e,t.ln(0)),t.un()}qn(e,t){let r,n=new i3;return iX.Wt.Dt(ry(this.databaseId,t),n.ln(0===(r=ey(e)).length?0:r[r.length-1].kind)),n.un()}xn(e,t,r){if(null===r)return[];let n=[];n.push(new i3);let i=0;for(let s of ey(e)){let e=r[i++];for(let r of n)if(this.Kn(t,s.fieldPath)&&rw(e))n=this.Un(n,s,e);else{let t=r.ln(s.kind);iX.Wt.Dt(e,t)}}return this.$n(n)}Mn(e,t,r){return this.xn(e,t,r.position)}$n(e){let t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Un(e,t,r){let n=[...e],i=[];for(let e of r.arrayValue.values||[])for(let r of n){let n=new i3;n.seed(r.un()),iX.Wt.Dt(e,n.ln(t.kind)),i.push(n)}return i}Kn(e,t){return!!e.filters.find(e=>e instanceof rM&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=tB(e,ty),n=tB(e,tw);return(t?r.J(tv,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let t=[];
4return ek.forEach(e,e=>n.get([e.indexId,this.uid]).next(r=>{let n,i;t.push((n=r?new eI(r.sequenceNumber,new e_(ij(r.readTime),new ei(eW(r.documentKey)),r.largestBatchId)):eI.empty(),i=e.fields.map(([e,t])=>new ew(en.fromServerFormat(e),t)),new eg(e.indexId,e.collectionGroup,i,n)))})).next(()=>t)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{let r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!==r?r:Q(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,t,r){let n=tB(e,ty),i=tB(e,tw);return this.Wn(e).next(e=>n.J(tv,IDBKeyRange.bound(t,t)).next(t=>ek.forEach(t,t=>i.put(iW(t.indexId,this.uid,e,r)))))}updateIndexEntries(e,t){let r=new Map;return ek.forEach(t,(t,n)=>{let i=r.get(t.collectionGroup);return(i?ek.resolve(i):this.getFieldIndexes(e,t.collectionGroup)).next(i=>(r.set(t.collectionGroup,i),ek.forEach(i,r=>this.Qn(e,t,r).next(t=>{let i=this.Gn(n,r);return t.isEqual(i)?ek.resolve():this.zn(e,n,r,t,i)}))))})}jn(e,t,r,n){return tB(e,t_).put(n.Rn(this.uid,this.qn(r,t.key),t.key))}Jn(e,t,r,n){return tB(e,t_).delete(n.An(this.uid,this.qn(r,t.key),t.key))}Qn(e,t,r){let n=tB(e,t_),i=new tH(i5);return n.ee({index:tS,range:IDBKeyRange.only([r.indexId,this.uid,i8(this.qn(r,t))])},(e,n)=>{i=i.add(new i4(r.indexId,t,i9(n.arrayValue),i9(n.directionalValue)))}).next(()=>i)}Gn(e,t){let r=new tH(i5),n=this.kn(t,e);if(null==n)return r;let i=em(t);if(null!=i){let s=e.data.field(i.fieldPath);if(rw(s))for(let i of s.arrayValue.values||[])r=r.add(new i4(t.indexId,e.key,this.Nn(i),n))}else r=r.add(new i4(t.indexId,e.key,su,n));return r}zn(e,t,r,n,i){D(sl,"Updating index entries for document '%s'",t.key);let s=[];return function(e,t,r,n,i){let s=e.getIterator(),a=t.getIterator(),o=tQ(s),l=tQ(a);for(;o||l;){let e=!1,t=!1;if(o&&l){let n=r(o,l);n<0?t=!0:n>0&&(e=!0)}else null!=o?t=!0:e=!0;e?(n(l),l=tQ(a)):t?(i(o),o=tQ(s)):(o=tQ(s),l=tQ(a))}}(n,i,i5,n=>{s.push(this.jn(e,t,r,n))},n=>{s.push(this.Jn(e,t,r,n))}),ek.waitFor(s)}Wn(e){let t=1;return tB(e,tw).ee({index:tb,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,r,n)=>{n.done(),t=r.sequenceNumber+1}).next(()=>t)}createRange(e,t,r){r=r.sort((e,t)=>i5(e,t)).filter((e,t,r)=>!t||0!==i5(e,r[t-1]));let n=[];for(let i of(n.push(e),r)){let r=i5(i,e),s=i5(i,t);if(0===r)n[0]=e.In();else if(r>0&&s<0)n.push(i),n.push(i.In());else if(s>0)break}n.push(t);let i=[];for(let e=0;e<n.length;e+=2){if(this.Hn(n[e],n[e+1]))return[];let t=n[e].An(this.uid,su,ei.empty()),r=n[e+1].An(this.uid,su,ei.empty());i.push(IDBKeyRange.bound(t,r))}return i}Hn(e,t){return i5(e,t)>0}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(sc)}getMinOffset(e,t){return ek.mapArray(this.vn(t),t=>this.Fn(e,t).next(e=>e||O(44426))).next(sc)}}function sc(e){M(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let n=1;n<e.length;n++){let i=e[n].indexState.offset;0>eT(i,t)&&(t=i),r<i.largestBatchId&&(r=i.largestBatchId)}return new e_(t.readTime,t.documentKey,r)}let sd={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class sf{static withCacheSize(e){return new sf(e,sf.DEFAULT_COLLECTION_PERCENTILE,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function sp(e,t,r){let n=e.store(eZ),i=e.store(e4),s=[],a=IDBKeyRange.only(r.batchId),o=0,l=n.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{M(1===o,47070,{batchId:r.batchId})}));let u=[];for(let e of r.mutations){var h,c;let n=(h=e.key.path,c=r.batchId,[t,eH(h),c]);s.push(i.delete(n)),u.push(e.key)}return ek.waitFor(s).next(()=>u)}function sg(e){let t;if(!e)return 0;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw O(14731);t=e.noDocument}return JSON.stringify(t).length}sf.DEFAULT_COLLECTION_PERCENTILE=10,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,sf.DEFAULT=new sf(0x2800000,sf.DEFAULT_COLLECTION_PERCENTILE,sf.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),sf.DISABLED=new sf(-1,0,0);
4class sm{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Zn={}}static wt(e,t,r,n){return M(""!==e.uid,64387),new sm(e.isAuthenticated()?e.uid:"",t,r,n)}checkEmpty(e){let t=!0,r=IDBKeyRange.bound([this.userId,-1/0],[this.userId,1/0]);return sv(e).ee({index:e1,range:r},(e,r,n)=>{t=!1,n.done()}).next(()=>t)}addMutationBatch(e,t,r,n){let i=tB(e,e4),s=sv(e);return s.add({}).next(a=>{var o,l,u,h;let c,d;M("number"==typeof a,49019);let f=new nW(a,t,r,n),p=(o=this.serializer,l=this.userId,c=f.baseMutations.map(e=>iA(o.yt,e)),d=f.mutations.map(e=>iA(o.yt,e)),{userId:l,batchId:f.batchId,localWriteTimeMs:f.localWriteTime.toMillis(),baseMutations:c,mutations:d}),g=[],m=new tH((e,t)=>Q(e.canonicalString(),t.canonicalString()));for(let e of n){let t=(u=this.userId,h=e.key.path,[u,eH(h),a]);m=m.add(e.key.path.popLast()),g.push(s.put(p)),g.push(i.put(t,e3))}return m.forEach(t=>{g.push(this.indexManager.addToCollectionParentIndex(e,t))}),e.addOnCommittedListener(()=>{this.Zn[a]=f.keys()}),ek.waitFor(g).next(()=>f)})}lookupMutationBatch(e,t){return sv(e).get(t).next(e=>e?(M(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),iq(this.serializer,e)):null)}Xn(e,t){return this.Zn[t]?ek.resolve(this.Zn[t]):this.lookupMutationBatch(e,t).next(e=>{if(e){let r=e.keys();return this.Zn[t]=r,r}return null})}getNextMutationBatchAfterBatchId(e,t){let r=t+1,n=IDBKeyRange.lowerBound([this.userId,r]),i=null;return sv(e).ee({index:e1,range:n},(e,t,n)=>{t.userId===this.userId&&(M(t.batchId>=r,47524,{Yn:r}),i=iq(this.serializer,t)),n.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){let t=IDBKeyRange.upperBound([this.userId,1/0]),r=-1;return sv(e).ee({index:e1,range:t,reverse:!0},(e,t,n)=>{r=t.batchId,n.done()}).next(()=>r)}getAllMutationBatches(e){let t=IDBKeyRange.bound([this.userId,-1],[this.userId,1/0]);return sv(e).J(e1,t).next(e=>e.map(e=>iq(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(e,t){let r=[this.userId,eH(t.path)],n=IDBKeyRange.lowerBound(r),i=[];return tB(e,e4).ee({range:n},(r,n,s)=>{let[a,o,l]=r,u=eW(o);if(a===this.userId&&t.path.isEqual(u))return sv(e).get(l).next(e=>{if(!e)throw O(61480,{er:r,batchId:l});M(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:l}),i.push(iq(this.serializer,e))});s.done()}).next(()=>i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new tH(Q),n=[];return t.forEach(t=>{let i=[this.userId,eH(t.path)],s=IDBKeyRange.lowerBound(i),a=tB(e,e4).ee({range:s},(e,n,i)=>{let[s,a,o]=e,l=eW(a);s===this.userId&&t.path.isEqual(l)?r=r.add(o):i.done()});n.push(a)}),ek.waitFor(n).next(()=>this.tr(e,r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=[this.userId,eH(r)],s=IDBKeyRange.lowerBound(i),a=new tH(Q);return tB(e,e4).ee({range:s},(e,t,i)=>{let[s,o,l]=e,u=eW(o);s===this.userId&&r.isPrefixOf(u)?u.length===n&&(a=a.add(l)):i.done()}).next(()=>this.tr(e,a))}tr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(sv(e).get(t).next(e=>{if(null===e)throw O(35274,{batchId:t});M(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(iq(this.serializer,e))}))}),ek.waitFor(n).next(()=>r)}removeMutationBatch(e,t){return sp(e.le,this.userId,t).next(r=>(e.addOnCommittedListener(()=>{this.nr(t.batchId)}),ek.forEach(r,t=>this.referenceDelegate.markPotentiallyOrphaned(e,t))))}nr(e){delete this.Zn[e]}performConsistencyCheck(e){return this.checkEmpty(e).next(t=>{if(!t)return ek.resolve();let r=IDBKeyRange.lowerBound([this.userId]),n=[];return tB(e,e4).ee({range:r},(e,t,r)=>{if(e[0]===this.userId){let t=eW(e[1]);n.push(t)}else r.done()}).next(()=>{M(0===n.length,56720,{rr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return sy(e,this.userId,t)}ir(e){return tB(e,eX).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""})}}function sy(e,t,r){let n=[t,eH(r.path)],i=n[1],s=IDBKeyRange.lowerBound(n),a=!1;return tB(e,e4).ee({range:s,Y:!0},(e,r,n)=>{let[s,o,l]=e;s===t&&o===i&&(a=!0),n.done()}).next(()=>a)}function sv(e){return tB(e,eZ)}class sw{constructor(e){this.sr=e}next(){return this.sr+=2,this.sr}static _r(){return new sw(0)}static ar(){return new sw(-1)}}class sI{constructor(e,t){this.referenceDelegate=e,this.serializer
4=t}allocateTargetId(e){return this.ur(e).next(t=>{let r=new sw(t.highestTargetId);return t.highestTargetId=r.next(),this.cr(e,t).next(()=>t.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.ur(e).next(e=>ep.fromTimestamp(new ef(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.ur(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(e,t,r){return this.ur(e).next(n=>(n.highestListenSequenceNumber=t,r&&(n.lastRemoteSnapshotVersion=r.toTimestamp()),t>n.highestListenSequenceNumber&&(n.highestListenSequenceNumber=t),this.cr(e,n)))}addTargetData(e,t){return this.lr(e,t).next(()=>this.ur(e).next(r=>(r.targetCount+=1,this.hr(t,r),this.cr(e,r))))}updateTargetData(e,t){return this.lr(e,t)}removeTargetData(e,t){return this.removeMatchingKeysForTargetId(e,t.targetId).next(()=>tB(e,tn).delete(t.targetId)).next(()=>this.ur(e)).next(t=>(M(t.targetCount>0,8065),t.targetCount-=1,this.cr(e,t)))}removeTargets(e,t,r){let n=0,i=[];return tB(e,tn).ee((s,a)=>{let o=iz(a);o.sequenceNumber<=t&&null===r.get(o.targetId)&&(n++,i.push(this.removeTargetData(e,o)))}).next(()=>ek.waitFor(i)).next(()=>n)}forEachTarget(e,t){return tB(e,tn).ee((e,r)=>{t(iz(r))})}ur(e){return tB(e,tc).get(th).next(e=>(M(null!==e,2888),e))}cr(e,t){return tB(e,tc).put(th,t)}lr(e,t){return tB(e,tn).put(iK(this.serializer,t))}hr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),e.sequenceNumber>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.ur(e).next(e=>e.targetCount)}getTargetData(e,t){let r=rZ(t),n=IDBKeyRange.bound([r,-1/0],[r,1/0]),i=null;return tB(e,tn).ee({range:n,index:ti},(e,r,n)=>{let s=iz(r);r0(t,s.target)&&(i=s,n.done())}).next(()=>i)}addMatchingKeys(e,t,r){let n=[],i=sb(e);return t.forEach(t=>{let s=eH(t.path);n.push(i.put({targetId:r,path:s})),n.push(this.referenceDelegate.addReference(e,r,t))}),ek.waitFor(n)}removeMatchingKeys(e,t,r){let n=sb(e);return ek.forEach(t,t=>{let i=eH(t.path);return ek.waitFor([n.delete([r,i]),this.referenceDelegate.removeReference(e,r,t)])})}removeMatchingKeysForTargetId(e,t){let r=sb(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){let r=IDBKeyRange.bound([t],[t+1],!1,!0),n=sb(e),i=nw();return n.ee({range:r,Y:!0},(e,t,r)=>{let n=new ei(eW(e[1]));i=i.add(n)}).next(()=>i)}containsKey(e,t){let r=eH(t.path),n=IDBKeyRange.bound([r],[r+"\0"],!1,!0),i=0;return sb(e).ee({index:tl,Y:!0,range:n},([e,t],r,n)=>{0!==e&&(i++,n.done())}).next(()=>i>0)}At(e,t){return tB(e,tn).get(t).next(e=>e?iz(e):null)}}function sb(e){return tB(e,ta)}let sE="LruGarbageCollector";function s_([e,t],[r,n]){let i=Q(e,r);return 0===i?Q(t,n):i}class sT{constructor(e){this.Pr=e,this.buffer=new tH(s_),this.Tr=0}Er(){return++this.Tr}Ir(e){let t=[e,this.Er()];if(this.buffer.size<this.Pr)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();0>s_(t,e)&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class sS{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Ar(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Ar(e){D(sE,`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){eL(e)?D(sE,"Ignoring IndexedDB error during garbage collection: ",e):await eA(e)}await this.Ar(3e5)})}}class sC{constructor(e,t){this.Vr=e,this.params=t}calculateTargetCount(e,t){return this.Vr.dr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return ek.resolve(ez.ce);let r=new sT(t);return this.Vr.forEachTarget(e,e=>r.Ir(e.sequenceNumber)).next(()=>this.Vr.mr(e,e=>r.Ir(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Vr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Vr.removeOrphanedDocuments(e,t)}collect(e,t){return -1===this.params.cacheSizeCollectionThreshold?(D("LruGarbageCollector","Garbage collection skipped; disabled"),ek.resolve(sd)):this.getCacheSize(e).next(r=>r<this.params.cacheSizeCollectionThreshold?(D("LruGarbageCollector",`Garbage collection skipped; Cache size ${r} is lower than threshold ${this.params.cacheSizeCollectionThreshold}
4`),sd):this.gr(e,t))}getCacheSize(e){return this.Vr.getCacheSize(e)}gr(e,t){let r,n,i,s,a,o,l,u=Date.now();return this.calculateTargetCount(e,this.params.percentileToCollect).next(t=>(t>this.params.maximumSequenceNumbersToCollect?(D("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${t}`),n=this.params.maximumSequenceNumbersToCollect):n=t,s=Date.now(),this.nthSequenceNumber(e,n))).next(n=>(r=n,a=Date.now(),this.removeTargets(e,r,t))).next(t=>(i=t,o=Date.now(),this.removeOrphanedDocuments(e,r))).next(e=>(l=Date.now(),x()<=E.LogLevel.DEBUG&&D("LruGarbageCollector",`LRU Garbage Collection
5	Counted targets in ${s-u}ms
6	Determined least recently used ${n} in `+(a-s)+"ms\n"+`	Removed ${i} targets in `+(o-a)+"ms\n"+`	Removed ${e} documents in `+(l-o)+"ms\n"+`Total Duration: ${l-u}ms`),ek.resolve({didRun:!0,sequenceNumbersCollected:n,targetsRemoved:i,documentsRemoved:e})))}}class sA{constructor(e,t){this.db=e,this.garbageCollector=function(e,t){return new sC(e,t)}(this,t)}dr(e){let t=this.pr(e);return this.db.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}mr(e,t){return this.yr(e,(e,r)=>t(r))}addReference(e,t,r){return sk(e,r)}removeReference(e,t,r){return sk(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return sk(e,t)}wr(e,t){let r;return r=!1,tB(e,eX).te(n=>sy(e,n,t).next(e=>(e&&(r=!0),ek.resolve(!e)))).next(()=>r)}removeOrphanedDocuments(e,t){let r=this.db.getRemoteDocumentCache().newChangeBuffer(),n=[],i=0;return this.yr(e,(s,a)=>{if(a<=t){let t=this.wr(e,s).next(t=>{if(!t)return i++,r.getEntry(e,s).next(()=>(r.removeEntry(s,ep.min()),sb(e).delete([0,eH(s.path)])))});n.push(t)}}).next(()=>ek.waitFor(n)).next(()=>r.apply(e)).next(()=>i)}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return sk(e,t)}yr(e,t){let r=sb(e),n,i=ez.ce;return r.ee({index:tl},([e,r],{path:s,sequenceNumber:a})=>{0===e?(i!==ez.ce&&t(new ei(eW(n)),i),i=a,n=s):i=ez.ce}).next(()=>{i!==ez.ce&&t(new ei(eW(n)),i)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function sk(e,t){var r;return sb(e).put((r=e.currentSequenceNumber,{targetId:0,path:eH(t.path),sequenceNumber:r}))}class sx{constructor(){this.changes=new nc(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,rD.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();let r=this.changes.get(t);return void 0!==r?ek.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 sD{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return tB(e,e5).put(r)}removeEntry(e,t,r){let n;return tB(e,e5).delete([(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],iU(r),n[n.length-1]])}updateMetadata(e,t){return this.getMetadata(e).next(r=>(r.byteSize+=t,this.Sr(e,r)))}getEntry(e,t){let r=rD.newInvalidDocument(t);return tB(e,e5).ee({index:e8,range:IDBKeyRange.only(sR(t))},(e,n)=>{r=this.br(t,n)}).next(()=>r)}Dr(e,t){let r={size:0,document:rD.newInvalidDocument(t)};return tB(e,e5).ee({index:e8,range:IDBKeyRange.only(sR(t))},(e,n)=>{r={document:this.br(t,n),size:sg(n)}}).next(()=>r)}getEntries(e,t){let r=nd;return this.Cr(e,t,(e,t)=>{let n=this.br(e,t);r=r.insert(e,n)}).next(()=>r)}vr(e,t){let r=nd,n=new tK(ei.comparator);return this.Cr(e,t,(e,t)=>{let i=this.br(e,t);r=r.insert(e,i),n=n.insert(e,sg(t))}).next(()=>({documents:r,Fr:n}))}Cr(e,t,r){if(t.isEmpty())return ek.resolve();let n=new tH(sO);t.forEach(e=>n=n.add(e));let i=IDBKeyRange.bound(sR(n.first()),sR(n.last())),s=n.getIterator(),a=s.getNext();return tB(e,e5).ee({index:e8,range:i},(e,t,n)=>{let i=ei.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);for(;a&&0>sO(a,i);)r(a,null),a=s.getNext();a&&a.isEqual(i)&&(r(a,t),a=s.hasNext()?s.getNext():null),a?n.j(sR(a)):n.done()}).next(()=>{for(;a;)r(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,t,r,n,i){let s=t.path,a=[s.popLast().toArray(),s.lastSegment(),iU(r.readTime),r.documentKey.path.isEmpty()?"":r.documentKey.path.lastSegment()],o=[s.popLast().toArray(),s.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return tB(e,e5).J(IDBKeyRange.bound(a,o,!0)).next(e=>{i?.incrementDocumentReadCount(e.length);let r=nd;for(let i of e){let e=this.br(ei.fromSegments(i.prefixPath.concat(i.collectionGroup,i.documentId)),i);
6e.isFoundDocument()&&(nl(t,e)||n.has(e.key))&&(r=r.insert(e.key,e))}return r})}getAllFromCollectionGroup(e,t,r,n){let i=nd,s=sP(t,r),a=sP(t,e_.max());return tB(e,e5).ee({index:e7,range:IDBKeyRange.bound(s,a,!0)},(e,t,r)=>{let s=this.br(ei.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(i=i.insert(s.key,s)).size===n&&r.done()}).next(()=>i)}newChangeBuffer(e){return new sN(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return tB(e,tt).get(tr).next(e=>(M(!!e,20021),e))}Sr(e,t){return tB(e,tt).put(tr,t)}br(e,t){if(t){let e=function(e,t){var r;let n,i;if(t.document)n=iC(e.yt,t.document,!!t.hasCommittedMutations);else if(t.noDocument){let e=ei.fromSegments(t.noDocument.path),r=ij(t.noDocument.readTime);n=rD.newNoDocument(e,r),t.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!t.unknownDocument)return O(56709);{let e=ei.fromSegments(t.unknownDocument.path),r=ij(t.unknownDocument.version);n=rD.newUnknownDocument(e,r)}}return t.readTime&&n.setReadTime((i=new ef((r=t.readTime)[0],r[1]),ep.fromTimestamp(i))),n}(this.serializer,t);if(!(e.isNoDocument()&&e.version.isEqual(ep.min())))return e}return rD.newInvalidDocument(e)}}class sN extends sx{constructor(e,t){super(),this.Mr=e,this.trackRemovals=t,this.Or=new nc(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(e){let t=[],r=0,n=new tH((e,t)=>Q(e.canonicalString(),t.canonicalString()));
6return this.changes.forEach((i,s)=>{let a=this.Or.get(i);if(t.push(this.Mr.removeEntry(e,i,a.readTime)),s.isValidDocument()){let o=iF(this.Mr.serializer,s);n=n.add(i.path.popLast());let l=sg(o);r+=l-a.size,t.push(this.Mr.addEntry(e,i,o))}else if(r-=a.size,this.trackRemovals){let r=iF(this.Mr.serializer,s.convertToNoDocument(ep.min()));t.push(this.Mr.addEntry(e,i,r))}}),n.forEach(r=>{t.push(this.Mr.indexManager.addToCollectionParentIndex(e,r))}),t.push(this.Mr.updateMetadata(e,r)),ek.waitFor(t)}getFromCache(e,t){return this.Mr.Dr(e,t).next(e=>(this.Or.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Mr.vr(e,t).next(({documents:e,Fr:t})=>(t.forEach((t,r)=>{this.Or.set(t,{size:r,readTime:e.get(t).readTime})}),e))}}function sR(e){let t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function sP(e,t){let r=t.documentKey.path.toArray();return[e,iU(t.readTime),r.slice(0,r.length-2),r.length>0?r[r.length-1]:""]}function sO(e,t){let r=e.path.toArray(),n=t.path.toArray(),i=0;for(let e=0;e<r.length-2&&e<n.length-2;++e)if(i=Q(r[e],n[e]))return i;return(i=Q(r.length,n.length))||(i=Q(r[r.length-2],n[n.length-2]))||Q(r[r.length-1],n[n.length-1])}class sL{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class sM{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(e,t){let r=null;return this.documentOverlayCache.getOverlay(e,t).next(n=>(r=n,this.remoteDocumentCache.getEntry(e,t))).next(e=>(null!==r&&nU(r.mutation,e,tJ.empty(),ef.now()),e))}getDocuments(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.getLocalViewOfDocuments(e,t,nw()).next(()=>t))}getLocalViewOfDocuments(e,t,r=nw()){let n=nm();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let t=np();return e.forEach((e,r)=>{t=t.insert(e,r.overlayedDocument)}),t}))}getOverlayedDocuments(e,t){let r=nm();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,nw()))}populateOverlays(e,t,r){let n=[];return r.forEach(e=>{t.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,r)=>{t.set(e,r)})})}computeViews(e,t,r,n){let i=nd,s=nm(),a=nm();return t.forEach((e,t)=>{let a=r.get(t.key);n.has(t.key)&&(void 0===a||a.mutation instanceof nq)?i=i.insert(t.key,t):void 0!==a?(s.set(t.key,a.mutation.getFieldMask()),nU(a.mutation,t,a.mutation.getFieldMask(),ef.now())):s.set(t.key,tJ.empty())}),this.recalculateAndSaveOverlays(e,i).next(e=>(e.forEach((e,t)=>s.set(e,t)),t.forEach((e,t)=>a.set(e,new sL(t,s.get(e)??null))),a))}recalculateAndSaveOverlays(e,t){let r=nm(),n=new tK((e,t)=>e-t),i=nw();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,t).next(e=>{for(let i of e)i.keys().forEach(e=>{let s=t.get(e);if(null===s)return;let a=r.get(e)||tJ.empty();a=i.applyToLocalView(s,a),r.set(e,a);let o=(n.get(i.batchId)||nw()).add(e);n=n.insert(i.batchId,o)})}).next(()=>{let s=[],a=n.getReverseIterator();for(;a.hasNext();){let n=a.getNext(),o=n.key,l=n.value,u=nm();l.forEach(e=>{if(!i.has(e)){let n=nF(t.get(e),r.get(e));null!==n&&u.set(e,n),i=i.add(e)}}),s.push(this.documentOverlayCache.saveOverlays(e,o,u))}return ek.waitFor(s)}).next(()=>r)}recalculateAndSaveOverlaysForDocumentKeys(e,t){return this.remoteDocumentCache.getEntries(e,t).next(t=>this.recalculateAndSaveOverlays(e,t))}getDocumentsMatchingQuery(e,t,r,n){return ei.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):r9(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n)}getNextDocuments(e,t,r,n){return this.remoteDocumentCache.getAllFromCollectionGroup(e,t,r,n).next(i=>{let s=n-i.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,t,r.largestBatchId,n-i.size):ek.resolve(nm()),a=-1,o=i;return s.next(t=>
vendor: 4,366 bytes, line 6
6ek.forEach(t,(t,r)=>(a<r.largestBatchId&&(a=r.largestBatchId),i.get(t)?ek.resolve():this.remoteDocumentCache.getEntry(e,t).next(e=>{o=o.insert(t,e)}))).next(()=>this.populateOverlays(e,t,i)).next(()=>this.computeViews(e,o,t,nw())).next(e=>({batchId:a,changes:ng(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new ei(t)).next(e=>{let t=np();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(e,t,r,n){let i=t.collectionGroup,s=np();return this.indexManager.getCollectionParents(e,i).next(a=>ek.forEach(a,a=>{let o=new r5(a.child(i),null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(e,o,r,n).next(e=>{e.forEach((e,t)=>{s=s.insert(e,t)})})}).next(()=>s))}getDocumentsMatchingCollectionQuery(e,t,r,n){let i;return this.documentOverlayCache.getOverlaysForCollection(e,t.path,r.largestBatchId).next(s=>(i=s,this.remoteDocumentCache.getDocumentsMatchingQuery(e,t,r,i,n))).next(e=>{i.forEach((t,r)=>{let n=r.getKey();null===e.get(n)&&(e=e.insert(n,rD.newInvalidDocument(n)))});let r=np();return e.forEach((e,n)=>{let s=i.get(e);void 0!==s&&nU(s.mutation,n,tJ.empty(),ef.now()),nl(t,n)&&(r=r.insert(e,n))}),r})}}class sV{constructor(e){this.serializer=e,this.Nr=new Map,this.Br=new Map}getBundleMetadata(e,t){return ek.resolve(this.Nr.get(t))}saveBundleMetadata(e,t){return this.Nr.set(t.id,{id:t.id,version:t.version,createTime:ig(t.createTime)}),ek.resolve()}getNamedQuery(e,t){return ek.resolve(this.Br.get(t))}saveNamedQuery(e,t){return this.Br.set(t.name,{name:t.name,query:i$(t.bundledQuery),readTime:ig(t.readTime)}),ek.resolve()}}class sF{constructor(){this.overlays=new tK(ei.comparator),this.Lr=new Map}getOverlay(e,t){return ek.resolve(this.overlays.get(t))}getOverlays(e,t){let r=nm();return ek.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(e,t,r){return r.forEach((r,n)=>{this.St(e,t,n)}),ek.resolve()}removeOverlaysForBatchId(e,t,r){let n=this.Lr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Lr.delete(r)),ek.resolve()}getOverlaysForCollection(e,t,r){let n=nm(),i=t.length+1,s=new ei(t.child("")),a=this.overlays.getIteratorFrom(s);for(;a.hasNext();){let e=a.getNext().value,s=e.getKey();if(!t.isPrefixOf(s.path))break;s.path.length===i&&e.largestBatchId>r&&n.set(e.getKey(),e)}return ek.resolve(n)}getOverlaysForCollectionGroup(e,t,r,n){let i=new tK((e,t)=>e-t),s=this.overlays.getIterator();for(;s.hasNext();){let e=s.getNext().value;if(e.getKey().getCollectionGroup()===t&&e.largestBatchId>r){let t=i.get(e.largestBatchId);null===t&&(t=nm(),i=i.insert(e.largestBatchId,t)),t.set(e.getKey(),e)}}let a=nm(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=n)););return ek.resolve(a)}St(e,t,r){let n=this.overlays.get(r.key);if(null!==n){let e=this.Lr.get(n.largestBatchId).delete(r.key);this.Lr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new nJ(t,r));let i=this.Lr.get(t);void 0===i&&(i=nw(),this.Lr.set(t,i)),this.Lr.set(t,i.add(r.key))}}class sU{constructor(){this.sessionToken=tX.EMPTY_BYTE_STRING}getSessionToken(e){return ek.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,ek.resolve()}}class sB{constructor(){this.kr=new tH(sj.qr),this.Kr=new tH(sj.Ur)}isEmpty(){return this.kr.isEmpty()}addReference(e,t){let r=new sj(e,t);this.kr=this.kr.add(r),this.Kr=this.Kr.add(r)}$r(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Wr(new sj(e,t))}Qr(e,t){e.forEach(e=>this.removeReference(e,t))}Gr(e){let t=new ei(new et([])),r=new sj(t,e),n=new sj(t,e+1),i=[];return this.Kr.forEachInRange([r,n],e=>{this.Wr(e),i.push(e.key)}),i}zr(){this.kr.forEach(e=>this.Wr(e))}Wr(e){this.kr=this.kr.delete(e),this.Kr=this.Kr.delete(e)}jr(e){let t=new ei(new et([])),r=new sj(t,e),n=new sj(t,e+1),i=nw();return this.Kr.forEachInRange([r,n],e=>{i=i.add(e.key)}),i}containsKey(e){let t=new sj(e,0),r=this.kr.firstAfterOrEqual(t);return null!==r&&e.isEqual(r.key)}}class sj{constructor(e,t){this.key=e,this.Jr=t}static qr(e,t){return ei.comparator(e.key,t.key)||Q(e.Jr,t.Jr)}static Ur(e,t){return Q(e.Jr,t.Jr)||ei.comparator(e.key,t.key)}}class sq{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutation
6Queue=[],this.Yn=1,this.Hr=new tH(sj.qr)}checkEmpty(e){return ek.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){let i=this.Yn;this.Yn++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];let s=new nW(i,t,r,n);for(let t of(this.mutationQueue.push(s),n))this.Hr=this.Hr.add(new sj(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return ek.resolve(s)}lookupMutationBatch(e,t){return ek.resolve(this.Zr(t))}getNextMutationBatchAfterBatchId(e,t){let r=this.Xr(t+1),n=r<0?0:r;return ek.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return ek.resolve(0===this.mutationQueue.length?-1:this.Yn-1)}getAllMutationBatches(e){return ek.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new sj(t,0),n=new sj(t,1/0),i=[];return this.Hr.forEachInRange([r,n],e=>{let t=this.Zr(e.Jr);i.push(t)}),ek.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new tH(Q);return t.forEach(e=>{let t=new sj(e,0),n=new sj(e,1/0);this.Hr.forEachInRange([t,n],e=>{r=r.add(e.Jr)})}),ek.resolve(this.Yr(r))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;ei.isDocumentKey(i)||(i=i.child(""));let s=new sj(new ei(i),0),a=new tH(Q);return this.Hr.forEachWhile(e=>{let t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Jr)),!0)},s),ek.resolve(this.Yr(a))}Yr(e){let t=[];return e.forEach(e=>{let r=this.Zr(e);null!==r&&t.push(r)}),t}removeMutationBatch(e,t){M(0===this.ei(t.batchId,"removed"),55003),this.mutationQueue.shift();let r=this.Hr;return ek.forEach(t.mutations,n=>{let i=new sj(n.key,t.batchId);return r=r.delete(i),this.referenceDelegate.markPotentiallyOrphaned(e,n.key)}).next(()=>{this.Hr=r})}nr(e){}containsKey(e,t){let r=new sj(t,0),n=this.Hr.firstAfterOrEqual(r);return ek.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,ek.resolve()}ei(e,t){return this.Xr(e)}Xr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Zr(e){let t=this.Xr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class sz{constructor(e){this.ti=e,this.docs=new tK(ei.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){let r=t.key,n=this.docs.get(r),i=n?n.size:0,s=this.ti(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:s}),this.size+=s-i,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){let t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){let r=this.docs.get(t);return ek.resolve(r?r.document.mutableCopy():rD.newInvalidDocument(t))}getEntries(e,t){let r=nd;return t.forEach(e=>{let t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():rD.newInvalidDocument(e))}),ek.resolve(r)}getDocumentsMatchingQuery(e,t,r,n){let i=nd,s=t.path,a=new ei(s.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(a);for(;o.hasNext();){let{key:e,value:{document:a}}=o.getNext();if(!s.isPrefixOf(e.path))break;e.path.length>s.length+1||0>=eT(eE(a),r)||(n.has(a.key)||nl(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return ek.resolve(i)}getAllFromCollectionGroup(e,t,r,n){O(9500)}ni(e,t){return ek.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new sK(this)}getSize(e){return ek.resolve(this.size)}}class sK extends sx{constructor(e){super(),this.Mr=e}applyChanges(e){let t=[];
vendor: 4,120 bytes, line 6
6return this.changes.forEach((r,n)=>{n.isValidDocument()?t.push(this.Mr.addEntry(e,n)):this.Mr.removeEntry(r)}),ek.waitFor(t)}getFromCache(e,t){return this.Mr.getEntry(e,t)}getAllFromCache(e,t){return this.Mr.getEntries(e,t)}}class s${constructor(e){this.persistence=e,this.ri=new nc(e=>rZ(e),r0),this.lastRemoteSnapshotVersion=ep.min(),this.highestTargetId=0,this.ii=0,this.si=new sB,this.targetCount=0,this.oi=sw._r()}forEachTarget(e,t){return this.ri.forEach((e,r)=>t(r)),ek.resolve()}getLastRemoteSnapshotVersion(e){return ek.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return ek.resolve(this.ii)}allocateTargetId(e){return this.highestTargetId=this.oi.next(),ek.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.ii&&(this.ii=t),ek.resolve()}lr(e){this.ri.set(e.target,e);let t=e.targetId;t>this.highestTargetId&&(this.oi=new sw(t),this.highestTargetId=t),e.sequenceNumber>this.ii&&(this.ii=e.sequenceNumber)}addTargetData(e,t){return this.lr(t),this.targetCount+=1,ek.resolve()}updateTargetData(e,t){return this.lr(t),ek.resolve()}removeTargetData(e,t){return this.ri.delete(t.target),this.si.Gr(t.targetId),this.targetCount-=1,ek.resolve()}removeTargets(e,t,r){let n=0,i=[];return this.ri.forEach((s,a)=>{a.sequenceNumber<=t&&null===r.get(a.targetId)&&(this.ri.delete(s),i.push(this.removeMatchingKeysForTargetId(e,a.targetId)),n++)}),ek.waitFor(i).next(()=>n)}getTargetCount(e){return ek.resolve(this.targetCount)}getTargetData(e,t){let r=this.ri.get(t)||null;return ek.resolve(r)}addMatchingKeys(e,t,r){return this.si.$r(t,r),ek.resolve()}removeMatchingKeys(e,t,r){this.si.Qr(t,r);let n=this.persistence.referenceDelegate,i=[];return n&&t.forEach(t=>{i.push(n.markPotentiallyOrphaned(e,t))}),ek.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.si.Gr(t),ek.resolve()}getMatchingKeysForTargetId(e,t){let r=this.si.jr(t);return ek.resolve(r)}containsKey(e,t){return ek.resolve(this.si.containsKey(t))}}class sG{constructor(e,t){this._i={},this.overlays={},this.ai=new ez(0),this.ui=!1,this.ui=!0,this.ci=new sU,this.referenceDelegate=e(this),this.li=new s$(this),this.indexManager=new sa,this.remoteDocumentCache=function(e){return new sz(e)}(e=>this.referenceDelegate.hi(e)),this.serializer=new iV(t),this.Pi=new sV(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.ui=!1,Promise.resolve()}get started(){return this.ui}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new sF,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this._i[e.toKey()];return r||(r=new sq(t,this.referenceDelegate),this._i[e.toKey()]=r),r}getGlobalsCache(){return this.ci}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Pi}runTransaction(e,t,r){D("MemoryPersistence","Starting transaction:",e);let n=new sH(this.ai.next());return this.referenceDelegate.Ti(),r(n).next(e=>this.referenceDelegate.Ei(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ii(e,t){return ek.or(Object.values(this._i).map(r=>()=>r.containsKey(e,t)))}}class sH extends eC{constructor(e){super(),this.currentSequenceNumber=e}}class sW{constructor(e){this.persistence=e,this.Ri=new sB,this.Ai=null}static Vi(e){return new sW(e)}get di(){if(this.Ai)return this.Ai;throw O(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.di.delete(r.toString()),ek.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.di.add(r.toString()),ek.resolve()}markPotentiallyOrphaned(e,t){return this.di.add(t.toString()),ek.resolve()}removeTarget(e,t){this.Ri.Gr(t.targetId).forEach(e=>this.di.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.di.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ti(){this.Ai=new Set}Ei(e){let t=this.persistence.getRemoteDocumentCache().newChangeBuffer();return ek.forEach(this.di,r=>{let n=ei.fromPath(r);
6return this.mi(e,n).next(e=>{e||t.removeEntry(n,ep.min())})}).next(()=>(this.Ai=null,t.apply(e)))}updateLimboDocument(e,t){return this.mi(e,t).next(e=>{e?this.di.delete(t.toString()):this.di.add(t.toString())})}hi(e){return 0}mi(e,t){return ek.or([()=>ek.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ii(e,t)])}}class sQ{constructor(e,t){this.persistence=e,this.fi=new nc(e=>eH(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=function(e,t){return new sC(e,t)}(this,t)}static Vi(e,t){return new sQ(e,t)}Ti(){}Ei(e){return ek.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}dr(e){let t=this.pr(e);return this.persistence.getTargetCache().getTargetCount(e).next(e=>t.next(t=>e+t))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}mr(e,t){return ek.forEach(this.fi,(r,n)=>this.wr(e,r,n).next(e=>e?ek.resolve():t(n)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,t){let r=0,n=this.persistence.getRemoteDocumentCache(),i=n.newChangeBuffer();return n.ni(e,n=>this.wr(e,n,t).next(e=>{e||(r++,i.removeEntry(n,ep.min()))})).next(()=>i.apply(e)).next(()=>r)}markPotentiallyOrphaned(e,t){return this.fi.set(t,e.currentSequenceNumber),ek.resolve()}removeTarget(e,t){let r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),ek.resolve()}removeReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),ek.resolve()}updateLimboDocument(e,t){return this.fi.set(t,e.currentSequenceNumber),ek.resolve()}hi(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function e(t){switch(rh(t)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:let r=t9(t);return r?16+e(r):16;case 5:return 2*t.stringValue.length;case 6:return t2(t.bytesValue).approximateByteSize();case 7:return t.referenceValue.length;case 9:return(t.arrayValue.values||[]).reduce((t,r)=>t+e(r),0);case 10:case 11:var n;let i;return n=t.mapValue,i=0,tq(n.fields,(t,r)=>{i+=t.length+e(r)}),i;default:throw O(13486,{value:t})}}(e.data.value)),t}wr(e,t,r){return ek.or([()=>this.persistence.Ii(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{let e=this.fi.get(t);return ek.resolve(void 0!==e&&e>r)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class sJ{constructor(e){this.serializer=e}k(e,t,r,n){let i=new eD("createOrUpgrade",t);r<1&&n>=1&&(e.createObjectStore(eJ),e.createObjectStore(eX,{keyPath:"userId"}),e.createObjectStore(eZ,{keyPath:e0,autoIncrement:!0}).createIndex(e1,e2,{unique:!0}),e.createObjectStore(e4),sY(e),e.createObjectStore(eQ));let s=ek.resolve();return r<3&&n>=3&&(0!==r&&(e.deleteObjectStore(ta),e.deleteObjectStore(tn),e.deleteObjectStore(tc),sY(e)),s=s.next(()=>{let e,t;return e=i.store(tc),t={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:ep.min().toTimestamp(),targetCount:0},e.put(th,t)})),r<4&&n>=4&&(0!==r&&(s=s.next(()=>i.store(eZ).J().next(t=>{e.deleteObjectStore(eZ),e.createObjectStore(eZ,{keyPath:e0,autoIncrement:!0}).createIndex(e1,e2,{unique:!0});let r=i.store(eZ),n=t.map(e=>r.put(e));return ek.waitFor(n)}))),s=s.next(()=>{e.createObjectStore(tp,{keyPath:"clientId"})})),r<5&&n>=5&&(s=s.next(()=>this.gi(i))),r<6&&n>=6&&(s=s.next(()=>(e.createObjectStore(tt),this.pi(i)))),r<7&&n>=7&&(s=s.next(()=>this.yi(i))),r<8&&n>=8&&(s=s.next(()=>this.wi(e,i))),r<9&&n>=9&&(s=s.next(()=>{e.objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&n>=10&&(s=s.next(()=>this.Si(i))),r<11&&n>=11&&(s=s.next(()=>{e.createObjectStore(tg,{keyPath:"bundleId"}),e.createObjectStore(tm,{keyPath:"name"})})),r<12&&n>=12&&(s=s.next(()=>{let t;(t=e.createObjectStore(tA,{keyPath:tk})).createIndex(tx,tD,{unique:!1}),t.createIndex(tN,tR,{unique:!1})})),r<13&&n>=13&&(s=s.next(()=>{let t;(t=e.createObjectStore(e5,{keyPath:e6})).createIndex(e8,e9),t.createIndex(e7,te)}).next(()=>this.bi(e,i)).next(()=>e.deleteObjectStore(eQ))),r<14&&n>=14&&(s=s.next(()=>this.Di(e,i))),r<15&&n>=15&&(s=s.next(()=>{e.createObjectStore(ty,{keyPath:"indexId",autoIncrement:!0}).createIndex(tv,"collectionGroup",{unique:!1}),e.createObjectStore(tw,{keyPath:tI}).createIndex(tb,tE,{unique:!1}),e.createObjectStore(t_,{keyPath:tT}).createIndex(tS,tC,{unique:!1})}
6)),r<16&&n>=16&&(s=s.next(()=>{t.objectStore(tw).clear()}).next(()=>{t.objectStore(t_).clear()})),r<17&&n>=17&&(s=s.next(()=>{e.createObjectStore(tP,{keyPath:"name"})})),r<18&&n>=18&&(0,w.isSafariOrWebkit)()&&(s=s.next(()=>{t.objectStore(tw).clear()}).next(()=>{t.objectStore(t_).clear()})),s}pi(e){let t=0;return e.store(eQ).ee((e,r)=>{t+=sg(r)}).next(()=>{let r={byteSize:t};return e.store(tt).put(tr,r)})}gi(e){let t=e.store(eX),r=e.store(eZ);return t.J().next(t=>ek.forEach(t,t=>{let n=IDBKeyRange.bound([t.userId,-1],[t.userId,t.lastAcknowledgedBatchId]);return r.J(e1,n).next(r=>ek.forEach(r,r=>{M(r.userId===t.userId,18650,"Cannot process batch from unexpected user",{batchId:r.batchId});let n=iq(this.serializer,r);return sp(e,t.userId,n).next(()=>{})}))}))}yi(e){let t=e.store(ta),r=e.store(eQ);return e.store(tc).get(th).next(e=>{let n=[];return r.ee((r,i)=>{let s=new et(r),a=[0,eH(s)];n.push(t.get(a).next(r=>r?ek.resolve():t.put({targetId:0,path:eH(s),sequenceNumber:e.highestListenSequenceNumber})))}).next(()=>ek.waitFor(n))})}wi(e,t){e.createObjectStore(td,{keyPath:tf});let r=t.store(td),n=new so,i=e=>{if(n.add(e)){let t=e.lastSegment(),n=e.popLast();return r.put({collectionId:t,parent:eH(n)})}};return t.store(eQ).ee({Y:!0},(e,t)=>i(new et(e).popLast())).next(()=>t.store(e4).ee({Y:!0},([e,t,r],n)=>i(eW(t).popLast())))}Si(e){let t=e.store(tn);return t.ee((e,r)=>{let n=iz(r),i=iK(this.serializer,n);return t.put(i)})}bi(e,t){let r=t.store(eQ),n=[];return r.ee((e,r)=>{let i=t.store(e5),s=(r.document?new ei(et.fromString(r.document.name).popFirst(5)):r.noDocument?ei.fromSegments(r.noDocument.path):r.unknownDocument?ei.fromSegments(r.unknownDocument.path):O(36783)).path.toArray(),a={prefixPath:s.slice(0,s.length-2),collectionGroup:s[s.length-2],documentId:s[s.length-1],readTime:r.readTime||[0,0],unknownDocument:r.unknownDocument,noDocument:r.noDocument,document:r.document,hasCommittedMutations:!!r.hasCommittedMutations};n.push(i.put(a))}).next(()=>ek.waitFor(n))}Di(e,t){let r=t.store(eZ),n=new sD(this.serializer),i=new sG(sW.Vi,this.serializer.yt);return r.J().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??nw();iq(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),ek.forEach(r,(e,r)=>{let s=new S(r),a=iJ.wt(this.serializer,s),o=i.getIndexManager(s);return new sM(n,sm.wt(s,this.serializer,o,i.referenceDelegate),a,o).recalculateAndSaveOverlaysForDocumentKeys(new tU(t,ez.ce),e).next()})})}}function sY(e){e.createObjectStore(ta,{keyPath:to}).createIndex(tl,tu,{unique:!0}),e.createObjectStore(tn,{keyPath:"targetId"}).createIndex(ti,ts,{unique:!0}),e.createObjectStore(tc)}let sX="IndexedDbPersistence",sZ="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 s0{constructor(e,t,r,n,i,s,a,o,l,u,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ci=i,this.window=s,this.document=a,this.Fi=l,this.Mi=u,this.xi=h,this.ai=null,this.ui=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Oi=null,this.inForeground=!1,this.Ni=null,this.Bi=null,this.Li=-1/0,this.ki=e=>Promise.resolve(),!s0.v())throw new F(V.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new sA(this,n),this.qi=t+"main",this.serializer=new iV(o),this.Ki=new eN(this.qi,this.xi,new sJ(this.serializer)),this.ci=new iY,this.li=new sI(this.referenceDelegate,this.serializer),this.remoteDocumentCache=function(e){return new sD(e)}(this.serializer),this.Pi=new iQ,this.window&&this.window.localStorage?this.Ui=this.window.localStorage:(this.Ui=null,!1===u&&N(sX,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.$i().then(()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new F(V.FAILED_PRECONDITION,sZ);return this.Wi(),this.Qi(),this.Gi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.li.getHighestSequenceNumber(e))}).then(e=>{this.ai=new ez(e,this.Fi)}).then(()=>{this.ui=!0}).catch(e=>(this.Ki&&this.Ki.close(),Promise.reject(e)))}zi(e){return this.ki=async t=>{if(this.started)return e(t)},e(this.isPrimary)}setDatabaseDeletedListener(e){this.Ki.K(async t=>{null===t.newVersion&&await e()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ci.enqueueAndForget(async()=>{this.started&&await this.$i()}))}$i(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",e=>tB(e,tp).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.ji(e).next(e=>{e||(this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)))})}).next(()=>this.Ji(e)).next(t=>this.isPrimary&&!t?this.Hi(e).next(()=>!1):!!t&&this.Zi(e).next(()=>!0))).catch(e=>{if(eL(e))return D(sX,"Failed to extend owner lease: ",e),this.isPrimary;if(!this.allowTabSynchronization)throw e;return D(sX,"Releasing owner lease after error during lease refresh",e),!1}).then(e=>{this.isPrimary!==e&&this.Ci.enqueueRetryable(()=>this.ki(e)),this.isPrimary=e})}ji(e){return tB(e,eJ).get(eY).next(e=>ek.resolve(this.Xi(e)))}Yi(e){return tB(e,tp).delete(this.clientId)}async es(){if(this.isPrimary&&!this.ts(this.Li,18e5)){this.Li=Date.now();let e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let t=tB(e,tp);return t.J().next(e=>{let r=this.ns(e,18e5),n=e.filter(e=>-1===r.indexOf(e));
6return ek.forEach(n,e=>t.delete(e.clientId)).next(()=>n)})}).catch(()=>[]);if(this.Ui)for(let t of e)this.Ui.removeItem(this.rs(t.clientId))}}Gi(){this.Bi=this.Ci.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.$i().then(()=>this.es()).then(()=>this.Gi()))}Xi(e){return!!e&&e.ownerId===this.clientId}Ji(e){return this.Mi?ek.resolve(!0):tB(e,eJ).get(eY).next(t=>{if(null!==t&&this.ts(t.leaseTimestampMs,5e3)&&!this.ss(t.ownerId)){if(this.Xi(t)&&this.networkEnabled)return!0;if(!this.Xi(t)){if(!t.allowTabSynchronization)throw new F(V.FAILED_PRECONDITION,sZ);return!1}}return!(!this.networkEnabled||!this.inForeground)||tB(e,tp).J().next(e=>void 0===this.ns(e,5e3).find(e=>{if(this.clientId!==e.clientId){let 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&&D(sX,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.ui=!1,this._s(),this.Bi&&(this.Bi.cancel(),this.Bi=null),this.us(),this.cs(),await this.Ki.runTransaction("shutdown","readwrite",[eJ,tp],e=>{let t=new tU(e,ez.ce);return this.Hi(t).next(()=>this.Yi(t))}),this.Ki.close(),this.ls()}ns(e,t){return e.filter(e=>this.ts(e.updateTimeMs,t)&&!this.ss(e.clientId))}hs(){return this.runTransaction("getActiveClients","readonly",e=>tB(e,tp).J().next(e=>this.ns(e,18e5).map(e=>e.clientId)))}get started(){return this.ui}getGlobalsCache(){return this.ci}getMutationQueue(e,t){return sm.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new sh(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return iJ.wt(this.serializer,e)}getBundleCache(){return this.Pi}runTransaction(e,t,r){var n;let i;D(sX,"Starting transaction:",e);let s=18===(n=this.xi)||17===n?tF:16===n||15===n?tV:14===n||13===n?tM:12===n?tL:11===n?tO:void O(60245);return this.Ki.runTransaction(e,"readonly"===t?"readonly":"readwrite",s,n=>(i=new tU(n,this.ai?this.ai.next():ez.ce),"readwrite-primary"===t?this.ji(i).next(e=>!!e||this.Ji(i)).next(t=>{if(!t)throw N(`Failed to obtain primary lease for action '${e}'.`),this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)),new F(V.FAILED_PRECONDITION,eS);return r(i)}).next(e=>this.Zi(i).next(()=>e)):this.Ps(i).next(()=>r(i)))).then(e=>(i.raiseOnCommittedEvent(),e))}Ps(e){return tB(e,eJ).get(eY).next(e=>{if(null!==e&&this.ts(e.leaseTimestampMs,5e3)&&!this.ss(e.ownerId)&&!this.Xi(e)&&!(this.Mi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new F(V.FAILED_PRECONDITION,sZ)})}Zi(e){let t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return tB(e,eJ).put(eY,t)}static v(){return eN.v()}Hi(e){let t=tB(e,eJ);return t.get(eY).next(e=>
6this.Xi(e)?(D(sX,"Releasing primary lease."),t.delete(eY)):ek.resolve())}ts(e,t){let r=Date.now();return!(e<r-t)&&(!(e>r)||(N(`Detected an update time that is in the future: ${e} > ${r}`),!1))}Wi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ni=()=>{this.Ci.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.$i()))},this.document.addEventListener("visibilitychange",this.Ni),this.inForeground="visible"===this.document.visibilityState)}us(){this.Ni&&(this.document.removeEventListener("visibilitychange",this.Ni),this.Ni=null)}Qi(){"function"==typeof this.window?.addEventListener&&(this.Oi=()=>{this._s();let e=/(?:Version|Mobile)\/1[456]/;(0,w.isSafari)()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ci.enterRestrictedMode(!0),this.Ci.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Oi))}cs(){this.Oi&&(this.window.removeEventListener("pagehide",this.Oi),this.Oi=null)}ss(e){try{let t=null!==this.Ui?.getItem(this.rs(e));return D(sX,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return N(sX,"Failed to get zombied client id.",e),!1}}_s(){if(this.Ui)try{this.Ui.setItem(this.rs(this.clientId),String(Date.now()))}catch(e){N("Failed to set zombie client id.",e)}}ls(){if(this.Ui)try{this.Ui.removeItem(this.rs(this.clientId))}catch(e){}}rs(e){return`firestore_zombie_${this.persistenceKey}_${e}`}}function s1(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class s2{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Ts=r,this.Es=n}static Is(e,t){let r=nw(),n=nw();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 s2(e,t.fromCache,r,n)}}class s3{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class s4{constructor(){this.Rs=!1,this.As=!1,this.Vs=100,this.ds=(0,w.isSafari)()?8:eR((0,w.getUA)())>0?6:4}initialize(e,t){this.fs=e,this.indexManager=t,this.Rs=!0}getDocumentsMatchingQuery(e,t,r,n){let i={result:null};return this.gs(e,t).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ps(e,t,n,r).next(e=>{i.result=e})}).next(()=>{if(i.result)return;let r=new s3;return this.ys(e,t,r).next(n=>{if(i.result=n,this.As)return this.ws(e,t,r,n.size)})}).next(()=>i.result)}ws(e,t,r,n){return r.documentReadCount<this.Vs?(x()<=E.LogLevel.DEBUG&&D("QueryEngine","SDK will not create cache indexes for query:",no(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Vs,"documents"),ek.resolve()):(x()<=E.LogLevel.DEBUG&&D("QueryEngine","Query:",no(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ds*n?(x()<=E.LogLevel.DEBUG&&D("QueryEngine","The SDK decides to create cache indexes for query:",no(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ne(t))):ek.resolve())}gs(e,t){if(r8(t))return ek.resolve(null);let r=ne(t);return this.indexManager.getIndexType(e,r).next(n=>0===n?null:(null!==t.limit&&1===n&&(r=ne(t=ni(t,null,"F"))),this.indexManager.getDocumentsMatchingTarget(e,r).next(n=>{let i=nw(...n);return this.fs.getDocuments(e,i).next(n=>this.indexManager.getMinOffset(e,r).next(r=>{let s=this.Ss(t,n);return this.bs(t,s,i,r.readTime)?this.gs(e,ni(t,null,"F")):this.Ds(e,s,t,r)}))})))}ps(e,t,r,n){return r8(t)||n.isEqual(ep.min())?ek.resolve(null):this.fs.getDocuments(e,r).next(i=>{let s=this.Ss(t,i);return this.bs(t,s,r,n)?ek.resolve(null):(x()<=E.LogLevel.DEBUG&&D("QueryEngine","Re-using previous result from %s to execute query: %s",n.toString(),no(t)),this.Ds(e,s,t,eb(n,-1)).next(e=>e))})}Ss(e,t){let r=new tH(nh(e));return t.forEach((t,n)=>{nl(e,n)&&(r=r.add(n))}),r}bs(e,t,r,n){if(null===e.limit)return!1;if(r.size!==t.size)return!0;let i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||i.version.compareTo(n)>0)}ys(e,t,r){return x()<=E.LogLevel.DEBUG&&D("QueryEngine","Using full collection scan to execute query:",no(t)),this.fs.getDocumentsMatchingQuery(e,t,e_.min(),r)}Ds(e,t,r,n){return this.fs.getDocumentsMatchingQuery(e,r,n).next(e=>(t.forEach(t=>{e=e.insert(t.key,t)}),e))}}let s5="LocalStore";class s6{constructor(e,t,r,n){this.persistence=e,this.Cs=t,this.serializer
6=n,this.vs=new tK(Q),this.Fs=new nc(e=>rZ(e),r0),this.Ms=new Map,this.xs=e.getRemoteDocumentCache(),this.li=e.getTargetCache(),this.Pi=e.getBundleCache(),this.Os(r)}Os(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new sM(this.xs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.xs.setIndexManager(this.indexManager),this.Cs.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",t=>e.collect(t,this.vs))}}async function s8(e,t){return await e.persistence.runTransaction("Handle user change","readonly",r=>{let n;return e.mutationQueue.getAllMutationBatches(r).next(i=>(n=i,e.Os(t),e.mutationQueue.getAllMutationBatches(r))).next(t=>{let i=[],s=[],a=nw();for(let e of n)for(let t of(i.push(e.batchId),e.mutations))a=a.add(t.key);for(let e of t)for(let t of(s.push(e.batchId),e.mutations))a=a.add(t.key);return e.localDocuments.getDocuments(r,a).next(e=>({Ns:e,removedBatchIds:i,addedBatchIds:s}))})})}function s9(e){return e.persistence.runTransaction("Get last remote snapshot version","readonly",t=>e.li.getLastRemoteSnapshotVersion(t))}function s7(e,t,r){let n=nw(),i=nw();return r.forEach(e=>n=n.add(e)),t.getEntries(e,n).next(e=>{let n=nd;return r.forEach((r,s)=>{let a=e.get(r);s.isFoundDocument()!==a.isFoundDocument()&&(i=i.add(r)),s.isNoDocument()&&s.version.isEqual(ep.min())?(t.removeEntry(r,s.readTime),n=n.insert(r,s)):!a.isValidDocument()||s.version.compareTo(a.version)>0||0===s.version.compareTo(a.version)&&a.hasPendingWrites?(t.addEntry(s),n=n.insert(r,s)):D(s5,"Ignoring outdated watch update for ",r,". Current version:",a.version," Watch version:",s.version)}),{Bs:n,Ls:i}})}function ae(e,t){return e.persistence.runTransaction("Allocate target","readwrite",r=>{let n;return e.li.getTargetData(r,t).next(i=>i?(n=i,ek.resolve(n)):e.li.allocateTargetId(r).next(i=>(n=new iM(t,i,"TargetPurposeListen",r.currentSequenceNumber),e.li.addTargetData(r,n).next(()=>n))))}).then(r=>{let n=e.vs.get(r.targetId);return(null===n||r.snapshotVersion.compareTo(n.snapshotVersion)>0)&&(e.vs=e.vs.insert(r.targetId,r),e.Fs.set(t,r.targetId)),r})}async function at(e,t,r){let n=e.vs.get(t);try{r||await e.persistence.runTransaction("Release target",r?"readwrite":"readwrite-primary",t=>e.persistence.referenceDelegate.removeTarget(t,n))}catch(e){if(!eL(e))throw e;D(s5,`Failed to update sequence numbers for target ${t}: ${e}`)}e.vs=e.vs.remove(t),e.Fs.delete(n.target)}function ar(e,t,r){let n=ep.min(),i=nw();return e.persistence.runTransaction("Execute query","readwrite",s=>{var a;let o;return(a=ne(t),void 0!==(o=e.Fs.get(a))?ek.resolve(e.vs.get(o)):e.li.getTargetData(s,a)).next(t=>{if(t)return n=t.lastLimboFreeSnapshotVersion,e.li.getMatchingKeysForTargetId(s,t.targetId).next(e=>{i=e})}).next(()=>e.Cs.getDocumentsMatchingQuery(s,t,r?n:ep.min(),r?i:nw())).next(r=>(as(e,nu(t),r),{documents:r,ks:i}))})}function an(e,t){let r=e.li,n=e.vs.get(t);return n?Promise.resolve(n.target):e.persistence.runTransaction("Get target data","readonly",e=>r.At(e,t).next(e=>e?e.target:null))}function ai(e,t){let r=e.Ms.get(t)||ep.min();return e.persistence.runTransaction("Get new document changes","readonly",n=>e.xs.getAllFromCollectionGroup(n,t,eb(r,-1),Number.MAX_SAFE_INTEGER)).then(r=>(as(e,t,r),r))}function as(e,t,r){let n=e.Ms.get(t)||ep.min();r.forEach((e,t)=>{t.readTime.compareTo(n)>0&&(n=t.readTime)}),e.Ms.set(t,n)}async function aa(e,t,r,n){let i=nw(),s=nd;for(let e of r){let r=t.qs(e.metadata.name);e.document&&(i=i.add(r));let n=t.Ks(e);n.setReadTime(t.Us(e.metadata.readTime)),s=s.insert(r,n)}let a=e.xs.newChangeBuffer({trackRemovals:!0}),o=await ae(e,ne(r6(et.fromString(`__bundle__/docs/${n}`))));return e.persistence.runTransaction("Apply bundle documents","readwrite",t=>s7(t,a,s).next(e=>(a.apply(t),e)).next(r=>e.li.removeMatchingKeysForTargetId(t,o.targetId).next(()=>e.li.addMatchingKeys(t,i,o.targetId)).next(()=>e.localDocuments.getLocalViewOfDocuments(t,r.Bs,r.Ls)).next(()=>r.Bs)))}async function ao(e,t,r=nw()){let n=await ae(e,ne(i$(t.bundledQuery)));return e.persistence.runTransaction("Save named query","readwrite",i=>{let s=ig(t.readTime);if(n.snapshotVersion.compareTo(s)>=0)return e.Pi.saveNamedQuery(i,t);let a=n.withResumeToken(tX.EMPTY_BYTE_STRING,s);return e.vs=e.vs.insert(a.targetId,a),e.li.updateTargetData(i,a).next(()=>e.li.removeMatchingKeysForTargetId(i,n.targetId)).next(()=>e.li.addMatchingKeys(i,r,n.targetId)).next(()=>e.Pi.saveNamedQuery(i,t))})}let al="firestore_clients";function au(e,t){return`${al}_${e}_${t}`}let ah="firestore_mutations";function ac(e,t,r){let n=`${ah}_${e}_${r}`;return t.isAuthenticated()&&(n+=`_${t.uid}`),n}let ad="firestore_targets";function af(e,t){return`${ad}_${e}_${t}`}
6let ap="SharedClientState";class ag{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static $s(e,t,r){let n=JSON.parse(r),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 F(n.error.code,n.error.message)),s?new ag(e,t,n.state,i):(N(ap,`Failed to parse mutation state for ID '${t}': ${r}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class am{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static $s(e,t){let r=JSON.parse(t),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 F(r.error.code,r.error.message)),i?new am(e,r.state,n):(N(ap,`Failed to parse target state for ID '${e}': ${t}`),null)}Ws(){let e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class ay{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static $s(e,t){let r=JSON.parse(t),n="object"==typeof r&&r.activeTargetIds instanceof Array,i=nI;for(let e=0;n&&e<r.activeTargetIds.length;++e)n=eG(r.activeTargetIds[e]),i=i.add(r.activeTargetIds[e]);return n?new ay(e,i):(N(ap,`Failed to parse client data for instance '${e}': ${t}`),null)}}class av{constructor(e,t){this.clientId=e,this.onlineState=t}static $s(e){let t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new av(t.clientId,t.onlineState):(N(ap,`Failed to parse online state: ${e}`),null)}}class aw{constructor(){this.activeTargetIds=nI}Qs(e){this.activeTargetIds=this.activeTargetIds.add(e)}Gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Ws(){return JSON.stringify({activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()})}}class aI{constructor(e,t,r,n,i){this.window=e,this.Ci=t,this.persistenceKey=r,this.zs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.js=this.Js.bind(this),this.Hs=new tK(Q),this.started=!1,this.Zs=[];const s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Xs=au(this.persistenceKey,this.zs),this.Ys=function(e){return`firestore_sequence_number_${e}`}(this.persistenceKey),this.Hs=this.Hs.insert(this.zs,new aw),this.eo=RegExp(`^${al}_${s}_([^_]*)$`),this.no=RegExp(`^${ah}_${s}_(\\d+)(?:_(.*))?$`),this.ro=RegExp(`^${ad}_${s}_(\\d+)$`),this.io=function(e){return`firestore_online_state_${e}`}(this.persistenceKey),this.so=function(e){return`firestore_bundle_loaded_v2_${e}`}(this.persistenceKey),this.window.addEventListener("storage",this.js)}static v(e){return!(!e||!e.localStorage)}async start(){for(let e of(await this.syncEngine.hs())){if(e===this.zs)continue;let t=this.getItem(au(this.persistenceKey,e));if(t){let r=ay.$s(e,t);r&&(this.Hs=this.Hs.insert(r.clientId,r))}}this.oo();let e=this.storage.getItem(this.io);if(e){let t=this._o(e);t&&this.ao(t)}for(let e of this.Zs)this.Js(e);this.Zs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Ys,JSON.stringify(e))}getAllActiveQueryTargets(){return this.uo(this.Hs)}isActiveQueryTarget(e){let t=!1;return this.Hs.forEach((r,n)=>{n.activeTargetIds.has(e)&&(t=!0)}),t}addPendingMutation(e){this.co(e,"pending")}updateMutationState(e,t,r){this.co(e,t,r),this.lo(e)}addLocalQueryTarget(e,t=!0){let r="not-current";if(this.isActiveQueryTarget(e)){let t=this.storage.getItem(af(this.persistenceKey,e));if(t){let n=am.$s(e,t);n&&(r=n.state)}}return t&&this.ho.Qs(e),this.oo(),r}removeLocalQueryTarget(e){this.ho.Gs(e),this.oo()}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(af(this.persistenceKey,e))}updateQueryState(e,t,r){this.Po(e,t,r)}
6handleUserChange(e,t,r){t.forEach(e=>{this.lo(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.To(e)}notifyBundleLoaded(e){this.Eo(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.js),this.removeItem(this.Xs),this.started=!1)}getItem(e){let t=this.storage.getItem(e);return D(ap,"READ",e,t),t}setItem(e,t){D(ap,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){D(ap,"REMOVE",e),this.storage.removeItem(e)}Js(e){if(e.storageArea===this.storage){if(D(ap,"EVENT",e.key,e.newValue),e.key===this.Xs)return void N("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.Ci.enqueueRetryable(async()=>{if(this.started){if(null!==e.key){if(this.eo.test(e.key)){if(null==e.newValue){let t=this.Io(e.key);return this.Ro(t,null)}{let t=this.Ao(e.key,e.newValue);if(t)return this.Ro(t.clientId,t)}}else if(this.no.test(e.key)){if(null!==e.newValue){let t=this.Vo(e.key,e.newValue);if(t)return this.mo(t)}}else if(this.ro.test(e.key)){if(null!==e.newValue){let t=this.fo(e.key,e.newValue);if(t)return this.po(t)}}else if(e.key===this.io){if(null!==e.newValue){let t=this._o(e.newValue);if(t)return this.ao(t)}}else if(e.key===this.Ys){let t=function(e){let t=ez.ce;if(null!=e)try{let r=JSON.parse(e);M("number"==typeof r,30636,{yo:e}),t=r}catch(e){N(ap,"Failed to read sequence number from WebStorage",e)}return t}(e.newValue);t!==ez.ce&&this.sequenceNumberHandler(t)}else if(e.key===this.so){let t=this.wo(e.newValue);await Promise.all(t.map(e=>this.syncEngine.So(e)))}}}else this.Zs.push(e)})}}get ho(){return this.Hs.get(this.zs)}oo(){this.setItem(this.Xs,this.ho.Ws())}co(e,t,r){let n=new ag(this.currentUser,e,t,r),i=ac(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Ws())}lo(e){let t=ac(this.persistenceKey,this.currentUser,e);this.removeItem(t)}To(e){let t={clientId:this.zs,onlineState:e};this.storage.setItem(this.io,JSON.stringify(t))}Po(e,t,r){let n=af(this.persistenceKey,e),i=new am(e,t,r);this.setItem(n,i.Ws())}Eo(e){let t=JSON.stringify(Array.from(e));this.setItem(this.so,t)}Io(e){let t=this.eo.exec(e);return t?t[1]:null}Ao(e,t){let r=this.Io(e);return ay.$s(r,t)}Vo(e,t){let r=this.no.exec(e),n=Number(r[1]),i=void 0!==r[2]?r[2]:null;return ag.$s(new S(i),n,t)}fo(e,t){let r=Number(this.ro.exec(e)[1]);return am.$s(r,t)}_o(e){return av.$s(e)}wo(e){return JSON.parse(e)}async mo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.bo(e.batchId,e.state,e.error);D(ap,`Ignoring mutation for non-active user ${e.user.uid}`)}po(e){return this.syncEngine.Do(e.targetId,e.state,e.error)}Ro(e,t){let r=t?this.Hs.insert(e,t):this.Hs.remove(e),n=this.uo(this.Hs),i=this.uo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Co(s,a).then(()=>{this.Hs=r})}ao(e){this.Hs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}uo(e){let t=nI;return e.forEach((e,r)=>{t=t.unionWith(r.activeTargetIds)}),t}}class ab{constructor(){this.vo=new aw,this.Fo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.vo.Qs(e),this.Fo[e]||"not-current"}updateQueryState(e,t,r){this.Fo[e]=t}removeLocalQueryTarget(e){this.vo.Gs(e)}isLocalQueryTarget(e){return this.vo.activeTargetIds.has(e)}clearQueryState(e){delete this.Fo[e]}getAllActiveQueryTargets(){return this.vo.activeTargetIds}isActiveQueryTarget(e){return this.vo.activeTargetIds.has(e)}start(){return this.vo=new aw,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class aE{Mo(e){}shutdown(){}}let a_="ConnectivityMonitor";class aT{constructor(){this.xo=()=>this.Oo(),this.No=()=>this.Bo(),this.Lo=[],this.ko()}Mo(e){this.Lo.push(e)}shutdown(){window.removeEventListener("online",this.xo),window.removeEventListener("offline",this.No)}ko(){window.addEventListener("online",this.xo),window.addEventListener("offline",this.No)}Oo(){for(let e of(D(a_,"Network connectivity changed: AVAILABLE"),this.Lo))e(0)}Bo(){for(let e of(D(a_,"Network connectivity changed: UNAVAILABLE"),this.Lo))e(1)}static v(){return"u">typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let aS=null;function aC(){return null===aS?aS=0x10000000+Math.round(0x80000000*Math.random()):aS++,"0x"+aS.toString(16)}let aA="RestConnection",ak={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregation
6Query:"runAggregationQuery",ExecutePipeline:"executePipeline"};class ax{get qo(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.Ko=t+"://"+e.host,this.Uo=`projects/${r}/databases/${n}`,this.$o=this.databaseId.database===rt?`project_id=${r}`:`project_id=${r}&database_id=${n}`}Wo(e,t,r,n,i){let s=aC(),a=this.Qo(e,t.toUriEncodedString());D(aA,`Sending RPC '${e}' ${s}:`,a,r);let o={"google-cloud-resource-prefix":this.Uo,"x-goog-request-params":this.$o};this.Go(o,n,i);let{host:l}=new URL(a),u=(0,w.isCloudWorkstation)(l);return this.zo(e,a,o,r,u).then(t=>(D(aA,`Received RPC '${e}' ${s}: `,t),t),t=>{throw R(aA,`RPC '${e}' ${s} failed with error: `,t,"url: ",a,"request:",r),t})}jo(e,t,r,n,i,s){return this.Wo(e,t,r,n,i)}Go(e,t,r){e["X-Goog-Api-Client"]="gl-js/ fire/"+C,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),t&&t.headers.forEach((t,r)=>e[r]=t),r&&r.headers.forEach((t,r)=>e[r]=t)}Qo(e,t){let r=ak[e],n=`${this.Ko}/v1/${t}:${r}`;return this.databaseInfo.apiKey&&(n=`${n}?key=${encodeURIComponent(this.databaseInfo.apiKey)}`),n}terminate(){}}class aD{constructor(e){this.Jo=e.Jo,this.Ho=e.Ho}Zo(e){this.Xo=e}Yo(e){this.e_=e}t_(e){this.n_=e}onMessage(e){this.r_=e}close(){this.Ho()}send(e){this.Jo(e)}i_(){this.Xo()}s_(){this.e_()}o_(e){this.n_(e)}__(e){this.r_(e)}}let aN="WebChannelConnection",aR=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};class aP extends ax{constructor(e){super(e),this.a_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}static u_(){aP.c_||(aR(u(),l.STAT_EVENT,e=>{e.stat===o.PROXY?D(aN,"STAT_EVENT: detected buffering proxy"):e.stat===o.NOPROXY&&D(aN,"STAT_EVENT: detected no buffering proxy")}),aP.c_=!0)}zo(e,t,r,i,o){let l=aC();return new Promise((o,u)=>{let h=new n;h.setWithCredentials(!0),h.listenOnce(s.COMPLETE,()=>{try{switch(h.getLastErrorCode()){case a.NO_ERROR:let t=h.getResponseJson();D(aN,`XHR for RPC '${e}' ${l} received:`,JSON.stringify(t)),o(t);break;case a.TIMEOUT:D(aN,`RPC '${e}' ${l} timed out`),u(new F(V.DEADLINE_EXCEEDED,"Request time out"));break;case a.HTTP_ERROR:let r=h.getStatus();if(D(aN,`RPC '${e}' ${l} failed with status:`,r,"response text:",h.getResponseText()),r>0){let e=h.getResponseJson();Array.isArray(e)&&(e=e[0]);let t=e?.error;if(t&&t.status&&t.message){let e,r=(e=t.status.toLowerCase().replace(/_/g,"-"),Object.values(V).indexOf(e)>=0?e:V.UNKNOWN);u(new F(r,t.message))}else u(new F(V.UNKNOWN,"Server responded with status "+h.getStatus()))}else u(new F(V.UNAVAILABLE,"Connection failed."));break;default:O(9055,{l_:e,streamId:l,h_:h.getLastErrorCode(),P_:h.getLastError()})}}finally{D(aN,`RPC '${e}' ${l} completed.`)}});let c=JSON.stringify(i);D(aN,`RPC '${e}' ${l} sending request:`,i),h.send(t,"POST",c,r,15)})}T_(e,t,r){let n=aC(),s=[this.Ko,"/","google.firestore.v1.Firestore","/",e,"/channel"],a=this.createWebChannelTransport(),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.Go(o.initMessageHeaders,t,r),o.encodeInitMessageHeaders=!0;let u=s.join("");D(aN,`Creating RPC '${e}' stream ${n}: ${u}`,o);let h=a.createWebChannel(u,o);this.E_(h);let d=!1,f=!1,p=new aD({Jo:t=>{f?D(aN,`Not sending because RPC '${e}' stream ${n} is closed:`,t):(d||(D(aN,`Opening RPC '${e}' stream ${n} transport.`),h.open(),d=!0),D(aN,`RPC '${e}' stream ${n} sending:`,t),h.send(t))},Ho:()=>h.close()});return aR(h,i.EventType.OPEN,()=>{f||(D(aN,`RPC '${e}' stream ${n} transport opened.`),p.i_())}),aR(h,i.EventType.CLOSE,()=>{f||(f=!0,D(aN,`RPC '${e}' stream ${n} transport closed`),p.o_(),this.I_(h))}
6),aR(h,i.EventType.ERROR,t=>{f||(f=!0,R(aN,`RPC '${e}' stream ${n} transport errored. Name:`,t.name,"Message:",t.message),p.o_(new F(V.UNAVAILABLE,"The operation could not be completed")))}),aR(h,i.EventType.MESSAGE,t=>{if(!f){let r=t.data[0];M(!!r,16349);let i=r?.error||r[0]?.error;if(i){D(aN,`RPC '${e}' stream ${n} received error:`,i);let t=i.status,r=function(e){let t=c[e];if(void 0!==t)return nZ(t)}(t),s=i.message;"NOT_FOUND"===t&&s.includes("database")&&s.includes("does not exist")&&s.includes(this.databaseId.database)&&R(`Database '${this.databaseId.database}' not found. Please check your project configuration.`),void 0===r&&(r=V.INTERNAL,s="Unknown error status: "+t+" with message "+i.message),f=!0,p.o_(new F(r,s)),h.close()}else D(aN,`RPC '${e}' stream ${n} received:`,r),p.__(r)}}),aP.u_(),setTimeout(()=>{p.s_()},0),p}terminate(){this.a_.forEach(e=>e.close()),this.a_=[]}E_(e){this.a_.push(e)}I_(e){this.a_=this.a_.filter(t=>t===e)}Go(e,t,r){super.Go(e,t,r),this.databaseInfo.apiKey&&(e["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return h()}}function aO(){return"u">typeof window?window:null}function aL(){return"u">typeof document?document:null}function aM(e){return new ih(e,!0)}aP.c_=!1;class aV{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ci=e,this.timerId=t,this.R_=r,this.A_=n,this.V_=i,this.d_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.d_=0}g_(){this.d_=this.V_}p_(e){this.cancel();let t=Math.floor(this.d_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);n>0&&D("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.d_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.m_=this.Ci.enqueueAfterDelay(this.timerId,n,()=>(this.f_=Date.now(),e())),this.d_*=this.A_,this.d_<this.R_&&(this.d_=this.R_),this.d_>this.V_&&(this.d_=this.V_)}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.d_}}let aF="PersistentStream";class aU{constructor(e,t,r,n,i,s,a,o){this.Ci=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 aV(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.Ci.enqueueAfterDelay(this.S_,6e4,()=>this.k_()))}q_(e){this.K_(),this.stream.send(e)}async k_(){if(this.O_())return this.close(0)}K_(){this.C_&&(this.C_.cancel(),this.C_=null)}U_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.K_(),this.U_(),this.M_.cancel(),this.D_++,4!==e?this.M_.reset():t&&t.code===V.RESOURCE_EXHAUSTED?(N(t.toString()),N("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===V.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.W_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.t_(t)}W_(){}auth(){this.state=1;let e=this.Q_(this.D_),t=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,r])=>{this.D_===t&&this.G_(e,r)},t=>{e(()=>{let e=new F(V.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.Q_(this.D_);this.stream=this.j_(e,t),this.stream.Zo(()=>{r(()=>this.listener.Zo())}),this.stream.Yo(()=>{r(()=>(this.state=2,this.v_=this.Ci.enqueueAfterDelay(this.b_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.Yo()))}),this.stream.t_(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 D(aF,`close with error: ${e}`),this.stream=null,this.close(4,e)}Q_(e){return t=>{this.Ci.enqueueAndForget(()=>this.D_===e?t():(D(aF,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class aB extends aU{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
6=i}j_(e,t){return this.connection.T_("Listen",e,t)}J_(e){return this.onNext(e)}onNext(e){this.M_.reset();let t=function(e,t){let r;if("targetChange"in t){var n,i;t.targetChange;let s="NO_CHANGE"===(n=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===n?1:"REMOVE"===n?2:"CURRENT"===n?3:"RESET"===n?4:O(39313,{state:n}),a=t.targetChange.targetIds||[],o=(i=t.targetChange.resumeToken,e.useProto3Json?(M(void 0===i||"string"==typeof i,58123),tX.fromBase64String(i||"")):(M(void 0===i||i instanceof v.Buffer||i instanceof Uint8Array,16193),tX.fromUint8Array(i||new Uint8Array))),l=t.targetChange.cause;r=new it(s,a,o,l&&new F(void 0===l.code?V.UNKNOWN:nZ(l.code),l.message||"")||null)}else if("documentChange"in t){t.documentChange;let n=t.documentChange;n.document,n.document.name,n.document.updateTime;let i=iI(e,n.document.name),s=ig(n.document.updateTime),a=n.document.createTime?ig(n.document.createTime):ep.min(),o=new rx({mapValue:{fields:n.document.fields}}),l=rD.newFoundDocument(i,s,a,o);r=new n7(n.targetIds||[],n.removedTargetIds||[],l.key,l)}else if("documentDelete"in t){t.documentDelete;let n=t.documentDelete;n.document;let i=iI(e,n.document),s=n.readTime?ig(n.readTime):ep.min(),a=rD.newNoDocument(i,s);r=new n7([],n.removedTargetIds||[],a.key,a)}else if("documentRemove"in t){t.documentRemove;let n=t.documentRemove;n.document;let i=iI(e,n.document);r=new n7([],n.removedTargetIds||[],i,null)}else{if(!("filter"in t))return O(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;let{count:n=0,unchangedNames:i}=e,s=new nY(n,i);r=new ie(e.targetId,s)}}return r}(this.serializer,e),r=function(e){if(!("targetChange"in e))return ep.min();let t=e.targetChange;return t.targetIds&&t.targetIds.length?ep.min():t.readTime?ig(t.readTime):ep.min()}(e);return this.listener.H_(t,r)}Z_(e){let t,r={};r.database=i_(this.serializer),r.addTarget=function(e,t){let r,n=t.target;if((r=r1(n)?{documents:ix(e,n)}:{query:iD(e,n).ft}).targetId=t.targetId,t.resumeToken.approximateByteSize()>0){r.resumeToken=ip(e,t.resumeToken);let n=ic(e,t.expectedCount);null!==n&&(r.expectedCount=n)}else if(t.snapshotVersion.compareTo(ep.min())>0){r.readTime=id(e,t.snapshotVersion.toTimestamp());let n=ic(e,t.expectedCount);null!==n&&(r.expectedCount=n)}return r}(this.serializer,e);let n=(this.serializer,null==(t=function(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 O(28987,{purpose:e})}}(e.purpose))?null:{"goog-listen-tags":t});n&&(r.labels=n),this.q_(r)}X_(e){let t={};t.database=i_(this.serializer),t.removeTarget=e,this.q_(t)}}class aj extends aU{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 Y_(){return this.F_>0}start(){this.lastStreamToken=void 0,super.start()}W_(){this.Y_&&this.ea([])}j_(e,t){return this.connection.T_("Write",e,t)}J_(e){return M(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,M(!e.writeResults||0===e.writeResults.length,55816),this.listener.ta()}onNext(e){var t,r;M(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.M_.reset();let n=(t=e.writeResults,r=e.commitTime,t&&t.length>0?(M(void 0!==r,14353),t.map(e=>{let t;return(t=e.updateTime?ig(e.updateTime):ig(r)).isEqual(ep.min())&&(t=ig(r)),new nO(t,e.transformResults||[])})):[]),i=ig(e.commitTime);return this.listener.na(i,n)}ra(){let e={};e.database=i_(this.serializer),this.q_(e)}ea(e){let t={streamToken:this.lastStreamToken,writes:e.map(e=>iA(this.serializer,e))};this.q_(t)}}class aq{}class az extends aq{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 F(V.FAILED_PRECONDITION,"The client has already been terminated.")}Wo(e,t,r,n){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([i,s])=>this.connection.Wo(e,iy(t,r),n,i,s)).catch(e=>{throw"FirebaseError"===e.name?(e.code===V.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new F(V.UNKNOWN,e.toString())})}jo(e,t,r,n,i){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([s,a])=>this.connection.jo(e,iy(t,r),n,s,a,i)).catch(e=>{throw"FirebaseError"===e.name?(e.code===V.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new F(V.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class aK{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++,this.oa>=1&&(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){let t=`Could not reach Cloud Firestore backend. ${e}
7This 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?(N(t),this.aa=!1):D("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let a$="RemoteStore";class aG{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ta=[],this.Ea=new Map,this.Ia=new Set,this.Ra=[],this.Aa=i,this.Aa.Mo(e=>{r.enqueueAndForget(async()=>
7{a1(this)&&(D(a$,"Restarting streams for network reachability change."),await async function(e){e.Ia.add(4),await aW(e),e.Va.set("Unknown"),e.Ia.delete(4),await aH(e)}(this))})}),this.Va=new aK(r,n)}}async function aH(e){if(a1(e))for(let t of e.Ra)await t(!0)}async function aW(e){for(let t of e.Ra)await t(!1)}function aQ(e,t){e.Ea.has(t.targetId)||(e.Ea.set(t.targetId,t),a0(e)?aZ(e):oo(e).O_()&&aY(e,t))}function aJ(e,t){let r=oo(e);e.Ea.delete(t),r.O_()&&aX(e,t),0===e.Ea.size&&(r.O_()?r.L_():a1(e)&&e.Va.set("Unknown"))}function aY(e,t){if(e.da.$e(t.targetId),t.resumeToken.approximateByteSize()>0||t.snapshotVersion.compareTo(ep.min())>0){let r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size;t=t.withExpectedCount(r)}oo(e).Z_(t)}function aX(e,t){e.da.$e(t),oo(e).X_(t)}function aZ(e){e.da=new ii({getRemoteKeysForTarget:t=>e.remoteSyncer.getRemoteKeysForTarget(t),At:t=>e.Ea.get(t)||null,ht:()=>e.datastore.serializer.databaseId}),oo(e).start(),e.Va.ua()}function a0(e){return a1(e)&&!oo(e).x_()&&e.Ea.size>0}function a1(e){return 0===e.Ia.size}async function a2(e){e.Va.set("Online")}async function a3(e){e.Ea.forEach((t,r)=>{aY(e,t)})}async function a4(e,t){e.da=void 0,a0(e)?(e.Va.ha(t),aZ(e)):e.Va.set("Unknown")}async function a5(e,t,r){if(e.Va.set("Online"),t instanceof it&&2===t.state&&t.cause)try{await async function(e,t){let r=t.cause;for(let n of t.targetIds)e.Ea.has(n)&&(await e.remoteSyncer.rejectListen(n,r),e.Ea.delete(n),e.da.removeTarget(n))}(e,t)}catch(r){D(a$,"Failed to remove targets %s: %s ",t.targetIds.join(","),r),await a6(e,r)}else if(t instanceof n7?e.da.Xe(t):t instanceof ie?e.da.st(t):e.da.tt(t),!r.isEqual(ep.min()))try{let t,n=await s9(e.localStore);r.compareTo(n)>
7=0&&await ((t=e.da.Tt(r)).targetChanges.forEach((t,n)=>{if(t.resumeToken.approximateByteSize()>0){let i=e.Ea.get(n);i&&e.Ea.set(n,i.withResumeToken(t.resumeToken,r))}}),t.targetMismatches.forEach((t,r)=>{let n=e.Ea.get(t);if(!n)return;e.Ea.set(t,n.withResumeToken(tX.EMPTY_BYTE_STRING,n.snapshotVersion)),aX(e,t);let i=new iM(n.target,t,r,n.sequenceNumber);aY(e,i)}),e.remoteSyncer.applyRemoteEvent(t))}catch(t){D(a$,"Failed to raise snapshot:",t),await a6(e,t)}}async function a6(e,t,r){if(!eL(t))throw t;e.Ia.add(1),await aW(e),e.Va.set("Offline"),r||(r=()=>s9(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{D(a$,"Retrying IndexedDB access"),await r(),e.Ia.delete(1),await aH(e)})}function a8(e,t){return t().catch(r=>a6(e,r,t))}async function a9(e){var t;let r=ol(e),n=e.Ta.length>0?e.Ta[e.Ta.length-1].batchId:-1;for(;a1(t=e)&&t.Ta.length<10;)try{let t=await function(e,t){return e.persistence.runTransaction("Get next mutation batch","readonly",r=>(void 0===t&&(t=-1),e.mutationQueue.getNextMutationBatchAfterBatchId(r,t)))}(e.localStore,n);if(null===t){0===e.Ta.length&&r.L_();break}n=t.batchId,function(e,t){e.Ta.push(t);let r=ol(e);r.O_()&&r.Y_&&r.ea(t.mutations)}(e,t)}catch(t){await a6(e,t)}a7(e)&&oe(e)}function a7(e){return a1(e)&&!ol(e).x_()&&e.Ta.length>0}function oe(e){ol(e).start()}async function ot(e){ol(e).ra()}async function or(e){let t=ol(e);for(let r of e.Ta)t.ea(r.mutations)}async function on(e,t,r){let n=e.Ta.shift(),i=nQ.from(n,t,r);await a8(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await a9(e)}async function oi(e,t){t&&ol(e).Y_&&await async function(e,t){var r;if(nX(r=t.code)&&r!==V.ABORTED){let r=e.Ta.shift();ol(e).B_(),await a8(e,()=>e.remoteSyncer.rejectFailedWrite(r.batchId,t)),await a9(e)}}(e,t),a7(e)&&oe(e)}async function os(e,t){e.asyncQueue.verifyOperationInProgress(),D(a$,"RemoteStore received new credentials");let r=a1(e);e.Ia.add(3),await aW(e),r&&e.Va.set("Unknown"),await e.remoteSyncer.handleCredentialChange(t),e.Ia.delete(3),await aH(e)}async function oa(e,t){t?(e.Ia.delete(2),await aH(e)):t||(e.Ia.add(2),await aW(e),e.Va.set("Unknown"))}function oo(e){var t,r,n;return e.ma||(t=e.datastore,r=e.asyncQueue,n={Zo:a2.bind(null,e),Yo:a3.bind(null,e),t_:a4.bind(null,e),H_:a5.bind(null,e)},t.sa(),e.ma=new aB(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.ma.B_(),a0(e)?aZ(e):e.Va.set("Unknown")):(await e.ma.stop(),e.da=void 0)})),e.ma}function ol(e){var t,r,n;return e.fa||(t=e.datastore,r=e.asyncQueue,n={Zo:()=>Promise.resolve(),Yo:ot.bind(null,e),t_:oi.bind(null,e),ta:or.bind(null,e),na:on.bind(null,e)},t.sa(),e.fa=new aj(r,t.connection,t.authCredentials,t.appCheckCredentials,t.serializer,n),e.Ra.push(async t=>{t?(e.fa.B_(),await a9(e)):(await e.fa.stop(),e.Ta.length>0&&(D(a$,`Stopping write stream with ${e.Ta.length} pending writes`),e.Ta=[]))})),e.fa}class ou{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new U,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){let s=new ou(e,t,Date.now()+r,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 F(V.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 oh(e,t){if(N("AsyncQueue",`${t}: ${e}`),eL(e))return new F(V.UNAVAILABLE,`${t}: ${e}`);throw e}class oc{static emptySet(e){return new oc(e.comparator)}constructor(e){this.comparator=e?(t,r)=>e(t,r)||ei.comparator(t.key,r.key):(e,t)=>ei.comparator(e.key,t.key),this.keyedMap=np(),this.sortedSet=new tK(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){let t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((t,r)=>(e(t),!1))}add(e){let t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){let t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof oc)||this.size!==e.size)return!1;let t=this.sortedSet.getIterator(),r=e.sortedSet.getIterator();for(;t.hasNext();){let e=t.getNext().key,n=r.getNext().key;if(!e.isEqual(n))return!1}return!0}toString(){let e=[];return this.forEach(t=>{e.push(t.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n  "+e.join("  \n")+"\n)"}copy(e,t){let r=new oc;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class od{constructor(){this.ga=new tK(ei.comparator)}track(e){let 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}):O(63341,{Vt:e,pa:r}):this.ga=this.ga.insert(t,e)}ya(){let e=[];return this.ga.inorderTraversal((t,r)=>{e.push(r)}),e}}class of{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=[];
7return t.forEach(e=>{s.push({type:0,doc:e})}),new of(e,t,oc.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)&&ns(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++)if(t[e].type!==r[e].type||!t[e].doc.isEqual(r[e].doc))return!1;return!0}}class op{constructor(){this.wa=void 0,this.Sa=[]}ba(){return this.Sa.some(e=>e.Da())}}class og{constructor(){this.queries=om(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e;let t;e=new F(V.ABORTED,"Firestore shutting down"),t=this.queries,this.queries=om(),t.forEach((t,r)=>{for(let t of r.Sa)t.onError(e)})}}function om(){return new nc(e=>na(e),ns)}async function oy(e,t){let r=3,n=t.query,i=e.queries.get(n);i?!i.ba()&&t.Da()&&(r=2):(i=new op,r=+!t.Da());try{switch(r){case 0:i.wa=await e.onListen(n,!0);break;case 1:i.wa=await e.onListen(n,!1);break;case 2:await e.onFirstRemoteStoreListen(n)}}catch(r){let e=oh(r,`Initialization of query '${no(t.query)}' failed`);return void t.onError(e)}e.queries.set(n,i),i.Sa.push(t),t.va(e.onlineState),i.wa&&t.Fa(i.wa)&&ob(e)}async function ov(e,t){let r=t.query,n=3,i=e.queries.get(r);if(i){let e=i.Sa.indexOf(t);e>=0&&(i.Sa.splice(e,1),0===i.Sa.length?n=+!t.Da():!i.ba()&&t.Da()&&(n=2))}switch(n){case 0:return e.queries.delete(r),e.onUnlisten(r,!0);case 1:return e.queries.delete(r),e.onUnlisten(r,!1);case 2:return e.onLastRemoteStoreUnlisten(r);default:return}}function ow(e,t){let r=!1;for(let n of t){let t=n.query,i=e.queries.get(t);if(i){for(let e of i.Sa)e.Fa(n)&&(r=!0);i.wa=n}}r&&ob(e)}function oI(e,t,r){let n=e.queries.get(t);if(n)for(let e of n.Sa)e.onError(r);e.queries.delete(t)}function ob(e){e.Ca.forEach(e=>{e.next()})}(p=f||(f={})).Ma="default",p.Cache="cache";class oE{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(e){if(!this.options.includeMetadataChanges){let t=[];for(let r of e.docChanges)3!==r.type&&t.push(r);e=new of(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.Oa?this.Ba(e)&&(this.xa.next(e),t=!0):this.La(e,this.onlineState)&&(this.ka(e),t=!0),this.Na=e,t}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){if(e.docChanges.length>0)return!0;let t=this.Na&&this.Na.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}ka(e){e=of.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Oa=!0,this.xa.next(e)}Da(){return this.options.source!==f.Cache}}class o_{constructor(e,t){this.Ka=e,this.byteLength=t}Ua(){return"metadata"in this.Ka}}class oT{constructor(e){this.serializer=e}qs(e){return iI(this.serializer,e)}Ks(e){return e.metadata.exists?iC(this.serializer,e.document,!1):rD.newNoDocument(this.qs(e.metadata.name),this.Us(e.metadata.readTime))}Us(e){return ig(e)}}class oS{constructor(e,t){this.$a=e,this.serializer=t,this.Wa=[],this.Qa=[],this.collectionGroups=new Set,this.progress=oC(e)}get queries(){return this.Wa}get documents(){return this.Qa}Ga(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;if(e.Ka.namedQuery)this.Wa.push(e.Ka.namedQuery);else if(e.Ka.documentMetadata){this.Qa.push({metadata:e.Ka.documentMetadata}),e.Ka.documentMetadata.exists||++t;let r=et.fromString(e.Ka.documentMetadata.name);this.collectionGroups.add(r.get(r.length-2))}else e.Ka.document&&(this.Qa[this.Qa.length-1].document=e.Ka.document,++t);return t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}za(e){let t=new Map,r=new oT(this.serializer);for(let n of e)if(n.metadata.queries){let e=r.qs(n.metadata.name);for(let r of n.metadata.queries){let n=(t.get(r)||nw()).add(e);t.set(r,n)}}return t}async ja(e){let t=await aa(e,new oT(this.serializer),this.Qa,this.$a.id),r=this.za(this.documents);for(let t of this.Wa)await ao(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ja:this.collectionGroups,Ha:t}}}function oC(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class oA{constructor(e){this.key=e}}class ok{constructor(e){this.key=e}}class ox{constructor(e,t){this.query=e,this.Za=t,this.Xa=null,this.hasCachedResults=!1,this.current=!1,this.Ya=nw(),this.mutatedKeys=nw(),this.eu=nh(e),this.tu=new oc(this.eu)}get nu(){return this.Za}ru(e,t){let r=t?t.iu:new od,n=t?t.tu:this.tu,i=t?t.mutatedKeys:this.mutatedKeys,s=n,a=!1,o="F"===this.query.limitType&&n.size===this.query.limit?n.last(
7):null,l="L"===this.query.limitType&&n.size===this.query.limit?n.first():null;if(e.inorderTraversal((e,t)=>{let u=n.get(e),h=nl(this.query,t)?t:null,c=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations),f=!1;u&&h?u.data.isEqual(h.data)?c!==d&&(r.track({type:3,doc:h}),f=!0):this.su(u,h)||(r.track({type:2,doc:h}),f=!0,(o&&this.eu(h,o)>0||l&&0>this.eu(h,l))&&(a=!0)):!u&&h?(r.track({type:0,doc:h}),f=!0):u&&!h&&(r.track({type:1,doc:u}),f=!0,(o||l)&&(a=!0)),f&&(h?(s=s.add(h),i=d?i.add(e):i.delete(e)):(s=s.delete(e),i=i.delete(e)))}),null!==this.query.limit)for(;s.size>this.query.limit;){let e="F"===this.query.limitType?s.last():s.first();s=s.delete(e.key),i=i.delete(e.key),r.track({type:1,doc:e})}return{tu:s,iu:r,bs:a,mutatedKeys:i}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){let i=this.tu;this.tu=e.tu,this.mutatedKeys=e.mutatedKeys;let s=e.iu.ya();s.sort((e,t)=>{var r,n;let i;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 O(20277,{Vt:e})}})(r)-i(n)||this.eu(e.doc,t.doc)}),this.ou(r),n=n??!1;let a=t&&!n?this._u():[],o=0===this.Ya.size&&this.current&&!n?1:0,l=o!==this.Xa;return(this.Xa=o,0!==s.length||l)?{snapshot:new of(this.query,e.tu,i,s,e.mutatedKeys,0===o,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),au:a}:{au:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({tu:this.tu,iu:new od,mutatedKeys:this.mutatedKeys,bs:!1},!1)):{au:[]}}uu(e){return!this.Za.has(e)&&!!this.tu.has(e)&&!this.tu.get(e).hasLocalMutations}ou(e){e&&(e.addedDocuments.forEach(e=>this.Za=this.Za.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Za=this.Za.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let e=this.Ya;this.Ya=nw(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Ya=this.Ya.add(e.key))});let t=[];return e.forEach(e=>{this.Ya.has(e)||t.push(new ok(e))}),this.Ya.forEach(r=>{e.has(r)||t.push(new oA(r))}),t}cu(e){this.Za=e.ks,this.Ya=nw();let t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return of.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Xa,this.hasCachedResults)}}let oD="SyncEngine";class oN{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class oR{constructor(e){this.key=e,this.hu=!1}}class oP{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 nc(e=>na(e),ns),this.Eu=new Map,this.Iu=new Set,this.Ru=new tK(ei.comparator),this.Au=new Map,this.Vu=new sB,this.du={},this.mu=new Map,this.fu=sw.ar(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function oO(e,t,r=!0){let n,i=le(e),s=i.Tu.get(t);return s?(i.sharedClientState.addLocalQueryTarget(s.targetId),n=s.view.lu()):n=await oM(i,t,r,!0),n}async function oL(e,t){let r=le(e);await oM(r,t,!0,!1)}async function oM(e,t,r,n){let i,s=await ae(e.localStore,ne(t)),a=s.targetId,o=e.sharedCl
7ientState.addLocalQueryTarget(a,r);return n&&(i=await oV(e,t,a,"current"===o,s.resumeToken)),e.isPrimaryClient&&r&&aQ(e.remoteStore,s),i}async function oV(e,t,r,n,i){e.pu=(t,r,n)=>(async function(e,t,r,n){let i=t.view.ru(r);i.bs&&(i=await ar(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));let s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),o=t.view.applyChanges(i,e.isPrimaryClient,s,a);return oJ(e,t.targetId,o.au),o.snapshot})(e,t,r,n);let s=await ar(e.localStore,t,!0),a=new ox(t,s.ks),o=a.ru(s.documents),l=n9.createSynthesizedTargetChangeForCurrentChange(r,n&&"Offline"!==e.onlineState,i),u=a.applyChanges(o,e.isPrimaryClient,l);oJ(e,r,u.au);let h=new oN(t,r,a);return e.Tu.set(t,h),e.Eu.has(r)?e.Eu.get(r).push(t):e.Eu.set(r,[t]),u.snapshot}async function oF(e,t,r){let n=e.Tu.get(t),i=e.Eu.get(n.targetId);i.length>1?(e.Eu.set(n.targetId,i.filter(e=>!ns(e,t))),e.Tu.delete(t)):e.isPrimaryClient?(e.sharedClientState.removeLocalQueryTarget(n.targetId),e.sharedClientState.isActiveQueryTarget(n.targetId)||await at(e.localStore,n.targetId,!1).then(()=>{e.sharedClientState.clearQueryState(n.targetId),r&&aJ(e.remoteStore,n.targetId),oW(e,n.targetId)}).catch(eA)):(oW(e,n.targetId),await at(e.localStore,n.targetId,!0))}async function oU(e,t){let r=e.Tu.get(t),n=e.Eu.get(r.targetId);e.isPrimaryClient&&1===n.length&&(e.sharedClientState.removeLocalQueryTarget(r.targetId),aJ(e.remoteStore,r.targetId))}async function oB(e,t,r){let n=lt(e);try{var i,s;let e,a,o,l,u,h=await (i=n.localStore,o=ef.now(),l=t.reduce((e,t)=>e.add(t.key),nw()),i.persistence.runTransaction("Locally write mutations","readwrite",r=>{let n=nd,s=nw();return i.xs.getEntries(r,l).next(e=>{(n=e).forEach((e,t)=>{t.isValidDocument()||(s=s.add(e))})}).next(()=>i.localDocuments.getOverlayedDocuments(r,n)).next(n=>{e=n;let s=[];for(let r of t){let t=function(e,t){let r=null;for(let n of e.fieldTransforms){let e=t.data.field(n.field),i=nT(n.transform,e||null);null!=i&&(null===r&&(r=rx.empty()),r.set(n.field,i))}return r||null}(r,e.get(r.key).overlayedDocument);null!=t&&s.push(new nq(r.key,t,function e(t){let r=[];return tq(t.fields,(t,n)=>{let i=new en([t]);if(rE(n)){let t=e(n.mapValue).fields;if(0===t.length)r.push(i);else for(let e of t)r.push(i.child(e))}else r.push(i)}),new tJ(r)}(t.value.mapValue),nL.exists(!0)))}
7return i.mutationQueue.addMutationBatch(r,o,s,t)}).next(t=>{a=t;let n=t.applyToLocalDocumentSet(e,s);return i.documentOverlayCache.saveOverlays(r,t.batchId,n)})}).then(()=>({batchId:a.batchId,changes:ng(e)})));n.sharedClientState.addPendingMutation(h.batchId),s=h.batchId,(u=n.du[n.currentUser.toKey()])||(u=new tK(Q)),u=u.insert(s,r),n.du[n.currentUser.toKey()]=u,await oX(n,h.changes),await a9(n.remoteStore)}catch(t){let e=oh(t,"Failed to persist write");r.reject(e)}}async function oj(e,t){try{var r,n;let i,s,a=await (r=e.localStore,i=(n=t).snapshotVersion,s=r.vs,r.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{let t=r.xs.newChangeBuffer({trackRemovals:!0});s=r.vs;let a=[];n.targetChanges.forEach((t,o)=>{var l;let u=s.get(o);if(!u)return;a.push(r.li.removeMatchingKeys(e,t.removedDocuments,o).next(()=>r.li.addMatchingKeys(e,t.addedDocuments,o)));let h=u.withSequenceNumber(e.currentSequenceNumber);null!==n.targetMismatches.get(o)?h=h.withResumeToken(tX.EMPTY_BYTE_STRING,ep.min()).withLastLimboFreeSnapshotVersion(ep.min()):t.resumeToken.approximateByteSize()>0&&(h=h.withResumeToken(t.resumeToken,i)),s=s.insert(o,h),l=h,(0===u.resumeToken.approximateByteSize()||l.snapshotVersion.toMicroseconds()-u.snapshotVersion.toMicroseconds()>=3e8||t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size>0)&&a.push(r.li.updateTargetData(e,h))});let o=nd,l=nw();if(n.documentUpdates.forEach(t=>{n.resolvedLimboDocuments.has(t)&&a.push(r.persistence.referenceDelegate.updateLimboDocument(e,t))}),a.push(s7(e,t,n.documentUpdates).next(e=>{o=e.Bs,l=e.Ls})),!i.isEqual(ep.min())){let t=r.li.getLastRemoteSnapshotVersion(e).next(t=>r.li.setTargetsMetadata(e,e.currentSequenceNumber,i));a.push(t)}return ek.waitFor(a).next(()=>t.apply(e)).next(()=>r.localDocuments.getLocalViewOfDocuments(e,o,l)).next(()=>o)}).then(e=>(r.vs=s,e)));
7t.targetChanges.forEach((t,r)=>{let n=e.Au.get(r);n&&(M(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1,22616),t.addedDocuments.size>0?n.hu=!0:t.modifiedDocuments.size>0?M(n.hu,14607):t.removedDocuments.size>0&&(M(n.hu,42227),n.hu=!1))}),await oX(e,a,t)}catch(e){await eA(e)}}function oq(e,t,r){if(e.isPrimaryClient&&0===r||!e.isPrimaryClient&&1===r){var n;let r,i=[];e.Tu.forEach((e,r)=>{let n=r.view.va(t);n.snapshot&&i.push(n.snapshot)}),(n=e.eventManager).onlineState=t,r=!1,n.queries.forEach((e,n)=>{for(let e of n.Sa)e.va(t)&&(r=!0)}),r&&ob(n),i.length&&e.Pu.H_(i),e.onlineState=t,e.isPrimaryClient&&e.sharedClientState.setOnlineState(t)}}async function oz(e,t,r){e.sharedClientState.updateQueryState(t,"rejected",r);let n=e.Au.get(t),i=n&&n.key;if(i){let r=new tK(ei.comparator);r=r.insert(i,rD.newNoDocument(i,ep.min()));let n=nw().add(i),s=new n8(ep.min(),new Map,new tK(Q),r,n);await oj(e,s),e.Ru=e.Ru.remove(i),e.Au.delete(t),oY(e)}else await at(e.localStore,t,!1).then(()=>oW(e,t,r)).catch(eA)}async function oK(e,t){let r=t.batch.batchId;try{var n,i;let s=await (n=e.localStore,i=t,n.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t,r,s,a=i.batch.keys(),o=n.xs.newChangeBuffer({trackRemovals:!0});return(r=(t=i.batch).keys(),s=ek.resolve(),r.forEach(r=>{s=s.next(()=>o.getEntry(e,r)).next(e=>{let n=i.docVersions.get(r);M(null!==n,48541),0>e.version.compareTo(n)&&(t.applyToRemoteDocument(e,i),e.isValidDocument()&&(e.setReadTime(i.commitVersion),o.addEntry(e)))})}),s.next(()=>n.mutationQueue.removeMutationBatch(e,t))).next(()=>o.apply(e)).next(()=>n.mutationQueue.performConsistencyCheck(e)).next(()=>n.documentOverlayCache.removeOverlaysForBatchId(e,a,i.batch.batchId)).next(()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=nw();for(let r=0;r<e.mutationResults.length;++r)e.mutationResults[r].transformResults.length>0&&(t=t.add(e.batch.mutations[r].key));return t}(i))).next(()=>n.localDocuments.getDocuments(e,a))}));oH(e,r,null),oG(e,r),e.sharedClientState.updateMutationState(r,"acknowledged"),await oX(e,s)}catch(e){await eA(e)}}async function o$(e,t,r){try{var n;let i=await (n=e.localStore,n.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let r;
7return n.mutationQueue.lookupMutationBatch(e,t).next(t=>(M(null!==t,37113),r=t.keys(),n.mutationQueue.removeMutationBatch(e,t))).next(()=>n.mutationQueue.performConsistencyCheck(e)).next(()=>n.documentOverlayCache.removeOverlaysForBatchId(e,r,t)).next(()=>n.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,r)).next(()=>n.localDocuments.getDocuments(e,r))}));oH(e,t,r),oG(e,t),e.sharedClientState.updateMutationState(t,"rejected",r),await oX(e,i)}catch(e){await eA(e)}}function oG(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function oH(e,t,r){let n=e.du[e.currentUser.toKey()];if(n){let i=n.get(t);i&&(r?i.reject(r):i.resolve(),n=n.remove(t)),e.du[e.currentUser.toKey()]=n}}function oW(e,t,r=null){for(let n of(e.sharedClientState.removeLocalQueryTarget(t),e.Eu.get(t)))e.Tu.delete(n),r&&e.Pu.yu(n,r);e.Eu.delete(t),e.isPrimaryClient&&e.Vu.Gr(t).forEach(t=>{e.Vu.containsKey(t)||oQ(e,t)})}function oQ(e,t){e.Iu.delete(t.path.canonicalString());let r=e.Ru.get(t);null!==r&&(aJ(e.remoteStore,r),e.Ru=e.Ru.remove(t),e.Au.delete(r),oY(e))}function oJ(e,t,r){for(let n of r)n instanceof oA?(e.Vu.addReference(n.key,t),function(e,t){let r=t.key,n=r.path.canonicalString();e.Ru.get(r)||e.Iu.has(n)||(D(oD,"New document in limbo: "+r),e.Iu.add(n),oY(e))}(e,n)):n instanceof ok?(D(oD,"Document no longer in limbo: "+n.key),e.Vu.removeReference(n.key,t),e.Vu.containsKey(n.key)||oQ(e,n.key)):O(19791,{wu:n})}function oY(e){for(;e.Iu.size>0&&e.Ru.size<e.maxConcurrentLimboResolutions;){let t=e.Iu.values().next().value;e.Iu.delete(t);let r=new ei(et.fromString(t)),n=e.fu.next();e.Au.set(n,new oR(r)),e.Ru=e.Ru.insert(r,n),aQ(e.remoteStore,new iM(ne(r6(r.path)),n,"TargetPurposeLimboResolution",ez.ce))}}async function oX(e,t,r){let n=[],i=[],s=[];e.Tu.isEmpty()||(e.Tu.forEach((a,o)=>{s.push(e.pu(o,t,r).then(t=>{if((t||r)&&e.isPrimaryClient){let n=t?!t.fromCache:r?.targetChanges.get(o.targetId)?.current;e.sharedClientState.updateQueryState(o.targetId,n?"current":"not-current")}if(t){n.push(t);let e=s2.Is(o.targetId,t);i.push(e)}}))}),await Promise.all(s),e.Pu.H_(n),await async function(e,t){try{await e.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>ek.forEach(t,t=>ek.forEach(t.Ts,n=>e.persistence.referenceDelegate.addReference(r,t.targetId,n)).next(()=>ek.forEach(t.Es,n=>e.persistence.referenceDelegate.removeReference(r,t.targetId,n)))))}catch(e){if(!eL(e))throw e;D(s5,"Failed to update sequence numbers: "+e)}for(let r of t){let t=r.targetId;if(!r.fromCache){let r=e.vs.get(t),n=r.snapshotVersion,i=r.withLastLimboFreeSnapshotVersion(n);e.vs=e.vs.insert(t,i)}}}(e.localStore,i))}async function oZ(e,t){if(!e.currentUser.isEqual(t)){D(oD,"User change. New user:",t.toKey());let r=await s8(e.localStore,t);e.currentUser=t,e.mu.forEach(e=>{e.forEach(e=>{e.reject(new F(V.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))})}),e.mu.clear(),e.sharedClientState.handleUserChange(t,r.removedBatchIds,r.addedBatchIds),await oX(e,r.Ns)}}function o0(e,t){let r=e.Au.get(t);if(r&&r.hu)return nw().add(r.key);{let r=nw(),n=e.Eu.get(t);if(!n)return r;for(let t of n){let n=e.Tu.get(t);r=r.unionWith(n.view.nu)}return r}}async function o1(e,t){let r=await ar(e.localStore,t.query,!0),n=t.view.cu(r);return e.isPrimaryClient&&oJ(e,t.targetId,n.au),n}async function o2(e,t){return ai(e.localStore,t).then(t=>oX(e,t))}async function o3(e,t,r,n){var i,s;let a,o=await (i=e.localStore,a=i.mutationQueue,i.persistence.runTransaction("Lookup mutation documents","readonly",e=>a.Xn(e,t).next(t=>t?i.localDocuments.getDocuments(e,t):ek.resolve(null))));null!==o?("pending"===r?await a9(e.remoteStore):"acknowledged"===r||"rejected"===r?(oH(e,t,n||null),oG(e,t),s=e.localStore,s.mutationQueue.nr(t)):O(6
7720,"Unknown batchState",{Su:r}),await oX(e,o)):D(oD,"Cannot apply mutation batch with id: "+t)}async function o4(e,t){if(le(e),lt(e),!0===t&&!0!==e.gu){let t=e.sharedClientState.getAllActiveQueryTargets(),r=await o5(e,t.toArray());for(let t of(e.gu=!0,await oa(e.remoteStore,!0),r))aQ(e.remoteStore,t)}else if(!1===t&&!1!==e.gu){let t=[],r=Promise.resolve();e.Eu.forEach((n,i)=>{e.sharedClientState.isLocalQueryTarget(i)?t.push(i):r=r.then(()=>(oW(e,i),at(e.localStore,i,!0))),aJ(e.remoteStore,i)}),await r,await o5(e,t),e.Au.forEach((t,r)=>{aJ(e.remoteStore,r)}),e.Vu.zr(),e.Au=new Map,e.Ru=new tK(ei.comparator),e.gu=!1,await oa(e.remoteStore,!1)}}async function o5(e,t,r){let n=[],i=[];for(let r of t){let t,s=e.Eu.get(r);if(s&&0!==s.length)for(let r of(t=await ae(e.localStore,ne(s[0])),s)){let t=e.Tu.get(r),n=await o1(e,t);n.snapshot&&i.push(n.snapshot)}else{let n=await an(e.localStore,r);t=await ae(e.localStore,n),await oV(e,o6(n),r,!1,t.resumeToken)}n.push(t)}return e.Pu.H_(i),n}function o6(e){var t,r,n,i,s;return t=e.path,r=e.collectionGroup,n=e.orderBy,i=e.filters,s=e.limit,new r5(t,r,n,i,s,"F",e.startAt,e.endAt)}function o8(e){return e.localStore.persistence.hs()}async function o9(e,t,r,n){if(e.gu)return void D(oD,"Ignoring unexpected query state notification.");let i=e.Eu.get(t);if(i&&i.length>0)switch(r){case"current":case"not-current":{let n=await ai(e.localStore,nu(i[0])),s=n8.createSynthesizedRemoteEventForCurrentChange(t,"current"===r,tX.EMPTY_BYTE_STRING);await oX(e,n,s);break}case"rejected":await at(e.localStore,t,!0),oW(e,t,n);break;default:O(64155,r)}}async function o7(e,t,r){let n=le(e);if(n.gu){for(let e of t){if(n.Eu.has(e)&&n.sharedClientState.isActiveQueryTarget(e)){D(oD,"Adding an already active target "+e);continue}let t=await an(n.localStore,e),r=await ae(n.localStore,t);await oV(n,o6(t),r.targetId,!1,r.resumeToken),aQ(n.remoteStore,r)}for(let e of r)n.Eu.has(e)&&await at(n.localStore,e,!1).then(()=>{aJ(n.remoteStore,e),oW(n,e)}).catch(eA)}}function le(e){return e.remoteStore.remoteSyncer.applyRemoteEvent=oj.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=o0.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=oz.bind(null,e),e.Pu.H_=ow.bind(null,e.eventManager),e.Pu.yu=oI.bind(null,e.eventManager),e}function lt(e){return e.remoteStore.remoteSyncer.applySuccessfulWrite=oK.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=o$.bind(null,e),e}class lr{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=aM(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){var t,r;return t=this.persistence,r=new s4,new s6(t,r,e.initialUser,this.serializer)}Cu(e){return new sG(sW.Vi,this.serializer)}Du(e){return new ab}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}lr.provider={build:()=>new lr};class ln extends lr{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){return M(this.persistence.referenceDelegate instanceof sQ,46915),new sS(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?sf.withCacheSize(this.cacheSizeBytes):sf.DEFAULT;return new sG(e=>sQ.Vi(e,t),this.serializer)}}class li extends lr{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 lt(this.xu.syncEngine),await a9(this.xu.remoteStore),await this.persistence.zi(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){var t,r;return t=this.persistence,r=new s4,new s6(t,r,e.initialUser,this.serializer)}Fu(e,t){return new sS(this.persistence.referenceDelegate.garbageCollector,e.asyncQueue,t)}Mu(e,t){let r=new eq(t,this.persistence);return new ej(e.asyncQueue,r)}Cu(e){let t=s1(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?sf.withCacheSize(this.cacheSizeBytes):sf.DEFAULT;return new s0(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,aO(),aL(),this.serializer,this.sharedCl
7ientState,!!this.forceOwnership)}Du(e){return new ab}}class ls{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=>oq(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=oZ.bind(null,this.syncEngine),await oa(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new og}createDatastore(e){var t;let r=aM(e.databaseInfo.databaseId),n=new aP(e.databaseInfo);return t=e.authCredentials,new az(t,e.appCheckCredentials,n,r)}createRemoteStore(e){var t,r;return t=this.localStore,r=this.datastore,new aG(t,r,e.asyncQueue,e=>oq(this.syncEngine,e,0),aT.v()?new aT:new aE)}createSyncEngine(e,t){var r,n,i,s,a,o;let l;return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,o=e.maxConcurrentLimboResolutions,l=new oP(r,n,i,s,a,o),t&&(l.gu=!0),l}async terminate(){await async function(e){D(a$,"RemoteStore shutting down."),e.Ia.add(5),await aW(e),e.Aa.shutdown(),e.Va.set("Unknown")}(this.remoteStore),this.datastore?.terminate(),this.eventManager?.terminate()}}function la(e,t=10240){let r=0;return{async read(){if(r<e.byteLength){let n={value:e.slice(r,r+t),done:!1};return r+=t,n}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}ls.provider={build:()=>new ls};class lo{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):N("Uncaught Error in snapshot listener:",e.toString()))}Nu(){this.muted=!0}Ou(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class ll{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new U,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.Ua()?this.metadata.resolve(e.Ka.metadata):this.metadata.reject(Error(`The first element of the bundle is not a metadata, it is
8             ${JSON.stringify(e?.Ka)}`))},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(){let e=await this.qu();if(null===e)return null;let t=this.Lu.decode(e),r=Number(t);return isNaN(r)&&this.Ku(`length string (${t}) is not valid number`),new o_(JSON.parse(await this.Uu(r)),e.length+r)}$u(){return this.buffer.findIndex(e=>123===e)}async qu(){for(;0>this.$u()&&!await this.Wu(););if(0===this.buffer.length)return null;let e=this.$u();e<0&&this.Ku("Reached the end of bundle when a length string is expected.");let t=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),t}async Uu(e){for(;this.buffer.length<e;)await this.Wu()&&this.Ku("Reached the end of bundle when more is expected.");let t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}Ku(e){throw this.Bu.cancel(),Error(`Invalid bundle format: ${e}`)}async Wu(){let e=await this.Bu.read();if(!e.done){let t=new Uint8Array(this.buffer.length+e.value.length);t.set(this.buffer),t.set(e.value,this.buffer.length),this.buffer=t}return e.done}}class lu{constructor(e,t){this.bundleData=e,this.serializer=t,this.cursor=0,this.elements=[];let r=this.bu();if(!r||!r.Ua())throw Error(`The first element of the bundle is not a metadata object, it is
9         ${JSON.stringify(r?.Ka)}`);this.metadata=r;do null!==(r=this.bu())&&this.elements.push(r);while(null!==r)}getMetadata(){return this.metadata}Qu(){return this.elements}bu(){if(this.cursor===this.bundleData.length)return null;let e=this.qu();return new o_(JSON.parse(this.Uu(e)),e)}Uu(e){if(this.cursor+e>this.bundleData.length)throw new F(V.INTERNAL,"Reached the end of bundle when more is expected.");return this.bundleData.slice(this.cursor,this.cursor+=e)}qu(){let e=this.cursor,t=this.cursor;for(;t<this.bundleData.length;){if("{"===this.bundleData[t]){if(t===e)throw Error("First character is a bracket and not a number");return this.cursor=t,Number(this.bundleData.slice(e,t))}t++}throw Error("Reached the end of bundle when more is expected.")}}class lh{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(),this.mutations.length>
90)throw this.lastTransactionError=new F(V.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;let t=await async function(e,t){let r={documents:t.map(t=>iw(e.serializer,t))},n=await e.jo("BatchGetDocuments",e.serializer.databaseId,et.emptyPath(),r,t.length),i=new Map;n.forEach(t=>{var r;let n,s,a,o,l,u,h=(r=e.serializer,"found"in t?(M(!!t.found,43571),t.found.name,t.found.updateTime,n=iI(r,t.found.name),s=ig(t.found.updateTime),a=t.found.createTime?ig(t.found.createTime):ep.min(),o=new rx({mapValue:{fields:t.found.fields}}),rD.newFoundDocument(n,s,a,o)):"missing"in t?(M(!!t.missing,3894),M(!!t.readTime,22933),l=iI(r,t.missing),u=ig(t.readTime),rD.newNoDocument(l,u)):O(7234,{result:t}));i.set(h.key.toString(),h)});let s=[];return t.forEach(e=>{let t=i.get(e.toString());M(!!t,55234,{key:e}),s.push(t)}),s}(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 nG(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let e=this.readVersions;this.mutations.forEach(t=>{e.delete(t.key.toString())}),e.forEach((e,t)=>{let r=ei.fromPath(t);this.mutations.push(new nH(r,this.precondition(r)))}),await async function(e,t){let r={writes:t.map(t=>iA(e.serializer,t))};await e.Wo("Commit",e.serializer.databaseId,et.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw O(50498,{Gu:e.constructor.name});t=ep.min()}let r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new F(V.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){let t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(ep.min())?nL.exists(!1):nL.updateTime(t):nL.none()}preconditionForUpdate(e){let t=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&t){if(t.isEqual(ep.min()))throw new F(V.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return nL.updateTime(t)}return nL.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class lc{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 aV(this.asyncQueue,"transaction_retry")}ju(){this.zu-=1,this.Ju()}Ju(){this.M_.p_(async()=>{let e=new lh(this.datastore),t=this.Hu(e);t&&t.then(t=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(t)}).catch(e=>{this.Zu(e)}))}).catch(e=>{this.Zu(e)})})}Hu(e){try{let t=this.updateFunction(e);return!eK(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}}Zu(e){this.zu>0&&this.Xu(e)?(this.zu-=1,this.asyncQueue.enqueueAndForget(()=>(this.Ju(),Promise.resolve()))):this.deferred.reject(e)}Xu(e){if("FirebaseError"===e?.name){let t=e.code;return"aborted"===t||"failed-precondition"===t||"already-exists"===t||!nX(t)}return!1}}let ld="FirestoreClient";class lf{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=S.UNAUTHENTICATED,this.clientId=W.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{D(ld,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(D(ld,"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 e=new U;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(r){let t=oh(r,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function lp(e,t){e.asyncQueue.verifyOperationInProgress(),D(ld,"Initializing OfflineComponentProvider");let r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await s8(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function lg(e,t){e.asyncQueue.verifyOperationInProgress();let r=await lm(e);D(ld,"Initializing OnlineComponentProvider"),await t.initialize(r,e.configuration),e.setCredentialChangeListener(e=>os(t.remoteStore,e)),e.setAppCheckTokenChangeListener((e,r)=>os(t.remoteStore,r)),e._onlineComponents=t}async function lm(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){D(ld,"Using user provided OfflineComponentProvider");try{await lp(e,e._uninitializedComponentsProvider._offline)}catch(t){if(!("FirebaseError"===t.name?t.code===V.FAILED_PRECONDITION||t.code===V.UNIMPLEMENT
9ED:!("u">typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw t;R("Error using user provided cache. Falling back to memory cache: "+t),await lp(e,new lr)}}else D(ld,"Using default OfflineComponentProvider"),await lp(e,new ln(void 0));return e._offlineComponents}async function ly(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(D(ld,"Using user provided OnlineComponentProvider"),await lg(e,e._uninitializedComponentsProvider._online)):(D(ld,"Using default OnlineComponentProvider"),await lg(e,new ls))),e._onlineComponents}function lv(e){return lm(e).then(e=>e.localStore)}function lw(e){return ly(e).then(e=>e.syncEngine)}function lI(e){return ly(e).then(e=>e.datastore)}async function lb(e){let t=await ly(e),r=t.eventManager;return r.onListen=oO.bind(null,t.syncEngine),r.onUnlisten=oF.bind(null,t.syncEngine),r.onFirstRemoteStoreListen=oL.bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=oU.bind(null,t.syncEngine),r}function lE(e,t,r={}){let n=new U;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await lb(e),s=e.asyncQueue,o=new oE(t,a=new lo({next:e=>{a.Nu(),s.enqueueAndForget(()=>ov(i,o)),e.fromCache&&"server"===r.source?n.reject(new F(V.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.)')):n.resolve(e)},error:e=>n.reject(e)}),{includeMetadataChanges:!0,qa:!0}),oy(i,o)}),n.promise}function l_(e){let t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let lT=new Map,lS="firestore.googleapis.com";class lC{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new F(V.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=lS,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=0x2800000;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new F(V.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,t,r,n){if(!0===t&&!0===n)throw new F(V.INVALID_ARGUMENT,`${e} and ${r} cannot be used together.`)})("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=l_(e.experimentalLongPollingOptions??{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new F(V.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new F(V.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new F(V.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){var t,r;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}}class lA{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 lC({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new F(V.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new F(V.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 lC(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new j;switch(e.type){case"firstParty":return new $(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new F(V.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invali
9d 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(){let e;return(e=lT.get(this))&&(D("ComponentProvider","Removing Datastore"),lT.delete(this),e.terminate()),Promise.resolve()}}class lk{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new lk(this.firestore,e,this._query)}}class lx{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 lD(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new lx(this.firestore,e,this._key)}toJSON(){return{type:lx._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(ed(t,lx._jsonSchema))return new lx(e,r||null,new ei(et.fromString(t.referencePath)))}}lx._jsonSchemaVersion="firestore/documentReference/1.0",lx._jsonSchema={type:ec("string",lx._jsonSchemaVersion),referencePath:ec("string")};class lD extends lk{constructor(e,t,r){super(e,t,r6(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new lx(this.firestore,null,new ei(e))}withConverter(e){return new lD(this.firestore,e,this._path)}}let lN="AsyncQueue";class lR{constructor(e=Promise.resolve()){this.Yu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new aV(this,"async_queue_retry"),this._c=()=>{let e=aL();e&&D(lN,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;const t=aL();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){if(!this.ec){this.ec=!0,this.sc=e||!1;let t=aL();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c)}}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new U;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.Yu.push(e),this.lc()))}async lc(){if(0!==this.Yu.length){try{await this.Yu[0](),this.Yu.shift(),this.M_.reset()}catch(e){if(!eL(e))throw e;D(lN,"Operation failed with retryable error: "+e)}this.Yu.length>0&&this.M_.p_(()=>this.lc())}}cc(e){let t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,N("INTERNAL UNHANDLED ERROR: ",lP(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t,t}enqueueAfterDelay(e,t,r){this.uc(),this.oc.indexOf(e)>-1&&(t=0);let n=ou.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&O(47125,{Pc:lP(this.nc)})}verifyOperationInProgress(){}async Tc(){let e;do e=this.ac,await e;while(e!==this.ac)}Ec(e){for(let t of this.tc)if(t.timerId===e)return!0;return!1}Ic(e){return this.Tc().then(()=>{for(let t of(this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs),this.tc))if(t.skipDelay(),"all"!==e&&t.timerId===e)break;return this.Tc()})}Rc(e){this.oc.push(e)}hc(e){let t=this.tc.indexOf(e);this.tc.splice(t,1)}}function lP(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}class lO{constructor(){this._progressObserver={},this._taskCompletionResolver=new U,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)}}class lL extends lA{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new lR,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new lR(e),this._firestoreClient=void 0,await e}}}function lM(e){if(e._terminated)throw new F(V.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var t,r,n,i,s;let a,o=e._freezeSettings(),l=(t=e._databaseId,r=e._app?.options.appId||"",n=e._persistenceKey,i=e._app?.options.apiKey,new re(t,r,n,o.host,o.ssl,o.experimentalForceLongPolling,o.experimentalAutoDetectLongPolling,l_(o.experimentalLongPollingOptions),o.useFetchStreams,o.isUsingEmulator,i));e._componentsProvider||o.localCache?._offlineComponentProvider&&o.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:o.localCache._offlineComponentProvider,_online:o.localCache._onlineComponentProvider}),e._firestoreClient=new lf(e._authCredentials,e._appCheckCredentials,e._queue,l,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}(e),e._firestoreClient}class lV{constructor(e){this._byteString=e}static fromBase64String(e){try{return new lV(tX.fromBase64String(e))}catch(e){throw new F(V.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new lV(tX.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:lV._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(ed(e,lV._jsonSchema))return lV.fromBase64String(e.bytes)}}
9lV._jsonSchemaVersion="firestore/bytes/1.0",lV._jsonSchema={type:ec("string",lV._jsonSchemaVersion),bytes:ec("string")};class lF{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new F(V.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new en(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class lU{constructor(e){this._methodName=e}}class lB{constructor(e,t){if(!isFinite(e)||e<-90||e>90)throw new F(V.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||t>180)throw new F(V.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 Q(this._lat,e._lat)||Q(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:lB._jsonSchemaVersion}}static fromJSON(e){if(ed(e,lB._jsonSchema))return new lB(e.latitude,e.longitude)}}lB._jsonSchemaVersion="firestore/geoPoint/1.0",lB._jsonSchema={type:ec("string",lB._jsonSchemaVersion),latitude:ec("number"),longitude:ec("number")};class lj{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}(this._values,e._values)}toJSON(){return{type:lj._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(ed(e,lj._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new lj(e.vectorValues);throw new F(V.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}lj._jsonSchemaVersion="firestore/vectorValue/1.0",lj._jsonSchema={type:ec("string",lj._jsonSchemaVersion),vectorValues:ec("object")};let lq=/^__.*__$/;class lz{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new nq(e,this.data,this.fieldMask,t,this.fieldTransforms):new nj(e,this.data,t,this.fieldTransforms)}}class lK{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new nq(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function l$(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw O(40011,{dataSource:e})}}class lG{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Ac(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}i(e){return new lG({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}dc(e){let t=this.path?.child(e),r=this.i({path:t,arrayElement:!1});return r.mc(e),r}fc(e){let t=this.path?.child(e),r=this.i({path:t,arrayElement:!1});return r.Ac(),r}gc(e){return this.i({path:void 0,arrayElement:!0})}yc(e){return l4(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(e){return void 0!==this.fieldMask.find(t=>e.isPrefixOf(t))||void 0!==this.fieldTransforms.find(t=>e.isPrefixOf(t.field))}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.mc(this.path.get(e))}mc(e){if(0===e.length)throw this.yc("Document fields must not be empty");if(l$(this.dataSource)&&lq.test(e))throw this.yc('Document fields cannot begin and end with "__"')}}class lH{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||aM(e)}I(e,t,r,n=!1){return new lG({dataSource:e,methodName:t,targetDoc:r,path:en.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function lW(e){let t=e._freezeSettings(),r=aM(e._databaseId);return new lH(e._databaseId,!!t.ignoreUndefinedProperties,r)}class lQ extends lU{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.yc(`${this._methodName}() can only appear at the top level of your update data`):e.yc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof lQ}}function lJ(e,t,r,n=!1){return lY(r,e.I(n?4:3,t))}function lY(e,t){if(lZ(e=(0,w.getModularInstance)(e)))return l0("Unsupported field value:",t,e),lX(e,t);if(e instanceof lU)return function(e,t){if(!l$(t.dataSource))throw t.yc(`${e._methodName}
9() can only be used with update() and set()`);if(!t.path)throw t.yc(`${e._methodName}() is not currently supported inside arrays`);let r=e._toFieldTransform(t);r&&t.fieldTransforms.push(r)}(e,t),null;if(void 0===e&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.arrayElement&&4!==t.dataSource)throw t.yc("Nested arrays are not supported");let r=[],n=0;for(let i of e){let e=lY(i,t.gc(n));null==e&&(e={nullValue:"NULL_VALUE"}),r.push(e),n++}return{arrayValue:{values:r}}}return function(e,t){var r,n,i;if(null===(e=(0,w.getModularInstance)(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return r=t.serializer,eG(n=e)?nE(n):nb(r,n);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){let r=ef.fromDate(e);return{timestampValue:id(t.serializer,r)}}if(e instanceof ef){let r=new ef(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:id(t.serializer,r)}}if(e instanceof lB)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof lV)return{bytesValue:ip(t.serializer,e._byteString)};if(e instanceof lx){let r=t.databaseId,n=e.firestore._databaseId;if(!n.isEqual(r))throw t.yc(`Document reference is for database ${n.projectId}/${n.database} but should be for database ${r.projectId}/${r.database}`);return{referenceValue:im(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof lj)return{mapValue:{fields:{[ri]:{stringValue:ro},[rl]:{arrayValue:{values:((i=e)instanceof lj?i.toArray():i).map(e=>{if("number"!=typeof e)throw t.yc("VectorValues must only contain numeric values.");return nb(t.serializer,e)})}}}}};if(iL(e))return e._toProto(t.serializer);throw t.yc(`Unsupported field value: ${eu(e)}`)}(e,t)}function lX(e,t){let r={};return tz(e)?t.path&&t.path.length>0&&t.fieldMask.push(t.path):tq(e,(e,n)=>{let i=lY(n,t.dc(e));null!=i&&(r[e]=i)}),{mapValue:{fields:r}}}function lZ(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof ef||e instanceof lB||e instanceof lV||e instanceof lx||e instanceof lU||e instanceof lj||iL(e))}function l0(e,t,r){if(!lZ(r)||!el(r)){let n=eu(r);throw"an object"===n?t.yc(e+" a custom object"):t.yc(e+" "+n)}}function l1(e,t,r){if((t=(0,w.getModularInstance)(t))instanceof lF)return t._internalPath;if("string"==typeof t)return l3(e,t);throw l4("Field path arguments must be of type string or ",e,!1,void 0,r)}let l2=RegExp("[~\\*/\\[\\]]");function l3(e,t,r){if(t.search(l2)>=0)throw l4(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,r);try{return new lF(...t.split("."))._internalPath}catch(n){throw l4(`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,r)}}function l4(e,t,r,n,i){let s=n&&!n.isEmpty(),a=void 0!==i,o=`Function ${t}() called with invalid data`;r&&(o+=" (via `toFirestore()`)"),o+=". ";let l="";return(s||a)&&(l+=" (found",s&&(l+=` in field ${n}`),a&&(l+=` in document ${i}`),l+=")"),new F(V.INVALID_ARGUMENT,o+e+l)}function l5(e,t){return e.some(e=>e.isEqual(t))}class l6{convertValue(e,t="none"){switch(rh(e)){case 0:return null;case 1:return e.booleanValue;case 2:return t1(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(t2(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 O(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,t="none"){let r={};return tq(e,(e,n)=>{r[e]=this.convertValue(n,t)}),r}convertVectorValue(e){return new lj(e.fields?.[rl].arrayValue?.values?.map(e=>t1(e.doubleValue)))}convertGeoPoint(e){return new lB(t1(e.latitude),t1(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":let r=t9(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(t7(e));default:return null}}convertTimestamp(e){let t=t0(e);return new ef(t.seconds,t.nanos)}convertDocumentKey(e,t){let r=et.fromString(e);M(iO(r),9688,{name:e});let n=new rr(r.get(1),r.get(3)),i=new ei(r.popFirst(5));return n.isEqual(t)||N(`Document ${i} 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.`),i}}class l8 extends l6{constructor(e){super(),this.firestore=e}convertBytes(e){return new lV(e)}convertReference(e){let t=this.convertDocumentKey(e,this.firestore._databaseId);
9return new lx(this.firestore,null,t)}}e.s(["$",0,function(e,t,r,n){let i=e.I(1,t,r);l0("Data must be an object, but it was:",i,n);let s=[],a=rx.empty();return tq(n,(e,n)=>{let o=l3(t,e,r);n=(0,w.getModularInstance)(n);let l=i.fc(o);if(n instanceof lQ)s.push(o);else{let e=lY(n,l);null!=e&&(s.push(o),a.set(o,e))}}),new lK(a,new tJ(s),i.fieldTransforms)},"A",0,l6,"B",0,lV,"C",0,rV,"D",0,lx,"E",0,function(e,t){let r=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.push(t(e[n],n,e));return r},"F",0,lL,"G",0,function(e,t,r){let n=new U;return e.asyncQueue.enqueueAndForget(async()=>{try{let i=await lI(e);n.resolve(async function(e,t,r){var n;let{request:i,gt:s,parent:a}=function(e,t,r){let{ft:n,parent:i}=iD(e,t),s={},a=[],o=0;return r.forEach(e=>{let t="aggregate_"+o++;s[t]=e.alias,"count"===e.aggregateType?a.push({alias:t,count:{}}):"avg"===e.aggregateType?a.push({alias:t,avg:{field:iR(e.fieldPath)}}):"sum"===e.aggregateType&&a.push({alias:t,sum:{field:iR(e.fieldPath)}})}),{request:{structuredAggregationQuery:{aggregations:a,structuredQuery:n.structuredQuery},parent:n.parent},gt:s,parent:i}}(e.serializer,((n=t).Re||(n.Re=nt(n,n.explicitOrderBy)),n.Re),r);e.connection.qo||delete i.parent;let o=(await e.jo("RunAggregationQuery",e.serializer.databaseId,a,i,1)).filter(e=>!!e.result);M(1===o.length,64727);let l=o[0].result?.aggregateFields;return Object.keys(l).reduce((e,t)=>(e[s[t]]=l[t],e),{})}(i,t,r))}catch(e){n.reject(e)}}),n.promise},"H",0,l8,"I",0,ed,"J",0,aM,"K",0,function(e,t){return new lu(e,t)},"L",0,oS,"M",0,iC,"N",0,W,"O",0,rx,"P",0,i$,"Q",0,lk,"R",0,et,"S",0,oc,"T",0,nw,"U",0,O,"V",0,of,"W",0,function(e,t,r,n,i,s={}){let a,o,l=e.I(s.merge||s.mergeFields?2:0,t,r,i);l0("Data must be an object, but it was:",l,n);let u=lX(n,l);if(s.merge)a=new tJ(l.fieldMask),o=l.fieldTransforms;else if(s.mergeFields){let e=[];for(let n of s.mergeFields){let i=l1(t,n,r);if(!l.contains(i))throw new F(V.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);l5(e,i)||e.push(i)}a=new tJ(e),o=l.fieldTransforms.filter(e=>a.covers(e.field))}else a=null,o=l.fieldTransforms;return new lz(new rx(u),a,o)},"X",0,nL,"Y",0,lF,"Z",0,function(e,t,r,n,i,s){let a=e.I(1,t,r),o=[l1(t,n,r)],l=[i];if(s.length%2!=0)throw new F(V.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let e=0;e<s.length;e+=2)o.push(l1(t,s[e])),l.push(s[e+1]);let u=[],h=rx.empty();for(let e=o.length-1;e>=0;--e)if(!l5(u,o[e])){let t=o[e],r=l[e];r=(0,w.getModularInstance)(r);let n=a.fc(t);if(r instanceof lQ)u.push(t);else{let e=lY(r,n);null!=e&&(u.push(t),h.set(t,e))}}return new lK(h,new tJ(u),a.fieldTransforms)},"_",0,A,"a",0,z,"a0",0,nG,"a1",0,function(e,t,r){let n=new U;return e.asyncQueue.enqueueAndForget(async()=>{let i=await lI(e);new lc(e.asyncQueue,i,r,t,n).ju()}),n.promise},"a2",0,function(e,t,r={}){let n=new U;return e.asyncQueue.enqueueAndForget(async()=>{var i,s;let a,o;return i=await lb(e),s=e.asyncQueue,a=new lo({next:e=>{a.Nu(),s.enqueueAndForget(()=>ov(i,o));let l=e.docs.has(t);!l&&e.fromCache?n.reject(new F(V.UNAVAILABLE,"Failed to get document because the client is offline.")):l&&e.fromCache&&r&&"server"===r.source?n.reject(new F(V.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.)')):n.resolve(e)},error:e=>n.reject(e)}),oy(i,o=new oE(r6(t.path),a,{includeMetadataChanges:!0,qa:!0}))}),n.promise},"a3",0,function(e,t){let r=new U;return e.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await e.persistence.runTransaction("read document","readonly",r=>e.localDocuments.getDocument(r,t));n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new F(V.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(n){let e=oh(n,`Failed to get document '${t} from cache`);r.reject(e)}})(await lv(e),t,r)),r.promise},"a4",0,lE,"a5",0,function(e,t){let r=new U;return e.asyncQueue.enqueueAndForget(async()=>(async function(e,t,r){try{let n=await ar(e,t,!0),i=new ox(t,n.ks),s=i.ru(n.documents),a=i.applyChanges(s,
9!1);r.resolve(a.snapshot)}catch(n){let e=oh(n,`Failed to execute query '${t} against cache`);r.reject(e)}})(await lv(e),t,r)),r.promise},"a6",0,function(e,t,...r){if(e=(0,w.getModularInstance)(e),1==arguments.length&&(t=W.newId()),es("doc","path",t),e instanceof lA){let n=et.fromString(t,...r);return ea(n),new lx(e,null,new ei(n))}{if(!(e instanceof lx||e instanceof lD))throw new F(V.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(et.fromString(t,...r));return ea(n),new lx(e.firestore,e instanceof lD?e.converter:null,new ei(n))}},"a7",0,r6,"a8",0,function(e,t,r,n){let i=new lo(n),s=new oE(t,i,r);return e.asyncQueue.enqueueAndForget(async()=>oy(await lb(e),s)),()=>{i.Nu(),e.asyncQueue.enqueueAndForget(async()=>ov(await lb(e),s))}},"a9",0,function(e,t){let r=lM(e=eh(e,lL)),n=new lO;return function(e,t,r,n){var i;let s=(i=aM(t),new ll(function(e){if(e instanceof Uint8Array)return la(e,void 0);if(e instanceof ArrayBuffer)return la(new Uint8Array(e),void 0);if(e instanceof ReadableStream)return e.getReader();throw Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}("string"==typeof r?n1().encode(r):r),i));e.asyncQueue.enqueueAndForget(async()=>{var t=await lw(e);(async function(e,t,r){try{var n,i;let s,a=await t.getMetadata();if(await (n=e.localStore,s=ig(a.createTime),n.persistence.runTransaction("hasNewerBundle","readonly",e=>n.Pi.getBundleMetadata(e,a.id)).then(e=>!!e&&e.createTime.compareTo(s)>=0)))return await t.close(),r._completeWith({taskState:"Success",documentsLoaded:a.totalDocuments,bytesLoaded:a.totalBytes,totalDocuments:a.totalDocuments,totalBytes:a.totalBytes}),Promise.resolve(new Set);r._updateProgress(oC(a));let o=new oS(a,t.serializer),l=await t.bu();for(;l;){let e=await o.Ga(l);e&&r._updateProgress(e),l=await t.bu()}let u=await o.ja(e.localStore);return await oX(e,u.Ha,void 0),await (i=e.localStore,i.persistence.runTransaction("Save bundle","readwrite",e=>i.Pi.saveBundleMetadata(e,a))),r._completeWith(u.progress),Promise.resolve(u.Ja)}catch(e){return R(oD,`Loading bundle failed with ${e}`),r._failWith(e),Promise.resolve(new Set)}})(t,s,n).then(e=>{t.sharedClientState.notifyBundleLoaded(e)})})}(r,e._databaseId,t,n),n},"aO",0,function(e,t,...r){if(e=(0,w.getModularInstance)(e),es("collection","path",t),e instanceof lA){let n=et.fromString(t,...r);return eo(n),new lD(e,null,n)}{if(!(e instanceof lx||e instanceof lD))throw new F(V.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let n=e._path.child(et.fromString(t,...r));return eo(n),new lD(e.firestore,null,n)}},"aX",0,function(e,t){let r="object"==typeof e?e:(0,g.getApp)(),n=(0,g._getProvider)(r,"firestore").getImmediate({identifier:"string"==typeof e?e:t||rt});if(!n._initialized){let e=(0,w.getDefaultEmulatorHostnameAndPort)("firestore");e&&function(e,t,r,n={}){e=eh(e,lA);let i=(0,w.isCloudWorkstation)(t),s=e._getSettings(),a={...s,emulatorOptions:e._getEmulatorOptions()},o=`${t}:${r}`;i&&(0,w.pingServer)(`https://${o}`),s.host!==lS&&s.host!==o&&R("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");let l={...s,host:o,ssl:i,emulatorOptions:n};if(!(0,w.deepEqual)(l,a)&&(e._setSettings(l),n.mockUserToken)){let t,r;if("string"==typeof n.mockUserToken)t=n.mockUserToken,r=S.MOCK_USER;else{t=(0,w.createMockUserToken)(n.mockUserToken,e._app?.options.projectId);let i=n.mockUserToken.sub||n.mockUserToken.user_id;if(!i)throw new F(V.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new S(i)}e._authCredentials=new q(new B(t,r))}}(n,...e)}return n},"aa",0,function(e,t){var r;return(r=lM(e=eh(e,lL)),r.asyncQueue.enqueue(async()=>{var e;return e=await lv(r),e.persistence.runTransaction("Get named query","readonly",r=>e.Pi.getNamedQuery(r,t))})).then(t=>t?new lk(e,null,t.query):null)},"ab",0,function(e,t){let r=new lo(t);return e.asyncQueue.enqueueAndForget(async()=>{var t;return t=await lb(e),void(t.Ca.add(r),r.next())}),()=>{r.Nu(),e.asyncQueue.enqueueAndForget(async()=>{var t;return t=await lb(e),void t.Ca.delete(r)})}},"ac",0,function(e,t){let r=new U;return e.asyncQueue.enqueueAndForget(async()=>oB(await lw(e),t,r)),r.promise},"ad",0,R,"ae",0,l3,"af",0,ew,"ag",0,eg,"ah",0,eI,"ai",0,function(e,t){return e.asyncQueue.enqueue(async()=>(async function(e,t){let r=e.indexManager,n=[];return e.persistence.runTransaction("Configure indexes","readwrite",e=>r.getFieldIndexes(e).next(i=>(function(e,t,r,n,i){t=[...t],(e=[...e]).sort(r),t.sort(r);let s=e.length,a=t.length,o=0,l=0;for(;o<a&&l<s;){let s=r(e[l],t[o]);s<0?i(e[l++]):s>0?n(t[o++]):(o++,l++)}for(;o<a;
9)n(t[o++]);for(;l<s;)i(e[l++])})(i,t,ev,t=>{n.push(r.addFieldIndex(e,t))},t=>{n.push(r.deleteFieldIndex(e,t))})).next(()=>ek.waitFor(n)))})(await lv(e),t))},"aj",0,function(e){return e.asyncQueue.enqueue(async()=>{var t;let r;return r=(t=await lv(e)).indexManager,t.persistence.runTransaction("Delete All Indexes","readwrite",e=>r.deleteAllFieldIndexes(e))})},"ak",0,D,"al",0,function(e,t){return e.asyncQueue.enqueue(async()=>{var r;return r=await lv(e),void(r.Cs.As=t)})},"am",0,function(e){if(n0)throw Error("a TestingHooksSpi instance is already set");n0=e},"an",0,rO,"ao",0,class{constructor(e,t,r){this.alias=e,this.aggregateType=t,this.fieldPath=r}},"ap",0,ls,"aq",0,ln,"ar",0,lr,"as",0,li,"at",0,class extends li{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);let t=this.xu.syncEngine;this.sharedClientState instanceof aI&&(this.sharedClientState.syncEngine={bo:o3.bind(null,t),Do:o9.bind(null,t),Co:o7.bind(null,t),hs:o8.bind(null,t),So:o2.bind(null,t)},await this.sharedClientState.start()),await this.persistence.zi(async e=>{await o4(this.xu.syncEngine,e),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){let t=aO();if(!aI.v(t))throw new F(V.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=s1(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new aI(t,e.asyncQueue,r,e.clientId,e.initialUser)}},"b",0,H,"c",0,rn,"d",0,F,"e",0,V,"f",0,nr,"g",0,lW,"h",0,lJ,"i",0,rM,"j",0,l1,"k",0,nn,"l",0,ni,"m",0,function(e,t){if(t<=0)throw new F(V.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)},"n",0,function(e,t){return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)},"o",0,function(e,t){return new r5(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)},"p",0,ec,"q",0,r7,"r",0,ry,"s",0,t8,"t",0,rN,"u",0,r9,"v",0,ei,"w",0,eu,"x",0,function(e,t){return e=(0,w.getModularInstance)(e),t=(0,w.getModularInstance)(t),e instanceof lk&&t instanceof lk&&e.firestore===t.firestore&&ns(e._query,t._query)&&e.converter===t.converter},"y",0,eh,"z",0,lM],69185);let l9="@firebase/firestore",l7="4.14.0";class ue{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 lx(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){let e=new ut(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){let t=this._document.data.field(l1("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class ut extends ue{data(){return super.data()}}class ur{}class un extends ur{}class ui extends un{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new ui(e,t,r)}_apply(e){let t=this._parse(e);return uu(e._query,t),new lk(e.firestore,e.converter,nr(e._query,t))}_parse(e){let t=lW(e.firestore);return function(e,t,r,n,i,s,a){let o;if(i.isKeyField()){if("array-contains"===s||"array-contains-any"===s)throw new F(V.INVALID_ARGUMENT,`Invalid Query. You can't perform '${s}' queries on documentId().`);if("in"===s||"not-in"===s){ul(a,s);let t=[];for(let r of a)t.push(uo(n,e,r));o={arrayValue:{values:t}}}else o=uo(n,e,a)}else"in"!==s&&"not-in"!==s&&"array-contains-any"!==s||ul(a,s),o=lJ(r,t,a,"in"===s||"not-in"===s);return rM.create(i,s,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}class us extends ur{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new us(e,t)}_parse(e){let t=this._queryConstraints.map(t=>t._parse(e)).filter(e=>e.getFilters().length>0);return 1===t.length?t[0]:rV.create(t,this._getOperator())}_apply(e){let t=this._parse(e);return 0===t.getFilters().length?e:(function(e,t){let r=e;for(let e of t.getFlattenedFilters())uu(r,e),r=nr(r,e)}(e._query,t),new lk(e.firestore,e.converter,nr(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}
9class ua extends un{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new ua(e,t)}_apply(e){let t=function(e,t,r){if(null!==e.startAt)throw new F(V.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new F(V.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new rO(t,r)}(e._query,this._field,this._direction);return new lk(e.firestore,e.converter,nn(e._query,t))}}function uo(e,t,r){if("string"==typeof(r=(0,w.getModularInstance)(r))){if(""===r)throw new F(V.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!r9(t)&&-1!==r.indexOf("/"))throw new F(V.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);let n=t.path.child(et.fromString(r));if(!ei.isDocumentKey(n))throw new F(V.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}).`);return ry(e,new ei(n))}if(r instanceof lx)return ry(e,r._key);throw new F(V.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${eu(r)}.`)}function ul(e,t){if(!Array.isArray(e)||0===e.length)throw new F(V.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function uu(e,t){let r=function(e,t){for(let r of e)for(let e of r.getFlattenedFilters())if(t.indexOf(e.op)>=0)return e.op;return null}(e.filters,function(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 F(V.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new F(V.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class uh{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class uc extends ue{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={}){if(this._document){if(this._converter){let t=new ud(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,t={}){if(this._document){let r=this._document.data.field(l1("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new F(V.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,t={};return t.type=uc._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"),this._firestore,this.ref.path,t.bundle="NOT SUPPORTED"),t}}uc._jsonSchemaVersion="firestore/documentSnapshot/1.0",uc._jsonSchema={type:ec("string",uc._jsonSchemaVersion),bundleSource:ec("string","DocumentSnapshot"),bundleName:ec("string"),bundle:ec("string")};class ud extends uc{data(e={}){return super.data(e)}}class uf{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new uh(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let e=[];return this.forEach(t=>e.push(t)),e}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(e,t){this._snapshot.docs.forEach(r=>{e.call(t,new ud(this._firestore,this._userDataWriter,r.key,r,new uh(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}
9docChanges(e={}){let t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new F(V.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=function(e,t){if(e._snapshot.oldDocs.isEmpty()){let t=0;return e._snapshot.docChanges.map(r=>{let n=new ud(e._firestore,e._userDataWriter,r.doc.key,r.doc,new uh(e._snapshot.mutatedKeys.has(r.doc.key),e._snapshot.fromCache),e.query.converter);return r.doc,{type:"added",doc:n,oldIndex:-1,newIndex:t++}})}{let r=e._snapshot.oldDocs;return e._snapshot.docChanges.filter(e=>t||3!==e.type).map(t=>{let n=new ud(e._firestore,e._userDataWriter,t.doc.key,t.doc,new uh(e._snapshot.mutatedKeys.has(t.doc.key),e._snapshot.fromCache),e.query.converter),i=-1,s=-1;return 0!==t.type&&(i=r.indexOf(t.doc.key),r=r.delete(t.doc.key)),1!==t.type&&(s=(r=r.add(t.doc)).indexOf(t.doc.key)),{type:function(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return O(61501,{type:e})}}(t.type),doc:n,oldIndex:i,newIndex:s}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new F(V.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=uf._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=W.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))}),this._firestore,this.query._query,e.bundleName,e.bundle="NOT SUPPORTED",e}}uf._jsonSchemaVersion="firestore/querySnapshot/1.0",uf._jsonSchema={type:ec("string",uf._jsonSchemaVersion),bundleSource:ec("string","QuerySnapshot"),bundleName:ec("string"),bundle:ec("string")},new WeakMap,function(e=!0){A(g.SDK_VERSION),(0,g._registerComponent)(new m.Component("firestore",(t,{instanceIdentifier:r,options:n})=>{let i=t.getProvider("app").getImmediate(),s=new lL(new z(t.getProvider("auth-internal")),new H(i,t.getProvider("app-check-internal")),rn(i,r),i);return n={useFetchStreams:e,...n},s._setSettings(n),s},"PUBLIC").setMultipleInstances(!0)),(0,g.registerVersion)(l9,l7,void 0),(0,g.registerVersion)(l9,l7,"esm2020")}(),e.s(["getDocs",0,function(e){e=eh(e,lk);let t=eh(e.firestore,lL),r=lM(t),n=new l8(t);return function(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new F(V.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}(e._query),lE(r,e._query).then(r=>new uf(t,n,e,r))},"orderBy",0,function(e,t="asc"){let r=l1("orderBy",e);return ua._create(r,t)},"query",0,function(e,t,...r){let n=[];for(let i of(t instanceof ur&&n.push(t),function(e){let t=e.filter(e=>e instanceof us).length,r=e.filter(e=>e instanceof ui).length;if(t>1||t>0&&r>0)throw new F(V.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(...)))`.")}(n=n.concat(r)),n))e=i._apply(e);return e}],63802),e.s([],36180)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.