import{a as p,b as k,c as gt,d as ho}from"./chunk-Q7L6LLAK.js";var Ii=()=>{};var un={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"};var fo=function(n,e){if(!n)throw po(e)},po=function(n){return new Error("Firebase Database ("+un.SDK_VERSION+") INTERNAL ASSERT FAILED: "+n)};var wi=function(n){let e=[],t=0;for(let r=0;r>6|192,e[t++]=i&63|128):(i&64512)===55296&&r+1>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e},mo=function(n){let e=[],t=0,r=0;for(;t191&&i<224){let s=n[t++];e[r++]=String.fromCharCode((i&31)<<6|s&63)}else if(i>239&&i<365){let s=n[t++],o=n[t++],a=n[t++],c=((i&7)<<18|(s&63)<<12|(o&63)<<6|a&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{let s=n[t++],o=n[t++];e[r++]=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}}return e.join("")},Ti={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:typeof atob=="function",encodeByteArray(n,e){if(!Array.isArray(n))throw Error("encodeByteArray takes an array as a parameter");this.init_();let t=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i>2,h=(s&3)<<4|a>>4,f=(a&15)<<2|u>>6,R=u&63;c||(R=64,o||(f=64)),r.push(t[d],t[h],t[f],t[R])}return r.join("")},encodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(n):this.encodeByteArray(wi(n),e)},decodeString(n,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(n):mo(this.decodeStringToByteArray(n,e))},decodeStringToByteArray(n,e){this.init_();let t=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i>4;if(r.push(f),u!==64){let R=a<<4&240|u>>2;if(r.push(R),h!==64){let ee=u<<6&192|h;r.push(ee)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let n=0;n=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(n)]=n,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(n)]=n)}}},ln=class extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}},go=function(n){let e=wi(n);return Ti.encodeByteArray(e,!0)},We=function(n){return go(n).replace(/\./g,"")},le=function(n){try{return Ti.decodeString(n,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function Rl(n){return Ae(void 0,n)}function Ae(n,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:let t=e;return new Date(t.getTime());case Object:n===void 0&&(n={});break;case Array:n=[];break;default:return e}for(let t in e)!e.hasOwnProperty(t)||!_o(t)||(n[t]=Ae(n[t],e[t]));return n}function _o(n){return n!=="__proto__"}function hn(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}var Io=()=>hn().__FIREBASE_DEFAULTS__,Eo=()=>{if(typeof process>"u"||typeof process.env>"u")return;let n=process.env.__FIREBASE_DEFAULTS__;if(n)return JSON.parse(n)},yo=()=>{if(typeof document>"u")return;let n;try{n=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}let e=n&&le(n[1]);return e&&JSON.parse(e)},fn=()=>{try{return Ii()||Io()||Eo()||yo()}catch(n){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${n}`);return}};var It=()=>fn()?.config,bi=n=>fn()?.[`_${n}`];var _t=class{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),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(t):e(t,r))}}};function kl(n,e){if(n.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');let t={alg:"none",type:"JWT"},r=e||"demo-project",i=n.iat||0,s=n.sub||n.user_id;if(!s)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");let o=p({iss:`https://securetoken.google.com/${r}`,aud:r,iat:i,exp:i+3600,auth_time:i,sub:s,user_id:s,firebase:{sign_in_provider:"custom",identities:{}}},n);return[We(JSON.stringify(t)),We(JSON.stringify(o)),""].join(".")}function v(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function Ai(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(v())}function He(){let n=fn()?.forceEnvironment;if(n==="node")return!0;if(n==="browser")return!1;try{return Object.prototype.toString.call(global.process)==="[object process]"}catch{return!1}}function Si(){return typeof window<"u"||pn()}function pn(){return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope}function Pi(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function Et(){let n=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof n=="object"&&n.id!==void 0}function Be(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function yt(){let n=v();return n.indexOf("MSIE ")>=0||n.indexOf("Trident/")>=0}function Cl(){return un.NODE_CLIENT===!0||un.NODE_ADMIN===!0}function Nl(){return!He()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function Ol(){return!He()&&!!navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function Se(){try{return typeof indexedDB=="object"}catch{return!1}}function Ri(){return new Promise((n,e)=>{try{let t=!0,r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),t||self.indexedDB.deleteDatabase(r),n(!0)},i.onupgradeneeded=()=>{t=!1},i.onerror=()=>{e(i.error?.message||"")}}catch(t){e(t)}})}var vo="FirebaseError",A=class n extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name=vo,Object.setPrototypeOf(this,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,L.prototype.create)}},L=class{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){let r=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?wo(s,r):"Error",a=`${this.serviceName}: ${o} (${i}).`;return new A(i,a,r)}};function wo(n,e){return n.replace(To,(t,r)=>{let i=e[r];return i!=null?String(i):`<${r}?>`})}var To=/\{\$([^}]+)}/g;function Ei(n){return JSON.parse(n)}function Dl(n){return JSON.stringify(n)}var ki=function(n){let e={},t={},r={},i="";try{let s=n.split(".");e=Ei(le(s[0])||""),t=Ei(le(s[1])||""),i=s[2],r=t.d||{},delete t.d}catch{}return{header:e,claims:t,data:r,signature:i}};var Ll=function(n){let e=ki(n),t=e.claims;return!!t&&typeof t=="object"&&t.hasOwnProperty("iat")},Ml=function(n){let e=ki(n).claims;return typeof e=="object"&&e.admin===!0};function mn(n,e){return Object.prototype.hasOwnProperty.call(n,e)}function Ul(n,e){if(Object.prototype.hasOwnProperty.call(n,e))return n[e]}function Ci(n){for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e))return!1;return!0}function xl(n,e,t){let r={};for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=e.call(t,n[i],i,n));return r}function de(n,e){if(n===e)return!0;let t=Object.keys(n),r=Object.keys(e);for(let i of t){if(!r.includes(i))return!1;let s=n[i],o=e[i];if(yi(s)&&yi(o)){if(!de(s,o))return!1}else if(s!==o)return!1}for(let i of r)if(!t.includes(i))return!1;return!0}function yi(n){return n!==null&&typeof n=="object"}function he(n){let e=[];for(let[t,r]of Object.entries(n))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(t)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(t)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function te(n){let e={};return n.replace(/^\?/,"").split("&").forEach(r=>{if(r){let[i,s]=r.split("=");e[decodeURIComponent(i)]=decodeURIComponent(s)}}),e}function Pe(n){let e=n.indexOf("?");if(!e)return"";let t=n.indexOf("#",e);return n.substring(e,t>0?t:void 0)}var vi=class{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=512/8,this.pad_[0]=128;for(let e=1;e>>31)&4294967295}let i=this.chain_[0],s=this.chain_[1],o=this.chain_[2],a=this.chain_[3],c=this.chain_[4],u,d;for(let h=0;h<80;h++){h<40?h<20?(u=a^s&(o^a),d=1518500249):(u=s^o^a,d=1859775393):h<60?(u=s&o|a&(s|o),d=2400959708):(u=s^o^a,d=3395469782);let f=(i<<5|i>>>27)+u+c+d+r[h]&4294967295;c=a,a=o,o=(s<<30|s>>>2)&4294967295,s=i,i=f}this.chain_[0]=this.chain_[0]+i&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+o&4294967295,this.chain_[3]=this.chain_[3]+a&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295}update(e,t){if(e==null)return;t===void 0&&(t=e.length);let r=t-this.blockSize,i=0,s=this.buf_,o=this.inbuf_;for(;i=56;i--)this.buf_[i]=t&255,t/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let s=24;s>=0;s-=8)e[r]=this.chain_[i]>>s&255,++r;return e}};function vt(n,e){let t=new dn(n,e);return t.subscribe.bind(t)}var dn=class{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(r=>{this.error(r)})}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 i;if(e===void 0&&t===void 0&&r===void 0)throw new Error("Missing Observer.");bo(e,["next","error","complete"])?i=e:i={next:e,error:t,complete:r},i.next===void 0&&(i.next=cn),i.error===void 0&&(i.error=cn),i.complete===void 0&&(i.complete=cn);let s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t{if(this.observers!==void 0&&this.observers[e]!==void 0)try{t(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}};function bo(n,e){if(typeof n!="object"||n===null)return!1;for(let t of e)if(t in n&&typeof n[t]=="function")return!0;return!1}function cn(){}var Fl=function(n,e,t,r){let i;if(rt&&(i=t===0?"none":"no more than "+t),i){let s=n+" failed: Was called with "+r+(r===1?" argument.":" arguments.")+" Expects "+i+".";throw new Error(s)}};function Ni(n,e){return`${n} failed: ${e} argument `}function Vl(n,e,t,r){if(!(r&&!t)&&typeof t!="function")throw new Error(Ni(n,e)+"must be a valid function.")}function Wl(n,e,t,r){if(!(r&&!t)&&(typeof t!="object"||t===null))throw new Error(Ni(n,e)+"must be a valid context object.")}var Hl=function(n){let e=[],t=0;for(let r=0;r=55296&&i<=56319){let s=i-55296;r++,fo(r>6|192,e[t++]=i&63|128):i<65536?(e[t++]=i>>12|224,e[t++]=i>>6&63|128,e[t++]=i&63|128):(e[t++]=i>>18|240,e[t++]=i>>12&63|128,e[t++]=i>>6&63|128,e[t++]=i&63|128)}return e},Bl=function(n){let e=0;for(let t=0;t=55296&&r<=56319?(e+=4,t++):e+=3}return e};var zl=14400*1e3;function m(n){return n&&n._delegate?n._delegate:n}function wt(n){try{return(n.startsWith("http://")||n.startsWith("https://")?new URL(n).hostname:n).endsWith(".cloudworkstations.dev")}catch{return!1}}async function Oi(n){return(await fetch(n,{credentials:"include"})).ok}var C=class{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}};var fe="[DEFAULT]";var gn=class{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 r=new _t;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:t});i&&r.resolve(i)}catch{}}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(i){if(r)return null;throw i}else{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(So(e))try{this.getOrInitializeService({instanceIdentifier:fe})}catch{}for(let[t,r]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(t);try{let s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch{}}}}clearInstance(e=fe){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(t=>"INTERNAL"in t).map(t=>t.INTERNAL.delete()),...e.filter(t=>"_delete"in t).map(t=>t._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=fe){return this.instances.has(e)}getOptions(e=fe){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 i=this.getOrInitializeService({instanceIdentifier:r,options:t});for(let[s,o]of this.instancesDeferred.entries()){let a=this.normalizeInstanceIdentifier(s);r===a&&o.resolve(i)}return i}onInit(e,t){let r=this.normalizeInstanceIdentifier(t),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);let s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,t){let r=this.onInitCallbacks.get(t);if(r)for(let i of r)try{i(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:Ao(e),options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=fe){return this.component?this.component.multipleInstances?e:fe:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}};function Ao(n){return n===fe?void 0:n}function So(n){return n.instantiationMode==="EAGER"}var ze=class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);let t=new gn(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}};var Ln={};ho(Ln,{FirebaseError:()=>A,SDK_VERSION:()=>Y,_DEFAULT_ENTRY_NAME:()=>H,_addComponent:()=>Ce,_addOrOverwriteComponent:()=>kn,_apps:()=>re,_clearComponents:()=>ma,_components:()=>ke,_getProvider:()=>Cn,_isFirebaseApp:()=>Nn,_isFirebaseServerApp:()=>I,_isFirebaseServerAppSettings:()=>qi,_registerComponent:()=>K,_removeServiceInstance:()=>pa,_serverApps:()=>Re,deleteApp:()=>Pt,getApp:()=>Ki,getApps:()=>Ia,initializeApp:()=>St,initializeServerApp:()=>_a,onLog:()=>On,registerVersion:()=>M,setLogLevel:()=>Dn});var _n=[],g=(function(n){return n[n.DEBUG=0]="DEBUG",n[n.VERBOSE=1]="VERBOSE",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.SILENT=5]="SILENT",n})(g||{}),Di={debug:g.DEBUG,verbose:g.VERBOSE,info:g.INFO,warn:g.WARN,error:g.ERROR,silent:g.SILENT},Po=g.INFO,Ro={[g.DEBUG]:"log",[g.VERBOSE]:"log",[g.INFO]:"info",[g.WARN]:"warn",[g.ERROR]:"error"},ko=(n,e,...t)=>{if(e{e.setLogLevel(n)})}function Mi(n,e){for(let t of _n){let r=null;e&&e.level&&(r=Di[e.level]),n===null?t.userLogHandler=null:t.userLogHandler=(i,s,...o)=>{let a=o.map(c=>{if(c==null)return null;if(typeof c=="string")return c;if(typeof c=="number"||typeof c=="boolean")return c.toString();if(c instanceof Error)return c.message;try{return JSON.stringify(c)}catch{return null}}).filter(c=>c).join(" ");s>=(r??i.logLevel)&&n({level:g[s].toLowerCase(),message:a,args:o,type:i.name})}}}var Co=(n,e)=>e.some(t=>n instanceof t),Ui,xi;function No(){return Ui||(Ui=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Oo(){return xi||(xi=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Fi=new WeakMap,En=new WeakMap,Vi=new WeakMap,In=new WeakMap,vn=new WeakMap;function Do(n){let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("success",s),n.removeEventListener("error",o)},s=()=>{t(W(n.result)),i()},o=()=>{r(n.error),i()};n.addEventListener("success",s),n.addEventListener("error",o)});return e.then(t=>{t instanceof IDBCursor&&Fi.set(t,n)}).catch(()=>{}),vn.set(e,n),e}function Lo(n){if(En.has(n))return;let e=new Promise((t,r)=>{let i=()=>{n.removeEventListener("complete",s),n.removeEventListener("error",o),n.removeEventListener("abort",o)},s=()=>{t(),i()},o=()=>{r(n.error||new DOMException("AbortError","AbortError")),i()};n.addEventListener("complete",s),n.addEventListener("error",o),n.addEventListener("abort",o)});En.set(n,e)}var yn={get(n,e,t){if(n instanceof IDBTransaction){if(e==="done")return En.get(n);if(e==="objectStoreNames")return n.objectStoreNames||Vi.get(n);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return W(n[e])},set(n,e,t){return n[e]=t,!0},has(n,e){return n instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in n}};function Wi(n){yn=n(yn)}function Mo(n){return n===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){let r=n.call(Tt(this),e,...t);return Vi.set(r,e.sort?e.sort():[e]),W(r)}:Oo().includes(n)?function(...e){return n.apply(Tt(this),e),W(Fi.get(this))}:function(...e){return W(n.apply(Tt(this),e))}}function Uo(n){return typeof n=="function"?Mo(n):(n instanceof IDBTransaction&&Lo(n),Co(n,No())?new Proxy(n,yn):n)}function W(n){if(n instanceof IDBRequest)return Do(n);if(In.has(n))return In.get(n);let e=Uo(n);return e!==n&&(In.set(n,e),vn.set(e,n)),e}var Tt=n=>vn.get(n);function Bi(n,e,{blocked:t,upgrade:r,blocking:i,terminated:s}={}){let o=indexedDB.open(n,e),a=W(o);return r&&o.addEventListener("upgradeneeded",c=>{r(W(o.result),c.oldVersion,c.newVersion,W(o.transaction),c)}),t&&o.addEventListener("blocked",c=>t(c.oldVersion,c.newVersion,c)),a.then(c=>{s&&c.addEventListener("close",()=>s()),i&&c.addEventListener("versionchange",u=>i(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var xo=["get","getKey","getAll","getAllKeys","count"],Fo=["put","add","delete","clear"],wn=new Map;function Hi(n,e){if(!(n instanceof IDBDatabase&&!(e in n)&&typeof e=="string"))return;if(wn.get(e))return wn.get(e);let t=e.replace(/FromIndex$/,""),r=e!==t,i=Fo.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(i||xo.includes(t)))return;let s=async function(o,...a){let c=this.transaction(o,i?"readwrite":"readonly"),u=c.store;return r&&(u=u.index(a.shift())),(await Promise.all([u[t](...a),i&&c.done]))[0]};return wn.set(e,s),s}Wi(n=>k(p({},n),{get:(e,t,r)=>Hi(e,t)||n.get(e,t,r),has:(e,t)=>!!Hi(e,t)||n.has(e,t)}));var bn=class{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(t=>{if(Vo(t)){let r=t.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(t=>t).join(" ")}};function Vo(n){return n.getComponent()?.type==="VERSION"}var bt="@firebase/app",An="0.14.12";var q=new ne("@firebase/app"),Wo="@firebase/app-compat",Ho="@firebase/analytics-compat",Bo="@firebase/analytics",zo="@firebase/app-check-compat",$o="@firebase/app-check",Go="@firebase/auth",jo="@firebase/auth-compat",qo="@firebase/database",Ko="@firebase/data-connect",Yo="@firebase/database-compat",Jo="@firebase/functions",Xo="@firebase/functions-compat",Qo="@firebase/installations",Zo="@firebase/installations-compat",ea="@firebase/messaging",ta="@firebase/messaging-compat",na="@firebase/performance",ra="@firebase/performance-compat",ia="@firebase/remote-config",sa="@firebase/remote-config-compat",oa="@firebase/storage",aa="@firebase/storage-compat",ca="@firebase/firestore",ua="@firebase/ai",la="@firebase/firestore-compat",da="firebase",ha="12.13.0";var H="[DEFAULT]",fa={[bt]:"fire-core",[Wo]:"fire-core-compat",[Bo]:"fire-analytics",[Ho]:"fire-analytics-compat",[$o]:"fire-app-check",[zo]:"fire-app-check-compat",[Go]:"fire-auth",[jo]:"fire-auth-compat",[qo]:"fire-rtdb",[Ko]:"fire-data-connect",[Yo]:"fire-rtdb-compat",[Jo]:"fire-fn",[Xo]:"fire-fn-compat",[Qo]:"fire-iid",[Zo]:"fire-iid-compat",[ea]:"fire-fcm",[ta]:"fire-fcm-compat",[na]:"fire-perf",[ra]:"fire-perf-compat",[ia]:"fire-rc",[sa]:"fire-rc-compat",[oa]:"fire-gcs",[aa]:"fire-gcs-compat",[ca]:"fire-fst",[la]:"fire-fst-compat",[ua]:"fire-vertex","fire-js":"fire-js",[da]:"fire-js-all"};var re=new Map,Re=new Map,ke=new Map;function Ce(n,e){try{n.container.addComponent(e)}catch(t){q.debug(`Component ${e.name} failed to register with FirebaseApp ${n.name}`,t)}}function kn(n,e){n.container.addOrOverwriteComponent(e)}function K(n){let e=n.name;if(ke.has(e))return q.debug(`There were multiple attempts to register component ${e}.`),!1;ke.set(e,n);for(let t of re.values())Ce(t,n);for(let t of Re.values())Ce(t,n);return!0}function Cn(n,e){let t=n.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),n.container.getProvider(e)}function pa(n,e,t=H){Cn(n,e).clearInstance(t)}function Nn(n){return n.options!==void 0}function qi(n){return Nn(n)?!1:"authIdToken"in n||"appCheckToken"in n||"releaseOnDeref"in n||"automaticDataCollectionEnabled"in n}function I(n){return n==null?!1:n.settings!==void 0}function ma(){ke.clear()}var ga={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},O=new L("app","Firebase",ga);var At=class{constructor(e,t,r){this._isDeleted=!1,this._options=p({},e),this._config=p({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new C("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw O.create("app-deleted",{appName:this._name})}};function zi(n,e){let t=le(n.split(".")[1]);if(t===null){console.error(`FirebaseServerApp ${e} is invalid: second part could not be parsed.`);return}if(JSON.parse(t).exp===void 0){console.error(`FirebaseServerApp ${e} is invalid: expiration claim could not be parsed`);return}let i=JSON.parse(t).exp*1e3,s=new Date().getTime();i-s<=0&&console.error(`FirebaseServerApp ${e} is invalid: the token has expired.`)}var Sn=class extends At{constructor(e,t,r,i){let s=t.automaticDataCollectionEnabled!==void 0?t.automaticDataCollectionEnabled:!0,o={name:r,automaticDataCollectionEnabled:s};if(e.apiKey!==void 0)super(e,o,i);else{let a=e;super(a.options,o,i)}this._serverConfig=p({automaticDataCollectionEnabled:s},t),this._serverConfig.authIdToken&&zi(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&zi(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,typeof FinalizationRegistry<"u"&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,M(bt,An,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,e!==void 0&&this._finalizationRegistry!==null&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){Pt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw O.create("server-app-deleted")}};var Y=ha;function St(n,e={}){let t=n;typeof e!="object"&&(e={name:e});let r=p({name:H,automaticDataCollectionEnabled:!0},e),i=r.name;if(typeof i!="string"||!i)throw O.create("bad-app-name",{appName:String(i)});if(t||(t=It()),!t)throw O.create("no-options");let s=re.get(i);if(s){if(de(t,s.options)&&de(r,s.config))return s;throw O.create("duplicate-app",{appName:i})}let o=new ze(i);for(let c of ke.values())o.addComponent(c);let a=new At(t,r,o);return re.set(i,a),a}function _a(n,e={}){if(Si()&&!pn())throw O.create("invalid-server-app-environment");let t,r=e||{};if(n&&(Nn(n)?t=n.options:qi(n)?r=n:t=n),r.automaticDataCollectionEnabled===void 0&&(r.automaticDataCollectionEnabled=!0),t||(t=It()),!t)throw O.create("no-options");let i=p(p({},r),t);i.releaseOnDeref!==void 0&&delete i.releaseOnDeref;let s=d=>[...d].reduce((h,f)=>Math.imul(31,h)+f.charCodeAt(0)|0,0);if(r.releaseOnDeref!==void 0&&typeof FinalizationRegistry>"u")throw O.create("finalization-registry-not-supported",{});let o=""+s(JSON.stringify(i)),a=Re.get(o);if(a)return a.incRefCount(r.releaseOnDeref),a;let c=new ze(o);for(let d of ke.values())c.addComponent(d);let u=new Sn(t,r,o,c);return Re.set(o,u),u}function Ki(n=H){let e=re.get(n);if(!e&&n===H&&It())return St();if(!e)throw O.create("no-app",{appName:n});return e}function Ia(){return Array.from(re.values())}async function Pt(n){let e=!1,t=n.name;re.has(t)?(e=!0,re.delete(t)):Re.has(t)&&n.decRefCount()<=0&&(Re.delete(t),e=!0),e&&(await Promise.all(n.container.getProviders().map(r=>r.delete())),n.isDeleted=!0)}function M(n,e,t){let r=fa[n]??n;t&&(r+=`-${t}`);let i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){let o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),q.warn(o.join(" "));return}K(new C(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}function On(n,e){if(n!==null&&typeof n!="function")throw O.create("invalid-log-argument");Mi(n,e)}function Dn(n){Li(n)}var Ea="firebase-heartbeat-database",ya=1,$e="firebase-heartbeat-store",Tn=null;function Yi(){return Tn||(Tn=Bi(Ea,ya,{upgrade:(n,e)=>{switch(e){case 0:try{n.createObjectStore($e)}catch(t){console.warn(t)}}}}).catch(n=>{throw O.create("idb-open",{originalErrorMessage:n.message})})),Tn}async function va(n){try{let t=(await Yi()).transaction($e),r=await t.objectStore($e).get(Ji(n));return await t.done,r}catch(e){if(e instanceof A)q.warn(e.message);else{let t=O.create("idb-get",{originalErrorMessage:e?.message});q.warn(t.message)}}}async function $i(n,e){try{let r=(await Yi()).transaction($e,"readwrite");await r.objectStore($e).put(e,Ji(n)),await r.done}catch(t){if(t instanceof A)q.warn(t.message);else{let r=O.create("idb-set",{originalErrorMessage:t?.message});q.warn(r.message)}}}function Ji(n){return`${n.name}!${n.options.appId}`}var wa=1024,Ta=30,Pn=class{constructor(e){this.container=e,this._heartbeatsCache=null;let t=this.container.getProvider("app").getImmediate();this._storage=new Rn(t),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}async triggerHeartbeat(){try{let t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),r=Gi();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===r||this._heartbeatsCache.heartbeats.some(i=>i.date===r))return;if(this._heartbeatsCache.heartbeats.push({date:r,agent:t}),this._heartbeatsCache.heartbeats.length>Ta){let i=Aa(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(i,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){q.warn(e)}}async getHeartbeatsHeader(){try{if(this._heartbeatsCache===null&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||this._heartbeatsCache.heartbeats.length===0)return"";let e=Gi(),{heartbeatsToSend:t,unsentEntries:r}=ba(this._heartbeatsCache.heartbeats),i=We(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)),i}catch(e){return q.warn(e),""}}};function Gi(){return new Date().toISOString().substring(0,10)}function ba(n,e=wa){let t=[],r=n.slice();for(let i of n){let s=t.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),ji(t)>e){s.dates.pop();break}}else if(t.push({agent:i.agent,dates:[i.date]}),ji(t)>e){t.pop();break}r=r.slice(1)}return{heartbeatsToSend:t,unsentEntries:r}}var Rn=class{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return Se()?Ri().then(()=>!0).catch(()=>!1):!1}async read(){if(await this._canUseIndexedDBPromise){let t=await va(this.app);return t?.heartbeats?t:{heartbeats:[]}}else return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return $i(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return}async add(e){if(await this._canUseIndexedDBPromise){let r=await this.read();return $i(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return}};function ji(n){return We(JSON.stringify({version:2,heartbeats:n})).length}function Aa(n){if(n.length===0)return-1;let e=0,t=n[0].date;for(let r=1;rnew bn(e),"PRIVATE")),K(new C("heartbeat",e=>new Pn(e),"PRIVATE")),M(bt,An,n),M(bt,An,"esm2020"),M("fire-js","")}Sa("");var Mn=class{constructor(e,t){this._delegate=e,this.firebase=t,Ce(e,new C("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),Pt(this._delegate)))}_getService(e,t=H){this._delegate.checkDestroyed();let r=this._delegate.container.getProvider(e);return!r.isInitialized()&&r.getComponent()?.instantiationMode==="EXPLICIT"&&r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=H){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Ce(this._delegate,e)}_addOrOverwriteComponent(e){kn(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}};var Pa={"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."},Xi=new L("app-compat","Firebase",Pa);function Ra(n){let e={},t={__esModule:!0,initializeApp:s,app:i,registerVersion:M,setLogLevel:Dn,onLog:On,apps:null,SDK_VERSION:Y,INTERNAL:{registerComponent:a,removeApp:r,useAsService:c,modularAPIs:Ln}};t.default=t,Object.defineProperty(t,"apps",{get:o});function r(u){delete e[u]}function i(u){if(u=u||H,!mn(e,u))throw Xi.create("no-app",{appName:u});return e[u]}i.App=n;function s(u,d={}){let h=St(u,d);if(mn(e,h.name))return e[h.name];let f=new n(h,t);return e[h.name]=f,f}function o(){return Object.keys(e).map(u=>e[u])}function a(u){let d=u.name,h=d.replace("-compat","");if(K(u)&&u.type==="PUBLIC"){let f=(R=i())=>{if(typeof R[h]!="function")throw Xi.create("invalid-app-argument",{appName:d});return R[h]()};u.serviceProps!==void 0&&Ae(f,u.serviceProps),t[h]=f,n.prototype[h]=function(...R){return this._getService.bind(this,d).apply(this,u.multipleInstances?R:[])}}return u.type==="PUBLIC"?t[h]:null}function c(u,d){return d==="serverAuth"?null:d}return t}function Zi(){let n=Ra(Mn);n.INTERNAL=k(p({},n.INTERNAL),{createFirebaseNamespace:Zi,extendNamespace:e,createSubscribe:vt,ErrorFactory:L,deepExtend:Ae});function e(t){Ae(n,t)}return n}var ka=Zi();var Qi=new ne("@firebase/app-compat"),Ca="@firebase/app-compat",Na="0.5.12";function Oa(n){M(Ca,Na,n)}try{let n=hn();if(n.firebase!==void 0){Qi.warn(` Warning: Firebase is already defined in the global scope. Please make sure Firebase library is only loaded once. `);let e=n.firebase.SDK_VERSION;e&&e.indexOf("LITE")>=0&&Qi.warn(` Warning: You are trying to load Firebase while using Firebase Performance standalone script. You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code. `)}}catch{}var Rt=ka;Oa();var Ie={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"};var ue={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Da(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}function _s(){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."}}var fr=Da,Is=_s,Es=new L("auth","Firebase",_s());var Ot=new ne("@firebase/auth");function La(n,...e){Ot.logLevel<=g.WARN&&Ot.warn(`Auth (${Y}): ${n}`,...e)}function Ct(n,...e){Ot.logLevel<=g.ERROR&&Ot.error(`Auth (${Y}): ${n}`,...e)}function b(n,...e){throw mr(n,...e)}function T(n,...e){return mr(n,...e)}function pr(n,e,t){let r=k(p({},Is()),{[e]:t});return new L("auth","Firebase",r).create(e,{appName:n.name})}function S(n){return pr(n,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function De(n,e,t){let r=t;if(!(e instanceof r))throw r.name!==e.constructor.name&&b(n,"argument-error"),pr(n,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function mr(n,...e){if(typeof n!="string"){let t=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=n.name),n._errorFactory.create(t,...r)}return Es.create(n,...e)}function l(n,e,...t){if(!n)throw mr(e,...t)}function B(n){let e="INTERNAL ASSERTION FAILED: "+n;throw Ct(e),new Error(e)}function U(n,e){n||B(e)}function Qe(){return typeof self<"u"&&self.location?.href||""}function gr(){return es()==="http:"||es()==="https:"}function es(){return typeof self<"u"&&self.location?.protocol||null}function Ma(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(gr()||Et()||"connection"in navigator)?navigator.onLine:!0}function Ua(){if(typeof navigator>"u")return null;let n=navigator;return n.languages&&n.languages[0]||n.language||null}var pe=class{constructor(e,t){this.shortDelay=e,this.longDelay=t,U(t>e,"Short delay should be less than long delay!"),this.isMobile=Ai()||Be()}get(){return Ma()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}};function _r(n,e){U(n.emulator,"Emulator should always be set here");let{url:t}=n.emulator;return e?`${t}${e.startsWith("/")?e.slice(1):e}`:t}var Ze=class{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;B("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;B("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;B("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}};var xa={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};var Fa=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],Va=new pe(3e4,6e4);function E(n,e){return n.tenantId&&!e.tenantId?k(p({},e),{tenantId:n.tenantId}):e}async function y(n,e,t,r,i={}){return ys(n,i,async()=>{let s={},o={};r&&(e==="GET"?o=r:s={body:JSON.stringify(r)});let a=he(p({key:n.config.apiKey},o)).slice(1),c=await n._getAdditionalHeaders();c["Content-Type"]="application/json",n.languageCode&&(c["X-Firebase-Locale"]=n.languageCode);let u=p({method:e,headers:c},s);return Pi()||(u.referrerPolicy="no-referrer"),n.emulatorConfig&&wt(n.emulatorConfig.host)&&(u.credentials="include"),Ze.fetch()(await vs(n,n.config.apiHost,t,a),u)})}async function ys(n,e,t){n._canInitEmulator=!1;let r=p(p({},xa),e);try{let i=new Hn(n),s=await Promise.race([t(),i.promise]);i.clearNetworkTimeout();let o=await s.json();if("needConfirmation"in o)throw je(n,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{let a=s.ok?o.errorMessage:o.error.message,[c,u]=a.split(" : ");if(c==="FEDERATED_USER_ID_ALREADY_LINKED")throw je(n,"credential-already-in-use",o);if(c==="EMAIL_EXISTS")throw je(n,"email-already-in-use",o);if(c==="USER_DISABLED")throw je(n,"user-disabled",o);let d=r[c]||c.toLowerCase().replace(/[_\s]+/g,"-");if(u)throw pr(n,d,u);b(n,d)}}catch(i){if(i instanceof A)throw i;b(n,"network-request-failed",{message:String(i)})}}async function Z(n,e,t,r,i={}){let s=await y(n,e,t,r,i);return"mfaPendingCredential"in s&&b(n,"multi-factor-auth-required",{_serverResponse:s}),s}async function vs(n,e,t,r){let i=`${e}${t}?${r}`,s=n,o=s.config.emulator?_r(n.config,i):`${n.config.apiScheme}://${i}`;return Fa.includes(t)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Wa(n){switch(n){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}var Hn=class{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((t,r)=>{this.timer=setTimeout(()=>r(T(this.auth,"network-request-failed")),Va.get())})}};function je(n,e,t){let r={appName:n.name};t.email&&(r.email=t.email),t.phoneNumber&&(r.phoneNumber=t.phoneNumber);let i=T(n,e,r);return i.customData._tokenResponse=t,i}function ts(n){return n!==void 0&&n.getResponse!==void 0}function ns(n){return n!==void 0&&n.enterprise!==void 0}var Dt=class{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],e.recaptchaKey===void 0)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||this.recaptchaEnforcementState.length===0)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return Wa(t.enforcementState);return null}isProviderEnabled(e){return this.getProviderEnforcementState(e)==="ENFORCE"||this.getProviderEnforcementState(e)==="AUDIT"}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}};async function Ha(n){return(await y(n,"GET","/v1/recaptchaParams")).recaptchaSiteKey||""}async function ws(n,e){return y(n,"GET","/v2/recaptchaConfig",E(n,e))}async function Ba(n,e){return y(n,"POST","/v1/accounts:delete",e)}async function za(n,e){return y(n,"POST","/v1/accounts:update",e)}async function Lt(n,e){return y(n,"POST","/v1/accounts:lookup",e)}function qe(n){if(n)try{let e=new Date(Number(n));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function Ts(n,e=!1){let t=m(n),r=await t.getIdToken(e),i=jt(r);l(i&&i.exp&&i.auth_time&&i.iat,t.auth,"internal-error");let s=typeof i.firebase=="object"?i.firebase:void 0,o=s?.sign_in_provider;return{claims:i,token:r,authTime:qe(Un(i.auth_time)),issuedAtTime:qe(Un(i.iat)),expirationTime:qe(Un(i.exp)),signInProvider:o||null,signInSecondFactor:s?.sign_in_second_factor||null}}function Un(n){return Number(n)*1e3}function jt(n){let[e,t,r]=n.split(".");if(e===void 0||t===void 0||r===void 0)return Ct("JWT malformed, contained fewer than 3 sections"),null;try{let i=le(t);return i?JSON.parse(i):(Ct("Failed to decode base64 JWT payload"),null)}catch(i){return Ct("Caught error parsing JWT payload as JSON",i?.toString()),null}}function rs(n){let e=jt(n);return l(e,"internal-error"),l(typeof e.exp<"u","internal-error"),l(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function Q(n,e,t=!1){if(t)return e;try{return await e}catch(r){throw r instanceof A&&$a(r)&&n.auth.currentUser===n&&await n.auth.signOut(),r}}function $a({code:n}){return n==="auth/user-disabled"||n==="auth/user-token-expired"}var Bn=class{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,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){if(e){let t=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),t}else{this.errorBackoff=3e4;let r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}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()}};var et=class{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=qe(this.lastLoginAt),this.creationTime=qe(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}};async function tt(n){let e=n.auth,t=await n.getIdToken(),r=await Q(n,Lt(e,{idToken:t}));l(r?.users.length,e,"internal-error");let i=r.users[0];n._notifyReloadListener(i);let s=i.providerUserInfo?.length?As(i.providerUserInfo):[],o=Ga(n.providerData,s),a=n.isAnonymous,c=!(n.email&&i.passwordHash)&&!o?.length,u=a?c:!1,d={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new et(i.createdAt,i.lastLoginAt),isAnonymous:u};Object.assign(n,d)}async function bs(n){let e=m(n);await tt(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function Ga(n,e){return[...n.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function As(n){return n.map(r=>{var i=r,{providerId:e}=i,t=gt(i,["providerId"]);return{providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}})}async function ja(n,e){let t=await ys(n,{},async()=>{let r=he({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=n.config,o=await vs(n,i,"/v1/token",`key=${s}`),a=await n._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let c={method:"POST",headers:a,body:r};return n.emulatorConfig&&wt(n.emulatorConfig.host)&&(c.credentials="include"),Ze.fetch()(o,c)});return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}}async function qa(n,e){return y(n,"POST","/v2/accounts:revokeToken",E(n,e))}var Ke=class n{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){l(e.idToken,"internal-error"),l(typeof e.idToken<"u","internal-error"),l(typeof e.refreshToken<"u","internal-error");let t="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):rs(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){l(e.length!==0,"internal-error");let t=rs(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return!t&&this.accessToken&&!this.isExpired?this.accessToken:(l(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:r,refreshToken:i,expiresIn:s}=await ja(e,t);this.updateTokensAndExpiration(r,i,Number(s))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,t){let{refreshToken:r,accessToken:i,expirationTime:s}=t,o=new n;return r&&(l(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(l(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(l(typeof s=="number","internal-error",{appName:e}),o.expirationTime=s),o}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 n,this.toJSON())}_performRefresh(){return B("not implemented")}};function ie(n,e){l(typeof n=="string"||typeof n>"u","internal-error",{appName:e})}var J=class n{constructor(s){var o=s,{uid:e,auth:t,stsTokenManager:r}=o,i=gt(o,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Bn(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new et(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){let t=await Q(this,this.stsTokenManager.getToken(this.auth,e));return l(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return Ts(this,e)}reload(){return bs(this)}_assign(e){this!==e&&(l(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(t=>p({},t)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new n(k(p({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){l(!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 tt(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(I(this.auth.app))return Promise.reject(S(this.auth));let e=await this.getIdToken();return await Q(this,Ba(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return k(p({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>p({},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,i=t.email??void 0,s=t.phoneNumber??void 0,o=t.photoURL??void 0,a=t.tenantId??void 0,c=t._redirectEventId??void 0,u=t.createdAt??void 0,d=t.lastLoginAt??void 0,{uid:h,emailVerified:f,isAnonymous:R,providerData:ee,stsTokenManager:_i}=t;l(h&&_i,e,"internal-error");let uo=Ke.fromJSON(this.name,_i);l(typeof h=="string",e,"internal-error"),ie(r,e.name),ie(i,e.name),l(typeof f=="boolean",e,"internal-error"),l(typeof R=="boolean",e,"internal-error"),ie(s,e.name),ie(o,e.name),ie(a,e.name),ie(c,e.name),ie(u,e.name),ie(d,e.name);let an=new n({uid:h,auth:e,email:i,emailVerified:f,displayName:r,isAnonymous:R,photoURL:o,phoneNumber:s,tenantId:a,stsTokenManager:uo,createdAt:u,lastLoginAt:d});return ee&&Array.isArray(ee)&&(an.providerData=ee.map(lo=>p({},lo))),c&&(an._redirectEventId=c),an}static async _fromIdTokenResponse(e,t,r=!1){let i=new Ke;i.updateFromServerResponse(t);let s=new n({uid:t.localId,auth:e,stsTokenManager:i,isAnonymous:r});return await tt(s),s}static async _fromGetAccountInfoResponse(e,t,r){let i=t.users[0];l(i.localId!==void 0,"internal-error");let s=i.providerUserInfo!==void 0?As(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!s?.length,a=new Ke;a.updateFromIdToken(r);let c=new n({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:o}),u={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new et(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!s?.length};return Object.assign(c,u),c}};var is=new Map;function P(n){U(n instanceof Function,"Expected a class definition");let e=is.get(n);return e?(U(e instanceof n,"Instance stored in cache mismatched with class"),e):(e=new n,is.set(n,e),e)}var Ka=(()=>{class n{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(t,r){this.storage[t]=r}async _get(t){let r=this.storage[t];return r===void 0?null:r}async _remove(t){delete this.storage[t]}_addListener(t,r){}_removeListener(t,r){}}return n.type="NONE",n})(),ae=Ka;function z(n,e,t){return`firebase:${n}:${e}:${t}`}var Mt=class n{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;let{config:i,name:s}=this.auth;this.fullUserKey=z(this.userKey,i.apiKey,s),this.fullPersistenceKey=z("persistence",i.apiKey,s),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(typeof e=="string"){let t=await Lt(this.auth,{idToken:e}).catch(()=>{});return t?J._fromGetAccountInfoResponse(this.auth,t,e):null}return J._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 n(P(ae),e,r);let i=(await Promise.all(t.map(async u=>{if(await u._isAvailable())return u}))).filter(u=>u),s=i[0]||P(ae),o=z(r,e.config.apiKey,e.name),a=null;for(let u of t)try{let d=await u._get(o);if(d){let h;if(typeof d=="string"){let f=await Lt(e,{idToken:d}).catch(()=>{});if(!f)break;h=await J._fromGetAccountInfoResponse(e,f,d)}else h=J._fromJSON(e,d);u!==s&&(a=h),s=u;break}}catch{}let c=i.filter(u=>u._shouldAllowMigration);return!s._shouldAllowMigration||!c.length?new n(s,e,r):(s=c[0],a&&await s._set(o,a.toJSON()),await Promise.all(t.map(async u=>{if(u!==s)try{await u._remove(o)}catch{}})),new n(s,e,r))}};function ss(n){let e=n.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(ks(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Ss(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Cs(e))return"Blackberry";if(Ns(e))return"Webos";if(Ps(e))return"Safari";if((e.includes("chrome/")||Rs(e))&&!e.includes("edge/"))return"Chrome";if(Le(e))return"Android";{let t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=n.match(t);if(r?.length===2)return r[1]}return"Other"}function Ss(n=v()){return/firefox\//i.test(n)}function Ps(n=v()){let e=n.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Rs(n=v()){return/crios\//i.test(n)}function ks(n=v()){return/iemobile/i.test(n)}function Le(n=v()){return/android/i.test(n)}function Cs(n=v()){return/blackberry/i.test(n)}function Ns(n=v()){return/webos/i.test(n)}function Me(n=v()){return/iphone|ipad|ipod/i.test(n)||/macintosh/i.test(n)&&/mobile/i.test(n)}function Os(n=v()){return/(iPad|iPhone|iPod).*OS 7_\d/i.test(n)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(n)}function Ya(n=v()){return Me(n)&&!!window.navigator?.standalone}function Ja(){return yt()&&document.documentMode===10}function Ds(n=v()){return Me(n)||Le(n)||Ns(n)||Cs(n)||/windows phone/i.test(n)||ks(n)}function Ir(n,e=[]){let t;switch(n){case"Browser":t=ss(v());break;case"Worker":t=`${ss(v())}-${n}`;break;default:t=n}let r=e.length?e.join(","):"FirebaseCore-web";return`${t}/JsCore/${Y}/${r}`}var zn=class{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let r=s=>new Promise((o,a)=>{try{let c=e(s);o(c)}catch(c){a(c)}});r.onAbort=t,this.queue.push(r);let i=this.queue.length-1;return()=>{this.queue[i]=()=>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(r){t.reverse();for(let i of t)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r?.message})}}};async function Xa(n,e={}){return y(n,"GET","/v2/passwordPolicy",E(n,e))}var Qa=6,$n=class{constructor(e){let t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??Qa,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),t.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),t.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),t.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),t.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(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&&(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,i=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),i&&(t.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,t){this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);let r;for(let i=0;i="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}};var Ut=class{constructor(e,t,r,i){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new xt(this),this.idTokenSubscription=new xt(this),this.beforeStateQueue=new zn(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=Es,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=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=P(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Mt.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}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 Lt(this,{idToken:e}),r=await J._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(t){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",t),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(I(this.app)){let s=this.app.settings.authIdToken;return s?new Promise(o=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(s).then(o,o))}):this.directlySetCurrentUser(null)}let t=await this.assertedPersistence.getCurrentUser(),r=t,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let s=this.redirectUser?._redirectEventId,o=r?._redirectEventId,a=await this.tryRedirectSignIn(e);(!s||s===o)&&a?.user&&(r=a.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(s){r=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(s))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return l(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await tt(e)}catch(t){if(t?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=Ua()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(I(this.app))return Promise.reject(S(this));let t=e?m(e):null;return t&&l(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&&l(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 I(this.app)?Promise.reject(S(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return I(this.app)?Promise.reject(S(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(P(e))})}_getRecaptchaConfig(){return this.tenantId==null?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 this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=await Xa(this),t=new $n(e);this.tenantId===null?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new L("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=await this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:t};this.tenantId!=null&&(r.tenantId=this.tenantId),await qa(this,r)}}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 e===null?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&P(e)||this._popupRedirectResolver;l(t,this,"argument-error"),this.redirectPersistenceManager=await Mt.create(this,[P(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,i){if(this._deleted)return()=>{};let s=typeof t=="function"?t:t.next.bind(t),o=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(l(a,this,"internal-error"),a.then(()=>{o||s(this.currentUser)}),typeof t=="function"){let c=e.addObserver(t,r,i);return()=>{o=!0,c()}}else{let c=e.addObserver(t);return()=>{o=!0,c()}}}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 l(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Ir(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(I(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&La(`Error while retrieving App Check token: ${e.error}`),e?.token}};function _(n){return m(n)}var xt=class{constructor(e){this.auth=e,this.observer=null,this.addObserver=vt(t=>this.observer=t)}get next(){return l(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}};var lt={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function Za(n){lt=n}function Er(n){return lt.loadJS(n)}function ec(){return lt.recaptchaV2Script}function tc(){return lt.recaptchaEnterpriseScript}function nc(){return lt.gapiScript}function Ls(n){return`__${n}${Math.floor(Math.random()*1e6)}`}var rc=500,ic=6e4,kt=1e12,Gn=class{constructor(e){this.auth=e,this.counter=kt,this._widgets=new Map}render(e,t){let r=this.counter;return this._widgets.set(r,new Kn(e,this.auth.name,t||{})),this.counter++,r}reset(e){let t=e||kt;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){let t=e||kt;return this._widgets.get(t)?.getResponse()||""}async execute(e){let t=e||kt;return this._widgets.get(t)?.execute(),""}},jn=class{constructor(){this.enterprise=new qn}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}},qn=class{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}},Kn=class{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};let i=typeof e=="string"?document.getElementById(e):e;l(i,"argument-error",{appName:t}),this.container=i,this.isVisible=this.params.size!=="invisible",this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),!this.timerId&&(this.timerId=window.setTimeout(()=>{this.responseToken=sc(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch{}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch{}this.isVisible&&this.execute()},ic)},rc))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}};function sc(n){let e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let r=0;r{ws(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(c=>{if(c.recaptchaKey===void 0)a(new Error("recaptcha Enterprise site key undefined"));else{let u=new Dt(c);return s.tenantId==null?s._agentRecaptchaConfig=u:s._tenantRecaptchaConfigs[s.tenantId]=u,o(u.siteKey)}}).catch(c=>{a(c)})})}function i(s,o,a){let c=window.grecaptcha;ns(c)?c.enterprise.ready(()=>{c.enterprise.execute(s,{action:e}).then(u=>{o(u)}).catch(()=>{o(Ye)})}):a(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new jn().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{r(this.auth).then(a=>{if(!t&&ns(window.grecaptcha))i(a,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let c=tc();c.length!==0&&(c+=a),Er(c).then(()=>{i(a,s,o)}).catch(u=>{o(u)})}}).catch(a=>{o(a)})})}};async function Ge(n,e,t,r=!1,i=!1){let s=new Ft(n),o;if(i)o=Ye;else try{o=await s.verify(t)}catch{o=await s.verify(t,!0)}let a=p({},e);if(t==="mfaSmsEnrollment"||t==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in a){let c=a.phoneEnrollmentInfo.phoneNumber,u=a.phoneEnrollmentInfo.recaptchaToken;Object.assign(a,{phoneEnrollmentInfo:{phoneNumber:c,recaptchaToken:u,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in a){let c=a.phoneSignInInfo.recaptchaToken;Object.assign(a,{phoneSignInInfo:{recaptchaToken:c,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return a}return r?Object.assign(a,{captchaResp:o}):Object.assign(a,{captchaResponse:o}),Object.assign(a,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(a,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),a}async function se(n,e,t,r,i){if(i==="EMAIL_PASSWORD_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){let s=await Ge(n,e,t,t==="getOobCode");return r(n,s)}else return r(n,e).catch(async s=>{if(s.code==="auth/missing-recaptcha-token"){console.log(`${t} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let o=await Ge(n,e,t,t==="getOobCode");return r(n,o)}else return Promise.reject(s)});else if(i==="PHONE_PROVIDER")if(n._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let s=await Ge(n,e,t);return r(n,s).catch(async o=>{if(n._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&(o.code==="auth/missing-recaptcha-token"||o.code==="auth/invalid-app-credential")){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${t} flow.`);let a=await Ge(n,e,t,!1,!0);return r(n,a)}return Promise.reject(o)})}else{let s=await Ge(n,e,t,!1,!0);return r(n,s)}else return Promise.reject(i+" provider is not supported.")}async function ac(n){let e=_(n),t=await ws(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),r=new Dt(t);e.tenantId==null?e._agentRecaptchaConfig=r:e._tenantRecaptchaConfigs[e.tenantId]=r,r.isAnyProviderEnabled()&&new Ft(e).verify()}function cc(n,e){let t=e?.persistence||[],r=(Array.isArray(t)?t:[t]).map(P);e?.errorMap&&n._updateErrorMap(e.errorMap),n._initializeWithPersistence(r,e?.popupRedirectResolver)}function yr(n,e,t){let r=_(n);l(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");let i=!!t?.disableWarnings,s=Ms(e),{host:o,port:a}=uc(e),c=a===null?"":`:${a}`,u={url:`${s}//${o}${c}/`},d=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){l(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),l(de(u,r.config.emulator)&&de(d,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=u,r.emulatorConfig=d,r.settings.appVerificationDisabledForTesting=!0,wt(o)?Oi(`${s}//${o}${c}`):i||lc()}function Ms(n){let e=n.indexOf(":");return e<0?"":n.substr(0,e+1)}function uc(n){let e=Ms(n),t=/(\/\/)?([^?#/]+)/.exec(n.substr(e.length));if(!t)return{host:"",port:null};let r=t[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){let s=i[1];return{host:s,port:os(r.substr(s.length+1))}}else{let[s,o]=r.split(":");return{host:s,port:os(o)}}}function os(n){if(!n)return null;let e=Number(n);return isNaN(e)?null:e}function lc(){function n(){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)}typeof console<"u"&&typeof console.info=="function"&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),typeof window<"u"&&typeof document<"u"&&(document.readyState==="loading"?window.addEventListener("DOMContentLoaded",n):n())}var $=class{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return B("not implemented")}_getIdTokenResponse(e){return B("not implemented")}_linkToIdToken(e,t){return B("not implemented")}_getReauthenticationResolver(e){return B("not implemented")}};async function Us(n,e){return y(n,"POST","/v1/accounts:resetPassword",E(n,e))}async function dc(n,e){return y(n,"POST","/v1/accounts:update",e)}async function hc(n,e){return y(n,"POST","/v1/accounts:signUp",e)}async function fc(n,e){return y(n,"POST","/v1/accounts:update",E(n,e))}async function pc(n,e){return Z(n,"POST","/v1/accounts:signInWithPassword",E(n,e))}async function qt(n,e){return y(n,"POST","/v1/accounts:sendOobCode",E(n,e))}async function mc(n,e){return qt(n,e)}async function gc(n,e){return qt(n,e)}async function _c(n,e){return qt(n,e)}async function Ic(n,e){return qt(n,e)}async function Ec(n,e){return Z(n,"POST","/v1/accounts:signInWithEmailLink",E(n,e))}async function yc(n,e){return Z(n,"POST","/v1/accounts:signInWithEmailLink",E(n,e))}var nt=class n extends ${constructor(e,t,r,i=null){super("password",r),this._email=e,this._password=t,this._tenantId=i}static _fromEmailAndPassword(e,t){return new n(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new n(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t=typeof e=="string"?JSON.parse(e):e;if(t?.email&&t?.password){if(t.signInMethod==="password")return this._fromEmailAndPassword(t.email,t.password);if(t.signInMethod==="emailLink")return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":let t={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return se(e,t,"signInWithPassword",pc,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return Ec(e,{email:this._email,oobCode:this._password});default:b(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":let r={idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return se(e,r,"signUpPassword",hc,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return yc(e,{idToken:t,email:this._email,oobCode:this._password});default:b(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}};async function X(n,e){return Z(n,"POST","/v1/accounts:signInWithIdp",E(n,e))}var vc="http://localhost",x=class n extends ${constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new n(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):b("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let a=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i}=a,s=gt(a,["providerId","signInMethod"]);if(!r||!i)return null;let o=new n(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){let t=this.buildRequest();return X(e,t)}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,X(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,X(e,t)}buildRequest(){let e={requestUri:vc,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=he(t)}return e}};async function as(n,e){return y(n,"POST","/v1/accounts:sendVerificationCode",E(n,e))}async function wc(n,e){return Z(n,"POST","/v1/accounts:signInWithPhoneNumber",E(n,e))}async function Tc(n,e){let t=await Z(n,"POST","/v1/accounts:signInWithPhoneNumber",E(n,e));if(t.temporaryProof)throw je(n,"account-exists-with-different-credential",t);return t}var bc={USER_NOT_FOUND:"user-not-found"};async function Ac(n,e){let t=k(p({},e),{operation:"REAUTH"});return Z(n,"POST","/v1/accounts:signInWithPhoneNumber",E(n,t),bc)}var Ne=class n extends ${constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new n({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new n({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return wc(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return Tc(e,p({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return Ac(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:i}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:i}}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){typeof e=="string"&&(e=JSON.parse(e));let{verificationId:t,verificationCode:r,phoneNumber:i,temporaryProof:s}=e;return!r&&!t&&!i&&!s?null:new n({verificationId:t,verificationCode:r,phoneNumber:i,temporaryProof:s})}};function Sc(n){switch(n){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}}function Pc(n){let e=te(Pe(n)).link,t=e?te(Pe(e)).deep_link_id:null,r=te(Pe(n)).deep_link_id;return(r?te(Pe(r)).link:null)||r||t||e||n}var rt=class n{constructor(e){let t=te(Pe(e)),r=t.apiKey??null,i=t.oobCode??null,s=Sc(t.mode??null);l(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=Pc(e);try{return new n(t)}catch{return null}}};var dt=(()=>{class n{constructor(){this.providerId=n.PROVIDER_ID}static credential(t,r){return nt._fromEmailAndPassword(t,r)}static credentialWithLink(t,r){let i=rt.parseLink(r);return l(i,"argument-error"),nt._fromEmailAndCode(t,i.code,i.tenantId)}}n.PROVIDER_ID="password",n.EMAIL_PASSWORD_SIGN_IN_METHOD="password",n.EMAIL_LINK_SIGN_IN_METHOD="emailLink";return n})(),F=class{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}};var ce=class extends F{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}},Oe=class n extends ce{static credentialFromJSON(e){let t=typeof e=="string"?JSON.parse(e):e;return l("providerId"in t&&"signInMethod"in t,"argument-error"),x._fromParams(t)}credential(e){return this._credential(k(p({},e),{nonce:e.rawNonce}))}_credential(e){return l(e.idToken||e.accessToken,"argument-error"),x._fromParams(k(p({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return n.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return n.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:i,pendingToken:s,nonce:o,providerId:a}=e;if(!r&&!i&&!t&&!s||!a)return null;try{return new n(a)._credential({idToken:t,accessToken:r,nonce:o,pendingToken:s})}catch{return null}}};var Kt=(()=>{class n extends ce{constructor(){super("facebook.com")}static credential(t){return x._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.FACEBOOK_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t)||!t.oauthAccessToken)return null;try{return n.credential(t.oauthAccessToken)}catch{return null}}}n.FACEBOOK_SIGN_IN_METHOD="facebook.com",n.PROVIDER_ID="facebook.com";return n})(),Yt=(()=>{class n extends ce{constructor(){super("google.com"),this.addScope("profile")}static credential(t,r){return x._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:r})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;let{oauthIdToken:r,oauthAccessToken:i}=t;if(!r&&!i)return null;try{return n.credential(r,i)}catch{return null}}}n.GOOGLE_SIGN_IN_METHOD="google.com",n.PROVIDER_ID="google.com";return n})(),Jt=(()=>{class n extends ce{constructor(){super("github.com")}static credential(t){return x._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.GITHUB_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t)||!t.oauthAccessToken)return null;try{return n.credential(t.oauthAccessToken)}catch{return null}}}n.GITHUB_SIGN_IN_METHOD="github.com",n.PROVIDER_ID="github.com";return n})(),Rc="http://localhost",me=class n extends ${constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){let t=this.buildRequest();return X(e,t)}_linkToIdToken(e,t){let r=this.buildRequest();return r.idToken=t,X(e,r)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,X(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){let t=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i,pendingToken:s}=t;return!r||!i||!s||r!==i?null:new n(r,s)}static _create(e,t){return new n(e,t)}buildRequest(){return{requestUri:Rc,returnSecureToken:!0,pendingToken:this.pendingToken}}};var kc="saml.",it=class n extends F{constructor(e){l(e.startsWith(kc),"argument-error"),super(e)}static credentialFromResult(e){return n.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return n.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){let t=me.fromJSON(e);return l(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return me._create(r,t)}catch{return null}}};var Xt=(()=>{class n extends ce{constructor(){super("twitter.com")}static credential(t,r){return x._fromParams({providerId:n.PROVIDER_ID,signInMethod:n.TWITTER_SIGN_IN_METHOD,oauthToken:t,oauthTokenSecret:r})}static credentialFromResult(t){return n.credentialFromTaggedObject(t)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;let{oauthAccessToken:r,oauthTokenSecret:i}=t;if(!r||!i)return null;try{return n.credential(r,i)}catch{return null}}}n.TWITTER_SIGN_IN_METHOD="twitter.com",n.PROVIDER_ID="twitter.com";return n})();async function xs(n,e){return Z(n,"POST","/v1/accounts:signUp",E(n,e))}var V=class n{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,i=!1){let s=await J._fromIdTokenResponse(e,r,i),o=cs(r);return new n({user:s,providerId:o,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);let i=cs(r);return new n({user:e,providerId:i,_tokenResponse:r,operationType:t})}};function cs(n){return n.providerId?n.providerId:"phoneNumber"in n?"phone":null}async function vr(n){if(I(n.app))return Promise.reject(S(n));let e=_(n);if(await e._initializationPromise,e.currentUser?.isAnonymous)return new V({user:e.currentUser,providerId:null,operationType:"signIn"});let t=await xs(e,{returnSecureToken:!0}),r=await V._fromIdTokenResponse(e,"signIn",t,!0);return await e._updateCurrentUser(r.user),r}var Yn=class n extends A{constructor(e,t,r,i){super(t.code,t.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,n.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,i){return new n(e,t,r,i)}};function Fs(n,e,t,r){return(e==="reauthenticate"?t._getReauthenticationResolver(n):t._getIdTokenResponse(n)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?Yn._fromErrorAndOperation(n,s,e,r):s})}function Vs(n){return new Set(n.map(({providerId:e})=>e).filter(e=>!!e))}async function wr(n,e){let t=m(n);await Qt(!0,t,e);let{providerUserInfo:r}=await za(t.auth,{idToken:await t.getIdToken(),deleteProvider:[e]}),i=Vs(r||[]);return t.providerData=t.providerData.filter(s=>i.has(s.providerId)),i.has("phone")||(t.phoneNumber=null),await t.auth._persistUserIfCurrent(t),t}async function Tr(n,e,t=!1){let r=await Q(n,e._linkToIdToken(n.auth,await n.getIdToken()),t);return V._forOperation(n,"link",r)}async function Qt(n,e,t){await tt(e);let r=Vs(e.providerData),i=n===!1?"provider-already-linked":"no-such-provider";l(r.has(t)===n,e.auth,i)}async function Ws(n,e,t=!1){let{auth:r}=n;if(I(r.app))return Promise.reject(S(r));let i="reauthenticate";try{let s=await Q(n,Fs(r,i,e,n),t);l(s.idToken,r,"internal-error");let o=jt(s.idToken);l(o,r,"internal-error");let{sub:a}=o;return l(n.uid===a,r,"user-mismatch"),V._forOperation(n,i,s)}catch(s){throw s?.code==="auth/user-not-found"&&b(r,"user-mismatch"),s}}async function Hs(n,e,t=!1){if(I(n.app))return Promise.reject(S(n));let r="signIn",i=await Fs(n,r,e),s=await V._fromIdTokenResponse(n,r,i);return t||await n._updateCurrentUser(s.user),s}async function Ue(n,e){return Hs(_(n),e)}async function Zt(n,e){let t=m(n);return await Qt(!1,t,e.providerId),Tr(t,e)}async function en(n,e){return Ws(m(n),e)}async function Cc(n,e){return Z(n,"POST","/v1/accounts:signInWithCustomToken",E(n,e))}async function br(n,e){if(I(n.app))return Promise.reject(S(n));let t=_(n),r=await Cc(t,{token:e,returnSecureToken:!0}),i=await V._fromIdTokenResponse(t,"signIn",r);return await t._updateCurrentUser(i.user),i}var ge=class{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?Jn._fromServerResponse(e,t):"totpInfo"in t?Xn._fromServerResponse(e,t):b(e,"internal-error")}},Jn=class n extends ge{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new n(t)}},Xn=class n extends ge{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new n(t)}};function tn(n,e,t){l(t.url?.length>0,n,"invalid-continue-uri"),l(typeof t.dynamicLinkDomain>"u"||t.dynamicLinkDomain.length>0,n,"invalid-dynamic-link-domain"),l(typeof t.linkDomain>"u"||t.linkDomain.length>0,n,"invalid-hosting-link-domain"),e.continueUrl=t.url,e.dynamicLinkDomain=t.dynamicLinkDomain,e.linkDomain=t.linkDomain,e.canHandleCodeInApp=t.handleCodeInApp,t.iOS&&(l(t.iOS.bundleId.length>0,n,"missing-ios-bundle-id"),e.iOSBundleId=t.iOS.bundleId),t.android&&(l(t.android.packageName.length>0,n,"missing-android-pkg-name"),e.androidInstallApp=t.android.installApp,e.androidMinimumVersionCode=t.android.minimumVersion,e.androidPackageName=t.android.packageName)}async function Ar(n){let e=_(n);e._getPasswordPolicyInternal()&&await e._updatePasswordPolicy()}async function Sr(n,e,t){let r=_(n),i={requestType:"PASSWORD_RESET",email:e,clientType:"CLIENT_TYPE_WEB"};t&&tn(r,i,t),await se(r,i,"getOobCode",gc,"EMAIL_PASSWORD_PROVIDER")}async function Pr(n,e,t){await Us(m(n),{oobCode:e,newPassword:t}).catch(async r=>{throw r.code==="auth/password-does-not-meet-requirements"&&Ar(n),r})}async function Rr(n,e){await fc(m(n),{oobCode:e})}async function nn(n,e){let t=m(n),r=await Us(t,{oobCode:e}),i=r.requestType;switch(l(i,t,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":l(r.newEmail,t,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":l(r.mfaInfo,t,"internal-error");default:l(r.email,t,"internal-error")}let s=null;return r.mfaInfo&&(s=ge._fromServerResponse(_(t),r.mfaInfo)),{data:{email:(r.requestType==="VERIFY_AND_CHANGE_EMAIL"?r.newEmail:r.email)||null,previousEmail:(r.requestType==="VERIFY_AND_CHANGE_EMAIL"?r.email:r.newEmail)||null,multiFactorInfo:s},operation:i}}async function kr(n,e){let{data:t}=await nn(m(n),e);return t.email}async function Cr(n,e,t){if(I(n.app))return Promise.reject(S(n));let r=_(n),o=await se(r,{returnSecureToken:!0,email:e,password:t,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",xs,"EMAIL_PASSWORD_PROVIDER").catch(c=>{throw c.code==="auth/password-does-not-meet-requirements"&&Ar(n),c}),a=await V._fromIdTokenResponse(r,"signIn",o);return await r._updateCurrentUser(a.user),a}function Nr(n,e,t){return I(n.app)?Promise.reject(S(n)):Ue(m(n),dt.credential(e,t)).catch(async r=>{throw r.code==="auth/password-does-not-meet-requirements"&&Ar(n),r})}async function Or(n,e,t){let r=_(n),i={requestType:"EMAIL_SIGNIN",email:e,clientType:"CLIENT_TYPE_WEB"};function s(o,a){l(a.handleCodeInApp,r,"argument-error"),a&&tn(r,o,a)}s(i,t),await se(r,i,"getOobCode",_c,"EMAIL_PASSWORD_PROVIDER")}function Dr(n,e){return rt.parseLink(e)?.operation==="EMAIL_SIGNIN"}async function Lr(n,e,t){if(I(n.app))return Promise.reject(S(n));let r=m(n),i=dt.credentialWithLink(e,t||Qe());return l(i._tenantId===(r.tenantId||null),r,"tenant-id-mismatch"),Ue(r,i)}async function Nc(n,e){return y(n,"POST","/v1/accounts:createAuthUri",E(n,e))}async function Mr(n,e){let t=gr()?Qe():"http://localhost",r={identifier:e,continueUri:t},{signinMethods:i}=await Nc(m(n),r);return i||[]}async function Ur(n,e){let t=m(n),i={requestType:"VERIFY_EMAIL",idToken:await n.getIdToken()};e&&tn(t.auth,i,e);let{email:s}=await mc(t.auth,i);s!==n.email&&await n.reload()}async function xr(n,e,t){let r=m(n),s={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await n.getIdToken(),newEmail:e};t&&tn(r.auth,s,t);let{email:o}=await Ic(r.auth,s);o!==n.email&&await n.reload()}async function Oc(n,e){return y(n,"POST","/v1/accounts:update",e)}async function Fr(n,{displayName:e,photoURL:t}){if(e===void 0&&t===void 0)return;let r=m(n),s={idToken:await r.getIdToken(),displayName:e,photoUrl:t,returnSecureToken:!0},o=await Q(r,Oc(r.auth,s));r.displayName=o.displayName||null,r.photoURL=o.photoUrl||null;let a=r.providerData.find(({providerId:c})=>c==="password");a&&(a.displayName=r.displayName,a.photoURL=r.photoURL),await r._updateTokensIfNecessary(o)}function Vr(n,e){let t=m(n);return I(t.auth.app)?Promise.reject(S(t.auth)):Bs(t,e,null)}function Wr(n,e){return Bs(m(n),null,e)}async function Bs(n,e,t){let{auth:r}=n,s={idToken:await n.getIdToken(),returnSecureToken:!0};e&&(s.email=e),t&&(s.password=t);let o=await Q(n,dc(r,s));await n._updateTokensIfNecessary(o,!0)}function Dc(n){if(!n)return null;let{providerId:e}=n,t=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},r=n.isNewUser||n.kind==="identitytoolkit#SignupNewUserResponse";if(!e&&n?.idToken){let i=jt(n.idToken)?.firebase?.sign_in_provider;if(i){let s=i!=="anonymous"&&i!=="custom"?i:null;return new oe(r,s)}}if(!e)return null;switch(e){case"facebook.com":return new Qn(r,t);case"github.com":return new Zn(r,t);case"google.com":return new er(r,t);case"twitter.com":return new tr(r,t,n.screenName||null);case"custom":case"anonymous":return new oe(r,null);default:return new oe(r,e,t)}}var oe=class{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}},Vt=class extends oe{constructor(e,t,r,i){super(e,t,r),this.username=i}},Qn=class extends oe{constructor(e,t){super(e,"facebook.com",t)}},Zn=class extends Vt{constructor(e,t){super(e,"github.com",t,typeof t?.login=="string"?t?.login:null)}},er=class extends oe{constructor(e,t){super(e,"google.com",t)}},tr=class extends Vt{constructor(e,t,r){super(e,"twitter.com",t,r)}};function Hr(n){let{user:e,_tokenResponse:t}=n;return e.isAnonymous&&!t?{providerId:null,isNewUser:!1,profile:null}:Dc(t)}var Wt=class n{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new n("enroll",e,t)}static _fromMfaPendingCredential(e){return new n("signin",e)}toJSON(){return{multiFactorSession:{[this.type==="enroll"?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return n._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return n._fromIdtoken(e.multiFactorSession.idToken)}return null}};var nr=class n{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,t){let r=_(e),i=t.customData._serverResponse,s=(i.mfaInfo||[]).map(a=>ge._fromServerResponse(r,a));l(i.mfaPendingCredential,r,"internal-error");let o=Wt._fromMfaPendingCredential(i.mfaPendingCredential);return new n(o,s,async a=>{let c=await a._process(r,o);delete i.mfaInfo,delete i.mfaPendingCredential;let u=k(p({},i),{idToken:c.idToken,refreshToken:c.refreshToken});switch(t.operationType){case"signIn":let d=await V._fromIdTokenResponse(r,t.operationType,u);return await r._updateCurrentUser(d.user),d;case"reauthenticate":return l(t.user,r,"internal-error"),V._forOperation(t.user,t.operationType,u);default:b(r,"internal-error")}})}async resolveSignIn(e){let t=e;return this.signInResolver(t)}};function Br(n,e){let t=m(n),r=e;return l(e.customData.operationType,t,"argument-error"),l(r.customData._serverResponse?.mfaPendingCredential,t,"argument-error"),nr._fromError(t,r)}function us(n,e){return y(n,"POST","/v2/accounts/mfaEnrollment:start",E(n,e))}function Lc(n,e){return y(n,"POST","/v2/accounts/mfaEnrollment:finalize",E(n,e))}function Mc(n,e){return y(n,"POST","/v2/accounts/mfaEnrollment:withdraw",E(n,e))}var rr=class n{constructor(e){this.user=e,this.enrolledFactors=[],e._onReload(t=>{t.mfaInfo&&(this.enrolledFactors=t.mfaInfo.map(r=>ge._fromServerResponse(e.auth,r)))})}static _fromUser(e){return new n(e)}async getSession(){return Wt._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){let r=e,i=await this.getSession(),s=await Q(this.user,r._process(this.user.auth,i,t));return await this.user._updateTokensIfNecessary(s),this.user.reload()}async unenroll(e){let t=typeof e=="string"?e:e.uid,r=await this.user.getIdToken();try{let i=await Q(this.user,Mc(this.user.auth,{idToken:r,mfaEnrollmentId:t}));this.enrolledFactors=this.enrolledFactors.filter(({uid:s})=>s!==t),await this.user._updateTokensIfNecessary(i),await this.user.reload()}catch(i){throw i}}},xn=new WeakMap;function zr(n){let e=m(n);return xn.has(e)||xn.set(e,rr._fromUser(e)),xn.get(e)}var Ht="__sak";var Bt=class{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Ht,"1"),this.storage.removeItem(Ht),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){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()}};var Uc=1e3,xc=10,Fc=(()=>{class n extends Bt{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(t,r)=>this.onStorageEvent(t,r),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Ds(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(let r of Object.keys(this.listeners)){let i=this.storage.getItem(r),s=this.localCache[r];i!==s&&t(r,s,i)}}onStorageEvent(t,r=!1){if(!t.key){this.forAllChangedKeys((a,c,u)=>{this.notifyListeners(a,u)});return}let i=t.key;r?this.detachListener():this.stopPolling();let s=()=>{let a=this.storage.getItem(i);!r&&this.localCache[i]===a||this.notifyListeners(i,a)},o=this.storage.getItem(i);Ja()&&o!==t.newValue&&t.newValue!==t.oldValue?setTimeout(s,xc):s()}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r&&JSON.parse(r))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((t,r,i)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:r,newValue:i}),!0)})},Uc)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,r){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(t,r){await super._set(t,r),this.localCache[t]=JSON.stringify(r)}async _get(t){let r=await super._get(t);return this.localCache[t]=JSON.stringify(r),r}async _remove(t){await super._remove(t),delete this.localCache[t]}}return n.type="LOCAL",n})(),xe=Fc;var Vc=(()=>{class n extends Bt{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(t,r){}_removeListener(t,r){}}return n.type="SESSION",n})(),G=Vc;function Wc(n){return Promise.all(n.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(t){return{fulfilled:!1,reason:t}}}))}var Hc=(()=>{class n{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){let r=this.receivers.find(s=>s.isListeningto(t));if(r)return r;let i=new n(t);return this.receivers.push(i),i}isListeningto(t){return this.eventTarget===t}async handleEvent(t){let r=t,{eventId:i,eventType:s,data:o}=r.data,a=this.handlersMap[s];if(!a?.size)return;r.ports[0].postMessage({status:"ack",eventId:i,eventType:s});let c=Array.from(a).map(async d=>d(r.origin,o)),u=await Wc(c);r.ports[0].postMessage({status:"done",eventId:i,eventType:s,response:u})}_subscribe(t,r){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(r)}_unsubscribe(t,r){this.handlersMap[t]&&r&&this.handlersMap[t].delete(r),(!r||this.handlersMap[t].size===0)&&delete this.handlersMap[t],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}n.receivers=[];return n})();function Ee(n="",e=10){let t="";for(let r=0;r{let u=Ee("",20);i.port1.start();let d=setTimeout(()=>{c(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(h){let f=h;if(f.data.eventId===u)switch(f.data.status){case"ack":clearTimeout(d),s=setTimeout(()=>{c(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),a(f.data.response);break;default:clearTimeout(d),clearTimeout(s),c(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:u,data:t},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}};function w(){return window}function Bc(n){w().location.href=n}function $r(){return typeof w().WorkerGlobalScope<"u"&&typeof w().importScripts=="function"}async function zc(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function $c(){return navigator?.serviceWorker?.controller||null}function Gc(){return $r()?self:null}var zs="firebaseLocalStorageDb",jc=1,zt="firebaseLocalStorage",$s="fbase_key",_e=class{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}};function rn(n,e){return n.transaction([zt],e?"readwrite":"readonly").objectStore(zt)}function qc(){let n=indexedDB.deleteDatabase(zs);return new _e(n).toPromise()}function sr(){let n=indexedDB.open(zs,jc);return new Promise((e,t)=>{n.addEventListener("error",()=>{t(n.error)}),n.addEventListener("upgradeneeded",()=>{let r=n.result;try{r.createObjectStore(zt,{keyPath:$s})}catch(i){t(i)}}),n.addEventListener("success",async()=>{let r=n.result;r.objectStoreNames.contains(zt)?e(r):(r.close(),await qc(),e(await sr()))})})}async function ls(n,e,t){let r=rn(n,!0).put({[$s]:e,value:t});return new _e(r).toPromise()}async function Kc(n,e){let t=rn(n,!1).get(e),r=await new _e(t).toPromise();return r===void 0?null:r.value}function ds(n,e){let t=rn(n,!0).delete(e);return new _e(t).toPromise()}var Yc=800,Jc=3,Xc=(()=>{class n{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:(this.db=await sr(),this.db)}async _withRetries(t){let r=0;for(;;)try{let i=await this._openDb();return await t(i)}catch(i){if(r++>Jc)throw i;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return $r()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Hc._getInstance(Gc()),this.receiver._subscribe("keyChanged",async(t,r)=>({keyProcessed:(await this._poll()).includes(r.key)})),this.receiver._subscribe("ping",async(t,r)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await zc(),!this.activeServiceWorker)return;this.sender=new ir(this.activeServiceWorker);let t=await this.sender._send("ping",{},800);t&&t[0]?.fulfilled&&t[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(t){if(!(!this.sender||!this.activeServiceWorker||$c()!==this.activeServiceWorker))try{await this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let t=await sr();return await ls(t,Ht,"1"),await ds(t,Ht),!0}catch{}return!1}async _withPendingWrite(t){this.pendingWrites++;try{await t()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(i=>ls(i,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){let r=await this._withRetries(i=>Kc(i,t));return this.localCache[t]=r,r}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(r=>ds(r,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){let t=await this._withRetries(s=>{let o=rn(s,!1).getAll();return new _e(o).toPromise()});if(!t)return[];if(this.pendingWrites!==0)return[];let r=[],i=new Set;if(t.length!==0)for(let{fbase_key:s,value:o}of t)i.add(s),JSON.stringify(this.localCache[s])!==JSON.stringify(o)&&(this.notifyListeners(s,o),r.push(s));for(let s of Object.keys(this.localCache))this.localCache[s]&&!i.has(s)&&(this.notifyListeners(s,null),r.push(s));return r}notifyListeners(t,r){this.localCache[t]=r;let i=this.listeners[t];if(i)for(let s of Array.from(i))s(r)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),Yc)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,r){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(r)}_removeListener(t,r){this.listeners[t]&&(this.listeners[t].delete(r),this.listeners[t].size===0&&delete this.listeners[t]),Object.keys(this.listeners).length===0&&this.stopPolling()}}return n.type="LOCAL",n})(),ye=Xc;function hs(n,e){return y(n,"POST","/v2/accounts/mfaSignIn:start",E(n,e))}function Qc(n,e){return y(n,"POST","/v2/accounts/mfaSignIn:finalize",E(n,e))}var Fn=Ls("rcb"),Zc=new pe(3e4,6e4),or=class{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!w().grecaptcha?.render}load(e,t=""){return l(eu(t),e,"argument-error"),this.shouldResolveImmediately(t)&&ts(w().grecaptcha)?Promise.resolve(w().grecaptcha):new Promise((r,i)=>{let s=w().setTimeout(()=>{i(T(e,"network-request-failed"))},Zc.get());w()[Fn]=()=>{w().clearTimeout(s),delete w()[Fn];let a=w().grecaptcha;if(!a||!ts(a)){i(T(e,"internal-error"));return}let c=a.render;a.render=(u,d)=>{let h=c(u,d);return this.counter++,h},this.hostLanguage=t,r(a)};let o=`${ec()}?${he({onload:Fn,render:"explicit",hl:t})}`;Er(o).catch(()=>{clearTimeout(s),i(T(e,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!w().grecaptcha?.render&&(e===this.hostLanguage||this.counter>0||this.librarySeparatelyLoaded)}};function eu(n){return n.length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(n)}var ar=class{async load(e){return new Gn(e)}clearedOneInstance(){}};var Je="recaptcha",tu={theme:"light",type:"image"},st=class{constructor(e,t,r=p({},tu)){this.parameters=r,this.type=Je,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=_(e),this.isInvisible=this.parameters.size==="invisible",l(typeof document<"u",this.auth,"operation-not-supported-in-this-environment");let i=typeof t=="string"?document.getElementById(t):t;l(i,this.auth,"argument-error"),this.container=i,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=this.auth.settings.appVerificationDisabledForTesting?new ar:new or,this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),t=this.getAssertedRecaptcha(),r=t.getResponse(e);return r||new Promise(i=>{let s=o=>{o&&(this.tokenChangeListeners.delete(s),i(o))};this.tokenChangeListeners.add(s),this.isInvisible&&t.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise?this.renderPromise:(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e}),this.renderPromise)}_reset(){this.assertNotDestroyed(),this.widgetId!==null&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){l(!this.parameters.sitekey,this.auth,"argument-error"),l(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),l(typeof document<"u",this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(e){return t=>{if(this.tokenChangeListeners.forEach(r=>r(t)),typeof e=="function")e(t);else if(typeof e=="string"){let r=w()[e];typeof r=="function"&&r(t)}}}assertNotDestroyed(){l(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;if(!this.isInvisible){let t=document.createElement("div");e.appendChild(t),e=t}this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){l(gr()&&!$r(),this.auth,"internal-error"),await nu(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);let e=await Ha(this.auth);l(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return l(this.recaptcha,this.auth,"internal-error"),this.recaptcha}};function nu(){let n=null;return new Promise(e=>{if(document.readyState==="complete"){e();return}n=()=>e(),window.addEventListener("load",n)}).catch(e=>{throw n&&window.removeEventListener("load",n),e})}var ot=class{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){let t=Ne._fromVerification(this.verificationId,e);return this.onConfirmation(t)}};async function Gr(n,e,t){if(I(n.app))return Promise.reject(S(n));let r=_(n),i=await sn(r,e,m(t));return new ot(i,s=>Ue(r,s))}async function jr(n,e,t){let r=m(n);await Qt(!1,r,"phone");let i=await sn(r.auth,e,m(t));return new ot(i,s=>Zt(r,s))}async function qr(n,e,t){let r=m(n);if(I(r.auth.app))return Promise.reject(S(r.auth));let i=await sn(r.auth,e,m(t));return new ot(i,s=>en(r,s))}async function sn(n,e,t){if(!n._getRecaptchaConfig())try{await ac(n)}catch{console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let r;if(typeof e=="string"?r={phoneNumber:e}:r=e,"session"in r){let i=r.session;if("phoneNumber"in r){l(i.type==="enroll",n,"internal-error");let s={idToken:i.credential,phoneEnrollmentInfo:{phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"}};return(await se(n,s,"mfaSmsEnrollment",async(u,d)=>{if(d.phoneEnrollmentInfo.captchaResponse===Ye){l(t?.type===Je,u,"argument-error");let h=await Vn(u,d,t);return us(u,h)}return us(u,d)},"PHONE_PROVIDER").catch(u=>Promise.reject(u))).phoneSessionInfo.sessionInfo}else{l(i.type==="signin",n,"internal-error");let s=r.multiFactorHint?.uid||r.multiFactorUid;l(s,n,"missing-multi-factor-info");let o={mfaPendingCredential:i.credential,mfaEnrollmentId:s,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}};return(await se(n,o,"mfaSmsSignIn",async(d,h)=>{if(h.phoneSignInInfo.captchaResponse===Ye){l(t?.type===Je,d,"argument-error");let f=await Vn(d,h,t);return hs(d,f)}return hs(d,h)},"PHONE_PROVIDER").catch(d=>Promise.reject(d))).phoneResponseInfo.sessionInfo}}else{let i={phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"};return(await se(n,i,"sendVerificationCode",async(c,u)=>{if(u.captchaResponse===Ye){l(t?.type===Je,c,"argument-error");let d=await Vn(c,u,t);return as(c,d)}return as(c,u)},"PHONE_PROVIDER").catch(c=>Promise.reject(c))).sessionInfo}}finally{t?._reset()}}async function Kr(n,e){let t=m(n);if(I(t.auth.app))return Promise.reject(S(t.auth));await Tr(t,e)}async function Vn(n,e,t){l(t.type===Je,n,"argument-error");let r=await t.verify();l(typeof r=="string",n,"argument-error");let i=p({},e);if("phoneEnrollmentInfo"in i){let s=i.phoneEnrollmentInfo.phoneNumber,o=i.phoneEnrollmentInfo.captchaResponse,a=i.phoneEnrollmentInfo.clientType,c=i.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(i,{phoneEnrollmentInfo:{phoneNumber:s,recaptchaToken:r,captchaResponse:o,clientType:a,recaptchaVersion:c}}),i}else if("phoneSignInInfo"in i){let s=i.phoneSignInInfo.captchaResponse,o=i.phoneSignInInfo.clientType,a=i.phoneSignInInfo.recaptchaVersion;return Object.assign(i,{phoneSignInInfo:{recaptchaToken:r,captchaResponse:s,clientType:o,recaptchaVersion:a}}),i}else return Object.assign(i,{recaptchaToken:r}),i}var ve=(()=>{class n{constructor(t){this.providerId=n.PROVIDER_ID,this.auth=_(t)}verifyPhoneNumber(t,r){return sn(this.auth,t,m(r))}static credential(t,r){return Ne._fromVerification(t,r)}static credentialFromResult(t){let r=t;return n.credentialFromTaggedObject(r)}static credentialFromError(t){return n.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;let{phoneNumber:r,temporaryProof:i}=t;return r&&i?Ne._fromTokenResponse(r,i):null}}n.PROVIDER_ID="phone",n.PHONE_SIGN_IN_METHOD="phone";return n})();function we(n,e){return e?P(e):(l(n._popupRedirectResolver,n,"argument-error"),n._popupRedirectResolver)}var at=class extends ${constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return X(e,this._buildIdpRequest())}_linkToIdToken(e,t){return X(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return X(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 ru(n){return Hs(n.auth,new at(n),n.bypassAuthState)}function iu(n){let{auth:e,user:t}=n;return l(t,e,"internal-error"),Ws(t,new at(n),n.bypassAuthState)}async function su(n){let{auth:e,user:t}=n;return l(t,e,"internal-error"),Tr(t,new at(n),n.bypassAuthState)}var $t=class{constructor(e,t,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,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(r){this.reject(r)}})}async onAuthEvent(e){let{urlResponse:t,sessionId:r,postBody:i,tenantId:s,error:o,type:a}=e;if(o){this.reject(o);return}let c={auth:this.auth,requestUri:t,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(c))}catch(u){this.reject(u)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return ru;case"linkViaPopup":case"linkViaRedirect":return su;case"reauthViaPopup":case"reauthViaRedirect":return iu;default:b(this.auth,"internal-error")}}resolve(e){U(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){U(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}};var ou=new pe(2e3,1e4);async function Yr(n,e,t){if(I(n.app))return Promise.reject(T(n,"operation-not-supported-in-this-environment"));let r=_(n);De(n,e,F);let i=we(r,t);return new Qr(r,"signInViaPopup",e,i).executeNotNull()}async function Jr(n,e,t){let r=m(n);if(I(r.auth.app))return Promise.reject(T(r.auth,"operation-not-supported-in-this-environment"));De(r.auth,e,F);let i=we(r.auth,t);return new Qr(r.auth,"reauthViaPopup",e,i,r).executeNotNull()}async function Xr(n,e,t){let r=m(n);De(r.auth,e,F);let i=we(r.auth,t);return new Qr(r.auth,"linkViaPopup",e,i,r).executeNotNull()}var Qr=(()=>{class n extends $t{constructor(t,r,i,s,o){super(t,r,s,o),this.provider=i,this.authWindow=null,this.pollId=null,n.currentPopupAction&&n.currentPopupAction.cancel(),n.currentPopupAction=this}async executeNotNull(){let t=await this.execute();return l(t,this.auth,"internal-error"),t}async onExecution(){U(this.filter.length===1,"Popup operations only handle one event");let t=Ee();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch(r=>{this.reject(r)}),this.resolver._isIframeWebStorageSupported(this.auth,r=>{r||this.reject(T(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(T(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,n.currentPopupAction=null}pollUserCancellation(){let t=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(T(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(t,ou.get())};t()}}n.currentPopupAction=null;return n})(),au="pendingRedirect",Xe=new Map,cr=class extends $t{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let e=Xe.get(this.auth._key());if(!e){try{let r=await cu(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(r)}catch(t){e=()=>Promise.reject(t)}Xe.set(this.auth._key(),e)}return this.bypassAuthState||Xe.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if(e.type==="signInViaRedirect")return super.onAuthEvent(e);if(e.type==="unknown"){this.resolve(null);return}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 cu(n,e){let t=qs(e),r=js(n);if(!await r._isAvailable())return!1;let i=await r._get(t)==="true";return await r._remove(t),i}async function Zr(n,e){return js(n)._set(qs(e),"true")}function Gs(){Xe.clear()}function Fe(n,e){Xe.set(n._key(),e)}function js(n){return P(n._redirectPersistence)}function qs(n){return z(au,n.config.apiKey,n.name)}function ei(n,e,t){return uu(n,e,t)}async function uu(n,e,t){if(I(n.app))return Promise.reject(S(n));let r=_(n);De(n,e,F),await r._initializationPromise;let i=we(r,t);return await Zr(i,r),i._openRedirect(r,e,"signInViaRedirect")}function ti(n,e,t){return lu(n,e,t)}async function lu(n,e,t){let r=m(n);if(De(r.auth,e,F),I(r.auth.app))return Promise.reject(S(r.auth));await r.auth._initializationPromise;let i=we(r.auth,t);await Zr(i,r.auth);let s=await Ks(r);return i._openRedirect(r.auth,e,"reauthViaRedirect",s)}function ni(n,e,t){return du(n,e,t)}async function du(n,e,t){let r=m(n);De(r.auth,e,F),await r.auth._initializationPromise;let i=we(r.auth,t);await Qt(!1,r,e.providerId),await Zr(i,r.auth);let s=await Ks(r);return i._openRedirect(r.auth,e,"linkViaRedirect",s)}async function ri(n,e){return await _(n)._initializationPromise,Te(n,e,!1)}async function Te(n,e,t=!1){if(I(n.app))return Promise.reject(S(n));let r=_(n),i=we(r,e),o=await new cr(r,i,t).execute();return o&&!t&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}async function Ks(n){let e=Ee(`${n.uid}:::`);return n._redirectEventId=e,await n.auth._setRedirectUser(n),await n.auth._persistUserIfCurrent(n),e}var hu=600*1e3,ct=class{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||!fu(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){if(e.error&&!Ys(e)){let r=e.error.code?.split("auth/")[1]||"internal-error";t.onError(T(this.auth,r))}else t.onAuthEvent(e)}isEventForConsumer(e,t){let r=t.eventId===null||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=hu&&this.cachedEventUids.clear(),this.cachedEventUids.has(fs(e))}saveEventToCache(e){this.cachedEventUids.add(fs(e)),this.lastProcessedEventTime=Date.now()}};function fs(n){return[n.type,n.eventId,n.sessionId,n.tenantId].filter(e=>e).join("-")}function Ys({type:n,error:e}){return n==="unknown"&&e?.code==="auth/no-auth-event"}function fu(n){switch(n.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return Ys(n);default:return!1}}async function ii(n,e={}){return y(n,"GET","/v1/projects",e)}var pu=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,mu=/^https?/;async function gu(n){if(n.config.emulator)return;let{authorizedDomains:e}=await ii(n);for(let t of e)try{if(_u(t))return}catch{}b(n,"unauthorized-domain")}function _u(n){let e=Qe(),{protocol:t,hostname:r}=new URL(e);if(n.startsWith("chrome-extension://")){let o=new URL(n);return o.hostname===""&&r===""?t==="chrome-extension:"&&n.replace("chrome-extension://","")===e.replace("chrome-extension://",""):t==="chrome-extension:"&&o.hostname===r}if(!mu.test(t))return!1;if(pu.test(n))return r===n;let i=n.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}var Iu=new pe(3e4,6e4);function ps(){let n=w().___jsl;if(n?.H){for(let e of Object.keys(n.H))if(n.H[e].r=n.H[e].r||[],n.H[e].L=n.H[e].L||[],n.H[e].r=[...n.H[e].L],n.CP)for(let t=0;t{function r(){ps(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{ps(),t(T(n,"network-request-failed"))},timeout:Iu.get()})}if(w().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else if(w().gapi?.load)r();else{let i=Ls("iframefcb");return w()[i]=()=>{gapi.load?r():t(T(n,"network-request-failed"))},Er(`${nc()}?onload=${i}`).catch(s=>t(s))}}).catch(e=>{throw Nt=null,e})}var Nt=null;function yu(n){return Nt=Nt||Eu(n),Nt}var vu=new pe(5e3,15e3),wu="__/auth/iframe",Tu="emulator/auth/iframe",bu={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Au=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Su(n){let e=n.config;l(e.authDomain,n,"auth-domain-config-required");let t=e.emulator?_r(e,Tu):`https://${n.config.authDomain}/${wu}`,r={apiKey:e.apiKey,appName:n.name,v:Y},i=Au.get(n.config.apiHost);i&&(r.eid=i);let s=n._getFrameworks();return s.length&&(r.fw=s.join(",")),`${t}?${he(r).slice(1)}`}async function Pu(n){let e=await yu(n),t=w().gapi;return l(t,n,"internal-error"),e.open({where:document.body,url:Su(n),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:bu,dontclear:!0},r=>new Promise(async(i,s)=>{await r.restyle({setHideOnLeave:!1});let o=T(n,"network-request-failed"),a=w().setTimeout(()=>{s(o)},vu.get());function c(){w().clearTimeout(a),i(r)}r.ping(c).then(c,()=>{s(o)})}))}var Ru={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},ku=500,Cu=600,Nu="_blank",Ou="http://localhost",ut=class{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}};function Du(n,e,t,r=ku,i=Cu){let s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWidth-r)/2,0).toString(),a="",c=k(p({},Ru),{width:r.toString(),height:i.toString(),top:s,left:o}),u=v().toLowerCase();t&&(a=Rs(u)?Nu:t),Ss(u)&&(e=e||Ou,c.scrollbars="yes");let d=Object.entries(c).reduce((f,[R,ee])=>`${f}${R}=${ee},`,"");if(Ya(u)&&a!=="_self")return Lu(e||"",a),new ut(null);let h=window.open(e||"",a,d);l(h,n,"popup-blocked");try{h.focus()}catch{}return new ut(h)}function Lu(n,e){let t=document.createElement("a");t.href=n,t.target=e;let r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(r)}var Mu="__/auth/handler",Uu="emulator/auth/handler",xu=encodeURIComponent("fac");async function Gt(n,e,t,r,i,s){l(n.config.authDomain,n,"auth-domain-config-required"),l(n.config.apiKey,n,"invalid-api-key");let o={apiKey:n.config.apiKey,appName:n.name,authType:t,redirectUrl:r,v:Y,eventId:i};if(e instanceof F){e.setDefaultLanguage(n.languageCode),o.providerId=e.providerId||"",Ci(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(let[d,h]of Object.entries(s||{}))o[d]=h}if(e instanceof ce){let d=e.getScopes().filter(h=>h!=="");d.length>0&&(o.scopes=d.join(","))}n.tenantId&&(o.tid=n.tenantId);let a=o;for(let d of Object.keys(a))a[d]===void 0&&delete a[d];let c=await n._getAppCheckToken(),u=c?`#${xu}=${encodeURIComponent(c)}`:"";return`${Fu(n)}?${he(a).slice(1)}${u}`}function Fu({config:n}){return n.emulator?_r(n,Uu):`https://${n.authDomain}/${Mu}`}var Wn="webStorageSupport",ur=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=G,this._completeRedirectFn=Te,this._overrideRedirectResult=Fe}async _openPopup(e,t,r,i){U(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()");let s=await Gt(e,t,r,Qe(),i);return Du(e,s,Ee())}async _openRedirect(e,t,r,i){await this._originValidation(e);let s=await Gt(e,t,r,Qe(),i);return Bc(s),new Promise(()=>{})}_initialize(e){let t=e._key();if(this.eventManagers[t]){let{manager:i,promise:s}=this.eventManagers[t];return i?Promise.resolve(i):(U(s,"If manager is not set, promise should be"),s)}let r=this.initAndGetManager(e);return this.eventManagers[t]={promise:r},r.catch(()=>{delete this.eventManagers[t]}),r}async initAndGetManager(e){let t=await Pu(e),r=new ct(e);return t.register("authEvent",i=>(l(i?.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.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(Wn,{type:Wn},i=>{let s=i?.[0]?.[Wn];s!==void 0&&t(!!s),b(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){let t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=gu(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return Ds()||Ps()||Me()}},si=ur,lr=class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return B("unexpected MultiFactorSessionType")}}},dr=class n extends lr{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new n(e)}_finalizeEnroll(e,t,r){return Lc(e,{idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return Qc(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}},oi=(()=>{class n{constructor(){}static assertion(t){return dr._fromCredential(t)}}return n.FACTOR_ID="phone",n})();var ms="@firebase/auth",gs="1.13.1";var hr=class{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(r=>{e(r?.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(){l(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}};function Vu(n){switch(n){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function Wu(n){K(new C("auth",(e,{options:t})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:a}=r.options;l(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});let c={apiKey:o,authDomain:a,clientPlatform:n,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Ir(n)},u=new Ut(r,i,s,c);return cc(u,t),u},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),K(new C("auth-internal",e=>{let t=_(e.getProvider("auth").getImmediate());return(r=>new hr(r))(t)},"PRIVATE").setInstantiationMode("EXPLICIT")),M(ms,gs,Vu(n)),M(ms,gs,"esm2020")}var Hu=300,_d=bi("authIdTokenMaxAge")||Hu;function Bu(){return document.getElementsByTagName("head")?.[0]??document}Za({loadJS(n){return new Promise((e,t)=>{let r=document.createElement("script");r.setAttribute("src",n),r.onload=e,r.onerror=i=>{let s=T("internal-error");s.customData=i,t(s)},r.type="text/javascript",r.charset="UTF-8",Bu().appendChild(r)})},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="});Wu("Browser");function be(){return window}var zu=2e3;async function $u(n,e,t){let{BuildInfo:r}=be();U(e.sessionId,"AuthEvent did not contain a session ID");let i=await Yu(e.sessionId),s={};return Me()?s.ibi=r.packageName:Le()?s.apn=r.packageName:b(n,"operation-not-supported-in-this-environment"),r.displayName&&(s.appDisplayName=r.displayName),s.sessionId=i,Gt(n,t,e.type,void 0,e.eventId??void 0,s)}async function Gu(n){let{BuildInfo:e}=be(),t={};Me()?t.iosBundleId=e.packageName:Le()?t.androidPackageName=e.packageName:b(n,"operation-not-supported-in-this-environment"),await ii(n,t)}function ju(n){let{cordova:e}=be();return new Promise(t=>{e.plugins.browsertab.isAvailable(r=>{let i=null;r?e.plugins.browsertab.openUrl(n):i=e.InAppBrowser.open(n,Os()?"_blank":"_system","location=yes"),t(i)})})}async function qu(n,e,t){let{cordova:r}=be(),i=()=>{};try{await new Promise((s,o)=>{let a=null;function c(){s();let h=r.plugins.browsertab?.close;typeof h=="function"&&h(),typeof t?.close=="function"&&t.close()}function u(){a||(a=window.setTimeout(()=>{o(T(n,"redirect-cancelled-by-user"))},zu))}function d(){document?.visibilityState==="visible"&&u()}e.addPassiveListener(c),document.addEventListener("resume",u,!1),Le()&&document.addEventListener("visibilitychange",d,!1),i=()=>{e.removePassiveListener(c),document.removeEventListener("resume",u,!1),document.removeEventListener("visibilitychange",d,!1),a&&window.clearTimeout(a)}})}finally{i()}}function Ku(n){let e=be();l(typeof e?.universalLinks?.subscribe=="function",n,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),l(typeof e?.BuildInfo?.packageName<"u",n,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),l(typeof e?.cordova?.plugins?.browsertab?.openUrl=="function",n,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),l(typeof e?.cordova?.plugins?.browsertab?.isAvailable=="function",n,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),l(typeof e?.cordova?.InAppBrowser?.open=="function",n,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"})}async function Yu(n){let e=Ju(n),t=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(t)).map(i=>i.toString(16).padStart(2,"0")).join("")}function Ju(n){if(U(/[0-9a-zA-Z]+/.test(n),"Can only convert alpha-numeric strings"),typeof TextEncoder<"u")return new TextEncoder().encode(n);let e=new ArrayBuffer(n.length),t=new Uint8Array(e);for(let r=0;r{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(e){return this.resolveInitialized(),this.passiveListeners.forEach(t=>t(e)),super.onEvent(e)}async initialized(){await this.initPromise}};function Qu(n,e,t=null){return{type:e,eventId:t,urlResponse:null,sessionId:tl(),postBody:null,tenantId:n.tenantId,error:T(n,"no-auth-event")}}function Zu(n,e){return ci()._set(ui(n),e)}async function Js(n){let e=await ci()._get(ui(n));return e&&await ci()._remove(ui(n)),e}function el(n,e){let t=rl(e);if(t.includes("/__/auth/callback")){let r=on(t),s=(r.firebaseError?nl(decodeURIComponent(r.firebaseError)):null)?.code?.split("auth/")?.[1],o=s?T(s):null;return o?{type:n.type,eventId:n.eventId,tenantId:n.tenantId,error:o,urlResponse:null,sessionId:null,postBody:null}:{type:n.type,eventId:n.eventId,tenantId:n.tenantId,sessionId:n.sessionId,urlResponse:t,postBody:null}}return null}function tl(){let n=[],e="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let t=0;t{await Js(e),t.onEvent(Xs())},il),a=async d=>{clearTimeout(o);let h=await Js(e),f=null;h&&d?.url&&(f=el(h,d.url)),t.onEvent(f||Xs())};typeof r<"u"&&typeof r.subscribe=="function"&&r.subscribe(null,a);let c=i,u=`${s.packageName.toLowerCase()}://`;be().handleOpenURL=async d=>{if(d.toLowerCase().startsWith(u)&&a({url:d}),typeof c=="function")try{c(d)}catch(h){console.error(h)}}}},Qs=li;function Xs(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:T("no-auth-event")}}function Zs(n,e){_(n)._logFramework(e)}var ol="@firebase/auth-compat",al="0.6.6";var cl=1e3;function pt(){return self?.location?.protocol||null}function ul(){return pt()==="http:"||pt()==="https:"}function no(n=v()){return!!((pt()==="file:"||pt()==="ionic:"||pt()==="capacitor:")&&n.toLowerCase().match(/iphone|ipad|ipod|android/))}function ll(){return Be()||He()}function dl(){return yt()&&document?.documentMode===11}function hl(n=v()){return/Edge\/\d+/.test(n)}function fl(n=v()){return dl()||hl(n)}function ro(){try{let n=self.localStorage,e=Ee();if(n)return n.setItem(e,"1"),n.removeItem(e),fl()?Se():!0}catch{return gi()&&Se()}return!1}function gi(){return typeof global<"u"&&"WorkerGlobalScope"in global&&"importScripts"in global}function di(){return(ul()||Et()||no())&&!ll()&&ro()&&!gi()}function io(){return no()&&typeof document<"u"}async function pl(){return io()?new Promise(n=>{let e=setTimeout(()=>{n(!1)},cl);document.addEventListener("deviceready",()=>{clearTimeout(e),n(!0)})}):!1}function ml(){return typeof window<"u"?window:null}var D={LOCAL:"local",NONE:"none",SESSION:"session"},ht=l,so="persistence";function gl(n,e){if(ht(Object.values(D).includes(e),n,"invalid-persistence-type"),Be()){ht(e!==D.SESSION,n,"unsupported-persistence-type");return}if(He()){ht(e===D.NONE,n,"unsupported-persistence-type");return}if(gi()){ht(e===D.NONE||e===D.LOCAL&&Se(),n,"unsupported-persistence-type");return}ht(e===D.NONE||ro(),n,"unsupported-persistence-type")}async function hi(n){await n._initializationPromise;let e=oo(),t=z(so,n.config.apiKey,n.name);e&&e.setItem(t,n._getPersistenceType())}function _l(n,e){let t=oo();if(!t)return[];let r=z(so,n,e);switch(t.getItem(r)){case D.NONE:return[ae];case D.LOCAL:return[ye,G];case D.SESSION:return[G];default:return[]}}function oo(){try{return ml()?.sessionStorage||null}catch{return null}}var Il=l,j=class{constructor(){this.browserResolver=P(si),this.cordovaResolver=P(Qs),this.underlyingResolver=null,this._redirectPersistence=G,this._completeRedirectFn=Te,this._overrideRedirectResult=Fe}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,i){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,i)}async _openRedirect(e,t,r,i){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,i)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return io()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Il(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){if(this.underlyingResolver)return;let e=await pl();this.underlyingResolver=e?this.cordovaResolver:this.browserResolver}};function ao(n){return n.unwrap()}function El(n){return n.wrapped()}function yl(n){return co(n)}function vl(n,e){let t=e.customData?._tokenResponse;if(e?.code==="auth/multi-factor-auth-required"){let r=e;r.resolver=new pi(n,Br(n,e))}else if(t){let r=co(e),i=e;r&&(i.credential=r,i.tenantId=t.tenantId||void 0,i.email=t.email||void 0,i.phoneNumber=t.phoneNumber||void 0)}}function co(n){let{_tokenResponse:e}=n instanceof A?n.customData:n;if(!e)return null;if(!(n instanceof A)&&"temporaryProof"in e&&"phoneNumber"in e)return ve.credentialFromResult(n);let t=e.providerId;if(!t||t===Ie.PASSWORD)return null;let r;switch(t){case Ie.GOOGLE:r=Yt;break;case Ie.FACEBOOK:r=Kt;break;case Ie.GITHUB:r=Jt;break;case Ie.TWITTER:r=Xt;break;default:let{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:o,pendingToken:a,nonce:c}=e;return!s&&!o&&!i&&!a?null:a?t.startsWith("saml.")?me._create(t,a):x._fromParams({providerId:t,signInMethod:t,pendingToken:a,idToken:i,accessToken:s}):new Oe(t).credential({idToken:i,accessToken:s,rawNonce:c})}return n instanceof A?r.credentialFromError(n):r.credentialFromResult(n)}function N(n,e){return e.catch(t=>{throw t instanceof A&&vl(n,t),t}).then(t=>{let r=t.operationType,i=t.user;return{operationType:r,credential:yl(t),additionalUserInfo:Hr(t),user:Ve.getOrCreate(i)}})}async function fi(n,e){let t=await e;return{verificationId:t.verificationId,confirm:r=>N(n,t.confirm(r))}}var pi=class{constructor(e,t){this.resolver=t,this.auth=El(e)}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return N(ao(this.auth),this.resolver.resolveSignIn(e))}};var Ve=class n{constructor(e){this._delegate=e,this.multiFactor=zr(e)}static getOrCreate(e){return n.USER_MAP.has(e)||n.USER_MAP.set(e,new n(e)),n.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return N(this.auth,Zt(this._delegate,e))}async linkWithPhoneNumber(e,t){return fi(this.auth,jr(this._delegate,e,t))}async linkWithPopup(e){return N(this.auth,Xr(this._delegate,e,j))}async linkWithRedirect(e){return await hi(_(this.auth)),ni(this._delegate,e,j)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return N(this.auth,en(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return fi(this.auth,qr(this._delegate,e,t))}reauthenticateWithPopup(e){return N(this.auth,Jr(this._delegate,e,j))}async reauthenticateWithRedirect(e){return await hi(_(this.auth)),ti(this._delegate,e,j)}sendEmailVerification(e){return Ur(this._delegate,e)}async unlink(e){return await wr(this._delegate,e),this}updateEmail(e){return Vr(this._delegate,e)}updatePassword(e){return Wr(this._delegate,e)}updatePhoneNumber(e){return Kr(this._delegate,e)}updateProfile(e){return Fr(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return xr(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}};Ve.USER_MAP=new WeakMap;var ft=l,eo=(()=>{class n{constructor(t,r){if(this.app=t,r.isInitialized()){this._delegate=r.getImmediate(),this.linkUnderlyingAuth();return}let{apiKey:i}=t.options;ft(i,"invalid-api-key",{appName:t.name}),ft(i,"invalid-api-key",{appName:t.name});let s=typeof window<"u"?j:void 0;this._delegate=r.initialize({options:{persistence:wl(i,t.name),popupRedirectResolver:s}}),this._delegate._updateErrorMap(fr),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?Ve.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(t){this._delegate.languageCode=t}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(t){this._delegate.tenantId=t}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(t,r){yr(this._delegate,t,r)}applyActionCode(t){return Rr(this._delegate,t)}checkActionCode(t){return nn(this._delegate,t)}confirmPasswordReset(t,r){return Pr(this._delegate,t,r)}async createUserWithEmailAndPassword(t,r){return N(this._delegate,Cr(this._delegate,t,r))}fetchProvidersForEmail(t){return this.fetchSignInMethodsForEmail(t)}fetchSignInMethodsForEmail(t){return Mr(this._delegate,t)}isSignInWithEmailLink(t){return Dr(this._delegate,t)}async getRedirectResult(){ft(di(),this._delegate,"operation-not-supported-in-this-environment");let t=await ri(this._delegate,j);return t?N(this._delegate,Promise.resolve(t)):{credential:null,user:null}}addFrameworkForLogging(t){Zs(this._delegate,t)}onAuthStateChanged(t,r,i){let{next:s,error:o,complete:a}=to(t,r,i);return this._delegate.onAuthStateChanged(s,o,a)}onIdTokenChanged(t,r,i){let{next:s,error:o,complete:a}=to(t,r,i);return this._delegate.onIdTokenChanged(s,o,a)}sendSignInLinkToEmail(t,r){return Or(this._delegate,t,r)}sendPasswordResetEmail(t,r){return Sr(this._delegate,t,r||void 0)}async setPersistence(t){gl(this._delegate,t);let r;switch(t){case D.SESSION:r=G;break;case D.LOCAL:r=await P(ye)._isAvailable()?ye:xe;break;case D.NONE:r=ae;break;default:return b("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(r)}signInAndRetrieveDataWithCredential(t){return this.signInWithCredential(t)}signInAnonymously(){return N(this._delegate,vr(this._delegate))}signInWithCredential(t){return N(this._delegate,Ue(this._delegate,t))}signInWithCustomToken(t){return N(this._delegate,br(this._delegate,t))}signInWithEmailAndPassword(t,r){return N(this._delegate,Nr(this._delegate,t,r))}signInWithEmailLink(t,r){return N(this._delegate,Lr(this._delegate,t,r))}signInWithPhoneNumber(t,r){return fi(this._delegate,Gr(this._delegate,t,r))}async signInWithPopup(t){return ft(di(),this._delegate,"operation-not-supported-in-this-environment"),N(this._delegate,Yr(this._delegate,t,j))}async signInWithRedirect(t){return ft(di(),this._delegate,"operation-not-supported-in-this-environment"),await hi(this._delegate),ei(this._delegate,t,j)}updateCurrentUser(t){return this._delegate.updateCurrentUser(t)}verifyPasswordResetCode(t){return kr(this._delegate,t)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}return n.Persistence=D,n})();function to(n,e,t){let r=n;typeof n!="function"&&({next:r,error:e,complete:t}=n);let i=r;return{next:o=>i(o&&Ve.getOrCreate(o)),error:e,complete:t}}function wl(n,e){let t=_l(n,e);if(typeof self<"u"&&!t.includes(ye)&&t.push(ye),typeof window<"u")for(let r of[xe,G])t.includes(r)||t.push(r);return t.includes(ae)||t.push(ae),t}var mt=class{static credential(e,t){return ve.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new ve(ao(Rt.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}};mt.PHONE_SIGN_IN_METHOD=ve.PHONE_SIGN_IN_METHOD;mt.PROVIDER_ID=ve.PROVIDER_ID;var Tl=l,mi=class{constructor(e,t,r=Rt.app()){Tl(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new st(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}};var bl="auth-compat";function Al(n){n.INTERNAL.registerComponent(new C(bl,e=>{let t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new eo(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:ue.EMAIL_SIGNIN,PASSWORD_RESET:ue.PASSWORD_RESET,RECOVER_EMAIL:ue.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:ue.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:ue.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:ue.VERIFY_EMAIL}},EmailAuthProvider:dt,FacebookAuthProvider:Kt,GithubAuthProvider:Jt,GoogleAuthProvider:Yt,OAuthProvider:Oe,SAMLAuthProvider:it,PhoneAuthProvider:mt,PhoneMultiFactorGenerator:oi,RecaptchaVerifier:mi,TwitterAuthProvider:Xt,Auth:eo,AuthCredential:$,Error:A}).setInstantiationMode("LAZY").setMultipleInstances(!1)),n.registerVersion(ol,al)}Al(Rt);export{fo as a,po as b,Ti as c,go as d,Rl as e,hn as f,_t as g,kl as h,v as i,Ai as j,Be as k,Cl as l,Nl as m,Ol as n,Se as o,A as p,L as q,Ei as r,Dl as s,Ll as t,Ml as u,mn as v,Ul as w,Ci as x,xl as y,de as z,he as A,vi as B,Fl as C,Ni as D,Vl as E,Wl as F,Hl as G,Bl as H,m as I,wt as J,Oi as K,C as L,gn as M,ze as N,g as O,ne as P,K as Q,I as R,Y as S,Ia as T,M as U,Rt as V};