firebase 12.8.0-canary.d818df4e8 → 12.8.0-canary.f9aaeca46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/app/dist/esm/index.esm.js +1 -1
  2. package/app/dist/index.cjs.js +1 -1
  3. package/app/dist/index.mjs +1 -1
  4. package/compat/app/dist/esm/index.esm.js +1 -1
  5. package/compat/app/dist/index.cjs.js +1 -1
  6. package/compat/app/dist/index.mjs +1 -1
  7. package/compat/dist/esm/index.esm.js +2 -2
  8. package/compat/dist/index.node.cjs +2 -2
  9. package/compat/dist/index.rn.cjs.js +2 -2
  10. package/firebase-ai.js +1 -1
  11. package/firebase-analytics-compat.js +1 -1
  12. package/firebase-analytics.js +1 -1
  13. package/firebase-app-check-compat.js +1 -1
  14. package/firebase-app-check.js +1 -1
  15. package/firebase-app-compat.js +2 -2
  16. package/firebase-app.js +5 -5
  17. package/firebase-auth-compat.js +1 -1
  18. package/firebase-auth-cordova.js +1 -1
  19. package/firebase-auth-web-extension.js +1 -1
  20. package/firebase-auth.js +1 -1
  21. package/firebase-compat.js +6 -6
  22. package/firebase-data-connect.js +1 -1
  23. package/firebase-database-compat.js +1 -1
  24. package/firebase-database.js +1 -1
  25. package/firebase-firestore-compat.js +2 -2
  26. package/firebase-firestore-lite-pipelines.js +1 -1
  27. package/firebase-firestore-lite-pipelines.js.map +1 -1
  28. package/firebase-firestore-lite.js +1 -1
  29. package/firebase-firestore-pipelines.js +1 -1
  30. package/firebase-firestore-pipelines.js.map +1 -1
  31. package/firebase-firestore.js +1 -1
  32. package/firebase-functions-compat.js +1 -1
  33. package/firebase-functions.js +1 -1
  34. package/firebase-installations-compat.js +1 -1
  35. package/firebase-installations.js +1 -1
  36. package/firebase-messaging-compat.js +1 -1
  37. package/firebase-messaging-sw.js +1 -1
  38. package/firebase-messaging.js +1 -1
  39. package/firebase-performance-compat.js +1 -1
  40. package/firebase-performance-standalone-compat.js +7 -7
  41. package/firebase-performance.js +1 -1
  42. package/firebase-remote-config-compat.js +1 -1
  43. package/firebase-remote-config.js +1 -1
  44. package/firebase-storage-compat.js +1 -1
  45. package/firebase-storage.js +1 -1
  46. package/package.json +29 -29
@@ -12,12 +12,12 @@
12
12
  <clipPath id="clip0_6083_34804">
13
13
  <rect width="24" height="24" fill="white"/>
14
14
  </clipPath>
15
- </defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ee(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function te(){var e=W()?.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}}function re(){return!te()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ne(){return!te()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}class ie extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ie.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,se.prototype.create)}}class se{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(ae,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ie(i,s,r)}}let ae=/\{\$([^}]+)}/g;function oe(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(ue(a)&&ue(o)){if(!oe(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function ue(e){return null!==e&&"object"==typeof e}function _(e){return e&&e._delegate?e._delegate:e}class le{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 he,ce,c,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=t+(s^r&(i^s))+n[0]+3614090360&4294967295;a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+(a<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.v=function(e,t){var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.C;let i=this.h,s=0;for(;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.A=function(){var t=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var r=1;r<t.length-8;++r)t[r]=0;for(var r=8*this.o,n=t.length-8;n<t.length;++n)t[n]=255&r,r/=256;for(this.v(t),t=Array(16),n=r=0;n<4;++n)for(let e=0;e<32;e+=8)t[r++]=this.g[n]>>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function l(e){if(isNaN(e)||!isFinite(e))return h;if(e<0)return m(l(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var h=o(0),c=o(1),d=o(16777216);function f(t){if(0==t.h){for(let e=0;e<t.g.length;e++)if(0!=t.g[e])return;return 1}}function g(e){return-1==e.h}function m(e){var t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new u(r,~e.h).add(c)}function p(e,t){return e.add(m(t))}function y(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(h,h);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30<e.g.length){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=c,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!f(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=p(e,i.j(t)),new v(i,t)}for(i=h;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=l(r)).j(t);g(a)||0<a.l(e);)a=(s=l(r-=n)).j(t);f(s)&&(s=c),i=i.add(s),e=p(e,a)}return new v(i,e)}function _(e){var t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new u(r,e.h)}function b(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();let e=0,t=1;for(let n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*t,t*=4294967296}return e},e.toString=function(t){if((t=t||10)<2||36<t)throw Error("radix out of range: "+t);if(f(this))return"0";if(g(this))return"-"+m(this).toString(t);var r=l(Math.pow(t,6)),n=this;let i="";for(;;){var s=w(n,r).g;let e=((0<(n=p(n,s.j(r))).g.length?n.g[0]:n.h)>>>0).toString(t);if(f(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return g(e=p(this,e))?-1:f(e)?0:1},e.abs=function(){return g(this)?m(this):this},e.add=function(e){var t=Math.max(this.g.length,e.g.length),r=[];let n=0;for(let a=0;a<=t;a++){var i=n+(65535&this.i(a))+(65535&e.i(a)),s=(i>>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(f(this)||f(t))return h;if(g(this))return g(t)?m(this).j(m(t)):m(m(this).j(t));if(g(t))return m(this.j(m(t)));if(this.l(d)<0&&t.l(d)<0)return l(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let e=0;e<t.g.length;e++){var i=this.i(n)>>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,y(r,2*n+2*e),r[2*n+2*e+1]+=i*o,y(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,y(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,y(r,2*n+2*e+2)}for(t=0;t<e;t++)r[t]=r[2*t+1]<<16|r[2*t];for(t=e;t<2*e;t++)r[t]=0;return new u(r,0)},e.B=function(e){return w(this,e).h},e.and=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new u(r,this.h&e.h)},e.or=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new u(r,this.h|e.h)},e.xor=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new u(r,this.h^e.h)},r.prototype.digest=r.prototype.A,r.prototype.reset=r.prototype.u,r.prototype.update=r.prototype.v,ce=r,u.prototype.multiply=u.prototype.j,u.prototype.modulo=u.prototype.B,u.prototype.compare=u.prototype.l,u.prototype.toNumber=u.prototype.m,u.prototype.getBits=u.prototype.i,u.fromNumber=l,u.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return m(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');var n=l(Math.pow(r,8));let i=h;for(let o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),a=parseInt(t.substring(o,o+s),r);i=(s<8?(s=l(Math.pow(r,s)),i.j(s)):i=i.j(n)).add(l(a))}return i},he=u}).apply(void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),(n=c=c||{})[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";let de={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},fe=c.INFO,ge={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},me=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=ge[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};var ar,or,ur,lr,hr,cr,dr,fr,f,pe,gr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,V=Object.defineProperty;var F=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof gr&&gr];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);function P(e,t){if(t)e:{var r=F;e=e.split(".");for(var n=0;n<e.length-1;n++){var i=e[n];if(!(i in r))break e;r=r[i]}(t=t(n=r[e=e[e.length-1]]))!=n&&null!=t&&V(r,e,{configurable:!0,writable:!0,value:t})}}P("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),P("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),P("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var B=B||{},D=this||self;function d(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function U(e,t,r){return e.call.apply(e.bind,arguments)}function y(e,t,r){return(y=U).apply(null,arguments)}function q(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function t(e,s){function t(){}t.prototype=s.prototype,e.Z=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Ob=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}var j="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function z(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function G(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if("array"==(n="object"!=(n=typeof r)?n:r?Array.isArray(r)?"array":n:"null")||"object"==n&&"number"==typeof r.length){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}var K=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new $,e=>e.reset());class ${constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let r,n=!1,H=new class{constructor(){this.h=this.g=null}add(e,t){var r=K.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},Q=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(W)}};function W(){for(var e;e=(()=>{let e=H,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=K;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var Y=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function N(e){return/^[\s\xa0]*$/.test(e)}function s(e,t){o.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}t(s,o),s.prototype.init=function(e,t){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,(this.i=e).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var u="closure_listenable_"+(1e6*Math.random()|0),J=0;function X(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++J,this.da=this.fa=!1}function Z(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function ee(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function te(e){var t,r={};for(t in e)r[t]=e[t];return r}let re="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ne(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<re.length;e++)r=re[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}function ie(e){this.src=e,this.g={},this.h=0}function se(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(Z(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ae(e,t,r,n){for(let s=0;s<e.length;++s){var i=e[s];if(!i.da&&i.listener==t&&i.capture==!!r&&i.ha==n)return s}return-1}ie.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ae(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new X(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var oe="closure_lm_"+(1e6*Math.random()|0),ue={};function le(t,r,n,i,s){if(i&&i.once)return function t(r,n,i,s,a){if(Array.isArray(n)){for(let e=0;e<n.length;e++)t(r,n[e],i,s,a);return null}i=pe(i);return r&&r[u]?r.K(n,i,d(s)?!!s.capture:!!s,a):he(r,n,i,!0,s,a)}(t,r,n,i,s);if(Array.isArray(r)){for(let e=0;e<r.length;e++)le(t,r[e],n,i,s);return null}return n=pe(n),t&&t[u]?t.J(r,n,d(i)?!!i.capture:!!i,s):he(t,r,n,!1,i,s)}function he(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=d(i)?!!i.capture:!!i;let o=ge(e);if(o||(e[oe]=o=new ie(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=fe;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=Y?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(de(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ce(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[u]?se(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(de(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ge(t))?(se(r,e),0==r.h&&(r.src=null,t[oe]=null)):Z(e)))}function de(e){return e in ue?ue[e]:ue[e]="on"+e}function fe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ce(e),r.call(n,t))}function ge(e){return(e=e[oe])instanceof ie?e:null}var me="__closure_events_fn_"+(1e9*Math.random()>>>0);function pe(t){return"function"==typeof t?t:(t[me]||(t[me]=function(e){return t.handleEvent(e)}),t[me])}function a(){i.call(this),this.i=new ie(this),(this.M=this).G=null}function l(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,ne(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=ye(s=t.g=r[a],i,!0,t)&&n;if(n=ye(s=t.g=e,i,!0,t)&&n,n=ye(s,i,!1,t)&&n,r)for(a=0;a<r.length;a++)n=ye(s=t.g=r[a],i,!1,t)&&n}function ye(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let u=0;u<t.length;++u){var s,a,o=t[u];o&&!o.da&&o.capture==r&&(s=o.listener,a=o.ha||o.src,o.fa&&se(e.i,o),i=!1!==s.call(a,n)&&i)}return i&&!n.defaultPrevented}function ve(e){e.g=((e,t)=>{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=y(e.handleEvent,e)}return 2147483647<Number(t)?-1:D.setTimeout(e,t||0)})(()=>{e.g=null,e.i&&(e.i=!1,ve(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[u]=!0,a.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=d(i)?!!i.capture:!!i,n=pe(n),t&&t[u]?(t=t.i,(a=String(r).toString())in t.g&&-1<(n=ae(r=t.g[a],n,i,s))&&(Z(r[n]),Array.prototype.splice.call(r,n,1),0==r.length)&&(delete t.g[a],t.h--)):(t=t&&ge(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ae(r,n,i,s):t)?r[t]:null)&&ce(n)}(this,e,t,r,n)},a.prototype.N=function(){if(a.Z.N.call(this),this.i){var t,r=this.i;for(t in r.g){var n=r.g[t];for(let e=0;e<n.length;e++)Z(n[e]);delete r.g[t],r.h--}}this.G=null},a.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},a.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class we extends i{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:ve(this)}N(){super.N(),this.g&&(D.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function h(e){i.call(this),this.h=e,this.g={}}t(h,i);var _e=[];function be(e){ee(e.g,function(e,t){this.g.hasOwnProperty(t)&&ce(e)},e),e.g={}}h.prototype.N=function(){h.Z.N.call(this),be(this)},h.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ie=D.JSON.stringify,Ee=D.JSON.parse,Te=class{stringify(e){return D.JSON.stringify(e,void 0)}parse(e){return D.JSON.parse(e,void 0)}};function Se(){}function xe(){}var Ce={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function Ae(){o.call(this,"d")}function De(){o.call(this,"c")}t(Ae,o),t(De,o);var c={},Ne=null;function ke(){return Ne=Ne||new a}function Re(e){o.call(this,c.Ia,e)}function Oe(){var e=ke();l(e,new Re(e))}function Me(e,t){o.call(this,c.STAT_EVENT,e),this.stat=t}function k(e){var t=ke();l(t,new Me(t,e))}function Le(e,t){o.call(this,c.Ja,e),this.size=t}function v(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return D.setTimeout(function(){e()},t)}function f(){this.g=!0}function R(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(let e=1;e<i.length;e++)i[e]=""}}}return Ie(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}c.Ia="serverreachability",t(Re,o),c.STAT_EVENT="statevent",t(Me,o),c.Ja="timingevent",t(Le,o),f.prototype.ua=function(){this.g=!1},f.prototype.info=function(){};var Ve={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function Pe(){}function g(e){return encodeURIComponent(String(e))}function m(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new h(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new Be}function Be(){this.i=null,this.g="",this.h=!1}t(Pe,Se),Pe.prototype.g=function(){return new XMLHttpRequest};var Ue=new Pe,qe={},je={};function ze(e,t,r){e.M=1,e.A=ot(w(t)),e.u=r,e.R=!0,Ge(e,null)}function Ge(e,t){e.F=Date.now(),$e(e),e.B=w(e.A);var a,o,u,l,h,c,r=e.B,n=e.S,i=(Array.isArray(n)||(n=[String(n)]),_t(r.i,"t",n),e.C=0,r=e.j.L,e.h=new Be,e.g=tr(e.j,r?t:null,!e.u),0<e.P&&(e.O=new we(y(e.Y,e,e.g),e.P)),t=e.V,r=e.g,n=e.ba,"readystatechange");Array.isArray(i)||(i&&(_e[0]=i.toString()),i=_e);for(let d=0;d<i.length;d++){var s=le(r,i[d],n||t.handleEvent,!1,t.h||t);if(!s)break;t.g[s.key]=s}t=e.J?te(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),Oe(),a=e.i,o=e.v,u=e.B,l=e.l,h=e.S,c=e.u,a.info(function(){if(a.g)if(c){var t="",r=c.split("&");for(let e=0;e<r.length;e++){var n,i,s=r[e].split("=");1<s.length&&(n=s[0],s=s[1],t=2<=(i=n.split("_")).length&&"type"==i[1]?t+(n+"=")+s+"&":t+(n+"=redacted&"))}}else t=null;else t=c;return"XMLHTTP REQ ("+l+") [attempt "+h+"]: "+o+"\n"+u+"\n"+t})}function Ke(e){return e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function $e(e){e.T=Date.now()+e.H,He(e,e.H)}function He(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=v(y(e.aa,e),t)}function Qe(e){e.D&&(D.clearTimeout(e.D),e.D=null)}function O(e){0==e.j.I||e.K||Jt(e.j,e)}function M(e){Qe(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,be(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function We(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||et(r.h,e)))if(!e.L&&et(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g){if(!(r.g.F+3e3<e.F))break e;Yt(r),Ut(r)}Ht(r),k(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=v(y(r.Va,r),6e3));Ze(r.h)<=1&&r.ta&&(r.ta=void 0)}else x(r,11)}else if(!e.L&&r.g!=e||Yt(r),!N(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){var s,a,o,u,l,h,c,d,f,g,m=i[t],p=m[0];p<=r.K||(r.K=p,m=m[1],2==r.I?"c"==m[0]?(r.M=m[1],r.ba=m[2],null!=(s=m[3])&&(r.ka=s,r.j.info("VER="+r.ka)),null!=(a=m[4])&&(r.za=a,r.j.info("SVER="+r.za)),null!=(o=m[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.O=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(u=e.g)&&(!(l=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(h=n.h).g||-1==l.indexOf("spdy")&&-1==l.indexOf("quic")&&-1==l.indexOf("h2")||(h.j=h.l,h.g=new Set,h.h&&(tt(h,h.h),h.h=null)),n.G)&&(c=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.wa=c,b(n.J,n.G,c)),r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),d=e,(n=r).na=er(n,n.L?n.ba:null,n.W),d.L?(rt(n.h,d),f=d,(g=n.O)&&(f.H=g),f.D&&(Qe(f),$e(f)),n.g=d):$t(n),0<r.i.length&&jt(r)):"stop"!=m[0]&&"close"!=m[0]||x(r,7):3==r.I&&("stop"==m[0]||"close"==m[0]?"stop"==m[0]?x(r,7):Bt(r):"noop"!=m[0]&&r.l&&r.l.qa(m),r.A=0))}Oe()}catch(e){}}m.prototype.ba=function(e){e=e.target;var t=this.O;t&&3==L(e)?t.j():this.Y(e)},m.prototype.Y=function(e){try{if(e==this.g)e:{var t=L(this.g),r=this.g.ya();this.g.ca();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.la()||Vt(this.g)))){this.K||4!=t||7==r||Oe(),Qe(this);var n,i,s=this.g.ca(),a=(this.X=s,(e=>{if(!Ke(e))return e.g.la();var t=Vt(e.g);if(""===t)return"";let r="",n=t.length,i=4==L(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return M(e),O(e),"";e.h.i=new D.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g})(this));if(this.o=200==s,I=this.i,E=this.v,T=this.B,S=this.l,x=this.S,C=t,A=s,I.info(function(){return"XMLHTTP RESP ("+S+") [ attempt "+x+"]: "+E+"\n"+T+"\n"+C+" "+A}),this.o){if(this.U&&!this.L){t:{if(this.g){var o,u=this.g;if((o=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!N(o)){var l=o;break t}}l=null}if(!(e=l)){this.o=!1,this.m=3,k(12),M(this),O(this);break e}R(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,We(this,e)}if(this.R){for(e=!0;!this.K&&this.C<a.length;){if(w=a,b=_=void 0,_=(v=this).C,(n=-1==(b=w.indexOf("\n",_))?je:(_=Number(w.substring(_,b)),isNaN(_)?qe:(b+=1)+_>w.length?je:(w=w.slice(b,b+_),v.C=b+_,w)))==je){4==t&&(this.m=4,k(14),e=!1),R(this.i,this.l,null,"[Incomplete Response]");break}if(n==qe){this.m=4,k(15),R(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}R(this.i,this.l,n,null),We(this,n)}Ke(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,k(16),e=!1),this.o=this.o&&e,e?0<a.length&&!this.W&&(this.W=!0,(i=this.j).g==this)&&i.aa&&!i.P&&(i.j.info("Great, no buffering proxy detected. Bytes received: "+a.length),Qt(i),i.P=!0,k(11)):(R(this.i,this.l,a,"[Invalid Chunked Response]"),M(this),O(this))}else R(this.i,this.l,a,null),We(this,a);4==t&&M(this),this.o&&!this.K&&(4==t?Jt(this.j,this):(this.o=!1,$e(this)))}else{{var h=this.g;var c,d,f,g={};h=(h.g&&2<=L(h)&&h.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<h.length;e++)N(h[e])||(c=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(h[e]),d=c[0],"string"==typeof(c=c[1])&&(c=c.trim(),f=g[d]||[],(g[d]=f).push(c)));var m,p=g,y=function(e){return e.join(", ")};for(m in p)y.call(void 0,p[m],m,p)}400==s&&0<a.indexOf("Unknown SID")?(this.m=3,k(12)):(this.m=0,k(13)),M(this),O(this)}}}}catch(e){}var v,w,_,b,I,E,T,S,x,C,A},m.prototype.cancel=function(){this.K=!0,M(this)},m.prototype.aa=function(){this.D=null;var e,t,r=Date.now();0<=r-this.T?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(Oe(),k(17)),M(this),this.m=2,O(this)):He(this,this.T-r)};var Ye=class{constructor(e,t){this.g=e,this.map=t}};function Je(e){this.l=e||10,e=D.PerformanceNavigationTiming?0<(e=D.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(D.chrome&&D.chrome.loadTimes&&D.chrome.loadTimes()&&D.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Xe(e){return e.h||e.g&&e.g.size>=e.j}function Ze(e){return e.h?1:e.g?e.g.size:0}function et(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function tt(e,t){e.g?e.g.add(t):e.h=t}function rt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Je.prototype.cancel=function(){if(this.i=nt(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var it=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function p(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof p?(this.l=e.l,_(this,e.j),this.o=e.o,this.g=e.g,st(this,e.u),this.h=e.h,at(this,bt(e.i)),this.m=e.m):e&&(t=String(e).match(it))?(this.l=!1,_(this,t[1]||"",!0),this.o=ut(t[2]||""),this.g=ut(t[3]||"",!0),st(this,t[4]),this.h=ut(t[5]||"",!0),at(this,t[6]||"",!0),this.m=ut(t[7]||"")):(this.l=!1,this.i=new pt(null,this.l))}function w(e){return new p(e)}function _(e,t,r){e.j=r?ut(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function st(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof pt?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(I(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(yt(this,t),_t(this,r,e))},n)),n.j=i):(r||(t=lt(t,gt)),e.i=new pt(t,e.l))}function b(e,t,r){e.i.set(t,r)}function ot(e){return b(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function ut(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function lt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ht),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ht(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}p.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(lt(t,ct,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(lt(t,ct,!0),"@"),e.push(g(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.u))||e.push(":",String(r)),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(lt(r,"/"==r.charAt(0)?ft:dt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",lt(r,mt)),e.join("")},p.prototype.resolve=function(e){var t=w(this);let r=!!e.j;r?_(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)st(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e<i.length;){var a=i[e++];"."==a?n&&e==i.length&&s.push(""):".."==a?((1<s.length||1==s.length&&""!=s[0])&&s.pop(),n&&e==i.length&&s.push("")):(s.push(a),n=!0)}n=s.join("/")}else n=i;return r?t.h=n:r=""!==e.i.toString(),r?at(t,bt(e.i)):r=!!e.m,r&&(t.m=e.m),t};var ct=/[#\/\?@]/g,dt=/[#\?:]/g,ft=/[#\?]/g,gt=/[#\?@]/g,mt=/#/g;function pt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function I(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var n=r.i,i=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(n){n=n.split("&");for(let r=0;r<n.length;r++){var s=n[r].indexOf("=");let e,t=null;0<=s?(e=n[r].substring(0,s),t=n[r].substring(s+1)):e=n[r],i(e,t?decodeURIComponent(t.replace(/\+/g," ")):"")}}}}function yt(e,t){I(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function vt(e,t){return I(e),t=E(e,t),e.g.has(t)}function wt(e,t){I(e);let r=[];if("string"==typeof t)vt(e,t)&&(r=r.concat(e.g.get(E(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function _t(e,t,r){yt(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),z(r)),e.h+=r.length)}function bt(e){var t=new pt;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function T(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function It(){this.g=new Te}function Et(e){this.i=e.Sb||null,this.h=e.ab||!1}function Tt(e,t){a.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function St(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function xt(e){e.readyState=4,e.l=null,e.j=null,e.B=null,Ct(e)}function Ct(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function At(e){let r="";return ee(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Dt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=At(r),"string"==typeof e?null!=r&&g(r):b(e,t,r))}function S(e){a.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(e=pt.prototype).add=function(e,t){I(this),this.i=null,e=E(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){I(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.set=function(e,t){return I(this),this.i=null,vt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=wt(this,e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";var r=[],e=Array.from(this.g.keys());for(let s=0;s<e.length;s++){var n=g(i=e[s]),i=wt(this,i);for(let t=0;t<i.length;t++){let e=n;""!==i[t]&&(e+="="+g(i[t])),r.push(e)}}return this.i=r.join("&")},t(Et,Se),Et.prototype.g=function(){return new Tt(this.i,this.h)},t(Tt,a),(e=Tt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,Ct(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;var t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||D).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,xt(this)),this.readyState=0},e.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Ct(this)),this.g)&&(this.readyState=3,Ct(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==D.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;St(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?xt:Ct)(this),3==this.readyState)&&St(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,xt(this))},e.Na=function(e){this.g&&(this.response=e,xt(this))},e.ga=function(){this.g&&xt(this)},e.setRequestHeader=function(e,t){this.A.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Tt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(S,a);var Nt=/^https?$/i,kt=["POST","PUT"];function Rt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,Ot(e),Lt(e)}function Ot(e){e.A||(e.A=!0,l(e,"complete"),l(e,"error"))}function Mt(t){if(t.h&&void 0!==B)if(t.v&&4==L(t))setTimeout(t.Ca.bind(t),0);else if(l(t,"readystatechange"),4==L(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(it)[1]||null;!e&&D.self&&D.self.location&&(e=D.self.location.protocol.slice(0,-1)),r=!Nt.test(e?e.toLowerCase():"")}e=r}if(e)l(t,"complete"),l(t,"success");else{t.o=6;try{var s=2<L(t)?t.g.statusText:""}catch(e){s=""}t.l=s+" ["+t.ca()+"]",Ot(t)}}finally{Lt(t)}}}function Lt(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);var r=e.g;e.g=null,t||l(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function L(e){return e.g?e.g.readyState:0}function Vt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Ft(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Pt(e){this.za=0,this.i=[],this.j=new f,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Ft("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Ft("baseRetryDelayMs",5e3,e),this.Za=Ft("retryDelaySeedMs",1e4,e),this.Ta=Ft("forwardChannelMaxRetries",2,e),this.va=Ft("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new Je(e&&e.concurrentRequestLimit),this.Ba=new It,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function Bt(e){if(qt(e),3==e.I){var t=e.V++,r=w(e.J);if(b(r,"SID",e.M),b(r,"RID",t),b(r,"TYPE","terminate"),Gt(e,r),(t=new m(e,e.j,t)).M=2,t.A=ot(w(r)),r=!1,D.navigator&&D.navigator.sendBeacon)try{r=D.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&D.Image&&((new Image).src=t.A,r=!0),r||(t.g=tr(t.j,null),t.g.ea(t.A)),t.F=Date.now(),$e(t)}Zt(e)}function Ut(e){e.g&&(Qt(e),e.g.cancel(),e.g=null)}function qt(e){Ut(e),e.v&&(D.clearTimeout(e.v),e.v=null),Yt(e),e.h.cancel(),e.m&&("number"==typeof e.m&&D.clearTimeout(e.m),e.m=null)}function jt(e){var t;Xe(e.h)||e.m||(e.m=!0,t=e.Ea,r||Q(),n||(r(),n=!0),H.add(t,e),e.D=0)}function zt(e,t){var r=t?t.l:e.V++,n=w(e.J);b(n,"SID",e.M),b(n,"RID",r),b(n,"AID",e.K),Gt(e,n),e.u&&e.o&&Dt(n,e.u,e.o),r=new m(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=Kt(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),tt(e.h,r),ze(r,n,t)}function Gt(e,r){e.H&&ee(e.H,function(e,t){b(r,t,e)}),e.l&&ee({},function(e,t){b(r,t,e)})}function Kt(e,t,i){i=Math.min(e.i.length,i);var s=e.l?y(e.l.Ka,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,u=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{o="req"+o+"_"||"";try{var l,h,c=u instanceof Map?u:Object.entries(u);for([l,h]of c){let e=h;d(h)&&(e=Ie(h)),a.push(o+l+"="+encodeURIComponent(e))}}catch(e){throw a.push(o+"type="+encodeURIComponent("_badmap")),e}}catch(e){s&&s(u)}}if(e){c=a.join("&");break e}}c=void 0}return e=e.i.splice(0,i),t.G=e,c}function $t(e){var t;e.g||e.v||(e.Y=1,t=e.Da,r||Q(),n||(r(),n=!0),H.add(t,e),e.A=0)}function Ht(e){return!(e.g||e.v||3<=e.A)&&(e.Y++,e.v=v(y(e.Da,e),Xt(e,e.A)),e.A++,1)}function Qt(e){null!=e.B&&(D.clearTimeout(e.B),e.B=null)}function Wt(e){e.g=new m(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=w(e.na),r=(b(t,"RID","rpc"),b(t,"SID",e.M),b(t,"AID",e.K),b(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&b(t,"TO",e.ia),b(t,"TYPE","xmlhttp"),Gt(e,t),e.u&&e.o&&Dt(t,e.u,e.o),e.O&&(e.g.H=e.O),e.g);e=e.ba,r.M=1,r.A=ot(w(t)),r.u=null,r.R=!0,Ge(r,e)}function Yt(e){null!=e.C&&(D.clearTimeout(e.C),e.C=null)}function Jt(e,t){var r,n,i,s=null;if(e.g==t){Yt(e),Qt(e),e.g=null;var a=2}else{if(!et(e.h,t))return;s=t.G,rt(e.h,t),a=1}if(0!=e.I)if(t.o)(1==a?(s=t.u?t.u.length:0,t=Date.now()-t.F,r=e.D,l(a=ke(),new Le(a,s)),jt):$t)(e);else if(3==(r=t.m)||0==r&&0<t.X||(1!=a||(i=t,Ze((n=e).h)>=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=v(y(n.Ea,n,i),Xt(n,n.D)),n.D++,0)))&&(2!=a||!Ht(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:x(e,5);break;case 4:x(e,10);break;case 3:x(e,6);break;default:x(e,2)}}function Xt(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function x(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=y(e.bb,e),n=!(i=e.Ua),i=new p(i||"//www.google.com/images/cleardot.gif"),D.location&&"http"==D.location.protocol||_(i,"https"),ot(i),(n?(t,r)=>{var n=new f;if(D.Image){let e=new Image;e.onload=q(T,n,"TestLoadImage: loaded",!0,r,e),e.onerror=q(T,n,"TestLoadImage: error",!1,r,e),e.onabort=q(T,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=q(T,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new f,n=new AbortController,i=setTimeout(()=>{n.abort(),T(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?T(r,0,!0,t):T(r,0,!1,t)}).catch(()=>{clearTimeout(i),T(r,0,!1,t)})})(i.toString(),r)):k(2),e.I=0,e.l&&e.l.pa(t),Zt(e),qt(e)}function Zt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=nt(e.h)).length&&0==e.i.length||(G(e.ja,t),G(e.ja,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.oa())}function er(e,t,r){var n,i,s=r instanceof p?w(r):new p(r);return""!=s.g?(t&&(s.g=t+"."+s.g),st(s,s.u)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new p(null),s&&_(i,s),t&&(i.g=t),n&&st(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&b(s,r,t),b(s,"VER",e.ka),Gt(e,s),s}function tr(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new S(new Et({ab:r})):new S(e.ma)).Fa(e.L),t}function rr(){}function nr(){}function C(e,t){a.call(this),this.g=new Pt(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!N(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!N(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new A(this)}function ir(e){Ae.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function sr(){De.call(this),this.status=1}function A(e){this.g=e}(e=S.prototype).Fa=function(e){this.H=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=(this.L||Ue).g(),this.g.onreadystatechange=j(y(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Rt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(kt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(e),this.v=!1}catch(e){Rt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,l(this,"complete"),l(this,"abort"),Lt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Lt(this,!0)),S.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Mt(this):this.Xa())},e.Xa=function(){Mt(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2<L(this)?this.g.status:-1}catch(e){return-1}},e.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.La=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Ee(t)},e.ya=function(){return this.o},e.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Pt.prototype).ka=8,e.I=1,e.connect=function(e,t,r,n){k(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=er(this,null,this.W),jt(this)},e.Ea=function(t){if(this.m)if(this.m=null,1==this.I){if(!t){this.V=Math.floor(1e5*Math.random()),t=this.V++;var r=new m(this,this.j,t);let e=this.o;if(this.U&&(e?ne(e=te(e),this.U):e=this.U),null!==this.u||this.R||(r.J=e,e=null),this.S)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=Kt(this,r,n),b(i=w(this.J),"RID",t),b(i,"CVER",22),this.G&&b(i,"X-HTTP-Session-Id",this.G),Gt(this,i),e&&(this.R?n="headers="+g(At(e))+"&"+n:this.u&&Dt(i,this.u,e)),tt(this.h,r),this.Ra&&b(i,"TYPE","init"),this.S?(b(i,"$req",n),b(i,"SID","null"),r.U=!0,ze(r,i,null)):ze(r,i,n),this.I=2}}else 3==this.I&&(t?zt(this,t):0==this.i.length||Xe(this.h)||zt(this))},e.Da=function(){var e;this.v=null,Wt(this),this.aa&&!(this.P||null==this.g||this.T<=0)&&(e=4*this.T,this.j.info("BP detection timer enabled: "+e),this.B=v(y(this.Wa,this),e))},e.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,k(10),Ut(this),Wt(this))},e.Va=function(){null!=this.C&&(this.C=null,Ut(this),Ht(this),k(19))},e.bb=function(e){e?(this.j.info("Successfully pinged google.com"),k(2)):(this.j.info("Failed to ping google.com"),k(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=rr.prototype).ra=function(){},e.qa=function(){},e.pa=function(){},e.oa=function(){},e.isActive=function(){return!0},e.Ka=function(){},nr.prototype.g=function(e,t){return new C(e,t)},t(C,a),C.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},C.prototype.close=function(){Bt(this.g)},C.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=Ie(e),e=t),r.i.push(new Ye(r.Ya++,e)),3==r.I&&jt(r)},C.prototype.N=function(){this.g.l=null,delete this.j,Bt(this.g),delete this.g,C.Z.N.call(this)},t(ir,Ae),t(sr,De),t(A,rr),A.prototype.ra=function(){l(this.g,"a")},A.prototype.qa=function(e){l(this.g,new ir(e))},A.prototype.pa=function(e){l(this.g,new sr)},A.prototype.oa=function(){l(this.g,"b")},nr.prototype.createWebChannel=nr.prototype.g,C.prototype.send=C.prototype.o,C.prototype.open=C.prototype.m,fr=function(){return new nr},dr=ke,cr=c,hr={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},Ve.NO_ERROR=0,Ve.TIMEOUT=8,Ve.HTTP_ERROR=6,lr=Ve,Fe.COMPLETE="complete",ur=Fe,(xe.EventType=Ce).OPEN="a",Ce.CLOSE="b",Ce.ERROR="c",Ce.MESSAGE="d",a.prototype.listen=a.prototype.J,or=xe,S.prototype.listenOnce=S.prototype.K,S.prototype.getLastError=S.prototype.Ha,S.prototype.getLastErrorCode=S.prototype.ya,S.prototype.getStatus=S.prototype.ca,S.prototype.getResponseJson=S.prototype.La,S.prototype.getResponseText=S.prototype.la,S.prototype.send=S.prototype.ea,S.prototype.setWithCredentials=S.prototype.Fa,ar=S}).apply(void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});class l{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}l.UNAUTHENTICATED=new l(null),l.GOOGLE_CREDENTIALS=new l("google-credentials-uid"),l.FIRST_PARTY=new l("first-party-uid"),l.MOCK_USER=new l("mock-user");let ye="12.8.0-canary.d818df4e8";let ve=new class{constructor(e){this.name=e,this._logLevel=fe,this._logHandler=me,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?de[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,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}("@firebase/firestore");function we(){return ve.logLevel}function g(e,...t){var r;ve.logLevel<=c.DEBUG&&(r=t.map(be),ve.debug(`Firestore (${ye}): `+e,...r))}function d(e,...t){var r;ve.logLevel<=c.ERROR&&(r=t.map(be),ve.error(`Firestore (${ye}): `+e,...r))}function _e(e,...t){var r;ve.logLevel<=c.WARN&&(r=t.map(be),ve.warn(`Firestore (${ye}): `+e,...r))}function be(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function T(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Ie(e,n,r)}function Ie(e,t,r){let n=`FIRESTORE (${ye}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw d(n),new Error(n)}function y(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Ie(t,i,n)}let b={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class I extends ie{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class m{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class Ee{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class Te{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(l.UNAUTHENTICATED))}shutdown(){}}class Se{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class xe{constructor(e){this.t=e,this.currentUser=l.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new m,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new m,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{g("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(g("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new m))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(g("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken,31837,{l:e}),new Ee(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e,2055,{h:e}),new l(e)}}class Ce{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=l.FIRST_PARTY,this.R=new Map}A(){return this.I?this.I():null}get headers(){this.R.set("X-Goog-AuthUser",this.P);var e=this.A();return e&&this.R.set("Authorization",e),this.T&&this.R.set("X-Goog-Iam-Authorization-Token",this.T),this.R}}class Ae{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Ce(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(l.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class De{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Ne{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,Xd._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){y(void 0===this.o,3512);let n=e=>{null!=e.error&&g("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,g("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{g("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):g("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new De(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new De(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class ke{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function S(e,t){return e<t?-1:t<e?1:0}function Re(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return Le(e)===Le(t)?S(e,t):Le(e)?1:-1}return S(r.length,n.length)}let Oe=55296,Me=57343;function Le(e){var t=e.charCodeAt(0);return t>=Oe&&t<=Me}function Ve(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Fe(e){return e+"\0"}let Pe="__name__";class Be{constructor(e,t,r){void 0===t?t=0:t>e.length&&T(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&T(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===Be.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof Be?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=Be.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return S(t.length,r.length)}static compareSegments(e,t){var r=Be.isNumericId(e),n=Be.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?Be.extractNumericId(e).compare(Be.extractNumericId(t)):Re(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return he.fromString(e.substring(4,e.length-2))}}class E extends Be{construct(e,t,r){return new E(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new I(b.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new E(r)}static emptyPath(){return new E([])}}let Ue=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class h extends Be{construct(e,t,r){return new h(e,t,r)}static isValidIdentifier(e){return Ue.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=h.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Pe}static keyField(){return new h([Pe])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new I(b.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new I(b.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new I(b.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new h(e)}static emptyPath(){return new h([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(E.fromString(e))}static fromName(e){return new x(E.fromString(e).popFirst(5))}static empty(){return new x(E.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===E.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return E.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new E(e.slice()))}}function qe(e,t,r){if(!r)throw new I(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function je(e,t,r,n){if(!0===t&&!0===n)throw new I(b.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function ze(e){if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Ge(e){if(x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function Ke(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function $e(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":T(12329,{type:typeof e})}function p(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new I(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=$e(e);throw new I(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function He(e,t){if(t<=0)throw new I(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function t(e,t){var r={typeString:e};return t&&(r.value=t),r}function Qe(e,t){if(!Ke(e))throw new I(b.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new I(b.INVALID_ARGUMENT,r);return 1}let We=-62135596800;class v{static now(){return v.fromMillis(Date.now())}static fromDate(e){return v.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new v(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<We)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?S(this.nanoseconds,e.nanoseconds):S(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:v._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(Qe(e,v._jsonSchema))return new v(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-We;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}v._jsonSchemaVersion="firestore/timestamp/1.0",v._jsonSchema={type:t("string",v._jsonSchemaVersion),seconds:t("number"),nanoseconds:t("number")};class w{static fromTimestamp(e){return new w(e)}static min(){return new w(new v(0,0))}static max(){return new w(new v(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let Ye=-1;class Je{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Xe(e){return e.fields.find(e=>2===e.kind)}function Ze(e){return e.fields.filter(e=>2!==e.kind)}Je.UNKNOWN_ID=-1;class et{constructor(e,t){this.fieldPath=e,this.kind=t}}class tt{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new tt(0,it.min())}}function rt(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=w.fromTimestamp(1e9===n?new v(r+1,0):new v(r,n));return new it(r,x.empty(),t)}function nt(e){return new it(e.readTime,e.key,Ye)}class it{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new it(w.min(),x.empty(),Ye)}static max(){return new it(w.max(),x.empty(),Ye)}}function st(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:S(e.largestBatchId,t.largestBatchId)}let at="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class ot{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function ut(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==at)throw e;g("LocalStore","Unexpectedly lost primary lease")}class C{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&T(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new C((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof C?t:C.resolve(t)}catch(e){return C.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):C.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):C.reject(t)}static resolve(r){return new C((e,t)=>{e(r)})}static reject(r){return new C((e,t)=>{t(r)})}static waitFor(e){return new C((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=C.resolve(!1);for(let r of e)t=t.next(e=>e?C.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,u){return new C((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;u(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new C((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let lt="SimpleDb";class ht{static open(e,t,r,n){try{return new ht(t,e.transaction(n,r))}catch(e){throw new gt(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new m,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new gt(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=wt(e.target.error);this.S.reject(new gt(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(g(lt,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new pt(t)}}class ct{static delete(e){return g(lt,"Removing database:",e),yt(K().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!ct.F()&&(e=ee(),t=0<(t=ct.M(e))&&t<10,r=0<(r=dt(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===ct.M(ee())&&d("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(g(lt,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new gt(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new I(b.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new I(b.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new gt(s,t))},i.onupgradeneeded=e=>{g(lt,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{g(lt,"Database upgrade to version "+this.version+" complete")})}})),this.K&&(this.db.onversionchange=e=>this.K(e)),this.db}q(t){this.K=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=ht.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),C.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(g(lt,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function dt(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class ft{constructor(e){this.U=e,this.$=!1,this.W=null}get isDone(){return this.$}get G(){return this.W}set cursor(e){this.U=e}done(){this.$=!0}j(e){this.W=e}delete(){return yt(this.U.delete())}}class gt extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function mt(e){return"IndexedDbTransactionError"===e.name}class pt{constructor(e){this.store=e}put(e,t){let r;return yt(r=void 0!==t?(g(lt,"PUT",this.store.name,e,t),this.store.put(t,e)):(g(lt,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return g(lt,"ADD",this.store.name,e,e),yt(this.store.add(e))}get(t){return yt(this.store.get(t)).next(e=>(void 0===e&&(e=null),g(lt,"GET",this.store.name,t,e),e))}delete(e){return g(lt,"DELETE",this.store.name,e),yt(this.store.delete(e))}count(){return g(lt,"COUNT",this.store.name),yt(this.store.count())}H(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new C((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.J(e,(e,t)=>{r.push(t)}).next(()=>r)}}Z(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new C((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}X(e,t){g(lt,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Y=!1,this.cursor(r));return this.J(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.J(n,t)}te(i){let e=this.cursor({});return new C((r,n)=>{e.onerror=e=>{var t=wt(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}J(e,s){let a=[];return new C((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new ft(n),r=s(n.primaryKey,n.value,t);if(r instanceof C){let e=r.catch(e=>(t.done(),C.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>C.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function yt(e){return new C((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=wt(e.target.error);n(t)}})}let vt=!1;function wt(e){let t=ct.M(ee());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new I("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return vt||(vt=!0,setTimeout(()=>{throw e},0)),e}}return e}let _t="IndexBackfiller";class bt{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){g(_t,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();g(_t,"Documents written: "+e)}catch(e){mt(e)?g(_t,"Ignoring IndexedDB error during index backfill: ",e):await ut(e)}await this.re(6e4)})}}class It{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return C.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return g(_t,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(g(_t,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=nt(t);0<st(r,n)&&(n=r)}),new it(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class Et{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let Tt=Et.ce=-1;function St(e){return null==e}function xt(e){return 0===e&&1/e==-1/0}function Ct(e){return"number"==typeof e&&Number.isInteger(e)&&!xt(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let At="";function Dt(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Nt(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case At:r+="";break;default:r+=e}}return r})(e.get(r),t);return Nt(t)}function Nt(e){return e+At+""}function kt(r){let e=r.length;if(y(2<=e,64408,{path:r}),2===e)return y(r.charAt(0)===At&&""===r.charAt(1),56145,{path:r}),E.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(At,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&T(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:T(61167,{path:r})}a=t+2}return new E(n)}let Rt="remoteDocuments",Ot="owner",Mt="owner",Lt="mutationQueues",Vt="mutations",Ft="batchId",Pt="userMutationsIndex",Bt=["userId","batchId"];function Ut(e,t){return[e,Dt(t)]}function qt(e,t,r){return[e,Dt(t),r]}let jt={},zt="documentMutations",Gt="remoteDocumentsV14",Kt=["prefixPath","collectionGroup","readTime","documentId"],$t="documentKeyIndex",Ht=["prefixPath","collectionGroup","documentId"],Qt="collectionGroupIndex",Wt=["collectionGroup","readTime","prefixPath","documentId"],Yt="remoteDocumentGlobal",Jt="remoteDocumentGlobalKey",Xt="targets",Zt="queryTargetsIndex",er=["canonicalId","targetId"],tr="targetDocuments",rr=["targetId","path"],nr="documentTargetsIndex",ir=["path","targetId"],sr="targetGlobalKey",mr="targetGlobal",pr="collectionParents",yr=["collectionId","parent"],vr="clientMetadata",wr="bundles",_r="namedQueries",br="indexConfiguration",Ir="collectionGroupIndex",Er="indexState",Tr=["indexId","uid"],Sr="sequenceNumberIndex",xr=["uid","sequenceNumber"],Cr="indexEntries",Ar=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],Dr="documentKeyIndex",Nr=["indexId","uid","orderedDocumentKey"],kr="documentOverlays",Rr=["userId","collectionPath","documentId"],Or="collectionPathOverlayIndex",Mr=["userId","collectionPath","largestBatchId"],Lr="collectionGroupOverlayIndex",Vr=["userId","collectionGroup","largestBatchId"],Fr="globals",Pr=[Lt,Vt,zt,Rt,Xt,Ot,mr,tr,vr,Yt,pr,wr,_r],Br=[...Pr,kr],Ur=[Lt,Vt,zt,Gt,Xt,Ot,mr,tr,vr,Yt,pr,wr,_r,kr],qr=Ur,jr=[...qr,br,Er,Cr],zr=jr,Gr=[...jr,Fr],Kr=Gr;class $r extends ot{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return ct.O(r.le,t)}function Hr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Qr(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Wr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Jr.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Jr.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Jr.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new Yr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Yr(this.root,e,this.comparator,!1)}getReverseIterator(){return new Yr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Yr(this.root,e,this.comparator,!0)}}class Yr{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class Jr{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Jr.RED,this.left=null!=n?n:Jr.EMPTY,this.right=null!=i?i:Jr.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new Jr(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return Jr.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return Jr.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,Jr.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,Jr.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw T(43730,{key:this.key,value:this.value});if(this.right.isRed())throw T(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw T(27949);return e+(this.isRed()?0:1)}}Jr.EMPTY=null,Jr.RED=!0,Jr.BLACK=!1,Jr.EMPTY=new class{constructor(){this.size=0}get key(){throw T(57766)}get value(){throw T(16141)}get color(){throw T(16727)}get left(){throw T(29726)}get right(){throw T(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new Jr(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class D{constructor(e){this.comparator=e,this.data=new A(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Xr(this.data.getIterator())}getIteratorFrom(e){return new Xr(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof D))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new D(this.comparator);return t.data=e,t}}class Xr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Zr(e){return e.hasNext()?e.getNext():void 0}class en{constructor(e){(this.fields=e).sort(h.comparator)}static empty(){return new en([])}unionWith(e){let t=new D(h.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new en(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Ve(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class tn extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class N{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new tn("Invalid base64 string: "+e):e}})(e);return new N(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new N(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return S(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}N.EMPTY_BYTE_STRING=new N("");let rn=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function nn(t){if(y(!!t,39018),"string"!=typeof t)return{seconds:k(t.seconds),nanos:k(t.nanos)};{let e=0;var r=rn.exec(t),r=(y(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function k(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function sn(e){return"string"==typeof e?N.fromBase64String(e):N.fromUint8Array(e)}let an="server_timestamp",on="__type__",un="__previous_value__",ln="__local_write_time__";function hn(e){return(e?.mapValue?.fields||{})[on]?.stringValue===an}function cn(e){var t=e.mapValue.fields[un];return hn(t)?cn(t):t}function dn(e){var t=nn(e.mapValue.fields[ln].timestampValue);return new v(t.seconds,t.nanos)}class fn{constructor(e,t,r,n,i,s,a,o,u,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=u,this.isUsingEmulator=l,this.apiKey=h}}let gn="(default)";class mn{constructor(e,t){this.projectId=e,this.database=t||gn}static empty(){return new mn("","")}get isDefaultDatabase(){return this.database===gn}isEqual(e){return e instanceof mn&&e.projectId===this.projectId&&e.database===this.database}}let pn="__type__",yn="__max__",vn={mapValue:{fields:{__type__:{stringValue:yn}}}},wn="__vector__",_n="value",bn={nullValue:"NULL_VALUE"};function In(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?hn(e)?4:Fn(e)?9007199254740991:Ln(e)?10:11:T(28295,{value:e})}function En(t,r){if(t===r)return!0;var n,i,s,a,o,e=In(t);if(e!==In(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return dn(t).isEqual(dn(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=nn(i.timestampValue),o=nn(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,sn(t.bytesValue).isEqual(sn(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,k((n=t).geoPointValue.latitude)===k(s.geoPointValue.latitude)&&k(n.geoPointValue.longitude)===k(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(l=t)&&"integerValue"in n?k(l.integerValue)===k(n.integerValue):"doubleValue"in l&&"doubleValue"in n&&((a=k(l.doubleValue))===(o=k(n.doubleValue))?xt(a)===xt(o):isNaN(a)&&isNaN(o));case 9:return Ve(t.arrayValue.values||[],r.arrayValue.values||[],En);case 10:case 11:var u=t,l=r,h=u.mapValue.fields||{},c=l.mapValue.fields||{};if(Hr(h)!==Hr(c))return!1;for(let e in h)if(h.hasOwnProperty(e)&&(void 0===c[e]||!En(h[e],c[e])))return!1;return!0;default:return T(52216,{left:t})}}function Tn(e,t){return void 0!==(e.values||[]).find(e=>En(e,t))}function Sn(e,n){if(e===n)return 0;var i,s,a,o,u,l,h,c,d=In(e),t=In(n);if(d!==t)return S(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return S(e.booleanValue,n.booleanValue);case 2:return l=n,h=k((u=e).integerValue||u.doubleValue),c=k(l.integerValue||l.doubleValue),h<c?-1:c<h?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return xn(e.timestampValue,n.timestampValue);case 4:return xn(dn(e),dn(n));case 5:return Re(e.stringValue,n.stringValue);case 6:return u=e.bytesValue,l=n.bytesValue,h=sn(u),c=sn(l),h.compareTo(c);case 7:var f=e.referenceValue,g=n.referenceValue,m=f.split("/"),p=g.split("/");for(let t=0;t<m.length&&t<p.length;t++){let e=S(m[t],p[t]);if(0!==e)return e}return S(m.length,p.length);case 8:return f=e.geoPointValue,g=n.geoPointValue,0!==(o=S(k(f.latitude),k(g.latitude)))?o:S(k(f.longitude),k(g.longitude));case 9:return Cn(e.arrayValue,n.arrayValue);case 10:return y=e.mapValue,i=n.mapValue,o=y.fields||{},s=i.fields||{},o=o[_n]?.arrayValue,s=s[_n]?.arrayValue,0!==(a=S(o?.values?.length||0,s?.values?.length||0))?a:Cn(o,s);case 11:var y=e.mapValue,v=n.mapValue;if(y===vn.mapValue&&v===vn.mapValue)return 0;if(y===vn.mapValue)return 1;if(v===vn.mapValue)return-1;var w=y.fields||{},_=Object.keys(w),b=v.fields||{},I=Object.keys(b);_.sort(),I.sort();for(let r=0;r<_.length&&r<I.length;++r){let e=Re(_[r],I[r]);if(0!==e)return e;var E=Sn(w[_[r]],b[I[r]]);if(0!==E)return E}return S(_.length,I.length);default:throw T(23264,{he:d})}}function xn(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?S(e,t):(r=nn(e),n=nn(t),0!==(i=S(r.seconds,n.seconds))?i:S(r.nanos,n.nanos))}function Cn(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Sn(r[i],n[i]);if(e)return e}return S(r.length,n.length)}function An(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=nn(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>sn(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):T(61005,{value:e})}(e)}function Dn(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function Nn(e){return!!e&&"integerValue"in e}function kn(e){return!!e&&"arrayValue"in e}function Rn(e){return e&&"nullValue"in e}function On(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Mn(e){return e&&"mapValue"in e}function Ln(e){return(e?.mapValue?.fields||{})[pn]?.stringValue===wn}function Vn(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return Qr(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Vn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Vn(t.arrayValue.values[e]);return r}return{...t}}function Fn(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===yn}let Pn={mapValue:{fields:{[pn]:{stringValue:wn},[_n]:{arrayValue:{}}}}};function Bn(e,t){var r=Sn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Un(e,t){var r=Sn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class qn{constructor(e){this.value=e}static empty(){return new qn({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Mn(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Vn(t)}setAll(e){let r=h.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Vn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Mn(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return En(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Mn(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Qr(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new qn(Vn(this.value))}}class R{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new R(e,0,w.min(),w.min(),w.min(),qn.empty(),0)}static newFoundDocument(e,t,r,n){return new R(e,1,t,w.min(),r,n,0)}static newNoDocument(e,t){return new R(e,2,t,w.min(),w.min(),qn.empty(),0)}static newUnknownDocument(e,t){return new R(e,3,t,w.min(),w.min(),qn.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(w.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=qn.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=qn.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=w.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof R&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new R(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class jn{constructor(e,t){this.position=e,this.inclusive=t}}function zn(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):Sn(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Gn(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!En(e.position[r],t.position[r]))return!1;return!0}class Kn{constructor(e,t="asc"){this.field=e,this.dir=t}}class $n{}class O extends $n{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new Zn(e,t,r):"array-contains"===t?new ni(e,r):"in"===t?new ii(e,r):"not-in"===t?new si(e,r):"array-contains-any"===t?new ai(e,r):new O(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?ei:ti)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Sn(t,this.value)):null!==t&&In(this.value)===In(t)&&this.matchesComparison(Sn(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return T(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class M extends $n{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new M(e,t)}matches(t){return Hn(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function Hn(e){return"and"===e.op}function Qn(e){return"or"===e.op}function Wn(e){return Yn(e)&&Hn(e)}function Yn(e){for(var t of e.filters)if(t instanceof M)return!1;return!0}function Jn(e,t){var r=e.filters.concat(t);return M.create(r,e.op)}function Xn(e){return e instanceof O?`${(t=e).field.canonicalString()} ${t.op} `+An(t.value):e instanceof M?(t=e).op.toString()+" {"+t.getFilters().map(Xn).join(" ,")+"}":"Filter";var t}class Zn extends O{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class ei extends O{constructor(e,t){super(e,"in",t),this.keys=ri(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class ti extends O{constructor(e,t){super(e,"not-in",t),this.keys=ri(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function ri(e,t){return(t.arrayValue?.values||[]).map(e=>x.fromName(e.referenceValue))}class ni extends O{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return kn(t)&&Tn(t.arrayValue,this.value)}}class ii extends O{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Tn(this.value.arrayValue,t)}}class si extends O{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Tn(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Tn(this.value.arrayValue,t)}}class ai extends O{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!kn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Tn(this.value.arrayValue,e))}}class oi{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function ui(e,t=null,r=[],n=[],i=null,s=null,a=null){return new oi(e,t,r,n,i,s,a)}function li(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof O?e.field.canonicalString()+e.op.toString()+An(e.value):Wn(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),St(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>An(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>An(e)).join(",")),t.Te=e}return t.Te}function hi(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof O?(r=e,(s=t)instanceof O&&r.op===s.op&&r.field.isEqual(s.field)&&En(r.value,s.value)):e instanceof M?(r=e,(i=t)instanceof M&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void T(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Gn(e.startAt,t.startAt)&&Gn(e.endAt,t.endAt)}function ci(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function di(e,t){return e.filters.filter(e=>e instanceof O&&e.field.isEqual(t))}function fi(e,r,n){let i=bn,s=!0;for(let n of di(e,r)){let e=bn,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?bn:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Dn(mn.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Ln(a)?Pn:{mapValue:{}}:T(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=bn}Bn({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];Bn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function gi(e,r,n){let i=vn,s=!0;for(let n of di(e,r)){let e=vn,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Dn(mn.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Pn:"mapValue"in a?Ln(a)?{mapValue:{}}:vn:T(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=vn}0<Un({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<Un({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class mi{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.Re=null,this.startAt,this.endAt}}function pi(e,t,r,n,i,s,a,o){return new mi(e,t,r,n,i,s,a,o)}function yi(e){return new mi(e)}function vi(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function wi(e){return null!==e.collectionGroup}function _i(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new D(h.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new Kn(e,r))}),t.has(h.keyField().canonicalString())||n.Ie.push(new Kn(h.keyField(),r))}return n.Ie}function bi(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return ui(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new Kn(e.field,t)});var r=e.endAt?new jn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new jn(e.startAt.position,e.startAt.inclusive):null;return ui(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,_i(e))),t.Ee}function Ii(e,t){var r=e.filters.concat([t]);return new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Ei(e,t,r){return new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Ti(e,t){return hi(bi(e),bi(t))&&e.limitType===t.limitType}function Si(e){return li(bi(e))+"|lt:"+e.limitType}function xi(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>Xn(e)).join(", ")}]`),St(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>An(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>An(e)).join(","):t})`})(bi(e))}; limitType=${e.limitType})`}function Ci(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of _i(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=_i(s),i=zn(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=_i(s),i=zn(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Ai(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Di(e){return(t,r)=>{let n=!1;for(var i of _i(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Sn(n,i):T(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return T(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Ni{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){Qr(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Wr(this.inner)}size(){return this.innerSize}}let ki=new A(x.comparator);let Ri=new A(x.comparator);function Oi(...e){let t=Ri;for(var r of e)t=t.insert(r.key,r);return t}function Mi(e){let r=Ri;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Li(){return new Ni(e=>e.toString(),(e,t)=>e.isEqual(t))}let Vi=new A(x.comparator),Fi=new D(x.comparator);function L(...e){let t=Fi;for(var r of e)t=t.add(r);return t}let Pi=new D(S);function Bi(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:xt(t)?"-0":t}}function Ui(e){return{integerValue:""+e}}function qi(e,t){return Ct(t)?Ui(t):Bi(e,t)}class ji{constructor(){this._=void 0}}function zi(e,t){return e instanceof Wi?Nn(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Gi extends ji{}class Ki extends ji{constructor(e){super(),this.elements=e}}function $i(e,t){var r=Ji(t);for(let t of e.elements)r.some(e=>En(e,t))||r.push(t);return{arrayValue:{values:r}}}class Hi extends ji{constructor(e){super(),this.elements=e}}function Qi(e,t){let r=Ji(t);for(let t of e.elements)r=r.filter(e=>!En(e,t));return{arrayValue:{values:r}}}class Wi extends ji{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function Yi(e){return k(e.integerValue||e.doubleValue)}function Ji(e){return kn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Xi{constructor(e,t){this.field=e,this.transform=t}}class Zi{constructor(e,t){this.version=e,this.transformResults=t}}class V{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new V}static exists(e){return new V(void 0,e)}static updateTime(e){return new V(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function es(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class ts{}function rs(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new hs(e.key,V.none()):new ss(e.key,e.data,V.none());{var n,i=e.data,s=qn.empty();let t=new D(h.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new as(e.key,s,new en(t.toArray()),V.none())}}function ns(e,t,r,n){return e instanceof ss?(s=t,a=r,o=n,es((i=e).precondition,s)?(u=i.value.clone(),l=ls(i.fieldTransforms,o,s),u.setAll(l),s.convertToFoundDocument(s.version,u).setHasLocalMutations(),null):a):e instanceof as?(i=t,o=r,s=n,es((a=e).precondition,i)?(l=ls(a.fieldTransforms,s,i),(u=i.data).setAll(os(a)),u.setAll(l),i.convertToFoundDocument(i.version,u).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,es(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,u,l}function is(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Ve(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Ki&&t instanceof Ki||e instanceof Hi&&t instanceof Hi?Ve(e.elements,t.elements,En):e instanceof Wi&&t instanceof Wi?En(e.Ae,t.Ae):e instanceof Gi&&t instanceof Gi)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class ss extends ts{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class as extends ts{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function os(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function us(e,t,r){var n,i,s,a=new Map;y(e.length===r.length,32656,{Ve:r.length,de:e.length});for(let h=0;h<r.length;h++){var o=e[h],u=o.transform,l=t.data.field(o.field);a.set(o.field,(n=u,i=l,s=r[h],n instanceof Ki?$i(n,i):n instanceof Hi?Qi(n,i):s))}return a}function ls(e,r,n){var i,s,a,o,u,l,h,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,h=l=u=void 0,s instanceof Gi?(o=o,l=a,h={fields:{[on]:{stringValue:an},[ln]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(l=l&&hn(l)?cn(l):l)&&(h.fields[un]=l),{mapValue:h}):s instanceof Ki?$i(s,a):s instanceof Hi?Qi(s,a):(h=zi(o=s,a),u=Yi(h)+Yi(o.Ae),Nn(h)&&Nn(o.Ae)?Ui(u):Bi(o.serializer,u))))}return c}class hs extends ts{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class cs extends ts{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class ds{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,u,l=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var h=this.mutations[c];h.key.isEqual(e.key)&&(r=h,n=e,i=l[c],u=h=o=a=s=void 0,r instanceof ss?(a=n,o=i,h=(s=r).value.clone(),u=us(s.fieldTransforms,a,o.transformResults),h.setAll(u),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof as?(s=n,a=i,es((o=r).precondition,s)?(u=us(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(os(o)),h.setAll(u),s.convertToFoundDocument(a.version,h).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=ns(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=ns(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Li();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=rs(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(w.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),L())}isEqual(e){return this.batchId===e.batchId&&Ve(this.mutations,e.mutations,(e,t)=>is(e,t))&&Ve(this.baseMutations,e.baseMutations,(e,t)=>is(e,t))}}class fs{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Vi;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new fs(e,t,r,n)}}class gs{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
15
+ </defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ee(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function te(){var e=W()?.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}}function re(){return!te()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ne(){return!te()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}class ie extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ie.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,se.prototype.create)}}class se{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(ae,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ie(i,s,r)}}let ae=/\{\$([^}]+)}/g;function oe(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(ue(a)&&ue(o)){if(!oe(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function ue(e){return null!==e&&"object"==typeof e}function _(e){return e&&e._delegate?e._delegate:e}class le{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 he,ce,c,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.C=Array(this.blockSize),this.o=this.h=0,this.u()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=t+(s^r&(i^s))+n[0]+3614090360&4294967295;a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+(a<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295,e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;var r=[];let n=!0;for(let s=e.length-1;0<=s;s--){var i=0|e[s];n&&i==t||(r[s]=i,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.F=s.prototype,t.prototype=new n,(t.prototype.constructor=t).D=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.u=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.v=function(e,t){var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.C;let i=this.h,s=0;for(;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.A=function(){var t=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);t[0]=128;for(var r=1;r<t.length-8;++r)t[r]=0;for(var r=8*this.o,n=t.length-8;n<t.length;++n)t[n]=255&r,r/=256;for(this.v(t),t=Array(16),n=r=0;n<4;++n)for(let e=0;e<32;e+=8)t[r++]=this.g[n]>>>e&255;return t};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function l(e){if(isNaN(e)||!isFinite(e))return h;if(e<0)return m(l(-e));var t=[];let r=1;for(let n=0;e>=r;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var h=o(0),c=o(1),d=o(16777216);function f(t){if(0==t.h){for(let e=0;e<t.g.length;e++)if(0!=t.g[e])return;return 1}}function g(e){return-1==e.h}function m(e){var t=e.g.length,r=[];for(let n=0;n<t;n++)r[n]=~e.g[n];return new u(r,~e.h).add(c)}function p(e,t){return e.add(m(t))}function y(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(h,h);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30<e.g.length){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=c,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!f(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=p(e,i.j(t)),new v(i,t)}for(i=h;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=l(r)).j(t);g(a)||0<a.l(e);)a=(s=l(r-=n)).j(t);f(s)&&(s=c),i=i.add(s),e=p(e,a)}return new v(i,e)}function _(e){var t=e.g.length+1,r=[];for(let n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new u(r,e.h)}function b(e,t){var r=t>>5,n=(t%=32,e.g.length-r),i=[];for(let s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();let e=0,t=1;for(let n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*t,t*=4294967296}return e},e.toString=function(t){if((t=t||10)<2||36<t)throw Error("radix out of range: "+t);if(f(this))return"0";if(g(this))return"-"+m(this).toString(t);var r=l(Math.pow(t,6)),n=this;let i="";for(;;){var s=w(n,r).g;let e=((0<(n=p(n,s.j(r))).g.length?n.g[0]:n.h)>>>0).toString(t);if(f(n=s))return e+i;for(;e.length<6;)e="0"+e;i=e+i}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return g(e=p(this,e))?-1:f(e)?0:1},e.abs=function(){return g(this)?m(this):this},e.add=function(e){var t=Math.max(this.g.length,e.g.length),r=[];let n=0;for(let a=0;a<=t;a++){var i=n+(65535&this.i(a))+(65535&e.i(a)),s=(i>>>16)+(this.i(a)>>>16)+(e.i(a)>>>16);n=s>>>16,i&=65535,s&=65535,r[a]=s<<16|i}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(t){if(f(this)||f(t))return h;if(g(this))return g(t)?m(this).j(m(t)):m(m(this).j(t));if(g(t))return m(this.j(m(t)));if(this.l(d)<0&&t.l(d)<0)return l(this.m()*t.m());for(var e=this.g.length+t.g.length,r=[],n=0;n<2*e;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(let e=0;e<t.g.length;e++){var i=this.i(n)>>>16,s=65535&this.i(n),a=t.i(e)>>>16,o=65535&t.i(e);r[2*n+2*e]+=s*o,y(r,2*n+2*e),r[2*n+2*e+1]+=i*o,y(r,2*n+2*e+1),r[2*n+2*e+1]+=s*a,y(r,2*n+2*e+1),r[2*n+2*e+2]+=i*a,y(r,2*n+2*e+2)}for(t=0;t<e;t++)r[t]=r[2*t+1]<<16|r[2*t];for(t=e;t<2*e;t++)r[t]=0;return new u(r,0)},e.B=function(e){return w(this,e).h},e.and=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new u(r,this.h&e.h)},e.or=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new u(r,this.h|e.h)},e.xor=function(e){var t=Math.max(this.g.length,e.g.length),r=[];for(let n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new u(r,this.h^e.h)},r.prototype.digest=r.prototype.A,r.prototype.reset=r.prototype.u,r.prototype.update=r.prototype.v,ce=r,u.prototype.multiply=u.prototype.j,u.prototype.modulo=u.prototype.B,u.prototype.compare=u.prototype.l,u.prototype.toNumber=u.prototype.m,u.prototype.getBits=u.prototype.i,u.fromNumber=l,u.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return m(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');var n=l(Math.pow(r,8));let i=h;for(let o=0;o<t.length;o+=8){var s=Math.min(8,t.length-o),a=parseInt(t.substring(o,o+s),r);i=(s<8?(s=l(Math.pow(r,s)),i.j(s)):i=i.j(n)).add(l(a))}return i},he=u}).apply(void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),(n=c=c||{})[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";let de={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},fe=c.INFO,ge={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},me=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=ge[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};var ar,or,ur,lr,hr,cr,dr,fr,f,pe,gr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,V=Object.defineProperty;var F=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof gr&&gr];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);function P(e,t){if(t)e:{var r=F;e=e.split(".");for(var n=0;n<e.length-1;n++){var i=e[n];if(!(i in r))break e;r=r[i]}(t=t(n=r[e=e[e.length-1]]))!=n&&null!=t&&V(r,e,{configurable:!0,writable:!0,value:t})}}P("Symbol.dispose",function(e){return e||Symbol("Symbol.dispose")}),P("Array.prototype.values",function(e){return e||function(){return this[Symbol.iterator]()}}),P("Object.entries",function(e){return e||function(e){var t,r=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push([t,e[t]]);return r}});var B=B||{},D=this||self;function d(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function U(e,t,r){return e.call.apply(e.bind,arguments)}function y(e,t,r){return(y=U).apply(null,arguments)}function q(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function t(e,s){function t(){}t.prototype=s.prototype,e.Z=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Ob=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}var j="undefined"!=typeof AsyncContext&&"function"==typeof AsyncContext.Snapshot?e=>e&&AsyncContext.Snapshot.wrap(e):e=>e;function z(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function G(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if("array"==(n="object"!=(n=typeof r)?n:r?Array.isArray(r)?"array":n:"null")||"object"==n&&"number"==typeof r.length){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}var K=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new $,e=>e.reset());class ${constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let r,n=!1,H=new class{constructor(){this.h=this.g=null}add(e,t){var r=K.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},Q=()=>{let e=Promise.resolve(void 0);r=()=>{e.then(W)}};function W(){for(var e;e=(()=>{let e=H,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=K;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}n=!1}function i(){this.u=this.u,this.C=this.C}function o(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}i.prototype.u=!1,i.prototype.dispose=function(){this.u||(this.u=!0,this.N())},i.prototype[Symbol.dispose]=function(){this.dispose()},i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},o.prototype.h=function(){this.defaultPrevented=!0};var Y=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function N(e){return/^[\s\xa0]*$/.test(e)}function s(e,t){o.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e&&this.init(e,t)}t(s,o),s.prototype.init=function(e,t){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;this.target=e.target||e.srcElement,this.g=t,(t=e.relatedTarget)||("mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement)),this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType=e.pointerType,this.state=e.state,(this.i=e).defaultPrevented&&s.Z.h.call(this)},s.prototype.h=function(){s.Z.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var u="closure_listenable_"+(1e6*Math.random()|0),J=0;function X(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++J,this.da=this.fa=!1}function Z(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function ee(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function te(e){var t,r={};for(t in e)r[t]=e[t];return r}let re="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ne(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<re.length;e++)r=re[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}function ie(e){this.src=e,this.g={},this.h=0}function se(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(Z(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ae(e,t,r,n){for(let s=0;s<e.length;++s){var i=e[s];if(!i.da&&i.listener==t&&i.capture==!!r&&i.ha==n)return s}return-1}ie.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ae(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new X(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var oe="closure_lm_"+(1e6*Math.random()|0),ue={};function le(t,r,n,i,s){if(i&&i.once)return function t(r,n,i,s,a){if(Array.isArray(n)){for(let e=0;e<n.length;e++)t(r,n[e],i,s,a);return null}i=pe(i);return r&&r[u]?r.K(n,i,d(s)?!!s.capture:!!s,a):he(r,n,i,!0,s,a)}(t,r,n,i,s);if(Array.isArray(r)){for(let e=0;e<r.length;e++)le(t,r[e],n,i,s);return null}return n=pe(n),t&&t[u]?t.J(r,n,d(i)?!!i.capture:!!i,s):he(t,r,n,!1,i,s)}function he(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=d(i)?!!i.capture:!!i;let o=ge(e);if(o||(e[oe]=o=new ie(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=fe;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=Y?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(de(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ce(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[u]?se(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(de(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ge(t))?(se(r,e),0==r.h&&(r.src=null,t[oe]=null)):Z(e)))}function de(e){return e in ue?ue[e]:ue[e]="on"+e}function fe(e,t){var r,n;return e=!!e.da||(t=new s(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ce(e),r.call(n,t))}function ge(e){return(e=e[oe])instanceof ie?e:null}var me="__closure_events_fn_"+(1e9*Math.random()>>>0);function pe(t){return"function"==typeof t?t:(t[me]||(t[me]=function(e){return t.handleEvent(e)}),t[me])}function a(){i.call(this),this.i=new ie(this),(this.M=this).G=null}function l(e,t){var r,n,i=e.G;if(i)for(r=[];i;i=i.G)r.push(i);e=e.M,i=t.type||t,"string"==typeof t?t=new o(t,e):t instanceof o?t.target=t.target||e:(n=t,ne(t=new o(i,e),n)),n=!0;let s,a;if(r)for(a=r.length-1;0<=a;a--)n=ye(s=t.g=r[a],i,!0,t)&&n;if(n=ye(s=t.g=e,i,!0,t)&&n,n=ye(s,i,!1,t)&&n,r)for(a=0;a<r.length;a++)n=ye(s=t.g=r[a],i,!1,t)&&n}function ye(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();let i=!0;for(let u=0;u<t.length;++u){var s,a,o=t[u];o&&!o.da&&o.capture==r&&(s=o.listener,a=o.ha||o.src,o.fa&&se(e.i,o),i=!1!==s.call(a,n)&&i)}return i&&!n.defaultPrevented}function ve(e){e.g=((e,t)=>{if("function"!=typeof e){if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=y(e.handleEvent,e)}return 2147483647<Number(t)?-1:D.setTimeout(e,t||0)})(()=>{e.g=null,e.i&&(e.i=!1,ve(e))},e.l);var t=e.h;e.h=null,e.m.apply(null,t)}t(a,i),a.prototype[u]=!0,a.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=d(i)?!!i.capture:!!i,n=pe(n),t&&t[u]?(t=t.i,(a=String(r).toString())in t.g&&-1<(n=ae(r=t.g[a],n,i,s))&&(Z(r[n]),Array.prototype.splice.call(r,n,1),0==r.length)&&(delete t.g[a],t.h--)):(t=t&&ge(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ae(r,n,i,s):t)?r[t]:null)&&ce(n)}(this,e,t,r,n)},a.prototype.N=function(){if(a.Z.N.call(this),this.i){var t,r=this.i;for(t in r.g){var n=r.g[t];for(let e=0;e<n.length;e++)Z(n[e]);delete r.g[t],r.h--}}this.G=null},a.prototype.J=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},a.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class we extends i{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:ve(this)}N(){super.N(),this.g&&(D.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function h(e){i.call(this),this.h=e,this.g={}}t(h,i);var _e=[];function be(e){ee(e.g,function(e,t){this.g.hasOwnProperty(t)&&ce(e)},e),e.g={}}h.prototype.N=function(){h.Z.N.call(this),be(this)},h.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ie=D.JSON.stringify,Ee=D.JSON.parse,Te=class{stringify(e){return D.JSON.stringify(e,void 0)}parse(e){return D.JSON.parse(e,void 0)}};function Se(){}function xe(){}var Ce={OPEN:"a",hb:"b",ERROR:"c",tb:"d"};function Ae(){o.call(this,"d")}function De(){o.call(this,"c")}t(Ae,o),t(De,o);var c={},Ne=null;function ke(){return Ne=Ne||new a}function Re(e){o.call(this,c.Ia,e)}function Oe(){var e=ke();l(e,new Re(e))}function Me(e,t){o.call(this,c.STAT_EVENT,e),this.stat=t}function k(e){var t=ke();l(t,new Me(t,e))}function Le(e,t){o.call(this,c.Ja,e),this.size=t}function v(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return D.setTimeout(function(){e()},t)}function f(){this.g=!0}function R(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(let e=1;e<i.length;e++)i[e]=""}}}return Ie(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}c.Ia="serverreachability",t(Re,o),c.STAT_EVENT="statevent",t(Me,o),c.Ja="timingevent",t(Le,o),f.prototype.ua=function(){this.g=!1},f.prototype.info=function(){};var Ve={NO_ERROR:0,cb:1,qb:2,pb:3,kb:4,ob:5,rb:6,Ga:7,TIMEOUT:8,ub:9},Fe={ib:"complete",Fb:"success",ERROR:"error",Ga:"abort",xb:"ready",yb:"readystatechange",TIMEOUT:"timeout",sb:"incrementaldata",wb:"progress",lb:"downloadprogress",Nb:"uploadprogress"};function Pe(){}function g(e){return encodeURIComponent(String(e))}function m(e,t,r,n){this.j=e,this.i=t,this.l=r,this.S=n||1,this.V=new h(this),this.H=45e3,this.J=null,this.o=!1,this.u=this.B=this.A=this.M=this.F=this.T=this.D=null,this.G=[],this.g=null,this.C=0,this.m=this.v=null,this.X=-1,this.K=!1,this.P=0,this.O=null,this.W=this.L=this.U=this.R=!1,this.h=new Be}function Be(){this.i=null,this.g="",this.h=!1}t(Pe,Se),Pe.prototype.g=function(){return new XMLHttpRequest};var Ue=new Pe,qe={},je={};function ze(e,t,r){e.M=1,e.A=ot(w(t)),e.u=r,e.R=!0,Ge(e,null)}function Ge(e,t){e.F=Date.now(),$e(e),e.B=w(e.A);var a,o,u,l,h,c,r=e.B,n=e.S,i=(Array.isArray(n)||(n=[String(n)]),_t(r.i,"t",n),e.C=0,r=e.j.L,e.h=new Be,e.g=tr(e.j,r?t:null,!e.u),0<e.P&&(e.O=new we(y(e.Y,e,e.g),e.P)),t=e.V,r=e.g,n=e.ba,"readystatechange");Array.isArray(i)||(i&&(_e[0]=i.toString()),i=_e);for(let d=0;d<i.length;d++){var s=le(r,i[d],n||t.handleEvent,!1,t.h||t);if(!s)break;t.g[s.key]=s}t=e.J?te(e.J):{},e.u?(e.v||(e.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.B,e.v,e.u,t)):(e.v="GET",e.g.ea(e.B,e.v,null,t)),Oe(),a=e.i,o=e.v,u=e.B,l=e.l,h=e.S,c=e.u,a.info(function(){if(a.g)if(c){var t="",r=c.split("&");for(let e=0;e<r.length;e++){var n,i,s=r[e].split("=");1<s.length&&(n=s[0],s=s[1],t=2<=(i=n.split("_")).length&&"type"==i[1]?t+(n+"=")+s+"&":t+(n+"=redacted&"))}}else t=null;else t=c;return"XMLHTTP REQ ("+l+") [attempt "+h+"]: "+o+"\n"+u+"\n"+t})}function Ke(e){return e.g&&"GET"==e.v&&2!=e.M&&e.j.Aa}function $e(e){e.T=Date.now()+e.H,He(e,e.H)}function He(e,t){if(null!=e.D)throw Error("WatchDog timer not null");e.D=v(y(e.aa,e),t)}function Qe(e){e.D&&(D.clearTimeout(e.D),e.D=null)}function O(e){0==e.j.I||e.K||Jt(e.j,e)}function M(e){Qe(e);var t=e.O;t&&"function"==typeof t.dispose&&t.dispose(),e.O=null,be(e.V),e.g&&(t=e.g,e.g=null,t.abort(),t.dispose())}function We(e,t){try{var r=e.j;if(0!=r.I&&(r.g==e||et(r.h,e)))if(!e.L&&et(r.h,e)&&3==r.I){try{var n=r.Ba.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.v){if(r.g){if(!(r.g.F+3e3<e.F))break e;Yt(r),Ut(r)}Ht(r),k(18)}}else r.xa=i[1],0<r.xa-r.K&&i[2]<37500&&r.F&&0==r.A&&!r.C&&(r.C=v(y(r.Va,r),6e3));Ze(r.h)<=1&&r.ta&&(r.ta=void 0)}else x(r,11)}else if(!e.L&&r.g!=e||Yt(r),!N(t))for(i=r.Ba.g.parse(t),t=0;t<i.length;t++){var s,a,o,u,l,h,c,d,f,g,m=i[t],p=m[0];p<=r.K||(r.K=p,m=m[1],2==r.I?"c"==m[0]?(r.M=m[1],r.ba=m[2],null!=(s=m[3])&&(r.ka=s,r.j.info("VER="+r.ka)),null!=(a=m[4])&&(r.za=a,r.j.info("SVER="+r.za)),null!=(o=m[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.O=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(u=e.g)&&(!(l=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(h=n.h).g||-1==l.indexOf("spdy")&&-1==l.indexOf("quic")&&-1==l.indexOf("h2")||(h.j=h.l,h.g=new Set,h.h&&(tt(h,h.h),h.h=null)),n.G)&&(c=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.wa=c,b(n.J,n.G,c)),r.I=3,r.l&&r.l.ra(),r.aa&&(r.T=Date.now()-e.F,r.j.info("Handshake RTT: "+r.T+"ms")),d=e,(n=r).na=er(n,n.L?n.ba:null,n.W),d.L?(rt(n.h,d),f=d,(g=n.O)&&(f.H=g),f.D&&(Qe(f),$e(f)),n.g=d):$t(n),0<r.i.length&&jt(r)):"stop"!=m[0]&&"close"!=m[0]||x(r,7):3==r.I&&("stop"==m[0]||"close"==m[0]?"stop"==m[0]?x(r,7):Bt(r):"noop"!=m[0]&&r.l&&r.l.qa(m),r.A=0))}Oe()}catch(e){}}m.prototype.ba=function(e){e=e.target;var t=this.O;t&&3==L(e)?t.j():this.Y(e)},m.prototype.Y=function(e){try{if(e==this.g)e:{var t=L(this.g),r=this.g.ya();this.g.ca();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.la()||Vt(this.g)))){this.K||4!=t||7==r||Oe(),Qe(this);var n,i,s=this.g.ca(),a=(this.X=s,(e=>{if(!Ke(e))return e.g.la();var t=Vt(e.g);if(""===t)return"";let r="",n=t.length,i=4==L(e.g);if(!e.h.i){if("undefined"==typeof TextDecoder)return M(e),O(e),"";e.h.i=new D.TextDecoder}for(let s=0;s<n;s++)e.h.h=!0,r+=e.h.i.decode(t[s],{stream:!(i&&s==n-1)});return t.length=0,e.h.g+=r,e.C=0,e.h.g})(this));if(this.o=200==s,I=this.i,E=this.v,T=this.B,S=this.l,x=this.S,C=t,A=s,I.info(function(){return"XMLHTTP RESP ("+S+") [ attempt "+x+"]: "+E+"\n"+T+"\n"+C+" "+A}),this.o){if(this.U&&!this.L){t:{if(this.g){var o,u=this.g;if((o=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!N(o)){var l=o;break t}}l=null}if(!(e=l)){this.o=!1,this.m=3,k(12),M(this),O(this);break e}R(this.i,this.l,e,"Initial handshake response via X-HTTP-Initial-Response"),this.L=!0,We(this,e)}if(this.R){for(e=!0;!this.K&&this.C<a.length;){if(w=a,b=_=void 0,_=(v=this).C,(n=-1==(b=w.indexOf("\n",_))?je:(_=Number(w.substring(_,b)),isNaN(_)?qe:(b+=1)+_>w.length?je:(w=w.slice(b,b+_),v.C=b+_,w)))==je){4==t&&(this.m=4,k(14),e=!1),R(this.i,this.l,null,"[Incomplete Response]");break}if(n==qe){this.m=4,k(15),R(this.i,this.l,a,"[Invalid Chunk]"),e=!1;break}R(this.i,this.l,n,null),We(this,n)}Ke(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=a.length||this.h.h||(this.m=1,k(16),e=!1),this.o=this.o&&e,e?0<a.length&&!this.W&&(this.W=!0,(i=this.j).g==this)&&i.aa&&!i.P&&(i.j.info("Great, no buffering proxy detected. Bytes received: "+a.length),Qt(i),i.P=!0,k(11)):(R(this.i,this.l,a,"[Invalid Chunked Response]"),M(this),O(this))}else R(this.i,this.l,a,null),We(this,a);4==t&&M(this),this.o&&!this.K&&(4==t?Jt(this.j,this):(this.o=!1,$e(this)))}else{{var h=this.g;var c,d,f,g={};h=(h.g&&2<=L(h)&&h.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<h.length;e++)N(h[e])||(c=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(h[e]),d=c[0],"string"==typeof(c=c[1])&&(c=c.trim(),f=g[d]||[],(g[d]=f).push(c)));var m,p=g,y=function(e){return e.join(", ")};for(m in p)y.call(void 0,p[m],m,p)}400==s&&0<a.indexOf("Unknown SID")?(this.m=3,k(12)):(this.m=0,k(13)),M(this),O(this)}}}}catch(e){}var v,w,_,b,I,E,T,S,x,C,A},m.prototype.cancel=function(){this.K=!0,M(this)},m.prototype.aa=function(){this.D=null;var e,t,r=Date.now();0<=r-this.T?(e=this.i,t=this.B,e.info(function(){return"TIMEOUT: "+t}),2!=this.M&&(Oe(),k(17)),M(this),this.m=2,O(this)):He(this,this.T-r)};var Ye=class{constructor(e,t){this.g=e,this.map=t}};function Je(e){this.l=e||10,e=D.PerformanceNavigationTiming?0<(e=D.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(D.chrome&&D.chrome.loadTimes&&D.chrome.loadTimes()&&D.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Xe(e){return e.h||e.g&&e.g.size>=e.j}function Ze(e){return e.h?1:e.g?e.g.size:0}function et(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function tt(e,t){e.g?e.g.add(t):e.h=t}function rt(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function nt(t){if(null!=t.h)return t.i.concat(t.h.G);if(null==t.g||0===t.g.size)return z(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.G);return e}}Je.prototype.cancel=function(){if(this.i=nt(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var it=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function p(e){this.g=this.o=this.j="",this.u=null,this.m=this.h="",this.l=!1;let t;e instanceof p?(this.l=e.l,_(this,e.j),this.o=e.o,this.g=e.g,st(this,e.u),this.h=e.h,at(this,bt(e.i)),this.m=e.m):e&&(t=String(e).match(it))?(this.l=!1,_(this,t[1]||"",!0),this.o=ut(t[2]||""),this.g=ut(t[3]||"",!0),st(this,t[4]),this.h=ut(t[5]||"",!0),at(this,t[6]||"",!0),this.m=ut(t[7]||"")):(this.l=!1,this.i=new pt(null,this.l))}function w(e){return new p(e)}function _(e,t,r){e.j=r?ut(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function st(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.u=t}else e.u=null}function at(e,t,r){var n,i;t instanceof pt?(e.i=t,n=e.i,(i=e.l)&&!n.j&&(I(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(yt(this,t),_t(this,r,e))},n)),n.j=i):(r||(t=lt(t,gt)),e.i=new pt(t,e.l))}function b(e,t,r){e.i.set(t,r)}function ot(e){return b(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function ut(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function lt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,ht),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ht(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}p.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(lt(t,ct,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(lt(t,ct,!0),"@"),e.push(g(r).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.u))||e.push(":",String(r)),(r=this.h)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(lt(r,"/"==r.charAt(0)?ft:dt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",lt(r,mt)),e.join("")},p.prototype.resolve=function(e){var t=w(this);let r=!!e.j;r?_(t,e.j):r=!!e.o,r?t.o=e.o:r=!!e.g,r?t.g=e.g:r=null!=e.u;var n=e.h;if(r)st(t,e.u);else if(r=!!e.h)if("/"!=n.charAt(0)&&(this.g&&!this.h?n="/"+n:-1!=(i=t.h.lastIndexOf("/"))&&(n=t.h.slice(0,i+1)+n)),".."==(i=n)||"."==i)n="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){var n=0==i.lastIndexOf("/",0),i=i.split("/"),s=[];for(let e=0;e<i.length;){var a=i[e++];"."==a?n&&e==i.length&&s.push(""):".."==a?((1<s.length||1==s.length&&""!=s[0])&&s.pop(),n&&e==i.length&&s.push("")):(s.push(a),n=!0)}n=s.join("/")}else n=i;return r?t.h=n:r=""!==e.i.toString(),r?at(t,bt(e.i)):r=!!e.m,r&&(t.m=e.m),t};var ct=/[#\/\?@]/g,dt=/[#\?:]/g,ft=/[#\?]/g,gt=/[#\?@]/g,mt=/#/g;function pt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function I(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var n=r.i,i=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(n){n=n.split("&");for(let r=0;r<n.length;r++){var s=n[r].indexOf("=");let e,t=null;0<=s?(e=n[r].substring(0,s),t=n[r].substring(s+1)):e=n[r],i(e,t?decodeURIComponent(t.replace(/\+/g," ")):"")}}}}function yt(e,t){I(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function vt(e,t){return I(e),t=E(e,t),e.g.has(t)}function wt(e,t){I(e);let r=[];if("string"==typeof t)vt(e,t)&&(r=r.concat(e.g.get(E(e,t))));else for(e=Array.from(e.g.values()),t=0;t<e.length;t++)r=r.concat(e[t]);return r}function _t(e,t,r){yt(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),z(r)),e.h+=r.length)}function bt(e){var t=new pt;return t.i=e.i,e.g&&(t.g=new Map(e.g),t.h=e.h),t}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function T(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function It(){this.g=new Te}function Et(e){this.i=e.Sb||null,this.h=e.ab||!1}function Tt(e,t){a.call(this),this.H=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.A=new Headers,this.h=null,this.F="GET",this.D="",this.g=!1,this.B=this.j=this.l=null,this.v=new AbortController}function St(e){e.j.read().then(e.Ma.bind(e)).catch(e.ga.bind(e))}function xt(e){e.readyState=4,e.l=null,e.j=null,e.B=null,Ct(e)}function Ct(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function At(e){let r="";return ee(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Dt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=At(r),"string"==typeof e?null!=r&&g(r):b(e,t,r))}function S(e){a.call(this),this.headers=new Map,this.L=e||null,this.h=!1,this.g=null,this.D="",this.o=0,this.l="",this.j=this.B=this.v=this.A=!1,this.m=null,this.F="",this.H=!1}(e=pt.prototype).add=function(e,t){I(this),this.i=null,e=E(this,e);let r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){I(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.set=function(e,t){return I(this),this.i=null,vt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=wt(this,e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";var r=[],e=Array.from(this.g.keys());for(let s=0;s<e.length;s++){var n=g(i=e[s]),i=wt(this,i);for(let t=0;t<i.length;t++){let e=n;""!==i[t]&&(e+="="+g(i[t])),r.push(e)}}return this.i=r.join("&")},t(Et,Se),Et.prototype.g=function(){return new Tt(this.i,this.h)},t(Tt,a),(e=Tt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.F=e,this.D=t,this.readyState=1,Ct(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");if(this.v.signal.aborted)throw this.abort(),Error("Request was aborted.");this.g=!0;var t={headers:this.A,method:this.F,credentials:this.m,cache:void 0,signal:this.v.signal};e&&(t.body=e),(this.H||D).fetch(new Request(this.D,t)).then(this.Pa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.A=new Headers,this.status=0,this.v.abort(),this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,xt(this)),this.readyState=0},e.Pa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Ct(this)),this.g)&&(this.readyState=3,Ct(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Na.bind(this),this.ga.bind(this));else if(void 0!==D.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.B=new TextDecoder;St(this)}else e.text().then(this.Oa.bind(this),this.ga.bind(this))},e.Ma=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.B.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?xt:Ct)(this),3==this.readyState)&&St(this)},e.Oa=function(e){this.g&&(this.response=this.responseText=e,xt(this))},e.Na=function(e){this.g&&(this.response=e,xt(this))},e.ga=function(){this.g&&xt(this)},e.setRequestHeader=function(e,t){this.A.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Tt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(S,a);var Nt=/^https?$/i,kt=["POST","PUT"];function Rt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.o=5,Ot(e),Lt(e)}function Ot(e){e.A||(e.A=!0,l(e,"complete"),l(e,"error"))}function Mt(t){if(t.h&&void 0!==B)if(t.v&&4==L(t))setTimeout(t.Ca.bind(t),0);else if(l(t,"readystatechange"),4==L(t)){t.h=!1;try{var e,r,n=t.ca();switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var i=!0;break;default:i=!1}if(!(e=i)){if(r=0===n){let e=String(t.D).match(it)[1]||null;!e&&D.self&&D.self.location&&(e=D.self.location.protocol.slice(0,-1)),r=!Nt.test(e?e.toLowerCase():"")}e=r}if(e)l(t,"complete"),l(t,"success");else{t.o=6;try{var s=2<L(t)?t.g.statusText:""}catch(e){s=""}t.l=s+" ["+t.ca()+"]",Ot(t)}}finally{Lt(t)}}}function Lt(e,t){if(e.g){e.m&&(clearTimeout(e.m),e.m=null);var r=e.g;e.g=null,t||l(e,"ready");try{r.onreadystatechange=null}catch(e){}}}function L(e){return e.g?e.g.readyState:0}function Vt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.F){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Ft(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Pt(e){this.za=0,this.i=[],this.j=new f,this.ba=this.na=this.J=this.W=this.g=this.wa=this.G=this.H=this.u=this.U=this.o=null,this.Ya=this.V=0,this.Sa=Ft("failFast",!1,e),this.F=this.C=this.v=this.m=this.l=null,this.X=!0,this.xa=this.K=-1,this.Y=this.A=this.D=0,this.Qa=Ft("baseRetryDelayMs",5e3,e),this.Za=Ft("retryDelaySeedMs",1e4,e),this.Ta=Ft("forwardChannelMaxRetries",2,e),this.va=Ft("forwardChannelRequestTimeoutMs",2e4,e),this.ma=e&&e.xmlHttpFactory||void 0,this.Ua=e&&e.Rb||void 0,this.Aa=e&&e.useFetchStreams||!1,this.O=void 0,this.L=e&&e.supportsCrossDomainXhr||!1,this.M="",this.h=new Je(e&&e.concurrentRequestLimit),this.Ba=new It,this.S=e&&e.fastHandshake||!1,this.R=e&&e.encodeInitMessageHeaders||!1,this.S&&this.R&&(this.R=!1),this.Ra=e&&e.Pb||!1,e&&e.ua&&this.j.ua(),e&&e.forceLongPolling&&(this.X=!1),this.aa=!this.S&&this.X&&e&&e.detectBufferingProxy||!1,this.ia=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ia=e.longPollingTimeout),this.ta=void 0,this.T=0,this.P=!1,this.ja=this.B=null}function Bt(e){if(qt(e),3==e.I){var t=e.V++,r=w(e.J);if(b(r,"SID",e.M),b(r,"RID",t),b(r,"TYPE","terminate"),Gt(e,r),(t=new m(e,e.j,t)).M=2,t.A=ot(w(r)),r=!1,D.navigator&&D.navigator.sendBeacon)try{r=D.navigator.sendBeacon(t.A.toString(),"")}catch(e){}!r&&D.Image&&((new Image).src=t.A,r=!0),r||(t.g=tr(t.j,null),t.g.ea(t.A)),t.F=Date.now(),$e(t)}Zt(e)}function Ut(e){e.g&&(Qt(e),e.g.cancel(),e.g=null)}function qt(e){Ut(e),e.v&&(D.clearTimeout(e.v),e.v=null),Yt(e),e.h.cancel(),e.m&&("number"==typeof e.m&&D.clearTimeout(e.m),e.m=null)}function jt(e){var t;Xe(e.h)||e.m||(e.m=!0,t=e.Ea,r||Q(),n||(r(),n=!0),H.add(t,e),e.D=0)}function zt(e,t){var r=t?t.l:e.V++,n=w(e.J);b(n,"SID",e.M),b(n,"RID",r),b(n,"AID",e.K),Gt(e,n),e.u&&e.o&&Dt(n,e.u,e.o),r=new m(e,e.j,r,e.D+1),null===e.u&&(r.J=e.o),t&&(e.i=t.G.concat(e.i)),t=Kt(e,r,1e3),r.H=Math.round(.5*e.va)+Math.round(.5*e.va*Math.random()),tt(e.h,r),ze(r,n,t)}function Gt(e,r){e.H&&ee(e.H,function(e,t){b(r,t,e)}),e.l&&ee({},function(e,t){b(r,t,e)})}function Kt(e,t,i){i=Math.min(e.i.length,i);var s=e.l?y(e.l.Ka,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,u=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{o="req"+o+"_"||"";try{var l,h,c=u instanceof Map?u:Object.entries(u);for([l,h]of c){let e=h;d(h)&&(e=Ie(h)),a.push(o+l+"="+encodeURIComponent(e))}}catch(e){throw a.push(o+"type="+encodeURIComponent("_badmap")),e}}catch(e){s&&s(u)}}if(e){c=a.join("&");break e}}c=void 0}return e=e.i.splice(0,i),t.G=e,c}function $t(e){var t;e.g||e.v||(e.Y=1,t=e.Da,r||Q(),n||(r(),n=!0),H.add(t,e),e.A=0)}function Ht(e){return!(e.g||e.v||3<=e.A)&&(e.Y++,e.v=v(y(e.Da,e),Xt(e,e.A)),e.A++,1)}function Qt(e){null!=e.B&&(D.clearTimeout(e.B),e.B=null)}function Wt(e){e.g=new m(e,e.j,"rpc",e.Y),null===e.u&&(e.g.J=e.o),e.g.P=0;var t=w(e.na),r=(b(t,"RID","rpc"),b(t,"SID",e.M),b(t,"AID",e.K),b(t,"CI",e.F?"0":"1"),!e.F&&e.ia&&b(t,"TO",e.ia),b(t,"TYPE","xmlhttp"),Gt(e,t),e.u&&e.o&&Dt(t,e.u,e.o),e.O&&(e.g.H=e.O),e.g);e=e.ba,r.M=1,r.A=ot(w(t)),r.u=null,r.R=!0,Ge(r,e)}function Yt(e){null!=e.C&&(D.clearTimeout(e.C),e.C=null)}function Jt(e,t){var r,n,i,s=null;if(e.g==t){Yt(e),Qt(e),e.g=null;var a=2}else{if(!et(e.h,t))return;s=t.G,rt(e.h,t),a=1}if(0!=e.I)if(t.o)(1==a?(s=t.u?t.u.length:0,t=Date.now()-t.F,r=e.D,l(a=ke(),new Le(a,s)),jt):$t)(e);else if(3==(r=t.m)||0==r&&0<t.X||(1!=a||(i=t,Ze((n=e).h)>=n.h.j-(n.m?1:0))||(n.m?(n.i=i.G.concat(n.i),0):1==n.I||2==n.I||n.D>=(n.Sa?0:n.Ta)||(n.m=v(y(n.Ea,n,i),Xt(n,n.D)),n.D++,0)))&&(2!=a||!Ht(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:x(e,5);break;case 4:x(e,10);break;case 3:x(e,6);break;default:x(e,2)}}function Xt(e,t){let r=e.Qa+Math.floor(Math.random()*e.Za);return e.isActive()||(r*=2),r*t}function x(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=y(e.bb,e),n=!(i=e.Ua),i=new p(i||"//www.google.com/images/cleardot.gif"),D.location&&"http"==D.location.protocol||_(i,"https"),ot(i),(n?(t,r)=>{var n=new f;if(D.Image){let e=new Image;e.onload=q(T,n,"TestLoadImage: loaded",!0,r,e),e.onerror=q(T,n,"TestLoadImage: error",!1,r,e),e.onabort=q(T,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=q(T,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new f,n=new AbortController,i=setTimeout(()=>{n.abort(),T(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?T(r,0,!0,t):T(r,0,!1,t)}).catch(()=>{clearTimeout(i),T(r,0,!1,t)})})(i.toString(),r)):k(2),e.I=0,e.l&&e.l.pa(t),Zt(e),qt(e)}function Zt(e){var t;e.I=0,e.ja=[],e.l&&(0==(t=nt(e.h)).length&&0==e.i.length||(G(e.ja,t),G(e.ja,e.i),e.h.i.length=0,z(e.i),e.i.length=0),e.l.oa())}function er(e,t,r){var n,i,s=r instanceof p?w(r):new p(r);return""!=s.g?(t&&(s.g=t+"."+s.g),st(s,s.u)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new p(null),s&&_(i,s),t&&(i.g=t),n&&st(i,n),r&&(i.h=r),s=i),r=e.G,t=e.wa,r&&t&&b(s,r,t),b(s,"VER",e.ka),Gt(e,s),s}function tr(e,t,r){if(t&&!e.L)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Aa&&!e.ma?new S(new Et({ab:r})):new S(e.ma)).Fa(e.L),t}function rr(){}function nr(){}function C(e,t){a.call(this),this.g=new Pt(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.sa&&(e?e["X-WebChannel-Client-Profile"]=t.sa:e={"X-WebChannel-Client-Profile":t.sa}),this.g.U=e,(e=t&&t.Qb)&&!N(e)&&(this.g.u=e),this.A=t&&t.supportsCrossDomainXhr||!1,this.v=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!N(t)&&(this.g.G=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new A(this)}function ir(e){Ae.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function sr(){De.call(this),this.status=1}function A(e){this.g=e}(e=S.prototype).Fa=function(e){this.H=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.o=0,this.A=!1,this.h=!0,this.g=(this.L||Ue).g(),this.g.onreadystatechange=j(y(this.Ca,this));try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Rt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(kt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.F&&(this.g.responseType=this.F),"withCredentials"in this.g&&this.g.withCredentials!==this.H&&(this.g.withCredentials=this.H);try{this.m&&(clearTimeout(this.m),this.m=null),this.v=!0,this.g.send(e),this.v=!1}catch(e){Rt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.o=e||7,l(this,"complete"),l(this,"abort"),Lt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Lt(this,!0)),S.Z.N.call(this)},e.Ca=function(){this.u||(this.B||this.v||this.j?Mt(this):this.Xa())},e.Xa=function(){Mt(this)},e.isActive=function(){return!!this.g},e.ca=function(){try{return 2<L(this)?this.g.status:-1}catch(e){return-1}},e.la=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.La=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Ee(t)},e.ya=function(){return this.o},e.Ha=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Pt.prototype).ka=8,e.I=1,e.connect=function(e,t,r,n){k(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.J=er(this,null,this.W),jt(this)},e.Ea=function(t){if(this.m)if(this.m=null,1==this.I){if(!t){this.V=Math.floor(1e5*Math.random()),t=this.V++;var r=new m(this,this.j,t);let e=this.o;if(this.U&&(e?ne(e=te(e),this.U):e=this.U),null!==this.u||this.R||(r.J=e,e=null),this.S)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=Kt(this,r,n),b(i=w(this.J),"RID",t),b(i,"CVER",22),this.G&&b(i,"X-HTTP-Session-Id",this.G),Gt(this,i),e&&(this.R?n="headers="+g(At(e))+"&"+n:this.u&&Dt(i,this.u,e)),tt(this.h,r),this.Ra&&b(i,"TYPE","init"),this.S?(b(i,"$req",n),b(i,"SID","null"),r.U=!0,ze(r,i,null)):ze(r,i,n),this.I=2}}else 3==this.I&&(t?zt(this,t):0==this.i.length||Xe(this.h)||zt(this))},e.Da=function(){var e;this.v=null,Wt(this),this.aa&&!(this.P||null==this.g||this.T<=0)&&(e=4*this.T,this.j.info("BP detection timer enabled: "+e),this.B=v(y(this.Wa,this),e))},e.Wa=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.P=!0,k(10),Ut(this),Wt(this))},e.Va=function(){null!=this.C&&(this.C=null,Ut(this),Ht(this),k(19))},e.bb=function(e){e?(this.j.info("Successfully pinged google.com"),k(2)):(this.j.info("Failed to ping google.com"),k(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=rr.prototype).ra=function(){},e.qa=function(){},e.pa=function(){},e.oa=function(){},e.isActive=function(){return!0},e.Ka=function(){},nr.prototype.g=function(e,t){return new C(e,t)},t(C,a),C.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.L=!0),this.g.connect(this.l,this.h||void 0)},C.prototype.close=function(){Bt(this.g)},C.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.v&&((t={}).__data__=Ie(e),e=t),r.i.push(new Ye(r.Ya++,e)),3==r.I&&jt(r)},C.prototype.N=function(){this.g.l=null,delete this.j,Bt(this.g),delete this.g,C.Z.N.call(this)},t(ir,Ae),t(sr,De),t(A,rr),A.prototype.ra=function(){l(this.g,"a")},A.prototype.qa=function(e){l(this.g,new ir(e))},A.prototype.pa=function(e){l(this.g,new sr)},A.prototype.oa=function(){l(this.g,"b")},nr.prototype.createWebChannel=nr.prototype.g,C.prototype.send=C.prototype.o,C.prototype.open=C.prototype.m,fr=function(){return new nr},dr=ke,cr=c,hr={jb:0,mb:1,nb:2,Hb:3,Mb:4,Jb:5,Kb:6,Ib:7,Gb:8,Lb:9,PROXY:10,NOPROXY:11,Eb:12,Ab:13,Bb:14,zb:15,Cb:16,Db:17,fb:18,eb:19,gb:20},Ve.NO_ERROR=0,Ve.TIMEOUT=8,Ve.HTTP_ERROR=6,lr=Ve,Fe.COMPLETE="complete",ur=Fe,(xe.EventType=Ce).OPEN="a",Ce.CLOSE="b",Ce.ERROR="c",Ce.MESSAGE="d",a.prototype.listen=a.prototype.J,or=xe,S.prototype.listenOnce=S.prototype.K,S.prototype.getLastError=S.prototype.Ha,S.prototype.getLastErrorCode=S.prototype.ya,S.prototype.getStatus=S.prototype.ca,S.prototype.getResponseJson=S.prototype.La,S.prototype.getResponseText=S.prototype.la,S.prototype.send=S.prototype.ea,S.prototype.setWithCredentials=S.prototype.Fa,ar=S}).apply(void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});class l{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}l.UNAUTHENTICATED=new l(null),l.GOOGLE_CREDENTIALS=new l("google-credentials-uid"),l.FIRST_PARTY=new l("first-party-uid"),l.MOCK_USER=new l("mock-user");let ye="12.8.0-canary.f9aaeca46";let ve=new class{constructor(e){this.name=e,this._logLevel=fe,this._logHandler=me,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?de[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,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}("@firebase/firestore");function we(){return ve.logLevel}function g(e,...t){var r;ve.logLevel<=c.DEBUG&&(r=t.map(be),ve.debug(`Firestore (${ye}): `+e,...r))}function d(e,...t){var r;ve.logLevel<=c.ERROR&&(r=t.map(be),ve.error(`Firestore (${ye}): `+e,...r))}function _e(e,...t){var r;ve.logLevel<=c.WARN&&(r=t.map(be),ve.warn(`Firestore (${ye}): `+e,...r))}function be(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function T(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Ie(e,n,r)}function Ie(e,t,r){let n=`FIRESTORE (${ye}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw d(n),new Error(n)}function y(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Ie(t,i,n)}let b={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class I extends ie{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class m{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class Ee{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class Te{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(l.UNAUTHENTICATED))}shutdown(){}}class Se{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class xe{constructor(e){this.t=e,this.currentUser=l.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new m,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new m,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{g("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(g("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new m))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(g("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken,31837,{l:e}),new Ee(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e,2055,{h:e}),new l(e)}}class Ce{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=l.FIRST_PARTY,this.R=new Map}A(){return this.I?this.I():null}get headers(){this.R.set("X-Goog-AuthUser",this.P);var e=this.A();return e&&this.R.set("Authorization",e),this.T&&this.R.set("X-Goog-Iam-Authorization-Token",this.T),this.R}}class Ae{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Ce(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(l.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class De{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Ne{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,Xd._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){y(void 0===this.o,3512);let n=e=>{null!=e.error&&g("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,g("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{g("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):g("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new De(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new De(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class ke{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function S(e,t){return e<t?-1:t<e?1:0}function Re(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return Le(e)===Le(t)?S(e,t):Le(e)?1:-1}return S(r.length,n.length)}let Oe=55296,Me=57343;function Le(e){var t=e.charCodeAt(0);return t>=Oe&&t<=Me}function Ve(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Fe(e){return e+"\0"}let Pe="__name__";class Be{constructor(e,t,r){void 0===t?t=0:t>e.length&&T(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&T(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===Be.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof Be?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=Be.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return S(t.length,r.length)}static compareSegments(e,t){var r=Be.isNumericId(e),n=Be.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?Be.extractNumericId(e).compare(Be.extractNumericId(t)):Re(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return he.fromString(e.substring(4,e.length-2))}}class E extends Be{construct(e,t,r){return new E(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new I(b.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new E(r)}static emptyPath(){return new E([])}}let Ue=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class h extends Be{construct(e,t,r){return new h(e,t,r)}static isValidIdentifier(e){return Ue.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=h.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Pe}static keyField(){return new h([Pe])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new I(b.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new I(b.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new I(b.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new h(e)}static emptyPath(){return new h([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(E.fromString(e))}static fromName(e){return new x(E.fromString(e).popFirst(5))}static empty(){return new x(E.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===E.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return E.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new E(e.slice()))}}function qe(e,t,r){if(!r)throw new I(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function je(e,t,r,n){if(!0===t&&!0===n)throw new I(b.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function ze(e){if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Ge(e){if(x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function Ke(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function $e(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":T(12329,{type:typeof e})}function p(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new I(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=$e(e);throw new I(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function He(e,t){if(t<=0)throw new I(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function t(e,t){var r={typeString:e};return t&&(r.value=t),r}function Qe(e,t){if(!Ke(e))throw new I(b.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new I(b.INVALID_ARGUMENT,r);return 1}let We=-62135596800;class v{static now(){return v.fromMillis(Date.now())}static fromDate(e){return v.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new v(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<We)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?S(this.nanoseconds,e.nanoseconds):S(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:v._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(Qe(e,v._jsonSchema))return new v(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-We;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}v._jsonSchemaVersion="firestore/timestamp/1.0",v._jsonSchema={type:t("string",v._jsonSchemaVersion),seconds:t("number"),nanoseconds:t("number")};class w{static fromTimestamp(e){return new w(e)}static min(){return new w(new v(0,0))}static max(){return new w(new v(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let Ye=-1;class Je{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Xe(e){return e.fields.find(e=>2===e.kind)}function Ze(e){return e.fields.filter(e=>2!==e.kind)}Je.UNKNOWN_ID=-1;class et{constructor(e,t){this.fieldPath=e,this.kind=t}}class tt{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new tt(0,it.min())}}function rt(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=w.fromTimestamp(1e9===n?new v(r+1,0):new v(r,n));return new it(r,x.empty(),t)}function nt(e){return new it(e.readTime,e.key,Ye)}class it{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new it(w.min(),x.empty(),Ye)}static max(){return new it(w.max(),x.empty(),Ye)}}function st(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:S(e.largestBatchId,t.largestBatchId)}let at="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class ot{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function ut(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==at)throw e;g("LocalStore","Unexpectedly lost primary lease")}class C{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&T(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new C((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof C?t:C.resolve(t)}catch(e){return C.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):C.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):C.reject(t)}static resolve(r){return new C((e,t)=>{e(r)})}static reject(r){return new C((e,t)=>{t(r)})}static waitFor(e){return new C((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=C.resolve(!1);for(let r of e)t=t.next(e=>e?C.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,u){return new C((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;u(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new C((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let lt="SimpleDb";class ht{static open(e,t,r,n){try{return new ht(t,e.transaction(n,r))}catch(e){throw new gt(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new m,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new gt(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=wt(e.target.error);this.S.reject(new gt(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(g(lt,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new pt(t)}}class ct{static delete(e){return g(lt,"Removing database:",e),yt(K().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!ct.F()&&(e=ee(),t=0<(t=ct.M(e))&&t<10,r=0<(r=dt(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===ct.M(ee())&&d("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(g(lt,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new gt(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new I(b.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new I(b.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new gt(s,t))},i.onupgradeneeded=e=>{g(lt,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{g(lt,"Database upgrade to version "+this.version+" complete")})}})),this.K&&(this.db.onversionchange=e=>this.K(e)),this.db}q(t){this.K=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=ht.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),C.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(g(lt,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function dt(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class ft{constructor(e){this.U=e,this.$=!1,this.W=null}get isDone(){return this.$}get G(){return this.W}set cursor(e){this.U=e}done(){this.$=!0}j(e){this.W=e}delete(){return yt(this.U.delete())}}class gt extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function mt(e){return"IndexedDbTransactionError"===e.name}class pt{constructor(e){this.store=e}put(e,t){let r;return yt(r=void 0!==t?(g(lt,"PUT",this.store.name,e,t),this.store.put(t,e)):(g(lt,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return g(lt,"ADD",this.store.name,e,e),yt(this.store.add(e))}get(t){return yt(this.store.get(t)).next(e=>(void 0===e&&(e=null),g(lt,"GET",this.store.name,t,e),e))}delete(e){return g(lt,"DELETE",this.store.name,e),yt(this.store.delete(e))}count(){return g(lt,"COUNT",this.store.name),yt(this.store.count())}H(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new C((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.J(e,(e,t)=>{r.push(t)}).next(()=>r)}}Z(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new C((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}X(e,t){g(lt,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Y=!1,this.cursor(r));return this.J(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.J(n,t)}te(i){let e=this.cursor({});return new C((r,n)=>{e.onerror=e=>{var t=wt(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}J(e,s){let a=[];return new C((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new ft(n),r=s(n.primaryKey,n.value,t);if(r instanceof C){let e=r.catch(e=>(t.done(),C.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>C.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function yt(e){return new C((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=wt(e.target.error);n(t)}})}let vt=!1;function wt(e){let t=ct.M(ee());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new I("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return vt||(vt=!0,setTimeout(()=>{throw e},0)),e}}return e}let _t="IndexBackfiller";class bt{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){g(_t,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();g(_t,"Documents written: "+e)}catch(e){mt(e)?g(_t,"Ignoring IndexedDB error during index backfill: ",e):await ut(e)}await this.re(6e4)})}}class It{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return C.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return g(_t,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(g(_t,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=nt(t);0<st(r,n)&&(n=r)}),new it(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class Et{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let Tt=Et.ce=-1;function St(e){return null==e}function xt(e){return 0===e&&1/e==-1/0}function Ct(e){return"number"==typeof e&&Number.isInteger(e)&&!xt(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let At="";function Dt(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Nt(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case At:r+="";break;default:r+=e}}return r})(e.get(r),t);return Nt(t)}function Nt(e){return e+At+""}function kt(r){let e=r.length;if(y(2<=e,64408,{path:r}),2===e)return y(r.charAt(0)===At&&""===r.charAt(1),56145,{path:r}),E.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(At,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&T(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:T(61167,{path:r})}a=t+2}return new E(n)}let Rt="remoteDocuments",Ot="owner",Mt="owner",Lt="mutationQueues",Vt="mutations",Ft="batchId",Pt="userMutationsIndex",Bt=["userId","batchId"];function Ut(e,t){return[e,Dt(t)]}function qt(e,t,r){return[e,Dt(t),r]}let jt={},zt="documentMutations",Gt="remoteDocumentsV14",Kt=["prefixPath","collectionGroup","readTime","documentId"],$t="documentKeyIndex",Ht=["prefixPath","collectionGroup","documentId"],Qt="collectionGroupIndex",Wt=["collectionGroup","readTime","prefixPath","documentId"],Yt="remoteDocumentGlobal",Jt="remoteDocumentGlobalKey",Xt="targets",Zt="queryTargetsIndex",er=["canonicalId","targetId"],tr="targetDocuments",rr=["targetId","path"],nr="documentTargetsIndex",ir=["path","targetId"],sr="targetGlobalKey",mr="targetGlobal",pr="collectionParents",yr=["collectionId","parent"],vr="clientMetadata",wr="bundles",_r="namedQueries",br="indexConfiguration",Ir="collectionGroupIndex",Er="indexState",Tr=["indexId","uid"],Sr="sequenceNumberIndex",xr=["uid","sequenceNumber"],Cr="indexEntries",Ar=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],Dr="documentKeyIndex",Nr=["indexId","uid","orderedDocumentKey"],kr="documentOverlays",Rr=["userId","collectionPath","documentId"],Or="collectionPathOverlayIndex",Mr=["userId","collectionPath","largestBatchId"],Lr="collectionGroupOverlayIndex",Vr=["userId","collectionGroup","largestBatchId"],Fr="globals",Pr=[Lt,Vt,zt,Rt,Xt,Ot,mr,tr,vr,Yt,pr,wr,_r],Br=[...Pr,kr],Ur=[Lt,Vt,zt,Gt,Xt,Ot,mr,tr,vr,Yt,pr,wr,_r,kr],qr=Ur,jr=[...qr,br,Er,Cr],zr=jr,Gr=[...jr,Fr],Kr=Gr;class $r extends ot{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return ct.O(r.le,t)}function Hr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function Qr(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Wr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Jr.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Jr.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Jr.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new Yr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Yr(this.root,e,this.comparator,!1)}getReverseIterator(){return new Yr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Yr(this.root,e,this.comparator,!0)}}class Yr{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class Jr{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Jr.RED,this.left=null!=n?n:Jr.EMPTY,this.right=null!=i?i:Jr.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new Jr(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return Jr.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return Jr.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,Jr.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,Jr.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw T(43730,{key:this.key,value:this.value});if(this.right.isRed())throw T(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw T(27949);return e+(this.isRed()?0:1)}}Jr.EMPTY=null,Jr.RED=!0,Jr.BLACK=!1,Jr.EMPTY=new class{constructor(){this.size=0}get key(){throw T(57766)}get value(){throw T(16141)}get color(){throw T(16727)}get left(){throw T(29726)}get right(){throw T(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new Jr(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class D{constructor(e){this.comparator=e,this.data=new A(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Xr(this.data.getIterator())}getIteratorFrom(e){return new Xr(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof D))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new D(this.comparator);return t.data=e,t}}class Xr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Zr(e){return e.hasNext()?e.getNext():void 0}class en{constructor(e){(this.fields=e).sort(h.comparator)}static empty(){return new en([])}unionWith(e){let t=new D(h.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new en(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Ve(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class tn extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class N{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new tn("Invalid base64 string: "+e):e}})(e);return new N(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new N(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return S(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}N.EMPTY_BYTE_STRING=new N("");let rn=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function nn(t){if(y(!!t,39018),"string"!=typeof t)return{seconds:k(t.seconds),nanos:k(t.nanos)};{let e=0;var r=rn.exec(t),r=(y(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function k(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function sn(e){return"string"==typeof e?N.fromBase64String(e):N.fromUint8Array(e)}let an="server_timestamp",on="__type__",un="__previous_value__",ln="__local_write_time__";function hn(e){return(e?.mapValue?.fields||{})[on]?.stringValue===an}function cn(e){var t=e.mapValue.fields[un];return hn(t)?cn(t):t}function dn(e){var t=nn(e.mapValue.fields[ln].timestampValue);return new v(t.seconds,t.nanos)}class fn{constructor(e,t,r,n,i,s,a,o,u,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=u,this.isUsingEmulator=l,this.apiKey=h}}let gn="(default)";class mn{constructor(e,t){this.projectId=e,this.database=t||gn}static empty(){return new mn("","")}get isDefaultDatabase(){return this.database===gn}isEqual(e){return e instanceof mn&&e.projectId===this.projectId&&e.database===this.database}}let pn="__type__",yn="__max__",vn={mapValue:{fields:{__type__:{stringValue:yn}}}},wn="__vector__",_n="value",bn={nullValue:"NULL_VALUE"};function In(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?hn(e)?4:Fn(e)?9007199254740991:Ln(e)?10:11:T(28295,{value:e})}function En(t,r){if(t===r)return!0;var n,i,s,a,o,e=In(t);if(e!==In(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return dn(t).isEqual(dn(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=nn(i.timestampValue),o=nn(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,sn(t.bytesValue).isEqual(sn(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,k((n=t).geoPointValue.latitude)===k(s.geoPointValue.latitude)&&k(n.geoPointValue.longitude)===k(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(l=t)&&"integerValue"in n?k(l.integerValue)===k(n.integerValue):"doubleValue"in l&&"doubleValue"in n&&((a=k(l.doubleValue))===(o=k(n.doubleValue))?xt(a)===xt(o):isNaN(a)&&isNaN(o));case 9:return Ve(t.arrayValue.values||[],r.arrayValue.values||[],En);case 10:case 11:var u=t,l=r,h=u.mapValue.fields||{},c=l.mapValue.fields||{};if(Hr(h)!==Hr(c))return!1;for(let e in h)if(h.hasOwnProperty(e)&&(void 0===c[e]||!En(h[e],c[e])))return!1;return!0;default:return T(52216,{left:t})}}function Tn(e,t){return void 0!==(e.values||[]).find(e=>En(e,t))}function Sn(e,n){if(e===n)return 0;var i,s,a,o,u,l,h,c,d=In(e),t=In(n);if(d!==t)return S(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return S(e.booleanValue,n.booleanValue);case 2:return l=n,h=k((u=e).integerValue||u.doubleValue),c=k(l.integerValue||l.doubleValue),h<c?-1:c<h?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return xn(e.timestampValue,n.timestampValue);case 4:return xn(dn(e),dn(n));case 5:return Re(e.stringValue,n.stringValue);case 6:return u=e.bytesValue,l=n.bytesValue,h=sn(u),c=sn(l),h.compareTo(c);case 7:var f=e.referenceValue,g=n.referenceValue,m=f.split("/"),p=g.split("/");for(let t=0;t<m.length&&t<p.length;t++){let e=S(m[t],p[t]);if(0!==e)return e}return S(m.length,p.length);case 8:return f=e.geoPointValue,g=n.geoPointValue,0!==(o=S(k(f.latitude),k(g.latitude)))?o:S(k(f.longitude),k(g.longitude));case 9:return Cn(e.arrayValue,n.arrayValue);case 10:return y=e.mapValue,i=n.mapValue,o=y.fields||{},s=i.fields||{},o=o[_n]?.arrayValue,s=s[_n]?.arrayValue,0!==(a=S(o?.values?.length||0,s?.values?.length||0))?a:Cn(o,s);case 11:var y=e.mapValue,v=n.mapValue;if(y===vn.mapValue&&v===vn.mapValue)return 0;if(y===vn.mapValue)return 1;if(v===vn.mapValue)return-1;var w=y.fields||{},_=Object.keys(w),b=v.fields||{},I=Object.keys(b);_.sort(),I.sort();for(let r=0;r<_.length&&r<I.length;++r){let e=Re(_[r],I[r]);if(0!==e)return e;var E=Sn(w[_[r]],b[I[r]]);if(0!==E)return E}return S(_.length,I.length);default:throw T(23264,{he:d})}}function xn(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?S(e,t):(r=nn(e),n=nn(t),0!==(i=S(r.seconds,n.seconds))?i:S(r.nanos,n.nanos))}function Cn(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Sn(r[i],n[i]);if(e)return e}return S(r.length,n.length)}function An(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=nn(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>sn(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):T(61005,{value:e})}(e)}function Dn(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function Nn(e){return!!e&&"integerValue"in e}function kn(e){return!!e&&"arrayValue"in e}function Rn(e){return e&&"nullValue"in e}function On(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Mn(e){return e&&"mapValue"in e}function Ln(e){return(e?.mapValue?.fields||{})[pn]?.stringValue===wn}function Vn(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return Qr(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Vn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Vn(t.arrayValue.values[e]);return r}return{...t}}function Fn(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===yn}let Pn={mapValue:{fields:{[pn]:{stringValue:wn},[_n]:{arrayValue:{}}}}};function Bn(e,t){var r=Sn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Un(e,t){var r=Sn(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class qn{constructor(e){this.value=e}static empty(){return new qn({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Mn(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Vn(t)}setAll(e){let r=h.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Vn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Mn(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return En(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Mn(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){Qr(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new qn(Vn(this.value))}}class R{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new R(e,0,w.min(),w.min(),w.min(),qn.empty(),0)}static newFoundDocument(e,t,r,n){return new R(e,1,t,w.min(),r,n,0)}static newNoDocument(e,t){return new R(e,2,t,w.min(),w.min(),qn.empty(),0)}static newUnknownDocument(e,t){return new R(e,3,t,w.min(),w.min(),qn.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(w.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=qn.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=qn.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=w.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof R&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new R(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class jn{constructor(e,t){this.position=e,this.inclusive=t}}function zn(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):Sn(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function Gn(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!En(e.position[r],t.position[r]))return!1;return!0}class Kn{constructor(e,t="asc"){this.field=e,this.dir=t}}class $n{}class O extends $n{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new Zn(e,t,r):"array-contains"===t?new ni(e,r):"in"===t?new ii(e,r):"not-in"===t?new si(e,r):"array-contains-any"===t?new ai(e,r):new O(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?ei:ti)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Sn(t,this.value)):null!==t&&In(this.value)===In(t)&&this.matchesComparison(Sn(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return T(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class M extends $n{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new M(e,t)}matches(t){return Hn(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function Hn(e){return"and"===e.op}function Qn(e){return"or"===e.op}function Wn(e){return Yn(e)&&Hn(e)}function Yn(e){for(var t of e.filters)if(t instanceof M)return!1;return!0}function Jn(e,t){var r=e.filters.concat(t);return M.create(r,e.op)}function Xn(e){return e instanceof O?`${(t=e).field.canonicalString()} ${t.op} `+An(t.value):e instanceof M?(t=e).op.toString()+" {"+t.getFilters().map(Xn).join(" ,")+"}":"Filter";var t}class Zn extends O{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class ei extends O{constructor(e,t){super(e,"in",t),this.keys=ri(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class ti extends O{constructor(e,t){super(e,"not-in",t),this.keys=ri(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function ri(e,t){return(t.arrayValue?.values||[]).map(e=>x.fromName(e.referenceValue))}class ni extends O{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return kn(t)&&Tn(t.arrayValue,this.value)}}class ii extends O{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Tn(this.value.arrayValue,t)}}class si extends O{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Tn(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Tn(this.value.arrayValue,t)}}class ai extends O{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!kn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Tn(this.value.arrayValue,e))}}class oi{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function ui(e,t=null,r=[],n=[],i=null,s=null,a=null){return new oi(e,t,r,n,i,s,a)}function li(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof O?e.field.canonicalString()+e.op.toString()+An(e.value):Wn(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),St(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>An(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>An(e)).join(",")),t.Te=e}return t.Te}function hi(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof O?(r=e,(s=t)instanceof O&&r.op===s.op&&r.field.isEqual(s.field)&&En(r.value,s.value)):e instanceof M?(r=e,(i=t)instanceof M&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void T(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!Gn(e.startAt,t.startAt)&&Gn(e.endAt,t.endAt)}function ci(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function di(e,t){return e.filters.filter(e=>e instanceof O&&e.field.isEqual(t))}function fi(e,r,n){let i=bn,s=!0;for(let n of di(e,r)){let e=bn,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?bn:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?Dn(mn.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?Ln(a)?Pn:{mapValue:{}}:T(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=bn}Bn({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];Bn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function gi(e,r,n){let i=vn,s=!0;for(let n of di(e,r)){let e=vn,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?Dn(mn.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Pn:"mapValue"in a?Ln(a)?{mapValue:{}}:vn:T(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=vn}0<Un({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<Un({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class mi{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.Re=null,this.startAt,this.endAt}}function pi(e,t,r,n,i,s,a,o){return new mi(e,t,r,n,i,s,a,o)}function yi(e){return new mi(e)}function vi(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function wi(e){return null!==e.collectionGroup}function _i(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new D(h.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new Kn(e,r))}),t.has(h.keyField().canonicalString())||n.Ie.push(new Kn(h.keyField(),r))}return n.Ie}function bi(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return ui(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new Kn(e.field,t)});var r=e.endAt?new jn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new jn(e.startAt.position,e.startAt.inclusive):null;return ui(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,_i(e))),t.Ee}function Ii(e,t){var r=e.filters.concat([t]);return new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Ei(e,t,r){return new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Ti(e,t){return hi(bi(e),bi(t))&&e.limitType===t.limitType}function Si(e){return li(bi(e))+"|lt:"+e.limitType}function xi(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>Xn(e)).join(", ")}]`),St(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>An(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>An(e)).join(","):t})`})(bi(e))}; limitType=${e.limitType})`}function Ci(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of _i(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=_i(s),i=zn(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=_i(s),i=zn(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function Ai(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function Di(e){return(t,r)=>{let n=!1;for(var i of _i(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Sn(n,i):T(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return T(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Ni{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){Qr(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Wr(this.inner)}size(){return this.innerSize}}let ki=new A(x.comparator);let Ri=new A(x.comparator);function Oi(...e){let t=Ri;for(var r of e)t=t.insert(r.key,r);return t}function Mi(e){let r=Ri;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Li(){return new Ni(e=>e.toString(),(e,t)=>e.isEqual(t))}let Vi=new A(x.comparator),Fi=new D(x.comparator);function L(...e){let t=Fi;for(var r of e)t=t.add(r);return t}let Pi=new D(S);function Bi(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:xt(t)?"-0":t}}function Ui(e){return{integerValue:""+e}}function qi(e,t){return Ct(t)?Ui(t):Bi(e,t)}class ji{constructor(){this._=void 0}}function zi(e,t){return e instanceof Wi?Nn(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Gi extends ji{}class Ki extends ji{constructor(e){super(),this.elements=e}}function $i(e,t){var r=Ji(t);for(let t of e.elements)r.some(e=>En(e,t))||r.push(t);return{arrayValue:{values:r}}}class Hi extends ji{constructor(e){super(),this.elements=e}}function Qi(e,t){let r=Ji(t);for(let t of e.elements)r=r.filter(e=>!En(e,t));return{arrayValue:{values:r}}}class Wi extends ji{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function Yi(e){return k(e.integerValue||e.doubleValue)}function Ji(e){return kn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Xi{constructor(e,t){this.field=e,this.transform=t}}class Zi{constructor(e,t){this.version=e,this.transformResults=t}}class V{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new V}static exists(e){return new V(void 0,e)}static updateTime(e){return new V(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function es(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class ts{}function rs(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new hs(e.key,V.none()):new ss(e.key,e.data,V.none());{var n,i=e.data,s=qn.empty();let t=new D(h.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new as(e.key,s,new en(t.toArray()),V.none())}}function ns(e,t,r,n){return e instanceof ss?(s=t,a=r,o=n,es((i=e).precondition,s)?(u=i.value.clone(),l=ls(i.fieldTransforms,o,s),u.setAll(l),s.convertToFoundDocument(s.version,u).setHasLocalMutations(),null):a):e instanceof as?(i=t,o=r,s=n,es((a=e).precondition,i)?(l=ls(a.fieldTransforms,s,i),(u=i.data).setAll(os(a)),u.setAll(l),i.convertToFoundDocument(i.version,u).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,es(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,u,l}function is(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Ve(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Ki&&t instanceof Ki||e instanceof Hi&&t instanceof Hi?Ve(e.elements,t.elements,En):e instanceof Wi&&t instanceof Wi?En(e.Ae,t.Ae):e instanceof Gi&&t instanceof Gi)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class ss extends ts{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class as extends ts{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function os(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function us(e,t,r){var n,i,s,a=new Map;y(e.length===r.length,32656,{Ve:r.length,de:e.length});for(let h=0;h<r.length;h++){var o=e[h],u=o.transform,l=t.data.field(o.field);a.set(o.field,(n=u,i=l,s=r[h],n instanceof Ki?$i(n,i):n instanceof Hi?Qi(n,i):s))}return a}function ls(e,r,n){var i,s,a,o,u,l,h,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,h=l=u=void 0,s instanceof Gi?(o=o,l=a,h={fields:{[on]:{stringValue:an},[ln]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(l=l&&hn(l)?cn(l):l)&&(h.fields[un]=l),{mapValue:h}):s instanceof Ki?$i(s,a):s instanceof Hi?Qi(s,a):(h=zi(o=s,a),u=Yi(h)+Yi(o.Ae),Nn(h)&&Nn(o.Ae)?Ui(u):Bi(o.serializer,u))))}return c}class hs extends ts{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class cs extends ts{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class ds{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,u,l=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var h=this.mutations[c];h.key.isEqual(e.key)&&(r=h,n=e,i=l[c],u=h=o=a=s=void 0,r instanceof ss?(a=n,o=i,h=(s=r).value.clone(),u=us(s.fieldTransforms,a,o.transformResults),h.setAll(u),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof as?(s=n,a=i,es((o=r).precondition,s)?(u=us(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(os(o)),h.setAll(u),s.convertToFoundDocument(a.version,h).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=ns(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=ns(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Li();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=rs(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(w.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),L())}isEqual(e){return this.batchId===e.batchId&&Ve(this.mutations,e.mutations,(e,t)=>is(e,t))&&Ve(this.baseMutations,e.baseMutations,(e,t)=>is(e,t))}}class fs{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Vi;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new fs(e,t,r,n)}}class gs{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
16
16
  largestBatchId: ${this.largestBatchId},
17
17
  mutation: ${this.mutation.toString()}
18
18
  }`}}class ms{constructor(e,t){this.count=e,this.unchangedNames=t}}function ps(e){switch(e){case b.OK:return T(64938);case b.CANCELLED:case b.UNKNOWN:case b.DEADLINE_EXCEEDED:case b.RESOURCE_EXHAUSTED:case b.INTERNAL:case b.UNAVAILABLE:case b.UNAUTHENTICATED:return!1;case b.INVALID_ARGUMENT:case b.NOT_FOUND:case b.ALREADY_EXISTS:case b.PERMISSION_DENIED:case b.FAILED_PRECONDITION:case b.ABORTED:case b.OUT_OF_RANGE:case b.UNIMPLEMENTED:case b.DATA_LOSS:return!0;default:return T(15467,{code:e})}}function ys(e){if(void 0===e)return d("GRPC error has no .code"),b.UNKNOWN;switch(e){case f.OK:return b.OK;case f.CANCELLED:return b.CANCELLED;case f.UNKNOWN:return b.UNKNOWN;case f.DEADLINE_EXCEEDED:return b.DEADLINE_EXCEEDED;case f.RESOURCE_EXHAUSTED:return b.RESOURCE_EXHAUSTED;case f.INTERNAL:return b.INTERNAL;case f.UNAVAILABLE:return b.UNAVAILABLE;case f.UNAUTHENTICATED:return b.UNAUTHENTICATED;case f.INVALID_ARGUMENT:return b.INVALID_ARGUMENT;case f.NOT_FOUND:return b.NOT_FOUND;case f.ALREADY_EXISTS:return b.ALREADY_EXISTS;case f.PERMISSION_DENIED:return b.PERMISSION_DENIED;case f.FAILED_PRECONDITION:return b.FAILED_PRECONDITION;case f.ABORTED:return b.ABORTED;case f.OUT_OF_RANGE:return b.OUT_OF_RANGE;case f.UNIMPLEMENTED:return b.UNIMPLEMENTED;case f.DATA_LOSS:return b.DATA_LOSS;default:return T(39323,{code:e})}}(e=f=f||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";function vs(){return new TextEncoder}let ws=new he([4294967295,4294967295],0);function _s(e){var t=vs().encode(e),r=new ce;return r.update(t),new Uint8Array(r.digest())}function bs(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new he([r,n],0),new he([i,t],0)]}class Is{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new Es("Invalid padding: "+t);if(r<0)throw new Es("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new Es("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new Es("Invalid padding when bitmap length is 0: "+t);this.ge=8*e.length-t,this.pe=he.fromNumber(this.ge)}ye(e,t,r){let n=e.add(t.multiply(he.fromNumber(r)));return(n=1===n.compare(ws)?new he([n.getBits(0),n.getBits(1)],0):n).modulo(this.pe).toNumber()}we(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.ge)return!1;let t=_s(e),[r,n]=bs(t);for(let i=0;i<this.hashCount;i++){let e=this.ye(r,n,i);if(!this.we(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new Is(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.ge){let e=_s(i),[t,r]=bs(e);for(let n=0;n<this.hashCount;n++){let e=this.ye(t,r,n);this.be(e)}}}be(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class Es extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Ts{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,Ss.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Ts(w.min(),n,new A(S),ki,L())}}class Ss{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new Ss(r,t,L(),L(),L())}}class xs{constructor(e,t,r,n){this.Se=e,this.removedTargetIds=t,this.key=r,this.De=n}}class Cs{constructor(e,t){this.targetId=e,this.Ce=t}}class As{constructor(e,t,r=N.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Ds{constructor(){this.ve=0,this.Fe=Rs(),this.Me=N.EMPTY_BYTE_STRING,this.xe=!1,this.Oe=!0}get current(){return this.xe}get resumeToken(){return this.Me}get Ne(){return 0!==this.ve}get Be(){return this.Oe}Le(e){0<e.approximateByteSize()&&(this.Oe=!0,this.Me=e)}ke(){let r=L(),n=L(),i=L();return this.Fe.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:T(38017,{changeType:t})}}),new Ss(this.Me,this.xe,r,n,i)}Ke(){this.Oe=!1,this.Fe=Rs()}qe(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}Ue(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}$e(){this.ve+=1}We(){--this.ve,y(0<=this.ve,3241,{ve:this.ve})}Qe(){this.Oe=!0,this.xe=!0}}class Ns{constructor(e){this.Ge=e,this.ze=new Map,this.je=ki,this.He=ks(),this.Je=ks(),this.Ze=new A(S)}Xe(e){for(var t of e.Se)e.De&&e.De.isFoundDocument()?this.Ye(t,e.De):this.et(t,e.key,e.De);for(var r of e.removedTargetIds)this.et(r,e.key,e.De)}tt(r){this.forEachTarget(r,e=>{var t=this.nt(e);switch(r.state){case 0:this.rt(e)&&t.Le(r.resumeToken);break;case 1:t.We(),t.Ne||t.Ke(),t.Le(r.resumeToken);break;case 2:t.We(),t.Ne||this.removeTarget(e);break;case 3:this.rt(e)&&(t.Qe(),t.Le(r.resumeToken));break;case 4:this.rt(e)&&(this.it(e),t.Le(r.resumeToken));break;default:T(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.ze.forEach((e,t)=>{this.rt(t)&&r(t)})}st(n){let i=n.targetId,e=n.Ce.count,t=this.ot(i);if(t){var r=t.target;if(ci(r))if(0===e){let e=new x(r.path);this.et(i,e,R.newNoDocument(e,w.min()))}else y(1===e,20013,{expectedCount:e});else{let r=this._t(i);if(r!==e){let e=this.ut(n),t=e?this.ct(e,n,r):1;if(0!==t){this.it(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ze=this.Ze.insert(i,e)}}}}}ut(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=sn(t).toUint8Array()}catch(e){if(e instanceof tn)return _e("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new Is(i,r,n)}catch(e){return _e(e instanceof Es?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.ge?null:s}ct(e,t,r){return t.Ce.count===r-this.Pt(e,t.targetId)?0:2}Pt(r,n){var e=this.Ge.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.Ge.ht(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.et(n,e,null),i++)}),i}Tt(n){let i=new Map,s=(this.ze.forEach((e,t)=>{var r=this.ot(t);if(r){if(e.current&&ci(r.target)){let e=new x(r.target.path);this.It(e).has(t)||this.Et(t,e)||this.et(t,e,R.newNoDocument(e,n))}e.Be&&(i.set(t,e.ke()),e.Ke())}}),L());this.Je.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.je.forEach((e,t)=>t.setReadTime(n));var e=new Ts(n,i,this.Ze,this.je,s);return this.je=ki,this.He=ks(),this.Je=ks(),this.Ze=new A(S),e}Ye(e,t){var r;this.rt(e)&&(r=this.Et(e,t.key)?2:0,this.nt(e).qe(t.key,r),this.je=this.je.insert(t.key,t),this.He=this.He.insert(t.key,this.It(t.key).add(e)),this.Je=this.Je.insert(t.key,this.Rt(t.key).add(e)))}et(e,t,r){var n;this.rt(e)&&(n=this.nt(e),this.Et(e,t)?n.qe(t,1):n.Ue(t),this.Je=this.Je.insert(t,this.Rt(t).delete(e)),this.Je=this.Je.insert(t,this.Rt(t).add(e)),r)&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){var t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}$e(e){this.nt(e).$e()}nt(e){let t=this.ze.get(e);return t||(t=new Ds,this.ze.set(e,t)),t}Rt(e){let t=this.Je.get(e);return t||(t=new D(S),this.Je=this.Je.insert(e,t)),t}It(e){let t=this.He.get(e);return t||(t=new D(S),this.He=this.He.insert(e,t)),t}rt(e){var t=null!==this.ot(e);return t||g("WatchChangeAggregator","Detected inactive target",e),t}ot(e){var t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(t){this.ze.set(t,new Ds),this.Ge.getRemoteKeysForTarget(t).forEach(e=>{this.et(t,e,null)})}Et(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function ks(){return new A(x.comparator)}function Rs(){return new A(x.comparator)}let Os={asc:"ASCENDING",desc:"DESCENDING"},Ms={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Ls={and:"AND",or:"OR"};class Vs{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Fs(e,t){return e.useProto3Json||St(t)?t:{value:t}}function Ps(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function Bs(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function F(e){return y(!!e,49232),w.fromTimestamp((t=nn(e),new v(t.seconds,t.nanos)));var t}function Us(e,t){return qs(e,t).canonicalString()}function qs(e,t){e=e;var r=new E(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function js(e){var t=E.fromString(e);return y(ua(t),10190,{key:t.toString()}),t}function zs(e,t){return Us(e.databaseId,t.path)}function Gs(e,t){var r=js(t);if(r.get(1)!==e.databaseId.projectId)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(Qs(r))}function Ks(e,t){return Us(e.databaseId,t)}function $s(e){var t=js(e);return 4===t.length?E.emptyPath():Qs(t)}function Hs(e){return new E(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Qs(e){return y(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function Ws(e,t,r){return{name:zs(e,t),fields:r.value.mapValue.fields}}function Ys(e,t,r){var n=Gs(e,t.name),i=F(t.updateTime),s=t.createTime?F(t.createTime):w.min(),a=new qn({mapValue:{fields:t.fields}}),n=R.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function Js(e,t){let r;if(t instanceof ss)r={update:Ws(e,t.key,t.value)};else if(t instanceof hs)r={delete:zs(e,t.key)};else if(t instanceof as)r={update:Ws(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof cs))return T(16599,{dt:t.type});r={verify:zs(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Gi)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof Ki)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Hi)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Wi)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw T(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,Ps(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:T(27497))),r;var n}function Xs(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?V.updateTime(F(s.updateTime)):void 0!==s.exists?V.exists(s.exists):V.none():V.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)y("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new Gi;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new Ki(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Hi(e)}else"increment"in r?t=new Wi(e,r.increment):T(16584,{proto:r});var n=h.fromServerFormat(r.fieldPath);return new Xi(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=Gs(i,t.update.name),u=new qn({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new en(a.map(e=>h.fromServerFormat(e)));return new as(o,u,e,r,n)}return new ss(o,u,r,n)}if(t.delete){let e=Gs(i,t.delete);return new hs(e,r)}if(t.verify){let e=Gs(i,t.verify);return new cs(e,r)}return T(1463,{proto:t})}function Zs(e,n){return e&&0<e.length?(y(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?F(t.updateTime):F(r);return e.isEqual(w.min())&&(e=F(r)),new Zi(e,t.transformResults||[])}})):[]}function ea(e,t){return{documents:[Ks(e,t.path)]}}function ta(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=Ks(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof O?(e=>{if("=="===e.op){if(On(e.value))return{unaryFilter:{field:aa(e.field),op:"IS_NAN"}};if(Rn(e.value))return{unaryFilter:{field:aa(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(On(e.value))return{unaryFilter:{field:aa(e.field),op:"IS_NOT_NAN"}};if(Rn(e.value))return{unaryFilter:{field:aa(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:aa(e.field),op:ia(e.op),value:e.value}}})(e):e instanceof M?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:sa(e.op),filters:t}}})(e):T(54877,{filter:e})}(M.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:aa((e=e).field),direction:(e=e.dir,Os[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=Fs(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{ft:r,parent:i}}function ra(e){let t=$s(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){y(1===i,65062);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=oa(i.unaryFilter.field);return O.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=oa(i.unaryFilter.field);return O.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=oa(i.unaryFilter.field);return O.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=oa(i.unaryFilter.field);return O.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return T(61313);default:return T(60726)}})(e):void 0!==e.fieldFilter?(e=>O.create(oa(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return T(58110);default:return T(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>M.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return T(1026)}})(e.compositeFilter.op)))(e):T(30097,{filter:e})}(e))instanceof M&&Wn(i)?i.getFilters():[i])),[]),u=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new Kn(oa(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),l=(n.limit&&(u=(e=n.limit,St(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(l=(e=n.startAt,i=!!e.before,r=e.values||[],new jn(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new jn(i,r))),pi(t,s,o,a,u,"F",l,h)}function na(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return T(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function ia(e){return Ms[e]}function sa(e){return Ls[e]}function aa(e){return{fieldPath:e.canonicalString()}}function oa(e){return h.fromServerFormat(e.fieldPath)}function ua(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}function la(e){return e&&"function"==typeof e._toProto&&"ProtoValue"===e._protoValueType}class ha{constructor(e,t,r,n,i=w.min(),s=w.min(),a=N.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new ha(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new ha(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class ca{constructor(e){this.yt=e}}function da(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:fa(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:zs(e=e.yt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:Ps(e,r.version.toTimestamp()),createTime:Ps(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:ga(t.version)};else{if(!t.isUnknownDocument())return T(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:ga(t.version)}}return i}function fa(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function ga(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function ma(e){var t=new v(e.seconds,e.nanoseconds);return w.fromTimestamp(t)}function pa(t,r){let e=(r.baseMutations||[]).map(e=>Xs(t.yt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>Xs(t.yt,e)),i=v.fromMillis(r.localWriteTimeMs);return new ds(r.batchId,i,e,n)}function ya(e){var t,r=ma(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?ma(e.lastLimboFreeSnapshotVersion):w.min(),i=void 0!==e.query.documents?(t=e.query,y(1===(i=t.documents.length),1966,{count:i}),bi(yi($s(t.documents[0])))):bi(ra(e.query));return new ha(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,N.fromBase64String(e.resumeToken))}function va(e,t){var r=ga(t.snapshotVersion),n=ga(t.lastLimboFreeSnapshotVersion),i=ci(t.target)?ea(e.yt,t.target):ta(e.yt,t.target).ft,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:li(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function wa(e){var t=ra({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Ei(t,t.limit,"L"):t}function _a(e,t){return new gs(t.largestBatchId,Xs(e.yt,t.overlayMutation))}function ba(e,t){var r=t.path.lastSegment();return[e,Dt(t.path.popLast()),r]}function Ia(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:ga(n.readTime),documentKey:Dt(n.documentKey.path),largestBatchId:n.largestBatchId}}class Ea{getBundleMetadata(e,t){return Ta(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:ma(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return Ta(e).put({bundleId:(e=t).id,createTime:ga(F(e.createTime)),version:e.version})}getNamedQuery(e,t){return Sa(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:wa(e.bundledQuery),readTime:ma(e.readTime)}})}saveNamedQuery(e,t){return Sa(e).put({name:(e=t).name,readTime:ga(F(e.readTime)),bundledQuery:e.bundledQuery})}}function Ta(e){return r(e,wr)}function Sa(e){return r(e,_r)}class xa{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){var r=t.uid||"";return new xa(e,r)}getOverlay(e,t){return Ca(e).get(ba(this.userId,t)).next(e=>e?_a(this.serializer,e):null)}getOverlays(e,t){let r=Li();return C.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new gs(i,t);s.push(this.bt(n,r))}),C.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(Dt(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(Ca(r).X(Or,t))}),C.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Li(),i=Dt(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return Ca(e).H(Or,s).next(e=>{for(var t of e){let e=_a(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Li(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return Ca(e).ee({index:Lr,range:n},(e,t,r)=>{var n=_a(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}bt(e,t){return Ca(e).put(((e,t,r)=>{var[,n,i]=ba(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:Js(e.yt,r.mutation)}})(this.serializer,this.userId,t))}}function Ca(e){return r(e,kr)}class Aa{St(e){return r(e,Fr)}getSessionToken(e){return this.St(e).get("sessionToken").next(e=>{var t=e?.value;return t?N.fromUint8Array(t):N.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.St(e).put({name:"sessionToken",value:t.toUint8Array()})}}class Da{constructor(){}Dt(e,t){this.Ct(e,t),t.vt()}Ct(t,r){if("nullValue"in t)this.Ft(r,5);else if("booleanValue"in t)this.Ft(r,10),r.Mt(t.booleanValue?1:0);else if("integerValue"in t)this.Ft(r,15),r.Mt(k(t.integerValue));else if("doubleValue"in t){var e=k(t.doubleValue);isNaN(e)?this.Ft(r,13):(this.Ft(r,15),xt(e)?r.Mt(0):r.Mt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Ft(r,20),"string"==typeof e&&(e=nn(e)),r.xt(""+(e.seconds||"")),r.Mt(e.nanos||0)}else"stringValue"in t?(this.Ot(t.stringValue,r),this.Nt(r)):"bytesValue"in t?(this.Ft(r,30),r.Bt(sn(t.bytesValue)),this.Nt(r)):"referenceValue"in t?this.Lt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Ft(r,45),r.Mt(e.latitude||0),r.Mt(e.longitude||0)):"mapValue"in t?Fn(t)?this.Ft(r,Number.MAX_SAFE_INTEGER):Ln(t)?this.kt(t.mapValue,r):(this.Kt(t.mapValue,r),this.Nt(r)):"arrayValue"in t?(this.qt(t.arrayValue,r),this.Nt(r)):T(19022,{Ut:t})}Ot(e,t){this.Ft(t,25),this.$t(e,t)}$t(e,t){t.xt(e)}Kt(e,t){var r=e.fields||{};this.Ft(t,55);for(let e of Object.keys(r))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){var r=e.fields||{},n=(this.Ft(t,53),_n),i=r[n].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(k(i)),this.Ot(n,t),this.Ct(r[n],t)}qt(e,t){var r=e.values||[];this.Ft(t,50);for(let e of r)this.Ct(e,t)}Lt(e,t){this.Ft(t,37),x.fromName(e).path.forEach(e=>{this.Ft(t,60),this.$t(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}Da.Wt=new Da;function Na(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class ka{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Qt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Ht(r.value),r=t.next();this.Jt()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Gt(e);else if(e<2048)this.Gt(960|e>>>6),this.Gt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Gt(480|e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e);else{let e=t.codePointAt(0);this.Gt(240|e>>>18),this.Gt(128|63&e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e)}}this.zt()}Xt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Ht(e);else if(e<2048)this.Ht(960|e>>>6),this.Ht(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Ht(480|e>>>12),this.Ht(128|63&e>>>6),this.Ht(128|63&e);else{let e=t.codePointAt(0);this.Ht(240|e>>>18),this.Ht(128|63&e>>>12),this.Ht(128|63&e>>>6),this.Ht(128|63&e)}}this.Jt()}Yt(e){var t=this.en(e),r=Na(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}nn(e){var t=this.en(e),r=Na(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}rn(){this.sn(255),this.sn(255)}_n(){this.an(255),this.an(255)}reset(){this.position=0}seed(e){this.tn(e.length),this.buffer.set(e,this.position),this.position+=e.length}un(){return this.buffer.slice(0,this.position)}en(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}Gt(e){var t=255&e;0==t?(this.sn(0),this.sn(255)):255==t?(this.sn(255),this.sn(0)):this.sn(t)}Ht(e){var t=255&e;0==t?(this.an(0),this.an(255)):255==t?(this.an(255),this.an(0)):this.an(e)}zt(){this.sn(0),this.sn(1)}Jt(){this.an(0),this.an(1)}sn(e){this.tn(1),this.buffer[this.position++]=e}an(e){this.tn(1),this.buffer[this.position++]=~e}tn(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class Ra{constructor(e){this.cn=e}Bt(e){this.cn.Qt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.Yt(e)}vt(){this.cn.rn()}}class Oa{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Xt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class Ma{constructor(){this.cn=new ka,this.ascending=new Ra(this.cn),this.descending=new Oa(this.cn)}seed(e){this.cn.seed(e)}ln(e){return 0===e?this.ascending:this.descending}un(){return this.cn.un()}reset(){this.cn.reset()}}class La{constructor(e,t,r,n){this.hn=e,this.Pn=t,this.Tn=r,this.In=n}En(){var e=this.In.length,t=0===e||255===this.In[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.In,0),t!==e?r.set([0],this.In.length):++r[r.length-1],new La(this.hn,this.Pn,this.Tn,r)}Rn(e,t,r){return{indexId:this.hn,uid:e,arrayValue:Pa(this.Tn),directionalValue:Pa(this.In),orderedDocumentKey:Pa(t),documentKey:r.path.toArray()}}An(e,t,r){var n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function Va(e,t){var r=e.hn-t.hn;return 0!=r||0!==(r=Fa(e.Tn,t.Tn))||0!==(r=Fa(e.In,t.In))?r:x.comparator(e.Pn,t.Pn)}function Fa(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}function Pa(r){if(ne()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function Ba(e){if("string"!=typeof e)return e;var t=e,r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}class Ua{constructor(e){this.Vn=new D((e,t)=>h.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.dn=e.orderBy,this.mn=[];for(var t of e.filters){let e=t;e.isInequality()?this.Vn=this.Vn.add(e):this.mn.push(e)}}get fn(){return 1<this.Vn.size}gn(e){if(y(e.collectionGroup===this.collectionId,49279),this.fn)return!1;let t=Xe(e);if(void 0!==t&&!this.pn(t))return!1;var r=Ze(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.pn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.Vn.size){let t=this.Vn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.yn(t,e)||!this.wn(this.dn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.dn.length||!this.wn(this.dn[s++],e))return!1}}return!0}bn(){if(this.fn)return null;let e=new D(h.comparator);var t,r,n=[];for(t of this.mn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new et(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new et(t.field,0))));for(r of this.dn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new et(r.field,"asc"===r.dir?0:1)));return new Je(Je.UNKNOWN_ID,this.collectionId,n,tt.empty())}pn(e){for(var t of this.mn)if(this.yn(t,e))return!0;return!1}yn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}wn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function qa(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(y(e instanceof O||e instanceof M,34018),e instanceof O)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=M.create(r,e.op);return n=Ha(n),Ga(n)?n:(y(n instanceof M,64498),y(Hn(n),40251),y(1<n.filters.length,57927),n.filters.reduce((e,t)=>Ka(e,t)))}(function t(r){if(y(r instanceof O||r instanceof M,20012),r instanceof O){if(r instanceof ii){let e=r.value.arrayValue?.values?.map(e=>O.create(r.field,"==",e))||[];return M.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return M.create(e,r.op)}(e)),y(Ga(t),7391),ja(t)||za(t)?[t]:t.getFilters())}function ja(e){return e instanceof O}function za(e){return e instanceof M&&Wn(e)}function Ga(e){return ja(e)||za(e)||(e=>{if(e instanceof M&&Qn(e)){for(var t of e.getFilters())if(!ja(t)&&!za(t))return!1;return!0}return!1})(e)}function Ka(e,t){var r,n;return y(e instanceof O||e instanceof M,38388),y(t instanceof O||t instanceof M,25473),Ha(e instanceof O?t instanceof O?(r=e,n=t,M.create([r,n],"and")):$a(e,t):t instanceof O?$a(t,e):((e,t)=>{if(y(0<e.filters.length&&0<t.filters.length,48005),Hn(e)&&Hn(t))return Jn(e,t.getFilters());let r=Qn(e)?e:t,n=Qn(e)?t:e,i=r.filters.map(e=>Ka(e,n));return M.create(i,"or")})(e,t))}function $a(t,e){var r;return Hn(e)?Jn(e,t.getFilters()):(r=e.filters.map(e=>Ka(t,e)),M.create(r,"or"))}function Ha(t){if(y(t instanceof O||t instanceof M,11850),t instanceof O)return t;var e=t.getFilters();if(1===e.length)return Ha(e[0]);if(Yn(t))return t;let r=e.map(e=>Ha(e)),n=[];return r.forEach(e=>{e instanceof O?n.push(e):e instanceof M&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:M.create(n,t.op)}class Qa{constructor(){this.Sn=new Wa}addToCollectionParentIndex(e,t){return this.Sn.add(t),C.resolve()}getCollectionParents(e,t){return C.resolve(this.Sn.getEntries(t))}addFieldIndex(e,t){return C.resolve()}deleteFieldIndex(e,t){return C.resolve()}deleteAllFieldIndexes(e){return C.resolve()}createTargetIndexes(e,t){return C.resolve()}getDocumentsMatchingTarget(e,t){return C.resolve(null)}getIndexType(e,t){return C.resolve(0)}getFieldIndexes(e,t){return C.resolve([])}getNextCollectionGroupToUpdate(e){return C.resolve(null)}getMinOffset(e,t){return C.resolve(it.min())}getMinOffsetFromCollectionGroup(e,t){return C.resolve(it.min())}updateCollectionGroup(e,t,r){return C.resolve()}updateIndexEntries(e,t){return C.resolve()}}class Wa{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new D(E.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new D(E.comparator)).toArray()}}let Ya="IndexedDbIndexManager",Ja=new Uint8Array(0);class Xa{constructor(e,t){this.databaseId=t,this.Dn=new Wa,this.Cn=new Ni(e=>li(e),(e,t)=>hi(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.Dn.has(t)?C.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.Dn.add(t)}),n={collectionId:n,parent:Dt(r)},Za(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Fe(r),""],!1,!0);return Za(e).H(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(kt(t.parent))}return n})}addFieldIndex(e,r){let t=to(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=ro(e);return i.next(e=>{t.put(Ia(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=to(e),n=ro(e),i=eo(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=to(e),r=eo(e),n=ro(e);return t.X().next(()=>r.X()).next(()=>n.X())}createTargetIndexes(r,e){return C.forEach(this.vn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new Ua(t).bn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=eo(e),r=!0,n=new Map;return C.forEach(this.vn(c),t=>this.Fn(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let l=L(),h=[];return C.forEach(n,(e,t)=>{g(Ya,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+li(c));var r,n=((t,e)=>{var r=Xe(e);if(void 0!==r)for(let e of di(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of Ze(r))for(let e of di(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of Ze(e)){let e=(0===r.kind?fi:gi)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new jn(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of Ze(e)){let e=(0===r.kind?gi:fi)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new jn(n,i)})(t,e),o=this.Mn(e,t,s),u=this.Mn(e,t,a),i=this.xn(e,t,i),n=this.On(e.indexId,n,o,s.inclusive,u,a.inclusive,i);return C.forEach(n,e=>d.Z(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);l.has(t)||(l=l.add(t),h.push(t))})}))}).next(()=>h)}return C.resolve(null)})}vn(t){let e=this.Cn.get(t);return e||(e=0===t.filters.length?[t]:qa(M.create(t.filters,"and")).map(e=>ui(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Cn.set(t,e)),e}On(i,s,a,o,u,l,h){let e=(null!=s?s.length:1)*Math.max(a.length,u.length),c=e/(null!=s?s.length:1),d=[];for(let f=0;f<e;++f){let t=s?this.Nn(s[f/c]):Ja,e=this.Bn(i,t,a[f%c],o),r=this.Ln(i,t,u[f%c],l),n=h.map(e=>this.Bn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}Bn(e,t,r,n){var i=new La(e,x.empty(),t,r);return n?i:i.En()}Ln(e,t,r,n){var i=new La(e,x.empty(),t,r);return n?i.En():i}Fn(e,t){let n=new Ua(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.gn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.vn(t);return C.forEach(n,t=>this.Fn(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new D(h.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}kn(e,t){var r,n=new Ma;for(r of Ze(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.ln(r.kind);Da.Wt.Dt(e,i)}return n.un()}Nn(e){var t=new Ma;return Da.Wt.Dt(e,t.ln(0)),t.un()}Kn(e,t){var r,n=new Ma;return Da.Wt.Dt(Dn(this.databaseId,t),n.ln(0===(r=Ze(e)).length?0:r[r.length-1].kind)),n.un()}xn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new Ma),0);for(var o of Ze(e)){let t=i[a++];for(let r of s)if(this.qn(n,o.fieldPath)&&kn(t))s=this.Un(s,o,t);else{let e=r.ln(o.kind);Da.Wt.Dt(t,e)}}return this.$n(s)}Mn(e,t,r){return this.xn(e,t,r.position)}$n(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Un(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new Ma;e.seed(t.un()),Da.Wt.Dt(r,e.ln(n.kind)),s.push(e)}return s}qn(e,t){return!!e.filters.find(e=>e instanceof O&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=to(e),n=ro(e);return(t?r.H(Ir,IDBKeyRange.bound(t,t)):r.H()).next(e=>{let s=[];return C.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new tt(e.sequenceNumber,new it(ma(e.readTime),new x(kt(e.documentKey)),e.largestBatchId)):tt.empty(),n=t.fields.map(([e,t])=>new et(h.fromServerFormat(e),t)),new Je(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:S(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=to(e),s=ro(e);return this.Wn(e).next(t=>i.H(Ir,IDBKeyRange.bound(r,r)).next(e=>C.forEach(e,e=>s.put(Ia(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return C.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?C.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),C.forEach(e,r=>this.Qn(i,t,r).next(e=>{var t=this.Gn(n,r);return e.isEqual(t)?C.resolve():this.zn(i,n,r,e,t)}))))})}jn(e,t,r,n){return eo(e).put(n.Rn(this.uid,this.Kn(r,t.key),t.key))}Hn(e,t,r,n){return eo(e).delete(n.An(this.uid,this.Kn(r,t.key),t.key))}Qn(e,r,n){var t=eo(e);let i=new D(Va);return t.ee({index:Dr,range:IDBKeyRange.only([n.indexId,this.uid,Pa(this.Kn(n,r))])},(e,t)=>{i=i.add(new La(n.indexId,r,Ba(t.arrayValue),Ba(t.directionalValue)))}).next(()=>i)}Gn(t,r){let n=new D(Va);var i=this.kn(r,t);if(null!=i){let e=Xe(r);if(null!=e){var s=t.data.field(e.fieldPath);if(kn(s))for(let e of s.arrayValue.values||[])n=n.add(new La(r.indexId,t.key,this.Nn(e),i))}else n=n.add(new La(r.indexId,t.key,Ja,i))}return n}zn(t,r,s,e,a){g(Ya,"Updating index entries for document '%s'",r.key);let o=[];{var u=Va,l=e=>{o.push(this.jn(t,r,s,e))},h=e=>{o.push(this.Hn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=Zr(c),i=Zr(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=u(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(l(i),i=Zr(d)):r?(h(n),n=Zr(c)):(n=Zr(c),i=Zr(d))}}return C.waitFor(o)}Wn(e){let n=1;return ro(e).ee({index:Sr,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>Va(e,t)).filter((e,t,r)=>!t||0!==Va(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=Va(s,r),t=Va(s,n);if(0===e)i[0]=r.En();else if(0<e&&t<0)i.push(s),i.push(s.En());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Jn(i[a],i[a+1]))return[];let e=i[a].An(this.uid,Ja,x.empty()),t=i[a+1].An(this.uid,Ja,x.empty());s.push(IDBKeyRange.bound(e,t))}return s}Jn(e,t){return 0<Va(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(no)}getMinOffset(t,e){return C.mapArray(this.vn(e),e=>this.Fn(t,e).next(e=>e||T(44426))).next(no)}}function Za(e){return r(e,pr)}function eo(e){return r(e,Cr)}function to(e){return r(e,br)}function ro(e){return r(e,Er)}function no(e){y(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;st(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new it(t.readTime,t.documentKey,r)}let io={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class so{static withCacheSize(e){return new so(e,so.DEFAULT_COLLECTION_PERCENTILE,so.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function ao(t,r,n){let e=t.store(Vt),i=t.store(zt),s=[],a=IDBKeyRange.only(n.batchId),o=0;var u=e.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(u.next(()=>{y(1===o,47070,{batchId:n.batchId})}));let l=[];for(let t of n.mutations){let e=qt(r,t.key.path,n.batchId);s.push(i.delete(e)),l.push(t.key)}return C.waitFor(s).next(()=>l)}function oo(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw T(14731);t=e.noDocument}return JSON.stringify(t).length}so.DEFAULT_COLLECTION_PERCENTILE=10,so.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,so.DEFAULT=new so(41943040,so.DEFAULT_COLLECTION_PERCENTILE,so.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),so.DISABLED=new so(-1,0,0);class uo{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Zn={}}static wt(e,t,r,n){y(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new uo(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return ho(e).ee({index:Pt,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,f,g){let m=co(c),p=ho(c);return p.add({}).next(t=>{y("number"==typeof t,49019);let e=new ds(t,d,f,g),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>Js(i.yt,e)),u=a.mutations.map(e=>Js(i.yt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:u}),n=[];var i,s,a,o,u;let l=new D((e,t)=>S(e.canonicalString(),t.canonicalString()));for(let h of g){let e=qt(this.userId,h.key.path,t);l=l.add(h.key.path.popLast()),n.push(p.put(r)),n.push(m.put(e,jt))}return l.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Zn[t]=e.keys()}),C.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return ho(e).get(t).next(e=>e?(y(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),pa(this.serializer,e)):null)}Xn(e,r){return this.Zn[r]?C.resolve(this.Zn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Zn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return ho(e).ee({index:Pt,range:r},(e,t,r)=>{t.userId===this.userId&&(y(t.batchId>=n,47524,{Yn:n}),i=pa(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=Tt;return ho(e).ee({index:Pt,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,Tt],[this.userId,Number.POSITIVE_INFINITY]);return ho(e).H(Pt,t).next(e=>e.map(e=>pa(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,u){let e=Ut(this.userId,u.path),t=IDBKeyRange.lowerBound(e),l=[];return co(o).ee({range:t},(t,e,r)=>{let[n,i,s]=t,a=kt(i);if(n===this.userId&&u.path.isEqual(a))return ho(o).get(s).next(e=>{if(!e)throw T(61480,{er:t,batchId:s});y(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),l.push(pa(this.serializer,e))});r.done()}).next(()=>l)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new D(S),r=[];return e.forEach(a=>{var e=Ut(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=co(t).ee({range:e},(e,t,r)=>{var[n,i,s]=e,i=kt(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),C.waitFor(r).next(()=>this.tr(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=Ut(this.userId,a),n=IDBKeyRange.lowerBound(r),u=new D(S);return co(e).ee({range:n},(e,t,r)=>{var[n,i,s]=e,i=kt(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(u=u.add(s)):r.done()}).next(()=>this.tr(e,u))}tr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(ho(e).get(t).next(e=>{if(null===e)throw T(35274,{batchId:t});y(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(pa(this.serializer,e))}))}),C.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return ao(t.le,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.nr(r.batchId)}),C.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}nr(e){delete this.Zn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return C.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return co(r).ee({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=kt(t[1]);n.push(e)}else r.done()}).next(()=>{y(0===n.length,56720,{rr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return lo(e,this.userId,t)}ir(e){return fo(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:Tt,lastStreamToken:""})}}function lo(e,s,t){let r=Ut(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return co(e).ee({range:n,Y:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function ho(e){return r(e,Vt)}function co(e){return r(e,zt)}function fo(e){return r(e,Lt)}class go{constructor(e){this.sr=e}next(){return this.sr+=2,this.sr}static _r(){return new go(0)}static ar(){return new go(-1)}}class mo{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.ur(r).next(e=>{var t=new go(e.highestTargetId);return e.highestTargetId=t.next(),this.cr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.ur(e).next(e=>w.fromTimestamp(new v(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.ur(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.ur(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.cr(t,e)))}addTargetData(t,r){return this.lr(t,r).next(()=>this.ur(t).next(e=>(e.targetCount+=1,this.hr(r,e),this.cr(t,e))))}updateTargetData(e,t){return this.lr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>po(t).delete(e.targetId)).next(()=>this.ur(t)).next(e=>(y(0<e.targetCount,8065),--e.targetCount,this.cr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return po(n).ee((e,t)=>{var r=ya(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>C.waitFor(o)).next(()=>a)}forEachTarget(e,n){return po(e).ee((e,t)=>{var r=ya(t);n(r)})}ur(e){return yo(e).get(sr).next(e=>(y(null!==e,2888),e))}cr(e,t){return yo(e).put(sr,t)}lr(e,t){return po(e).put(va(this.serializer,t))}hr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.ur(e).next(e=>e.targetCount)}getTargetData(e,i){var t=li(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return po(e).ee({range:t,index:Zt},(e,t,r)=>{var n=ya(t);hi(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=vo(r);return e.forEach(e=>{var t=Dt(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),C.waitFor(i)}removeMatchingKeys(r,e,n){let i=vo(r);return C.forEach(e,e=>{var t=Dt(e.path);return C.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=vo(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=vo(e);let i=L();return n.ee({range:r,Y:!0},(e,t,r)=>{var n=kt(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=Dt(t.path),r=IDBKeyRange.bound([r],[Fe(r)],!1,!0);let n=0;return vo(e).ee({index:nr,Y:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}At(e,t){return po(e).get(t).next(e=>e?ya(e):null)}}function po(e){return r(e,Xt)}function yo(e){return r(e,mr)}function vo(e){return r(e,tr)}let wo="LruGarbageCollector";function _o([e,t],[r,n]){var i=S(e,r);return 0===i?S(t,n):i}class bo{constructor(e){this.Pr=e,this.buffer=new D(_o),this.Tr=0}Ir(){return++this.Tr}Er(e){var t=[e,this.Ir()];if(this.buffer.size<this.Pr)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();_o(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class Io{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Ar(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Ar(e){g(wo,`Garbage collection scheduled in ${e}ms`),this.Rr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){mt(e)?g(wo,"Ignoring IndexedDB error during garbage collection: ",e):await ut(e)}await this.Ar(3e5)})}}class Eo{constructor(e,t){this.Vr=e,this.params=t}calculateTargetCount(e,t){return this.Vr.dr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return C.resolve(Et.ce);let r=new bo(t);return this.Vr.forEachTarget(e,e=>r.Er(e.sequenceNumber)).next(()=>this.Vr.mr(e,e=>r.Er(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.Vr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.Vr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(g("LruGarbageCollector","Garbage collection skipped; disabled"),C.resolve(io)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(g("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),io):this.gr(t,r))}getCacheSize(e){return this.Vr.getCacheSize(e)}gr(t,r){let n,i,s,a,o,u,l,h=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(g("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,u=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(l=Date.now(),we()<=c.DEBUG&&g("LruGarbageCollector",`LRU Garbage Collection
19
19
  Counted targets in ${a-h}ms
20
20
  Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(u-o)+"ms\n"+` Removed ${e} documents in `+(l-u)+"ms\n"+`Total Duration: ${l-h}ms`),C.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function To(e,t){return new Eo(e,t)}class So{constructor(e,t){this.db=e,this.garbageCollector=To(this,t)}dr(e){let r=this.pr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}mr(e,r){return this.yr(e,(e,t)=>r(t))}addReference(e,t,r){return xo(e,r)}removeReference(e,t,r){return xo(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return xo(e,t)}wr(e,r){{var n=e,i=r;let t=!1;return fo(n).te(e=>lo(n,e,i).next(e=>(e&&(t=!0),C.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this.yr(r,(t,e)=>{if(e<=n){let e=this.wr(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,w.min()),vo(r).delete([0,Dt(t.path)])))});s.push(e)}}).next(()=>C.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return xo(e,t)}yr(e,n){var t=vo(e);let i,s=Et.ce;return t.ee({index:nr},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==Et.ce&&n(new x(kt(i)),s),s=r,i=t):s=Et.ce}).next(()=>{s!==Et.ce&&n(new x(kt(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function xo(e,t){return vo(e).put((e=e.currentSequenceNumber,{targetId:0,path:Dt(t.path),sequenceNumber:e}))}class Co{constructor(){this.changes=new Ni(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,R.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?C.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class Ao{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return Ro(e).put(r)}removeEntry(e,t,r){return Ro(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],fa(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.br(t,e)))}getEntry(e,r){let n=R.newInvalidDocument(r);return Ro(e).ee({index:$t,range:IDBKeyRange.only(Oo(r))},(e,t)=>{n=this.Sr(r,t)}).next(()=>n)}Dr(e,r){let n={size:0,document:R.newInvalidDocument(r)};return Ro(e).ee({index:$t,range:IDBKeyRange.only(Oo(r))},(e,t)=>{n={document:this.Sr(r,t),size:oo(t)}}).next(()=>n)}getEntries(e,t){let n=ki;return this.Cr(e,t,(e,t)=>{var r=this.Sr(e,t);n=n.insert(e,r)}).next(()=>n)}vr(e,t){let n=ki,i=new A(x.comparator);return this.Cr(e,t,(e,t)=>{var r=this.Sr(e,t);n=n.insert(e,r),i=i.insert(e,oo(t))}).next(()=>({documents:n,Fr:i}))}Cr(e,t,i){if(t.isEmpty())return C.resolve();let r=new D(Lo),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(Oo(r.first()),Oo(r.last()))),s=r.getIterator(),a=s.getNext();return Ro(e).ee({index:$t,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&Lo(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.j(Oo(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),fa(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return Ro(e).H(IDBKeyRange.bound(a,r,!0)).next(e=>{s?.incrementDocumentReadCount(e.length);let t=ki;for(let r of e){let e=this.Sr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(Ci(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=ki;var n=Mo(t,r),a=Mo(t,it.max());return Ro(e).ee({index:Qt,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.Sr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new No(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return ko(e).get(Jt).next(e=>(y(!!e,20021),e))}br(e,t){return ko(e).put(Jt,t)}Sr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=Ys(e.yt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=ma(r.noDocument.readTime);n=R.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return T(56709);{let e=x.fromSegments(r.unknownDocument.path),t=ma(r.unknownDocument.version);n=R.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new v(e[0],e[1]),w.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(w.min()))return e}return R.newInvalidDocument(e)}}function Do(e){return new Ao(e)}class No extends Co{constructor(e,t){super(),this.Mr=e,this.trackRemovals=t,this.Or=new Ni(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,u=new D((e,t)=>S(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Or.get(t);if(a.push(this.Mr.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=da(this.Mr.serializer,r),i=(u=u.add(t.path.popLast()),oo(n));o+=i-e.size,a.push(this.Mr.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=da(this.Mr.serializer,r.convertToNoDocument(w.min()));a.push(this.Mr.addEntry(s,t,e))}}),u.forEach(e=>{a.push(this.Mr.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Mr.updateMetadata(s,o)),C.waitFor(a)}getFromCache(e,t){return this.Mr.Dr(e,t).next(e=>(this.Or.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Mr.vr(e,t).next(({documents:r,Fr:e})=>(e.forEach((e,t)=>{this.Or.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function ko(e){return r(e,Yt)}function Ro(e){return r(e,Gt)}function Oo(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function Mo(e,t){var r=t.documentKey.path.toArray();return[e,fa(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function Lo(e,t){var r=e.path.toArray(),n=t.path.toArray();let i=0;for(let s=0;s<r.length-2&&s<n.length-2;++s)if(i=S(r[s],n[s]))return i;return(i=S(r.length,n.length))||(i=S(r[r.length-2],n[n.length-2]))||S(r[r.length-1],n[n.length-1])}class Vo{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class Fo{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(t,r){let n=null;return this.documentOverlayCache.getOverlay(t,r).next(e=>(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&ns(n.mutation,e,en.empty(),v.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,L()).next(()=>e))}getLocalViewOfDocuments(e,t,r=L()){let n=Li();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=Oi();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=Li();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,L()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=ki,a=Li(),r=Li();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof as)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),ns(r.mutation,t,r.mutation.getFieldMask(),v.now())):a.set(t.key,en.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>r.set(e,new Vo(t,a.get(e)??null))),r))}recalculateAndSaveOverlays(a,o){let u=Li(),l=new A((e,t)=>e-t),h=L();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=u.get(e)||en.empty(),t=n.applyToLocalView(r,t),u.set(e,t),r=(l.get(n.batchId)||L()).add(e),l=l.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=l.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=Li();r.forEach(e=>{var t;h.has(e)||(null!==(t=rs(o.get(e),u.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return C.waitFor(i)}).next(()=>u)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):wi(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0<o-r.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-r.size):C.resolve(Li());let n=Ye,i=r;return e.next(e=>C.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?C.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,L())).next(e=>({batchId:n,changes:Mi(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=Oi();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,u=Oi();return this.indexManager.getCollectionParents(n,o).next(e=>C.forEach(e,e=>{t=i,e=e.child(o);var t,r=new mi(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{u=u.insert(e,t)})})}).next(()=>u))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,R.newInvalidDocument(r)))});let i=Oi();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&ns(r.mutation,t,en.empty(),v.now()),Ci(s,t)&&(i=i.insert(e,t))}),i})}}class Po{constructor(e){this.serializer=e,this.Nr=new Map,this.Br=new Map}getBundleMetadata(e,t){return C.resolve(this.Nr.get(t))}saveBundleMetadata(e,t){return this.Nr.set(t.id,{id:t.id,version:t.version,createTime:F(t.createTime)}),C.resolve()}getNamedQuery(e,t){return C.resolve(this.Br.get(t))}saveNamedQuery(e,t){return this.Br.set(t.name,{name:(t=t).name,query:wa(t.bundledQuery),readTime:F(t.readTime)}),C.resolve()}}class Bo{constructor(){this.overlays=new A(x.comparator),this.Lr=new Map}getOverlay(e,t){return C.resolve(this.overlays.get(t))}getOverlays(e,t){let r=Li();return C.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.bt(r,n,t)}),C.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Lr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Lr.delete(r)),C.resolve()}getOverlaysForCollection(e,r,n){let i=Li(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return C.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new A((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Li(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=Li(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return C.resolve(a)}bt(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Lr.get(n.largestBatchId).delete(r.key);this.Lr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new gs(t,r));let i=this.Lr.get(t);void 0===i&&(i=L(),this.Lr.set(t,i)),this.Lr.set(t,i.add(r.key))}}class Uo{constructor(){this.sessionToken=N.EMPTY_BYTE_STRING}getSessionToken(e){return C.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,C.resolve()}}class qo{constructor(){this.kr=new D(o.Kr),this.qr=new D(o.Ur)}isEmpty(){return this.kr.isEmpty()}addReference(e,t){var r=new o(e,t);this.kr=this.kr.add(r),this.qr=this.qr.add(r)}$r(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Wr(new o(e,t))}Qr(e,t){e.forEach(e=>this.removeReference(e,t))}Gr(e){let t=new x(new E([])),r=new o(t,e),n=new o(t,e+1),i=[];return this.qr.forEachInRange([r,n],e=>{this.Wr(e),i.push(e.key)}),i}zr(){this.kr.forEach(e=>this.Wr(e))}Wr(e){this.kr=this.kr.delete(e),this.qr=this.qr.delete(e)}jr(e){var t=new x(new E([])),r=new o(t,e),t=new o(t,e+1);let n=L();return this.qr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new o(e,0),t=this.kr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class o{constructor(e,t){this.key=e,this.Hr=t}static Kr(e,t){return x.comparator(e.key,t.key)||S(e.Hr,t.Hr)}static Ur(e,t){return S(e.Hr,t.Hr)||x.comparator(e.key,t.key)}}class jo{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Yn=1,this.Jr=new D(o.Kr)}checkEmpty(e){return C.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.Yn,s=(this.Yn++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new ds(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Jr=this.Jr.add(new o(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return C.resolve(s)}lookupMutationBatch(e,t){return C.resolve(this.Zr(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.Xr(t+1),r=r<0?0:r;return C.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return C.resolve(0===this.mutationQueue.length?Tt:this.Yn-1)}getAllMutationBatches(e){return C.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new o(t,0),n=new o(t,Number.POSITIVE_INFINITY),i=[];return this.Jr.forEachInRange([r,n],e=>{var t=this.Zr(e.Hr);i.push(t)}),C.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new D(S);return t.forEach(e=>{var t=new o(e,0),r=new o(e,Number.POSITIVE_INFINITY);this.Jr.forEachInRange([t,r],e=>{n=n.add(e.Hr)})}),C.resolve(this.Yr(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new o(new x(i),0);let a=new D(S);return this.Jr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Hr)),!0)},s),C.resolve(this.Yr(a))}Yr(e){let r=[];return e.forEach(e=>{var t=this.Zr(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){y(0===this.ei(n.batchId,"removed"),55003),this.mutationQueue.shift();let i=this.Jr;return C.forEach(n.mutations,e=>{var t=new o(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Jr=i})}nr(e){}containsKey(e,t){var r=new o(t,0),r=this.Jr.firstAfterOrEqual(r);return C.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,C.resolve()}ei(e,t){return this.Xr(e)}Xr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Zr(e){var t=this.Xr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class zo{constructor(e){this.ti=e,this.docs=new A(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.ti(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return C.resolve(r?r.document.mutableCopy():R.newInvalidDocument(t))}getEntries(e,t){let r=ki;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():R.newInvalidDocument(e))}),C.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=ki,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||st(nt(t),n)<=0||(i.has(t.key)||Ci(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return C.resolve(s)}getAllFromCollectionGroup(e,t,r,n){T(9500)}ni(e,t){return C.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new Go(this)}getSize(e){return C.resolve(this.size)}}class Go extends Co{constructor(e){super(),this.Mr=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Mr.addEntry(r,t)):this.Mr.removeEntry(e)}),C.waitFor(n)}getFromCache(e,t){return this.Mr.getEntry(e,t)}getAllFromCache(e,t){return this.Mr.getEntries(e,t)}}class Ko{constructor(e){this.persistence=e,this.ri=new Ni(e=>li(e),hi),this.lastRemoteSnapshotVersion=w.min(),this.highestTargetId=0,this.ii=0,this.si=new qo,this.targetCount=0,this.oi=go._r()}forEachTarget(e,r){return this.ri.forEach((e,t)=>r(t)),C.resolve()}getLastRemoteSnapshotVersion(e){return C.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return C.resolve(this.ii)}allocateTargetId(e){return this.highestTargetId=this.oi.next(),C.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.ii&&(this.ii=t),C.resolve()}lr(e){this.ri.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.oi=new go(t),this.highestTargetId=t),e.sequenceNumber>this.ii&&(this.ii=e.sequenceNumber)}addTargetData(e,t){return this.lr(t),this.targetCount+=1,C.resolve()}updateTargetData(e,t){return this.lr(t),C.resolve()}removeTargetData(e,t){return this.ri.delete(t.target),this.si.Gr(t.targetId),--this.targetCount,C.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.ri.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.ri.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),C.waitFor(a).next(()=>s)}getTargetCount(e){return C.resolve(this.targetCount)}getTargetData(e,t){var r=this.ri.get(t)||null;return C.resolve(r)}addMatchingKeys(e,t,r){return this.si.$r(t,r),C.resolve()}removeMatchingKeys(t,e,r){this.si.Qr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),C.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.si.Gr(t),C.resolve()}getMatchingKeysForTargetId(e,t){var r=this.si.jr(t);return C.resolve(r)}containsKey(e,t){return C.resolve(this.si.containsKey(t))}}class $o{constructor(e,t){this._i={},this.overlays={},this.ai=new Et(0),this.ui=!1,this.ui=!0,this.ci=new Uo,this.referenceDelegate=e(this),this.li=new Ko(this),this.indexManager=new Qa,this.remoteDocumentCache=(e=e=>this.referenceDelegate.hi(e),new zo(e)),this.serializer=new ca(t),this.Pi=new Po(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.ui=!1,Promise.resolve()}get started(){return this.ui}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new Bo,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this._i[e.toKey()];return r||(r=new jo(t,this.referenceDelegate),this._i[e.toKey()]=r),r}getGlobalsCache(){return this.ci}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Pi}runTransaction(e,t,r){g("MemoryPersistence","Starting transaction:",e);let n=new Ho(this.ai.next());return this.referenceDelegate.Ti(),r(n).next(e=>this.referenceDelegate.Ii(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}Ei(t,r){return C.or(Object.values(this._i).map(e=>()=>e.containsKey(t,r)))}}class Ho extends ot{constructor(e){super(),this.currentSequenceNumber=e}}class Qo{constructor(e){this.persistence=e,this.Ri=new qo,this.Ai=null}static Vi(e){return new Qo(e)}get di(){if(this.Ai)return this.Ai;throw T(60996)}addReference(e,t,r){return this.Ri.addReference(r,t),this.di.delete(r.toString()),C.resolve()}removeReference(e,t,r){return this.Ri.removeReference(r,t),this.di.add(r.toString()),C.resolve()}markPotentiallyOrphaned(e,t){return this.di.add(t.toString()),C.resolve()}removeTarget(e,t){this.Ri.Gr(t.targetId).forEach(e=>this.di.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.di.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Ti(){this.Ai=new Set}Ii(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return C.forEach(this.di,e=>{let t=x.fromPath(e);return this.mi(r,t).next(e=>{e||n.removeEntry(t,w.min())})}).next(()=>(this.Ai=null,n.apply(r)))}updateLimboDocument(e,t){return this.mi(e,t).next(e=>{e?this.di.delete(t.toString()):this.di.add(t.toString())})}hi(e){return 0}mi(e,t){return C.or([()=>C.resolve(this.Ri.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Ei(e,t)])}}class Wo{constructor(e,t){this.persistence=e,this.fi=new Ni(e=>Dt(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=To(this,t)}static Vi(e,t){return new Wo(e,t)}Ti(){}Ii(e){return C.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}dr(e){let r=this.pr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}pr(e){let t=0;return this.mr(e,e=>{t++}).next(()=>t)}mr(r,n){return C.forEach(this.fi,(e,t)=>this.wr(r,e,t).next(e=>e?C.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.ni(e,t=>this.wr(e,t,r).next(e=>{e||(n++,i.removeEntry(t,w.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.fi.set(t,e.currentSequenceNumber),C.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),C.resolve()}removeReference(e,t,r){return this.fi.set(r,e.currentSequenceNumber),C.resolve()}updateLimboDocument(e,t){return this.fi.set(t,e.currentSequenceNumber),C.resolve()}hi(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(In(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=cn(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return sn(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return Qr(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw T(13486,{value:e})}}(e.data.value)),t}wr(e,t,r){return C.or([()=>this.persistence.Ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.fi.get(t);return C.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class Yo{constructor(e){this.serializer=e}k(t,e,r,n){let s=new ht("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(Ot),(i=t).createObjectStore(Lt,{keyPath:"userId"}),i.createObjectStore(Vt,{keyPath:Ft,autoIncrement:!0}).createIndex(Pt,Bt,{unique:!0}),i.createObjectStore(zt),Jo(t),t.createObjectStore(Rt));let a=C.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(tr),i.deleteObjectStore(Xt),i.deleteObjectStore(mr),Jo(t)),a=a.next(()=>{return e=s,t=e.store(mr),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:w.min().toTimestamp(),targetCount:0},t.put(sr,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(Vt).H().next(e=>{n.deleteObjectStore(Vt),n.createObjectStore(Vt,{keyPath:Ft,autoIncrement:!0}).createIndex(Pt,Bt,{unique:!0});let t=i.store(Vt),r=e.map(e=>t.put(e));return C.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore(vr,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this.gi(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(Yt),this.pi(s)))),r<7&&7<=n&&(a=a.next(()=>this.yi(s))),r<8&&8<=n&&(a=a.next(()=>this.wi(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.bi(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(wr,{keyPath:"bundleId"}),t.createObjectStore(_r,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(kr,{keyPath:Rr})).createIndex(Or,Mr,{unique:!1}),e.createIndex(Lr,Vr,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Gt,{keyPath:Kt})).createIndex($t,Ht),e.createIndex(Qt,Wt)}).next(()=>this.Si(t,s)).next(()=>t.deleteObjectStore(Rt))),r<14&&14<=n&&(a=a.next(()=>this.Di(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(br,{keyPath:"indexId",autoIncrement:!0}).createIndex(Ir,"collectionGroup",{unique:!1}),e.createObjectStore(Er,{keyPath:Tr}).createIndex(Sr,xr,{unique:!1}),e.createObjectStore(Cr,{keyPath:Ar}).createIndex(Dr,Nr,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(Er).clear()}).next(()=>{e.objectStore(Cr).clear()})),r<17&&17<=n&&(a=a.next(()=>{t.createObjectStore(Fr,{keyPath:"name"})})),a=r<18&&18<=n&&ne()?a.next(()=>{e.objectStore(Er).clear()}).next(()=>{e.objectStore(Cr).clear()}):a}pi(t){let r=0;return t.store(Rt).ee((e,t)=>{r+=oo(t)}).next(()=>{var e={byteSize:r};return t.store(Yt).put(Jt,e)})}gi(n){let e=n.store(Lt),t=n.store(Vt);return e.H().next(e=>C.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,Tt],[r.userId,r.lastAcknowledgedBatchId]);return t.H(Pt,e).next(e=>C.forEach(e,e=>{y(e.userId===r.userId,18650,"Cannot process batch from unexpected user",{batchId:e.batchId});var t=pa(this.serializer,e);return ao(n,r.userId,t).next(()=>{})}))}))}yi(e){let a=e.store(tr),t=e.store(Rt);return e.store(mr).get(sr).next(i=>{let s=[];return t.ee((e,t)=>{let r=new E(e),n=[0,Dt(r)];s.push(a.get(n).next(e=>e?C.resolve():(e=r,a.put({targetId:0,path:Dt(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>C.waitFor(s))})}wi(e,t){e.createObjectStore(pr,{keyPath:yr});let n=t.store(pr),i=new Wa,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:Dt(t)})}};return t.store(Rt).ee({Y:!0},(e,t)=>{var r=new E(e);return s(r.popLast())}).next(()=>t.store(zt).ee({Y:!0},([,e],t)=>{var r=kt(e);return s(r.popLast())}))}bi(e){let n=e.store(Xt);return n.ee((e,t)=>{var r=ya(t),r=va(this.serializer,r);return n.put(r)})}Si(e,s){let t=s.store(Rt),a=[];return t.ee((e,t)=>{var r,n=s.store(Gt),i=((r=t).document?new x(E.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):T(36783)).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>C.waitFor(a))}Di(e,s){let t=s.store(Vt),a=Do(this.serializer),o=new $o(Qo.Vi,this.serializer.yt);return t.H().next(e=>{let r=new Map;return e.forEach(e=>{let t=r.get(e.userId)??L();pa(this.serializer,e).keys().forEach(e=>t=t.add(e)),r.set(e.userId,t)}),C.forEach(r,(e,t)=>{var r=new l(t),n=xa.wt(this.serializer,r),i=o.getIndexManager(r),r=uo.wt(r,this.serializer,i,o.referenceDelegate);return new Fo(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new $r(s,Et.ce),e).next()})})}}function Jo(e){e.createObjectStore(tr,{keyPath:rr}).createIndex(nr,ir,{unique:!0}),e.createObjectStore(Xt,{keyPath:"targetId"}).createIndex(Zt,er,{unique:!0}),e.createObjectStore(mr)}let Xo="IndexedDbPersistence",Zo="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class eu{constructor(e,t,r,n,i,s,a,o,u,l,h=18){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ci=i,this.window=s,this.document=a,this.Fi=u,this.Mi=l,this.xi=h,this.ai=null,this.ui=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Oi=null,this.inForeground=!1,this.Ni=null,this.Bi=null,this.Li=Number.NEGATIVE_INFINITY,this.ki=e=>Promise.resolve(),!eu.v())throw new I(b.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new So(this,n),this.Ki=t+"main",this.serializer=new ca(o),this.qi=new ct(this.Ki,this.xi,new Yo(this.serializer)),this.ci=new Aa,this.li=new mo(this.referenceDelegate,this.serializer),this.remoteDocumentCache=Do(this.serializer),this.Pi=new Ea,this.window&&this.window.localStorage?this.Ui=this.window.localStorage:(this.Ui=null,!1===l&&d(Xo,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.$i().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Wi(),this.Qi(),this.Gi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.li.getHighestSequenceNumber(e));throw new I(b.FAILED_PRECONDITION,Zo)}).then(e=>{this.ai=new Et(e,this.Fi)}).then(()=>{this.ui=!0}).catch(e=>(this.qi&&this.qi.close(),Promise.reject(e)))}zi(t){return this.ki=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.qi.q(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ci.enqueueAndForget(async()=>{this.started&&await this.$i()}))}$i(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>ru(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.ji(t).next(e=>{e||(this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)))})}).next(()=>this.Hi(t)).next(e=>this.isPrimary&&!e?this.Ji(t).next(()=>!1):!!e&&this.Zi(t).next(()=>!0))).catch(e=>{if(mt(e))return g(Xo,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return g(Xo,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Ci.enqueueRetryable(()=>this.ki(e)),this.isPrimary=e})}ji(e){return tu(e).get(Mt).next(e=>C.resolve(this.Xi(e)))}Yi(e){return ru(e).delete(this.clientId)}async es(){if(this.isPrimary&&!this.ts(this.Li,18e5)){this.Li=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=r(e,vr);return n.H().next(e=>{let t=this.ns(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return C.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.Ui)for(var t of e)this.Ui.removeItem(this.rs(t.clientId))}}Gi(){this.Bi=this.Ci.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.$i().then(()=>this.es()).then(()=>this.Gi()))}Xi(e){return!!e&&e.ownerId===this.clientId}Hi(t){return this.Mi?C.resolve(!0):tu(t).get(Mt).next(e=>{if(null!==e&&this.ts(e.leaseTimestampMs,5e3)&&!this.ss(e.ownerId)){if(this.Xi(e)&&this.networkEnabled)return!0;if(!this.Xi(e)){if(e.allowTabSynchronization)return!1;throw new I(b.FAILED_PRECONDITION,Zo)}}return!(!this.networkEnabled||!this.inForeground)||ru(t).H().next(e=>void 0===this.ns(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&g(Xo,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.ui=!1,this._s(),this.Bi&&(this.Bi.cancel(),this.Bi=null),this.us(),this.cs(),await this.qi.runTransaction("shutdown","readwrite",[Ot,vr],e=>{let t=new $r(e,Et.ce);return this.Ji(t).next(()=>this.Yi(t))}),this.qi.close(),this.ls()}ns(e,t){return e.filter(e=>this.ts(e.updateTimeMs,t)&&!this.ss(e.clientId))}hs(){return this.runTransaction("getActiveClients","readonly",e=>ru(e).H().next(e=>this.ns(e,18e5).map(e=>e.clientId)))}get started(){return this.ui}getGlobalsCache(){return this.ci}getMutationQueue(e,t){return uo.wt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.li}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new Xa(e,this.serializer.yt.databaseId)}getDocumentOverlayCache(e){return xa.wt(this.serializer,e)}getBundleCache(){return this.Pi}runTransaction(t,r,n){g(Xo,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=18===(e=this.xi)?Kr:17===e?Gr:16===e?zr:15===e?jr:14===e?qr:13===e?Ur:12===e?Br:11===e?Pr:void T(60245);let a;return this.qi.runTransaction(t,i,s,e=>(a=new $r(e,this.ai?this.ai.next():Et.ce),"readwrite-primary"===r?this.ji(a).next(e=>!!e||this.Hi(a)).next(e=>{if(e)return n(a);throw d(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Ci.enqueueRetryable(()=>this.ki(!1)),new I(b.FAILED_PRECONDITION,at)}).next(e=>this.Zi(a).next(()=>e)):this.Ps(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Ps(e){return tu(e).get(Mt).next(e=>{if(null!==e&&this.ts(e.leaseTimestampMs,5e3)&&!this.ss(e.ownerId)&&!this.Xi(e)&&!(this.Mi||this.allowTabSynchronization&&e.allowTabSynchronization))throw new I(b.FAILED_PRECONDITION,Zo)})}Zi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return tu(e).put(Mt,t)}static v(){return ct.v()}Ji(e){let t=tu(e);return t.get(Mt).next(e=>this.Xi(e)?(g(Xo,"Releasing primary lease."),t.delete(Mt)):C.resolve())}ts(e,t){var r=Date.now();return!(e<r-t||r<e&&(d(`Detected an update time that is in the future: ${e} > `+r),1))}Wi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ni=()=>{this.Ci.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.$i()))},this.document.addEventListener("visibilitychange",this.Ni),this.inForeground="visible"===this.document.visibilityState)}us(){this.Ni&&(this.document.removeEventListener("visibilitychange",this.Ni),this.Ni=null)}Qi(){"function"==typeof this.window?.addEventListener&&(this.Oi=()=>{this._s();var e=/(?:Version|Mobile)\/1[456]/;re()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ci.enterRestrictedMode(!0),this.Ci.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Oi))}cs(){this.Oi&&(this.window.removeEventListener("pagehide",this.Oi),this.Oi=null)}ss(e){try{var t=null!==this.Ui?.getItem(this.rs(e));return g(Xo,`Client '${e}' ${t?"is":"is not"} zombied in LocalStorage`),t}catch(e){return d(Xo,"Failed to get zombied client id.",e),!1}}_s(){if(this.Ui)try{this.Ui.setItem(this.rs(this.clientId),String(Date.now()))}catch(e){d("Failed to set zombie client id.",e)}}ls(){if(this.Ui)try{this.Ui.removeItem(this.rs(this.clientId))}catch(e){}}rs(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function tu(e){return r(e,Ot)}function ru(e){return r(e,vr)}function nu(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class iu{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Ts=r,this.Is=n}static Es(e,t){let r=L(),n=L();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new iu(e,t.fromCache,r,n)}}class su{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class au{constructor(){this.Rs=!1,this.As=!1,this.Vs=100,this.ds=re()?8:0<dt(ee())?6:4}initialize(e,t){this.fs=e,this.indexManager=t,this.Rs=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.gs(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ps(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new su;return this.ys(r,n,t).next(e=>{if(i.result=e,this.As)return this.ws(r,n,t,e.size)})}}).next(()=>i.result)}ws(e,t,r,n){return r.documentReadCount<this.Vs?(we()<=c.DEBUG&&g("QueryEngine","SDK will not create cache indexes for query:",xi(t),"since it only creates cache indexes for collection contains","more than or equal to",this.Vs,"documents"),C.resolve()):(we()<=c.DEBUG&&g("QueryEngine","Query:",xi(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ds*n?(we()<=c.DEBUG&&g("QueryEngine","The SDK decides to create cache indexes for query:",xi(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,bi(t))):C.resolve())}gs(i,s){if(vi(s))return C.resolve(null);let t=bi(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=Ei(s,null,"F"),t=bi(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=L(...e);return this.fs.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.bs(s,r);return this.Ss(s,t,n,e.readTime)?this.gs(i,Ei(s,null,"F")):this.Ds(i,t,s,e)}))})))}ps(r,n,i,s){return vi(n)||s.isEqual(w.min())?C.resolve(null):this.fs.getDocuments(r,i).next(e=>{var t=this.bs(n,e);return this.Ss(n,t,i,s)?C.resolve(null):(we()<=c.DEBUG&&g("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),xi(n)),this.Ds(r,t,n,rt(s,Ye)).next(e=>e))})}bs(r,e){let n=new D(Di(r));return e.forEach((e,t)=>{Ci(r,t)&&(n=n.add(t))}),n}Ss(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}ys(e,t,r){return we()<=c.DEBUG&&g("QueryEngine","Using full collection scan to execute query:",xi(t)),this.fs.getDocumentsMatchingQuery(e,t,it.min(),r)}Ds(e,r,t,n){return this.fs.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let ou="LocalStore",uu=3e8;class lu{constructor(e,t,r,n){this.persistence=e,this.Cs=t,this.serializer=n,this.vs=new A(S),this.Fs=new Ni(e=>li(e),hi),this.Ms=new Map,this.xs=e.getRemoteDocumentCache(),this.li=e.getTargetCache(),this.Pi=e.getBundleCache(),this.Os(r)}Os(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new Fo(this.xs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.xs.setIndexManager(this.indexManager),this.Cs.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.vs))}}function hu(e,t,r,n){return new lu(e,t,r,n)}async function cu(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.Os(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=L();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({Ns:e,removedBatchIds:t,addedBatchIds:r}))})})}function du(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.xs.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=C.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);y(null!==t,48541),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=L();for(let r=0;r<e.mutationResults.length;++r)0<e.mutationResults[r].transformResults.length&&(t=t.add(e.batch.mutations[r].key));return t})(n))).next(()=>i.localDocuments.getDocuments(e,t))})}function fu(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.li.getLastRemoteSnapshotVersion(e))}function gu(e,l){let h=e,c=l.snapshotVersion,d=h.vs;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.xs.newChangeBuffer({trackRemovals:!0}),u=(d=h.vs,[]),t=(l.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){u.push(h.li.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.li.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==l.targetMismatches.get(r)?e=e.withResumeToken(N.EMPTY_BYTE_STRING,w.min()).withLastLimboFreeSnapshotVersion(w.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,c)),d=d.insert(r,e),n=a,i=e,s=t,(0===n.resumeToken.approximateByteSize()||i.snapshotVersion.toMicroseconds()-n.snapshotVersion.toMicroseconds()>=uu||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&u.push(h.li.updateTargetData(o,e))}}),ki),r=L();if(l.documentUpdates.forEach(e=>{l.resolvedLimboDocuments.has(e)&&u.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),u.push(mu(o,e,l.documentUpdates).next(e=>{t=e.Bs,r=e.Ls})),!c.isEqual(w.min())){let e=h.li.getLastRemoteSnapshotVersion(o).next(e=>h.li.setTargetsMetadata(o,o.currentSequenceNumber,c));u.push(e)}return C.waitFor(u).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.vs=d,e))}function mu(e,s,t){let r=L(),a=L();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=ki;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(w.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0<t.version.compareTo(r.version)||0===t.version.compareTo(r.version)&&r.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):g(ou,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{Bs:i,Ls:a}})}function pu(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.li.getTargetData(t,n).next(e=>e?(r=e,C.resolve(r)):i.li.allocateTargetId(t).next(e=>(r=new ha(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.li.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.vs.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.vs=i.vs.insert(e.targetId,e),i.Fs.set(n,e.targetId)),e})}async function yu(e,t,r){let n=e,i=n.vs.get(t),s=r?"readwrite":"readwrite-primary";try{r||await n.persistence.runTransaction("Release target",s,e=>n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!mt(e))throw e;g(ou,`Failed to update sequence numbers for target ${t}: `+e)}n.vs=n.vs.remove(t),n.Fs.delete(i.target)}function vu(e,a,o){let u=e,l=w.min(),h=L();return u.persistence.runTransaction("Execute query","readwrite",t=>{return e=u,r=t,n=bi(a),(void 0!==(s=(i=e).Fs.get(n))?C.resolve(i.vs.get(s)):i.li.getTargetData(r,n)).next(e=>{if(e)return l=e.lastLimboFreeSnapshotVersion,u.li.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>u.Cs.getDocumentsMatchingQuery(t,a,o?l:w.min(),o?h:L())).next(e=>(bu(u,Ai(a),e),{documents:e,ks:h}));var e,r,n,i,s})}function wu(e,t){let r=e,n=r.li,i=r.vs.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.At(e,t).next(e=>e?e.target:null))}function _u(e,t){let r=e,n=r.Ms.get(t)||w.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.xs.getAllFromCollectionGroup(e,t,rt(n,Ye),Number.MAX_SAFE_INTEGER)).then(e=>(bu(r,t,e),e))}function bu(e,t,r){let n=e.Ms.get(t)||w.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Ms.set(t,n)}let Iu="firestore_clients";function Eu(e,t){return Iu+`_${e}_`+t}let Tu="firestore_mutations";function Su(e,t,r){let n=Tu+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let xu="firestore_targets";function Cu(e,t){return xu+`_${e}_`+t}let Au="SharedClientState";class Du{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static $s(e,t,r){var n=JSON.parse(r);let i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new I(n.error.code,n.error.message)),s?new Du(e,t,n.state,i):(d(Au,`Failed to parse mutation state for ID '${t}': `+r),null)}Ws(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class Nu{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static $s(e,t){var r=JSON.parse(t);let n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new I(r.error.code,r.error.message)),i?new Nu(e,r.state,n):(d(Au,`Failed to parse target state for ID '${e}': `+t),null)}Ws(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class ku{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static $s(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=Pi;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=Ct(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new ku(e,i):(d(Au,`Failed to parse client data for instance '${e}': `+t),null)}}class Ru{constructor(e,t){this.clientId=e,this.onlineState=t}static $s(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new Ru(t.clientId,t.onlineState):(d(Au,"Failed to parse online state: "+e),null)}}class Ou{constructor(){this.activeTargetIds=Pi}Qs(e){this.activeTargetIds=this.activeTargetIds.add(e)}Gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Ws(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class Mu{constructor(e,t,r,n,i){this.window=e,this.Ci=t,this.persistenceKey=r,this.zs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.js=this.Hs.bind(this),this.Js=new A(S),this.started=!1,this.Zs=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Xs=Eu(this.persistenceKey,this.zs),this.Ys="firestore_sequence_number_"+this.persistenceKey,this.Js=this.Js.insert(this.zs,new Ou),this.eo=new RegExp(`^${Iu}_${s}_([^_]*)$`),this.no=new RegExp(`^${Tu}_${s}_(\\d+)(?:_(.*))?$`),this.ro=new RegExp(`^${xu}_${s}_(\\d+)$`),this.io="firestore_online_state_"+this.persistenceKey,this.so="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.js)}static v(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.hs();for(let r of e)if(r!==this.zs){let e=this.getItem(Eu(this.persistenceKey,r));var t;e&&(t=ku.$s(r,e))&&(this.Js=this.Js.insert(t.clientId,t))}this.oo();let r=this.storage.getItem(this.io);if(r){let e=this._o(r);e&&this.ao(e)}for(let e of this.Zs)this.Hs(e);this.Zs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Ys,JSON.stringify(e))}getAllActiveQueryTargets(){return this.uo(this.Js)}isActiveQueryTarget(r){let n=!1;return this.Js.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.co(e,"pending")}updateMutationState(e,t,r){this.co(e,t,r),this.lo(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(Cu(this.persistenceKey,t));var n;e&&(n=Nu.$s(t,e))&&(r=n.state)}return e&&this.ho.Qs(t),this.oo(),r}removeLocalQueryTarget(e){this.ho.Gs(e),this.oo()}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(Cu(this.persistenceKey,e))}updateQueryState(e,t,r){this.Po(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.lo(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.To(e)}notifyBundleLoaded(e){this.Io(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.js),this.removeItem(this.Xs),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return g(Au,"READ",e,t),t}setItem(e,t){g(Au,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){g(Au,"REMOVE",e),this.storage.removeItem(e)}Hs(e){let t=e;t.storageArea===this.storage&&(g(Au,"EVENT",t.key,t.newValue),t.key===this.Xs?d("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Ci.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.eo.test(t.key))return null==t.newValue?(e=this.Eo(t.key),this.Ro(e,null)):(e=this.Ao(t.key,t.newValue))?this.Ro(e.clientId,e):void 0;if(this.no.test(t.key)){if(null!==t.newValue){var e=this.Vo(t.key,t.newValue);if(e)return this.mo(e)}}else if(this.ro.test(t.key)){if(null!==t.newValue){var e=this.fo(t.key,t.newValue);if(e)return this.po(e)}}else if(t.key===this.io){if(null!==t.newValue){var e=this._o(t.newValue);if(e)return this.ao(e)}}else t.key===this.Ys?(e=(e=>{let t=Et.ce;if(null!=e)try{var r=JSON.parse(e);y("number"==typeof r,30636,{yo:e}),t=r}catch(e){d(Au,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==Et.ce&&this.sequenceNumberHandler(e):t.key===this.so&&(e=this.wo(t.newValue),await Promise.all(e.map(e=>this.syncEngine.bo(e))))}}else this.Zs.push(t)}))}get ho(){return this.Js.get(this.zs)}oo(){this.setItem(this.Xs,this.ho.Ws())}co(e,t,r){var n=new Du(this.currentUser,e,t,r),i=Su(this.persistenceKey,this.currentUser,e);this.setItem(i,n.Ws())}lo(e){var t=Su(this.persistenceKey,this.currentUser,e);this.removeItem(t)}To(e){var t={clientId:this.zs,onlineState:e};this.storage.setItem(this.io,JSON.stringify(t))}Po(e,t,r){var n=Cu(this.persistenceKey,e),i=new Nu(e,t,r);this.setItem(n,i.Ws())}Io(e){var t=JSON.stringify(Array.from(e));this.setItem(this.so,t)}Eo(e){var t=this.eo.exec(e);return t?t[1]:null}Ao(e,t){var r=this.Eo(e);return ku.$s(r,t)}Vo(e,t){var r=this.no.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return Du.$s(new l(r),n,t)}fo(e,t){var r=this.ro.exec(e),r=Number(r[1]);return Nu.$s(r,t)}_o(e){return Ru.$s(e)}wo(e){return JSON.parse(e)}async mo(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.So(e.batchId,e.state,e.error);g(Au,"Ignoring mutation for non-active user "+e.user.uid)}po(e){return this.syncEngine.Do(e.targetId,e.state,e.error)}Ro(e,t){let r=t?this.Js.insert(e,t):this.Js.remove(e),n=this.uo(this.Js),i=this.uo(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.Co(s,a).then(()=>{this.Js=r})}ao(e){this.Js.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}uo(e){let r=Pi;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class Lu{constructor(){this.vo=new Ou,this.Fo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.vo.Qs(e),this.Fo[e]||"not-current"}updateQueryState(e,t,r){this.Fo[e]=t}removeLocalQueryTarget(e){this.vo.Gs(e)}isLocalQueryTarget(e){return this.vo.activeTargetIds.has(e)}clearQueryState(e){delete this.Fo[e]}getAllActiveQueryTargets(){return this.vo.activeTargetIds}isActiveQueryTarget(e){return this.vo.activeTargetIds.has(e)}start(){return this.vo=new Ou,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class Vu{Mo(e){}shutdown(){}}let Fu="ConnectivityMonitor";class Pu{constructor(){this.xo=()=>this.Oo(),this.No=()=>this.Bo(),this.Lo=[],this.ko()}Mo(e){this.Lo.push(e)}shutdown(){window.removeEventListener("online",this.xo),window.removeEventListener("offline",this.No)}ko(){window.addEventListener("online",this.xo),window.addEventListener("offline",this.No)}Oo(){g(Fu,"Network connectivity changed: AVAILABLE");for(var e of this.Lo)e(0)}Bo(){g(Fu,"Network connectivity changed: UNAVAILABLE");for(var e of this.Lo)e(1)}static v(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let Bu=null;function Uu(){return null===Bu?Bu=268435456+Math.round(2147483648*Math.random()):Bu++,"0x"+Bu.toString(16)}let qu="RestConnection",ju={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery",ExecutePipeline:"executePipeline"};class zu{constructor(e){this.Ho=e.Ho,this.Jo=e.Jo}Zo(e){this.Xo=e}Yo(e){this.e_=e}t_(e){this.n_=e}onMessage(e){this.r_=e}close(){this.Jo()}send(e){this.Ho(e)}i_(){this.Xo()}s_(){this.e_()}o_(e){this.n_(e)}__(e){this.r_(e)}}let Gu="WebChannelConnection",Ku=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};class $u extends class{get Ko(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.qo=t+"://"+e.host,this.Uo=`projects/${r}/databases/`+n,this.$o=this.databaseId.database===gn?"project_id="+r:`project_id=${r}&database_id=`+n}Wo(t,e,r,n,i){let s=Uu(),a=this.Qo(t,e.toUriEncodedString());g(qu,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.Uo,"x-goog-request-params":this.$o},u=(this.Go(o,n,i),new URL(a)).host,u=Y(u);return this.zo(t,a,o,r,u).then(e=>(g(qu,`Received RPC '${t}' ${s}: `,e),e),e=>{throw _e(qu,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}jo(e,t,r,n,i,s){return this.Wo(e,t,r,n,i)}Go(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+ye,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}Qo(e,t){var r=ju[e];let n=this.qo+`/v1/${t}:`+r;return n=this.databaseInfo.apiKey?n+"?key="+encodeURIComponent(this.databaseInfo.apiKey):n}terminate(){}}{constructor(e){super(e),this.a_=[],this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}static u_(){var e;$u.c_||(e=dr(),Ku(e,cr.STAT_EVENT,e=>{e.stat===hr.PROXY?g(Gu,"STAT_EVENT: detected buffering proxy"):e.stat===hr.NOPROXY&&g(Gu,"STAT_EVENT: detected no buffering proxy")}),$u.c_=!0)}zo(u,t,r,n,e){let l=Uu();return new Promise((s,a)=>{let o=new ar;o.setWithCredentials(!0),o.listenOnce(ur.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case lr.NO_ERROR:var e=o.getResponseJson();g(Gu,`XHR for RPC '${u}' ${l} received:`,JSON.stringify(e)),s(e);break;case lr.TIMEOUT:g(Gu,`RPC '${u}' ${l} timed out`),a(new I(b.DEADLINE_EXCEEDED,"Request time out"));break;case lr.HTTP_ERROR:var t=o.getStatus();if(g(Gu,`RPC '${u}' ${l} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=(e=Array.isArray(e)?e[0]:e)?.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(b).indexOf(i)?i:b.UNKNOWN;a(new I(e,r.message))}else a(new I(b.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new I(b.UNAVAILABLE,"Connection failed."));break;default:T(9055,{l_:u,streamId:l,h_:o.getLastErrorCode(),P_:o.getLastError()})}}finally{g(Gu,`RPC '${u}' ${l} completed.`)}var n,i});var e=JSON.stringify(n);g(Gu,`RPC '${u}' ${l} sending request:`,n),o.send(t,"POST",e,r,15)})}T_(i,e,t){let s=Uu(),r=[this.qo,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=this.createWebChannelTransport(),a={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},o=this.longPollingOptions.timeoutSeconds;void 0!==o&&(a.longPollingTimeout=Math.round(1e3*o)),this.useFetchStreams&&(a.useFetchStreams=!0),this.Go(a.initMessageHeaders,e,t),a.encodeInitMessageHeaders=!0;var u=r.join("");g(Gu,`Creating RPC '${i}' stream ${s}: `+u,a);let l=n.createWebChannel(u,a),h=(this.I_(l),!1),c=!1,d=new zu({Ho:e=>{c?g(Gu,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(h||(g(Gu,`Opening RPC '${i}' stream ${s} transport.`),l.open(),h=!0),g(Gu,`RPC '${i}' stream ${s} sending:`,e),l.send(e))},Jo:()=>l.close()});return Ku(l,or.EventType.OPEN,()=>{c||(g(Gu,`RPC '${i}' stream ${s} transport opened.`),d.i_())}),Ku(l,or.EventType.CLOSE,()=>{c||(c=!0,g(Gu,`RPC '${i}' stream ${s} transport closed`),d.o_(),this.E_(l))}),Ku(l,or.EventType.ERROR,e=>{c||(c=!0,_e(Gu,`RPC '${i}' stream ${s} transport errored. Name:`,e.name,"Message:",e.message),d.o_(new I(b.UNAVAILABLE,"The operation could not be completed")))}),Ku(l,or.EventType.MESSAGE,e=>{if(!c){var t=e.data[0],n=(y(!!t,16349),t),n=n?.error||n[0]?.error;if(n){g(Gu,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=f[e];if(void 0!==t)return ys(t)})(e),r=n.message;void 0===t&&(t=b.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),c=!0,d.o_(new I(t,r)),l.close()}else g(Gu,`RPC '${i}' stream ${s} received:`,t),d.__(t)}}),$u.u_(),setTimeout(()=>{d.s_()},0),d}terminate(){this.a_.forEach(e=>e.close()),this.a_=[]}I_(e){this.a_.push(e)}E_(t){this.a_=this.a_.filter(e=>e===t)}Go(e,t,r){super.Go(e,t,r),this.databaseInfo.apiKey&&(e["x-goog-api-key"]=this.databaseInfo.apiKey)}createWebChannelTransport(){return fr()}}function Hu(){return"undefined"!=typeof window?window:null}function Qu(){return"undefined"!=typeof document?document:null}function Wu(e){return new Vs(e,!0)}$u.c_=!1;class Yu{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ci=e,this.timerId=t,this.R_=r,this.A_=n,this.V_=i,this.d_=0,this.m_=null,this.f_=Date.now(),this.reset()}reset(){this.d_=0}g_(){this.d_=this.V_}p_(e){this.cancel();var t=Math.floor(this.d_+this.y_()),r=Math.max(0,Date.now()-this.f_),n=Math.max(0,t-r);0<n&&g("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.d_} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.m_=this.Ci.enqueueAfterDelay(this.timerId,n,()=>(this.f_=Date.now(),e())),this.d_*=this.A_,this.d_<this.R_&&(this.d_=this.R_),this.d_>this.V_&&(this.d_=this.V_)}w_(){null!==this.m_&&(this.m_.skipDelay(),this.m_=null)}cancel(){null!==this.m_&&(this.m_.cancel(),this.m_=null)}y_(){return(Math.random()-.5)*this.d_}}let Ju="PersistentStream";class Xu{constructor(e,t,r,n,i,s,a,o){this.Ci=e,this.b_=r,this.S_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.D_=0,this.C_=null,this.v_=null,this.stream=null,this.F_=0,this.M_=new Yu(e,t)}x_(){return 1===this.state||5===this.state||this.O_()}O_(){return 2===this.state||3===this.state}start(){this.F_=0,4!==this.state?this.auth():this.N_()}async stop(){this.x_()&&await this.close(0)}B_(){this.state=0,this.M_.reset()}L_(){this.O_()&&null===this.C_&&(this.C_=this.Ci.enqueueAfterDelay(this.b_,6e4,()=>this.k_()))}K_(e){this.q_(),this.stream.send(e)}async k_(){if(this.O_())return this.close(0)}q_(){this.C_&&(this.C_.cancel(),this.C_=null)}U_(){this.v_&&(this.v_.cancel(),this.v_=null)}async close(e,t){this.q_(),this.U_(),this.M_.cancel(),this.D_++,4!==e?this.M_.reset():t&&t.code===b.RESOURCE_EXHAUSTED?(d(t.toString()),d("Using maximum backoff delay to prevent overloading the backend."),this.M_.g_()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.W_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.t_(t)}W_(){}auth(){this.state=1;let e=this.Q_(this.D_),r=this.D_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.D_===r&&this.G_(e,t)},t=>{e(()=>{var e=new I(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.z_(e)})})}G_(e,t){let r=this.Q_(this.D_);this.stream=this.j_(e,t),this.stream.Zo(()=>{r(()=>this.listener.Zo())}),this.stream.Yo(()=>{r(()=>(this.state=2,this.v_=this.Ci.enqueueAfterDelay(this.S_,1e4,()=>(this.O_()&&(this.state=3),Promise.resolve())),this.listener.Yo()))}),this.stream.t_(e=>{r(()=>this.z_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.F_?this.H_(e):this.onNext(e))})}N_(){this.state=5,this.M_.p_(async()=>{this.state=0,this.start()})}z_(e){return g(Ju,"close with error: "+e),this.stream=null,this.close(4,e)}Q_(t){return e=>{this.Ci.enqueueAndForget(()=>this.D_===t?e():(g(Ju,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class Zu extends Xu{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}j_(e,t){return this.connection.T_("Listen",e,t)}H_(e){return this.onNext(e)}onNext(e){this.M_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(u=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===u?1:"REMOVE"===u?2:"CURRENT"===u?3:"RESET"===u?4:T(39313,{state:u}),i=t.targetChange.targetIds||[],s=(u=t.targetChange.resumeToken,e.useProto3Json?(y(void 0===u||"string"==typeof u,58123),N.fromBase64String(u||"")):(y(void 0===u||u instanceof Buffer||u instanceof Uint8Array,16193),N.fromUint8Array(u||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(u=a).code?b.UNKNOWN:ys(u.code),new I(a,u.message||""));r=new As(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,Gs(e,n.document.name)),s=F(n.document.updateTime),a=n.document.createTime?F(n.document.createTime):w.min(),o=new qn({mapValue:{fields:n.document.fields}}),i=R.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new xs(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,Gs(e,n.document)),o=n.readTime?F(n.readTime):w.min(),i=R.newNoDocument(s,o),s=n.removedTargetIds||[];r=new xs([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,Gs(e,o.document)),s=o.removedTargetIds||[];r=new xs([],s,n,null)}else{if(!("filter"in t))return T(11601,{Vt:t});{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new ms(i,o),n=e.targetId;r=new Cs(n,s)}}var u;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?F(r.readTime):w.min();return this.listener.J_(t,r)}Z_(e){var t={},r=(t.database=Hs(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=ci(e)?{documents:ea(t,e)}:{query:ta(t,e).ft}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=Bs(t,r.resumeToken);let e=Fs(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(w.min())){n.readTime=Ps(t,r.snapshotVersion.toTimestamp());let e=Fs(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),na(this.serializer,e));r&&(t.labels=r),this.K_(t)}X_(e){var t={};t.database=Hs(this.serializer),t.removeTarget=e,this.K_(t)}}class el extends Xu{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get Y_(){return 0<this.F_}start(){this.lastStreamToken=void 0,super.start()}W_(){this.Y_&&this.ea([])}j_(e,t){return this.connection.T_("Write",e,t)}H_(e){return y(!!e.streamToken,31322),this.lastStreamToken=e.streamToken,y(!e.writeResults||0===e.writeResults.length,55816),this.listener.ta()}onNext(e){y(!!e.streamToken,12678),this.lastStreamToken=e.streamToken,this.M_.reset();var t=Zs(e.writeResults,e.commitTime),r=F(e.commitTime);return this.listener.na(r,t)}ra(){var e={};e.database=Hs(this.serializer),this.K_(e)}ea(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>Js(this.serializer,e))};this.K_(t)}}class tl extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.ia=!1}sa(){if(this.ia)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.")}Wo(r,n,i,s){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Wo(r,qs(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}jo(r,n,i,s,a){return this.sa(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.jo(r,qs(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}terminate(){this.ia=!0,this.connection.terminate()}}class rl{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.oa=0,this._a=null,this.aa=!0}ua(){0===this.oa&&(this.ca("Unknown"),this._a=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this._a=null,this.la("Backend didn't respond within 10 seconds."),this.ca("Offline"),Promise.resolve())))}ha(e){"Online"===this.state?this.ca("Unknown"):(this.oa++,1<=this.oa&&(this.Pa(),this.la("Connection failed 1 times. Most recent error: "+e.toString()),this.ca("Offline")))}set(e){this.Pa(),this.oa=0,"Online"===e&&(this.aa=!1),this.ca(e)}ca(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}la(e){var t=`Could not reach Cloud Firestore backend. ${e}
21
21
  This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.aa?(d(t),this.aa=!1):g("OnlineStateTracker",t)}Pa(){null!==this._a&&(this._a.cancel(),this._a=null)}}let nl="RemoteStore";class il{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.Ta=[],this.Ia=new Map,this.Ea=new Set,this.Ra=[],this.Aa=i,this.Aa.Mo(e=>{r.enqueueAndForget(async()=>{var e;fl(this)&&(g(nl,"Restarting streams for network reachability change."),(e=this).Ea.add(4),await al(e),e.Va.set("Unknown"),e.Ea.delete(4),await sl(e))})}),this.Va=new rl(r,n)}}async function sl(e){if(fl(e))for(var t of e.Ra)await t(!0)}async function al(e){for(var t of e.Ra)await t(!1)}function ol(e,t){var r=e;r.Ia.has(t.targetId)||(r.Ia.set(t.targetId,t),dl(r)?cl(r):Il(r).O_()&&ll(r,t))}function ul(e,t){var r=e,n=Il(r);r.Ia.delete(t),n.O_()&&hl(r,t),0===r.Ia.size&&(n.O_()?n.L_():fl(r)&&r.Va.set("Unknown"))}function ll(e,t){var r;e.da.$e(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(w.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),Il(e).Z_(t)}function hl(e,t){e.da.$e(t),Il(e).X_(t)}function cl(t){t.da=new Ns({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),At:e=>t.Ia.get(e)||null,ht:()=>t.datastore.serializer.databaseId}),Il(t).start(),t.Va.ua()}function dl(e){return fl(e)&&!Il(e).x_()&&0<e.Ia.size}function fl(e){return 0===e.Ea.size}function gl(e){e.da=void 0}async function ml(e,t,r){if(!mt(t))throw t;e.Ea.add(1),await al(e),e.Va.set("Offline"),r=r||(()=>fu(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{g(nl,"Retrying IndexedDB access"),await r(),e.Ea.delete(1),await sl(e)})}function pl(t,r){return r().catch(e=>ml(t,e,r))}async function yl(e){var t,r,n,i,s=e,a=El(s);let o=0<s.Ta.length?s.Ta[s.Ta.length-1].batchId:Tt;for(;fl(i=s)&&i.Ta.length<10;)try{let e=await((e,t)=>{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=Tt),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.Ta.length&&a.L_();break}o=e.batchId,t=s,r=e,n=void 0,t.Ta.push(r),(n=El(t)).O_()&&n.Y_&&n.ea(r.mutations)}catch(e){await ml(s,e)}vl(s)&&wl(s)}function vl(e){return fl(e)&&!El(e).x_()&&0<e.Ta.length}function wl(e){El(e).start()}async function _l(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),g(nl,"RemoteStore received new credentials"),fl(r));r.Ea.add(3),await al(r),n&&r.Va.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.Ea.delete(3),await sl(r)}async function bl(e,t){var r=e;t?(r.Ea.delete(2),await sl(r)):(r.Ea.add(2),await al(r),r.Va.set("Unknown"))}function Il(t){return t.ma||(t.ma=(e=t.datastore,r=t.asyncQueue,n={Zo:(async function(e){e.Va.set("Online")}).bind(null,t),Yo:(async function(r){r.Ia.forEach((e,t)=>{ll(r,e)})}).bind(null,t),t_:(async function(e,t){gl(e),dl(e)?(e.Va.ha(t),cl(e)):e.Va.set("Unknown")}).bind(null,t),J_:(async function(t,e,r){if(t.Va.set("Online"),e instanceof As&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.Ia.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.Ia.delete(n),i.da.removeTarget(n))}catch(r){g(nl,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await ml(t,r)}else if(e instanceof xs?t.da.Xe(e):e instanceof Cs?t.da.st(e):t.da.tt(e),!r.isEqual(w.min()))try{let e=await fu(t.localStore);0<=r.compareTo(e)&&(u=r,(l=(o=t).da.Tt(u)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.Ia.get(t))&&o.Ia.set(t,r.withResumeToken(e.resumeToken,u))}),l.targetMismatches.forEach((e,t)=>{var r=o.Ia.get(e);r&&(o.Ia.set(e,r.withResumeToken(N.EMPTY_BYTE_STRING,r.snapshotVersion)),hl(o,e),r=new ha(r.target,e,t,r.sequenceNumber),ll(o,r))}),await o.remoteSyncer.applyRemoteEvent(l))}catch(e){g(nl,"Failed to raise snapshot:",e),await ml(t,e)}var o,u,l}).bind(null,t)},(i=e).sa(),new Zu(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Ra.push(async e=>{e?(t.ma.B_(),dl(t)?cl(t):t.Va.set("Unknown")):(await t.ma.stop(),gl(t))})),t.ma;var e,r,n,i}function El(t){return t.fa||(t.fa=(e=t.datastore,r=t.asyncQueue,n={Zo:()=>Promise.resolve(),Yo:(async function(e){El(e).ra()}).bind(null,t),t_:(async function(e,t){if(t&&El(e).Y_){var r=e,n=t;if(ps(t=n.code)&&t!==b.ABORTED){let e=r.Ta.shift();El(r).B_(),await pl(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await yl(r)}await 0}vl(e)&&wl(e)}).bind(null,t),ta:(async function(e){var t,r=El(e);for(t of e.Ta)r.ea(t.mutations)}).bind(null,t),na:(async function(e,t,r){let n=e.Ta.shift(),i=fs.from(n,t,r);await pl(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await yl(e)}).bind(null,t)},(i=e).sa(),new el(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.Ra.push(async e=>{e?(t.fa.B_(),await yl(t)):(await t.fa.stop(),0<t.Ta.length&&(g(nl,`Stopping write stream with ${t.Ta.length} pending writes`),t.Ta=[]))})),t.fa;var e,r,n,i}class Tl{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new m,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new Tl(e,t,s,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new I(b.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Sl(e,t){if(d("AsyncQueue",t+": "+e),mt(e))return new I(b.UNAVAILABLE,t+": "+e);throw e}class xl{static emptySet(e){return new xl(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=Oi(),this.sortedSet=new A(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof xl))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new xl;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class Cl{constructor(){this.ga=new A(x.comparator)}track(e){var t=e.doc.key,r=this.ga.get(t);!r||0!==e.type&&3===r.type?this.ga=this.ga.insert(t,e):3===e.type&&1!==r.type?this.ga=this.ga.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.ga=this.ga.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.ga=this.ga.remove(t):1===e.type&&2===r.type?this.ga=this.ga.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.ga=this.ga.insert(t,{type:2,doc:e.doc}):T(63341,{Vt:e,pa:r})}ya(){let r=[];return this.ga.inorderTraversal((e,t)=>{r.push(t)}),r}}class Al{constructor(e,t,r,n,i,s,a,o,u){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=u}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new Al(e,t,xl.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&Ti(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n].type!==r[n].type||!t[n].doc.isEqual(r[n].doc))return!1;return!0}}class Dl{constructor(){this.wa=void 0,this.ba=[]}Sa(){return this.ba.some(e=>e.Da())}}class Nl{constructor(){this.queries=kl(),this.onlineState="Unknown",this.Ca=new Set}terminate(){var e,r,t,n;e=this,r=new I(b.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=kl(),n.forEach((e,t)=>{for(let e of t.ba)e.onError(r)})}}function kl(){return new Ni(e=>Si(e),Ti)}async function Rl(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.Sa()&&r.Da()&&(n=2):(s=new Dl,n=r.Da()?0:1);try{switch(n){case 0:s.wa=await e.onListen(i,!0);break;case 1:s.wa=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=Sl(t,`Initialization of query '${xi(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.ba.push(r),r.va(e.onlineState),s.wa&&r.Fa(s.wa)&&Ml(e)}async function Ol(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.ba.indexOf(t);0<=e&&(s.ba.splice(e,1),0===s.ba.length?i=t.Da()?0:1:!s.Sa()&&t.Da()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function Ml(e){e.Ca.forEach(e=>{e.next()})}(pe=pe||{}).Ma="default",pe.Cache="cache";class Ll{constructor(e,t,r){this.query=e,this.xa=t,this.Oa=!1,this.Na=null,this.onlineState="Unknown",this.options=r||{}}Fa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new Al(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Oa?this.Ba(t)&&(this.xa.next(t),e=!0):this.La(t,this.onlineState)&&(this.ka(t),e=!0),this.Na=t,e}onError(e){this.xa.error(e)}va(e){this.onlineState=e;let t=!1;return this.Na&&!this.Oa&&this.La(this.Na,e)&&(this.ka(this.Na),t=!0),t}La(e,t){return!e.fromCache||!this.Da()||(!this.options.Ka||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}Ba(e){var t;return 0<e.docChanges.length||(t=this.Na&&this.Na.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}ka(e){e=Al.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.Oa=!0,this.xa.next(e)}Da(){return this.options.source!==pe.Cache}}class Vl{constructor(e,t){this.qa=e,this.byteLength=t}Ua(){return"metadata"in this.qa}}class Fl{constructor(e){this.serializer=e}Ks(e){return Gs(this.serializer,e)}qs(e){return e.metadata.exists?Ys(this.serializer,e.document,!1):R.newNoDocument(this.Ks(e.metadata.name),this.Us(e.metadata.readTime))}Us(e){return F(e)}}class Pl{constructor(e,t){this.$a=e,this.serializer=t,this.Wa=[],this.Qa=[],this.collectionGroups=new Set,this.progress=Bl(e)}get queries(){return this.Wa}get documents(){return this.Qa}Ga(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.qa.namedQuery?this.Wa.push(e.qa.namedQuery):e.qa.documentMetadata?(this.Qa.push({metadata:e.qa.documentMetadata}),e.qa.documentMetadata.exists||++t,r=E.fromString(e.qa.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.qa.document&&(this.Qa[this.Qa.length-1].document=e.qa.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,{...this.progress}):null}za(e){let r=new Map,n=new Fl(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.Ks(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||L()).add(e);r.set(t,s)}}return r}async ja(e){let t=await(async(r,n,e,t)=>{let i=r,s=L(),a=ki;for(let r of e){let e=n.Ks(r.metadata.name),t=(r.document&&(s=s.add(e)),n.qs(r));t.setReadTime(n.Us(r.metadata.readTime)),a=a.insert(e,t)}let o=i.xs.newChangeBuffer({trackRemovals:!0}),u=await pu(i,(r=t,bi(yi(E.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>mu(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.li.removeMatchingKeysForTargetId(t,u.targetId).next(()=>i.li.addMatchingKeys(t,s,u.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Bs,e.Ls)).next(()=>e.Bs)))})(e,new Fl(this.serializer),this.Qa,this.$a.id),r=this.za(this.documents);for(let t of this.Wa)await(async(e,r,n=L())=>{let i=await pu(e,bi(wa(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=F(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Pi.saveNamedQuery(e,r):(t=i.withResumeToken(N.EMPTY_BYTE_STRING,t),s.vs=s.vs.insert(t.targetId,t),s.li.updateTargetData(e,t).next(()=>s.li.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.li.addMatchingKeys(e,n,i.targetId)).next(()=>s.Pi.saveNamedQuery(e,r)))})})(e,t,r.get(t.name));return this.progress.taskState="Success",{progress:this.progress,Ha:this.collectionGroups,Ja:t}}}function Bl(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class Ul{constructor(e){this.key=e}}class ql{constructor(e){this.key=e}}class jl{constructor(e,t){this.query=e,this.Za=t,this.Xa=null,this.hasCachedResults=!1,this.current=!1,this.Ya=L(),this.mutatedKeys=L(),this.eu=Di(e),this.tu=new xl(this.eu)}get nu(){return this.Za}ru(e,t){let o=t?t.iu:new Cl,u=(t||this).tu,l=(t||this).mutatedKeys,h=u,c=!1,d="F"===this.query.limitType&&u.size===this.query.limit?u.last():null,f="L"===this.query.limitType&&u.size===this.query.limit?u.first():null;if(e.inorderTraversal((e,t)=>{var r=u.get(e),n=Ci(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.su(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.eu(n,d)||f&&this.eu(n,f)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||f)&&(c=!0),a&&(l=n?(h=h.add(n),s?l.add(e):l.delete(e)):(h=h.delete(e),l.delete(e)))}),null!==this.query.limit)for(;h.size>this.query.limit;){let e="F"===this.query.limitType?h.last():h.first();h=h.delete(e.key),l=l.delete(e.key),o.track({type:1,doc:e})}return{tu:h,iu:o,Ss:c,mutatedKeys:l}}su(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.tu,s=(this.tu=e.tu,this.mutatedKeys=e.mutatedKeys,e.iu.ya()),a=(s.sort((e,t)=>{return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return T(20277,{Vt:e})}})(r)-i(n)||this.eu(e.doc,t.doc);var r,n,i}),this.ou(r),n=n??!1,t&&!n?this._u():[]),o=0===this.Ya.size&&this.current&&!n?1:0,u=o!==this.Xa;return this.Xa=o,0!==s.length||u?{snapshot:new Al(this.query,e.tu,i,s,e.mutatedKeys,0==o,u,!1,!!r&&0<r.resumeToken.approximateByteSize()),au:a}:{au:a}}va(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({tu:this.tu,iu:new Cl,mutatedKeys:this.mutatedKeys,Ss:!1},!1)):{au:[]}}uu(e){return!this.Za.has(e)&&!!this.tu.has(e)&&!this.tu.get(e).hasLocalMutations}ou(e){e&&(e.addedDocuments.forEach(e=>this.Za=this.Za.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Za=this.Za.delete(e)),this.current=e.current)}_u(){if(!this.current)return[];let t=this.Ya,r=(this.Ya=L(),this.tu.forEach(e=>{this.uu(e.key)&&(this.Ya=this.Ya.add(e.key))}),[]);return t.forEach(e=>{this.Ya.has(e)||r.push(new ql(e))}),this.Ya.forEach(e=>{t.has(e)||r.push(new Ul(e))}),r}cu(e){this.Za=e.ks,this.Ya=L();var t=this.ru(e.documents);return this.applyChanges(t,!0)}lu(){return Al.fromInitialDocuments(this.query,this.tu,this.mutatedKeys,0===this.Xa,this.hasCachedResults)}}let zl="SyncEngine";class Gl{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class Kl{constructor(e){this.key=e,this.hu=!1}}class $l{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.Pu={},this.Tu=new Ni(e=>Si(e),Ti),this.Iu=new Map,this.Eu=new Set,this.Ru=new A(x.comparator),this.Au=new Map,this.Vu=new qo,this.du={},this.mu=new Map,this.fu=go.ar(),this.onlineState="Unknown",this.gu=void 0}get isPrimaryClient(){return!0===this.gu}}async function Hl(e,t,r,n){var i=await pu(e.localStore,bi(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await Ql(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&ol(e.remoteStore,i),o}async function Ql(n,e,t,r,i){n.pu=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ru(r);i.Ss&&(i=await vu(e.localStore,t.query,!1).then(({documents:e})=>t.view.ru(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return ih(e,t.targetId,s.au),s.snapshot})(n,e,t,r);var s=await vu(n.localStore,e,!0),a=new jl(e,s.ks),s=a.ru(s.documents),o=Ss.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(ih(n,t,s.au),new Gl(e,t,a));return n.Tu.set(e,o),n.Iu.has(t)?n.Iu.get(t).push(e):n.Iu.set(t,[e]),s.snapshot}async function Wl(t,e,r){var n=ch(t);try{let t=await((e,i)=>{let s=e,a=v.now(),o=i.reduce((e,t)=>e.add(t.key),L()),u,l;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=ki,r=L();return s.xs.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{u=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=zi(i.transform,e||null);null!=t&&(n=null===n?qn.empty():n).set(i.field,t)}return n||null})(r,u.get(r.key).overlayedDocument);null!=e&&t.push(new as(r.key,e,function i(e){let s=[];return Qr(e.fields,(e,r)=>{var n=new h([e]);if(Mn(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new en(s)}(e.value.mapValue),V.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(l=e).applyToLocalDocumentSet(u,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:l.batchId,changes:Mi(u)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.du[i.currentUser.toKey()];e=(e=e||new A(S)).insert(s,a),i.du[i.currentUser.toKey()]=e}await ah(n,t.changes),await yl(n.remoteStore)}catch(t){let e=Sl(t,"Failed to persist write");r.reject(e)}}async function Yl(e,t){let n=e;try{let e=await gu(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Au.get(t);r&&(y(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1,22616),0<e.addedDocuments.size?r.hu=!0:0<e.modifiedDocuments.size?y(r.hu,14607):0<e.removedDocuments.size&&(y(r.hu,42227),r.hu=!1))}),await ah(n,e,t)}catch(e){await ut(e)}}function Jl(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.Tu.forEach((e,t)=>{var r=t.view.va(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.ba)e.va(a)&&(r=!0)}),r&&Ml(o)}n.length&&s.Pu.J_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function Xl(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(y(null!==e,37113),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);th(n,t,r),eh(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await ah(n,e)}catch(r){await ut(r)}}async function Zl(t,r){let n=t;fl(n.remoteStore)||g(zl,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===Tt?r.resolve():((i=n.mu.get(e)||[]).push(r),n.mu.set(e,i))}catch(t){let e=Sl(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function eh(e,t){(e.mu.get(t)||[]).forEach(e=>{e.resolve()}),e.mu.delete(t)}function th(e,t,r){var n=e;let i=n.du[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.du[n.currentUser.toKey()]=i}}function rh(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.Iu.get(e))t.Tu.delete(n),r&&t.Pu.yu(n,r);t.Iu.delete(e),t.isPrimaryClient&&t.Vu.Gr(e).forEach(e=>{t.Vu.containsKey(e)||nh(t,e)})}function nh(e,t){e.Eu.delete(t.path.canonicalString());var r=e.Ru.get(t);null!==r&&(ul(e.remoteStore,r),e.Ru=e.Ru.remove(t),e.Au.delete(r),sh(e))}function ih(e,t,r){for(var n of r)n instanceof Ul?(e.Vu.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.Ru.get(a)||i.Eu.has(o)||(g(zl,"New document in limbo: "+a),i.Eu.add(o),sh(i))):n instanceof ql?(g(zl,"Document no longer in limbo: "+n.key),e.Vu.removeReference(n.key,t),e.Vu.containsKey(n.key)||nh(e,n.key)):T(19791,{wu:n});var i,s,a,o}function sh(e){for(;0<e.Eu.size&&e.Ru.size<e.maxConcurrentLimboResolutions;){var t=e.Eu.values().next().value,t=(e.Eu.delete(t),new x(E.fromString(t))),r=e.fu.next();e.Au.set(r,new Kl(t)),e.Ru=e.Ru.insert(t,r),ol(e.remoteStore,new ha(bi(yi(t.path)),r,"TargetPurposeLimboResolution",Et.ce))}}async function ah(e,t,n){let s=e,i=[],a=[],o=[];if(!s.Tu.isEmpty()){s.Tu.forEach((e,r)=>{o.push(s.pu(r,t,n).then(e=>{var t;(e||n)&&s.isPrimaryClient&&(t=e?!e.fromCache:n?.targetChanges.get(r.targetId)?.current,s.sharedClientState.updateQueryState(r.targetId,t?"current":"not-current")),e&&(i.push(e),t=iu.Es(r.targetId,e),a.push(t))}))}),await Promise.all(o),s.Pu.J_(i);{var r=s.localStore,u=a;let i=r;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>C.forEach(u,t=>C.forEach(t.Ts,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>C.forEach(t.Is,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(r){if(!mt(r))throw r;g(ou,"Failed to update sequence numbers: "+r)}for(let e of u){let n=e.targetId;if(!e.fromCache){let e=i.vs.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.vs=i.vs.insert(n,r)}}}}}async function oh(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.Xn(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):C.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await yl(i.remoteStore):"acknowledged"===r||"rejected"===r?(th(i,t,n||null),eh(i,t),i.localStore.mutationQueue.nr(t)):T(6720,"Unknown batchState",{bu:r}),await ah(i,s)):g(zl,"Cannot apply mutation batch with id: "+t)}async function uh(r,e){var n,i,s,a=r,o=[],u=[];for(let r of e){let t,e=a.Iu.get(r);if(e&&0!==e.length){t=await pu(a.localStore,bi(e[0]));for(let r of e){let e=a.Tu.get(r),t=(n=e,s=i=void 0,s=await vu((i=a).localStore,n.query,!0),s=n.view.cu(s),i.isPrimaryClient&&ih(i,n.targetId,s.au),await s);t.snapshot&&u.push(t.snapshot)}}else{let e=await wu(a.localStore,r);t=await pu(a.localStore,e),await Ql(a,lh(e),r,!1,t.resumeToken)}o.push(t)}return a.Pu.J_(u),o}function lh(e){return pi(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function hh(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=Yl.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Au.get(t);if(r&&r.hu)return L().add(r.key);{let r=L(),e=n.Iu.get(t);if(e)for(let t of e){let e=n.Tu.get(t);r=r.unionWith(e.view.nu)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Au.get(n)),s=r&&r.key;if(s){let e=new A(x.comparator),t=(e=e.insert(s,R.newNoDocument(s,w.min())),L().add(s)),r=new Ts(w.min(),new Map,new A(S),e,t);await Yl(i,r),i.Ru=i.Ru.remove(s),i.Au.delete(n),sh(i)}else await yu(i.localStore,n,!1).then(()=>rh(i,n,t)).catch(ut)}).bind(null,t),t.Pu.J_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.ba)e.Fa(r)&&(i=!0);t.wa=r}}i&&Ml(n)}).bind(null,t.eventManager),t.Pu.yu=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.ba)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function ch(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await du(r.localStore,t);th(r,n,null),eh(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await ah(r,e)}catch(e){await ut(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=Xl.bind(null,t),t}function dh(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=F(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Pi.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(Bl(i));var s=new Pl(i,r.serializer);let t=await r.Su();for(;t;){let e=await s.Ga(t);e&&n._updateProgress(e),t=await r.Su()}var a=await s.ja(e.localStore);return await ah(e,a.Ja,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Pi.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Ha)}catch(e){return _e(zl,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class fh{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=Wu(e.databaseInfo.databaseId),this.sharedClientState=this.Du(e),this.persistence=this.Cu(e),await this.persistence.start(),this.localStore=this.vu(e),this.gcScheduler=this.Fu(e,this.localStore),this.indexBackfillerScheduler=this.Mu(e,this.localStore)}Fu(e,t){return null}Mu(e,t){return null}vu(e){return hu(this.persistence,new au,e.initialUser,this.serializer)}Cu(e){return new $o(Qo.Vi,this.serializer)}Du(e){return new Lu}async terminate(){this.gcScheduler?.stop(),this.indexBackfillerScheduler?.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}fh.provider={build:()=>new fh};class gh extends fh{constructor(e){super(),this.cacheSizeBytes=e}Fu(e,t){y(this.persistence.referenceDelegate instanceof Wo,46915);var r=this.persistence.referenceDelegate.garbageCollector;return new Io(r,e.asyncQueue,t)}Cu(e){let t=void 0!==this.cacheSizeBytes?so.withCacheSize(this.cacheSizeBytes):so.DEFAULT;return new $o(e=>Wo.Vi(e,t),this.serializer)}}class mh extends fh{constructor(e,t,r){super(),this.xu=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.xu.initialize(this,e),await ch(this.xu.syncEngine),await yl(this.xu.remoteStore),await this.persistence.zi(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}vu(e){return hu(this.persistence,new au,e.initialUser,this.serializer)}Fu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new Io(r,e.asyncQueue,t)}Mu(e,t){var r=new It(t,this.persistence);return new bt(e.asyncQueue,r)}Cu(e){var t=nu(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?so.withCacheSize(this.cacheSizeBytes):so.DEFAULT;return new eu(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Hu(),Qu(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Du(e){return new Lu}}class ph extends mh{constructor(e,t){super(e,t,!1),this.xu=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.xu.syncEngine;this.sharedClientState instanceof Mu&&(this.sharedClientState.syncEngine={So:oh.bind(null,t),Do:(async function(e,r,n,t){var i=e;if(i.gu)g(zl,"Ignoring unexpected query state notification.");else{var s=i.Iu.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await _u(i.localStore,Ai(s[0])),t=Ts.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,N.EMPTY_BYTE_STRING);await ah(i,e,t);break}case"rejected":await yu(i.localStore,r,!0),rh(i,r,t);break;default:T(64155,n)}}}).bind(null,t),Co:(async function(e,t,n){let i=hh(e);if(i.gu){for(let r of t)if(i.Iu.has(r)&&i.sharedClientState.isActiveQueryTarget(r))g(zl,"Adding an already active target "+r);else{let e=await wu(i.localStore,r),t=await pu(i.localStore,e);await Ql(i,lh(e),t.targetId,!1,t.resumeToken),ol(i.remoteStore,t)}for(let r of n)i.Iu.has(r)&&await yu(i.localStore,r,!1).then(()=>{ul(i.remoteStore,r),rh(i,r)}).catch(ut)}}).bind(null,t),hs:(function(e){return e.localStore.persistence.hs()}).bind(null,t),bo:(async function(e,t){let r=e;return _u(r.localStore,t).then(e=>ah(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.zi(async e=>{{var t=this.xu.syncEngine,s=e;let i=t;if(hh(i),ch(i),!0===s&&!0!==i.gu){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await uh(i,e.toArray());i.gu=!0,await bl(i.remoteStore,!0);for(let e of t)ol(i.remoteStore,e)}else if(!1===s&&!1!==i.gu){let r=[],n=Promise.resolve();i.Iu.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(rh(i,t),yu(i.localStore,t,!0))),ul(i.remoteStore,t)}),await n,await uh(i,r);{s=i;let r=s;r.Au.forEach((e,t)=>{ul(r.remoteStore,t)}),r.Vu.zr(),r.Au=new Map,r.Ru=new A(x.comparator)}i.gu=!1,await bl(i.remoteStore,!1)}}await 0,this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}Du(e){var t,r=Hu();if(Mu.v(r))return t=nu(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new Mu(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new I(b.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class yh{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>Jl(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){g(zl,"User change. New user:",t.toKey());let e=await cu(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).mu.forEach(e=>{e.forEach(e=>{e.reject(new I(b.CANCELLED,n))})}),r.mu.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await ah(i,e.Ns)}}).bind(null,this.syncEngine),await bl(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new Nl}createDatastore(e){var t,r,n,i=Wu(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new $u(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new tl(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>Jl(this.syncEngine,e,0),i=new(Pu.v()?Pu:Vu),new il(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new $l(r,n,i,s,a,e),t&&(o.gu=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,g(nl,"RemoteStore shutting down."),t.Ea.add(5),await al(t),t.Aa.shutdown(),await!t.Va.set("Unknown"),this.datastore?.terminate(),this.eventManager?.terminate()}}function vh(t,r=10240){let n=0;return{async read(){var e;return n<t.byteLength?(e={value:t.slice(n,n+r),done:!1},n+=r,e):{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}yh.provider={build:()=>new yh};class wh{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ou(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ou(this.observer.error,e):d("Uncaught Error in snapshot listener:",e.toString()))}Nu(){this.muted=!0}Ou(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class _h{constructor(e,t){this.Bu=e,this.serializer=t,this.metadata=new m,this.buffer=new Uint8Array,this.Lu=new TextDecoder("utf-8"),this.ku().then(e=>{e&&e.Ua()?this.metadata.resolve(e.qa.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
22
- `+JSON.stringify(e?.qa)))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async Su(){return await this.getMetadata(),this.ku()}async ku(){var e,t,r=await this.Ku();return null===r?null:(t=this.Lu.decode(r),e=Number(t),isNaN(e)&&this.qu(`length string (${t}) is not valid number`),t=await this.Uu(e),new Vl(JSON.parse(t),r.length+e))}$u(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Ku(){for(;this.$u()<0&&!await this.Wu(););var e,t;return 0===this.buffer.length?null:((e=this.$u())<0&&this.qu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async Uu(e){for(;this.buffer.length<e;)await this.Wu()&&this.qu("Reached the end of bundle when more is expected.");var t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}qu(e){throw this.Bu.cancel(),new Error("Invalid bundle format: "+e)}async Wu(){var e,t=await this.Bu.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class bh{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new I(b.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let u=e,r={documents:t.map(e=>zs(u.serializer,e))},n=await u.jo("BatchGetDocuments",u.serializer.databaseId,E.emptyPath(),r,t.length),l=new Map,i=(n.forEach(e=>{t=u.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,y(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=Gs(r,n.found.name),s=F(n.found.updateTime),o=n.found.createTime?F(n.found.createTime):w.min(),a=new qn({mapValue:{fields:n.found.fields}}),R.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing,3894),y(!!n.readTime,22933),i=Gs(r,n.missing),s=F(n.readTime),R.newNoDocument(i,s)):T(7234,{result:e});l.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=l.get(e.toString());y(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new hs(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new cs(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>Js(t.serializer,e))};await t.Wo("Commit",t.serializer.databaseId,E.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw T(50498,{Gu:e.constructor.name});t=w.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(w.min())?V.exists(!1):V.updateTime(t):V.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return V.exists(!0);if(t.isEqual(w.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return V.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Ih{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new Yu(this.asyncQueue,"transaction_retry")}ju(){--this.zu,this.Hu()}Hu(){this.M_.p_(async()=>{let t=new bh(this.datastore),e=this.Ju(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Zu(e)}))}).catch(e=>{this.Zu(e)})})}Ju(e){try{var t=this.updateFunction(e);return!St(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Zu(e){0<this.zu&&this.Xu(e)?(--this.zu,this.asyncQueue.enqueueAndForget(()=>(this.Hu(),Promise.resolve()))):this.deferred.reject(e)}Xu(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!ps(t))}}let Eh="FirestoreClient";class Th{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=l.UNAUTHENTICATED,this.clientId=ke.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{g(Eh,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(g(Eh,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this._databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new m;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=Sl(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function Sh(e,t){e.asyncQueue.verifyOperationInProgress(),g(Eh,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await cu(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function xh(e,r){e.asyncQueue.verifyOperationInProgress();var t=await Ch(e);g(Eh,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>_l(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>_l(r.remoteStore,t)),e._onlineComponents=r}async function Ch(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){g(Eh,"Using user provided OfflineComponentProvider");try{await Sh(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;_e("Error using user provided cache. Falling back to memory cache: "+r),await Sh(t,new fh)}}else g(Eh,"Using default OfflineComponentProvider"),await Sh(t,new gh(void 0));var n;return t._offlineComponents}async function Ah(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(g(Eh,"Using user provided OnlineComponentProvider"),await xh(e,e._uninitializedComponentsProvider._online)):(g(Eh,"Using default OnlineComponentProvider"),await xh(e,new yh))),e._onlineComponents}function Dh(e){return Ch(e).then(e=>e.persistence)}function Nh(e){return Ch(e).then(e=>e.localStore)}function kh(e){return Ah(e).then(e=>e.remoteStore)}function Rh(e){return Ah(e).then(e=>e.syncEngine)}async function Oh(e){var t=await Ah(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=hh(e);let i;var s=n.Tu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.lu()):await Hl(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Tu.get(t),s=n.Iu.get(i.targetId);1<s.length?(n.Iu.set(i.targetId,s.filter(e=>!Ti(e,t))),n.Tu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await yu(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&ul(n.remoteStore,i.targetId),rh(n,i.targetId)}).catch(ut)):(rh(n,i.targetId),await yu(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Hl(hh(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Tu.get(t),i=r.Iu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),ul(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function Mh(r){return r.asyncQueue.enqueue(async()=>{var e=await Dh(r),t=await kh(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ea.add(0),await al(t),t.Va.set("Offline")})(t)})}function Lh(e,t){let r=new m;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new I(b.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=Sl(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await Nh(e),t,r)),r.promise}function Vh(e,t,l={}){let h=new m;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await Oh(e),s=e.asyncQueue,a=t,o=l,u=h;let r=new wh({next:e=>{r.Nu(),s.enqueueAndForget(()=>Ol(i,n));var t=e.docs.has(a);!t&&e.fromCache?u.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?u.reject(new I(b.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):u.resolve(e)},error:e=>u.reject(e)}),n=new Ll(yi(a.path),r,{includeMetadataChanges:!0,Ka:!0});return Rl(i,n)}}),h.promise}function Fh(e,t){let r=new m;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await vu(e,t,!0),i=new jl(t,n.ks),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=Sl(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await Nh(e),t,r)),r.promise}function Ph(o,u,l={}){let h=new m;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await Oh(o),i=o.asyncQueue,e=u,s=l,a=h;let t=new wh({next:e=>{t.Nu(),i.enqueueAndForget(()=>Ol(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new Ll(e,t,{includeMetadataChanges:!0,Ka:!0});return Rl(n,r)}}),h.promise}function Bh(r,e){let n=new wh(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await Oh(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.Nu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await Oh(r),t=n,e.Ca.delete(t)})}}function Uh(t,r,n){let i=new m;return t.asyncQueue.enqueueAndForget(async()=>{var e=await Ah(t).then(e=>e.datastore);new Ih(t.asyncQueue,e,n,r,i).ju()}),i.promise}function qh(e,t,r,n){r=r,t=Wu(t),s="string"==typeof r?vs().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return vh(e,t);if(e instanceof ArrayBuffer)return vh(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new _h(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{dh(await Rh(e),i,n)})}function jh(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await Nh(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Pi.getNamedQuery(e,r))}})}function zh(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let Gh=new Map;let Kh="firestore.googleapis.com";class $h{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=Kh,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}je("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=zh(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30<t.timeoutSeconds)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class Hh{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new $h({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new I(b.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new $h(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new Te;switch(e.type){case"firstParty":return new Ae(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=Gh.get(e))&&(g("ComponentProvider","Removing Datastore"),Gh.delete(e),t.terminate()),Promise.resolve();var e,t}}function Qh(n,e,t,i={}){n=p(n,Hh);let r=Y(e),s=n._getSettings(),a={...s,emulatorOptions:n._getEmulatorOptions()},o=e+":"+t;r&&((async e=>(await fetch(e,{credentials:"include"})).ok)("https://"+o),Z("Firestore",!0)),s.host!==Kh&&s.host!==o&&_e("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var u={...s,host:o,ssl:r,emulatorOptions:i};if(!oe(u,a)&&(n._setSettings(u),i.mockUserToken)){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=l.MOCK_USER;else{t=((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},[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,n._app?.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new l(e)}n._authCredentials=new Se(new Ee(t,r))}}class Wh{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new Wh(this.firestore,e,this._query)}}class P{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Yh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new P(this.firestore,e,this._key)}toJSON(){return{type:P._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(Qe(t,P._jsonSchema))return new P(e,r||null,new x(E.fromString(t.referencePath)))}}P._jsonSchemaVersion="firestore/documentReference/1.0",P._jsonSchema={type:t("string",P._jsonSchemaVersion),referencePath:t("string")};class Yh extends Wh{constructor(e,t,r){super(e,t,yi(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new P(this.firestore,null,new x(e))}withConverter(e){return new Yh(this.firestore,e,this._path)}}function Jh(e,t,...r){var n;if(e=_(e),qe("collection","path",t),e instanceof Hh)return Ge(n=E.fromString(t,...r)),new Yh(e,null,n);if(e instanceof P||e instanceof Yh)return Ge(n=e._path.child(E.fromString(t,...r))),new Yh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Xh(e,t,...r){var n;if(e=_(e),qe("doc","path",t=1===arguments.length?ke.newId():t),e instanceof Hh)return ze(n=E.fromString(t,...r)),new P(e,null,new x(n));if(e instanceof P||e instanceof Yh)return ze(n=e._path.child(E.fromString(t,...r))),new P(e.firestore,e instanceof Yh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Zh(e,t){return e=_(e),t=_(t),(e instanceof P||e instanceof Yh)&&(t instanceof P||t instanceof Yh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function ec(e,t){return e=_(e),t=_(t),e instanceof Wh&&t instanceof Wh&&e.firestore===t.firestore&&Ti(e._query,t._query)&&e.converter===t.converter}let tc="AsyncQueue";class rc{constructor(e=Promise.resolve()){this.Yu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new Yu(this,"async_queue_retry"),this._c=()=>{var e=Qu();e&&g(tc,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;var t=Qu();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){var t;this.ec||(this.ec=!0,this.sc=e||!1,(t=Qu())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c))}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new m;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Yu.push(e),this.lc()))}async lc(){if(0!==this.Yu.length){try{await this.Yu[0](),this.Yu.shift(),this.M_.reset()}catch(e){if(!mt(e))throw e;g(tc,"Operation failed with retryable error: "+e)}0<this.Yu.length&&this.M_.p_(()=>this.lc())}}cc(e){var t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,d("INTERNAL UNHANDLED ERROR: ",nc(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t}enqueueAfterDelay(e,t,r){this.uc(),-1<this.oc.indexOf(e)&&(t=0);var n=Tl.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&T(47125,{Pc:nc(this.nc)})}verifyOperationInProgress(){}async Tc(){for(var e;await(e=this.ac),e!==this.ac;);}Ic(e){for(var t of this.tc)if(t.timerId===e)return!0;return!1}Ec(t){return this.Tc().then(()=>{this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.tc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Tc()})}Rc(e){this.oc.push(e)}hc(e){var t=this.tc.indexOf(e);this.tc.splice(t,1)}}function nc(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}class ic{constructor(){this._progressObserver={},this._taskCompletionResolver=new m,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var sc,ac,n,oc;class B extends Hh{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new rc,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new rc(e),this._firestoreClient=void 0,await e)}}function uc(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||lc(e),e._firestoreClient}function lc(e){var t,r,n,i,s,a=e._freezeSettings(),o=(s=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=e._app?.options.apiKey,i=a,new fn(s,t,r,i.host,i.ssl,i.experimentalForceLongPolling,i.experimentalAutoDetectLongPolling,zh(i.experimentalLongPollingOptions),i.useFetchStreams,i.isUsingEmulator,n));e._componentsProvider||a.localCache?._offlineComponentProvider&&a.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new Th(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}function hc(e,t,r){if((e=p(e,B))._firestoreClient||e._terminated)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},lc(e)}function cc(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new m;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=nu(r._databaseId,r._persistenceKey),await(ct.v()?(t=e+"main",void await ct.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function dc(e){return(r=uc(e=p(e,B))).asyncQueue.enqueue(async()=>{var e=await Dh(r),t=await kh(r);return e.setNetworkEnabled(!0),(e=t).Ea.delete(0),sl(e)});var r}class fc{constructor(e){this._byteString=e}static fromBase64String(e){try{return new fc(N.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new fc(N.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:fc._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(Qe(e,fc._jsonSchema))return fc.fromBase64String(e.bytes)}}fc._jsonSchemaVersion="firestore/bytes/1.0",fc._jsonSchema={type:t("string",fc._jsonSchemaVersion),bytes:t("string")};class gc{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new I(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new h(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class mc{constructor(e){this._methodName=e}}class pc{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new I(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new I(b.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return S(this._lat,e._lat)||S(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:pc._jsonSchemaVersion}}static fromJSON(e){if(Qe(e,pc._jsonSchema))return new pc(e.latitude,e.longitude)}}pc._jsonSchemaVersion="firestore/geoPoint/1.0",pc._jsonSchema={type:t("string",pc._jsonSchemaVersion),latitude:t("number"),longitude:t("number")};class yc{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}toJSON(){return{type:yc._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(Qe(e,yc._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new yc(e.vectorValues);throw new I(b.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}yc._jsonSchemaVersion="firestore/vectorValue/1.0",yc._jsonSchema={type:t("string",yc._jsonSchemaVersion),vectorValues:t("object")};let vc=/^__.*__$/;class wc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new as(e,this.data,this.fieldMask,t,this.fieldTransforms):new ss(e,this.data,t,this.fieldTransforms)}}class _c{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new as(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function bc(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw T(40011,{dataSource:e})}}class Ic{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.validatePath(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(e){return new Ic({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePathSegment(e),t}childContextForFieldPath(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePath(),t}childContextForArray(e){return this.contextWith({path:void 0,arrayElement:!0})}createError(e){return jc(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}validatePath(){if(this.path)for(let e=0;e<this.path.length;e++)this.validatePathSegment(this.path.get(e))}validatePathSegment(e){if(0===e.length)throw this.createError("Document fields must not be empty");if(bc(this.dataSource)&&vc.test(e))throw this.createError('Document fields cannot begin and end with "__"')}}class Ec{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||Wu(e)}createContext(e,t,r,n=!1){return new Ic({dataSource:e,methodName:t,targetDoc:r,path:h.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function Tc(e){var t=e._freezeSettings(),r=Wu(e._databaseId);return new Ec(e._databaseId,!!t.ignoreUndefinedProperties,r)}function Sc(e,n,i,t,r,s={}){var a=e.createContext(s.merge||s.mergeFields?2:0,n,i,r),o=(Pc("Data must be an object, but it was:",a,t),Vc(t,a));let u,l;if(s.merge)u=new en(a.fieldMask),l=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=Bc(n,r,i);if(!a.contains(e))throw new I(b.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);zc(t,e)||t.push(e)}u=new en(t),l=a.fieldTransforms.filter(e=>u.covers(e.field))}else u=null,l=a.fieldTransforms;return new wc(new qn(o),u,l)}class xc extends mc{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.createError(this._methodName+"() can only appear at the top level of your update data"):e.createError(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof xc}}function Cc(e,t,r){return new Ic({dataSource:3,targetDoc:t.settings.targetDoc,methodName:e._methodName,arrayElement:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Ac extends mc{_toFieldTransform(e){return new Xi(e.path,new Gi)}isEqual(e){return e instanceof Ac}}class Dc extends mc{constructor(e,t){super(e),this.Ac=t}_toFieldTransform(e){let t=Cc(this,e,!0),r=this.Ac.map(e=>Lc(e,t)),n=new Ki(r);return new Xi(e.path,n)}isEqual(e){return e instanceof Dc&&oe(this.Ac,e.Ac)}}class Nc extends mc{constructor(e,t){super(e),this.Ac=t}_toFieldTransform(e){let t=Cc(this,e,!0),r=this.Ac.map(e=>Lc(e,t)),n=new Hi(r);return new Xi(e.path,n)}isEqual(e){return e instanceof Nc&&oe(this.Ac,e.Ac)}}class kc extends mc{constructor(e,t){super(e),this.Vc=t}_toFieldTransform(e){var t=new Wi(e.serializer,qi(e.serializer,this.Vc));return new Xi(e.path,t)}isEqual(e){return e instanceof kc&&this.Vc===e.Vc}}function Rc(e,i,s,t){let a=e.createContext(1,i,s),o=(Pc("Data must be an object, but it was:",a,t),[]),u=qn.empty();Qr(t,(e,t)=>{var r=qc(i,e,s),n=(t=_(t),a.childContextForFieldPath(r));if(t instanceof xc)o.push(r);else{let e=Lc(t,n);null!=e&&(o.push(r),u.set(r,e))}});var r=new en(o);return new _c(u,r,a.fieldTransforms)}function Oc(e,t,r,n,i,s){var a=e.createContext(1,t,r),o=[Bc(t,n,r)],u=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<s.length;f+=2)o.push(Bc(t,s[f])),u.push(s[f+1]);var l=[],h=qn.empty();for(let g=o.length-1;0<=g;--g)if(!zc(l,o[g])){let t=o[g];var c=_(u[g]);let r=a.childContextForFieldPath(t);if(c instanceof xc)l.push(t);else{let e=Lc(c,r);null!=e&&(l.push(t),h.set(t,e))}}var d=new en(l);return new _c(h,d,a.fieldTransforms)}function Mc(e,t,r,n=!1){return Lc(r,e.createContext(n?4:3,t))}function Lc(e,r){if(Fc(e=_(e)))return Pc("Unsupported field value:",r,e),Vc(e,r);if(e instanceof mc){{var t=e;var n=r;if(!bc(n.dataSource))throw n.createError(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.createError(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.arrayElement&&4!==r.dataSource)throw r.createError("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=Lc(s,a.childContextForArray(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var u,t=e,n=r;if(null===(t=_(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return qi(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return l=v.fromDate(t),{timestampValue:Ps(n.serializer,l)};if(t instanceof v)return l=new v(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:Ps(n.serializer,l)};if(t instanceof pc)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof fc)return{bytesValue:Bs(n.serializer,t._byteString)};if(t instanceof P){var l=n.databaseId,h=t.firestore._databaseId;if(h.isEqual(l))return{referenceValue:Us(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.createError(`Document reference is for database ${h.projectId}/${h.database} but should be for database ${l.projectId}/`+l.database)}if(t instanceof yc)return u=n,h=(e=t)instanceof yc?e.toArray():e,{mapValue:{fields:{[pn]:{stringValue:wn},[_n]:{arrayValue:{values:h.map(e=>{if("number"!=typeof e)throw u.createError("VectorValues must only contain numeric values.");return Bi(u.serializer,e)})}}}}};if(la(t))return t._toProto(n.serializer);throw n.createError("Unsupported field value: "+$e(t))}function Vc(e,n){let i={};return Wr(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Qr(e,(e,t)=>{var r=Lc(t,n.childContextForField(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function Fc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof v||e instanceof pc||e instanceof fc||e instanceof P||e instanceof mc||e instanceof yc||la(e))}function Pc(e,t,r){var n;if(!Fc(r)||!Ke(r))throw"an object"===(n=$e(r))?t.createError(e+" a custom object"):t.createError(e+" "+n)}function Bc(e,t,r){if((t=_(t))instanceof gc)return t._internalPath;if("string"==typeof t)return qc(e,t);throw jc("Field path arguments must be of type string or ",e,!1,void 0,r)}let Uc=new RegExp("[~\\*/\\[\\]]");function qc(t,r,n){if(0<=r.search(Uc))throw jc(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new gc(...r.split("."))._internalPath}catch(e){throw jc(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function jc(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,u=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(u+=" (found",s&&(u+=" in field "+n),a&&(u+=" in document "+i),u+=")"),new I(b.INVALID_ARGUMENT,o+e+u)}function zc(e,t){return e.some(e=>e.isEqual(t))}class Gc{convertValue(e,t="none"){switch(In(e)){case 0:return null;case 1:return e.booleanValue;case 2:return k(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(sn(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw T(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Qr(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[_n].arrayValue?.values?.map(e=>k(e.doubleValue));return new yc(t)}convertGeoPoint(e){return new pc(k(e.latitude),k(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=cn(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(dn(e));default:return null}}convertTimestamp(e){var t=nn(e);return new v(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=E.fromString(e),n=(y(ua(r),9688,{name:e}),new mn(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}class Kc extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new fc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}let $c="@firebase/firestore",Hc="4.10.0-canary.d818df4e8";function Qc(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class Wc{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new P(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Yc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){var t=this._document.data.field(Bc("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Yc extends Wc{data(){return super.data()}}function Jc(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Xc{}class Zc extends Xc{}function ed(e,t,...r){let n=[];t instanceof Xc&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof td).length;if(1<i||0<i&&0<s)throw new I(b.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class td extends Zc{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new td(e,t,r)}_apply(e){var t=this._parse(e);return ld(e._query,t),new Wh(e.firestore,e.converter,Ii(e._query,t))}_parse(e){var t=Tc(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),u=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new I(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){ud(u,o);let e=[];for(let t of u)e.push(od(a,n,t));r={arrayValue:{values:e}}}else r=od(a,n,u)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||ud(u,o),r=Mc(s,i,u,"in"===o||"not-in"===o);return O.create(e,o,r)}}}(class extends Xc{});class rd extends Zc{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new rd(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Kn(t,r)})(e._query,this._field,this._direction);return new Wh(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new mi(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class nd extends Zc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new nd(e,t,r)}_apply(e){return new Wh(e.firestore,e.converter,Ei(e._query,this._limit,this._limitType))}}class id extends Zc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new id(e,t,r)}_apply(e){var t,r=ad(e,this.type,this._docOrFields,this._inclusive);return new Wh(e.firestore,e.converter,(e=e._query,t=r,new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class sd extends Zc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new sd(e,t,r)}_apply(e){var t,r=ad(e,this.type,this._docOrFields,this._inclusive);return new Wh(e.firestore,e.converter,(e=e._query,t=r,new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function ad(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof Wc){var s=e._query,a=e.firestore._databaseId,o=r,u=n[0]._document,l=i;if(!u)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of _i(s))if(t.field.isKeyField())h.push(Dn(a,u.key));else{let e=u.data.field(t.field);if(hn(e))throw new I(b.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new I(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}h.push(e)}return new jn(h,l)}var t=Tc(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w<m.length;w++){var v=m[w];if(p[w].field.isKeyField()){if("string"!=typeof v)throw new I(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${g}(), but got a `+typeof v);if(!wi(c)&&-1!==v.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${g}() must be a plain document ID, but '${v}' contains a slash.`);let e=c.path.child(E.fromString(v));if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${g}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);y.push(Dn(d,t))}else{let e=Mc(f,g,v);y.push(e)}}return new jn(y,o)}function od(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new I(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!wi(t)&&-1!==r.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(E.fromString(r));if(x.isDocumentKey(n))return Dn(e,new x(n));throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof P)return Dn(e,r._key);throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${$e(r)}.`)}function ud(e,t){if(!Array.isArray(e)||0===e.length)throw new I(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function ld(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function hd(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class cd extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new fc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}class dd{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class fd extends Wc{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new gd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(Bc("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=fd._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}fd._jsonSchemaVersion="firestore/documentSnapshot/1.0",fd._jsonSchema={type:t("string",fd._jsonSchemaVersion),bundleSource:t("string","DocumentSnapshot"),bundleName:t("string"),bundle:t("string")};class gd extends fd{data(e={}){return super.data(e)}}class md{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new dd(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new gd(this._firestore,this._userDataWriter,e.key,e,new dd(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new I(b.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new gd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new dd(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new gd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new dd(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return T(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=md._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=ke.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function pd(e,t){return e instanceof fd&&t instanceof fd?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof md&&t instanceof md&&e._firestore===t._firestore&&ec(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}md._jsonSchemaVersion="firestore/querySnapshot/1.0",md._jsonSchema={type:t("string",md._jsonSchemaVersion),bundleSource:t("string","QuerySnapshot"),bundleName:t("string"),bundle:t("string")};let yd={maxAttempts:5};class vd{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=Tc(e)}set(e,t,r){this._verifyNotCommitted();var n=wd(e,this._firestore),i=hd(n.converter,t,r),i=Sc(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,V.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=wd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof gc?Oc(this._dataReader,"WriteBatch.update",i._key,t,r,n):Rc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,V.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=wd(e,this._firestore);return this._mutations=this._mutations.concat(new hs(t._key,V.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new I(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function wd(e,t){if((e=_(e)).firestore!==t)throw new I(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class _d extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=Tc(e)}get(e){let r=wd(e,this._firestore),n=new cd(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return T(24041);var t=e[0];if(t.isFoundDocument())return new Wc(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Wc(this._firestore,n,r._key,null,r.converter);throw T(18433,{doc:t})})}set(e,t,r){var n=wd(e,this._firestore),i=hd(n.converter,t,r),i=Sc(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=wd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof gc?Oc(this._dataReader,"Transaction.update",i._key,t,r,n):Rc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=wd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=wd(e,this._firestore),r=new Kc(this._firestore);return super.get(e).then(e=>new fd(this._firestore,r,t._key,e._document,new dd(!1,!1),t.converter))}}function bd(e,t,r){e=p(e,P);var n=p(e.firestore,B),i=hd(e.converter,t,r);return Td(n,[Sc(Tc(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,V.none())])}function Id(e,t,r,...n){e=p(e,P);var i=p(e.firestore,B),s=Tc(i);return Td(i,[("string"==typeof(t=_(t))||t instanceof gc?Oc(s,"updateDoc",e._key,t,r,n):Rc(s,"updateDoc",e._key,t)).toMutation(e._key,V.exists(!0))])}function Ed(n,...i){n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||Qc(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(Qc(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,u;if(n instanceof P)o=p(n.firestore,B),u=yi(n._key.path),a={next:e=>{i[s]&&i[s](Sd(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=p(n,Wh),r=(o=p(t.firestore,B),u=t._query,new Kc(o));a={next:e=>{i[s]&&i[s](new md(o,r,t,e))},error:i[s+1],complete:i[s+2]},Jc(n._query)}var l=uc(o);{var h=l,c=u,d=r,f=a;let e=new wh(f),t=new Ll(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>Rl(await Oh(h),t)),()=>{e.Nu(),h.asyncQueue.enqueueAndForget(async()=>Ol(await Oh(h),t))}}}function Td(e,t){var r=uc(e);{var n=r,i=t;let e=new m;return n.asyncQueue.enqueueAndForget(async()=>Wl(await Rh(n),i,e)),e.promise}}function Sd(e,t,r){var n=r.docs.get(t._key),i=new Kc(e);return new fd(e,i,t._key,n,new dd(r.hasPendingWrites,r.fromCache),t.converter)}ac=!0,n=Xd.SDK_VERSION,ye=n,Xd._registerComponent(new le("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new B(new xe(e.getProvider("auth-internal")),new Ne(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new mn(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:ac,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Xd.registerVersion($c,Hc,sc),Xd.registerVersion($c,Hc,"esm2020");function xd(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Cd(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function Ad(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class Dd{constructor(e){this._delegate=e}static fromBase64String(e){return Ad(),new Dd(fc.fromBase64String(e))}static fromUint8Array(e){return Cd(),new Dd(fc.fromUint8Array(e))}toBase64(){return Ad(),this._delegate.toBase64()}toUint8Array(){return Cd(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function Nd(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class kd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};_e("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return hc(e,yh.provider,{build:e=>new mh(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{_e("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();hc(e,yh.provider,{build:e=>new ph(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return cc(e._delegate)}}class Rd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof mn||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||_e("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){Qh(this._delegate,e,t,r)}enableNetwork(){return dc(this._delegate)}disableNetwork(){return Mh(uc(p(this._delegate,B)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,je("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=uc(t=p(t,B));let e=new m;return r.asyncQueue.enqueueAndForget(async()=>Zl(await Rh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,Bh(uc(t=p(t,B)),Qc(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new $d(this,Jh(this._delegate,e))}catch(e){throw Pd(e,"collection()","Firestore.collection()")}}doc(e){try{return new Fd(this,Xh(this._delegate,e))}catch(e){throw Pd(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new zd(this,((e,t)=>{if(e=p(e,Hh),qe("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Wh(e,null,(e=t,new mi(E.emptyPath(),e)))})(this._delegate,e))}catch(e){throw Pd(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){var r=this._delegate,n=e=>t(new Md(this,e)),e=void 0,i=(r=p(r,B),{...yd,...e});if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");return Uh(uc(r),e=>n(new _d(r,e)),i)}batch(){return uc(this._delegate),new Ld(new vd(this._delegate,e=>Td(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=uc(t=p(t,B)),n=new ic,qh(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,jh(uc(t=p(t,B)),e).then(e=>e?new Wh(t,null,e.query):null).then(e=>e?new zd(this,e):null);var t}}class Od extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Dd(new fc(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Fd.forKey(t,this.firestore,null)}}class Md{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}get(e){let t=Hd(e);return this._delegate.get(t).then(e=>new qd(this._firestore,new fd(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=Hd(e);return r?(xd("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Hd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Hd(e);return this._delegate.delete(t),this}}class Ld{constructor(e){this._delegate=e}set(e,t,r){var n=Hd(e);return r?(xd("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Hd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Hd(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Vd{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new gd(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new jd(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=Vd.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Vd(e,new Od(e),t),n.set(t,i)),i}}Vd.INSTANCES=new WeakMap;class Fd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Fd(t,new P(t._delegate,r,new x(e)))}static forKey(e,t,r){return new Fd(t,new P(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new $d(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new $d(this.firestore,Jh(this._delegate,e))}catch(e){throw Pd(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof P&&Zh(this._delegate,e)}set(e,t){t=xd("DocumentReference.set",t);try{return t?bd(this._delegate,e,t):bd(this._delegate,e)}catch(e){throw Pd(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Id(this._delegate,e):Id(this._delegate,e,t,...r)}catch(e){throw Pd(e,"updateDoc()","DocumentReference.update()")}}delete(){return Td(p((e=this._delegate).firestore,B),[new hs(e._key,V.none())]);var e}onSnapshot(...e){var t=Bd(e),r=Ud(e,e=>new qd(this.firestore,new fd(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Ed(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Lh(e,t._key).then(e=>new fd(r,n,t._key,e,new dd(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r);return Vh(e,t._key,{source:"server"}).then(e=>Sd(r,t,e))}:t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r);return Vh(e,t._key).then(e=>Sd(r,t,e))})(this._delegate)).then(e=>new qd(this.firestore,new fd(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Fd(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Pd(e,t,r){return e.message=e.message.replace(t,r),e}function Bd(e){for(var t of e)if("object"==typeof t&&!Nd(t))return t;return{}}function Ud(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=Nd(e[0])?e[0]:Nd(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]}).error?.bind(r),complete:r.complete?.bind(r)}}class qd{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Fd(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return pd(this._delegate,e._delegate)}}class jd extends qd{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||T(57014,e),t}}class zd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}where(e,t,r){try{return new zd(this.firestore,ed(this._delegate,(n=r,i=t,s=Bc("where",e),td._create(s,i,n))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new zd(this.firestore,ed(this._delegate,([r,n="asc"]=[e,t],i=n,s=Bc("orderBy",r),rd._create(s,i))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new zd(this.firestore,ed(this._delegate,(He("limit",t=e),nd._create("limit",t,"F"))))}catch(e){throw Pd(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new zd(this.firestore,ed(this._delegate,(He("limitToLast",t=e),nd._create("limitToLast",t,"L"))))}catch(e){throw Pd(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],id._create("startAt",t,!0))))}catch(e){throw Pd(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],id._create("startAfter",t,!1))))}catch(e){throw Pd(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],sd._create("endBefore",t,!1))))}catch(e){throw Pd(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],sd._create("endAt",t,!0))))}catch(e){throw Pd(e,"endAt()","Query.endAt()")}var t}isEqual(e){return ec(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Fh(e,t._query).then(e=>new md(r,n,t,e))}:"server"===e?.source?t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Ph(e,t._query,{source:"server"}).then(e=>new md(r,n,t,e))}:t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Jc(t._query),Ph(e,t._query).then(e=>new md(r,n,t,e))})(this._delegate)).then(e=>new Kd(this.firestore,new md(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Bd(e),r=Ud(e,e=>new Kd(this.firestore,new md(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Ed(this._delegate,t,r)}withConverter(e){return new zd(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class Gd{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new jd(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class Kd{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new zd(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new jd(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new Gd(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new jd(this._firestore,e))})}isEqual(e){return pd(this._delegate,e._delegate)}}class $d extends zd{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new Fd(this.firestore,e):null}doc(e){try{return void 0===e?new Fd(this.firestore,Xh(this._delegate)):new Fd(this.firestore,Xh(this._delegate,e))}catch(e){throw Pd(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=p(e.firestore,B),n=Xh(e),i=hd(e.converter,t),s=Tc(e.firestore);return Td(r,[Sc(s,"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,V.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Fd(this.firestore,e))}isEqual(e){return Zh(this._delegate,e._delegate)}withConverter(e){return new $d(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Hd(e){return p(e,P)}class Qd{static serverTimestamp(){var e=new Ac("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Qd(e)}static delete(){var e=new xc("deleteField");return e._methodName="FieldValue.delete",new Qd(e)}static arrayUnion(...e){[...e]=[...e];var t=new Dc("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Qd(t)}static arrayRemove(...e){[...e]=[...e];var t=new Nc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Qd(t)}static increment(e){e=e;var t=new kc("increment",e);return t._methodName="FieldValue.increment",new Qd(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let Wd={Firestore:Rd,GeoPoint:pc,Timestamp:v,Blob:Dd,Transaction:Md,WriteBatch:Ld,DocumentReference:Fd,DocumentSnapshot:qd,Query:zd,QueryDocumentSnapshot:jd,QuerySnapshot:Kd,CollectionReference:$d,FieldPath:class Yd{constructor(...e){this._delegate=new gc(...e)}static documentId(){return new Yd(h.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof gc&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Qd,setLogLevel:function(e){e=e,ve.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};n=s.default,oc=(e,t)=>new Rd(e,t,new kd),n.INTERNAL.registerComponent(new le("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return oc(t,r)},"PUBLIC").setServiceProps({...Wd})),n.registerVersion("@firebase/firestore-compat","0.4.4-canary.d818df4e8")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}});
22
+ `+JSON.stringify(e?.qa)))},e=>this.metadata.reject(e))}close(){return this.Bu.cancel()}async getMetadata(){return this.metadata.promise}async Su(){return await this.getMetadata(),this.ku()}async ku(){var e,t,r=await this.Ku();return null===r?null:(t=this.Lu.decode(r),e=Number(t),isNaN(e)&&this.qu(`length string (${t}) is not valid number`),t=await this.Uu(e),new Vl(JSON.parse(t),r.length+e))}$u(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async Ku(){for(;this.$u()<0&&!await this.Wu(););var e,t;return 0===this.buffer.length?null:((e=this.$u())<0&&this.qu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async Uu(e){for(;this.buffer.length<e;)await this.Wu()&&this.qu("Reached the end of bundle when more is expected.");var t=this.Lu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}qu(e){throw this.Bu.cancel(),new Error("Invalid bundle format: "+e)}async Wu(){var e,t=await this.Bu.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class bh{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new I(b.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let u=e,r={documents:t.map(e=>zs(u.serializer,e))},n=await u.jo("BatchGetDocuments",u.serializer.databaseId,E.emptyPath(),r,t.length),l=new Map,i=(n.forEach(e=>{t=u.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,y(!!(n=e).found,43571),n.found.name,n.found.updateTime,i=Gs(r,n.found.name),s=F(n.found.updateTime),o=n.found.createTime?F(n.found.createTime):w.min(),a=new qn({mapValue:{fields:n.found.fields}}),R.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing,3894),y(!!n.readTime,22933),i=Gs(r,n.missing),s=F(n.readTime),R.newNoDocument(i,s)):T(7234,{result:e});l.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=l.get(e.toString());y(!!t,55234,{key:e}),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new hs(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new cs(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>Js(t.serializer,e))};await t.Wo("Commit",t.serializer.databaseId,E.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw T(50498,{Gu:e.constructor.name});t=w.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(w.min())?V.exists(!1):V.updateTime(t):V.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return V.exists(!0);if(t.isEqual(w.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return V.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Ih{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.zu=r.maxAttempts,this.M_=new Yu(this.asyncQueue,"transaction_retry")}ju(){--this.zu,this.Hu()}Hu(){this.M_.p_(async()=>{let t=new bh(this.datastore),e=this.Ju(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Zu(e)}))}).catch(e=>{this.Zu(e)})})}Ju(e){try{var t=this.updateFunction(e);return!St(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Zu(e){0<this.zu&&this.Xu(e)?(--this.zu,this.asyncQueue.enqueueAndForget(()=>(this.Hu(),Promise.resolve()))):this.deferred.reject(e)}Xu(e){var t;return"FirebaseError"===e?.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!ps(t))}}let Eh="FirestoreClient";class Th{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this._databaseInfo=n,this.user=l.UNAUTHENTICATED,this.clientId=ke.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{g(Eh,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(g(Eh,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this._databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new m;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=Sl(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function Sh(e,t){e.asyncQueue.verifyOperationInProgress(),g(Eh,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await cu(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function xh(e,r){e.asyncQueue.verifyOperationInProgress();var t=await Ch(e);g(Eh,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>_l(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>_l(r.remoteStore,t)),e._onlineComponents=r}async function Ch(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){g(Eh,"Using user provided OfflineComponentProvider");try{await Sh(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;_e("Error using user provided cache. Falling back to memory cache: "+r),await Sh(t,new fh)}}else g(Eh,"Using default OfflineComponentProvider"),await Sh(t,new gh(void 0));var n;return t._offlineComponents}async function Ah(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(g(Eh,"Using user provided OnlineComponentProvider"),await xh(e,e._uninitializedComponentsProvider._online)):(g(Eh,"Using default OnlineComponentProvider"),await xh(e,new yh))),e._onlineComponents}function Dh(e){return Ch(e).then(e=>e.persistence)}function Nh(e){return Ch(e).then(e=>e.localStore)}function kh(e){return Ah(e).then(e=>e.remoteStore)}function Rh(e){return Ah(e).then(e=>e.syncEngine)}async function Oh(e){var t=await Ah(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=hh(e);let i;var s=n.Tu.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.lu()):await Hl(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.Tu.get(t),s=n.Iu.get(i.targetId);1<s.length?(n.Iu.set(i.targetId,s.filter(e=>!Ti(e,t))),n.Tu.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await yu(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&ul(n.remoteStore,i.targetId),rh(n,i.targetId)}).catch(ut)):(rh(n,i.targetId),await yu(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Hl(hh(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.Tu.get(t),i=r.Iu.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),ul(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function Mh(r){return r.asyncQueue.enqueue(async()=>{var e=await Dh(r),t=await kh(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.Ea.add(0),await al(t),t.Va.set("Offline")})(t)})}function Lh(e,t){let r=new m;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new I(b.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=Sl(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await Nh(e),t,r)),r.promise}function Vh(e,t,l={}){let h=new m;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await Oh(e),s=e.asyncQueue,a=t,o=l,u=h;let r=new wh({next:e=>{r.Nu(),s.enqueueAndForget(()=>Ol(i,n));var t=e.docs.has(a);!t&&e.fromCache?u.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?u.reject(new I(b.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):u.resolve(e)},error:e=>u.reject(e)}),n=new Ll(yi(a.path),r,{includeMetadataChanges:!0,Ka:!0});return Rl(i,n)}}),h.promise}function Fh(e,t){let r=new m;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await vu(e,t,!0),i=new jl(t,n.ks),s=i.ru(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=Sl(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await Nh(e),t,r)),r.promise}function Ph(o,u,l={}){let h=new m;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await Oh(o),i=o.asyncQueue,e=u,s=l,a=h;let t=new wh({next:e=>{t.Nu(),i.enqueueAndForget(()=>Ol(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new Ll(e,t,{includeMetadataChanges:!0,Ka:!0});return Rl(n,r)}}),h.promise}function Bh(r,e){let n=new wh(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await Oh(r),t=n,e.Ca.add(t),void t.next();var e,t}),()=>{n.Nu(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await Oh(r),t=n,e.Ca.delete(t)})}}function Uh(t,r,n){let i=new m;return t.asyncQueue.enqueueAndForget(async()=>{var e=await Ah(t).then(e=>e.datastore);new Ih(t.asyncQueue,e,n,r,i).ju()}),i.promise}function qh(e,t,r,n){r=r,t=Wu(t),s="string"==typeof r?vs().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return vh(e,t);if(e instanceof ArrayBuffer)return vh(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new _h(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{dh(await Rh(e),i,n)})}function jh(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await Nh(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Pi.getNamedQuery(e,r))}})}function zh(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let Gh=new Map;let Kh="firestore.googleapis.com";class $h{constructor(e){if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=Kh,this.ssl=!0}else this.host=e.host,this.ssl=e.ssl??!0;if(this.isUsingEmulator=void 0!==e.emulatorOptions,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}je("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=zh(e.experimentalLongPollingOptions??{});var t=this.experimentalLongPollingOptions;if(void 0!==t.timeoutSeconds){if(isNaN(t.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (must not be NaN)`);if(t.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (minimum allowed value is 5)`);if(30<t.timeoutSeconds)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${t.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class Hh{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new $h({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new I(b.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new $h(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new Te;switch(e.type){case"firstParty":return new Ae(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=Gh.get(e))&&(g("ComponentProvider","Removing Datastore"),Gh.delete(e),t.terminate()),Promise.resolve();var e,t}}function Qh(n,e,t,i={}){n=p(n,Hh);let r=Y(e),s=n._getSettings(),a={...s,emulatorOptions:n._getEmulatorOptions()},o=e+":"+t;r&&((async e=>(await fetch(e,{credentials:"include"})).ok)("https://"+o),Z("Firestore",!0)),s.host!==Kh&&s.host!==o&&_e("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var u={...s,host:o,ssl:r,emulatorOptions:i};if(!oe(u,a)&&(n._setSettings(u),i.mockUserToken)){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=l.MOCK_USER;else{t=((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},[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,n._app?.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new l(e)}n._authCredentials=new Se(new Ee(t,r))}}class Wh{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new Wh(this.firestore,e,this._query)}}class P{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Yh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new P(this.firestore,e,this._key)}toJSON(){return{type:P._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,t,r){if(Qe(t,P._jsonSchema))return new P(e,r||null,new x(E.fromString(t.referencePath)))}}P._jsonSchemaVersion="firestore/documentReference/1.0",P._jsonSchema={type:t("string",P._jsonSchemaVersion),referencePath:t("string")};class Yh extends Wh{constructor(e,t,r){super(e,t,yi(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new P(this.firestore,null,new x(e))}withConverter(e){return new Yh(this.firestore,e,this._path)}}function Jh(e,t,...r){var n;if(e=_(e),qe("collection","path",t),e instanceof Hh)return Ge(n=E.fromString(t,...r)),new Yh(e,null,n);if(e instanceof P||e instanceof Yh)return Ge(n=e._path.child(E.fromString(t,...r))),new Yh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Xh(e,t,...r){var n;if(e=_(e),qe("doc","path",t=1===arguments.length?ke.newId():t),e instanceof Hh)return ze(n=E.fromString(t,...r)),new P(e,null,new x(n));if(e instanceof P||e instanceof Yh)return ze(n=e._path.child(E.fromString(t,...r))),new P(e.firestore,e instanceof Yh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to doc() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Zh(e,t){return e=_(e),t=_(t),(e instanceof P||e instanceof Yh)&&(t instanceof P||t instanceof Yh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function ec(e,t){return e=_(e),t=_(t),e instanceof Wh&&t instanceof Wh&&e.firestore===t.firestore&&Ti(e._query,t._query)&&e.converter===t.converter}let tc="AsyncQueue";class rc{constructor(e=Promise.resolve()){this.Yu=[],this.ec=!1,this.tc=[],this.nc=null,this.rc=!1,this.sc=!1,this.oc=[],this.M_=new Yu(this,"async_queue_retry"),this._c=()=>{var e=Qu();e&&g(tc,"Visibility state changed to "+e.visibilityState),this.M_.w_()},this.ac=e;var t=Qu();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this._c)}get isShuttingDown(){return this.ec}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.uc(),this.cc(e)}enterRestrictedMode(e){var t;this.ec||(this.ec=!0,this.sc=e||!1,(t=Qu())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this._c))}enqueue(e){if(this.uc(),this.ec)return new Promise(()=>{});let t=new m;return this.cc(()=>this.ec&&this.sc?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Yu.push(e),this.lc()))}async lc(){if(0!==this.Yu.length){try{await this.Yu[0](),this.Yu.shift(),this.M_.reset()}catch(e){if(!mt(e))throw e;g(tc,"Operation failed with retryable error: "+e)}0<this.Yu.length&&this.M_.p_(()=>this.lc())}}cc(e){var t=this.ac.then(()=>(this.rc=!0,e().catch(e=>{throw this.nc=e,this.rc=!1,d("INTERNAL UNHANDLED ERROR: ",nc(e)),e}).then(e=>(this.rc=!1,e))));return this.ac=t}enqueueAfterDelay(e,t,r){this.uc(),-1<this.oc.indexOf(e)&&(t=0);var n=Tl.createAndSchedule(this,e,t,r,e=>this.hc(e));return this.tc.push(n),n}uc(){this.nc&&T(47125,{Pc:nc(this.nc)})}verifyOperationInProgress(){}async Tc(){for(var e;await(e=this.ac),e!==this.ac;);}Ic(e){for(var t of this.tc)if(t.timerId===e)return!0;return!1}Ec(t){return this.Tc().then(()=>{this.tc.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.tc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Tc()})}Rc(e){this.oc.push(e)}hc(e){var t=this.tc.indexOf(e);this.tc.splice(t,1)}}function nc(e){let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t}class ic{constructor(){this._progressObserver={},this._taskCompletionResolver=new m,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var sc,ac,n,oc;class B extends Hh{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new rc,this._persistenceKey=n?.name||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new rc(e),this._firestoreClient=void 0,await e)}}function uc(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||lc(e),e._firestoreClient}function lc(e){var t,r,n,i,s,a=e._freezeSettings(),o=(s=e._databaseId,t=e._app?.options.appId||"",r=e._persistenceKey,n=e._app?.options.apiKey,i=a,new fn(s,t,r,i.host,i.ssl,i.experimentalForceLongPolling,i.experimentalAutoDetectLongPolling,zh(i.experimentalLongPollingOptions),i.useFetchStreams,i.isUsingEmulator,n));e._componentsProvider||a.localCache?._offlineComponentProvider&&a.localCache?._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new Th(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(s=e._componentsProvider,a=s?._online.build(),{_offline:s?._offline.build(a),_online:a}))}function hc(e,t,r){if((e=p(e,B))._firestoreClient||e._terminated)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},lc(e)}function cc(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new m;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=nu(r._databaseId,r._persistenceKey),await(ct.v()?(t=e+"main",void await ct.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function dc(e){return(r=uc(e=p(e,B))).asyncQueue.enqueue(async()=>{var e=await Dh(r),t=await kh(r);return e.setNetworkEnabled(!0),(e=t).Ea.delete(0),sl(e)});var r}class fc{constructor(e){this._byteString=e}static fromBase64String(e){try{return new fc(N.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new fc(N.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}toJSON(){return{type:fc._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(Qe(e,fc._jsonSchema))return fc.fromBase64String(e.bytes)}}fc._jsonSchemaVersion="firestore/bytes/1.0",fc._jsonSchema={type:t("string",fc._jsonSchemaVersion),bytes:t("string")};class gc{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new I(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new h(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class mc{constructor(e){this._methodName=e}}class pc{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new I(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new I(b.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return S(this._lat,e._lat)||S(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:pc._jsonSchemaVersion}}static fromJSON(e){if(Qe(e,pc._jsonSchema))return new pc(e.latitude,e.longitude)}}pc._jsonSchemaVersion="firestore/geoPoint/1.0",pc._jsonSchema={type:t("string",pc._jsonSchemaVersion),latitude:t("number"),longitude:t("number")};class yc{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}toJSON(){return{type:yc._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(Qe(e,yc._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(e=>"number"==typeof e))return new yc(e.vectorValues);throw new I(b.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}}yc._jsonSchemaVersion="firestore/vectorValue/1.0",yc._jsonSchema={type:t("string",yc._jsonSchemaVersion),vectorValues:t("object")};let vc=/^__.*__$/;class wc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new as(e,this.data,this.fieldMask,t,this.fieldTransforms):new ss(e,this.data,t,this.fieldTransforms)}}class _c{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new as(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function bc(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw T(40011,{dataSource:e})}}class Ic{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.validatePath(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get dataSource(){return this.settings.dataSource}contextWith(e){return new Ic({...this.settings,...e},this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}childContextForField(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePathSegment(e),t}childContextForFieldPath(e){var t=this.path?.child(e),t=this.contextWith({path:t,arrayElement:!1});return t.validatePath(),t}childContextForArray(e){return this.contextWith({path:void 0,arrayElement:!0})}createError(e){return jc(e,this.settings.methodName,this.settings.hasConverter||!1,this.path,this.settings.targetDoc)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}validatePath(){if(this.path)for(let e=0;e<this.path.length;e++)this.validatePathSegment(this.path.get(e))}validatePathSegment(e){if(0===e.length)throw this.createError("Document fields must not be empty");if(bc(this.dataSource)&&vc.test(e))throw this.createError('Document fields cannot begin and end with "__"')}}class Ec{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||Wu(e)}createContext(e,t,r,n=!1){return new Ic({dataSource:e,methodName:t,targetDoc:r,path:h.emptyPath(),arrayElement:!1,hasConverter:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function Tc(e){var t=e._freezeSettings(),r=Wu(e._databaseId);return new Ec(e._databaseId,!!t.ignoreUndefinedProperties,r)}function Sc(e,n,i,t,r,s={}){var a=e.createContext(s.merge||s.mergeFields?2:0,n,i,r),o=(Pc("Data must be an object, but it was:",a,t),Vc(t,a));let u,l;if(s.merge)u=new en(a.fieldMask),l=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=Bc(n,r,i);if(!a.contains(e))throw new I(b.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);zc(t,e)||t.push(e)}u=new en(t),l=a.fieldTransforms.filter(e=>u.covers(e.field))}else u=null,l=a.fieldTransforms;return new wc(new qn(o),u,l)}class xc extends mc{_toFieldTransform(e){if(2!==e.dataSource)throw 1===e.dataSource?e.createError(this._methodName+"() can only appear at the top level of your update data"):e.createError(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof xc}}function Cc(e,t,r){return new Ic({dataSource:3,targetDoc:t.settings.targetDoc,methodName:e._methodName,arrayElement:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class Ac extends mc{_toFieldTransform(e){return new Xi(e.path,new Gi)}isEqual(e){return e instanceof Ac}}class Dc extends mc{constructor(e,t){super(e),this.Ac=t}_toFieldTransform(e){let t=Cc(this,e,!0),r=this.Ac.map(e=>Lc(e,t)),n=new Ki(r);return new Xi(e.path,n)}isEqual(e){return e instanceof Dc&&oe(this.Ac,e.Ac)}}class Nc extends mc{constructor(e,t){super(e),this.Ac=t}_toFieldTransform(e){let t=Cc(this,e,!0),r=this.Ac.map(e=>Lc(e,t)),n=new Hi(r);return new Xi(e.path,n)}isEqual(e){return e instanceof Nc&&oe(this.Ac,e.Ac)}}class kc extends mc{constructor(e,t){super(e),this.Vc=t}_toFieldTransform(e){var t=new Wi(e.serializer,qi(e.serializer,this.Vc));return new Xi(e.path,t)}isEqual(e){return e instanceof kc&&this.Vc===e.Vc}}function Rc(e,i,s,t){let a=e.createContext(1,i,s),o=(Pc("Data must be an object, but it was:",a,t),[]),u=qn.empty();Qr(t,(e,t)=>{var r=qc(i,e,s),n=(t=_(t),a.childContextForFieldPath(r));if(t instanceof xc)o.push(r);else{let e=Lc(t,n);null!=e&&(o.push(r),u.set(r,e))}});var r=new en(o);return new _c(u,r,a.fieldTransforms)}function Oc(e,t,r,n,i,s){var a=e.createContext(1,t,r),o=[Bc(t,n,r)],u=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<s.length;f+=2)o.push(Bc(t,s[f])),u.push(s[f+1]);var l=[],h=qn.empty();for(let g=o.length-1;0<=g;--g)if(!zc(l,o[g])){let t=o[g];var c=_(u[g]);let r=a.childContextForFieldPath(t);if(c instanceof xc)l.push(t);else{let e=Lc(c,r);null!=e&&(l.push(t),h.set(t,e))}}var d=new en(l);return new _c(h,d,a.fieldTransforms)}function Mc(e,t,r,n=!1){return Lc(r,e.createContext(n?4:3,t))}function Lc(e,r){if(Fc(e=_(e)))return Pc("Unsupported field value:",r,e),Vc(e,r);if(e instanceof mc){{var t=e;var n=r;if(!bc(n.dataSource))throw n.createError(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.createError(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.arrayElement&&4!==r.dataSource)throw r.createError("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=Lc(s,a.childContextForArray(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var u,t=e,n=r;if(null===(t=_(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return qi(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return l=v.fromDate(t),{timestampValue:Ps(n.serializer,l)};if(t instanceof v)return l=new v(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:Ps(n.serializer,l)};if(t instanceof pc)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof fc)return{bytesValue:Bs(n.serializer,t._byteString)};if(t instanceof P){var l=n.databaseId,h=t.firestore._databaseId;if(h.isEqual(l))return{referenceValue:Us(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.createError(`Document reference is for database ${h.projectId}/${h.database} but should be for database ${l.projectId}/`+l.database)}if(t instanceof yc)return u=n,h=(e=t)instanceof yc?e.toArray():e,{mapValue:{fields:{[pn]:{stringValue:wn},[_n]:{arrayValue:{values:h.map(e=>{if("number"!=typeof e)throw u.createError("VectorValues must only contain numeric values.");return Bi(u.serializer,e)})}}}}};if(la(t))return t._toProto(n.serializer);throw n.createError("Unsupported field value: "+$e(t))}function Vc(e,n){let i={};return Wr(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):Qr(e,(e,t)=>{var r=Lc(t,n.childContextForField(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function Fc(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof v||e instanceof pc||e instanceof fc||e instanceof P||e instanceof mc||e instanceof yc||la(e))}function Pc(e,t,r){var n;if(!Fc(r)||!Ke(r))throw"an object"===(n=$e(r))?t.createError(e+" a custom object"):t.createError(e+" "+n)}function Bc(e,t,r){if((t=_(t))instanceof gc)return t._internalPath;if("string"==typeof t)return qc(e,t);throw jc("Field path arguments must be of type string or ",e,!1,void 0,r)}let Uc=new RegExp("[~\\*/\\[\\]]");function qc(t,r,n){if(0<=r.search(Uc))throw jc(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new gc(...r.split("."))._internalPath}catch(e){throw jc(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function jc(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,u=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(u+=" (found",s&&(u+=" in field "+n),a&&(u+=" in document "+i),u+=")"),new I(b.INVALID_ARGUMENT,o+e+u)}function zc(e,t){return e.some(e=>e.isEqual(t))}class Gc{convertValue(e,t="none"){switch(In(e)){case 0:return null;case 1:return e.booleanValue;case 2:return k(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(sn(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw T(62114,{value:e})}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return Qr(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=e.fields?.[_n].arrayValue?.values?.map(e=>k(e.doubleValue));return new yc(t)}convertGeoPoint(e){return new pc(k(e.latitude),k(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=cn(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(dn(e));default:return null}}convertTimestamp(e){var t=nn(e);return new v(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=E.fromString(e),n=(y(ua(r),9688,{name:e}),new mn(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}class Kc extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new fc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}let $c="@firebase/firestore",Hc="4.10.0-canary.f9aaeca46";function Qc(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class Wc{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new P(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Yc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}_fieldsProto(){return this._document?.data.clone().value.mapValue.fields??void 0}get(e){if(this._document){var t=this._document.data.field(Bc("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Yc extends Wc{data(){return super.data()}}function Jc(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Xc{}class Zc extends Xc{}function ed(e,t,...r){let n=[];t instanceof Xc&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof td).length;if(1<i||0<i&&0<s)throw new I(b.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class td extends Zc{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new td(e,t,r)}_apply(e){var t=this._parse(e);return ld(e._query,t),new Wh(e.firestore,e.converter,Ii(e._query,t))}_parse(e){var t=Tc(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),u=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new I(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){ud(u,o);let e=[];for(let t of u)e.push(od(a,n,t));r={arrayValue:{values:e}}}else r=od(a,n,u)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||ud(u,o),r=Mc(s,i,u,"in"===o||"not-in"===o);return O.create(e,o,r)}}}(class extends Xc{});class rd extends Zc{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new rd(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Kn(t,r)})(e._query,this._field,this._direction);return new Wh(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new mi(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class nd extends Zc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new nd(e,t,r)}_apply(e){return new Wh(e.firestore,e.converter,Ei(e._query,this._limit,this._limitType))}}class id extends Zc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new id(e,t,r)}_apply(e){var t,r=ad(e,this.type,this._docOrFields,this._inclusive);return new Wh(e.firestore,e.converter,(e=e._query,t=r,new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class sd extends Zc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new sd(e,t,r)}_apply(e){var t,r=ad(e,this.type,this._docOrFields,this._inclusive);return new Wh(e.firestore,e.converter,(e=e._query,t=r,new mi(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function ad(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof Wc){var s=e._query,a=e.firestore._databaseId,o=r,u=n[0]._document,l=i;if(!u)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of _i(s))if(t.field.isKeyField())h.push(Dn(a,u.key));else{let e=u.data.field(t.field);if(hn(e))throw new I(b.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new I(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}h.push(e)}return new jn(h,l)}var t=Tc(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w<m.length;w++){var v=m[w];if(p[w].field.isKeyField()){if("string"!=typeof v)throw new I(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${g}(), but got a `+typeof v);if(!wi(c)&&-1!==v.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${g}() must be a plain document ID, but '${v}' contains a slash.`);let e=c.path.child(E.fromString(v));if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${g}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);y.push(Dn(d,t))}else{let e=Mc(f,g,v);y.push(e)}}return new jn(y,o)}function od(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new I(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!wi(t)&&-1!==r.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(E.fromString(r));if(x.isDocumentKey(n))return Dn(e,new x(n));throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof P)return Dn(e,r._key);throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${$e(r)}.`)}function ud(e,t){if(!Array.isArray(e)||0===e.length)throw new I(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function ld(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}function hd(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class cd extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new fc(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}class dd{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class fd extends Wc{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new gd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(Bc("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e=this._document,t={};return t.type=fd._jsonSchemaVersion,t.bundle="",t.bundleSource="DocumentSnapshot",t.bundleName=this._key.toString(),e&&e.isValidDocument()&&e.isFoundDocument()&&(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),t.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED")),t}}fd._jsonSchemaVersion="firestore/documentSnapshot/1.0",fd._jsonSchema={type:t("string",fd._jsonSchemaVersion),bundleSource:t("string","DocumentSnapshot"),bundleName:t("string"),bundle:t("string")};class gd extends fd{data(e={}){return super.data(e)}}class md{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new dd(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new gd(this._firestore,this._userDataWriter,e.key,e,new dd(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new I(b.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new gd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new dd(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new gd(s._firestore,s._userDataWriter,e.doc.key,e.doc,new dd(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return T(61501,{type:e})}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new I(b.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");var e={};e.type=md._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=ke.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let t=[],r=[],n=[];return this.docs.forEach(e=>{null!==e._document&&(t.push(e._document),r.push(this._userDataWriter.convertObjectMap(e._document.data.value.mapValue.fields,"previous")),n.push(e.ref.path))}),e.bundle=(this._firestore,this.query._query,"NOT SUPPORTED"),e}}function pd(e,t){return e instanceof fd&&t instanceof fd?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof md&&t instanceof md&&e._firestore===t._firestore&&ec(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}md._jsonSchemaVersion="firestore/querySnapshot/1.0",md._jsonSchema={type:t("string",md._jsonSchemaVersion),bundleSource:t("string","QuerySnapshot"),bundleName:t("string"),bundle:t("string")};let yd={maxAttempts:5};class vd{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=Tc(e)}set(e,t,r){this._verifyNotCommitted();var n=wd(e,this._firestore),i=hd(n.converter,t,r),i=Sc(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,V.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=wd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof gc?Oc(this._dataReader,"WriteBatch.update",i._key,t,r,n):Rc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,V.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=wd(e,this._firestore);return this._mutations=this._mutations.concat(new hs(t._key,V.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new I(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function wd(e,t){if((e=_(e)).firestore!==t)throw new I(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class _d extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=Tc(e)}get(e){let r=wd(e,this._firestore),n=new cd(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return T(24041);var t=e[0];if(t.isFoundDocument())return new Wc(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Wc(this._firestore,n,r._key,null,r.converter);throw T(18433,{doc:t})})}set(e,t,r){var n=wd(e,this._firestore),i=hd(n.converter,t,r),i=Sc(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=wd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof gc?Oc(this._dataReader,"Transaction.update",i._key,t,r,n):Rc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=wd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=wd(e,this._firestore),r=new Kc(this._firestore);return super.get(e).then(e=>new fd(this._firestore,r,t._key,e._document,new dd(!1,!1),t.converter))}}function bd(e,t,r){e=p(e,P);var n=p(e.firestore,B),i=hd(e.converter,t,r);return Td(n,[Sc(Tc(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,V.none())])}function Id(e,t,r,...n){e=p(e,P);var i=p(e.firestore,B),s=Tc(i);return Td(i,[("string"==typeof(t=_(t))||t instanceof gc?Oc(s,"updateDoc",e._key,t,r,n):Rc(s,"updateDoc",e._key,t)).toMutation(e._key,V.exists(!0))])}function Ed(n,...i){n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0,r={includeMetadataChanges:(e="object"!=typeof i[s]||Qc(i[s])?e:i[s++]).includeMetadataChanges,source:e.source};if(Qc(i[s])){let e=i[s];i[s]=e.next?.bind(e),i[s+1]=e.error?.bind(e),i[s+2]=e.complete?.bind(e)}let a,o,u;if(n instanceof P)o=p(n.firestore,B),u=yi(n._key.path),a={next:e=>{i[s]&&i[s](Sd(o,n,e))},error:i[s+1],complete:i[s+2]};else{let t=p(n,Wh),r=(o=p(t.firestore,B),u=t._query,new Kc(o));a={next:e=>{i[s]&&i[s](new md(o,r,t,e))},error:i[s+1],complete:i[s+2]},Jc(n._query)}var l=uc(o);{var h=l,c=u,d=r,f=a;let e=new wh(f),t=new Ll(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>Rl(await Oh(h),t)),()=>{e.Nu(),h.asyncQueue.enqueueAndForget(async()=>Ol(await Oh(h),t))}}}function Td(e,t){var r=uc(e);{var n=r,i=t;let e=new m;return n.asyncQueue.enqueueAndForget(async()=>Wl(await Rh(n),i,e)),e.promise}}function Sd(e,t,r){var n=r.docs.get(t._key),i=new Kc(e);return new fd(e,i,t._key,n,new dd(r.hasPendingWrites,r.fromCache),t.converter)}ac=!0,n=Xd.SDK_VERSION,ye=n,Xd._registerComponent(new le("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new B(new xe(e.getProvider("auth-internal")),new Ne(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new mn(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r={useFetchStreams:ac,...r},n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Xd.registerVersion($c,Hc,sc),Xd.registerVersion($c,Hc,"esm2020");function xd(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function Cd(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function Ad(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class Dd{constructor(e){this._delegate=e}static fromBase64String(e){return Ad(),new Dd(fc.fromBase64String(e))}static fromUint8Array(e){return Cd(),new Dd(fc.fromUint8Array(e))}toBase64(){return Ad(),this._delegate.toBase64()}toUint8Array(){return Cd(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function Nd(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class kd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};_e("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return hc(e,yh.provider,{build:e=>new mh(e,t.cacheSizeBytes,n?.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{_e("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();hc(e,yh.provider,{build:e=>new ph(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return cc(e._delegate)}}class Rd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof mn||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||_e("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e={...t,...e}).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){Qh(this._delegate,e,t,r)}enableNetwork(){return dc(this._delegate)}disableNetwork(){return Mh(uc(p(this._delegate,B)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,je("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=uc(t=p(t,B));let e=new m;return r.asyncQueue.enqueueAndForget(async()=>Zl(await Rh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,Bh(uc(t=p(t,B)),Qc(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new $d(this,Jh(this._delegate,e))}catch(e){throw Pd(e,"collection()","Firestore.collection()")}}doc(e){try{return new Fd(this,Xh(this._delegate,e))}catch(e){throw Pd(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new zd(this,((e,t)=>{if(e=p(e,Hh),qe("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Wh(e,null,(e=t,new mi(E.emptyPath(),e)))})(this._delegate,e))}catch(e){throw Pd(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){var r=this._delegate,n=e=>t(new Md(this,e)),e=void 0,i=(r=p(r,B),{...yd,...e});if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");return Uh(uc(r),e=>n(new _d(r,e)),i)}batch(){return uc(this._delegate),new Ld(new vd(this._delegate,e=>Td(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=uc(t=p(t,B)),n=new ic,qh(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,jh(uc(t=p(t,B)),e).then(e=>e?new Wh(t,null,e.query):null).then(e=>e?new zd(this,e):null);var t}}class Od extends Gc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Dd(new fc(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return Fd.forKey(t,this.firestore,null)}}class Md{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}get(e){let t=Hd(e);return this._delegate.get(t).then(e=>new qd(this._firestore,new fd(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=Hd(e);return r?(xd("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Hd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Hd(e);return this._delegate.delete(t),this}}class Ld{constructor(e){this._delegate=e}set(e,t,r){var n=Hd(e);return r?(xd("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Hd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Hd(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class Vd{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new gd(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new jd(this._firestore,r),t??{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=Vd.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new Vd(e,new Od(e),t),n.set(t,i)),i}}Vd.INSTANCES=new WeakMap;class Fd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new Fd(t,new P(t._delegate,r,new x(e)))}static forKey(e,t,r){return new Fd(t,new P(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new $d(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new $d(this.firestore,Jh(this._delegate,e))}catch(e){throw Pd(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof P&&Zh(this._delegate,e)}set(e,t){t=xd("DocumentReference.set",t);try{return t?bd(this._delegate,e,t):bd(this._delegate,e)}catch(e){throw Pd(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Id(this._delegate,e):Id(this._delegate,e,t,...r)}catch(e){throw Pd(e,"updateDoc()","DocumentReference.update()")}}delete(){return Td(p((e=this._delegate).firestore,B),[new hs(e._key,V.none())]);var e}onSnapshot(...e){var t=Bd(e),r=Ud(e,e=>new qd(this.firestore,new fd(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return Ed(this._delegate,t,r)}get(e){let t;return(t=("cache"===e?.source?t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Lh(e,t._key).then(e=>new fd(r,n,t._key,e,new dd(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===e?.source?t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r);return Vh(e,t._key,{source:"server"}).then(e=>Sd(r,t,e))}:t=>{t=p(t,P);let r=p(t.firestore,B),e=uc(r);return Vh(e,t._key).then(e=>Sd(r,t,e))})(this._delegate)).then(e=>new qd(this.firestore,new fd(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new Fd(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Pd(e,t,r){return e.message=e.message.replace(t,r),e}function Bd(e){for(var t of e)if("object"==typeof t&&!Nd(t))return t;return{}}function Ud(e,t){let r;return{next:e=>{r.next&&r.next(t(e))},error:(r=Nd(e[0])?e[0]:Nd(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]}).error?.bind(r),complete:r.complete?.bind(r)}}class qd{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new Fd(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return pd(this._delegate,e._delegate)}}class jd extends qd{data(e){var t=this._delegate.data(e);return this._delegate._converter||(e="Document in a QueryDocumentSnapshot should exist",void 0!==t)||T(57014,e),t}}class zd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new Od(e)}where(e,t,r){try{return new zd(this.firestore,ed(this._delegate,(n=r,i=t,s=Bc("where",e),td._create(s,i,n))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new zd(this.firestore,ed(this._delegate,([r,n="asc"]=[e,t],i=n,s=Bc("orderBy",r),rd._create(s,i))))}catch(e){throw Pd(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new zd(this.firestore,ed(this._delegate,(He("limit",t=e),nd._create("limit",t,"F"))))}catch(e){throw Pd(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new zd(this.firestore,ed(this._delegate,(He("limitToLast",t=e),nd._create("limitToLast",t,"L"))))}catch(e){throw Pd(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],id._create("startAt",t,!0))))}catch(e){throw Pd(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],id._create("startAfter",t,!1))))}catch(e){throw Pd(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],sd._create("endBefore",t,!1))))}catch(e){throw Pd(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new zd(this.firestore,ed(this._delegate,([...t]=[...e],sd._create("endAt",t,!0))))}catch(e){throw Pd(e,"endAt()","Query.endAt()")}var t}isEqual(e){return ec(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===e?.source?t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Fh(e,t._query).then(e=>new md(r,n,t,e))}:"server"===e?.source?t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Ph(e,t._query,{source:"server"}).then(e=>new md(r,n,t,e))}:t=>{t=p(t,Wh);let r=p(t.firestore,B),e=uc(r),n=new Kc(r);return Jc(t._query),Ph(e,t._query).then(e=>new md(r,n,t,e))})(this._delegate)).then(e=>new Kd(this.firestore,new md(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=Bd(e),r=Ud(e,e=>new Kd(this.firestore,new md(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return Ed(this._delegate,t,r)}withConverter(e){return new zd(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class Gd{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new jd(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class Kd{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new zd(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new jd(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new Gd(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new jd(this._firestore,e))})}isEqual(e){return pd(this._delegate,e._delegate)}}class $d extends zd{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new Fd(this.firestore,e):null}doc(e){try{return void 0===e?new Fd(this.firestore,Xh(this._delegate)):new Fd(this.firestore,Xh(this._delegate,e))}catch(e){throw Pd(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=p(e.firestore,B),n=Xh(e),i=hd(e.converter,t),s=Tc(e.firestore);return Td(r,[Sc(s,"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,V.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new Fd(this.firestore,e))}isEqual(e){return Zh(this._delegate,e._delegate)}withConverter(e){return new $d(this.firestore,e?this._delegate.withConverter(Vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Hd(e){return p(e,P)}class Qd{static serverTimestamp(){var e=new Ac("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Qd(e)}static delete(){var e=new xc("deleteField");return e._methodName="FieldValue.delete",new Qd(e)}static arrayUnion(...e){[...e]=[...e];var t=new Dc("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Qd(t)}static arrayRemove(...e){[...e]=[...e];var t=new Nc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Qd(t)}static increment(e){e=e;var t=new kc("increment",e);return t._methodName="FieldValue.increment",new Qd(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let Wd={Firestore:Rd,GeoPoint:pc,Timestamp:v,Blob:Dd,Transaction:Md,WriteBatch:Ld,DocumentReference:Fd,DocumentSnapshot:qd,Query:zd,QueryDocumentSnapshot:jd,QuerySnapshot:Kd,CollectionReference:$d,FieldPath:class Yd{constructor(...e){this._delegate=new gc(...e)}static documentId(){return new Yd(h.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof gc&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Qd,setLogLevel:function(e){e=e,ve.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};n=s.default,oc=(e,t)=>new Rd(e,t,new kd),n.INTERNAL.registerComponent(new le("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return oc(t,r)},"PUBLIC").setServiceProps({...Wd})),n.registerVersion("@firebase/firestore-compat","0.4.4-canary.f9aaeca46")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}});
23
23
  //# sourceMappingURL=firebase-firestore-compat.js.map