UNPKG

firebase

Version:

Firebase JavaScript library for web and Node.js

7 lines • 1.03 MB
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let o=()=>{},d={NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},g=function(e,t){if(!e)throw M(t)},M=function(e){return new Error("Firebase Database ("+d.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},U=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},G={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let u=0;u<r.length;u+=3){var s=r[u],a=u+1<r.length,o=a?r[u+1]:0,l=u+2<r.length,h=l?r[u+2]:0;let e=(15&o)<<2|h>>6,t=63&h;l||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(U(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,h=i[e++];h<128?s[t++]=String.fromCharCode(h):191<h&&h<224?(a=i[e++],s[t++]=String.fromCharCode((31&h)<<6|63&a)):239<h&&h<365?(a=((7&h)<<18|(63&i[e++])<<12|(63&i[e++])<<6|63&i[e++])-65536,s[t++]=String.fromCharCode(55296+(a>>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],l=i[e++],s[t++]=String.fromCharCode((15&h)<<12|(63&o)<<6|63&l))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let l=0;l<e.length;){var i=r[e.charAt(l++)],s=l<e.length?r[e.charAt(l)]:0,a=++l<e.length?r[e.charAt(l)]:64,o=++l<e.length?r[e.charAt(l)]:64;if(++l,null==i||null==s||null==a||null==o)throw new H;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class H extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function V(e){var t=U(e);return G.encodeByteArray(t,!0)}let q=function(e){return V(e).replace(/\./g,"")},j=function(e){try{return G.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function K(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=K(e[r],t[r]));return e}function z(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let J=()=>z().__FIREBASE_DEFAULTS__,W=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},Q=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&j(e[1]);return t&&JSON.parse(t)}},Y=()=>{try{return o()||J()||W()||Q()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},$=()=>Y()?.config;var B,X;class Z{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function ee(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r={iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}},...e},[q(JSON.stringify({alg:"none",type:"JWT"})),q(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")}function te(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function re(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(te())}function ne(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function ie(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function se(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ae(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function oe(){var e=te();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function le(){return!ne()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function he(){return!ne()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function ue(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ce(){return new Promise((n,i)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function de(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class Be extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,Be.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,pe.prototype.create)}}class pe{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var r=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?((r,n)=>{try{let e=0,t="";for(;e<r.length;){var i=r.indexOf("{$",e);if(-1===i){t+=r.substring(e);break}var s=r.indexOf("}",i+2);if(-1===s){t+=r.substring(e);break}var a=r.substring(i+2,s),o=n[a];t+=r.substring(e,i)+(null!=o?String(o):`<${a}?>`),e=s+1}return t}catch(e){return r}})(i,r):"Error",i=this.serviceName+`: ${i} (${n}).`;return new Be(n,i,r)}}function ge(e){return JSON.parse(e)}function fe(e){return JSON.stringify(e)}function me(e){let t={},r={},n={},i="";try{var s=e.split(".");t=ge(j(s[0])||""),r=ge(j(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ve(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function _e(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function ye(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function we(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Ee(a)&&Ee(o)){if(!we(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Ee(e){return null!==e&&"object"==typeof e}function De(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function be(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function Ie(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Te{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let B=0;B<80;B++){u=B<40?B<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):B<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[B]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Se(e,t){var r=new ke(e,t);return r.subscribe.bind(r)}class ke{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=Ne),void 0===n.error&&(n.error=Ne),void 0===n.complete&&(n.complete=Ne);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),i}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function Ne(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ae(e,t){return e+` failed: ${t} argument `}function Re(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ae(e,t)+"must be a valid function.")}function Oe(e,t,r){if(r&&("object"!=typeof r||null===r))throw new Error(Ae(e,t)+"must be a valid context object.")}let Pe=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},xe=1e3,Fe=2,Le=144e5,Me=.5;function Ue(e,t=xe,r=Fe){var n=t*Math.pow(r,e),i=Math.round(Me*n*(Math.random()-.5)*2);return Math.min(Le,n+i)}function _(e){return e&&e._delegate?e._delegate:e}function Ge(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function He(e){return(await fetch(e,{credentials:"include"})).ok}class Ve{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let qe="[DEFAULT]";class je{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new Z;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(e?.identifier),r=e?.optional??!1;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:qe})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=qe){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=qe){return this.instances.has(e)}getOptions(e=qe){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===qe?void 0:n,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}var n;return r||null}normalizeInstanceIdentifier(e=qe){return!this.component||this.component.multipleInstances?e:qe}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Ke{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with `+this.name);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){var t;return this.providers.has(e)?this.providers.get(e):(t=new je(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let ze=[],Je=((a=B=B||{})[a.DEBUG=0]="DEBUG",a[a.VERBOSE=1]="VERBOSE",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.SILENT=5]="SILENT",{debug:B.DEBUG,verbose:B.VERBOSE,info:B.INFO,warn:B.WARN,error:B.ERROR,silent:B.SILENT}),We=B.INFO,Qe={[B.DEBUG]:"log",[B.VERBOSE]:"log",[B.INFO]:"info",[B.WARN]:"warn",[B.ERROR]:"error"},Ye=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Qe[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class $e{constructor(e){this.name=e,this._logLevel=We,this._logHandler=Ye,this._userLogHandler=null,ze.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in B))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,B.DEBUG,...e),this._logHandler(this,B.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,B.VERBOSE,...e),this._logHandler(this,B.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,B.INFO,...e),this._logHandler(this,B.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,B.WARN,...e),this._logHandler(this,B.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,B.ERROR,...e),this._logHandler(this,B.ERROR,...e)}}let Xe=(t,e)=>e.some(e=>t instanceof e),Ze,et;let tt=new WeakMap,rt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap;let at={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return rt.get(e);if("objectStoreNames"===t)return e.objectStoreNames||nt.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return ht(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ot(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(et=et||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ut(this),e),ht(tt.get(this))}:function(...e){return ht(n.apply(ut(this),e))}:function(e,...t){var r=n.call(ut(this),e,...t);return nt.set(r,e.sort?e.sort():[e]),ht(r)}}function lt(e){var s,t;return"function"==typeof e?ot(e):(e instanceof IDBTransaction&&(s=e,rt.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),rt.set(s,t))),Xe(e,Ze=Ze||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,at):e)}function ht(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(ht(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&tt.set(e,s)}).catch(()=>{}),st.set(t,s),t):it.has(e)?it.get(e):((t=lt(e))!==e&&(it.set(e,t),st.set(t,e)),t)}let ut=e=>st.get(e);function ct(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=ht(a);return n&&a.addEventListener("upgradeneeded",e=>{n(ht(a.result),e.oldVersion,e.newVersion,ht(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function dt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),ht(r).then(()=>{})}let Bt=["get","getKey","getAll","getAllKeys","count"],pt=["put","add","delete","clear"],gt=new Map;function ft(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(gt.get(t))return gt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=pt.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||Bt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},gt.set(t,r),r):void 0}}at={...X=at,get:(e,t,r)=>ft(e,t)||X.get(e,t,r),has:(e,t)=>!!ft(e,t)||X.has(e,t)};class mt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let Ct="@firebase/app",vt="0.16.0",_t=new $e("@firebase/app");let yt="[DEFAULT]",wt={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},Et=new Map,Dt=new Map,bt=new Map;function It(t,r){try{t.container.addComponent(r)}catch(e){_t.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Tt(e,t){e.container.addOrOverwriteComponent(t)}function St(e){var t,r,n=e.name;if(bt.has(n))return _t.debug(`There were multiple attempts to register component ${n}.`),!1;bt.set(n,e);for(t of Et.values())It(t,e);for(r of Dt.values())It(r,e);return!0}function kt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Nt(e){return void 0!==e.options}function At(e){return!Nt(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function Rt(e){return null!=e&&void 0!==e.settings}let Ot=new pe("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different {$mismatchedParam}. Existing: '{$oldValue}'. New: '{$newValue}'.","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."}),Pt=class{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new Ve("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 Ot.create("app-deleted",{appName:this._name})}};function xt(e,t){var r=j(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Ft extends Pt{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&xt(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&xt(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,Ht(Ct,vt,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){Gt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Ot.create("server-app-deleted")}}let Lt="12.17.1";function Mt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:yt,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Ot.create("bad-app-name",{appName:String(i)});if(!(r=r||$()))throw Ot.create("no-options");var s=Et.get(i);if(s){if(we(r,s.options)){if(we(n,s.config))return s;throw Ot.create("duplicate-app",{appName:i,mismatchedParam:"config",oldValue:JSON.stringify(s.config),newValue:JSON.stringify(n)})}throw Ot.create("duplicate-app",{appName:i,mismatchedParam:"options",oldValue:JSON.stringify(s.options),newValue:JSON.stringify(r)})}var a,o=new Ke(i);for(a of bt.values())o.addComponent(a);s=new Pt(r,n,o);return Et.set(i,s),s}function Ut(e=yt){var t=Et.get(e);if(!t&&e===yt&&$())return Mt();if(t)return t;throw Ot.create("no-app",{appName:e})}async function Gt(e){let t=!1;var r=e.name;Et.has(r)?(t=!0,Et.delete(r)):Dt.has(r)&&e.decRefCount()<=0&&(Dt.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function Ht(e,t,r){let n=wt[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),_t.warn(i.join(" "))):St(new Ve(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Vt(e,t){if(null!==e&&"function"!=typeof e)throw Ot.create("invalid-log-argument");var r,s=e,n=t;for(r of ze){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?null:(e,t,...r)=>{var n=r.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(i??e.logLevel)&&s({level:B[t].toLowerCase(),message:n,args:r,type:e.name})}}}function qt(e){var t;t=e,ze.forEach(e=>{e.setLogLevel(t)})}let jt="firebase-heartbeat-database",Kt=1,zt="firebase-heartbeat-store",Jt=null;function Wt(){return Jt=Jt||ct(jt,Kt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(zt)}catch(e){console.warn(e)}}}).catch(e=>{throw Ot.create("idb-open",{originalErrorMessage:e.message})})}async function Qt(e,t){try{var r=(await Wt()).transaction(zt,"readwrite");await r.objectStore(zt).put(t,Yt(e)),await r.done}catch(e){e instanceof Be?_t.warn(e.message):(r=Ot.create("idb-set",{originalErrorMessage:e?.message}),_t.warn(r.message))}}function Yt(e){return e.name+"!"+e.options.appId}class $t{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new Zt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Xt();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){_t.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=Xt(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),er(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),er(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=q(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return _t.warn(e),""}}}function Xt(){return(new Date).toISOString().substring(0,10)}class Zt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!ue()&&ce().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Wt()).transaction(zt),r=await t.objectStore(zt).get(Yt(e));return await t.done,r}catch(e){e instanceof Be?_t.warn(e.message):(t=Ot.create("idb-get",{originalErrorMessage:e?.message}),_t.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Qt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Qt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function er(e){return q(JSON.stringify({version:2,heartbeats:e})).length}a="",St(new Ve("platform-logger",e=>new mt(e),"PRIVATE")),St(new Ve("heartbeat",e=>new $t(e),"PRIVATE")),Ht(Ct,vt,a),Ht(Ct,vt,"esm2020"),Ht("fire-js","");var tr=Object.freeze({__proto__:null,FirebaseError:Be,SDK_VERSION:Lt,_DEFAULT_ENTRY_NAME:yt,_addComponent:It,_addOrOverwriteComponent:Tt,_apps:Et,_clearComponents:function(){bt.clear()},_components:bt,_getProvider:kt,_isFirebaseApp:Nt,_isFirebaseServerApp:Rt,_isFirebaseServerAppSettings:At,_registerComponent:St,_removeServiceInstance:function(e,t,r=yt){kt(e,t).clearInstance(r)},_serverApps:Dt,deleteApp:Gt,getApp:Ut,getApps:function(){return Array.from(Et.values())},initializeApp:Mt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||ie())&&!ie())throw Ot.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Nt(e)?r=e.options:At(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||$()))throw Ot.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Ot.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=Dt.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Ke(i);for(a of bt.values())o.addComponent(a);s=new Ft(r,n,i,o),Dt.set(i,s)}return s},onLog:Vt,registerVersion:Ht,setLogLevel:qt});class rr{constructor(e,t){this._delegate=e,this.firebase=t,It(e,new Ve("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),Gt(this._delegate)))}_getService(e,t=yt){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=yt){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){It(this._delegate,e)}_addOrOverwriteComponent(e){Tt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let nr=new pe("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function ir(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Mt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:Ht,setLogLevel:qt,onLog:Vt,apps:null,SDK_VERSION:Lt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;St(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw nr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&K(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:tr}};function o(e){if(e=e||yt,Ce(s,e))return s[e];throw nr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var e=function e(){let t=ir(rr);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){K(t,e)},createSubscribe:Se,ErrorFactory:pe,deepExtend:K},t}(),sr=new $e("@firebase/app-compat");try{var ar=z();void 0!==ar.firebase&&(sr.warn(` Warning: Firebase is already defined in the global scope. Please make sure Firebase library is only loaded once. `),t=ar.firebase.SDK_VERSION)&&0<=t.indexOf("LITE")&&sr.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{}let or=e;Ht("@firebase/app-compat","0.5.16",void 0);or.registerVersion("firebase","12.17.1","app-compat");var ar="@firebase/installations",t="0.6.23";let lr=1e4,hr="w:"+t,ur="FIS_v2",cr="https://firebaseinstallations.googleapis.com/v1",dr=36e5;let Br=new pe("installations","Installations",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."});function pr(e){return e instanceof Be&&e.code.includes("request-failed")}function gr({projectId:e}){return cr+`/projects/${e}/installations`}function fr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function mr(e,t){var r=(await t.json()).error;return Br.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Cr({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function vr(e,{refreshToken:t}){var r=Cr(e);return r.append("Authorization",(e=t,ur+" "+e)),r}async function _r(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function yr(t){return new Promise(e=>{setTimeout(e,t)})}let wr=/^[cdef][\w-]{21}$/,Er="";function Dr(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return wr.test(t)?t:Er}catch{return Er}}function br(e){return e.appName+"!"+e.appId}let Ir=new Map;function Tr(e,t){var r=br(e),e=(Sr(r,t),r),r=Nr();r&&r.postMessage({key:e,fid:t}),Ar()}function Sr(e,t){var r=Ir.get(e);if(r)for(var n of r)n(t)}let kr=null;function Nr(){return!kr&&"BroadcastChannel"in self&&((kr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Sr(e.data.key,e.data.fid)}),kr}function Ar(){0===Ir.size&&kr&&(kr.close(),kr=null)}let Rr="firebase-installations-database",Or=1,Pr="firebase-installations-store",xr=null;function Fr(){return xr=xr||ct(Rr,Or,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Pr)}})}async function Lr(e,t){var r=br(e),n=(await Fr()).transaction(Pr,"readwrite"),i=n.objectStore(Pr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Tr(e,t.fid),t}async function Mr(e){var t=br(e),r=(await Fr()).transaction(Pr,"readwrite");await r.objectStore(Pr).delete(t),await r.done}async function Ur(e,t){var r=br(e),n=(await Fr()).transaction(Pr,"readwrite"),i=n.objectStore(Pr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Tr(e,a.fid),a}async function Gr(r){let n;var e=await Ur(r.appConfig,e=>{var t=Vr(e||{fid:Dr(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=gr(e);var i=Cr(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:ur,appId:e.appId,sdkVersion:hr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await _r(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:fr(s.authToken)};throw await mr("Create Installation",i)})(t,r);return Lr(t.appConfig,e)}catch(e){throw pr(e)&&409===e.customData.serverCode?await Mr(t.appConfig):await Lr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(Br.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Hr(e.appConfig);for(;1===t.registrationStatus;)await yr(100),t=await Hr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await Gr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===Er?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function Hr(e){return Ur(e,e=>{if(e)return Vr(e);throw Br.create("installation-not-found")})}function Vr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+lr<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function qr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=gr(i)+`/${s}/authTokens:generate`;var i,s,a=vr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:hr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await _r(()=>fetch(n,l));if(a.ok)return fr(await a.json());throw await mr("Generate Auth Token",a)}async function jr(n,i=!1){let s;var e=await Ur(n.appConfig,e=>{if(!zr(e))throw Br.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+dr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Kr(e.appConfig);for(;1===r.authToken.requestStatus;)await yr(100),r=await Kr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?jr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await qr(t,r),n={...r,authToken:e};return await Lr(t.appConfig,n),e}catch(e){var i;throw!pr(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Lr(t.appConfig,i)):await Mr(t.appConfig),e}})(n,r),r;throw Br.create("app-offline")}return e});return s?await s:e.authToken}function Kr(e){return Ur(e,e=>{var t,r;if(zr(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+lr<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw Br.create("not-registered")})}function zr(e){return void 0!==e&&2===e.registrationStatus}async function Jr(e,t=!1){var r=e,n=(await(!(n=(await Gr(r)).registrationPromise)||!await n),await jr(r,t));return n.token}function Wr(t,i){let s=t.appConfig;{t=s;var r=i,n=(Nr(),br(t));let e=Ir.get(n);e||(e=new Set,Ir.set(n,e)),e.add(r)}return()=>{var e,t,r,n;e=s,t=i,r=br(e),(n=Ir.get(r))&&(n.delete(t),0===n.size&&Ir.delete(r),Ar())}}function Qr(e){return Br.create("missing-app-config-values",{valueName:e})}let Yr="installations",$r=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Qr("App Configuration");if(!e.name)throw Qr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Qr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:kt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Xr=e=>{let t=kt(e.getProvider("app").getImmediate(),Yr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await Gr(t);return(n||jr(t)).catch(console.error),r.fid})(t),getToken:e=>Jr(t,e)}};St(new Ve(Yr,$r,"PUBLIC")),St(new Ve("installations-internal",Xr,"PRIVATE")),Ht(ar,t),Ht(ar,t,"esm2020");let Zr="analytics",en="firebase_id",tn="origin",rn=6e4,nn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",sn="https://www.googletagmanager.com/gtag/js",an=new $e("@firebase/analytics"),on=new pe("analytics","Analytics",{"already-exists":"A Firebase Analytics instance with the appId {$id} already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function ln(e){var t;return e.startsWith(sn)?e:(t=on.create("invalid-gtag-resource",{gtagURL:e}),an.warn(t.message),"")}function hn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function un(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:ln}),n=document.createElement("script"),i=sn+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function cn(T,S,k,N){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=T,s=S,a=k,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await hn(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){an.error(e)}}else if("config"===e){var d,[B,p]=t,g=T,f=S,m=k,C=B,v=p,_=N[C];try{_?await f[_]:(d=(await hn(m)).find(e=>e.measurementId===C))&&await f[d.appId]}catch(e){an.error(e)}g("config",C,v)}else{var y,w,E,D,b,I;"consent"===e?([y,w]=t,T("consent",y,w)):"get"===e?([E,D,b]=t,T("get",E,D,b)):"set"===e?([I]=t,T("set",I)):T(e,...t)}}catch(e){an.error(e)}}}let dn=30;let Bn=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function pn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=nn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw on.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function gn(e,t=Bn){var{appId:r,apiKey:n,measurementId:i}=e.options;if(!r)throw on.create("no-app-id");if(!n){if(i)return{measurementId:i,appId:r};throw on.create("no-api-key")}var s=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let a=new Cn;return setTimeout(async()=>{a.abort()},rn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=Bn){let{appId:h,measurementId:u}=s;try